poedit-2.0.6/0000775000372000037200000000000013230132101007766 500000000000000poedit-2.0.6/docs/0000775000372000037200000000000013230132101010716 500000000000000poedit-2.0.6/docs/Makefile.am0000664000372000037200000000015013230131554012701 00000000000000 dist_man_MANS = poedit.1 EXTRA_DIST = generate-docs.make man_asciidoc.conf man_fix.xsl poedit_man.txt poedit-2.0.6/docs/man_fix.xsl0000664000372000037200000000134013230131554013020 00000000000000 poedit-2.0.6/docs/poedit.10000664000372000037200000000411313230132042012207 00000000000000'\" t .\" Title: poedit .\" Author: Vaclav Slavik .\" Generator: DocBook XSL Stylesheets v1.78.1 .\" Date: 01/18/2018 .\" Manual: \ \& .\" Source: \ \& .\" Language: English .\" .TH "POEDIT" "1" "01/18/2018" "\ \&" "\ \&" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .\" http://bugs.debian.org/507673 .\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- .\" disable hyphenation .nh .\" disable justification (adjust text to left margin only) .ad l .\" ----------------------------------------------------------------- .\" * MAIN CONTENT STARTS HERE * .\" ----------------------------------------------------------------- .SH "NAME" poedit \- gettext catalogs editor .SH "SYNOPSIS" .HP \w'\fBpoedit\fR\ 'u \fBpoedit\fR [\fB\-h\fR] [\fB\-\-verbose\fR] [\fIFILE\fR...] .SH "DESCRIPTION" .sp Poedit is GUI editor for GNU gettext translation files\&. .sp When launched with one or more files as argument, it loads and opens them for editing\&. .SH "OPTIONS" .PP \fB\-h\fR, \fB\-\-help\fR .RS 4 Display usage information and exit\&. .RE .PP \fB\-\-verbose\fR .RS 4 Print verbose logging information\&. .RE .SH "AUTHOR" .sp Written by Vaclav Slavik <\m[blue]\fBvaclav@slavik\&.io\fR\m[]\&\s-2\u[1]\d\s+2> .SH "RESOURCES" .sp Web site: \m[blue]\fBhttps://poedit\&.net/\fR\m[] .SH "COPYRIGHT" .sp Copyright (C) 2008\-2018 Vaclav Slavik\&. .sp Free use of this software is granted under the terms of the MIT license\&. .SH "AUTHOR" .PP \fBVaclav Slavik\fR <\&vaclav@slavik\&.io\&> .RS 4 Author. .RE .SH "NOTES" .IP " 1." 4 vaclav@slavik.io .RS 4 \%mailto:vaclav@slavik.io .RE poedit-2.0.6/docs/Makefile.in0000664000372000037200000003704413230132040012715 00000000000000# 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 = : build_triplet = @build@ host_triplet = @host@ subdir = docs DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ $(dist_man_MANS) ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/admin/ax_boost_base.m4 \ $(top_srcdir)/admin/ax_boost_iostreams.m4 \ $(top_srcdir)/admin/ax_boost_regex.m4 \ $(top_srcdir)/admin/ax_boost_system.m4 \ $(top_srcdir)/admin/ax_boost_thread.m4 \ $(top_srcdir)/admin/ax_cxx_check_flag.m4 \ $(top_srcdir)/admin/ax_cxx_compile_stdcxx.m4 \ $(top_srcdir)/admin/wxwin.m4 $(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)" NROFF = nroff MANS = $(dist_man_MANS) am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BOOST_CPPFLAGS = @BOOST_CPPFLAGS@ BOOST_IOSTREAMS_LIB = @BOOST_IOSTREAMS_LIB@ BOOST_LDFLAGS = @BOOST_LDFLAGS@ BOOST_REGEX_LIB = @BOOST_REGEX_LIB@ BOOST_SYSTEM_LIB = @BOOST_SYSTEM_LIB@ BOOST_THREAD_LIB = @BOOST_THREAD_LIB@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CLD2_LIBS = @CLD2_LIBS@ CPPFLAGS = @CPPFLAGS@ CPPREST_LIBS = @CPPREST_LIBS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GREP = @GREP@ GTKSPELL_CFLAGS = @GTKSPELL_CFLAGS@ GTKSPELL_LIBS = @GTKSPELL_LIBS@ HAVE_CXX14 = @HAVE_CXX14@ ICU_CFLAGS = @ICU_CFLAGS@ ICU_LIBS = @ICU_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBSECRET_CFLAGS = @LIBSECRET_CFLAGS@ LIBSECRET_LIBS = @LIBSECRET_LIBS@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ LUCENE_CFLAGS = @LUCENE_CFLAGS@ LUCENE_LIBS = @LUCENE_LIBS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_SHORT_VERSION = @PACKAGE_SHORT_VERSION@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ WXRC = @WXRC@ WX_CFLAGS = @WX_CFLAGS@ WX_CFLAGS_ONLY = @WX_CFLAGS_ONLY@ WX_CONFIG_PATH = @WX_CONFIG_PATH@ WX_CONFIG_WITH_ARGS = @WX_CONFIG_WITH_ARGS@ WX_CPPFLAGS = @WX_CPPFLAGS@ WX_CXXFLAGS = @WX_CXXFLAGS@ WX_CXXFLAGS_ONLY = @WX_CXXFLAGS_ONLY@ WX_LIBS = @WX_LIBS@ WX_LIBS_STATIC = @WX_LIBS_STATIC@ WX_RESCOMP = @WX_RESCOMP@ WX_VERSION = @WX_VERSION@ WX_VERSION_MAJOR = @WX_VERSION_MAJOR@ WX_VERSION_MICRO = @WX_VERSION_MICRO@ WX_VERSION_MINOR = @WX_VERSION_MINOR@ 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@ ac_ct_CXX = @ac_ct_CXX@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ dist_man_MANS = poedit.1 EXTRA_DIST = generate-docs.make man_asciidoc.conf man_fix.xsl poedit_man.txt all: all-am .SUFFIXES: $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign docs/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign docs/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: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-man1: $(dist_man_MANS) @$(NORMAL_INSTALL) @list1=''; \ list2='$(dist_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='$(dist_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) 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) installdirs: for dir in "$(DESTDIR)$(man1dir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic 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-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-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-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-man \ uninstall-man1 # 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: poedit-2.0.6/docs/man_asciidoc.conf0000664000372000037200000000064013230131554014131 00000000000000[replacements] # interpret --foo and -f as options: (^|[\s]+|\[)(-|—|--)([\w]+)=\1 # repeatable, optional placeholder ("[FILE...]") \[([A-Z]+)(\.\.\.|…)\]=\1 # [-f] indicates optional choice: \[([^]]+)\]=\1 # $poedit$ means command "poedit": \$(.+)\$=\1 poedit-2.0.6/docs/generate-docs.make0000664000372000037200000000047613230131554014237 00000000000000 ASCIIDOC = asciidoc XSLTPROC = xsltproc XMLTO = xmlto all: poedit.1 clean: rm -f poedit.1 poedit.1: poedit_man.txt man_asciidoc.conf man_fix.xsl $(ASCIIDOC) -d manpage -f man_asciidoc.conf -b docbook -o - poedit_man.txt \ | $(XSLTPROC) -o poedit.1.xml man_fix.xsl - $(XMLTO) man poedit.1.xml rm poedit.1.xml poedit-2.0.6/docs/poedit_man.txt0000664000372000037200000000127013230131554013531 00000000000000POEDIT(1) ========= Vaclav Slavik NAME ---- poedit - gettext catalogs editor SYNOPSIS -------- $poedit$ [-h] [--verbose] [FILE...] DESCRIPTION ----------- Poedit is GUI editor for GNU gettext translation files. When launched with one or more files as argument, it loads and opens them for editing. OPTIONS ------- -h, --help:: Display usage information and exit. --verbose:: Print verbose logging information. AUTHOR ------ Written by Vaclav Slavik RESOURCES --------- Web site: https://poedit.net/ COPYRIGHT --------- Copyright \(C) 2008-2018 Vaclav Slavik. Free use of this software is granted under the terms of the MIT license. poedit-2.0.6/aclocal.m40000664000372000037200000014061213230132040011554 00000000000000# 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'.])]) # 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])]) # Add --enable-maintainer-mode option to configure. -*- Autoconf -*- # From Jim Meyering # 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_MAINTAINER_MODE([DEFAULT-MODE]) # ---------------------------------- # Control maintainer-specific portions of Makefiles. # Default is to disable them, unless 'enable' is passed literally. # For symmetry, 'disable' may be passed as well. Anyway, the user # can override the default with the --enable/--disable switch. AC_DEFUN([AM_MAINTAINER_MODE], [m4_case(m4_default([$1], [disable]), [enable], [m4_define([am_maintainer_other], [disable])], [disable], [m4_define([am_maintainer_other], [enable])], [m4_define([am_maintainer_other], [enable]) m4_warn([syntax], [unexpected argument to AM@&t@_MAINTAINER_MODE: $1])]) AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles]) dnl maintainer-mode's default is 'disable' unless 'enable' is passed AC_ARG_ENABLE([maintainer-mode], [AS_HELP_STRING([--]am_maintainer_other[-maintainer-mode], am_maintainer_other[ make rules and dependencies not useful (and sometimes confusing) to the casual installer])], [USE_MAINTAINER_MODE=$enableval], [USE_MAINTAINER_MODE=]m4_if(am_maintainer_other, [enable], [no], [yes])) AC_MSG_RESULT([$USE_MAINTAINER_MODE]) AM_CONDITIONAL([MAINTAINER_MODE], [test $USE_MAINTAINER_MODE = yes]) MAINT=$MAINTAINER_MODE_TRUE AC_SUBST([MAINT])dnl ] ) # Check to see how 'make' treats includes. -*- Autoconf -*- # Copyright (C) 2001-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 m4_include([admin/ax_boost_base.m4]) m4_include([admin/ax_boost_iostreams.m4]) m4_include([admin/ax_boost_regex.m4]) m4_include([admin/ax_boost_system.m4]) m4_include([admin/ax_boost_thread.m4]) m4_include([admin/ax_cxx_check_flag.m4]) m4_include([admin/ax_cxx_compile_stdcxx.m4]) m4_include([admin/wxwin.m4]) poedit-2.0.6/Makefile.am0000664000372000037200000000037013230131546011756 00000000000000 ACLOCAL_AMFLAGS = -I admin SUBDIRS = src docs locales artwork desktopdir=$(datadir)/applications dist_desktop_DATA = poedit.desktop poedit-uri.desktop appdatadir=$(datadir)/appdata dist_appdata_DATA = poedit.appdata.xml EXTRA_DIST = bootstrap poedit-2.0.6/NEWS0000664000372000037200000007571313230131546010436 00000000000000 Version 2.0.6 ------------- - Fix hanging with certain rare (non-UTF8, non-ASCII msgids) PO files. Version 2.0.5 ------------- - [macOS] Fixed crashing bug on macOS. - [Windows] Improved HiDPI support. - Assorted bugfixes. Version 2.0.4 ------------- - Added support for Crowdin branches. - Poedit now remembers your pre-translation settings. Version 2.0.3 ------------- - Much faster loading and saving of large PO files. - Fixed frequent false positives in QA warnings for German, Japanese, Arabic and translations with reordered brackets. - Fixed issues with suggestions not showing up in the sidebar if the user had an unusually tall editing area set up. - Fixed assert when opening a PO file on Linux. Version 2.0.2 ------------- - Unusual whitespace (2+ spaces) in the middle of strings is now highlighted. - Strings with warnings are now put at the top together with errors. - Fixed crash when clicking on an item with plurals in a POT file. - Added --line command line argument to open a file at specified item. Version 2.0.1 ------------- - Restored compatibility with Zend Framework and its .phtml extension. - Fixed keyboard navigation between plurals. - Fixed false positives in punctuation warnings (quotes, Chinese). - [Linux] Mostly fixed compatibility with wxGTK 3.0.2. - [macOS] Fixed crash with Vietnamese input method. - [Windows] Fixed disappearing menu with HiDPI >200% zoom. - [Windows] Fixed settings-related crash. - [Windows] Fixed Ctrl+A handling. IMPORTANT NOTE TO DISTRIBUTION MAINTAINERS: Poedit is affected by a bug in wxGTK 3.0.2 that cannot be worked around in user code, requiring this patch to wxGTK to be applied: https://github.com/wxWidgets/wxWidgets/commit/ed88188be7e97a0503f3471f7b0452740b732902 Version 2.0 ----------- - Revamped user interface. - Syntax highlighting for markup and special characters. - Warnings are now shown for common translation mistakes. - More robust pre-translation (previous "Fill missing translations from TM"). - "Fuzzy" was renamed "Needs work" thorough to be more accessible to gettext non-experts. - xgettext invocation can now be customized on per-file basis. - Files opened from Crowdin now auto-sync on save. - New Linux icon. - Many small improvements all over. Version 1.8.12 -------------- - Fixed previous msgid display. - Fixed Find to correctly highlight text with "whole words only" enabled. - [Windows] Fixed to accelerators and suggestions interaction with selection. - Poedit now passes --previous to msgmerge. Version 1.8.11 -------------- - [macOS] Fixed opening files by double-clicking them in Finder. - Fixed handling of sr_RS locale. Version 1.8.10 -------------- - Added support for X-Source-Language header. - [macOS] Improved macOS Sierra compatibility. - [Windows] Fixed Open in Editor button that didn't work in some cases. - [UNIX] Added AppData file. Version 1.8.9 ------------- - [Windows] Use IE proxy settings. - Start searches from the current position, not beginning of the file. - Updated bundled gettext to 0.19.8.1. - More fixes for right-to-left languages. Version 1.8.8 ------------- - Greatly reduced UI flicker on Windows plus other visual improvements on Windows 10. - Multiple fixes to Poedit’s interface in right-to-left languages. - Don't leave directional marks in translated text if there's a LTR/RTL mismatch. - Assorted small fixes. Version 1.8.7 ------------- - Added Copy From Singular operation and Next/Prev Plural Form navigation shortcuts. - Translation errors are now properly translated. - Fixed default Turkish plural form. - Fixed a bug where a perfect match wouldn't be found in the TM in some rare cases. - Updated bundled gettext to 0.19.7 (added appdata.xml and ITS support). - Assorted bugfixes. Version 1.8.6 ------------- - Fix properties window on OS X 10.9 and older. - Fix visual flicker when quickly scrolling through a file with arrow keys. - [OS X] Fix rare exception when pasting text. - Fix file width autodetection when long comments were present. - Disable Find next/prev menu items properly. Version 1.8.5 ------------- - Improved setting and handling of source paths. - Implement gzip support in Crowdin API client. - Assorted fixes. Version 1.8.4 ------------- - Fixed bug in handling POTs with plural forms introduced in 1.8.3. Version 1.8.3 ------------- - Fixed Last-Translator error when creating a new translation from existing POT. - Fixed bogus "Sources not available" error for single files setups. - Fixed TM error reporting to prevent rendering the entire UI mostly unusable. Version 1.8.2 ------------- - text editor now ensures that trailing newlines are present only if they also exist in the source text - fix HTML export error on Windows - automatically fix some bad paths settings in PO files - improved source language detection - fix incorrect timezone of PO-Revision-Date in some cases - use the user's default browser for Crowdin authentication on all platforms (wxWebView no longer required as a dependency when building on Linux) Version 1.8.1 ------------- - fix TM-related crash under heavy concurrency - [OS X] fix crash when a concurrent task throws Version 1.8 ----------- - integration with the Crowdin localization management platform - search & replace - support for directly handling POT files - improved interface for configuring source code paths - Poedit now automatically fixes certain broken files produced by certain broken tools (e.g. WPML) - modernized HTML export - [OS X] Quick Look preview - support for non-English source languages (auto-detected) - [Windows] opening multiple Poedit windows now works correctly Version 1.7.7 ------------- - strip whitespace in extractor definitions resulting from copy & paste Version 1.7.6 ------------- - fix handling of multiple displays - [Windows] fix "file couldn't be formatted nicely" problems with files in directories with (some) Unicode names Version 1.7.5 ------------- - fix scrolling to the top when saving a file; focus should be preserved now - fix disabling of extractors in preferences (oops) - [Windows, OS X] improve resilience of the TM to power loss Version 1.7.4 ------------- - size of the bottom editing part is now remembered correctly again - [GTK+] fix broken Edit->Copy/Cut/Paste - [OS X] fix stray BOM marks appearing on suggestions in some cases - [OS X] fix Brazilian Portuguese localization not being used - [OS X] fix sandbox permission window with unusual source paths setting - [Windows] HiDPI support Version 1.7.3 ------------- - it is now possible to disable unwanted extractors in preferences - source paths in catalog properties can now include individual files - exclusion paths in catalog properties can now use wildcards (e.g. *.js, now default for WordPress) - "Consult TM when updating from sources" now includes only "good" matches (with at least 75% score) - fix losing of the editing position when saving a file - fix Preferences layout in Japanese and Chinese translations - Windows: fix custom font setting after using a suggestion or copying from source text (there was no version 1.7.2) Version 1.7.1 ------------- - fix menu shortcuts problem in Polish localization Version 1.7 ----------- - reworked preferences - support for extraction from JavaScript (and more) sources - suggestions and other relevant information (comments etc.) are now much easier to access in a unified sidebar - syntax highlighting of special characters in translations - added Group by Context sorting option - implemented multiple selection - formatting of PO files can now be customized - added support for msgmerge --no-fuzzy-matching Version 1.6.10 -------------- - multiple fixes to parsing of the Language header - fix handling of broken POTs with duplicate headers - improved robustness of the Lucene TM database - misc small fixes - translations updates and fixes Version 1.6.9 ------------- - fixes to handling of RTL translations - fix editing-related crashes under wxGTK - translations updates Version 1.6.8 ------------- - fix parsing of obsolete entries in PO files - improved spellchecker handling on OS X and Windows - misc fixes - translations updates Version 1.6.7 ------------- - better handle "fatal" (but not really) msgfmt errors - OS X: fix OS X 10.7 compatibility - OS X/Win: update bundled Gettext to 0.19.2 - translations updates Version 1.6.6 ------------- - added exclusion paths support to updating from sources - spellchecking is now supported on Windows 8+ - STL version of wxWidgets is no longer required to build on Unix - update Windows and OS X builds to GNU gettext 0.19 - misc fixes - translations updates Version 1.6.5 ------------- - assorted small bugfixes Version 1.6.4 ------------- - translation memory tuning - Unix: restore compatibility with GTK+ 2 - misc fixes - minor UI improvements (better wording etc.) - OS X: misc fixes for Mavericks compatibility - OS X/Win: update bundled Gettext to 0.18.3.2 - translations updates Version 1.6.3 ------------- - fix invocation of external parser tools that need PATH - Unix: use XDG_CONFIG_HOME for dotfile location - OS X: fix conflict with Smart Quotes on Mavericks - translations updates Version 1.6.2 ------------- - fix TM failures with non-ASCII paths on Windows - add support for Zend Framework's .phtml - and support for WordPress' translators: comments - translations updates Version 1.6.1 ------------- - fixes to TM migration code - OS X: fixes for Retina displays Version 1.6 ----------- - improved languages handling (entering, sorting, plural forms expressions) - completely new translation memory implementation - assorted UI improvements - better build systems on OS X and Windows - OS X: minimum required version is 10.7; PPC builds are no longer supported Version 1.5.7 ------------- - fix incorrect --add-comments flag introduced in 1.5.6 Version 1.5.6 ------------- - fix several problems with the file viewer: better lookup of files, fix display of UTF-8 files, better detection of DOS-style paths - fix Find window's text field focus on OS X - add --add-comments=TRANSLATORS to xgettext call in default parsers - fix parsing of obsolete entries to recognize "#~|" - fix incorrect update stats when using msg contexts - translations updates Version 1.5.5 ------------- - fix crash when auto-updating translations with some TMs - fix file corruption when the catalog's charset was set to one that couldn't represent all of the text - translations updates Version 1.5.4 ------------- - fix display of source code (#472) - fix bug when saving file fails on permissions (#491) - fix Unix makefiles to install all icons (#493) - translations updates Version 1.5.3 ------------- - fixes to parsing of msgfmt errors - misc UI fixes - OS X: fixed crash when closing a document and opening another - fixed compatibility with OS X 10.5 Leopard - fixed problems with TM migration after upgrade - reverted removal of line numbers in 1.5.2 - reverted: the default is to compile MO files on save again - translations updates Version 1.5.2 ------------- - fixed crash when clearing the translation (#428, #468) - removed no longer needed line numbers from the UI - OS X: improved attention bar looks - translations updates Version 1.5.1 ------------- - Windows: fix missing libstdc++-6.dll - updated several translations Version 1.5 ----------- - show translation errors inline with the entries they relate to, instead of a confusing errors log when saving - implement full support for message contexts - replaced popups when Poedit is started for the first time with unobtrusive Firefox-style notifications - selecting suggested translation from right-click popup menu now correctly removes fuzzy flag from the translation - warn the user if Plural-Forms header is inconsistent with the number of plural translations in the catalog or if has syntax errors - correctly deduce catalog's language from filenames in the form of foo.LANG.po, as used by several large Open Source projects (#267) - Boost library is now required when compiling from sources - fixed the Find window so that it can be closed using the Esc key (#187) - positions of translation fields are now remembered correctly when Poedit window is maximized (#194) - added Edit->Clear translation command (Marcin Floryan) - removed View->Fullscreen view, it doesn't make sense in this kind of app - better application and document icons - removed the "Shaded translations list" option, it's now always enabled - misc minor UI improvements - fixed possible transaction memory database corruption (#337, #352) - added instructions on how to install additional spellchecker dictionaries - added sorting by different criteria (#256, #239) - improved source files viewer (#346) - included outdated documentation was replaced with online wiki docs (#343) - more keyboard navigation shortcuts - saving PO files no longer reformats source code references (#323); moreover, they are always formatted according to the default style used by GNU gettext tools (#348) - don't restore remembered window positions if they are outside currently available screens (#318) - changed Alt+ shortcuts to non-conflicting Ctrl+ ones: "Copy From Source Text" now uses Ctrl+B and "Translation Is Fuzzy" Ctrl+U - various UI improvements - added more translations: Bosnian translation (Kenan Dervisevic) Tajik (Victor Ibragimov) Kurdish Sorani (Asos Ap) Version 1.4.6 ------------- - OS X: fixed TM configuration tab to show languages list - fixed bug introduced in 1.4.3 that caused "Update from POT file" to clear metadata in catalog header (#355) - added Kazakh translation (Baurzhan Muftakhidinov) Version 1.4.5 ------------- - OS X: fixed Find to actually show hits in text control - OS X: fixed "Check for updates" preference broken by 1.4.4 Version 1.4.4 ------------- - sort catalogs in the manager alphabetically (#245) - fixed escaping of quotes in catalog headers (#290) - fixed reformatting of obsolete entries in catalogs (#329) - fixed list selection visibility on Windows 7 (#336) - Windows: automatically check for available updates Version 1.4.3 ------------- - Unix: fixed crash with Zemberek spell-checker backend installed (#276) - fixed parsing of catalogs produced with xgettext --indent (#189) - fixed TM updating broken in 1.3.5 (#294) - support GNOME's xml2po file references (#314) - fixed handling of "%" in filenames (#143) - added more translations: Vietnamese (Trần Ngọc Quân) Uzbek (Oybek Djuraev) Version 1.4.2 ------------- - Unix: fixed Ctrl+Up/Down/PgUp/PgDn shortcuts when NumLock is on (#2006843) - OS X: fixed running Gettext tools when Poedit is in directory with spaces in its name (#2025823) - added Uyghur translation (Abduqadir Abliz) Version 1.4.1 ------------- - fixed HTML export to properly escape the text (#1739062) - remember last used search phrase in Find window (#1909847) - Windows: fixed text entry using AltGr on many European keyboards Version 1.4 ----------- - wxWidgets >= 2.8 is now required when compiling from sources - don't show comments windows by default to avoid confusion - OS X: fixed conflict with 10.5's Spaces - Command-arrows can now be used to navigate in the list control in addition to Ctrl-arrows - Windows, OS X: significantly faster updating of catalogs on multi-core machines (on Linux, some distributions included multi-threaded gettext, some don't) - fixed remaining problems with list selection - use more standard way of differentiating between different kinds of entries in the list (translated, fuzzy, new) by using font variants instead of different background colors (#1863332) - don't update PO-Revision-Date header if it's unused (#1900298) - Windows: common shortcuts like Ctrl-A or Ctrl-backspace now work - added Belarusian latin translation (Alaksandar Navicki) Version 1.3.9 ------------- - OS X: fixed corruption of first entry when opening catalog from manager Version 1.3.8 ------------- - OS X: fixed startup on computers that didn't have Poedit installed before - fixed translation status color indicator to work correctly in case of plural entries - changed the official spelling from "poEdit" to "Poedit" - preserve old msgid records (#| msgid "...") when saving - preserve deleted records when updating catalogs - preserve msgctxt entries in catalogs (#1680554) - OS X: Sparkle is now used for automatic updates - OS X: fixed spell checker to use catalog's language - fixed View->Display quotes setting broken in 1.3.7 - Windows: fixed crash when catalog update removes translations - added more translations: Irish (Seanán Ó Coistín) Version 1.3.7 ------------- - Windows: Windows 95/98 is no longer supported by the official binary - OS X: Poedit is now built as Universal binary - fixed the Preferences menu entry in catalogs manager - fixed to handle file references with Windows paths on Unix - fixed the "failed to convert to unicode" bug when saving (#1589744) - OS X: fixed clicking on PO files in Finder (#1583967) - fixed opening source files in external editor if the path contains spaces (#1743172) - Windows: fixed keyboard navigation in Find dialog (#1697743) - added more translations: Urdu (Muhammad Shakir Aziz) Version 1.3.6 ------------- - fixed failure to load correct catalogs without error message - fixed loading of X-Poedit-Language header (#1567018) - fixed loading of files in charsets other than UTF-8 (#1562780) - fixed shortcuts on Mac OS X to not use Alt+something Version 1.3.5 ------------- - fixed Content-Type header parsing (bug #1346495) - Unicode build of wxWidgets 2.6 is now required - fixed bug with entering numbers when using German translation (#1325590) - fixed broken layout on startup when showing comments window (#1313612) - initial Mac OS X port - fixed crash when loading some invalid PO files (#1495970) - fixed the Find window to not be on top of other apps' windows - install .desktop files and icons according to freedesktop.org standards - changed the icons to a combination of Tango Desktop Project and Silk icons - removed on-the-fly checking of catalog items, it's too buggy - added more translations: Macedonian (Jovan Kostovski) Arabic (Mohammed al zaid) Thai (Pun) Malay (Mahrazi Mohd Kamal) Version 1.3.4 ------------- - fixed crash when closing the application - fixed searching in catalogs (bug #1230857) - fixed restoring window size when maximized - fixed reading of files with trailing whitespace on lines - use standard accelerators for Close command - fixed "Copy original to translation field" to work on singular form entries in catalogs that contain plural forms - added Tatarish translation (Albert Fazli) Version 1.3.3 ------------- - added ability to create bookmarks (Olivier Sannier) - improved status icons (Olivier Sannier) - more robust parsing of catalog headers - saving into read-only file now fails as expected - fixed saving of gettext keywords with commas in them - added more translations: Galician (Leandro Regueiro) Indonesian (Bayu Artanto) Friulian (Andrea Decorte) Finnish (Keikki Suopanki) Version 1.3.2 ------------- - fixed bogus warnings when updating from a POT file - added "New catalog from POT file" feature - added ability to display automatic comments in the UI (Olivier Sannier) - translations manager now searches subdirectories as well (David Fraser) - the Find tool can now optionally search from current position instead of from the beginning of the catalog (Olivier Sannier) - fixed TM to not crash on catalogs with non-ASCII msgid values - fixed catalog parser to correctly preserve automatic comments with duplicate lines and to not ignore every second automatic comment (Olivier Sannier) - added ability to search comments (Olivier Sannier) - Poedit now preserves obsolete translations (Olivier Sannier) - added checking of input files' correctness - fixed parsing of "\\n" substrings in catalog headers - fixed compilation with wxWidgets >= 2.5.3 - fixed Find to search in all plural forms instead of only the first one - added "whole words only" option to Find tool (Olivier Sannier) - added default parsers for more programming languages supported by xgettext - Windows: fixed list control corruption when updated catalog had fewer items than before the update - added more translations: Korean (Hojin Choi) Hebrew (Nir Lavi) Kyrgyz (Ilyas Bakirov) Ukrainian (Cawko Xakep) Puerto Rico Spanish (Fernando Ortiz) Asturian (Softastur) Version 1.3.1 ------------- - fixed assertion failure when viewing source files in the builtin viewer - fixed wrong escaping of backslashes in X-Poedit-* headers - fixed parsing of references to filenames containing spaces (Shane Harper) - fixed crash with catalogs that have plural forms but no Plural-Forms header - fixed parsing of the line following last msgstr[i] entry (bug #1025211) - fixed controls layout when compiled against wxWidgets 2.4 Version 1.3.0 ------------- - plural forms support (based on patch by Christophe Hermier and Guido Flohr) - fixed catalog I/O to correctly handle automatic comments (Tim Dijkstra) - Windows: visual improvements to main window (Tim Kosse) - usability improvements - fixed storing of non-ASCII catalog headers - Poedit now preserves non-standard entries in PO file header - Poedit now respects c-format and no-c-format when checking tokens correctness - position in translations list is no longer lost when saving the file - configure now correctly detects libdb4 with versioned symbols - "Find" tool now selects matches in text controls (Sergio Talens-Oliag) - use msgfmt for tokens validation - double-clicking on invalid entry now pops up error description - Unix: use GNOME theme icons if they are installed on the system - Unix: use GtkSpell for spell checking (GTK+ 2 only) - Poedit no longer saves .po.poedit file, the headers were moved into custom X-Poedit-* fields in .po file header - added more translations: Punjabi (Amanpreet Singh Alam) Albanian (Besnik Bleta) Amharic (Tegegne Tefera) Hindi (Dhananjaya Sharma) Esperanto (Tim Morley) Belarusian (Siarhei) Breton (Korvigellou an Drouizig) Walloon (Pablo Saratxaga) Bangla (Omi Azad) Basque (3ARRANO Euskalgintza Taldea) Version 1.2.5 ------------- - added catalog export to HTML (Christophe Hermier) - fixed bug in displaying list entries in ANSI build introduced in 1.2.4 - fixed opening of source files specified using absolute path - Poedit now preserves fuzzy status if set after partially editing an entry - many fixes to comment window (Olivier Sannier) - comment window is now (optionally) editable (Olivier Sannier) - fixed preferences dialog if translation memory is not used (Olivier Sannier) - added printf() tokens validation (Frederic Giudicelli) (requires wxWidgets >= 2.5.1 in Unicode build) - added ability to specify source code charset other than US-ASCII (based on patch by Stefan Kowski) - added Mongolian translation (Mendbayar Bayar, Khurelbaatar Lkhagvasuren) Version 1.2.4 ------------- - added optional comment window to the bottom of main screen (based on patch by Olivier Sannier, still not fully functional) - added "Automatically translate using TM" operation to the Catalog menu - Windows: upgraded bundled gettext to 0.12.1 - fixed .po files parser to read files created by xgettext -i - added ability to customize fonts - Windows: added support for Delphi via dxgettext (http://dybdahl.dk/dxgettext/) - translation memory wizard fixes for multiple languages case - comments and msgid strings are stored using catalog's charset and are not limited to US-ASCII anymore (based on patch by Stefan Kowski) Version 1.2.3 ------------- - fixed compilation with Berkeley DB 4.1.25 - fixed disappearing catalog status information - fixed bug in redrawing overview list on startup - added more translations: Serbian (Bojan Suzic) Portuguese (Lazarus Long) Hungarian (Szilard Vizi) Lithuanian (Mantas Kriauciunas, Liudas Dmitrijevas, Kestutis Snieska, Ramunas Lukasevicius) Farsi (Abbas Izad) Afrikaans (Petri Jooste) Slovenian (Luka Marinko) Version 1.2.2 ------------- - Poedit now correctly differentiates between Traditional and Simplified Chinese - optimizations for better handling of catalogs with very large entries - Mac: compilation fixes for buggy gcc 3.1 snapshot used by MacOS X - added country metadata into catalog settings dialog - Windows: it is now possible to change UI language directly in Poedit - added catalog updating from POT files - more intuitive UI for translation memory creation - added more translations: partial Greek translation (Simos Xenitellis) Japanese (Masapon) Simplified Chinese (Leo Liaw) Russian (Pavel Maryanov) Norwegian Bokmål (Hans Fr. Nordhaug) Icelandic (Samúel Jón Gunnarsson) Brazilian Portuguese (Leonardo Peixoto) Spanish (Javier Bravo) Danish (Lars Dybdahl) Version 1.2.1 ------------- - Windows: Poedit window now accepts files dropped on it via drag'n'drop - added more translations: Georgian (Aiet Kolkhi) Romanian (Ovidiu Constantin) Catalan (Pau Bosch i Crespo) - reworked Traditional Chinese translation (Leo Liaw) - fixed bug when empty error text was shown if msgfmt reported error - moved "Shaded translations list" from preferences into the View menu - Windows: allow coexistence of multiple Poedit versions on same system Version 1.2.0 ------------- - fixed bug in catalog updater: didn't use default keywords if none specified - added a warning if no files were found during catalog update - fixed "Copy original to translation field" to do exact copy - added more translations: Tamil (Prabu Anand) Bulgarian (Dimitar Boyn) Swedish (Simon Bohlin) Slovak (Pavol Cvengros) - fixed Turkish translation (wrong catalog included by mistake) - Linux: RPMs are no longer provided in Mandrake and RedHat flavors, they were unified into single RPM (mdk menu support was _not_ lost by this) - fixed data loss when updating catalog with invalid entries - Windows: fixed toolbars look on Windows XP - Windows: the installer no longer requires Administrator privileges Version 1.1.10 -------------- - fix to "fixes to catalog charset handling" from 1.1.9 - Unix: configure now checks for db4 in addition to db and db3 - Windows: fixed launching Poedit via associations when long filenames were involved - added more translations: Polish (Arkadiusz Lipiec) Norwegian Nynorsk (Karl Ove Hufthammer) Turkish (Hakki Dogusan) Latvian (Artis Trops) Italian (Pino Toscano) Version 1.1.9 ------------- - fixes to catalog charset handling - Linux: added Mandrake RPM packages - added translations to more languages: Estonian (Joosep-Georg Jarvemaa) Dutch (Patrick Hubers) German (Bernd Böckmann) French (Lionel Allorge) Croatian (Mladen Mintakovic) Version 1.1.8 ------------- - fixes to editable list control Version 1.1.7 ------------- - fixed a bug that prevented direct opening of files in editor from working - fixed Find dialog (didn't select found entries in the list) - Poedit 1.1.6 package contained out-of-date resources.zip by mistake, this is fixed now - added an option to disable list rows shading - minor UI tweaks - added Chinese (zh_TW) translation (Ying-Chieh Liao) - several fixes related to handling of directory names with spaces - fixed launching Poedit with filename as the argument Version 1.1.6 ------------- - support for Windows XP native look & feel - Win32 version is now Unicode-enabled - fixes to the way multiline entries are stored in .po file - i18n support in the app itself (finally!) (so far only Czech translation is available, translators welcome!) - added an option to display .po file line numbers for catalog entries - fixed crash when browsing certain source files - added ability to open referred source files directly in the editor of choice instead of in built-in files viewer - Windows: fixed wrong placement of progress indicator in the status bar - Unix: man page is now installed - Unix: Poedit now links with libdb-3.x for x > 1, too - Linux: RPM package now comes in two favors: poedit and poedit-semistatic (the latter is statically linked against wxGTK and libdb) Version 1.1.5 ------------- - upgraded to link against any of libdb-3.{1,2,3} - Windows: fixed bug when editing entries in editable listbox control - updated ISO 639-1 table - visually improved listbox - Win32 binary package is now cross-compiled with Mingw32 - fixed Unix makefile to not attempt to install KDE and/or GNOME entries if you doesn't have necessary write permissions Version 1.1.4 ------------- - fixed bug in Search when looking for strings with non-ASCII characters in them - charset combobox in catalog settings now remember values Version 1.1.3 ------------- - added ability to edit comments - nicer icons by Dean S. Jones - new source code references browser - new keyboard navigation - various UI improvements and bugfixes - added catalogs manager for easier access to translator's files - updated documentation Version 1.1.2 ------------- - fixed incorrect update of TM database path setting from preferences dialog - fixed assertion failures with empty catalog files when right-clicking the list control - changed default TM DB path to something more sane under Windows - Windows: fixed directories traversal during TM update under Windows Version 1.1.1 ------------- - added support for semi-automatic translations using translation memory concept. Translation memory is an indexed database of all string-translation pairs found in the system, plus algorithm to retrieve similar strings from the database. Poedit can dig translations from PO, MO and RPM files. - implemented search - Poedit source code is now documented with Doxygen - Windows: HTML Help documentation now uses CSS and looks much better - better keyboard navigation Version 1.1.0 ------------- - support for UTF-8 - changes to make Poedit work correctly with gettext 0.10.37 - fixed default ISO charset names to be iso-8859-n instead of iso8859-n - new ability to save catalogs in all common CR/LF formats, plus an option to preserve file's format (default values: Unix and preserve) - added fullscreen mode Version 1.0.3 ------------- - fixed comments parsing bug (reported by Mattias Dahlberg) - Windows: fixed ugly blinking when resizing Poedit window Version 1.0.2 ------------- - Unix: fixed problem with localized versions of gettext - fixed Content-Transfer-Encoding header (was "8-bit" instead of "8bit") - fixed POT-Creation-Date and PO-Revision-Date date writing - better handling of \n: strings with \n in them are now both displayed and saved to .po file as multiline records - saving catalog now preserves comments - Unix: fixed dist makefile target Version 1.0.1 ------------- - fixed loading of catalogs with multiline msgid records - fixed assertion failure in parsers info saving if ~/.poedit did not exist [harmless, in debug builds only] - right-clicking list control now selects the item under cursor - Unix: fixed docs/Makefile.am to cd correctly - Unix: configure change: better check for wxWidgets - Linux: fixed RPM spec file - Unix: added integration with KDE and GNOME desktops Version 1.0.0 ------------- - initial release poedit-2.0.6/COPYING0000664000372000037200000000204613230131546010757 00000000000000Copyright (c) 1999-2018 Vaclav Slavik Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. poedit-2.0.6/poedit.desktop0000664000372000037200000000237113230131554012603 00000000000000[Desktop Entry] Name=Poedit GenericName=Gettext catalogs editor GenericName[ca]=Editor de catàlegs del Gettext GenericName[cs]=Editor katalogů Gettext GenericName[da]=Gettext-katalogredigering GenericName[de]=Katalogeditor für Gettext GenericName[eo]=Gettext-a katalogredaktilo GenericName[es]=Editor de catálogos de Gettext GenericName[eu]=Gettext katalogo editatzailea GenericName[fr]=Éditeur de catalogues Gettext GenericName[hu]=Gettext fájlokat szerkesztő program GenericName[it]=Editor di cataloghi Gettext GenericName[kk]=Gettext каталогтар түзетушісі GenericName[ky]=Gettext каталогдор редактору GenericName[lt]=Gettext katalogų redaktorius GenericName[nl]=Gettext-vertaalhulpmiddel GenericName[pl]=Edytor pakietów gettext GenericName[pt_BR]=Editor de catálogos Gettext GenericName[sk]=Editor katalógov Gettext GenericName[sv]=Gettext Översättningsverktyg GenericName[vi]=Phần mềm sửa bản dịch Gettext MimeType=application/x-po;application/x-gettext;text/x-gettext-translation;text/x-po;application/x-gettext-translation;text/x-gettext-translation-template; Exec=poedit %F Icon=poedit Terminal=false Type=Application Categories=Development;Translation; StartupNotify=true Keywords=Translate;po;gettext; poedit-2.0.6/Makefile.in0000664000372000037200000007075313230132040011771 00000000000000# 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 = : build_triplet = @build@ host_triplet = @host@ subdir = . DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ $(top_srcdir)/configure $(am__configure_deps) \ $(dist_appdata_DATA) $(dist_desktop_DATA) AUTHORS COPYING NEWS \ README admin/compile admin/config.guess admin/config.sub \ admin/install-sh admin/missing $(top_srcdir)/admin/compile \ $(top_srcdir)/admin/config.guess \ $(top_srcdir)/admin/config.sub $(top_srcdir)/admin/install-sh \ $(top_srcdir)/admin/missing ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/admin/ax_boost_base.m4 \ $(top_srcdir)/admin/ax_boost_iostreams.m4 \ $(top_srcdir)/admin/ax_boost_regex.m4 \ $(top_srcdir)/admin/ax_boost_system.m4 \ $(top_srcdir)/admin/ax_boost_thread.m4 \ $(top_srcdir)/admin/ax_cxx_check_flag.m4 \ $(top_srcdir)/admin/ax_cxx_compile_stdcxx.m4 \ $(top_srcdir)/admin/wxwin.m4 $(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 = 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)$(appdatadir)" "$(DESTDIR)$(desktopdir)" DATA = $(dist_appdata_DATA) $(dist_desktop_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 DIST_SUBDIRS = $(SUBDIRS) 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@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BOOST_CPPFLAGS = @BOOST_CPPFLAGS@ BOOST_IOSTREAMS_LIB = @BOOST_IOSTREAMS_LIB@ BOOST_LDFLAGS = @BOOST_LDFLAGS@ BOOST_REGEX_LIB = @BOOST_REGEX_LIB@ BOOST_SYSTEM_LIB = @BOOST_SYSTEM_LIB@ BOOST_THREAD_LIB = @BOOST_THREAD_LIB@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CLD2_LIBS = @CLD2_LIBS@ CPPFLAGS = @CPPFLAGS@ CPPREST_LIBS = @CPPREST_LIBS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GREP = @GREP@ GTKSPELL_CFLAGS = @GTKSPELL_CFLAGS@ GTKSPELL_LIBS = @GTKSPELL_LIBS@ HAVE_CXX14 = @HAVE_CXX14@ ICU_CFLAGS = @ICU_CFLAGS@ ICU_LIBS = @ICU_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBSECRET_CFLAGS = @LIBSECRET_CFLAGS@ LIBSECRET_LIBS = @LIBSECRET_LIBS@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ LUCENE_CFLAGS = @LUCENE_CFLAGS@ LUCENE_LIBS = @LUCENE_LIBS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_SHORT_VERSION = @PACKAGE_SHORT_VERSION@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ WXRC = @WXRC@ WX_CFLAGS = @WX_CFLAGS@ WX_CFLAGS_ONLY = @WX_CFLAGS_ONLY@ WX_CONFIG_PATH = @WX_CONFIG_PATH@ WX_CONFIG_WITH_ARGS = @WX_CONFIG_WITH_ARGS@ WX_CPPFLAGS = @WX_CPPFLAGS@ WX_CXXFLAGS = @WX_CXXFLAGS@ WX_CXXFLAGS_ONLY = @WX_CXXFLAGS_ONLY@ WX_LIBS = @WX_LIBS@ WX_LIBS_STATIC = @WX_LIBS_STATIC@ WX_RESCOMP = @WX_RESCOMP@ WX_VERSION = @WX_VERSION@ WX_VERSION_MAJOR = @WX_VERSION_MAJOR@ WX_VERSION_MICRO = @WX_VERSION_MICRO@ WX_VERSION_MINOR = @WX_VERSION_MINOR@ 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@ ac_ct_CXX = @ac_ct_CXX@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ ACLOCAL_AMFLAGS = -I admin SUBDIRS = src docs locales artwork desktopdir = $(datadir)/applications dist_desktop_DATA = poedit.desktop poedit-uri.desktop appdatadir = $(datadir)/appdata dist_appdata_DATA = poedit.appdata.xml EXTRA_DIST = bootstrap all: all-recursive .SUFFIXES: am--refresh: Makefile @: $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ echo ' cd $(srcdir) && $(AUTOMAKE) --foreign'; \ $(am__cd) $(srcdir) && $(AUTOMAKE) --foreign \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign Makefile .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: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) $(am__cd) $(srcdir) && $(AUTOCONF) $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) $(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) $(am__aclocal_m4_deps): install-dist_appdataDATA: $(dist_appdata_DATA) @$(NORMAL_INSTALL) @list='$(dist_appdata_DATA)'; test -n "$(appdatadir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(appdatadir)'"; \ $(MKDIR_P) "$(DESTDIR)$(appdatadir)" || 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)$(appdatadir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(appdatadir)" || exit $$?; \ done uninstall-dist_appdataDATA: @$(NORMAL_UNINSTALL) @list='$(dist_appdata_DATA)'; test -n "$(appdatadir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(appdatadir)'; $(am__uninstall_files_from_dir) install-dist_desktopDATA: $(dist_desktop_DATA) @$(NORMAL_INSTALL) @list='$(dist_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-dist_desktopDATA: @$(NORMAL_UNINSTALL) @list='$(dist_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) # 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)$(appdatadir)" "$(DESTDIR)$(desktopdir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-generic 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-dist_appdataDATA install-dist_desktopDATA install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f $(am__CONFIG_DISTCLEAN_FILES) -rm -rf $(top_srcdir)/autom4te.cache -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: uninstall-dist_appdataDATA uninstall-dist_desktopDATA .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 \ 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-dist_appdataDATA \ install-dist_desktopDATA install-dvi install-dvi-am \ install-exec install-exec-am install-html install-html-am \ install-info install-info-am install-man install-pdf \ install-pdf-am install-ps install-ps-am install-strip \ installcheck installcheck-am installdirs installdirs-am \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-generic pdf pdf-am ps ps-am tags tags-am uninstall \ uninstall-am uninstall-dist_appdataDATA \ uninstall-dist_desktopDATA # 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: poedit-2.0.6/poedit.appdata.xml0000664000372000037200000000245313230131554013344 00000000000000 poedit.desktop CC0-1.0 MIT Poedit GUI editor for GNU gettext .po files Grafischer Editor für GNU Gettext-Dateien

This program is a GUI frontend to GNU Gettext utilities and a catalogs editor/source code parser. It helps with translating applications into other languages.

Dieses Programm stellt eine grafische Benutzeroberfläche für die Dienstprogramme aus GNU Gettext bereit, sowie einen Katalogeditor und einen Quellcode-Parser. Es hilft beim Übersetzen von Anwendungen in andere Sprachen.

https://upload.wikimedia.org/wikipedia/commons/c/c2/Poedit_1.8.1_en.png https://poedit.net https://crowdin.com/project/poedit help@poedit.net translation gettext wordpress
poedit-2.0.6/poedit-uri.desktop0000664000372000037200000000023413230131554013374 00000000000000[Desktop Entry] Name=Poedit Type=Application Terminal=false NoDisplay=true MimeType=x-scheme-handler/poedit; Exec=poedit --handle-poedit-uri %u Icon=poedit poedit-2.0.6/locales/0000775000372000037200000000000013230132101011410 500000000000000poedit-2.0.6/locales/vi.po0000664000372000037200000016011713230131554012327 00000000000000msgid "" msgstr "" "Project-Id-Version: poedit\n" "Report-Msgid-Bugs-To: help@poedit.net\n" "POT-Creation-Date: 2017-12-05 15:52+0100\n" "PO-Revision-Date: 2017-09-21 11:20-0400\n" "Last-Translator: vslavik \n" "Language-Team: Vietnamese\n" "Language: vi_VN\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" "X-Generator: crowdin.com\n" "X-Crowdin-Project: poedit\n" "X-Crowdin-Language: vi\n" "X-Crowdin-File: /locales/poedit.pot\n" msgid "Hide this notification message" msgstr "Ẩn lời cảnh báo này đi" msgid "Don’t Show Again" msgstr "Không Hiển Thị Lại" msgid "Don’t show again" msgstr "Không hiển thị lại" #, c-format msgid "(New: %i, obsolete: %i)" msgstr "(Mới: %i, quá cũ: %i)" msgid "Updating catalog" msgstr "Cập nhật catalog" msgid "Collecting source files…" msgstr "Đang thu thập các tập tin nguồn…" msgid "Extracting translatable strings…" msgstr "Đang giải nén các chuỗi có thể dịch…" msgid "Failed to load extracted catalog." msgstr "Lỗi rút trích catalog." msgid "Merging differences…" msgstr "Đang trộn các khác biệt…" #, c-format msgid "“%s” is not a valid POT file." msgstr "Tập tin '%s' không hợp định dạng POT." #, c-format msgid "%i line of file “%s” was not loaded correctly." msgid_plural "%i lines of file “%s” were not loaded correctly." msgstr[0] "%i dòng của tập tin '%s' đã không được nạp một cách chính xác." #, c-format msgid "Line %d of file “%s” is corrupted (not valid %s data)." msgstr "Dòng %d của tập tin '%s' bị hỏng (dữ liệu không hợp lệ %s)." #, c-format msgid "Malformed header: “%s”" msgstr "Bị thay đổi tiêu đề: \"%s\"" msgid "" "Broken catalog file: singular form msgstr used together with msgid_plural" msgstr "Tập tin catalog hỏng: dạng số ít msgstr mà sử dụng với msgid_plural" msgid "Broken catalog file: plural form msgstr used without msgid_plural" msgstr "" "Tập tin catalog hỏng: dạng số nhiều msgstr được sử dụng mà không có " "msgid_plural" msgid "" "There were errors when loading the catalog. Some data may be missing or " "corrupted as the result." msgstr "" "Có nhiều lỗi khi tải lên tập tin catalog. Một số dữ liệu bị mất hay sai lạc." #, c-format msgid "Couldn’t load file %s, it is probably corrupted." msgstr "Không thể tải tập tin %s, nó gần như chắc chắn đã bị hỏng." #, c-format msgid "" "File “%s” is read-only and cannot be saved.\n" "Please save it under different name." msgstr "" "Tệp tin %s chỉ cho phép đọc và không thể lưu lại được.\n" "Xin hãy lưu lại với một tên khác." #, c-format msgid "Couldn’t save file %s." msgstr "Không thể lưu tập tin %s." msgid "" "There was a problem formatting the file nicely (but it was saved all right)." msgstr "Có vấn đề với định dạng (nhưng vẫn có thể lưu lại)." #, c-format msgid "" "The catalog couldn’t be saved in “%s” charset as specified in catalog " "settings.\n" "\n" "It was saved in UTF-8 instead and the setting was modified accordingly." msgstr "" msgid "Error saving catalog" msgstr "Gặp lỗi khi lưu catalog" msgid "PO Translation Files" msgstr "PO Dịch Tập Tin" msgid "POT Translation Templates" msgstr "PO Dịch Mẫu" msgid "All Translation Files" msgstr "Tất Cả Các Tập Tin Bản Dịch" msgid "(Use default language)" msgstr "(Dùng ngôn ngữ mặc định)" msgid "Select your preferred language" msgstr "Chọn ngôn ngữ ưa thích" msgid "Language selection" msgstr "Lựa chọn ngôn ngữ" msgid "You must restart Poedit for this change to take effect." msgstr "Bạn phải khởi động lại Poedit để các thay đổi có tác dụng." msgid "Syncing" msgstr "Đồng bộ" #. TRANSLATORS: %s is a cloud destination, e.g. "Crowdin" or ftp.wordpress.com etc. #, c-format msgid "Syncing with %s…" msgstr "Đang đồng bộ với %s…" #. TRANSLATORS: %s is a cloud destination, e.g. "Crowdin" or ftp.wordpress.com etc. #, c-format msgid "Syncing with %s failed." msgstr "Đồng bộ với %s bị lỗi." msgid "Syncing error" msgstr "Lỗi đồng bộ" msgid "Downloading translations is disabled in this project." msgstr "Tải về bản dịch bị vô hiệu hóa trong dự án này." msgid "Not authorized, please sign in again." msgstr "Không có thẩm quyền, xin vui lòng đăng nhập lại." msgid "" "Crowdin is an online localization management platform and collaborative " "translation tool. Poedit can seamlessly sync PO files managed at Crowdin." msgstr "" "Crowdin là một nơi quản lý trực tuyến nền tảng và các công cụ dịch thuật hợp " "tác. Poedit có thể liên tục đồng bộ tập tin PO quản lý tại Crowdin." msgid "Sign In" msgstr "Đăng Nhập" msgid "Sign in" msgstr "Đăng nhập" msgid "Sign Out" msgstr "Đăng Xuất" msgid "Sign out" msgstr "Đăng xuất" msgid "Waiting for authentication…" msgstr "Đang chờ xác thực…" msgid "Updating user information…" msgstr "Đang cập nhật thông tin người dùng…" msgid "Signed in as:" msgstr "Đăng nhập như là:" msgid "Learn More About Crowdin" msgstr "Tìm Hiểu Thêm Về Crowdin" msgid "Learn more about Crowdin" msgstr "Tìm hiểu thêm về Crowdin" msgid "Sign in to Crowdin" msgstr "Đăng nhập vào Crowdin" msgid "Open Crowdin translation" msgstr "Mở Crowdin dịch" msgid "Project:" msgstr "Dự án:" msgid "Language:" msgstr "Ngôn ngữ:" msgid "File:" msgstr "Tập tin:" msgid "No translation projects listed in your Crowdin account." msgstr "" "Không có dự án dịch thuật được liệt kê trong tài khoản Crowdin của bạn." msgid "This project has no files that can be translated in Poedit." msgstr "Dự án này đã không có tập tin nào có thể được dịch trong Poedit." msgid "This file can only be edited in Crowdin’s web interface." msgstr "Tập tin này chỉ có thể được chỉnh sửa trong giao diện web của Crowdin." msgid "Downloading latest translations…" msgstr "Đang tải xuống bản dịch mới nhất…" msgid "Syncing with Crowdin failed." msgstr "Đồng bộ với Crowdin không thành công." msgid "Crowdin error" msgstr "Crowdin lỗi" msgid "Uploading translations…" msgstr "Tải lên bản dịch…" msgid "&Copy" msgstr "&Sao" msgid "Learn more" msgstr "Tìm hiểu thêm" msgid "Learn More" msgstr "Tìm Hiểu Thêm" msgid "&Help" msgstr "T&rợ giúp" msgid "MO files can’t be directly edited in Poedit." msgstr "Tập tin MO không thể chỉnh sửa trực tiếp trong Poedit." msgid "Error opening file" msgstr "Lỗi mở tập tin" msgid "" "Please open and edit the corresponding PO file instead. When you save it, " "the MO file will be updated as well." msgstr "" "Hãy mở và chỉnh sửa các tập tin PO. Khi bạn lưu nó, tập tin MO sẽ được cập " "nhật." msgid "don’t delete temporary files (for debugging)" msgstr "không xóa tập tin tạm (để gỡ lỗi)" msgid "handle a poedit:// URI" msgstr "xử lý một poedit:// URI" msgid "go to item at given line number" msgstr "nhảy tới mục với số dòng đã cho" msgid "Failed to communicate with Poedit process." msgstr "Không thể giao tiếp với quá trình Poedit." #, c-format msgid "Unhandled exception occurred: %s" msgstr "Chưa được xử lý ngoại lệ: %s" msgid "Open catalog" msgstr "Mở catalog" #, c-format msgid "File “%s” doesn’t exist." msgstr "Tập tin \"%s\" không tồn tại." msgid "Poedit is an easy to use translations editor." msgstr "Poedit rất dễ dùng cho việc biên tập bản dịch." msgid "Catalogs Manager" msgstr "Quản lý các catalog" msgid "Check for Updates…" msgstr "Kiểm tra cập nhật…" msgid "&Edit" msgstr "&Biên tập" msgid "Undo" msgstr "Huỷ thao tác trước" msgid "Redo" msgstr "Làm lại" msgid "Paste and Match Style" msgstr "Dán và Khớp Kiểu" msgid "Delete" msgstr "Xóa bỏ" msgid "Spelling and Grammar" msgstr "Chính Tả và Ngữ Pháp" msgid "Show Spelling and Grammar" msgstr "Hiện Chính Tả và Ngữ Pháp" msgid "Check Document Now" msgstr "Kiểm Tra Tài Liệu Ngay" msgid "Check Spelling While Typing" msgstr "Kiểm Tra Chính Tả Trong Khi Gõ" msgid "Check Grammar With Spelling" msgstr "Kiểm Tra Ngữ Pháp Với Chính Tả" msgid "Correct Spelling Automatically" msgstr "Sửa Chính Tả Tự Động" msgid "Substitutions" msgstr "Thay Thế" msgid "Show Substitutions" msgstr "Hiển Thị Thay Thế" msgid "Smart Copy/Paste" msgstr "Sao Chép/Dán Thông Minh" msgid "Smart Quotes" msgstr "Trích Dẫn Thông Minh" msgid "Smart Dashes" msgstr "Dấu Gạch Ngang Thông Minh" msgid "Smart Links" msgstr "Liên Kết Thông Minh" msgid "Text Replacement" msgstr "Thay Thế Văn Bản" msgid "Transformations" msgstr "Biến Đổi" msgid "Make Upper Case" msgstr "Chữ HOA" msgid "Make Lower Case" msgstr "Chữ thường" msgid "Capitalize" msgstr "Viết Hoa" msgid "Speech" msgstr "Lời nói" msgid "Start Speaking" msgstr "Bắt Đầu Nói" msgid "Stop Speaking" msgstr "Dừng Nói" msgid "&View" msgstr "&Trình bày" msgid "Enter Full Screen" msgstr "Nhập Toàn Màn Hình" msgid "Window" msgstr "Cửa sổ" msgid "Minimize" msgstr "Thu nhỏ" msgid "Zoom" msgstr "Phóng to" msgid "Bring All to Front" msgstr "Mang Tất Cả ra Trước" #. TRANSLATORS:File kind displayed in Finder/Explorer msgid "PO Translation" msgstr "PO Dịch" msgid "The file cannot be opened." msgstr "Không thể mở tập-tin." msgid "Invalid file" msgstr "Tập tin không hợp lệ" msgid "" "The file may be either corrupted or in a format not recognized by Poedit." msgstr "Tập tin có lẽ đã hư hỏng hoặc là Poedit không chấp nhận định dạng này." msgid "You can’t drop more than one file on Poedit window." msgstr "Bạn không thể kéo thả nhiều hơn một tập tin vào trong cửa sổ Poedit." #, c-format msgid "File “%s” is not a message catalog." msgstr "Tập tin '%s' không phải là catalog." msgid "Poedit" msgstr "Poedit" msgid "&File" msgstr "&Chính" msgid "&Go" msgstr "Nhả&y đến" #. TRANSLATORS: %s is language name in its basic form (as you #. would see e.g. in a list of supported languages). You may need #. to rephrase it, e.g. to an equivalent of "for language %s". #, c-format msgid "" "Spellchecking is disabled, because the dictionary for %s isn’t installed." msgstr "" "Kiểm tra chính tả bị vô hiệu, bởi vì từ điển cho %s không được cài đặt." msgid "Install" msgstr "Cài đặt" msgid "Catalog modified. Do you want to save changes?" msgstr "Catalog đã bị sửa. Bạn có muốn lưu lại các thay đổi không?" msgid "Save changes" msgstr "Lưu thay đổi" msgid "Your changes will be lost if you don’t save them." msgstr "Các thay đổi của bạn sẽ bị mất nếu bạn không lưu chúng." msgid "Save" msgstr "Lưu" msgid "Don’t save" msgstr "Không lưu" msgid "Don’t Save" msgstr "Không Lưu" msgid "Save as…" msgstr "Lưu như…" msgid "Compile to…" msgstr "Biên dịch sang…" msgid "Compiled Translation Files" msgstr "Các tập tin bản dịch đã được biên dịch" msgid "Export as…" msgstr "Xuất ra như…" msgid "HTML Files" msgstr "Tập tin HTML" msgid "Open catalog template" msgstr "Mở tập tin catalog mẫu" msgid "Source code not available." msgstr "Mã nguồn không có sẵn." msgid "Updating failed" msgstr "Cập Nhật không thành công" msgid "" "Translations couldn’t be updated from the source code, because no code was " "found in the location specified in the catalog’s Properties." msgstr "" "Bản dịch không thể được cập nhật từ mã nguồn, bởi vì không có mã nào được " "tìm thấy tại vị trí chỉ định trong Thuộc tính của danh mục." msgid "Entries in the catalog are probably incorrect." msgstr "Các mục từ trong catalog chắc chắn là không đúng." msgid "Updating the catalog failed. Click on 'Details >>' for details." msgstr "" "Cập nhật catalog không thành công. Bấm chuột vào 'Chi tiết >>' để có thông " "tin đầy đủ." #, c-format msgid "%d issue with the translation found." msgid_plural "%d issues with the translation found." msgstr[0] "Tìm thấy trong bản dịch %d lỗi." msgid "Validation results" msgstr "Kết quả xác nhận" msgid "" "Entries with errors were marked in red in the list. Details of the error " "will be shown when you select such an entry." msgstr "" "Các mục có lỗi được đánh dấu màu đỏ trong danh sách. Chi tiết về lỗi sẽ hiển " "thị khi bạn chọn mục tương ứng đó." msgid "The file was saved safely." msgstr "Tệp được lưu một cách an toàn." msgid "" "The file was saved safely and compiled into the MO format, but it will " "probably not work correctly." msgstr "" "Các tập tin được lưu một cách an toàn và biên soạn thành định dạng MO, nhưng " "nó sẽ có lẽ không làm việc một cách chính xác." msgid "" "The file was saved safely, but it cannot be compiled into the MO format and " "used." msgstr "" "Tập tin đã được lưu một cách an toàn, nhưng nó không thể được biên dịch " "thành định dạng MO để có thể sử dụng được." msgid "" "The file was compiled into the MO format, but it will probably not work " "correctly." msgstr "" "Các tập tin được biên dịch vào các định dạng MO, nhưng nó sẽ có lẽ không làm " "việc một cách chính xác." msgid "The file cannot be compiled into the MO format and used." msgstr "" "Các tập tin không thể được biên dịch thành các định dạng MO và sử dụng." msgid "No problems with the translation found." msgstr "Không tìm thấy lỗi nào trong bản dịch." #, c-format msgid "The translation is ready for use, but %d entry is not translated yet." msgid_plural "" "The translation is ready for use, but %d entries are not translated yet." msgstr[0] "Bản dịch đã sẵn sàng để sử dụng, nhưng %d mục không được dịch." msgid "The translation is ready for use." msgstr "Bản dịch đã sẵn sàng để dùng" #, c-format msgid "Poedit automatically fixed invalid content in the file “%s”." msgstr "Poedit đã tự động sửa các nội dung không hợp lệ trong tập tin \"%s\"." msgid "" "The file contained duplicate items, which is not allowed in PO files and " "would prevent the file from being used. Poedit fixed the issue, but you " "should review translations of any items marked as needing work and correct " "them if necessary." msgstr "" "Tập tin chứa các mục trùng lặp, mà không được cho phép trong các tập tin PO " "và sẽ ngăn chặn các tập tin được sử dụng từ chúng. Poedit đã sửa vấn đề, " "nhưng bạn nên xem lại các bản dịch của bất kỳ mục nào được đánh dấu là cần " "làm việc và sửa lại chúng nếu cần thiết." msgid "Language of the translation isn’t set." msgstr "Ngôn ngữ của bản dịch chưa được đặt." msgid "Set Language" msgstr "Đặt ngôn ngữ" msgid "Set language" msgstr "Đặt ngôn ngữ" #. TRANSLATORS: This is shown underneath "Language of the translation isn't set (or ...is the same as source language)." msgid "" "Suggestions are not available if the translation language is not set " "correctly. Other features, such as plural forms, may be affected as well." msgstr "" "Gợi ý không có sẵn nếu ngôn ngữ bản dịch không được thiết lập đúng. Các tính " "năng khác, chẳng hạn như hình thức số nhiều, có thể bị ảnh hưởng." msgid "Language of the translation is the same as source language." msgstr "Ngôn ngữ của bản dịch là giống như ngôn ngữ nguồn." msgid "Fix Language" msgstr "Sửa ngôn ngữ" msgid "Fix language" msgstr "Sửa chữa ngôn ngữ" msgid "" "This catalog has entries with plural forms, but doesn’t have Plural-Forms " "header configured." msgstr "" "Có các mục tin dạng số nhiều, nhưng chưa được khai báo ở phần đầu Plural-" "Form." msgid "" "Entries in this catalog have different plural forms count from what " "catalog’s Plural-Forms header says" msgstr "" msgid "Required header Plural-Forms is missing." msgstr "Phần đầu Plural-Forms đã yêu cầu bị thiếu." #, c-format msgid "Syntax error in Plural-Forms header (\"%s\")." msgstr "Cú pháp lỗi trong khai báo phần đầu Plural-Forms (\"%s\")." msgid "Fix the Header" msgstr "Sửa Phần Đầu" msgid "Fix the header" msgstr "Sửa phần đầu" #. TRANSLATORS: %s is language name in its basic form (as you #. would see e.g. in a list of supported languages). You may need #. to rephrase it, e.g. to an equivalent of "for language %s". #, c-format msgid "Plural forms expression used by the catalog is unusual for %s." msgstr "Dạng thức số nhiều được dùng cho catalog là bất thường đối với %s." #. TRANSLATORS: A verb, shown as action button with ""Plural forms expression used by the catalog is unusual for %s.")" msgid "Review" msgstr "Xem lại" #, c-format msgid "Error loading message catalog file “%s”." msgstr "Gặp lỗi khi đang tải các chuỗi từ tập tin catalog '%s'." #, c-format msgid "Translated: %d of %d (%d %%)" msgstr "Đã dịch: %d of %d (%d %%)" #, c-format msgid "Remaining: %d" msgstr "Còn lại: %d" #, c-format msgid "%d error" msgid_plural "%d errors" msgstr[0] "%d lỗi" #, c-format msgid "%d entry" msgid_plural "%d entries" msgstr[0] "%d mục" msgid " (unsaved)" msgstr " (chưa lưu)" msgid " (modified)" msgstr " (đã sửa)" #, c-format msgid "Failed to update translation memory: %s" msgstr "Gặp lỗi khi cập nhật bộ nhớ dịch: %s" msgid "Purge deleted translations" msgstr "Xóa bỏ các chuỗi dịch bị đánh dấu là không dùng nữa" msgid "Do you want to remove all translations that are no longer used?" msgstr "Bạn có muốn loại bỏ tất cả các chuỗi không còn sử dụng nữa không?" msgid "" "If you continue with purging, all translations marked as deleted will be " "permanently removed. You will have to translate them again if they are added " "back in the future." msgstr "" "Nếu bạn vẫn muốn thanh lọc, tất cả các chuỗi dịch mà được đánh dấu là đã xoá " "sẽ bị gỡ bỏ hoàn toàn khỏi tập tin. Bạn sẽ phải dịch lại chúng nếu người lập " "trình sử dụng lại nó trong tương lai." msgid "Keep" msgstr "Giữ lại" msgid "Purge" msgstr "Thanh lọc" msgid "Copy from source text" msgstr "Chép từ chuỗi nguồn" msgid "Copy from Source Text" msgstr "Chép từ chuỗi nguồn" #. TRANSLATORS: This is the key shortcut used in menus on Windows, some languages call them differently #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Ctrl+" msgstr "Ctrl+" msgid "Clear translation" msgstr "Xóa phần dịch" msgid "Clear Translation" msgstr "Xóa phần dịch" msgid "Edit comment" msgstr "Sửa chú thích" msgid "Edit Comment" msgstr "Sửa chú thích" msgid "References:" msgstr "Tham chiếu:" msgid "&Bookmarks" msgstr "Đánh &dấu" #. TRANSLATORS: This is the key shortcut used in menus on Windows, some languages call them differently #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Alt+" msgstr "Alt+" #, c-format msgid "Set bookmark %i" msgstr "Đặt dấu trang %i" #, c-format msgid "Go to bookmark %i" msgstr "Đi đến dấu trang %i" #, c-format msgid "Set Bookmark %i" msgstr "Đặt Dấu Trang %i" #, c-format msgid "Go to Bookmark %i" msgstr "Đi đến Dấu Trang %i" msgid "Hide Sidebar" msgstr "Ẩn Thanh Công Cụ" msgid "Show Sidebar" msgstr "Hiện thanh công cụ" msgid "Hide Status Bar" msgstr "Ẩn Thanh Trạng Thái" msgid "Show Status Bar" msgstr "Hiển Thanh Trạng Thái" msgid "Source text:" msgstr "Văn bản nguồn:" msgid "Singular:" msgstr "Dạng số ít:" msgid "Plural:" msgstr "Số nhiều:" msgid "Translation:" msgstr "Bản dịch:" msgid "Pre-translated" msgstr "Dịch trước" msgid "Needs Work" msgstr "Cần làm" #. TRANSLATORS: This indicates that the string's translation isn't final #. and has known problems. For example, it might be machine translated or #. fuzzy matched from an older string. The translation should be short and #. convey this. If it's problematic to translate it, "Needs review" is #. acceptable substitute, but note that the meaning is subtly different: #. "needs review" implies that somebody else should review the string after #. I am done with it (i.e. consider it good), while "needs work" implies I #. need to return to it and finish the translation. msgid "Needs work" msgstr "Cần làm việc" msgid "" "POT files are only templates and don’t contain any translations themselves.\n" "To make a translation, create a new PO file based on the template." msgstr "" "Các tập tin POT chỉ là các mẫu và không chứa bất kì bản dịch nào của chính " "chúng.\n" "Để tạo 1 bản dịch, tạo 1 tập tin PO mới dựa trên mẫu." msgid "Create New Translation" msgstr "Tạo Bản Dịch Mới" msgid "Create new translation" msgstr "Tạo bản dịch mới" msgid "Everything" msgstr "Mọi thứ" #, c-format msgid "Form %i" msgstr "Dạng %i" msgid "Singular" msgstr "Dạng số ít" msgid "Zero" msgstr "Số không" msgid "One" msgstr "Một" msgid "Two" msgstr "Hai" msgid "Plural" msgstr "Số nhiều" msgid "Other" msgstr "Khác" #, c-format msgid "%s Format" msgstr "Định dạng %s" #. TRANSLATORS: %s is replaced with language name, e.g. "PHP" or "C", so "PHP Format" etc." #, c-format msgid "%s format" msgstr "định dạng %s" msgid "Source text" msgstr "Văn bản nguồn" #, c-format msgid "Translation — %s" msgstr "Bản dịch — %s" msgid "ID" msgstr "ID" #, c-format msgid "Source text — %s" msgstr "Mã nguồn văn bản — %s" msgid "unknown language" msgstr "không hiểu ngôn ngữ" #, c-format msgid "Failed command: %s" msgstr "Lệnh bị sai: %s" msgid "Failed to merge gettext catalogs." msgstr "Lỗi trộn catalog gettext." msgid "Source file" msgstr "Tập tin mã nguồn" msgid "Source file occurrence:" msgstr "Xuất hiện trong tập tin nguồn:" msgid "Open in Editor" msgstr "Mở trong Trình Soạn Thảo" msgid "Open in editor" msgstr "Mở trong trình soạn thảo" msgid "No references for the selected item." msgstr "Không có tham chiếu cho mục đã chọn." #, c-format msgid "Error opening file %s!" msgstr "Gặp lỗi khi đang mở tập tin %s!" msgid "Find" msgstr "Tìm" msgid "Replace" msgstr "Thay thế" #. TRANSLATORS: Expander in Find window for additional options (case sensitive etc.) msgid "Options" msgstr "Tùy chọn" msgid "Ignore case" msgstr "Trường hợp bỏ qua" msgid "Wrap around" msgstr "Ngắt khoảng" msgid "Whole words only" msgstr "Phải khớp toàn bộ các từ" msgid "Find in source texts" msgstr "Tìm trong các văn bản nguồn" msgid "Find in translations" msgstr "Tìm trong phần dịch" msgid "Find in comments" msgstr "Tìm trong chú thích" msgid "Close" msgstr "Đóng" msgid "Replace &All" msgstr "Thay Thế &Tất Cả" msgid "Replace &all" msgstr "Thay Thế &tất cả" msgid "&Replace" msgstr "T&hay thế" msgid "< &Previous" msgstr "< &Trước" msgid "&Next >" msgstr "&Tiếp theo >" msgid "String to find" msgstr "Chuỗi cần tìm" msgid "Replacement string" msgstr "Thay thế chuỗi" #, c-format msgid "Cannot execute program: %s" msgstr "Không thể thi hành chương trình: %s" msgid "Language Code or Name (e.g. en_GB)" msgstr "Mã ngôn ngữ hoặc tên (ví dụ: vi_VN)" msgid "Translation Language" msgstr "Ngôn ngữ bản dịch" msgid "Language of the translation:" msgstr "Ngôn ngữ của bản dịch:" msgid "Poedit - Catalogs manager" msgstr "Poedit - Quản lý catalog" msgid "Catalog" msgstr "Catalog" msgid "Total" msgstr "Tổng cộng" msgid "Untrans" msgstr "Chưa dịch" msgid "Errors" msgstr "Lỗi" msgid "Last modified" msgstr "Lần sửa cuối" msgid "Select directory" msgstr "Chọn thư mục" msgid "Directories:" msgstr "Thư mục:" msgid "" msgstr "" msgid "Do you want to delete the project?" msgstr "Bạn có muốn xóa bỏ dự án không?" msgid "Confirmation" msgstr "Sự xác thực" msgid "" "Do you really want to do mass update of\n" "all catalogs in this project?" msgstr "" "Bạn có muốn cập nhật hàng loạt\n" "tất cả các catalog trong dự án này?" msgid "Information about the translator" msgstr "Thông tin về các dịch giả" msgid "Name:" msgstr "Tên:" msgid "Your Name" msgstr "Tên Bạn" msgid "Email:" msgstr "Email:" msgid "your_email@example.com" msgstr "thevuong@live.com" msgid "" "Your name and email address are only used to set the Last-Translator header " "of GNU gettext files." msgstr "" "Tên và địa chỉ email của bạn chỉ được sử dụng để thiết lập các tiêu đề dịch " "giả cuối cùng của GNU gettext tập tin." msgid "Editing" msgstr "Đang chỉnh sửa" msgid "Automatically compile MO file when saving" msgstr "Tự động biên dịch tập tin MO khi lưu" msgid "Show summary after catalog update" msgstr "Hiển thị thông tin tóm tắt sau khi cập nhật catalog" msgid "Check spelling" msgstr "Kiểm tra lỗi chính tả" msgid "Always change focus to text input field" msgstr "Luôn luôn để focus vào ô nhập liệu" msgid "" "Never let the list of strings take focus. If enabled, you must use Ctrl-" "arrows for keyboard navigation but you can also type text immediately, " "without having to press Tab to change focus." msgstr "" "Đừng bao giờ để danh sách chuỗi nhận focus. Nếu cho phép, bạn phải sử dụng " "Ctrl-Phím mũi tên để có thể di chuyển bằng bàn phím nhưng bạn lại có thể " "nhập chữ một cách trực tiếp, mà không cần phải nhấn Tab để thay đổi focus." msgid "Appearance" msgstr "Giao diện" msgid "Use custom list font:" msgstr "Sử dụng danh sách tùy chỉnh phông:" msgid "Use custom text fields font:" msgstr "Sử dụng font tùy chỉnh các trường văn bản:" msgid "Change UI language" msgstr "Thay đổi ngôn ngữ UI" #. TRANSLATORS: This is a note appended to "Check spelling" when running on older Windows versions msgid "(requires Windows 8 or newer)" msgstr "(yêu cầu Windows 8 hay mới hơn)" msgid "General" msgstr "Tổng quan" msgid "Use translation memory" msgstr "Dùng bộ nhớ bản dịch" msgid "Learn From Files…" msgstr "Tìm hiểu từ các tập tin…" msgid "Learn from files…" msgstr "Tìm hiểu từ các tập tin…" #. TRANSLATORS: This is a button that deletes everything in the translation memory (i.e. clears/resets it). msgid "Reset" msgstr "Thiết lập lại" #. TRANSLATORS: Followed by "match translations within the file" or "pre-translate from TM" msgid "When updating from sources" msgstr "Khi cập nhật từ nguồn" #. TRANSLATORS: Preceded by "When updating from sources" msgid "fuzzy match within the file" msgstr "Làm mờ trùng bên trong tập tin" #. TRANSLATORS: Preceded by "When updating from sources" msgid "pre-translate from TM" msgstr "Dịch trước từ TM" msgid "" "Poedit can attempt to fill in new entries from only previous translations in " "the file or from your entire translation memory. Using the TM won’t be very " "effective if it’s near-empty, but it will get better as you add more " "translations to it." msgstr "" "Poedit có thể cố gắng để điền vào mục mới từ bản dịch trước đó trong tập tin " "hoặc từ toàn bộ bộ nhớ dịch của bạn. Sử dụng TM sẽ không thể hiệu quả nếu nó " "gần như trống rỗng, nhưng nó sẽ trở nên tốt hơn khi bạn thêm nhiều bản dịch " "với nó." msgid "Stored translations:" msgstr "Các bản dịch được lưu trữ:" msgid "Database size on disk:" msgstr "Kích thước của cơ sở dữ liệu trên đĩa:" msgid "Select translation files to import" msgstr "Chọn các tập tin bản dịch để nhập vào" msgid "Translation Memory" msgstr "Cơ sở dữ liệu dịch" msgid "Importing translations…" msgstr "Đang nhập các bản dịch…" msgid "Finalizing…" msgstr "Hoàn thành…" msgid "Reset translation memory" msgstr "Đặt lại bộ nhớ dịch thuật" msgid "Are you sure you want to reset the translation memory?" msgstr "Bạn có chắc bạn muốn đặt lại bộ nhớ dịch thuật?" msgid "" "Resetting the translation memory will irrevocably delete all stored " "translations from it. You can’t undo this operation." msgstr "" "Đặt lại bộ nhớ dịch thuật sẽ xóa bỏ tất cả bản dịch được lưu trữ từ nó. Bạn " "không thể hoàn tác thao tác này." msgid "Cancel" msgstr "Hủy bỏ" #. TRANSLATORS: This is abbreviation of "Translation Memory" used in Preferences on macOS. #. Long text looks weird there, too short (like TM) too, but less so. "General" is about ideal #. length there. msgid "TM" msgstr "TM" msgid "" "Source code extractors are used to find translatable strings in the source " "code files and extract them so that they can be translated." msgstr "" "Trình giải nén mã nguồn được dùng để tìm các chuỗi có thể dịch trong các tập " "tin mã nguồn và giải nén nó vì thế chúng có thể được dịch." msgid "Custom Extractors:" msgstr "Tùy Chọn Giải Nén:" msgid "Custom extractors:" msgstr "Tùy chọn giải nén:" msgid "Edit…" msgstr "Chỉnh sửa…" msgid "GNU gettext" msgstr "GNU gettext" msgid "" "Supports all programming languages recognized by GNU gettext tools (PHP, C/C+" "+, C#, Perl, Python, Java, JavaScript and others)." msgstr "" "Hỗ trợ tất cả các ngôn ngữ lập trình được công nhận bởi công cụ GNU gettext " "(PHP, C/c + +, C#, Perl, Python, Java, JavaScript và những ngôn ngữ khác)." msgid "Delete extractor" msgstr "Xóa trình giải nén" #, c-format msgid "Are you sure you want to delete the “%s” extractor?" msgstr "Bạn có chắc muốn xóa trình giải nén \"%s\"?" msgid "Extractors" msgstr "Trình giải nén" msgid "Accounts" msgstr "Tài khoản" msgid "Automatically check for updates" msgstr "Tự động kiểm tra cập nhật" msgid "Include beta versions" msgstr "Bao gồm cả bản thử nghiệm" msgid "" "Beta versions contain the latest new features and improvements, but may be a " "bit less stable." msgstr "" "Phiên bản beta chứa các tính năng và cải tiến mới nhất, nhưng có thể ít ổn " "định." msgid "Updates" msgstr "Cập Nhật" msgid "" "These settings affect internal formatting of PO files. Adjust them if you " "have specific requirements e.g. because of version control." msgstr "" "Các thiết đặt này ảnh hưởng đến định dạng bên trong của các tập tin PO. Điều " "chỉnh chúng nếu bạn có yêu cầu cụ thể ví dụ vì kiểm soát phiên bản." msgid "Line endings:" msgstr "Dòng kết thúc:" msgid "Unix (recommended)" msgstr "Unix (nên dùng)" msgid "Windows" msgstr "Kiểu Windows" #. TRANSLATORS: Followed by text control for entering number; wraps text at given width msgid "Wrap at:" msgstr "Ngắt tại:" msgid "Preserve formatting of existing files" msgstr "Duy trì định dạng của tập tin đã có" msgid "Advanced" msgstr "Nâng cao" msgid "Pre-translating…" msgstr "Đang dịch trước..." #, c-format msgid "Pre-translated %u string" msgid_plural "Pre-translated %u strings" msgstr[0] "Chuỗi %u đã được dịch trước" #. TRANSLATORS: This is a somewhat common term describing the action where #. you apply the translation memory and/or machine translation to all of the #. strings you're translating as the first step, followed by correcting, #. improving etc., i.e. actually translating the strings. This may be tricky #. to express in other languages as simply as in English, but please try to #. keep it similarly concise. Please try to avoid, if possible, describing it #. as "auto-translation" and similar, because such terminology would mislead #. some users into thinking it's all that needs to be done (spoken from #. experience). "Pre-translate" nicely expresses that it's only the step done #. *before* actual translation. msgid "Pre-translate" msgstr "Dịch trước" msgid "Only fill in exact matches" msgstr "Chỉ điền vào các từ khớp chính xác" msgid "" "By default, inaccurate results are filled in as well and marked as needing " "work. Check this option to only include accurate matches." msgstr "" "Theo mặc định, kết quả không chính xác được điền vào là tốt và được đánh dấu " "là cần làm việc. Chọn tuỳ chọn này để chỉ bao gồm các từ khớp chính xác." msgid "Don’t mark exact matches as needing work" msgstr "Không đánh dấu các từ khớp chính xác là cần làm việc" msgid "" "Only enable if you trust the quality of your TM. By default, all matches " "from the TM are marked as needing work and should be reviewed before use." msgstr "" "Chỉ cho phép nếu bạn tin tưởng chất lượng TM của bạn. Theo mặc định, tất cả " "các từ khớp từ TM được đánh dấu là cần làm việc và nên được xem lại." msgid "" "Pre-translation automatically finds exact or fuzzy matches for untranslated " "strings in the translation memory and fills in their translations." msgstr "" "Bản dịch tự động tìm kiếm kết hợp chính xác hoặc làm mờ cho các chuỗi chưa " "dịch trong bộ nhớ dịch và điền vào bản dịch của họ." #, c-format msgid "%d entry was pre-translated." msgid_plural "%d entries were pre-translated." msgstr[0] "%d mục đã được dịch trước." msgid "" "The translations were marked as needing work, because they may be " "inaccurate. You should review them for correctness." msgstr "" "Các bản dịch đã được đánh dấu là cần làm việc, bởi vì chúng có thể không " "chính xác. Bạn nên xem lại chúng cho việc sửa chữa." msgid "No entries could be pre-translated." msgstr "Không có mục có thể được trước dịch." msgid "" "The TM doesn’t contain any strings similar to the content of this file. It " "is only effective for semi-automatic translations after Poedit learns enough " "from files that you translated manually." msgstr "" "TM không chứa bất kỳ chuỗi tương tự cho nội dung của tập tin này. Nó là chỉ " "có hiệu lực cho các bản dịch bán tự động sau khi Poedit học đủ từ các tập " "tin mà bạn đã dịch thủ công." msgid "" "Drag and Drop Folders Here\n" "\n" "or use the + button" msgstr "" "Kéo và Thả Thư mục Ở đây \n" "\n" "hoặc sử dụng nút +" msgid "" "Drag and drop folders here\n" "\n" "or use the + button" msgstr "" "Kéo và thả thư mục ở đây \n" "\n" "hoặc sử dụng nút +" msgid "Add Folders…" msgstr "Thêm Thư Mục…" msgid "Add folders…" msgstr "Thêm thư mục…" msgid "Add Files…" msgstr "Thêm Tệp Tin…" msgid "Add files…" msgstr "Thêm tệp tin…" msgid "Add Wildcard…" msgstr "Thêm ký tự đại diện…" msgid "Add wildcard…" msgstr "Thêm ký tự đại diện…" msgid "Paths" msgstr "Đường dẫn" msgid "Excluded paths" msgstr "Đường dẫn loại trừ" msgid "Advanced extraction settings" msgstr "Cài đặt giải nén nâng cao" msgid "Extract notes for translators from:" msgstr "Giải nén ghi chú cho người dịch từ:" msgid "Comments prefixed with:" msgstr "Bình luận bắt đầu bằng:" msgid "All comments" msgstr "Tất cả bình luận" msgid "Additional xgettext flags:" msgstr "Bổ sung cờ xgettext :" msgid "Additional keywords" msgstr "Từ khoá bổ xung" msgid "Name of the project the translation is for" msgstr "Tên của dự án của bản dịch" msgid "Team name and email address or URL" msgstr "Tên nhóm và địa chỉ email hoặc URL" msgid "e.g. nplurals=2; plural=(n > 1);" msgstr "ví dụ: nplurals=2; plural=(n > 1);" msgid "UTF-8 (recommended)" msgstr "UTF-8 (nên dùng)" msgid "Please save the file first. This section cannot be edited until then." msgstr "" "Vui lòng lưu tập tin này trước. Phần này không được chỉnh sửa cho đến khi " "tập tin được lưu lại." msgid "Not all plural forms are translated." msgstr "Không phải tất cả các hình thức số nhiều được dịch." msgid "The translation should start as a sentence." msgstr "Bản dịch nên bắt đầu như là một câu." msgid "The translation should start with a lowercase character." msgstr "Bản dịch nên bắt đầu với một ký tự chữ thường." msgid "The translation doesn’t start with a space." msgstr "Bản dịch không bắt đầu với một dấu cách." msgid "The translation starts with a space, but the source text doesn’t." msgstr "Bản dịch bắt đầu với một dấu cách, nhưng văn bản nguồn không có." msgid "The translation is missing a newline at the end." msgstr "Bản dịch đang thiếu 1 dòng mới ở cuối." msgid "The translation ends with a newline, but the source text doesn’t." msgstr "Bản dịch kết thúc với một dòng mới, nhưng văn bản nguồn không có." msgid "The translation is missing a space at the end." msgstr "Các bản dịch là thiếu một dấu cách ở phần cuối." msgid "The translation ends with a space, but the source text doesn’t." msgstr "Bản dịch kết thúc với một dấu cách, nhưng văn bản nguồn không có." #, c-format msgid "The translation should end with “%s”." msgstr "Bản dịch nên kết thúc với \"%s\"." #, c-format msgid "The translation should not end with “%s”." msgstr "Bản dịch không nên kết thúc với \"%s\"." #, c-format msgid "The translation ends with “%s”, but the source text ends with “%s”." msgstr "" "Bản dịch kết thúc bằng \"%s\", nhưng văn bản nguồn kết thúc bằng \"%s\"." msgid "Comment:" msgstr "Chú thích:" msgid "OK" msgstr "Đồng ý" msgid "C&lear" msgstr "&Dọn dẹp" msgid "Clear the comment" msgstr "Xóa phần chú thích" msgid "New" msgstr "Mới" msgid "Create new translations project" msgstr "Tạo một dự án dịch mới" msgid "Edit" msgstr "Biên tập" msgid "Edit the project" msgstr "Chỉnh sửa dự án" msgid "Delete the project" msgstr "Xóa bỏ dự án" msgid "Update all" msgstr "Cập nhật tất cả" msgid "Update all catalogs in the project" msgstr "Cập nhật tất cả các catalog trong dự án" msgid "Edit project" msgstr "Chỉnh sửa dự án" msgid "Project name:" msgstr "Tên dự án:" msgid "Browse" msgstr "Duyệt" msgid "Add directory to the list" msgstr "Thêm thư mục vào danh sách" msgid "&New…" msgstr "&Mới…" msgid "New from &POT/PO file…" msgstr "Tạo mới từ tệp tin &POT/PO…" msgid "New From &POT/PO File…" msgstr "Tạo Mới Từ Tệp Tin &POT/PO…" msgid "&Open…" msgstr "&Mở…" msgid "Open Recent" msgstr "Mở gần đây" msgid "Open from Crowdin…" msgstr "Mở từ Crowdin…" msgid "Open From Crowdin…" msgstr "Mở Từ Crowdin…" msgid "&Close" msgstr "Đó&ng" msgid "&Save" msgstr "&Lưu" msgid "Save &as…" msgstr "Lưu &như…" msgid "Save &As…" msgstr "Lưu &Như…" msgid "Compile to MO…" msgstr "Biên dịch sang MO…" msgid "E&xport as HTML…" msgstr "&Xuất ra định dạng HTML…" msgid "Check for updates…" msgstr "Kiểm tra cập nhật…" msgid "&Preferences…" msgstr "&Cá nhân hóa…" msgid "Catalogs &manager" msgstr "&Quản lý các catalog" msgid "Catalogs &Manager" msgstr "&Quản lý các catalog" msgid "E&xit" msgstr "Thoá&t" msgid "Quit" msgstr "Thoát" msgid "Copy from singular" msgstr "Sao chép từ số ít" msgid "Copy From Singular" msgstr "Sao chép từ số ít" msgid "Translation needs &work" msgstr "Bản dịch cần làm &việc" msgid "Translation Needs &Work" msgstr "Bản Dịch Cần Làm &Việc" msgid "Edit &comment" msgstr "Sửa &chú thích" msgid "Edit &Comment" msgstr "Sửa &chú thích" msgid "Suggestions" msgstr "Đề xuất" msgid "&Find…" msgstr "&Tìm…" msgid "Replace…" msgstr "Thay thế…" msgid "Find next" msgstr "Tìm tiếp" msgid "Find previous" msgstr "Tìm lùi" msgid "Find and Replace…" msgstr "Tìm và Thay thế…" msgid "Find Next" msgstr "Tìm tiếp" msgid "Find Previous" msgstr "Tìm lùi" msgid "&Preferences" msgstr "&Cá nhân hóa" msgid "Display entry &IDs" msgstr "Hiển thị các &ID mục vào" msgid "Display Entry &IDs" msgstr "Hiển thị các &ID mục vào" msgid "Sort by &file order" msgstr "Sắp xếp theo thứ tự &tập tin" msgid "Sort by &File Order" msgstr "Sắp xếp theo thứ tự &Tập tin" msgid "Sort by &source" msgstr "Sắp xếp theo &chuỗi nguồn" msgid "Sort by &Source" msgstr "Sắp xếp theo &chuỗi nguồn" msgid "Sort by &translation" msgstr "Sắp xếp theo chuỗi &dịch" msgid "Sort by &Translation" msgstr "Sắp xếp theo chuỗi &dịch" msgid "&Group by context" msgstr "Nhóm theo n&gữ cảnh" msgid "&Group By Context" msgstr "Nhóm Theo N&gữ Cảnh" msgid "Entries with errors first" msgstr "Mục có lỗi đầu tiên" msgid "Entries with Errors First" msgstr "Mục Có Lỗi Đầu Tiên" msgid "&Untranslated entries first" msgstr "Mục &chưa dịch đầu tiên" msgid "&Untranslated Entries First" msgstr "Mục &chưa dịch đầu tiên" msgid "&Show references" msgstr "&Hiển thị tham chiếu" msgid "&Show References" msgstr "&Hiển thị tham chiếu" msgid "Show sidebar" msgstr "Hiện thanh công cụ" msgid "Show status bar" msgstr "Hiển thanh trạng thái" msgid "C&atalog" msgstr "C&atalog" msgid "&Update from sources" msgstr "&Cập nhật từ mã nguồn" msgid "&Update from Sources" msgstr "&Cập nhật từ Mã nguồn" msgid "Update from &POT file…" msgstr "Cập nhật từ tập tin &POT…" msgid "Update from &POT File…" msgstr "Cập nhật từ tập tin &POT…" msgid "Sync with Crowdin" msgstr "Đồng bộ với Crowdin" msgid "Pre-&translate…" msgstr "Dịch &trước…" msgid "&Purge deleted translations" msgstr "&Thanh lọc các chuỗi đã xóa" msgid "&Purge Deleted Translations" msgstr "&Thanh lọc các chuỗi đã xóa" msgid "&Validate translations" msgstr "&Thẩm tra bản dịch" msgid "&Validate Translations" msgstr "&Thẩm tra bản dịch" msgid "&Properties…" msgstr "&Thuộc tính…" msgid "&Done and next" msgstr "&Thực hiện và làm tiếp" msgid "&Done and Next" msgstr "&Thực hiện và làm tiếp" msgid "&Previous translation" msgstr "Bản dịch &Trước" msgid "&Previous Translation" msgstr "Bản Dịch &Trước" msgid "&Next translation" msgstr "Bản dịch &kế tiếp" msgid "&Next Translation" msgstr "Bản Dịch &Kế Tiếp" msgid "P&revious unfinished" msgstr "Câu cần dịch liền t&rước" msgid "P&revious Unfinished" msgstr "Câu cần dịch liền t&rước" msgid "Ne&xt unfinished" msgstr "Câu chưa dịch &tiếp theo" msgid "Ne&xt Unfinished" msgstr "Câu chưa dịch &tiếp theo" msgid "Previous plural form" msgstr "Dạng số nhiều trước" msgid "Previous Plural Form" msgstr "Dạng số nhiều trước" msgid "Next plural form" msgstr "Dạng số tiếp theo" msgid "Next Plural Form" msgstr "Dạng số tiếp theo" msgid "&Online help" msgstr "Trợ giúp &trực tuyến" msgid "&Online Help" msgstr "Trợ Giúp &Trực tuyến" msgid "&GNU gettext manual" msgstr "Sổ tay hướng dẫn sử dụng &GNU gettext" msgid "&GNU gettext Manual" msgstr "Sổ tay hướng dẫn sử dụng &GNU gettext" msgid "&About Poedit" msgstr "&Giới thiệu về Poedit" msgid "&About" msgstr "&Giới thiệu" msgid "Extractor setup" msgstr "Thiết lập Extractor" msgid "List of extensions separated by semicolons (e.g. *.cpp;*.h):" msgstr "Danh sách đuôi tập tin ngăn cách bởi dấu chấm phẩy (ví dụ *.cpp;*.h):" msgid "Invocation:" msgstr "Lệnh gọi:" msgid "Command to extract translations:" msgstr "Lệnh để giải nén các bản dịch:" msgid "" "This is the command used to launch the extractor.\n" "%o expands to the name of output file, %K to list\n" "of keywords, %F to list of input files,\n" "%C to charset flag (see below)." msgstr "" "Đây là lệnh được dùng để khởi chạy trình giải nén.\n" "%o mở rộng tên của tập tin đầu ra, %K tới danh sách\n" "các từ khóa, %F tới danh sách tập tin đầu vào,\n" "%C tới cờ bộ mã ký tự (xem bên dưới)." msgid "An item in keywords list:" msgstr "Một mục tin trong danh sách các từ khóa:" msgid "" "This will be attached to the command line once\n" "for each keyword. %k expands to the keyword." msgstr "" "Cái này sẽ gắn với dòng lệnh một lần\n" "cho mỗi từ khóa. %k được triển khai thành từ khóa." msgid "An item in input files list:" msgstr "Một mục tin trong danh sách các tập tin nguồn vào:" #, c-format msgid "" "This will be attached to the command line once\n" "for each input file. %f expands to the filename." msgstr "" "Cái này sẽ gắn với dòng lệnh một lần với mỗi\n" "tập tin đầu vào. %f được triển khai thành tên tập tin." msgid "Source code charset:" msgstr "Bảng mã dữ liệu nguồn:" #, c-format msgid "" "This will be attached to the command line\n" "only if source code charset was given. %c expands to charset value." msgstr "" "Cái này sẽ gắn với dòng lệnh chỉ khi bộ mã ký tự\n" "nguồn được đưa ra. %c được triển khai thành giá trị bộ ký tự." msgid "Catalog properties" msgstr "Các thuộc tính của catalog" msgid "Project name and version:" msgstr "Tên và phiên bản của dự án:" msgid "Language team:" msgstr "Nhóm ngôn ngữ:" msgid "Plural forms:" msgstr "Hình thức số nhiều:" msgid "Use default rules for this language" msgstr "Sử dụng quy tắc mặc định cho ngôn ngữ này" msgid "Use custom expression" msgstr "Dùng biểu thức tự chọn" msgid "Learn about plural forms" msgstr "Tìm hiểu dạng thức số nhiều" msgid "Charset:" msgstr "Bảng mã ký tự:" msgid "Advanced Extraction Settings…" msgstr "Cài Đặt Giải Nén Nâng Cao…" msgid "Advanced extraction settings…" msgstr "Cài đặt giải nén nâng cao…" msgid "Translation Properties" msgstr "Thuộc tính dịch" msgid "Translation properties" msgstr "Thuộc tính bản dịch" msgid "Sources Paths" msgstr "Đường dẫn nguồn" msgid "Sources paths" msgstr "Đường dẫn mã nguồn" msgid "Extract text from source files in the following directories:" msgstr "Trích xuất văn bản từ mã nguồn trong những thư mục sau đây:" msgid "Base path:" msgstr "Đường dẫn cơ sở:" msgid "Sources Keywords" msgstr "Nguồn từ khóa" msgid "Sources keywords" msgstr "Từ khóa dùng cho mã nguồn" msgid "" "Use these keywords (function names) to recognize translatable strings\n" "in source files:" msgstr "" "Sử dụng những từ khóa (tên hàm) để nó có thể nhận ra các chuỗi có thể dịch\n" "trong tập tin mã nguồn:" msgid "Also use default keywords for supported languages" msgstr "Cũng có thể sử dụng từ khóa mặc định cho các ngôn ngữ được hỗ trợ" msgid "Learn About Gettext Keywords" msgstr "Tìm hiểu thêm về các từ khoá Gettext" msgid "Learn about gettext keywords" msgstr "Học thêm về các từ khóa của GNU gettext" msgid "Update summary" msgstr "Tóm tắt sơ lược quá trình cập nhật" msgid "" "These strings were found in the sources but were not in the catalog.\n" "Poedit will add them to the catalog now." msgstr "" "Các chuỗi tìm thấy trong tập tin nguồn nhưng không có trong catalog.\n" "Poedit sẽ thêm vào ngay bây giờ." msgid "New strings" msgstr "Chuỗi mới" msgid "" "These strings are no longer in the sources.\n" "Poedit will remove them from the catalog now." msgstr "" "Những chuỗi này không còn tồn tại trong tập tin nguồn nữa.\n" "Poedit sẽ loại bỏ chúng bây giờ." msgid "Obsolete strings" msgstr "Chuỗi đã cũ" msgid "(0 new, 0 obsolete)" msgstr "(0 mới, 0 cũ)" msgid "Open" msgstr "Mở" msgid "Save catalog" msgstr "Lưu catalog" msgid "Validate" msgstr "Thẩm tra" msgid "Check for errors in the translation" msgstr "Tìm kiếm các lỗi trong bản dịch" msgid "Update" msgstr "Cập nhật" msgid "Update catalog - synchronize it with sources" msgstr "Cập nhật catalog - đồng bộ hóa nó với mã nguồn" msgid "Sidebar" msgstr "Thanh tiện ích" msgid "Show or hide the sidebar" msgstr "Hiện hoặc ẩn thanh công cụ" #. TRANSLATORS: "Previous" as in used in the past, now replaced with newer. msgid "Previous source text:" msgstr "Văn bản nguồn trước đó:" msgid "" "The old source text (before it changed during an update) that the now-" "inaccurate translation corresponds to." msgstr "" "Các nguồn văn bản cũ (trước khi nó thay đổi trong quá trình cập nhật) mà bản " "dịch hiện thời không chính xác tương ứng." msgid "Notes for translators:" msgstr "Ghi chú dành cho người dịch:" msgid "Add comment" msgstr "Thêm bình luận" msgid "Add Comment" msgstr "Thêm Bình Luận" msgid "Translation suggestions:" msgstr "Các gợi ý dịch:" #. TRANSLATORS: This is shown when no translation suggestions can be found in the TM (Windows). msgid "No matches found" msgstr "Không tìm thấy từ khớp" #. TRANSLATORS: This is shown when no translation suggestions can be found in the TM (macOS, Linux). msgid "No Matches Found" msgstr "Không tìm thấy các từ khớp" msgid "This string was found in Poedit’s translation memory." msgstr "Chuỗi này được tìm thấy trong bộ nhớ bản dịch của Poedit." msgid "Cannot create temporary directory." msgstr "Không thể tạo thư mục tạm." msgid "Welcome to Poedit" msgstr "Chào mừng bạn dùng Poedit" #. TRANSLATORS: This is version information in about dialog, "%s" will be #. version number when used #, c-format msgid "Version %s" msgstr "Phiên bản %s" msgid "Edit a Translation" msgstr "Sửa một bản dịch" msgid "Edit a translation" msgstr "Sửa một bản dịch" msgid "Open an existing PO file and edit the translation." msgstr "Mở một tập tin PO sẵn có và sửa bản dịch." msgid "" "Take an existing PO file or POT template and create a new translation from " "it." msgstr "Lấy một tập tin PO hay mẫu POT và tạo bản dịch mới từ đó." msgid "Collaborate on a Translation with Others" msgstr "Cộng tác trên một bản dịch với những người khác" msgid "Collaborate on a translation with others" msgstr "Cộng tác trên một bản dịch với những người khác" msgid "" "Download a file from Crowdin project, translate and sync your changes back." msgstr "" "Tải một tập tin từ dự án Crowdin, dịch và đồng bộ các thay đổi của bạn trở " "lại." msgid "What is Crowdin?" msgstr "Crowdin là gì?" msgid "There are no translations. That’s unusual." msgstr "Ở đây không có bản dịch nào cả. Điều này là bất thường." msgid "" "Translatable entries aren’t added manually in the Gettext system, but are " "automatically extracted\n" "from source code. This way, they stay up to date and accurate.\n" "Translators typically use PO template files (POTs) prepared for them by the " "developer." msgstr "" msgid "(Learn more about GNU gettext)" msgstr "(Học thêm về GNU gettext)" msgid "The simplest way to fill this catalog is to update it from a POT:" msgstr "" "Cách đơn giản nhất để điền thông tin cho catalog này là cập nhật nó từ một " "tập tin POT:" msgid "Update from POT" msgstr "Cập nhật từ tệp tin POT" msgid "Take translatable strings from an existing POT template." msgstr "Lấy các chuỗi có thể dịch được từ một mẫu POT sẵn có." msgid "" "You can also extract translatable strings directly from the source code:" msgstr "" "Bạn đồng thời có thể rút trích các chuỗi có thể dịch được trực tiếp từ mã " "nguồn:" msgid "Extract from sources" msgstr "Trích từ mã nguồn" msgid "Configure source code extraction in Properties." msgstr "Cấu hình việc rút trích mã nguồn trong `Thuộc tính'." msgid "Sync" msgstr "Đồng bộ" msgid "Synchronize the translation with Crowdin" msgstr "Đồng bộ bản dịch với Crowdin" #. TRANSLATORS: This is titlebar of about dialog, "%s" is application name #. ("Poedit" here, but please use "%s") #, c-format msgid "About %s" msgstr "Giới thiệu về %s" #. TRANSLATORS: Title of the preferences window on Windows and Linux. "%s" is replaced with "Poedit" when running. #, c-format msgid "%s Preferences" msgstr "Cấu hình %s" #. TRANSLATORS: macOS item in app menu msgid "Services" msgstr "Dịch vụ" #. TRANSLATORS: macOS item in app menu, %s is replaced with "Poedit" #, c-format msgid "Hide %s" msgstr "Ẩn %s" #. TRANSLATORS: macOS item in app menu msgid "Hide Others" msgstr "Ẩn Những Thứ Khác" #. TRANSLATORS: macOS item in app menu msgid "Show All" msgstr "Hiển Thị Tất Cả" #. TRANSLATORS: macOS item in app menu, %s is replaced with "Poedit" #, c-format msgid "Quit %s" msgstr "Thoát %s" #. TRANSLATORS: macOS item in app menu msgid "Preferences…" msgstr "Cá nhân hóa…" msgid "Preferences..." msgstr "Cá nhân hóa..." #. TRANSLATORS: Title of a category in Windows task menu (right-click icon in taskbar) msgid "Recent" msgstr "Gần đây" #. TRANSLATORS: Title of a category in Windows task menu (right-click icon in taskbar) msgid "Frequent" msgstr "Thường xuyên" msgid "&Apply" msgstr "&Áp dụng" msgid "Apply" msgstr "Áp dụng" msgid "&Back" msgstr "&Quay lại" msgid "Back" msgstr "Quay lại" msgid "&Cancel" msgstr "&Hủy bỏ" msgid "&Clear" msgstr "&Dọn dẹp" msgid "Clear" msgstr "Dọn dẹp" msgid "Copy" msgstr "Sao chép" msgid "Cu&t" msgstr "Cắ&t" msgid "Cut" msgstr "Cắt" msgid "&Delete" msgstr "&Xóa" msgid "&Quit" msgstr "&Thoát" msgid "File" msgstr "Tập tin" msgid "Help" msgstr "Trợ giúp" msgid "&New" msgstr "&Mới" msgid "&No" msgstr "&Không" msgid "No" msgstr "Không" msgid "&OK" msgstr "&Đồng ý" msgid "Open…" msgstr "Mở…" msgid "&Open..." msgstr "&Mở..." msgid "Open..." msgstr "Mở..." msgid "&Paste" msgstr "&Dán" msgid "Paste" msgstr "Dán" msgid "Preferences" msgstr "Tùy chọn" msgid "&Redo" msgstr "&Làm lại" msgid "Refresh" msgstr "Làm mới" msgid "&Save as" msgstr "&Lưu như" msgid "Save as" msgstr "Lưu như" msgid "Select &All" msgstr "Chọn &Tất Cả" msgid "Select All" msgstr "Chọn Tất cả" msgid "&Undo" msgstr "&Hoàn tác" msgid "&Yes" msgstr "&Vâng" msgid "Yes" msgstr "Vâng" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Shift+" msgstr "Shift+" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Enter" msgstr "Enter" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Up" msgstr "Lên" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Down" msgstr "Xuống" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Left" msgstr "Trái" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Right" msgstr "Phải" #. TRANSLATORS: Keyboard shortcut, must correspond to translation of "Ctrl+" msgid "ctrl" msgstr "ctrl" #. TRANSLATORS: Keyboard shortcut, must correspond to translation of "Alt+" msgid "alt" msgstr "alt" #. TRANSLATORS: Keyboard shortcut, must correspond to translation of "Shift+" msgid "shift" msgstr "shift" poedit-2.0.6/locales/hr.po0000664000372000037200000014010713230132076012317 00000000000000msgid "" msgstr "" "Project-Id-Version: poedit\n" "Report-Msgid-Bugs-To: help@poedit.net\n" "POT-Creation-Date: 2017-12-05 15:52+0100\n" "PO-Revision-Date: 2018-01-18 07:57-0500\n" "Last-Translator: vslavik \n" "Language-Team: Croatian\n" "Language: hr_HR\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" "%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" "X-Generator: crowdin.com\n" "X-Crowdin-Project: poedit\n" "X-Crowdin-Language: hr\n" "X-Crowdin-File: /locales/poedit.pot\n" msgid "Hide this notification message" msgstr "Sakrij ovu poruku" msgid "Don’t Show Again" msgstr "Ne prikazuj ponovno" msgid "Don’t show again" msgstr "Ne prikazuj ponovno" #, c-format msgid "(New: %i, obsolete: %i)" msgstr "(Novo: %i, zastarjelo: %i)" msgid "Updating catalog" msgstr "Ažuriranje kataloga" msgid "Collecting source files…" msgstr "Skupljam datoteke izvornika…" msgid "Extracting translatable strings…" msgstr "Pripremam tekst za prevođenje…" msgid "Failed to load extracted catalog." msgstr "Neuspjelo učitavanje izdvojenog kataloga" msgid "Merging differences…" msgstr "Spajam razlike…" #, c-format msgid "“%s” is not a valid POT file." msgstr "“%s” nije valjana POT datoteka." #, c-format msgid "%i line of file “%s” was not loaded correctly." msgid_plural "%i lines of file “%s” were not loaded correctly." msgstr[0] "%i redak datoteke “%s” nije učitan ispravno." msgstr[1] "%i redci datoteke “%s” nisu učitani pravilno." msgstr[2] "%i redci datoteke “%s” nisu učitani pravilno." #, c-format msgid "Line %d of file “%s” is corrupted (not valid %s data)." msgstr "Redak %d datoteke “%s” je oštećen (nije ispravan %s data)." #, c-format msgid "Malformed header: “%s”" msgstr "Oštećeno zaglavlje: “%s”" msgid "" "Broken catalog file: singular form msgstr used together with msgid_plural" msgstr "" "Neispravna katalog datoteka: Oblik jednine \"msgstr\" upotrijebljen je bez " "\"msgid_plural\"" msgid "Broken catalog file: plural form msgstr used without msgid_plural" msgstr "" "Neispravna katalog datoteka: Oblik množine \"msgstr\" upotrijebljen je bez " "\"msgid_plural\"" msgid "" "There were errors when loading the catalog. Some data may be missing or " "corrupted as the result." msgstr "" "Tijekom učitavanja kataloga došlo je do greški. Neki podaci mogli bi " "nedostajati ili biti oštećeni." #, c-format msgid "Couldn’t load file %s, it is probably corrupted." msgstr "Ne mogu učitati datoteku %s, možda je oštećena." #, c-format msgid "" "File “%s” is read-only and cannot be saved.\n" "Please save it under different name." msgstr "" "Datoteka “%s” je samo za čitanje i i ne może biti spremljena.\n" "Spremite ju pod drugim nazivom." #, c-format msgid "Couldn’t save file %s." msgstr "Ne mogu spremiti datoteku %s." msgid "" "There was a problem formatting the file nicely (but it was saved all right)." msgstr "" "Prilikom oblikovanja datoteke došlo je do problema ali je uredno spremljena." #, c-format msgid "" "The catalog couldn’t be saved in “%s” charset as specified in catalog " "settings.\n" "\n" "It was saved in UTF-8 instead and the setting was modified accordingly." msgstr "" "Katalog nije mogao biti spremljen u “%s” specificiran u postavkama.\n" "\n" "Spremljen je u UTF-8 i usporedno je pospremljena postavka." msgid "Error saving catalog" msgstr "Greška pri spremanju kataloga" msgid "PO Translation Files" msgstr "PO prevoditeljske datoteke" msgid "POT Translation Templates" msgstr "POT predlošci prijevoda" msgid "All Translation Files" msgstr "Sve prevedene datoteke" msgid "(Use default language)" msgstr "(Koristi zadani jezik)" msgid "Select your preferred language" msgstr "Odaberite željeni jezik" msgid "Language selection" msgstr "Odabir jezika" msgid "You must restart Poedit for this change to take effect." msgstr "Ponovo pokrenite Poedit kako bi promjena imala učinak" msgid "Syncing" msgstr "Sinkroniziram" #. TRANSLATORS: %s is a cloud destination, e.g. "Crowdin" or ftp.wordpress.com etc. #, c-format msgid "Syncing with %s…" msgstr "Sinkroniziram sa %s…" #. TRANSLATORS: %s is a cloud destination, e.g. "Crowdin" or ftp.wordpress.com etc. #, c-format msgid "Syncing with %s failed." msgstr "Sinkronziranje sa %s nije uspjelo." msgid "Syncing error" msgstr "Greška pri sinkronizaciji" msgid "Downloading translations is disabled in this project." msgstr "Preuzimanje prijevoda nije omogućeno u ovom projektu." msgid "Not authorized, please sign in again." msgstr "Nije autorizirano, prijavite se ponovo." msgid "" "Crowdin is an online localization management platform and collaborative " "translation tool. Poedit can seamlessly sync PO files managed at Crowdin." msgstr "" "Crowdin je online platforma za upravljanje procesom lokaliziranja i alat za " "timsko prevođenje. Poedit može bez problema sinkronizirati PO datoteke " "procesirane u Crowdin." msgid "Sign In" msgstr "Prijava" msgid "Sign in" msgstr "Prijava" msgid "Sign Out" msgstr "Odjava" msgid "Sign out" msgstr "Odjava" msgid "Waiting for authentication…" msgstr "Čekanje na autenitifikaciju…" msgid "Updating user information…" msgstr "Ažuriranje informacija o korisniku…" msgid "Signed in as:" msgstr "Ulogiran Kao:" msgid "Learn More About Crowdin" msgstr "Saznajte Više O Crowdin-u" msgid "Learn more about Crowdin" msgstr "Saznajte Više O Crowdin-u" msgid "Sign in to Crowdin" msgstr "Ulogirajte se u Crowdin" msgid "Open Crowdin translation" msgstr "Otvori prijevod crowdin" msgid "Project:" msgstr "Projekt:" msgid "Language:" msgstr "Jezik:" msgid "File:" msgstr "Datoteka:" msgid "No translation projects listed in your Crowdin account." msgstr "Nema prevodilačkih projekata na vašem Crowdin korisničkom računu." msgid "This project has no files that can be translated in Poedit." msgstr "Ovaj projekt nema datoteke, koja bi se mogla prevesti u Poeditu." msgid "This file can only be edited in Crowdin’s web interface." msgstr "Ovu datoteku je moguće uređivati samo na Crowdin web stranicama." msgid "Downloading latest translations…" msgstr "" "Prezimam najnovije prijevode…\n" " \n" "Context | Request Context…" msgid "Syncing with Crowdin failed." msgstr "Usklađivanje s Crowdin-om nije uspjelo." msgid "Crowdin error" msgstr "Crowdin-ova pogreška" msgid "Uploading translations…" msgstr "Šaljem prijevod…" msgid "&Copy" msgstr "&Kopiraj" msgid "Learn more" msgstr "Nauči više" msgid "Learn More" msgstr "Saznajte više" msgid "&Help" msgstr "&Pomoć" msgid "MO files can’t be directly edited in Poedit." msgstr "MO datoteke ne mogu se izravno uređivati u Poeditu" msgid "Error opening file" msgstr "Greška pri otvaranju datoteke" msgid "" "Please open and edit the corresponding PO file instead. When you save it, " "the MO file will be updated as well." msgstr "" "Otvorite i uređujte pripadajuću PO datoteku. MO datoteka će se automatski " "ažurirati pri spremanju." msgid "don’t delete temporary files (for debugging)" msgstr "nemojte izbrisati pričuvne datoteke (služe kod uklanjanja grešaka)" msgid "handle a poedit:// URI" msgstr "postupanje s Poeditom:// URI" msgid "go to item at given line number" msgstr "" msgid "Failed to communicate with Poedit process." msgstr "" #, c-format msgid "Unhandled exception occurred: %s" msgstr "Dogodila se neočekivana iznimka %s" msgid "Open catalog" msgstr "Otvori katalog" #, c-format msgid "File “%s” doesn’t exist." msgstr "Datoteka “%s” ne postoji." msgid "Poedit is an easy to use translations editor." msgstr "Poedit je uređivač prijevoda jednostavan za upotrebu." msgid "Catalogs Manager" msgstr "Upravitelj kataloga" msgid "Check for Updates…" msgstr "Provjeri za nadogradnje" msgid "&Edit" msgstr "&Uredi" msgid "Undo" msgstr "Poništi" msgid "Redo" msgstr "Vrati" msgid "Paste and Match Style" msgstr "Zalijepi poštujući stil" msgid "Delete" msgstr "Izbriši" msgid "Spelling and Grammar" msgstr "Pravopis i gramatika" msgid "Show Spelling and Grammar" msgstr "Prikaži pravopis i gramatiku" msgid "Check Document Now" msgstr "Provjeri dokument" msgid "Check Spelling While Typing" msgstr "Provjeri pravopis tijekom tipkanja" msgid "Check Grammar With Spelling" msgstr "Uz pravopis provjeravaj i gramatiku" msgid "Correct Spelling Automatically" msgstr "Automatski ispravljaj pravopis" msgid "Substitutions" msgstr "Zamjene" msgid "Show Substitutions" msgstr "Prikaži zamjene" msgid "Smart Copy/Paste" msgstr "Pametno kopiranje/lijepljenje" msgid "Smart Quotes" msgstr "Pametni navodnici" msgid "Smart Dashes" msgstr "Pametne crtice" msgid "Smart Links" msgstr "Pametne poveznice" msgid "Text Replacement" msgstr "Zamjenski tekst" msgid "Transformations" msgstr "Preinake" msgid "Make Upper Case" msgstr "Preinači u velika slova" msgid "Make Lower Case" msgstr "Preinači u mala slova" msgid "Capitalize" msgstr "Postavi veliko početno slovo" msgid "Speech" msgstr "Govor" msgid "Start Speaking" msgstr "Započni govoriti" msgid "Stop Speaking" msgstr "Prestani govoriti" msgid "&View" msgstr "&Prikaz" msgid "Enter Full Screen" msgstr "Unesite cijeli zaslon" msgid "Window" msgstr "Prozor" msgid "Minimize" msgstr "Minimiziraj" msgid "Zoom" msgstr "Uvećaj" msgid "Bring All to Front" msgstr "Dovedi sve na početak" #. TRANSLATORS:File kind displayed in Finder/Explorer msgid "PO Translation" msgstr "PO prijevod" msgid "The file cannot be opened." msgstr "Datoteka se ne može otvoriti" msgid "Invalid file" msgstr "Neispravna datoteka" msgid "" "The file may be either corrupted or in a format not recognized by Poedit." msgstr "Datoteka je oštećena ili u obliku koji Poedit ne prepoznaje" msgid "You can’t drop more than one file on Poedit window." msgstr "" #, c-format msgid "File “%s” is not a message catalog." msgstr "" msgid "Poedit" msgstr "Poedit" msgid "&File" msgstr "&Datoteka" msgid "&Go" msgstr "&Idi" #. TRANSLATORS: %s is language name in its basic form (as you #. would see e.g. in a list of supported languages). You may need #. to rephrase it, e.g. to an equivalent of "for language %s". #, c-format msgid "" "Spellchecking is disabled, because the dictionary for %s isn’t installed." msgstr "" msgid "Install" msgstr "Instaliraj" msgid "Catalog modified. Do you want to save changes?" msgstr "Katalog je izmijenjen. Želite li spremiti izmjene?" msgid "Save changes" msgstr "Spremi promjene" msgid "Your changes will be lost if you don’t save them." msgstr "" msgid "Save" msgstr "Spremi" msgid "Don’t save" msgstr "Nemoj spremiti" msgid "Don’t Save" msgstr "Nemoj spremiti" msgid "Save as…" msgstr "Spremi kao…" msgid "Compile to…" msgstr "" msgid "Compiled Translation Files" msgstr "Sastavljene datoteke prijevoda" msgid "Export as…" msgstr "Izvezi kao…" msgid "HTML Files" msgstr "HTML datoteke" msgid "Open catalog template" msgstr "Otvori predložak kataloga." msgid "Source code not available." msgstr "Izvorni kod nije dostupan." msgid "Updating failed" msgstr "Ažuriranje nije uspjelo" msgid "" "Translations couldn’t be updated from the source code, because no code was " "found in the location specified in the catalog’s Properties." msgstr "" "Prijevode nije moguće ažurirati iz izvornog koda, jer nije pronađen kod na " "lokaciji navedenom u Svojstvima kataloga." msgid "Entries in the catalog are probably incorrect." msgstr "Unosiu katalogu vjerojatno su netočni." msgid "Updating the catalog failed. Click on 'Details >>' for details." msgstr "Ažuriranje kataloga nije uspjelo. Za detalje kliknite na 'Detalji'." #, c-format msgid "%d issue with the translation found." msgid_plural "%d issues with the translation found." msgstr[0] "S prijevodom je pronađen %d problem." msgstr[1] "S prijevodom su pronađena %d problema." msgstr[2] "S prijevodom je pronađeno %d problema." msgid "Validation results" msgstr "Ishod provjere valjanosti" msgid "" "Entries with errors were marked in red in the list. Details of the error " "will be shown when you select such an entry." msgstr "" "Unosi s greškama označeni su crvenom bojom. Detalji greške bit će prikazani " "kad označite takav unos." msgid "The file was saved safely." msgstr "Datoteka je sigurno spremljena" msgid "" "The file was saved safely and compiled into the MO format, but it will " "probably not work correctly." msgstr "" "Datoteka je sigurno spremljena i kompajlirana u MO oblik ali vjerojatno neće " "ispravno raditi." msgid "" "The file was saved safely, but it cannot be compiled into the MO format and " "used." msgstr "" "Datoteka je sigurno spremljena ali ne može biti kompajlirana u MO oblik niti " "korištena." msgid "" "The file was compiled into the MO format, but it will probably not work " "correctly." msgstr "" "Datoteka je sastavljena u MO formatu, ali vjerojatno neće ispravno raditi." msgid "The file cannot be compiled into the MO format and used." msgstr "" msgid "No problems with the translation found." msgstr "Nisu nađeni problemi u prijevodu." #, c-format msgid "The translation is ready for use, but %d entry is not translated yet." msgid_plural "" "The translation is ready for use, but %d entries are not translated yet." msgstr[0] "Prijevod je spreman za upotrebu ali %d unos još nije preveden." msgstr[1] "Prijevod je spreman za upotrebu ali %d unosa još nisu prevedena." msgstr[2] "Prijevodje spreman za upotrebu ali %d unosa još nije prevedeno." msgid "The translation is ready for use." msgstr "Prijevod je spreman za upotrebu." #, c-format msgid "Poedit automatically fixed invalid content in the file “%s”." msgstr "" msgid "" "The file contained duplicate items, which is not allowed in PO files and " "would prevent the file from being used. Poedit fixed the issue, but you " "should review translations of any items marked as needing work and correct " "them if necessary." msgstr "" msgid "Language of the translation isn’t set." msgstr "Jezik prijevoda nije postavljen" msgid "Set Language" msgstr "Postavi jezik" msgid "Set language" msgstr "Postavi jezik" #. TRANSLATORS: This is shown underneath "Language of the translation isn't set (or ...is the same as source language)." msgid "" "Suggestions are not available if the translation language is not set " "correctly. Other features, such as plural forms, may be affected as well." msgstr "" "Prijedlozi nisu dostupni ako jezik prijevoda nije ispravno postavljen. Druge " "značajke, kao što su oblici množine, mogu biti krivi." msgid "Language of the translation is the same as source language." msgstr "Jezik prijevoda je isto kao izvorni jezik." msgid "Fix Language" msgstr "Popravi jezik" msgid "Fix language" msgstr "Popravi jezik" msgid "" "This catalog has entries with plural forms, but doesn’t have Plural-Forms " "header configured." msgstr "" msgid "" "Entries in this catalog have different plural forms count from what " "catalog’s Plural-Forms header says" msgstr "" msgid "Required header Plural-Forms is missing." msgstr "Nedostaje obavezno zaglavlje oblika množine." #, c-format msgid "Syntax error in Plural-Forms header (\"%s\")." msgstr "Greška sintakse u zaglavlju oblika množine %s" msgid "Fix the Header" msgstr "Popravi zaglavlje" msgid "Fix the header" msgstr "Ispravi zaglavlje" #. TRANSLATORS: %s is language name in its basic form (as you #. would see e.g. in a list of supported languages). You may need #. to rephrase it, e.g. to an equivalent of "for language %s". #, c-format msgid "Plural forms expression used by the catalog is unusual for %s." msgstr "Izraz oblika množine korištenu katalogu nije uobičajen za %s." #. TRANSLATORS: A verb, shown as action button with ""Plural forms expression used by the catalog is unusual for %s.")" msgid "Review" msgstr "Razmotri" #, c-format msgid "Error loading message catalog file “%s”." msgstr "" #, c-format msgid "Translated: %d of %d (%d %%)" msgstr "Prevedeno: %d od %d (%d %%)" #, c-format msgid "Remaining: %d" msgstr "Preostalo: %d" #, c-format msgid "%d error" msgid_plural "%d errors" msgstr[0] "%d greška" msgstr[1] "%d greške" msgstr[2] "%d Greške" #, c-format msgid "%d entry" msgid_plural "%d entries" msgstr[0] "%d unos" msgstr[1] "%d unosa" msgstr[2] "%d unosa" msgid " (unsaved)" msgstr " (nespremljeno)" msgid " (modified)" msgstr "(izmjenjeno)" #, c-format msgid "Failed to update translation memory: %s" msgstr "Neuspjelo ažuriranje prevoditeljske memorije %s" msgid "Purge deleted translations" msgstr "Pročisti izbrisane prijevode" msgid "Do you want to remove all translations that are no longer used?" msgstr "Želite li ukloniti sve prijevode koji se više ne koriste?" msgid "" "If you continue with purging, all translations marked as deleted will be " "permanently removed. You will have to translate them again if they are added " "back in the future." msgstr "" "Ako nastavite s čišćenjem, svi prijevodi označeni kao izbrisani bit će " "trajno uklonjeni. Morat ćete ih ponovno prevoditi ako se budu dodali u " "budućnosti." msgid "Keep" msgstr "Zadrži" msgid "Purge" msgstr "Očisti" msgid "Copy from source text" msgstr "Kopiraj iz izvornog teksta" msgid "Copy from Source Text" msgstr "Kopiraj iz izvornog teksta" #. TRANSLATORS: This is the key shortcut used in menus on Windows, some languages call them differently #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Ctrl+" msgstr "Ctrl+" msgid "Clear translation" msgstr "Očisti prijevod" msgid "Clear Translation" msgstr "Očisti prijevod" msgid "Edit comment" msgstr "Uredi komentar" msgid "Edit Comment" msgstr "Uredi komentar" msgid "References:" msgstr "Reference." msgid "&Bookmarks" msgstr "&Oznake" #. TRANSLATORS: This is the key shortcut used in menus on Windows, some languages call them differently #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Alt+" msgstr "Alt+" #, c-format msgid "Set bookmark %i" msgstr "Postavi oznaku %i" #, c-format msgid "Go to bookmark %i" msgstr "Kreni na web-oznaku %i" #, c-format msgid "Set Bookmark %i" msgstr "Postavi oznaku %i" #, c-format msgid "Go to Bookmark %i" msgstr "Kreni na web-oznaku %i" msgid "Hide Sidebar" msgstr "Sakrij bočnu traku" msgid "Show Sidebar" msgstr "Pokaži bočnu traku" msgid "Hide Status Bar" msgstr "Razdvoji ćelije" msgid "Show Status Bar" msgstr "Pokaži traku stanja" msgid "Source text:" msgstr "Izvorni tekst:" msgid "Singular:" msgstr "Jednina:" msgid "Plural:" msgstr "Množina:" msgid "Translation:" msgstr "Prijevod" msgid "Pre-translated" msgstr "Unaprijed prevedeno" msgid "Needs Work" msgstr "Zahtjeva doradu" #. TRANSLATORS: This indicates that the string's translation isn't final #. and has known problems. For example, it might be machine translated or #. fuzzy matched from an older string. The translation should be short and #. convey this. If it's problematic to translate it, "Needs review" is #. acceptable substitute, but note that the meaning is subtly different: #. "needs review" implies that somebody else should review the string after #. I am done with it (i.e. consider it good), while "needs work" implies I #. need to return to it and finish the translation. msgid "Needs work" msgstr "Zahtjeva doradu" msgid "" "POT files are only templates and don’t contain any translations themselves.\n" "To make a translation, create a new PO file based on the template." msgstr "" "POT datoteke su samo predlošci i ne sadrže nikakve prijevode.\n" "Za stvaranje prijevoda, izradite novu PO datoteku iz POT predloška." msgid "Create New Translation" msgstr "Izradi novi prijevod" msgid "Create new translation" msgstr "Izradi novi prijevod" msgid "Everything" msgstr "Sve" #, c-format msgid "Form %i" msgstr "Oblik %i" msgid "Singular" msgstr "Jednina" msgid "Zero" msgstr "Nula" msgid "One" msgstr "Jedan" msgid "Two" msgstr "Dva" msgid "Plural" msgstr "Množina" msgid "Other" msgstr "Drugo" #, c-format msgid "%s Format" msgstr "" #. TRANSLATORS: %s is replaced with language name, e.g. "PHP" or "C", so "PHP Format" etc." #, c-format msgid "%s format" msgstr "" msgid "Source text" msgstr "Izvorni tekst" #, c-format msgid "Translation — %s" msgstr "Prijevod %s" msgid "ID" msgstr "ID" #, c-format msgid "Source text — %s" msgstr "Izvorni tekt — %s" msgid "unknown language" msgstr "Nepoznati jezik" #, c-format msgid "Failed command: %s" msgstr "Neuspjela naredba: %s" msgid "Failed to merge gettext catalogs." msgstr "Spajanje gettext kataloga nije uspjelo." msgid "Source file" msgstr "Izvorna datoteka" msgid "Source file occurrence:" msgstr "Podudaranje s izvornom datotekom" msgid "Open in Editor" msgstr "Otvori u uređivaču" msgid "Open in editor" msgstr "Otvori u uređivaču" msgid "No references for the selected item." msgstr "" #, c-format msgid "Error opening file %s!" msgstr "Greška pri otvaranju datoteke %s!" msgid "Find" msgstr "Pronađi" msgid "Replace" msgstr "Zamijeni" #. TRANSLATORS: Expander in Find window for additional options (case sensitive etc.) msgid "Options" msgstr "Opcije" msgid "Ignore case" msgstr "Zanemari veličinu fonta" msgid "Wrap around" msgstr "" msgid "Whole words only" msgstr "Samo cijele riječi" msgid "Find in source texts" msgstr "Pronađi u izvornom tekstu" msgid "Find in translations" msgstr "Pronađi u prijevodima" msgid "Find in comments" msgstr "Pronađi u komentarima" msgid "Close" msgstr "&Zatvori" msgid "Replace &All" msgstr "&Ništa" msgid "Replace &all" msgstr "Zamijeni sve" msgid "&Replace" msgstr "Zamijeni" msgid "< &Previous" msgstr "< &Prethodno" msgid "&Next >" msgstr "&Sljedeće" msgid "String to find" msgstr "" msgid "Replacement string" msgstr "" #, c-format msgid "Cannot execute program: %s" msgstr "Nije moguće pokrenuti program: %s" msgid "Language Code or Name (e.g. en_GB)" msgstr "Kodna stranica ili ime jezika (npr. hr-hr)" msgid "Translation Language" msgstr "Jezik za prevođenje" msgid "Language of the translation:" msgstr "Jezik prijevoda:" msgid "Poedit - Catalogs manager" msgstr "Poedit upravitelj kataloga" msgid "Catalog" msgstr "Katalog" msgid "Total" msgstr "Ukupno" msgid "Untrans" msgstr "Neprevedeno" msgid "Errors" msgstr "Greške" msgid "Last modified" msgstr "Posljednja izmjena" msgid "Select directory" msgstr "Odaberi mapu" msgid "Directories:" msgstr "Mape:" msgid "" msgstr "" msgid "Do you want to delete the project?" msgstr "Želite li izbrisati projekt?" msgid "Confirmation" msgstr "Potvrda" msgid "" "Do you really want to do mass update of\n" "all catalogs in this project?" msgstr "" "Želite li zaista ažurirati\n" "sve kataloge u projektu?" msgid "Information about the translator" msgstr "Informacije o Prevoditelju" msgid "Name:" msgstr "Ime:" msgid "Your Name" msgstr "Vaše ime" msgid "Email:" msgstr "Email:" msgid "your_email@example.com" msgstr "vas_email@primjer.hr" msgid "" "Your name and email address are only used to set the Last-Translator header " "of GNU gettext files." msgstr "" "Vaše ime i email se koriste samo za postavljanje posljednjeg prevoditelja u " "naslovu GNU gettext datoteke." msgid "Editing" msgstr "Uređivanje" msgid "Automatically compile MO file when saving" msgstr "Automatski sastaviti MO datoteku pri spremanju" msgid "Show summary after catalog update" msgstr "Prikaži sažetak nakon ažuriranja kataloga" msgid "Check spelling" msgstr "Provjeri pravopis" msgid "Always change focus to text input field" msgstr "Uvijek prebaci fokus na polje za uređivanje" msgid "" "Never let the list of strings take focus. If enabled, you must use Ctrl-" "arrows for keyboard navigation but you can also type text immediately, " "without having to press Tab to change focus." msgstr "" "Nikad ne dopusti popisu stringova da preuzme fokus. Ako je omogućeno morat " "ćete koristiti CTRL + strelice za kretanje tipkovnicom ali ćete moći odmah " "upisivati tekst bez pritiskanja na Tab da prebacite fokus u polje za " "uređivanje." msgid "Appearance" msgstr "Izgled" msgid "Use custom list font:" msgstr "Koristi prilagođeni font za popis:" msgid "Use custom text fields font:" msgstr "Koristi prilagođeni font za tekstualna polja:" msgid "Change UI language" msgstr "Promijeni jezik sučelja" #. TRANSLATORS: This is a note appended to "Check spelling" when running on older Windows versions msgid "(requires Windows 8 or newer)" msgstr "(zahtijeva Windows 8 ili noviji)" msgid "General" msgstr "Općenito" msgid "Use translation memory" msgstr "Koristi prevoditeljsku memoriju" msgid "Learn From Files…" msgstr "Nauči iz datoteka..." msgid "Learn from files…" msgstr "Nauči iz datoteka..." #. TRANSLATORS: This is a button that deletes everything in the translation memory (i.e. clears/resets it). msgid "Reset" msgstr "Ponovno postavljanje" #. TRANSLATORS: Followed by "match translations within the file" or "pre-translate from TM" msgid "When updating from sources" msgstr "" #. TRANSLATORS: Preceded by "When updating from sources" msgid "fuzzy match within the file" msgstr "" #. TRANSLATORS: Preceded by "When updating from sources" msgid "pre-translate from TM" msgstr "" msgid "" "Poedit can attempt to fill in new entries from only previous translations in " "the file or from your entire translation memory. Using the TM won’t be very " "effective if it’s near-empty, but it will get better as you add more " "translations to it." msgstr "" msgid "Stored translations:" msgstr "Pohranjeni prijevodi" msgid "Database size on disk:" msgstr "Veličina baze podataka na disku" msgid "Select translation files to import" msgstr "Odaberi datoteke prijevoda za uvoz" msgid "Translation Memory" msgstr "Prevoditeljska memorija" msgid "Importing translations…" msgstr "" msgid "Finalizing…" msgstr "Završavanje..." msgid "Reset translation memory" msgstr "Očisti prijevodna memorija" msgid "Are you sure you want to reset the translation memory?" msgstr "" msgid "" "Resetting the translation memory will irrevocably delete all stored " "translations from it. You can’t undo this operation." msgstr "" msgid "Cancel" msgstr "Odustani" #. TRANSLATORS: This is abbreviation of "Translation Memory" used in Preferences on macOS. #. Long text looks weird there, too short (like TM) too, but less so. "General" is about ideal #. length there. msgid "TM" msgstr "PM" msgid "" "Source code extractors are used to find translatable strings in the source " "code files and extract them so that they can be translated." msgstr "" "Izdvajači izvornog koda koriste se za pronalaženje prevodivih stringova u " "datotekama izvornog koda kako bi se mogli prevesti." msgid "Custom Extractors:" msgstr "" msgid "Custom extractors:" msgstr "" msgid "Edit…" msgstr "Uredi..." msgid "GNU gettext" msgstr "" msgid "" "Supports all programming languages recognized by GNU gettext tools (PHP, C/C+" "+, C#, Perl, Python, Java, JavaScript and others)." msgstr "" msgid "Delete extractor" msgstr "" #, c-format msgid "Are you sure you want to delete the “%s” extractor?" msgstr "" msgid "Extractors" msgstr "Izdvajači" msgid "Accounts" msgstr "Računi" msgid "Automatically check for updates" msgstr "Automatska provjera ažuriranja" msgid "Include beta versions" msgstr "Uključujući i beta inačice" msgid "" "Beta versions contain the latest new features and improvements, but may be a " "bit less stable." msgstr "" "Beta inačice sadrže najnovije mogućnosti i poboljšanja ali mogu biti malčice " "nestabilne." msgid "Updates" msgstr "Ažuriranja" msgid "" "These settings affect internal formatting of PO files. Adjust them if you " "have specific requirements e.g. because of version control." msgstr "" msgid "Line endings:" msgstr "" msgid "Unix (recommended)" msgstr "Unix (preporučeno)" msgid "Windows" msgstr "Windows" #. TRANSLATORS: Followed by text control for entering number; wraps text at given width msgid "Wrap at:" msgstr "" msgid "Preserve formatting of existing files" msgstr "" msgid "Advanced" msgstr "Napredno" msgid "Pre-translating…" msgstr "Pred-prevođenje…" #, c-format msgid "Pre-translated %u string" msgid_plural "Pre-translated %u strings" msgstr[0] "Pred-prevođen je %u niz" msgstr[1] "Pred-prevođeno je %u nizova" msgstr[2] "Pred-prevođeni su %u nizova" #. TRANSLATORS: This is a somewhat common term describing the action where #. you apply the translation memory and/or machine translation to all of the #. strings you're translating as the first step, followed by correcting, #. improving etc., i.e. actually translating the strings. This may be tricky #. to express in other languages as simply as in English, but please try to #. keep it similarly concise. Please try to avoid, if possible, describing it #. as "auto-translation" and similar, because such terminology would mislead #. some users into thinking it's all that needs to be done (spoken from #. experience). "Pre-translate" nicely expresses that it's only the step done #. *before* actual translation. msgid "Pre-translate" msgstr "Pred-prevođenje" msgid "Only fill in exact matches" msgstr "" msgid "" "By default, inaccurate results are filled in as well and marked as needing " "work. Check this option to only include accurate matches." msgstr "" msgid "Don’t mark exact matches as needing work" msgstr "" msgid "" "Only enable if you trust the quality of your TM. By default, all matches " "from the TM are marked as needing work and should be reviewed before use." msgstr "" msgid "" "Pre-translation automatically finds exact or fuzzy matches for untranslated " "strings in the translation memory and fills in their translations." msgstr "" #, c-format msgid "%d entry was pre-translated." msgid_plural "%d entries were pre-translated." msgstr[0] "%d unos je pre-preveden." msgstr[1] "%d unosa je pre-prevedeno." msgstr[2] "%d unosa je pre-prevedeno." msgid "" "The translations were marked as needing work, because they may be " "inaccurate. You should review them for correctness." msgstr "" msgid "No entries could be pre-translated." msgstr "" msgid "" "The TM doesn’t contain any strings similar to the content of this file. It " "is only effective for semi-automatic translations after Poedit learns enough " "from files that you translated manually." msgstr "" "Prevoditeljska memorija ne sadrži stringove slične onima u sadržaju ove " "datoteke. Učinkovita je samo za poluautomatsko prevođenje nakon što Poedit " "nauči dovoljno iz ručno prevedenih datoteka." msgid "" "Drag and Drop Folders Here\n" "\n" "or use the + button" msgstr "" "Na ovo mjesto povucite i spustite mape \n" "\n" " ili koristite tipku +" msgid "" "Drag and drop folders here\n" "\n" "or use the + button" msgstr "" "Na ovo mjesto povucite i spustite mape \n" "\n" " ili koristite tipku +" msgid "Add Folders…" msgstr "Dodaj Mape…" msgid "Add folders…" msgstr "Dodaj mape…" msgid "Add Files…" msgstr "Dodaj datoteke…" msgid "Add files…" msgstr "Dodaj datoteke…" msgid "Add Wildcard…" msgstr "Dodaj zamjenski znak..." msgid "Add wildcard…" msgstr "Dodaj zamjenski znak..." msgid "Paths" msgstr "Putanje" msgid "Excluded paths" msgstr "Isključene putanje" msgid "Advanced extraction settings" msgstr "" msgid "Extract notes for translators from:" msgstr "" msgid "Comments prefixed with:" msgstr "" msgid "All comments" msgstr "Svi komentari" msgid "Additional xgettext flags:" msgstr "Dodatne xgettext oznake:" msgid "Additional keywords" msgstr "Dodatne ključne riječi" msgid "Name of the project the translation is for" msgstr "Ime projekta za koji je prijevod" msgid "Team name and email address or URL" msgstr "" msgid "e.g. nplurals=2; plural=(n > 1);" msgstr "npr. nplurals=2; plural=(n > 1);" msgid "UTF-8 (recommended)" msgstr "UTF-8 (preporučeno)" msgid "Please save the file first. This section cannot be edited until then." msgstr "Prvo spremite datoteku. Ovaj dio se ne može uređivati prije spremanja." msgid "Not all plural forms are translated." msgstr "" msgid "The translation should start as a sentence." msgstr "" msgid "The translation should start with a lowercase character." msgstr "" msgid "The translation doesn’t start with a space." msgstr "" msgid "The translation starts with a space, but the source text doesn’t." msgstr "" msgid "The translation is missing a newline at the end." msgstr "" msgid "The translation ends with a newline, but the source text doesn’t." msgstr "" msgid "The translation is missing a space at the end." msgstr "" msgid "The translation ends with a space, but the source text doesn’t." msgstr "" #, c-format msgid "The translation should end with “%s”." msgstr "Prijevod mora završavati s “%s”." #, c-format msgid "The translation should not end with “%s”." msgstr "Prijevod ne smije završavati s “%s”." #, c-format msgid "The translation ends with “%s”, but the source text ends with “%s”." msgstr "" msgid "Comment:" msgstr "Komentar:" msgid "OK" msgstr "U redu" msgid "C&lear" msgstr "O&čisti" msgid "Clear the comment" msgstr "Očisti napomenu" msgid "New" msgstr "Novo" msgid "Create new translations project" msgstr "Izradi novi projekt prevođenja" msgid "Edit" msgstr "Uredi" msgid "Edit the project" msgstr "Uredi projekt" msgid "Delete the project" msgstr "Izbriši projekt" msgid "Update all" msgstr "Ažuriraj sve" msgid "Update all catalogs in the project" msgstr "Ažuriraj sve kataloge u projektu" msgid "Edit project" msgstr "Uredi projekt" msgid "Project name:" msgstr "Naziv projekta:" msgid "Browse" msgstr "Pregledaj" msgid "Add directory to the list" msgstr "Dodaj mapu na popis" msgid "&New…" msgstr "&Novo…" msgid "New from &POT/PO file…" msgstr "Novo iz &POT/PO datoteke…" msgid "New From &POT/PO File…" msgstr "Novo iz &POT/PO datoteke…" msgid "&Open…" msgstr "&Otvori..." msgid "Open Recent" msgstr "Otvori nedavno" msgid "Open from Crowdin…" msgstr "" msgid "Open From Crowdin…" msgstr "" msgid "&Close" msgstr "&Zatvori" msgid "&Save" msgstr "&Spremi" msgid "Save &as…" msgstr "Spremi kao…" msgid "Save &As…" msgstr "Spremi kao…" msgid "Compile to MO…" msgstr "" msgid "E&xport as HTML…" msgstr "" msgid "Check for updates…" msgstr "Provjeri ako je dostupna nadogradnja" msgid "&Preferences…" msgstr "&Postavke" msgid "Catalogs &manager" msgstr "Upravitelj &kataloga" msgid "Catalogs &Manager" msgstr "Upravitelj &kataloga" msgid "E&xit" msgstr "&Izlaz" msgid "Quit" msgstr "Izađi" msgid "Copy from singular" msgstr "Kopiraj iz jednine" msgid "Copy From Singular" msgstr "Kopiraj iz jednine" msgid "Translation needs &work" msgstr "" msgid "Translation Needs &Work" msgstr "" msgid "Edit &comment" msgstr "Uredi &komentar" msgid "Edit &Comment" msgstr "Uredi &komentar" msgid "Suggestions" msgstr "Prijedlozi" msgid "&Find…" msgstr "Pronađi" msgid "Replace…" msgstr "Zamijeni..." msgid "Find next" msgstr "Pronađi sljedeće" msgid "Find previous" msgstr "Pronađi prethodno" msgid "Find and Replace…" msgstr "" msgid "Find Next" msgstr "Pronađi sljedeće" msgid "Find Previous" msgstr "Pronađi prethodno" msgid "&Preferences" msgstr "&Postavke" msgid "Display entry &IDs" msgstr "Prikaži unos i ID-ove" msgid "Display Entry &IDs" msgstr "Prikaži unos i ID-ove" msgid "Sort by &file order" msgstr "Razvrstaj po redoslijedu &datoteka" msgid "Sort by &File Order" msgstr "Razvrstaj po redoslijedu &datoteka" msgid "Sort by &source" msgstr "Razvrstaj po redoslijedu &izvora" msgid "Sort by &Source" msgstr "Razvrstaj po redoslijedu &izvora" msgid "Sort by &translation" msgstr "Razvrstaj po redoslijedu &prijevoda" msgid "Sort by &Translation" msgstr "Razvrstaj po redoslijedu &prijevoda" msgid "&Group by context" msgstr "&Grupiraj po kontekstu" msgid "&Group By Context" msgstr "&Grupiraj po kontekstu" msgid "Entries with errors first" msgstr "" msgid "Entries with Errors First" msgstr "" msgid "&Untranslated entries first" msgstr "&Prvo neprevedeni unosi" msgid "&Untranslated Entries First" msgstr "&Prvo neprevedeni unosi" msgid "&Show references" msgstr "&Prikaži reference" msgid "&Show References" msgstr "&Prikaži reference" msgid "Show sidebar" msgstr "Pokaži bočnu traku" msgid "Show status bar" msgstr "Pokaži traku stanja" msgid "C&atalog" msgstr "K&atalog" msgid "&Update from sources" msgstr "&Ažuriraj iz izvora" msgid "&Update from Sources" msgstr "&Ažurirajj iz izvora" msgid "Update from &POT file…" msgstr "Ažuriraj iz POT datoteke" msgid "Update from &POT File…" msgstr "Ažuriraj iz POT datoteke" msgid "Sync with Crowdin" msgstr "" msgid "Pre-&translate…" msgstr "Pred-prevođenje" msgid "&Purge deleted translations" msgstr "&Pročisti izbrisane prijevode" msgid "&Purge Deleted Translations" msgstr "&Pročisti izbrisane prijevode" msgid "&Validate translations" msgstr "&Provjeri valjanost prijevoda" msgid "&Validate Translations" msgstr "&Provjeri valjanost prijevoda" msgid "&Properties…" msgstr "Svojstva" msgid "&Done and next" msgstr "&Završi i idi na sljedeće" msgid "&Done and Next" msgstr "&Završi i idi na sljedeće" msgid "&Previous translation" msgstr "&Prethodni prijevod" msgid "&Previous Translation" msgstr "&Prethodni prijevod" msgid "&Next translation" msgstr "&Sljedeći prijevod" msgid "&Next Translation" msgstr "&Sljedeći prijevod" msgid "P&revious unfinished" msgstr "P&rethodno nezavršeno" msgid "P&revious Unfinished" msgstr "P&rethodno nezavršeno" msgid "Ne&xt unfinished" msgstr "S&ljedeće nezavršeno" msgid "Ne&xt Unfinished" msgstr "S&ljedeće nezavršeno" msgid "Previous plural form" msgstr "" msgid "Previous Plural Form" msgstr "" msgid "Next plural form" msgstr "" msgid "Next Plural Form" msgstr "" msgid "&Online help" msgstr "&Pomoć s mreže" msgid "&Online Help" msgstr "&Pomoć s mreže" msgid "&GNU gettext manual" msgstr "&GNU gettext priručnik" msgid "&GNU gettext Manual" msgstr "&GNU gettext priručnik" msgid "&About Poedit" msgstr "&O Poeditu" msgid "&About" msgstr "&O programu..." msgid "Extractor setup" msgstr "Postavke izdvajača" msgid "List of extensions separated by semicolons (e.g. *.cpp;*.h):" msgstr "Popis nastavaka razdvojen točkazarezom (npr. \"*.cpp;*.h\"):" msgid "Invocation:" msgstr "Pozivanje:" msgid "Command to extract translations:" msgstr "Naredba za izdvajanje prijevoda" msgid "" "This is the command used to launch the extractor.\n" "%o expands to the name of output file, %K to list\n" "of keywords, %F to list of input files,\n" "%C to charset flag (see below)." msgstr "" "Ova se naredba koristi za pokretanje izdvajača.\n" "%o se proširuje na ime izlazne datoteke, %K na popis\n" "ključnih riječi, %F na popis ulaznih datoteka,\n" "%C na zastavicu kodne stranice (pogledajte ispod)." msgid "An item in keywords list:" msgstr "Stavka u popisu ključnih riječi:" msgid "" "This will be attached to the command line once\n" "for each keyword. %k expands to the keyword." msgstr "" "Ovo će se dodati na naredbeni redak jednom\n" "za svaku ključnu riječ. %k dodajej se na ključnu riječ." msgid "An item in input files list:" msgstr "Stavka u popisu ulaznih datoteka." #, c-format msgid "" "This will be attached to the command line once\n" "for each input file. %f expands to the filename." msgstr "" "Ovo će se dodati naredbenom retku jednom\n" "za svaku ulaznu datoteku. %f se dodaje na ime datoteke." msgid "Source code charset:" msgstr "Kodna stranica izvornog koda" #, c-format msgid "" "This will be attached to the command line\n" "only if source code charset was given. %c expands to charset value." msgstr "" "Ovo će se dodati naredbenom retku\n" "samo ako je priložen izvorni kod. %c se dodaje na vrijednost kodne stranice." msgid "Catalog properties" msgstr "Svojstva kataloga" msgid "Project name and version:" msgstr "Ime i inačica projekta" msgid "Language team:" msgstr "Jezična ekipa:" msgid "Plural forms:" msgstr "Oblici množine:" msgid "Use default rules for this language" msgstr "za ovaj jezik koristi zadana pravila" msgid "Use custom expression" msgstr "Koristi prilagođene izraze" msgid "Learn about plural forms" msgstr "Nauči više o oblicima množine" msgid "Charset:" msgstr "Kodna stranica:" msgid "Advanced Extraction Settings…" msgstr "" msgid "Advanced extraction settings…" msgstr "" msgid "Translation Properties" msgstr "Svojstva prijevoda" msgid "Translation properties" msgstr "Svojstva prijevoda" msgid "Sources Paths" msgstr "Putanje do izvora" msgid "Sources paths" msgstr "Putanje do izvora" msgid "Extract text from source files in the following directories:" msgstr "Izdvoji tekst iz izvornih datoteka u sljedećim mapama:" msgid "Base path:" msgstr "Osnovna putanja" msgid "Sources Keywords" msgstr "Ključne riječi izvora" msgid "Sources keywords" msgstr "Ključne riječi izvora" msgid "" "Use these keywords (function names) to recognize translatable strings\n" "in source files:" msgstr "" "Koristi ove ključne riječi (nazive funkcija) za prepoznavanje prevodivih " "stringova\n" "u izvornim datotekama." msgid "Also use default keywords for supported languages" msgstr "" msgid "Learn About Gettext Keywords" msgstr "Nauči više o gettext ključnim riječima" msgid "Learn about gettext keywords" msgstr "Nauči više o gettext ključnim riječima" msgid "Update summary" msgstr "Ažuriranje sažetka" msgid "" "These strings were found in the sources but were not in the catalog.\n" "Poedit will add them to the catalog now." msgstr "" "Ovi stringovi pronađeni su u izvornim datotekama ali ne i u katalogu.\n" "Poedit će ih dodati u katalog." msgid "New strings" msgstr "Novi stringovi" msgid "" "These strings are no longer in the sources.\n" "Poedit will remove them from the catalog now." msgstr "" "Ovi stringovi više se ne nalaze u izvornim datotekama.\n" "Poedit će ih izbrisati iz kataloga." msgid "Obsolete strings" msgstr "Zastarjeli stringovi" msgid "(0 new, 0 obsolete)" msgstr "(novih: 0, zastarjelih: 0)" msgid "Open" msgstr "Otvori" msgid "Save catalog" msgstr "Spremi katalog" msgid "Validate" msgstr "Provjeri valjanost" msgid "Check for errors in the translation" msgstr "Provjeri greške u prijevodu" msgid "Update" msgstr "Ažuriraj" msgid "Update catalog - synchronize it with sources" msgstr "Ažuriraj katalog, uskladi ga s izvorima" msgid "Sidebar" msgstr "Bočna traka" msgid "Show or hide the sidebar" msgstr "Faza" #. TRANSLATORS: "Previous" as in used in the past, now replaced with newer. msgid "Previous source text:" msgstr "" msgid "" "The old source text (before it changed during an update) that the now-" "inaccurate translation corresponds to." msgstr "" msgid "Notes for translators:" msgstr "Napomene prevoditeljima:" msgid "Add comment" msgstr "Dodaj komentar" msgid "Add Comment" msgstr "Dodaj komentar" msgid "Translation suggestions:" msgstr "Prijedlozi za prijevod:" #. TRANSLATORS: This is shown when no translation suggestions can be found in the TM (Windows). msgid "No matches found" msgstr "Nema poklapanja" #. TRANSLATORS: This is shown when no translation suggestions can be found in the TM (macOS, Linux). msgid "No Matches Found" msgstr "Rezultati nisu pronađeni" msgid "This string was found in Poedit’s translation memory." msgstr "" msgid "Cannot create temporary directory." msgstr "Nije moguće izraditi privremenu mapu." msgid "Welcome to Poedit" msgstr "Dobrodošli u Poedit!" #. TRANSLATORS: This is version information in about dialog, "%s" will be #. version number when used #, c-format msgid "Version %s" msgstr "Inačica %s" msgid "Edit a Translation" msgstr "Uredi prijevod" msgid "Edit a translation" msgstr "Uredi prijevod" msgid "Open an existing PO file and edit the translation." msgstr "Otvori postojeću PO datoteku i uredi prijevod." msgid "" "Take an existing PO file or POT template and create a new translation from " "it." msgstr "" "Otvori postojeću PO datoteku ili POT predložak i od njih izradi novi prijevod" msgid "Collaborate on a Translation with Others" msgstr "Surađuj na prijevodu s drugima" msgid "Collaborate on a translation with others" msgstr "Surađuj na prijevodu s drugima" msgid "" "Download a file from Crowdin project, translate and sync your changes back." msgstr "" msgid "What is Crowdin?" msgstr "" msgid "There are no translations. That’s unusual." msgstr "Nema prijevoda, to je neobično" msgid "" "Translatable entries aren’t added manually in the Gettext system, but are " "automatically extracted\n" "from source code. This way, they stay up to date and accurate.\n" "Translators typically use PO template files (POTs) prepared for them by the " "developer." msgstr "" msgid "(Learn more about GNU gettext)" msgstr "(Nauči više o GNU gettext)" msgid "The simplest way to fill this catalog is to update it from a POT:" msgstr "" "Najjednostavniji način za ispunjavanje ovog kataloga je ažuriranje iz POT " "datoteke" msgid "Update from POT" msgstr "Ažuriraj iz POT datoteke" msgid "Take translatable strings from an existing POT template." msgstr "Preuzmi prevodive stringove iz postojeće POT datoteke" msgid "" "You can also extract translatable strings directly from the source code:" msgstr "Također možete izdvojiti prevodive stringove izravno iz izvornog koda" msgid "Extract from sources" msgstr "Izdvoji iz izvora" msgid "Configure source code extraction in Properties." msgstr "Konfiguriraj izdvajanje iz izvornog koda u Svojstvima" msgid "Sync" msgstr "Sinkronizacija" msgid "Synchronize the translation with Crowdin" msgstr "Uskladi prijevod s Crowdin" #. TRANSLATORS: This is titlebar of about dialog, "%s" is application name #. ("Poedit" here, but please use "%s") #, c-format msgid "About %s" msgstr "O %s" #. TRANSLATORS: Title of the preferences window on Windows and Linux. "%s" is replaced with "Poedit" when running. #, c-format msgid "%s Preferences" msgstr "%s Postavke" #. TRANSLATORS: macOS item in app menu msgid "Services" msgstr "Usluge" #. TRANSLATORS: macOS item in app menu, %s is replaced with "Poedit" #, c-format msgid "Hide %s" msgstr "Sakrij %s" #. TRANSLATORS: macOS item in app menu msgid "Hide Others" msgstr "Sakrij druge" #. TRANSLATORS: macOS item in app menu msgid "Show All" msgstr "Pokaži sve" #. TRANSLATORS: macOS item in app menu, %s is replaced with "Poedit" #, c-format msgid "Quit %s" msgstr "Otkaz %s" #. TRANSLATORS: macOS item in app menu msgid "Preferences…" msgstr "Postavke..." msgid "Preferences..." msgstr "Postavke..." #. TRANSLATORS: Title of a category in Windows task menu (right-click icon in taskbar) msgid "Recent" msgstr "Najnovije" #. TRANSLATORS: Title of a category in Windows task menu (right-click icon in taskbar) msgid "Frequent" msgstr "Često" msgid "&Apply" msgstr "&Primjeni" msgid "Apply" msgstr "Primijeni" msgid "&Back" msgstr "&Natrag" msgid "Back" msgstr "Natrag" msgid "&Cancel" msgstr "&Odustani" msgid "&Clear" msgstr "O&čisti" msgid "Clear" msgstr "Očisti" msgid "Copy" msgstr "Kopiraj" msgid "Cu&t" msgstr "Izr&eži" msgid "Cut" msgstr "Izreži" msgid "&Delete" msgstr "&Izbriši" msgid "&Quit" msgstr "&Izađi" msgid "File" msgstr "Datoteka" msgid "Help" msgstr "Pomoć" msgid "&New" msgstr "&Novo" msgid "&No" msgstr "&Ne" msgid "No" msgstr "Ne" msgid "&OK" msgstr "&U redu" msgid "Open…" msgstr "Otvori..." msgid "&Open..." msgstr "&Otvori..." msgid "Open..." msgstr "Otvori..." msgid "&Paste" msgstr "&Zalijepi" msgid "Paste" msgstr "Zalijepi" msgid "Preferences" msgstr "Postavke" msgid "&Redo" msgstr "&Vrati" msgid "Refresh" msgstr "Osvježi" msgid "&Save as" msgstr "&Spremi kao" msgid "Save as" msgstr "Spremi kao" msgid "Select &All" msgstr "Odaberi &sve" msgid "Select All" msgstr "Odaberi sve" msgid "&Undo" msgstr "&Poništi" msgid "&Yes" msgstr "&Da" msgid "Yes" msgstr "Da" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Shift+" msgstr "Shift+" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Enter" msgstr "Unesite" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Up" msgstr "Gore" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Down" msgstr "Dolje" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Left" msgstr "Lijevo" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Right" msgstr "Desno" #. TRANSLATORS: Keyboard shortcut, must correspond to translation of "Ctrl+" msgid "ctrl" msgstr "ctrl" #. TRANSLATORS: Keyboard shortcut, must correspond to translation of "Alt+" msgid "alt" msgstr "alt" #. TRANSLATORS: Keyboard shortcut, must correspond to translation of "Shift+" msgid "shift" msgstr "shift" poedit-2.0.6/locales/pl.mo0000664000372000037200000014403513230132042012313 00000000000000P%1 1 11<11J 2gW2 22 22 222 3333%3+333B3Q3W3]3f3z333333333333 3 44 4)4 04=4M4c4y44444444445 5(5D5Y5n55555555 6 '6:36:n6 666 6 666 6 7 #707?7O7c7~77777 71898'>8f88 8878689)=9g9 l9]w99A9I*:t:{:; ;;";:; U;`;.h;;;;;;;;<*<F<#[<<<<<<<<(<(=7= R=s=|== ==/= = >>#>9>L>b>2>>>>> ?)???????@@@ 2@?@R@Ee@"@?@ AA*.A YAfAyAK~A"A5A#B)BHAH HHI 'IHI PI ]IiI"nI;I(IIJ&J 5J ?JMJjJ ~JJJJJ JJK:K PK<^K.KKKKLL*%LPLVLgL xL LLJMNMgM MMMMM#MM'M$N7DN$|N%NNNNNNOOOO O2O P#P9PNP]PlPtP|PPPPPPPPQQQnQERZR>aR RRRR@RS-Tww bx lx zx x x xx xx xxxx#x# y-y5y ;yFy`y zyyyyyy yyyzz z z (z 4z@z GzSzbz{zz!z!zzzz{ {{.{D{L{j{{{{{{{{$|7|S|o||G|G| .}:}J}P}`}o}}}}}}}}~ )~)6~&`~)~~~E~)#.(R%{ 592$2W_F%Nl ǁn v+"ׂ1&=Rg{  %؃&/%&U| ń܄(( "6)Y ɅB +9@]|!Cچ<V p`fnˈш <6s7 ȉԉ< &2G]Y%8݊  7>Pbs ʋ Ջ ߋ0g8ƌ:L#ˍ '7I_*Ԏ:/M.};( f2ʐݐ(@R e s ‘֑ "3FXwz 5Vs   9ߓ$>Sbx2ʔ)2#Rv)˕=Е;*Afؖ 7>W p }ot Ϙ;Lj$O7(2[ux*Fqy30C V alrwМ M6 F؞ C *d3àޠjz JV e+sߢ% . 8Y `kt { ̣ ݣ "6ǤͤԤ   +=N+^%̥ۥ*H[ m0   (5FX!kЧ-BZo"A"RuϩSpŪ ٪ %2.Ix'Ǭ,ެ5 ATD,(ƭ? F^ftű`:"UF(LųIP\-(۴$)8-b/2I=*ķW~GƸLcdsT޺VH SrvVͽ ӽ %=]yҿ ' (45]  "lB+%/8)hs  '1 C"Mp! X<TD71) ,7&d>'D}],6 9BW6tC3H>C'# )h?*Kq#-0^aG2zFYblx&2LADZ.EwPi=Ab[kv @4uh~ uL@|pnf.nTN? QI2:qOKcajd F!p ]U>T+rXi=J%Vxz51^s4 NH/F"8/XJ`om #UwQk :Gs$ 8jL!~I1,(<D-9B>|;$H(E?g<y!dYgIo \ <eN+rM5&cM5 :"K-A+EmZ7C"603B $%RfRVeyOG*S@ M,4}_{O%W91J)S[`' 7)v &;*{(l_.03=\7P8/t';P (modified) (unsaved)%d entry%d entries%d entry was pre-translated.%d entries were pre-translated.%d error%d errors%d issue with the translation found.%d issues with the translation found.%i line of file “%s” was not loaded correctly.%i lines of file “%s” were not loaded correctly.%s Format%s Preferences%s format&About&About Poedit&Apply&Back&Bookmarks&Cancel&Clear&Close&Copy&Delete&Done and Next&Done and next&Edit&File&Find…&GNU gettext Manual&GNU gettext manual&Go&Group By Context&Group by context&Help&New&New…&Next >&Next Translation&Next translation&No&OK&Online Help&Online help&Open...&Open…&Paste&Preferences&Preferences…&Previous Translation&Previous translation&Properties…&Purge Deleted Translations&Purge deleted translations&Quit&Redo&Replace&Save&Save as&Show References&Show references&Undo&Untranslated Entries First&Untranslated entries first&Update from Sources&Update from sources&Validate Translations&Validate translations&View&Yes(0 new, 0 obsolete)(Learn more about GNU gettext)(New: %i, obsolete: %i)(Use default language)(requires Windows 8 or newer)< &PreviousDrag and Drop Folders Here or use the + buttonDrag and drop folders here or use the + buttonAbout %sAccountsAdd CommentAdd Files…Add Folders…Add Wildcard…Add commentAdd directory to the listAdd files…Add folders…Add wildcard…Additional keywordsAdditional xgettext flags:AdvancedAdvanced Extraction Settings…Advanced extraction settingsAdvanced extraction settings…All Translation FilesAll commentsAlso use default keywords for supported languagesAlt+Always change focus to text input fieldAn item in input files list:An item in keywords list:AppearanceApplyAre you sure you want to delete the “%s” extractor?Are you sure you want to reset the translation memory?Automatically check for updatesAutomatically compile MO file when savingBackBase path:Beta versions contain the latest new features and improvements, but may be a bit less stable.Bring All to FrontBroken catalog file: plural form msgstr used without msgid_pluralBroken catalog file: singular form msgstr used together with msgid_pluralBrowseBy default, inaccurate results are filled in as well and marked as needing work. Check this option to only include accurate matches.C&atalogC&learCancelCannot create temporary directory.Cannot execute program: %sCapitalizeCatalogCatalog modified. Do you want to save changes?Catalog propertiesCatalogs &ManagerCatalogs &managerCatalogs ManagerChange UI languageCharset:Check Document NowCheck Grammar With SpellingCheck Spelling While TypingCheck for Updates…Check for errors in the translationCheck for updates…Check spellingClearClear TranslationClear the commentClear translationCloseCollaborate on a Translation with OthersCollaborate on a translation with othersCollecting source files…Command to extract translations:Comment:Comments prefixed with:Compile to MO…Compile to…Compiled Translation FilesConfigure source code extraction in Properties.ConfirmationCopyCopy From SingularCopy from Source TextCopy from singularCopy from source textCorrect Spelling AutomaticallyCouldn’t load file %s, it is probably corrupted.Couldn’t save file %s.Create New TranslationCreate new translationCreate new translations projectCrowdin errorCrowdin is an online localization management platform and collaborative translation tool. Poedit can seamlessly sync PO files managed at Crowdin.Ctrl+Cu&tCustom Extractors:Custom extractors:CutDatabase size on disk:DeleteDelete extractorDelete the projectDirectories:Display Entry &IDsDisplay entry &IDsDo you really want to do mass update of all catalogs in this project?Do you want to delete the project?Do you want to remove all translations that are no longer used?Don’t SaveDon’t Show AgainDon’t mark exact matches as needing workDon’t saveDon’t show againDownDownload a file from Crowdin project, translate and sync your changes back.Downloading latest translations…Downloading translations is disabled in this project.E&xitE&xport as HTML…EditEdit &CommentEdit &commentEdit CommentEdit a TranslationEdit a translationEdit commentEdit projectEdit the projectEditingEdit…Email:EnterEnter Full ScreenEntries in the catalog are probably incorrect.Entries in this catalog have different plural forms count from what catalog’s Plural-Forms header saysEntries with Errors FirstEntries with errors firstEntries with errors were marked in red in the list. Details of the error will be shown when you select such an entry.Error loading message catalog file “%s”.Error opening fileError opening file %s!Error saving catalogErrorsEverythingExcluded pathsExport as…Extract from sourcesExtract notes for translators from:Extract text from source files in the following directories:Extracting translatable strings…Extractor setupExtractorsFailed command: %sFailed to communicate with Poedit process.Failed to load extracted catalog.Failed to merge gettext catalogs.Failed to update translation memory: %sFileFile “%s” doesn’t exist.File “%s” is not a message catalog.File “%s” is read-only and cannot be saved. Please save it under different name.File:Finalizing…FindFind NextFind PreviousFind and Replace…Find in commentsFind in source textsFind in translationsFind nextFind previousFix LanguageFix languageFix the HeaderFix the headerForm %iFrequentGNU gettextGeneralGo to Bookmark %iGo to bookmark %iHTML FilesHelpHide %sHide OthersHide SidebarHide Status BarHide this notification messageIDIf you continue with purging, all translations marked as deleted will be permanently removed. You will have to translate them again if they are added back in the future.Ignore caseImporting translations…Include beta versionsInformation about the translatorInstallInvalid fileInvocation:KeepLanguage Code or Name (e.g. en_GB)Language of the translation is the same as source language.Language of the translation isn’t set.Language of the translation:Language selectionLanguage team:Language:Last modifiedLearn About Gettext KeywordsLearn From Files…Learn MoreLearn More About CrowdinLearn about gettext keywordsLearn about plural formsLearn from files…Learn moreLearn more about CrowdinLeftLine %d of file “%s” is corrupted (not valid %s data).Line endings:List of extensions separated by semicolons (e.g. *.cpp;*.h):MO files can’t be directly edited in Poedit.Make Lower CaseMake Upper CaseMalformed header: “%s”Merging differences…MinimizeName of the project the translation is forName:Ne&xt UnfinishedNe&xt unfinishedNeeds WorkNeeds workNever let the list of strings take focus. If enabled, you must use Ctrl-arrows for keyboard navigation but you can also type text immediately, without having to press Tab to change focus.NewNew From &POT/PO File…New from &POT/PO file…New stringsNext Plural FormNext plural formNoNo Matches FoundNo entries could be pre-translated.No matches foundNo problems with the translation found.No references for the selected item.No translation projects listed in your Crowdin account.Not all plural forms are translated.Not authorized, please sign in again.Notes for translators:OKObsolete stringsOneOnly enable if you trust the quality of your TM. By default, all matches from the TM are marked as needing work and should be reviewed before use.Only fill in exact matchesOpenOpen Crowdin translationOpen From Crowdin…Open RecentOpen an existing PO file and edit the translation.Open catalogOpen catalog templateOpen from Crowdin…Open in EditorOpen in editorOpen...Open…OptionsOtherP&revious UnfinishedP&revious unfinishedPO TranslationPO Translation FilesPOT Translation TemplatesPOT files are only templates and don’t contain any translations themselves. To make a translation, create a new PO file based on the template.PastePaste and Match StylePathsPlease open and edit the corresponding PO file instead. When you save it, the MO file will be updated as well.Please save the file first. This section cannot be edited until then.PluralPlural forms expression used by the catalog is unusual for %s.Plural forms:Plural:PoeditPoedit - Catalogs managerPoedit automatically fixed invalid content in the file “%s”.Poedit can attempt to fill in new entries from only previous translations in the file or from your entire translation memory. Using the TM won’t be very effective if it’s near-empty, but it will get better as you add more translations to it.Poedit is an easy to use translations editor.Pre-&translate…Pre-translatePre-translatedPre-translated %u stringPre-translated %u stringsPre-translating…Pre-translation automatically finds exact or fuzzy matches for untranslated strings in the translation memory and fills in their translations.PreferencesPreferences...Preferences…Preserve formatting of existing filesPrevious Plural FormPrevious plural formPrevious source text:Project name and version:Project name:Project:PurgePurge deleted translationsQuitQuit %sRecentRedoReferences:RefreshRemaining: %dReplaceReplace &AllReplace &allReplacement stringReplace…Required header Plural-Forms is missing.ResetReset translation memoryResetting the translation memory will irrevocably delete all stored translations from it. You can’t undo this operation.ReviewRightSaveSave &As…Save &as…Save asSave as…Save catalogSave changesSelect &AllSelect AllSelect directorySelect translation files to importSelect your preferred languageServicesSet Bookmark %iSet LanguageSet bookmark %iSet languageShift+Show AllShow SidebarShow Spelling and GrammarShow Status BarShow SubstitutionsShow or hide the sidebarShow sidebarShow status barShow summary after catalog updateSidebarSign InSign OutSign inSign in to CrowdinSign outSigned in as:SingularSingular:Smart Copy/PasteSmart DashesSmart LinksSmart QuotesSort by &File OrderSort by &SourceSort by &TranslationSort by &file orderSort by &sourceSort by &translationSource code charset:Source code extractors are used to find translatable strings in the source code files and extract them so that they can be translated.Source code not available.Source fileSource file occurrence:Source textSource text — %sSource text:Sources KeywordsSources PathsSources keywordsSources pathsSpeechSpellchecking is disabled, because the dictionary for %s isn’t installed.Spelling and GrammarStart SpeakingStop SpeakingStored translations:String to findSubstitutionsSuggestionsSuggestions are not available if the translation language is not set correctly. Other features, such as plural forms, may be affected as well.Supports all programming languages recognized by GNU gettext tools (PHP, C/C++, C#, Perl, Python, Java, JavaScript and others).SyncSync with CrowdinSynchronize the translation with CrowdinSyncingSyncing errorSyncing with %s failed.Syncing with %s…Syncing with Crowdin failed.Syntax error in Plural-Forms header ("%s").TMTake an existing PO file or POT template and create a new translation from it.Take translatable strings from an existing POT template.Team name and email address or URLText ReplacementThe TM doesn’t contain any strings similar to the content of this file. It is only effective for semi-automatic translations after Poedit learns enough from files that you translated manually.The catalog couldn’t be saved in “%s” charset as specified in catalog settings. It was saved in UTF-8 instead and the setting was modified accordingly.The file cannot be compiled into the MO format and used.The file cannot be opened.The file contained duplicate items, which is not allowed in PO files and would prevent the file from being used. Poedit fixed the issue, but you should review translations of any items marked as needing work and correct them if necessary.The file may be either corrupted or in a format not recognized by Poedit.The file was compiled into the MO format, but it will probably not work correctly.The file was saved safely and compiled into the MO format, but it will probably not work correctly.The file was saved safely, but it cannot be compiled into the MO format and used.The file was saved safely.The old source text (before it changed during an update) that the now-inaccurate translation corresponds to.The simplest way to fill this catalog is to update it from a POT:The translation doesn’t start with a space.The translation ends with a newline, but the source text doesn’t.The translation ends with a space, but the source text doesn’t.The translation ends with “%s”, but the source text ends with “%s”.The translation is missing a newline at the end.The translation is missing a space at the end.The translation is ready for use, but %d entry is not translated yet.The translation is ready for use, but %d entries are not translated yet.The translation is ready for use.The translation should end with “%s”.The translation should not end with “%s”.The translation should start as a sentence.The translation should start with a lowercase character.The translation starts with a space, but the source text doesn’t.The translations were marked as needing work, because they may be inaccurate. You should review them for correctness.There are no translations. That’s unusual.There was a problem formatting the file nicely (but it was saved all right).There were errors when loading the catalog. Some data may be missing or corrupted as the result.These settings affect internal formatting of PO files. Adjust them if you have specific requirements e.g. because of version control.These strings are no longer in the sources. Poedit will remove them from the catalog now.These strings were found in the sources but were not in the catalog. Poedit will add them to the catalog now.This catalog has entries with plural forms, but doesn’t have Plural-Forms header configured.This file can only be edited in Crowdin’s web interface.This is the command used to launch the extractor. %o expands to the name of output file, %K to list of keywords, %F to list of input files, %C to charset flag (see below).This project has no files that can be translated in Poedit.This string was found in Poedit’s translation memory.This will be attached to the command line only if source code charset was given. %c expands to charset value.This will be attached to the command line once for each input file. %f expands to the filename.This will be attached to the command line once for each keyword. %k expands to the keyword.TotalTransformationsTranslatable entries aren’t added manually in the Gettext system, but are automatically extracted from source code. This way, they stay up to date and accurate. Translators typically use PO template files (POTs) prepared for them by the developer.Translated: %d of %d (%d %%)Translation LanguageTranslation MemoryTranslation Needs &WorkTranslation PropertiesTranslation needs &workTranslation propertiesTranslation suggestions:Translation — %sTranslation:Translations couldn’t be updated from the source code, because no code was found in the location specified in the catalog’s Properties.TwoUTF-8 (recommended)UndoUnhandled exception occurred: %sUnix (recommended)UntransUpUpdateUpdate allUpdate all catalogs in the projectUpdate catalog - synchronize it with sourcesUpdate from &POT File…Update from &POT file…Update from POTUpdate summaryUpdatesUpdating catalogUpdating failedUpdating the catalog failed. Click on 'Details >>' for details.Updating user information…Uploading translations…Use custom expressionUse custom list font:Use custom text fields font:Use default rules for this languageUse these keywords (function names) to recognize translatable strings in source files:Use translation memoryValidateValidation resultsVersion %sWaiting for authentication…Welcome to PoeditWhat is Crowdin?When updating from sourcesWhole words onlyWindowWindowsWrap aroundWrap at:YesYou can also extract translatable strings directly from the source code:You can’t drop more than one file on Poedit window.You must restart Poedit for this change to take effect.Your NameYour changes will be lost if you don’t save them.Your name and email address are only used to set the Last-Translator header of GNU gettext files.ZeroZoomaltctrldon’t delete temporary files (for debugging)e.g. nplurals=2; plural=(n > 1);fuzzy match within the filego to item at given line numberhandle a poedit:// URIpre-translate from TMshiftunknown languageyour_email@example.com“%s” is not a valid POT file.Project-Id-Version: poedit Report-Msgid-Bugs-To: help@poedit.net POT-Creation-Date: 2018-01-18 13:57+0100 PO-Revision-Date: 2018-01-18 07:56-0500 Last-Translator: vslavik Language-Team: Polish Language: pl_PL MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2); X-Generator: crowdin.com X-Crowdin-Project: poedit X-Crowdin-Language: pl X-Crowdin-File: /locales/poedit.pot (zmodyfikowano) (niezapisany)%d wpis%d wpisy%d wpisów%d wpis został wstępnie przetłumaczony.%d wpisy zostały wstępnie przetłumaczone.%d wpisów zostało wstępnie przetłumaczonych.%d błąd%d błędy%d błędówW tłumaczeniu znaleziono %d problem.W tłumaczeniu znaleziono %d problemy.W tłumaczeniu znaleziono %d problemów.%i linia pliku "%s" nie została prawidłowo załadowana.%i linie pliku "%s" nie zostały prawidłowo załadowane.%i linie pliku "%s" nie zostały prawidłowo załadowane.Format %sUstawienia %sFormat %s&O programie&O Poedit&Zatwierdź&Wstecz&Zakładki&Anuluj&Wyczyść&Zamknij&Kopiuj&Usuń&Zakończ i przejdź do następnego&Zakończ i przejdź do następnego&Edycja&PlikZnajdź…Dokumentacja &GNU gettextDokumentacja &GNU gettextNawi&gacja&Grupuj wg kontekstu&Grupuj wg kontekstu&Pomoc&Nowy&Nowy…&Następne »&Następne tłumaczenie&Następne tłumaczenie&Nie&OKPomoc &onlinePomoc &online&Otwórz…&Otwórz…&Wklej&Ustawienia&Ustawienia…&Poprzednie tłumaczenie&Poprzednie tłumaczenie&Właściwości…&Wyczyść usunięte tłumaczenia&Wyczyść usunięte tłumaczenia&Wyjdź&PonówZamień&ZapiszZapi&sz jako&Wyświetl odwołania&Wyświetl odwołania&Cofnij&Nieprzetłumaczone na górze&Nieprzetłumaczone na górze&Aktualizuj ze źródeł&Aktualizuj ze źródeł&Weryfikuj tłumaczenie&Weryfikuj tłumaczenia&Widok&Tak(0 nowych, 0 nieaktualnych)(Dowiedz się więcej o GNU gettext)(Nowe: %i, nieaktualne: %i)(Użyj domyślnego języka)(wymaga Windows 8 lub nowszego)« &PoprzedniePrzeciągnij i upuść katalogi tutaj lub użyj przycisku +Przeciągnij i upuść katalogi tutaj lub użyj przycisku +Informacje o %sKontaDodaj komentarzDodaj pliki…Dodaj foldery…Dodaj wieloznacznik…Dodaj komentarzDodaj katalog do listyDodaj pliki…Dodaj foldery…Dodaj wieloznacznik…Dodatkowe słowa kluczoweDodatkowe flagi Xgettext:ZaawansowaneZaawansowane ustawienia wyodrębniania…Zaawansowane ustawienia wyodrębnianiaZaawansowane ustawienia wyodrębniania…Wszystkie pliki tłumaczeńWszystkich komentarzyUżyj także domyślnych słów kluczowych z obsługiwanych językówAlt+Uaktywniaj pole wprowadzania tekstuElement na liście plików wejściowych:Element na liście słów kluczowych:WyglądZatwierdźCzy na pewno chcesz usunąć wyodrębnienie “%s”?Czy na pewno chcesz wyczyścić pamięć tłumaczeniową?Automatycznie sprawdzaj dostępność aktualizacjiAutomatycznie kompiluj plik MO podczas zapisywaniaWsteczŚcieżka podstawowa:Wersje beta zawierają nową funkcjonalność i usprawnienia, mogą być jednak mniej stabilne.Umieść wszystko na wierzchuUszkodzony plik pakietu: użyto liczby mnogiej msgstr bez msgid_pluralUszkodzony plik pakietu: użyto liczby pojedynczej msgstr razem z msgid_pluralPrzeglądajDomyślnie, niedokładne wyniki są także uzupełniane i oznaczane jako wymagające dopracowania. Zaznacz tę opcję, aby uwzględniać tylko dokładne odpowiedniki.P&akiet&WyczyśćAnulujNie można utworzyć katalogu tymczasowego!Nie można uruchomić programu: %sZamień na kapitalikiPakietZmodyfikowano pakiet. Czy chcesz zapisać zmiany?Właściwości pakietu&Menedżer pakietów&Menedżer pakietówMenedżer pakietówZmień język interfejsuKodowanie:Sprawdź dokument terazSprawdzaj gramatykę i pisownięSprawdzaj pisownię w trakcie pisaniaSprawdź dostępność aktualizacji…Sprawdza czy w tłumaczeniu występują błędySprawdź dostępność aktualizacji…Sprawdzaj pisownięWyczyśćWyczyść tłumaczenieWyczyść komentarzWyczyść tłumaczenieZamknijWspółpracuj nad tłumaczeniem z innymiWspółpracuj nad tłumaczeniem z innymiZbieranie plików źródłowych…Polecenie do wyodrębnienia tłumaczenia:Komentarz:Komentarzy z prefiksem:Skompiluj do MO…Skompiluj do…Skompilowany plik tłumaczeniaKonfiguruj wyodrębnianie kodu źródłowego we właściwościach.PotwierdzenieKopiujSkopiuj z liczby pojedynczejSkopiuj z tekstu źródłowegoSkopiuj z liczby pojedynczejSkopiuj z tekstu źródłowegoPoprawiaj pisownię automatycznieNie można wczytać pliku „%s”. Prawdopodobnie jest uszkodzony.Nie można zapisać pliku %s.Utwórz nowe tłumaczenieUtwórz nowe tłumaczenieUtwórz nowy projekt tłumaczeńBłąd CrowdinCrowdin jest internetową platformą do zarządzania tłumaczeniami oraz narzędziem do współpracy nad tłumaczeniami. Poedit obsługuje bezproblemową synchronizację plików PO z Crowdin.Ctrl+Wy&tnijNiestandardowe ekstraktory:Niestandardowe ekstraktory:WytnijRozmiar bazy danych na dysku:UsuńUsuń wyodrębnienieUsuń projektKatalogi:Wyświetlaj &numery wierszyWyświetlaj &numery wierszyCzy chcesz zaktualizować wszystkie pakiety w tym projekcie?Czy chcesz usunąć projekt?Czy chcesz usunąć wszystkie nieużywane tłumaczenia?Nie zapisujNie pokazuj ponownieNie oznaczaj dokładnych dopasowań jako wymagających pracyNie zapisujNie pokazuj ponownieStrzałka w dółPobiera plik z wybranego projektu Crowdin, pozwala przetłumaczyć i zsynchronizować zmiany.Pobieranie najnowszych tłumaczeń…Pobieranie tłumaczeń jest wyłączone w tym projekcie.&ZakończEksportuj jako HTML…EdytujEdytuj &komentarzEdytuj &komentarzEdytuj komentarzEdytuj tłumaczenieEdytuj tłumaczenieEdytuj komentarzEdytuj projektEdytuj projektEdytowanieEdytuj…Adres e-mail:EnterTryb pełnoekranowyWpisy w pakiecie są prawdopodobnie niepoprawne.Wpisy w tym folderze mają inne formy liczby mnogiej niż zdeklarowane w nagłówku form liczby mnogiejBłędne na górzeBłędne na górzeElementy zawierające błędy zostały oznaczone kolorem czerwonym. Szczegółowy opis błędu będzie widoczny po wybraniu elementu.Błąd podczas wczytywania folderu wiadomości pliku "%s".Błąd podczas otwierania plikuBłąd podczas otwierania pliku %s!Błąd zapisywania pakietuBłędyWszystkoWykluczone ścieżkiEksportuj jako…Wyodrębnij ze źródełWyodrębnij informacje dla tłumaczy z:Wyodrębniaj tekst z plików źródłowych do następujących katalogów:Wyodrębnianie ciągów do tłumaczenia…Ustawienia wyodrębnianiaWyodrębnianieBłąd polecenia: %sKomunikacja z procesem programu Poedit nie powiodła się.Nie udało się wczytać wyodrębnionego pliku.Nie udało się połączyć pakietów gettext.Nie udało się zaktualizować pamięci tłumaczeniowej: %sPlikPlik “%s” nie istnieje.Plik "%s" nie jest folderem wiadomości.Plik „%s” ma atrybut „tylko do odczytu” i nie może być zapisany. Zapisz go pod inną nazwą.Plik:Finalizowanie…ZnajdźZnajdź następneZnajdź poprzednieZnajdź i zamień…Szukaj w komentarzachSzukaj w tekstach źródłowychSzukaj w tłumaczeniachZnajdź następneZnajdź poprzednieNapraw językNapraw językNapraw nagłówekNapraw nagłówekForma %iCzęsteGNU gettextUstawienia głównePrzejdź do zakładki %iPrzejdź do zakładki %iPliki HTMLPomocUkryj %sUkryj pozostałeUkryj pasek bocznyUkryj pasek stanuNie wyświetlaj tej informacjiIDKontynuując trwale usuniesz wszystkie tłumaczenia oznaczone jako usunięte. Jeśli w przyszłości zostaną dodane, konieczne będzie ich ponowne tłumaczenie.Ignoruj wielkość literTrwa importowanie tłumaczeń…Sprawdzaj także wersje betaInformacje o tłumaczuZainstalujNieprawidłowy plikWywołanie:ZachowajKod języka lub nazwa, np. en-GBJęzyk tłumaczenia jest taki sam jak język źródłowy.Nie określono języka tłumaczenia.Język tłumaczenia:Wybór językaGrupa tłumaczeniowa:Język:Ostatnio zmodyfikowanoDowiedz się więcej o słowach kluczowych gettextRozszerz z plików…Dowiedz się więcejDowiedz się więcej o platformie CrowdinDowiedz się więcej o słowach kluczowych gettextInformacje o formach liczby mnogiejRozszerz z plików…Dowiedz się więcejDowiedz się więcej o platformie CrowdinLewoLinia %d pliku "%s" jest uszkodzona (nieprawidłowe dane %s).Format zakończeń wierszy:Lista rozszerzeń rozdzielonych średnikami, np. *.cpp;*.h:Plików MO nie można edytować bezpośrednio w programie Poedit.Zamień na małe literyZamień na duże literyZdeformowany nagłówek: "%s"Scalanie różnic…MinimalizujNazwa dla projektu tłumaczeniaAutor:&Następne nieukończone&Następne nieukończoneWymaga pracyWymaga pracyNie zaleca się włączania tej opcji. Jeśli zostanie włączona, do nawigacji po polach trzeba będzie używać klawisza Ctrl i strzałek, ale za to będzie można niezwłocznie przystąpić do wpisywania tłumaczonego tekstu.NowyNowy z pliku &POT/PO…Nowy z pliku &POT/PO…Nowe tekstyNastępna forma liczby mnogiejNastępna forma liczby mnogiejNieNie znaleziono odpowiednikówŻaden z wpisów nie mógł być wstępnie przetłumaczony.Nie znaleziono odpowiednikówNie znaleziono problemów.Brak odniesień do wybranej pozycji.Twoje konto w systemie Crowdin nie uwzględnia żadnych projektów tłumaczeń.Nie wszystkie formy liczby mnogiej są przetłumaczone.Brak autoryzacji, zaloguj się ponownie.Informacje dla tłumaczy:OKNieaktualne tekstyJedenWłącz tylko wtedy, jeśli ufasz jakości swojej TM. Domyślnie wszystkie dopasowania z TM są oznaczone jako wymagające dopracowania i powinny zostać przejrzane przed użyciem.Uzupełniaj jedynie dokładne odpowiednikiOtwórzOtwórz tłumaczenie z CrowdinOtwórz z Crowdin…Ostatnio otwieraneOtwórz istniejący plik .po i edytuj tłumaczenie.Otwórz pakietOtwórz szablon pakietuOtwórz z Crowdin…Otwórz w edytorzeOtwórz w edytorzeOtwórz...Otwórz…OpcjeInnePop&rzednie nieukończonePop&rzednie nieukończoneTłumaczenie POPliki tłumaczeń POSzablony tłumaczeń POTPliki POT są jedynie szablonem tłumaczenia i nie zawierają one tłumaczeń. Aby utworzyć nowe tłumaczenie utwórz nowy plik PO oparty na tym szablonie.WklejWklej i dopasuj stylŚcieżkiZamiast tego, otwórz i edytuj odpowiadający mu plik PO. Podczas zapisywania pliku PO, odpowiadający mu plik MO zostanie zaktualizowany.Najpierw zapisz plik. Przed zapisaniem pliku nie można edytować tej sekcji.Liczba mnogaW języku %s formy liczby mnogiej zawarte w pakiecie nie są używane.Formy liczby mnogiej:Liczba mnoga:PoeditPoedit - Menedżer pakietówPoedit automatycznie naprawił nieprawidłowości w pliku „%s”.Poedit może spróbować wypełnić pola, korzystając wyłącznie z poprzednich tłumaczeń zawartych w pliku lub z całej pamięci tłumaczeń. Skuteczność użycia TM nie będzie duża, jeśli pamięć jest prawie pusta, będzie jednak ulegać poprawie w miarę dodawania kolejnych tłumaczeń.Poedit jest łatwym w użyciu edytorem tłumaczeń.Wstępnie prze&tłumacz…Wstępnie przetłumaczWstępnie przetłumaczoneWstępnie przetłumaczony %u ciągWstępnie przetłumaczone %u ciągiWstępnie przetłumaczone %u ciągiWstępne tłumaczenie…Wstępne tłumaczenie automatycznie znajduje w pamięci tłumaczeń dokładne lub przybliżone dopasowania dla nieprzetłumaczonych ciągów, a następnie wypełnia ich tłumaczenia.PreferencjePreferencje...Ustawienia…Zachowaj formatowanie istniejących plikówPoprzednia forma liczby mnogiejPoprzednia forma liczby mnogiejPoprzedni tekst źródłowy:Nazwa projektu i wersja:Nazwa projektu:Projekt:WyczyśćWyczyść usunięte tłumaczeniaWyjdźZamknij %sOstatniePonówOdwołania:OdświeżPozostało: %dZamieńZ&amień wszystkoZ&amień wszystkoZamień na tekstZamień…Brakuje nagłówka Plural-Forms.WyczyśćWyczyść pamięć tłumaczeniowąWyczyszczenie pamięci tłumaczeniowej bezpowrotnie usunie wszystkie zapamiętane tłumaczenia. Tej operacji nie można cofnąć.Do sprawdzeniaPrawoZapiszZapisz j&ako…Zapisz j&ako…Zapisz jakoZapisz jako…Zapisz pakietZapisz zmianyZaznacz &wszystkoZaznacz wszystkoWybierz katalogWybierz pliki tłumaczeń do zaimportowaniaWybierz preferowany język interfejsuUsługiWstaw zakładkę %iWybierz językWstaw zakładkę %iWybierz językShift+Pokaż wszystkiePokaż pasek bocznyPokaż pisownię i gramatykęPokaż pasek stanuPokaż zamiennikiWyświetl lub ukryj pasek bocznyPokaż pasek bocznyPokaż pasek stanuWyświetlaj podsumowanie po aktualizacji pakietuPasek bocznyZalogujWylogujZaloguj sięZaloguj się do CrowdinWyloguj sięZalogowany jako:Liczba pojedynczaLiczba pojedyncza:Inteligentne kopiowanie/wklejanieInteligentne myślnikiInteligentne odnośnikiInteligentne cytatySortuj wg &nazw plikówSortuj wg &źródłaSortuj wg &tłumaczeniaSortuj wg &nazw plikówSortuj wg &źródłaSortuj wg &tłumaczeniaKodowanie źródła:Wyodrębnianie z kodu źródłowego pozwala odnaleźć teksty, które mogą zostać przetłumaczone w plikach źródłowych programu i wyodrębnia je, gotowe do tłumaczenia.Kod źródłowy jest niedostępny.Plik źródłowyWystępowanie pliku źródłowego:Tekst źródłowyTekst źródłowy — %sTekst źródłowy:Źródłowe słowa kluczoweŚcieżki źródełŹródła słów kluczowychŚcieżki źródełNarracjaSprawdzanie pisowni jest wyłączone, ponieważ słownik %s nie jest zainstalowany.Pisownia i gramatykaRozpocznij mówienieZatrzymaj mówienieZapisane tłumaczenia:Tekst do wyszukaniaZamiennikiPodpowiedziPodpowiedzi nie są dostępne, jeżeli język tłumaczenia nie jest poprawnie ustawiony. Inne funkcje, takie jak liczba mnogą, mogą także nie działać poprawnie.Obsługuje wszystkie języki programowania rozpoznawalne przez narzędzia GNU gettext (PHP, C/C++, C#, Perl, Python, Java, JavaScript i inne).SynchronizujSynchronizuj z CrowdinSynchronizuj tłumaczenie z platformą CrowdinSynchronizowanieBłąd synchronizacjiSynchronizacja z %s nie powiodła się.Synchronizuję z %s...Synchronizacja z Crowdin nie powiodła się.Błąd składni w nagłówku Plural-Forms („%s”).TMUżyj istniejącego pliku .po lub szablonu .pot i utwórz z niego nowe tłumaczenie.Użyj tekstów z istniejącego szablonu POT.Nazwa grupy i adres e-mail lub adres URLZastępowanie tekstuPamięć tłumaczeniowa nie zawiera żadnych wpisów pasujących do treści tego pliku. Funkcja ta jest efektywna tylko dla tłumaczeń półautomatycznych po tym, jak pamięć tłumaczeniowa Poedit nauczy się z plików ręcznie przetłumaczonych.Ten folder nie może zostać zapisany z zestawem znaków „%s” wybranym w ustawieniach folderu. Został zapisany w formacie UTF-8, a ustawienia zostały odpowiednio zmodyfikowane.Ten plik nie może zostać skompilowany do formatu MO i użyty.Nie można otworzyć pliku.Plik zawierał powielone elementy, co nie jest dozwolone w plikach PO i mogłoby uniemożliwić jego użycie. Poedit naprawił ten problem, ale należy przejrzeć tłumaczenia wszystkich pozycji oznaczonych jako wymagające dopracowania i w razie potrzeby poprawić je.Plik może być uszkodzony lub ma format nierozpoznawany przez Poedit.Plik został skompilowany do formatu MO jednak prawdopodobnie nie będzie działał poprawnie.Plik został zapisany bezpiecznie i skompilowany do formatu .mo, ale prawdopodobnie nie będzie działał poprawnie.Plik został zapisany bezpiecznie, ale nie może zostać skompilowany do formatu .mo ani użyty.Plik został zapisany bezpiecznie.Stary tekst źródłowy (sprzed zmian wynikających z aktualizacji), do którego odwołuje się, teraz już niedokładne, tłumaczenie.Najprostszym sposobem wypełnienia tego pakietu jest zaktualizowanie go z pliku .pot:Tłumaczenie nie zaczyna się od spacji.Tłumaczenie kończy się nową linią, podczas gdy tekst źródłowy - nie.Tłumaczenie zaczyna się od spacji, podczas gdy tekst źródłowy - nie.Tłumaczenie kończy się "%s", podczas gdy tekst źródłowy kończy się "%s".W tłumaczeniu brakuje nowej linii na końcu.W tłumaczeniu brakuje spacji na końcu.Tłumaczenie jest gotowe do użycia, ale %d pozycja nie został jeszcze przetłumaczony.Tłumaczenie jest gotowe do użycia, ale %d pozycje nie zostały jeszcze przetłumaczone.Tłumaczenie jest gotowe do użycia, ale %d pozycji nie zostało jeszcze przetłumaczonych.Tłumaczenie jest gotowe do użycia.Tłumaczenie powinno kończyć się "%s".Tłumaczenie nie powinno kończyć się "%s".Tłumaczenie powinno się zaczynać jak zdanie.Tłumaczenie powinno zacząć się małą literą.Tłumaczenie zaczyna się od spacji, podczas gdy tekst źródłowy - nie.Tłumaczenia zostały oznaczone jako wymagające dopracowania, ponieważ mogą być niedokładne. Należy sprawdzić ich poprawność.Nie ma tłumaczeń. To się rzadko zdarza.Wystąpił problem z dokładnym formatowaniem pliku, ale został on zapisany poprawnie.Wystąpiły błędy w czasie odczytu pakietu. W wyniku czego może brakować części danych bądź mogą być one uszkodzone.Te ustawienia mają wpływ na wewnętrzne formatowanie plików PO. Zmień je, jeżeli masz specyficzne wymagania np.: ze względu na system kontroli wersji.Tych tekstów nie ma już w źródłach. Zostaną teraz usunięte z pakietu.Te teksty znajdują się w źródłach, ale nie ma ich w pakiecie. Zostaną teraz dodane do pakietu.Ten folder zawiera wpisy z formami liczby mnogiej, ale nie posiada skonfigurowanego nagłówka form liczby mnogiej.The plik może być edytowany jedynie bezpośrednio na stronie internetowej Crowdin.To jest polecenie które uruchomi program do wyodrębniania. %o zastępuje nazwę pliku wyjściowego, %K - listę słów kluczowych, %F listę plików wejściowych %C - flagę kodowania źródła (zobacz niżej).Ten projekt nie zawiera plików, które mogą być przetłumaczone w programie Poedit.Ten tekst został znaleziony w pamięci tłumaczeniowej programu Poedit.Zostanie to dołączone do wiersza poleceń tylko, jeśli zostało podane kodowanie znaków źródła. %c zostanie zastąpione typem kodowania.Zostanie to dołączone do wiersza poleceń dla każdego pliku wejściowego. %f zostanie zastąpione nazwą pliku.Zostanie to dołączone do wiersza poleceń dla każdego słowa kluczowego. %k zostanie zastąpione słowem kluczowym.RazemTransformacjeW systemie Gettext elementy do tłumaczenia nie są dodawane ręcznie, ale są automatycznie wyodrębniane z kodu źródłowego. Dzięki temu są zawsze aktualne i dokładne. Tłumacze zazwyczaj używają szablonów plików PO (POT) przygotowanych dla nich przez autora.Przetłumaczone: %d z %d (%d %%)Język tłumaczeniaPamięć tłumaczeniowaTłumaczenie &wymagające pracyWłaściwości tłumaczeniaTłumaczenie &wymagające pracyWłaściwości tłumaczeniaPodpowiedzi do tłumaczenia:Tłumaczenie — %sTłumaczenie:Tłumaczenie nie może być zaktualizowane na podstawie kodu źródłowego, gdyż nie został on znaleziony w lokalizacji określonej we właściwościach katalogu.DwaUTF-8 (zalecane)CofnijWystąpił nieobsługiwany wyjątek: %sUnix (zalecane) NieprzetłumaczoneStrzałka w góręAktualizujAktualizuj wszystkieAktualizuj wszystkie pakiety w projekcieAktualizuj pakiet – zsynchronizuj go ze źródłamiAktualizuj z pliku &POT…Aktualizuj z pliku &POT…Aktualizuj z pliku .pot…Podsumowanie aktualizacjiAktualizacjeAktualizowanie pakietuAktualizacja nie powiodła sięAktualizacja pakietu nie powiodła się. Naciśnij przycisk „Szczegóły »”, aby zobaczyć szczegóły.Aktualizowanie informacji o użytkowniku…Przesyłanie tłumaczeń…Użyj wyrażenia własnegoUżyj niestandardowej czcionki listy:Użyj niestandardowej czcionki pola tekstowego:Użyj domyślnych reguł dla tego językaDo rozpoznania tekstów do tłumaczenia w plikach źródłowych użyj poniższych słów kluczowych (nazw funkcji):Używaj pamięci tłumaczeniowejWeryfikujWynik weryfikacjiWersja %sOczekiwanie na uwierzytelnienie…Witamy w PoeditCzym jest Crowdin?Podczas aktualizacji ze źródełTylko całe wyrazyOknoWindowsZawijaj wyszukiwanieSzerokość:TakMożesz także wyodrębnić elementy do tłumaczenia bezpośrednio z kodu źródłowego:Na okno Poedit nie można upuścić więcej niż jeden plik.Aby zmiany zostały zastosowane, należy ponownie uruchomić Poedit.Imię i nazwiskoZmiany zostaną utracone, jeśli nie zostały zapisane.Twoje imię i nazwisko oraz adres e-mail użyte zostaną wyłącznie w celu ustawienia nagłówka Last-Translator w plikach GNU gettext.ZeroZoomaltctrlnie usuwaj plików tymczasowych (dla debugowania)np. nplurals=2; plural=(n > 1);wskaż rozmyte dopasowania w ramach plikuprzejdź do elementu w podanym numerze liniiwłącz obsługę protokołu poedit://wstępnie przetłumacz korzystając z pamięci tłumaczeniowejshiftNieznany języktwoj_adres@poczta.pl"%s" nie jest prawidłowym plikiem POT.poedit-2.0.6/locales/az.po0000664000372000037200000014165313230132075012326 00000000000000msgid "" msgstr "" "Project-Id-Version: poedit\n" "Report-Msgid-Bugs-To: help@poedit.net\n" "POT-Creation-Date: 2017-12-05 15:52+0100\n" "PO-Revision-Date: 2017-09-21 11:21-0400\n" "Last-Translator: vslavik \n" "Language-Team: Azerbaijani\n" "Language: az_AZ\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: crowdin.com\n" "X-Crowdin-Project: poedit\n" "X-Crowdin-Language: az\n" "X-Crowdin-File: /locales/poedit.pot\n" msgid "Hide this notification message" msgstr "Bu xəbərdarlıq mesajını gizlədin" msgid "Don’t Show Again" msgstr "Yenidən göstərmə" msgid "Don’t show again" msgstr "Yenidən göstərmə" #, c-format msgid "(New: %i, obsolete: %i)" msgstr "(Yeni: %i, əski: %i)" msgid "Updating catalog" msgstr "Kataloq yenilənir" msgid "Collecting source files…" msgstr "" msgid "Extracting translatable strings…" msgstr "" msgid "Failed to load extracted catalog." msgstr "Çıxardıldığı kataloq yüklənmədi." msgid "Merging differences…" msgstr "" #, c-format msgid "“%s” is not a valid POT file." msgstr "" #, c-format msgid "%i line of file “%s” was not loaded correctly." msgid_plural "%i lines of file “%s” were not loaded correctly." msgstr[0] "" msgstr[1] "" #, c-format msgid "Line %d of file “%s” is corrupted (not valid %s data)." msgstr "" #, c-format msgid "Malformed header: “%s”" msgstr "" msgid "" "Broken catalog file: singular form msgstr used together with msgid_plural" msgstr "" "Yararsız kataloq faylı: cəm forması msgstr, msgid_plural ilə birlikdə " "istifadə edilmişdir" msgid "Broken catalog file: plural form msgstr used without msgid_plural" msgstr "" "Yararsız kataloq faylı: cəm forma msgstr, msgid_plural olmadan istifadə " "edilmişdir" msgid "" "There were errors when loading the catalog. Some data may be missing or " "corrupted as the result." msgstr "" "Kataloq yüklənərkən bəzi problemlər oldu. Bəzi məlumatlar itmiş və ya " "yararsız ola bilər." #, c-format msgid "Couldn’t load file %s, it is probably corrupted." msgstr "" #, c-format msgid "" "File “%s” is read-only and cannot be saved.\n" "Please save it under different name." msgstr "" #, c-format msgid "Couldn’t save file %s." msgstr "" msgid "" "There was a problem formatting the file nicely (but it was saved all right)." msgstr "Fayl gözəl şəkildə formatlanmadı, ancaq problemsiz qeyd edildi." #, c-format msgid "" "The catalog couldn’t be saved in “%s” charset as specified in catalog " "settings.\n" "\n" "It was saved in UTF-8 instead and the setting was modified accordingly." msgstr "" msgid "Error saving catalog" msgstr "kataloq qeyd edilərkən xəta oldu" msgid "PO Translation Files" msgstr "PO Tərcümə Faylları" msgid "POT Translation Templates" msgstr "POT Tərcümə Şablonları" msgid "All Translation Files" msgstr "Bütün Tərcümə Faylları" msgid "(Use default language)" msgstr "(Mövcud dildən istifadə et)" msgid "Select your preferred language" msgstr "İstifadə etmək istədiyiniz dili seçin" msgid "Language selection" msgstr "Dil seçimi" msgid "You must restart Poedit for this change to take effect." msgstr "Dəyişikliklər Poedit yenidən başladıldıqdan sonra aktiv olacaq." msgid "Syncing" msgstr "" #. TRANSLATORS: %s is a cloud destination, e.g. "Crowdin" or ftp.wordpress.com etc. #, c-format msgid "Syncing with %s…" msgstr "" #. TRANSLATORS: %s is a cloud destination, e.g. "Crowdin" or ftp.wordpress.com etc. #, c-format msgid "Syncing with %s failed." msgstr "" msgid "Syncing error" msgstr "Eyniləşdirmə xətası" msgid "Downloading translations is disabled in this project." msgstr "Bu layihədə tərcümələri endirmək deaktivasiya edildi." msgid "Not authorized, please sign in again." msgstr "İzniniz yoxdur, lütfən təkrar daxil olun." msgid "" "Crowdin is an online localization management platform and collaborative " "translation tool. Poedit can seamlessly sync PO files managed at Crowdin." msgstr "" "Crowdin bir onlayn lokalizasiya idarəetmə platforması və iş birliyinə " "əsaslanan tərcümə alətidir. Poedit problemsiz olaraq Crowdin-də idarə edilən " "PO fayllarını sinxronlaşdıra bilər." msgid "Sign In" msgstr "Giriş" msgid "Sign in" msgstr "Giriş" msgid "Sign Out" msgstr "Çıxış" msgid "Sign out" msgstr "Çıxış" msgid "Waiting for authentication…" msgstr "Təsdiqləmə üçün gözləyir..." msgid "Updating user information…" msgstr "İstifadəçi məlumatları yenilənir..." msgid "Signed in as:" msgstr "Giriş edən:" msgid "Learn More About Crowdin" msgstr "Crowdin Haqqında Məlumat Əldə Edin" msgid "Learn more about Crowdin" msgstr "Crowdin haqqında məlumat əldə edin" msgid "Sign in to Crowdin" msgstr "Crowdin-ə giriş edin" msgid "Open Crowdin translation" msgstr "Crowdin tərcüməsini aç" msgid "Project:" msgstr "Layihə:" msgid "Language:" msgstr "Dil:" msgid "File:" msgstr "Fayl:" msgid "No translation projects listed in your Crowdin account." msgstr "Crowdin hesabınızda siyahılanan heç bir tərcümə layihəsi yoxdur." msgid "This project has no files that can be translated in Poedit." msgstr "" "Bu layihə, Poedit içində tərcümə edilə bilinən heç bir fayla sahib deyil." msgid "This file can only be edited in Crowdin’s web interface." msgstr "Bu fayl sadəcə Crowdin-in veb interfeysində redaktə edilə bilər." msgid "Downloading latest translations…" msgstr "Ən son tərcümələr endirilir…" msgid "Syncing with Crowdin failed." msgstr "Crowdin ilə sinxronlaşdırma baş tutmadı." msgid "Crowdin error" msgstr "Crowdin xətası" msgid "Uploading translations…" msgstr "Tərcümələr göndərilir…" msgid "&Copy" msgstr "&Köçür" msgid "Learn more" msgstr "Daha çox məlumat" msgid "Learn More" msgstr "Daha çox məlumat" msgid "&Help" msgstr "&Yardım" msgid "MO files can’t be directly edited in Poedit." msgstr "MO faylları birbaşa Poedit içində redaktə edilə bilməz." msgid "Error opening file" msgstr "Fayl açılması sırasında xəta" msgid "" "Please open and edit the corresponding PO file instead. When you save it, " "the MO file will be updated as well." msgstr "" "Lütfən bunun yerinə əlaqədar PO faylını açın və redaktə edin. Qeyd etdiyiniz " "zaman, MO faylı da yenilənəcəkdir." msgid "don’t delete temporary files (for debugging)" msgstr "" msgid "handle a poedit:// URI" msgstr "bir poedit:// URI" msgid "go to item at given line number" msgstr "" msgid "Failed to communicate with Poedit process." msgstr "Poedit əməliyyatı ilə əlaqə qurmaq baş tutmadı." #, c-format msgid "Unhandled exception occurred: %s" msgstr "Gözlənilməz bir xəta baş verdi: %s" msgid "Open catalog" msgstr "Kataloqu aç" #, c-format msgid "File “%s” doesn’t exist." msgstr "" msgid "Poedit is an easy to use translations editor." msgstr "Poedit asan istifadə edilə bilən bir tərcümə redaktorudur." msgid "Catalogs Manager" msgstr "Kataloq Meneceri" msgid "Check for Updates…" msgstr "Yenilikləri yoxla…" msgid "&Edit" msgstr "&Redaktə et" msgid "Undo" msgstr "Geri qaytar" msgid "Redo" msgstr "Yeniləyin" msgid "Paste and Match Style" msgstr "Yapışdır və Stilləri Tutuşdur" msgid "Delete" msgstr "Sil" msgid "Spelling and Grammar" msgstr "Yazma və Qrammatika" msgid "Show Spelling and Grammar" msgstr "Yazma və Qrammatikanı Göstər" msgid "Check Document Now" msgstr "Sənədi Yenidən Yoxla" msgid "Check Spelling While Typing" msgstr "Tərcümə vaxtı orfoqrafiyanı yoxla" msgid "Check Grammar With Spelling" msgstr "Qrammatikanı və Yazma Qaydasını Yoxla" msgid "Correct Spelling Automatically" msgstr "Yazı Avtomatik Korreksiya Edilsin" msgid "Substitutions" msgstr "Dəyişikliklər" msgid "Show Substitutions" msgstr "Dəyişikliklər Göstərilsin" msgid "Smart Copy/Paste" msgstr "Ağıllı Köçürmə/Yapışdırma" msgid "Smart Quotes" msgstr "Ağıllı Sitatlar" msgid "Smart Dashes" msgstr "Ağıllı Tirelər" msgid "Smart Links" msgstr "Ağıllı Bağlantılar" msgid "Text Replacement" msgstr "Mətn Dəyişikliyi" msgid "Transformations" msgstr "Transformasiyalar" msgid "Make Upper Case" msgstr "Böyük Hərfə Çevirin" msgid "Make Lower Case" msgstr "Kiçik Hərfə Çevirin" msgid "Capitalize" msgstr "Böyüdün" msgid "Speech" msgstr "Danışın" msgid "Start Speaking" msgstr "Danışmağa Başlayın" msgid "Stop Speaking" msgstr "Danışmağı Dayandırın" msgid "&View" msgstr "&Bax" msgid "Enter Full Screen" msgstr "Tam Ekran Daxil edin" msgid "Window" msgstr "Pəncərə" msgid "Minimize" msgstr "Minimallaşdır" msgid "Zoom" msgstr "Yaxınlaşdır" msgid "Bring All to Front" msgstr "Tamamını Önə Gətir" #. TRANSLATORS:File kind displayed in Finder/Explorer msgid "PO Translation" msgstr "PO Tərcümə" msgid "The file cannot be opened." msgstr "Fayl açılmadı." msgid "Invalid file" msgstr "Xətalı fayl" msgid "" "The file may be either corrupted or in a format not recognized by Poedit." msgstr "" "Fayl yararsızdır ya da fayl formatı Poedit tərəfindən təyin edilə bilmir." msgid "You can’t drop more than one file on Poedit window." msgstr "" #, c-format msgid "File “%s” is not a message catalog." msgstr "" msgid "Poedit" msgstr "Poedit" msgid "&File" msgstr "&Fayl" msgid "&Go" msgstr "&Get" #. TRANSLATORS: %s is language name in its basic form (as you #. would see e.g. in a list of supported languages). You may need #. to rephrase it, e.g. to an equivalent of "for language %s". #, c-format msgid "" "Spellchecking is disabled, because the dictionary for %s isn’t installed." msgstr "" "Yazı korrektoru deaktivasiya edildi, çünki %s üçün lüğət qurulmuş deyil." msgid "Install" msgstr "Qur" msgid "Catalog modified. Do you want to save changes?" msgstr "Kataloq modifikasiya edildi. Dəyişikliklər qeyd edilsinmi?" msgid "Save changes" msgstr "Dəyişiklikləri qeyd et" msgid "Your changes will be lost if you don’t save them." msgstr "" msgid "Save" msgstr "Qeyd et" msgid "Don’t save" msgstr "Qeyd etmə" msgid "Don’t Save" msgstr "Qeyd etmə" msgid "Save as…" msgstr "Fərqli saxla…" msgid "Compile to…" msgstr "" msgid "Compiled Translation Files" msgstr "Kompliyasiya Edilmiş Tərcümə Faylları" msgid "Export as…" msgstr "Fərqli ixrac et…" msgid "HTML Files" msgstr "HTML Faylları" msgid "Open catalog template" msgstr "Kataloq şablonunu aç" msgid "Source code not available." msgstr "Mənbə kodu əlçatan deyil." msgid "Updating failed" msgstr "Yenilənmə baş tutmadı" msgid "" "Translations couldn’t be updated from the source code, because no code was " "found in the location specified in the catalog’s Properties." msgstr "" "Tərcümələr mənbə kodundan yenilənmədi, çünki kataloqun Xüsusiyyətlərində " "göstərilən mövqedə heç bir kod tapılmadı." msgid "Entries in the catalog are probably incorrect." msgstr "Kataloqdakı yazılar böyük ehtimalla yanlışdır." msgid "Updating the catalog failed. Click on 'Details >>' for details." msgstr "" "Kataloq yenilənmədi. Əlavə məlumat üçünn 'Detallar >>' düyməsinə tıklayın." #, c-format msgid "%d issue with the translation found." msgid_plural "%d issues with the translation found." msgstr[0] "Tərcümədə %d xəta tapıldı." msgstr[1] "Tərcümədə %d xəta tapıldı." msgid "Validation results" msgstr "Təsdiqləmə nəticələri" msgid "" "Entries with errors were marked in red in the list. Details of the error " "will be shown when you select such an entry." msgstr "" "Xətalı sətirlər siyahıda qırmızı rəngdə göstərilir. Xəta haqqında məlumata " "baxmaq üçün sətri seçin." msgid "The file was saved safely." msgstr "Fayl təhlükəsiz bir şəkildə qeyd edildi." msgid "" "The file was saved safely and compiled into the MO format, but it will " "probably not work correctly." msgstr "" "Fayl problemsiz olaraq MO formatında kompliyasiya olundu və qeyd edildi, " "ancaq böyük ehtimalla ola bilsin ki, düzgün işləməsin." msgid "" "The file was saved safely, but it cannot be compiled into the MO format and " "used." msgstr "Fayl problemsiz qeyd edildi, ancaq MO formatında baş tutmadı." msgid "" "The file was compiled into the MO format, but it will probably not work " "correctly." msgstr "" "Fayl, MO formatında kompliyasiya edildibi, ancaq böyük ehtimalla, düzgün " "işləməyəcək." msgid "The file cannot be compiled into the MO format and used." msgstr "" "Fayl, MO formatında kompliyasiya edilə bilməz və istifadə edilə bilməz." msgid "No problems with the translation found." msgstr "Tərcümə ilə əlaqqədar heç bir problem tapılmadı." #, c-format msgid "The translation is ready for use, but %d entry is not translated yet." msgid_plural "" "The translation is ready for use, but %d entries are not translated yet." msgstr[0] "" "Tərcümə istifadə üçün hazırdır, ancaq %d sətir hələlik tərcümə edilməmişdir." msgstr[1] "" "Tərcümə istifadə üçün hazırdır, ancaq %d sətir hələlik tərcümə edilməmişdir." msgid "The translation is ready for use." msgstr "Tərcümə istifadə üçün hazırdır." #, c-format msgid "Poedit automatically fixed invalid content in the file “%s”." msgstr "Poedit, “%s” faylındakı etibarsız içəriyi avtomatik olaraq düzəltdi." msgid "" "The file contained duplicate items, which is not allowed in PO files and " "would prevent the file from being used. Poedit fixed the issue, but you " "should review translations of any items marked as needing work and correct " "them if necessary." msgstr "" msgid "Language of the translation isn’t set." msgstr "" msgid "Set Language" msgstr "Dili Qur" msgid "Set language" msgstr "Dil qurun" #. TRANSLATORS: This is shown underneath "Language of the translation isn't set (or ...is the same as source language)." msgid "" "Suggestions are not available if the translation language is not set " "correctly. Other features, such as plural forms, may be affected as well." msgstr "" "Tərcümə dili doğru olaraq qurulmazsa, məsləhətlər istifadə edilə bilməz. Cəm " "formatlar kimi, digər özəlliklər də təsirlənə bilər." msgid "Language of the translation is the same as source language." msgstr "Tərcümə dili mənbə dili ilə eynidir." msgid "Fix Language" msgstr "Dili Düzəlt" msgid "Fix language" msgstr "Dili düzəlt" msgid "" "This catalog has entries with plural forms, but doesn’t have Plural-Forms " "header configured." msgstr "" msgid "" "Entries in this catalog have different plural forms count from what " "catalog’s Plural-Forms header says" msgstr "" msgid "Required header Plural-Forms is missing." msgstr "Gərəkli başlıq Cəm-Formatları əksikdir." #, c-format msgid "Syntax error in Plural-Forms header (\"%s\")." msgstr "Cəm-Formatı başlığında sintaksis xətası (\"%s\")." msgid "Fix the Header" msgstr "Başlığı Düzəlt" msgid "Fix the header" msgstr "Başlığı düzəlt" #. TRANSLATORS: %s is language name in its basic form (as you #. would see e.g. in a list of supported languages). You may need #. to rephrase it, e.g. to an equivalent of "for language %s". #, c-format msgid "Plural forms expression used by the catalog is unusual for %s." msgstr "%s üçün istifadə edilən cəm formatı ifadəsi alışılmış deyil." #. TRANSLATORS: A verb, shown as action button with ""Plural forms expression used by the catalog is unusual for %s.")" msgid "Review" msgstr "Baxış" #, c-format msgid "Error loading message catalog file “%s”." msgstr "" #, c-format msgid "Translated: %d of %d (%d %%)" msgstr "%d / %d (%d %%) tərcümə edildi" #, c-format msgid "Remaining: %d" msgstr "Qalan: %d" #, c-format msgid "%d error" msgid_plural "%d errors" msgstr[0] "%d xəta" msgstr[1] "%d xəta" #, c-format msgid "%d entry" msgid_plural "%d entries" msgstr[0] "%d yazı" msgstr[1] "%d yazı" msgid " (unsaved)" msgstr " (qeyd edilməmiş)" msgid " (modified)" msgstr " (modifikasiya edilmiş)" #, c-format msgid "Failed to update translation memory: %s" msgstr "Tərcümə yaddaşı yenilənə bilmədi: %s" msgid "Purge deleted translations" msgstr "Silinmiş tərcümələri yox edin" msgid "Do you want to remove all translations that are no longer used?" msgstr "" "Artıq istifadə edilməyən bütün əməliyyatların silinməsini istəyirsinizmi?" msgid "" "If you continue with purging, all translations marked as deleted will be " "permanently removed. You will have to translate them again if they are added " "back in the future." msgstr "" "Davam etsəniz, silinmək üçün işarələnmiş bütün tərcümələr yox olacaq. " "Gələcəkdə bunlar yenidən əlavə olunarsa, təkrar tərcümə etmək " "məcburiyyətində qalacaqsınız." msgid "Keep" msgstr "Tut" msgid "Purge" msgstr "Yox edin" msgid "Copy from source text" msgstr "Mənbə mətnindən köçür" msgid "Copy from Source Text" msgstr "Mənbə Mətnindən Köçür" #. TRANSLATORS: This is the key shortcut used in menus on Windows, some languages call them differently #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Ctrl+" msgstr "Ctrl+" msgid "Clear translation" msgstr "Tərcüməni təmizlə" msgid "Clear Translation" msgstr "Tərcüməni Təmizlə" msgid "Edit comment" msgstr "Şərhi redaktə et" msgid "Edit Comment" msgstr "Şərhi Redaktə Et" msgid "References:" msgstr "Referanslar:" msgid "&Bookmarks" msgstr "&Seçilmişlər" #. TRANSLATORS: This is the key shortcut used in menus on Windows, some languages call them differently #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Alt+" msgstr "Alt+" #, c-format msgid "Set bookmark %i" msgstr "Seçilmiş qur %i" #, c-format msgid "Go to bookmark %i" msgstr "Seçilmişə get %i" #, c-format msgid "Set Bookmark %i" msgstr "Seçilmiş Qur %i" #, c-format msgid "Go to Bookmark %i" msgstr "Seçilmişlərə geri dön %i" msgid "Hide Sidebar" msgstr "Yan menyunu Gizlət" msgid "Show Sidebar" msgstr "Yan menyunu Göstər" msgid "Hide Status Bar" msgstr "Status Çubuğunu Gizlət" msgid "Show Status Bar" msgstr "Status Çubuğunu Göstər" msgid "Source text:" msgstr "Mənbə mətni:" msgid "Singular:" msgstr "Tək:" msgid "Plural:" msgstr "Cəm:" msgid "Translation:" msgstr "Tərcümə:" msgid "Pre-translated" msgstr "" msgid "Needs Work" msgstr "" #. TRANSLATORS: This indicates that the string's translation isn't final #. and has known problems. For example, it might be machine translated or #. fuzzy matched from an older string. The translation should be short and #. convey this. If it's problematic to translate it, "Needs review" is #. acceptable substitute, but note that the meaning is subtly different: #. "needs review" implies that somebody else should review the string after #. I am done with it (i.e. consider it good), while "needs work" implies I #. need to return to it and finish the translation. msgid "Needs work" msgstr "" msgid "" "POT files are only templates and don’t contain any translations themselves.\n" "To make a translation, create a new PO file based on the template." msgstr "" "POT Faylları sadəcə şablonlardır və özü-özündən hər hansı bir tərcüməyə " "sahib olmazlar.\n" "Bir tərcümə etmək üçün şablonu əsas alan yeni bir PO faylı yaradın." msgid "Create New Translation" msgstr "Yeni Tərcümə Yarat" msgid "Create new translation" msgstr "Yeni tərcümə yarat" msgid "Everything" msgstr "Hər şey" #, c-format msgid "Form %i" msgstr "Format %i" msgid "Singular" msgstr "Tək" msgid "Zero" msgstr "Sıfır" msgid "One" msgstr "Bir" msgid "Two" msgstr "İki" msgid "Plural" msgstr "Cəm" msgid "Other" msgstr "Digər" #, c-format msgid "%s Format" msgstr "%s Format" #. TRANSLATORS: %s is replaced with language name, e.g. "PHP" or "C", so "PHP Format" etc." #, c-format msgid "%s format" msgstr "%s format" msgid "Source text" msgstr "Mənbə mətni" #, c-format msgid "Translation — %s" msgstr "Tərcümə — %s" msgid "ID" msgstr "ID" #, c-format msgid "Source text — %s" msgstr "Mənbə mətni — %s" msgid "unknown language" msgstr "bilinməyən dil" #, c-format msgid "Failed command: %s" msgstr "Əmr xətası: %s" msgid "Failed to merge gettext catalogs." msgstr "Gettext kataloqlarını birləşdirərkən bir xəta baş verdi." msgid "Source file" msgstr "Mənbə faylı" msgid "Source file occurrence:" msgstr "Mənbə kodu yaradılması:" msgid "Open in Editor" msgstr "Redaktorda Aç" msgid "Open in editor" msgstr "Redaktorda aç" msgid "No references for the selected item." msgstr "Seçilmiş element üçün heç bir mənbə yoxdur." #, c-format msgid "Error opening file %s!" msgstr "'%s' faylı açılarkən xəta oldu!" msgid "Find" msgstr "Tap" msgid "Replace" msgstr "Dəyişdir" #. TRANSLATORS: Expander in Find window for additional options (case sensitive etc.) msgid "Options" msgstr "Parametrlər" msgid "Ignore case" msgstr "Böyük-kiçik hərfləri gözardı et" msgid "Wrap around" msgstr "Çevrəsində sürüşdür" msgid "Whole words only" msgstr "Mətnə eyni ilə uyğun gələnləri tap" msgid "Find in source texts" msgstr "Mənbə mətnlərdə axtar" msgid "Find in translations" msgstr "Tərcümələrdə tap" msgid "Find in comments" msgstr "Şərhlərdə tapın" msgid "Close" msgstr "Bağla" msgid "Replace &All" msgstr "Dəyişdir &Hamısını" msgid "Replace &all" msgstr "Dəyişdir &Hamısını" msgid "&Replace" msgstr "&Dəyişdir" msgid "< &Previous" msgstr "< &Öncəki" msgid "&Next >" msgstr "&Sonrakı >" msgid "String to find" msgstr "Tapılacaq sətir" msgid "Replacement string" msgstr "Dəyişdirmə sətri" #, c-format msgid "Cannot execute program: %s" msgstr "Proqram işə salına bilmir: %s" msgid "Language Code or Name (e.g. en_GB)" msgstr "Dil Kodu və ya Adı (məs. az_AZ)" msgid "Translation Language" msgstr "Tərcümə Dili" msgid "Language of the translation:" msgstr "Tərcümə dili:" msgid "Poedit - Catalogs manager" msgstr "Poedit - Kataloq meneceri" msgid "Catalog" msgstr "Kataloq" msgid "Total" msgstr "Ümumi" msgid "Untrans" msgstr "Tərcümə edilməmiş" msgid "Errors" msgstr "Xətalar" msgid "Last modified" msgstr "Son modifikasiya" msgid "Select directory" msgstr "Direktoriya seç" msgid "Directories:" msgstr "Direktoriyalar:" msgid "" msgstr "" msgid "Do you want to delete the project?" msgstr "Siz layihəni silmək istəyirsiniz?" msgid "Confirmation" msgstr "Təsdiq" msgid "" "Do you really want to do mass update of\n" "all catalogs in this project?" msgstr "" "Siz həqiqətən də kütləvi şəkildə\n" "bütün kateqoriyaları yeniləmk istəyirsinizmi?" msgid "Information about the translator" msgstr "Tərcüməçi haqqında məlumat" msgid "Name:" msgstr "Ad:" msgid "Your Name" msgstr "Adınız" msgid "Email:" msgstr "E-poçt:" msgid "your_email@example.com" msgstr "your_email@example.com" msgid "" "Your name and email address are only used to set the Last-Translator header " "of GNU gettext files." msgstr "" "Adınız və e-poçt ünvanınız sadəcə GNU gettext fayllarında Son Tərcüməçi " "başlığını tərtibləmək üçün istifadə edilir." msgid "Editing" msgstr "Redaktə" msgid "Automatically compile MO file when saving" msgstr "Qeyd etmə sırasında MO faylının kompliyasiyası" msgid "Show summary after catalog update" msgstr "Kataloq yeniləndikdən sonra nəticələr göstərilsin" msgid "Check spelling" msgstr "Yazma qaydasını yoxla" msgid "Always change focus to text input field" msgstr "Hər zaman giriş sahəsində mətn fokusunu dəyişdir" msgid "" "Never let the list of strings take focus. If enabled, you must use Ctrl-" "arrows for keyboard navigation but you can also type text immediately, " "without having to press Tab to change focus." msgstr "" "Bu parametr aktivləşdirildiyində, işarələyici əsla sətir siyahısına " "fokuslana bilməz. Beləcə fokusu dəyişdirmək üçün (Tab) tuşuna basmadan " "tərcüməni həmən yaza bilərsiniz. Gəzinmək üçün Ctrl-Aşağı/Yuxarı oxlarından " "istifadə etməlisiniz." msgid "Appearance" msgstr "Görünüş" msgid "Use custom list font:" msgstr "Özəl şrift siyahısından istifadə et:" msgid "Use custom text fields font:" msgstr "Özəl şrift sahəsindən istifadə et:" msgid "Change UI language" msgstr "İnrfeys dilini dəyiş" #. TRANSLATORS: This is a note appended to "Check spelling" when running on older Windows versions msgid "(requires Windows 8 or newer)" msgstr "(Windows 8 və ya daha yenisi gərəkdir)" msgid "General" msgstr "Əsas" msgid "Use translation memory" msgstr "Tərcümə yaddaşından istifadə et" msgid "Learn From Files…" msgstr "Fayllardan öyrən…" msgid "Learn from files…" msgstr "Fayllardan öyrən…" #. TRANSLATORS: This is a button that deletes everything in the translation memory (i.e. clears/resets it). msgid "Reset" msgstr "Sıfırla" #. TRANSLATORS: Followed by "match translations within the file" or "pre-translate from TM" msgid "When updating from sources" msgstr "" #. TRANSLATORS: Preceded by "When updating from sources" msgid "fuzzy match within the file" msgstr "" #. TRANSLATORS: Preceded by "When updating from sources" msgid "pre-translate from TM" msgstr "" msgid "" "Poedit can attempt to fill in new entries from only previous translations in " "the file or from your entire translation memory. Using the TM won’t be very " "effective if it’s near-empty, but it will get better as you add more " "translations to it." msgstr "" msgid "Stored translations:" msgstr "Qeyd edilmiş tərcümələr:" msgid "Database size on disk:" msgstr "Verilənlər bazasının diskdəki ölçüsü:" msgid "Select translation files to import" msgstr "İdxal ediləcək tərcümə fayllarını seçin" msgid "Translation Memory" msgstr "Tərcümə Yaddaşı" msgid "Importing translations…" msgstr "" msgid "Finalizing…" msgstr "Tamamlanır…" msgid "Reset translation memory" msgstr "Tərcümə yaddaşını sıfırla" msgid "Are you sure you want to reset the translation memory?" msgstr "Tərcümə yaddaşını sıfırlamaq istədiyinizə əminsiniz?" msgid "" "Resetting the translation memory will irrevocably delete all stored " "translations from it. You can’t undo this operation." msgstr "" "Tərcümə yaddaşını sildikdə bütün saxlanılan tərcümələri siləcək. Bunu geri " "ala bilməyəcəksiz." msgid "Cancel" msgstr "İmtina" #. TRANSLATORS: This is abbreviation of "Translation Memory" used in Preferences on macOS. #. Long text looks weird there, too short (like TM) too, but less so. "General" is about ideal #. length there. msgid "TM" msgstr "TY" msgid "" "Source code extractors are used to find translatable strings in the source " "code files and extract them so that they can be translated." msgstr "" "Mənbə kodu ekstraktorları mənbə kodu fayllarında tərcümə ediləcək sətrləri " "tapmaq və onları çıxararaq tərcümə etməyə hazır vəziyyətə gətirirlər." msgid "Custom Extractors:" msgstr "" msgid "Custom extractors:" msgstr "" msgid "Edit…" msgstr "Redaktə et…" msgid "GNU gettext" msgstr "GNU gettext" msgid "" "Supports all programming languages recognized by GNU gettext tools (PHP, C/C+" "+, C#, Perl, Python, Java, JavaScript and others)." msgstr "" msgid "Delete extractor" msgstr "Ekstraktoru sil" #, c-format msgid "Are you sure you want to delete the “%s” extractor?" msgstr "“%s” ekstraktorunu silmək istədiyinizdən əminsinizmi?" msgid "Extractors" msgstr "Ekstraktorlar" msgid "Accounts" msgstr "Hesablar" msgid "Automatically check for updates" msgstr "Yenilənmələr üçün avtomatik yoxla" msgid "Include beta versions" msgstr "Beta versiyaları da alınsın" msgid "" "Beta versions contain the latest new features and improvements, but may be a " "bit less stable." msgstr "" "Beta versiyalar ən son xüsusiyyətlərə malikdirlər, ancaq stabil işləmə " "xüsusunda bir az qeyri-stabildirlər." msgid "Updates" msgstr "Yenilənmələr" msgid "" "These settings affect internal formatting of PO files. Adjust them if you " "have specific requirements e.g. because of version control." msgstr "" "Bu parametrlər, PO fayllarının daxili formatlarına təsir edə bilər. Məsələn, " "versiya testi səbəbilə xüsusi tələbləriniz varsa onları korrektə edin." msgid "Line endings:" msgstr "Sətir sonları:" msgid "Unix (recommended)" msgstr "Unix (məsləhət görülür)" msgid "Windows" msgstr "Windows" #. TRANSLATORS: Followed by text control for entering number; wraps text at given width msgid "Wrap at:" msgstr "Sürüşdürmə yönü:" msgid "Preserve formatting of existing files" msgstr "Var olan faylların formatını qoru" msgid "Advanced" msgstr "Qabaqcıl" msgid "Pre-translating…" msgstr "" #, c-format msgid "Pre-translated %u string" msgid_plural "Pre-translated %u strings" msgstr[0] "" msgstr[1] "" #. TRANSLATORS: This is a somewhat common term describing the action where #. you apply the translation memory and/or machine translation to all of the #. strings you're translating as the first step, followed by correcting, #. improving etc., i.e. actually translating the strings. This may be tricky #. to express in other languages as simply as in English, but please try to #. keep it similarly concise. Please try to avoid, if possible, describing it #. as "auto-translation" and similar, because such terminology would mislead #. some users into thinking it's all that needs to be done (spoken from #. experience). "Pre-translate" nicely expresses that it's only the step done #. *before* actual translation. msgid "Pre-translate" msgstr "" msgid "Only fill in exact matches" msgstr "Sadəcə tam uyğunluqları doldur" msgid "" "By default, inaccurate results are filled in as well and marked as needing " "work. Check this option to only include accurate matches." msgstr "" msgid "Don’t mark exact matches as needing work" msgstr "" msgid "" "Only enable if you trust the quality of your TM. By default, all matches " "from the TM are marked as needing work and should be reviewed before use." msgstr "" msgid "" "Pre-translation automatically finds exact or fuzzy matches for untranslated " "strings in the translation memory and fills in their translations." msgstr "" #, c-format msgid "%d entry was pre-translated." msgid_plural "%d entries were pre-translated." msgstr[0] "" msgstr[1] "" msgid "" "The translations were marked as needing work, because they may be " "inaccurate. You should review them for correctness." msgstr "" msgid "No entries could be pre-translated." msgstr "" msgid "" "The TM doesn’t contain any strings similar to the content of this file. It " "is only effective for semi-automatic translations after Poedit learns enough " "from files that you translated manually." msgstr "" "TY bu faylın məzmununa oxşayan heç bir sətrə sahib deyil. Bu yarım-avtomatik " "tərcümələr üçün keçərlidir. Poedit bunları əllə tərcümə edilmiş fayllardan " "öyrənəcək." msgid "" "Drag and Drop Folders Here\n" "\n" "or use the + button" msgstr "" "Qovluqları Buraya Sürüşdürün və Buraxın\n" "\n" "ya da + düyməsindən istifadə edin" msgid "" "Drag and drop folders here\n" "\n" "or use the + button" msgstr "" "Qovluqları buraya sürüşdürün və buraxın\n" "\n" "ya da + düyməsindən istifadə edin" msgid "Add Folders…" msgstr "" msgid "Add folders…" msgstr "" msgid "Add Files…" msgstr "" msgid "Add files…" msgstr "" msgid "Add Wildcard…" msgstr "" msgid "Add wildcard…" msgstr "" msgid "Paths" msgstr "Yollar" msgid "Excluded paths" msgstr "İstisna edilmiş yollar" msgid "Advanced extraction settings" msgstr "" msgid "Extract notes for translators from:" msgstr "" msgid "Comments prefixed with:" msgstr "" msgid "All comments" msgstr "Bütün şərhlər" msgid "Additional xgettext flags:" msgstr "" msgid "Additional keywords" msgstr "Əlavə açar kəlmələr" msgid "Name of the project the translation is for" msgstr "Bunun üçün hazırlanan tərcümənin adı:" msgid "Team name and email address or URL" msgstr "" msgid "e.g. nplurals=2; plural=(n > 1);" msgstr "məs. nplurals=2; plural=(n > 1);" msgid "UTF-8 (recommended)" msgstr "UTF-8 (məsləhət görülür)" msgid "Please save the file first. This section cannot be edited until then." msgstr "" "Lütfən əvvəlcə faylı qeyd edin. Qeyd etdikdən sonra bu bölmə redaktə edilə " "bilər." msgid "Not all plural forms are translated." msgstr "" msgid "The translation should start as a sentence." msgstr "" msgid "The translation should start with a lowercase character." msgstr "" msgid "The translation doesn’t start with a space." msgstr "" msgid "The translation starts with a space, but the source text doesn’t." msgstr "" msgid "The translation is missing a newline at the end." msgstr "" msgid "The translation ends with a newline, but the source text doesn’t." msgstr "" msgid "The translation is missing a space at the end." msgstr "" msgid "The translation ends with a space, but the source text doesn’t." msgstr "" #, c-format msgid "The translation should end with “%s”." msgstr "" #, c-format msgid "The translation should not end with “%s”." msgstr "" #, c-format msgid "The translation ends with “%s”, but the source text ends with “%s”." msgstr "" msgid "Comment:" msgstr "Şərh:" msgid "OK" msgstr "OK" msgid "C&lear" msgstr "T&əmizlə" msgid "Clear the comment" msgstr "Şərhi silin" msgid "New" msgstr "Yeni" msgid "Create new translations project" msgstr "Yeni tərcümə layihəsi hazırlayın" msgid "Edit" msgstr "Redaktə et" msgid "Edit the project" msgstr "Layihəni redaktə et" msgid "Delete the project" msgstr "Layihəni sil" msgid "Update all" msgstr "Tamamını yenilə" msgid "Update all catalogs in the project" msgstr "Layihədəki bütün kataloqları yenilə" msgid "Edit project" msgstr "Layihəni redaktə et" msgid "Project name:" msgstr "Layihənin adı:" msgid "Browse" msgstr "Gətir" msgid "Add directory to the list" msgstr "Siyahıya kataloq əlavə et" msgid "&New…" msgstr "" msgid "New from &POT/PO file…" msgstr "" msgid "New From &POT/PO File…" msgstr "" msgid "&Open…" msgstr "" msgid "Open Recent" msgstr "Son İstifadə Edilənləri Açın" msgid "Open from Crowdin…" msgstr "" msgid "Open From Crowdin…" msgstr "" msgid "&Close" msgstr "&Bağla" msgid "&Save" msgstr "&Qeyd et" msgid "Save &as…" msgstr "" msgid "Save &As…" msgstr "" msgid "Compile to MO…" msgstr "" msgid "E&xport as HTML…" msgstr "" msgid "Check for updates…" msgstr "" msgid "&Preferences…" msgstr "" msgid "Catalogs &manager" msgstr "Kataloq &meneceri" msgid "Catalogs &Manager" msgstr "Kataloq &Meneceri" msgid "E&xit" msgstr "Ç&ıx" msgid "Quit" msgstr "Çıx" msgid "Copy from singular" msgstr "Tək olandan köçür" msgid "Copy From Singular" msgstr "Tək Olandan Köçür" msgid "Translation needs &work" msgstr "" msgid "Translation Needs &Work" msgstr "" msgid "Edit &comment" msgstr "&Şərhi redaktə et" msgid "Edit &Comment" msgstr "&Şərhi Redaktə Et" msgid "Suggestions" msgstr "Məsləhətlər" msgid "&Find…" msgstr "" msgid "Replace…" msgstr "" msgid "Find next" msgstr "Sonrakını tapın" msgid "Find previous" msgstr "Öncəkini tapın" msgid "Find and Replace…" msgstr "" msgid "Find Next" msgstr "Sonrakını Tapın" msgid "Find Previous" msgstr "Öncəkini Tapın" msgid "&Preferences" msgstr "&Xüsusiyyətlər" msgid "Display entry &IDs" msgstr "Qeyd &№ və kodlar göstərilsin" msgid "Display Entry &IDs" msgstr "Qeyd &№ və Kodlar Göstərilsin" msgid "Sort by &file order" msgstr "&Fayldakı sıraya görə sırala" msgid "Sort by &File Order" msgstr "&Fayldakı Sıraya Görə Sırala" msgid "Sort by &source" msgstr "&Mənbəyə görə sırala" msgid "Sort by &Source" msgstr "&Mənbə Mətninə Görə Sırala" msgid "Sort by &translation" msgstr "&Tərcüməyə görə sırala" msgid "Sort by &Translation" msgstr "&Tərcüməyə Görə Sırala" msgid "&Group by context" msgstr "&Kontekstə görə qrup" msgid "&Group By Context" msgstr "&Kontekstə Görə Qrup" msgid "Entries with errors first" msgstr "Əvvəlcə xətalı olan yazılar" msgid "Entries with Errors First" msgstr "Əvvəlcə Xətalı Olan Yazılar" msgid "&Untranslated entries first" msgstr "&Tərcümə edilməmiş yazılar ən üstdə görünsün" msgid "&Untranslated Entries First" msgstr "&Tərcümə Edilməmiş Yazılar Ən Üstdə Görünsün" msgid "&Show references" msgstr "&Parametrləri göstər" msgid "&Show References" msgstr "&Parametrləri Göstər" msgid "Show sidebar" msgstr "Yan menyunu göstər" msgid "Show status bar" msgstr "Status çubuğunu göstər" msgid "C&atalog" msgstr "K&ataloq" msgid "&Update from sources" msgstr "&Mənbədən yenilə" msgid "&Update from Sources" msgstr "&Mənbədən Yenilə" msgid "Update from &POT file…" msgstr "" msgid "Update from &POT File…" msgstr "" msgid "Sync with Crowdin" msgstr "Crowdin ilə Sinxronlaşdırın" msgid "Pre-&translate…" msgstr "" msgid "&Purge deleted translations" msgstr "&Silinmiş tərcümələri yox edin" msgid "&Purge Deleted Translations" msgstr "&Silinmiş Tərcümələri Yox Edin " msgid "&Validate translations" msgstr "&Tərcümələri təsdiqlə" msgid "&Validate Translations" msgstr "&Tərcümələri Təsdiqlə" msgid "&Properties…" msgstr "" msgid "&Done and next" msgstr "&Tamamla və sonrakı" msgid "&Done and Next" msgstr "&Tamamla və Sonrakı" msgid "&Previous translation" msgstr "&Öncəki tərcümə" msgid "&Previous Translation" msgstr "&Öncəki Tərcümə" msgid "&Next translation" msgstr "&Sonrakı tərcümə" msgid "&Next Translation" msgstr "&Sonrakı Tərcümə" msgid "P&revious unfinished" msgstr "Ö&ncəki tamamlanmamış" msgid "P&revious Unfinished" msgstr "Ö&ncəki Tamamlanmamış" msgid "Ne&xt unfinished" msgstr "S&onrakı tamamlanmamış" msgid "Ne&xt Unfinished" msgstr "S&onrakı Tamamlanmamış" msgid "Previous plural form" msgstr "Əvvəlki cəm növü" msgid "Previous Plural Form" msgstr "Əvvəlki Cəm Növü" msgid "Next plural form" msgstr "Növbəti cəm növü" msgid "Next Plural Form" msgstr "Növbəti Cəm Növü" msgid "&Online help" msgstr "&Onlayn yardım" msgid "&Online Help" msgstr "&Onlayn Yardım" msgid "&GNU gettext manual" msgstr "&GNU gettext kitabı" msgid "&GNU gettext Manual" msgstr "&GNU gettext Kitabı" msgid "&About Poedit" msgstr "&Poedit Haqqında" msgid "&About" msgstr "&Haqqında" msgid "Extractor setup" msgstr "Ekstraktoru qur" msgid "List of extensions separated by semicolons (e.g. *.cpp;*.h):" msgstr "Vergüllə ayrılmış uzantı siyahısı (məs. *.cpp;*.h):" msgid "Invocation:" msgstr "Çağrış:" msgid "Command to extract translations:" msgstr "Tərcümələri çıxarmaq üçün əmr:" msgid "" "This is the command used to launch the extractor.\n" "%o expands to the name of output file, %K to list\n" "of keywords, %F to list of input files,\n" "%C to charset flag (see below)." msgstr "" "Bu, ekstraktoru işlətmək üçün istifadə edilən əmrdir.\n" "%o çıxış faylı adına, %K açar kəlmələrin siyahısına,\n" "%F giriş fayllarının siyahısına, \n" "%C nsimvoluna dönüşür (aşağıya baxın)." msgid "An item in keywords list:" msgstr "Açar kəlmələri siyahısındakı bir maddə:" msgid "" "This will be attached to the command line once\n" "for each keyword. %k expands to the keyword." msgstr "" "Bu, hər açar kəlmə üçün bir dəfə əmr sətrinə\n" "əlavə ediləcəkdir. %k açar kəlməni yazar." msgid "An item in input files list:" msgstr "Giriş faylları siyahısındakı bir maddə:" #, c-format msgid "" "This will be attached to the command line once\n" "for each input file. %f expands to the filename." msgstr "" "Bu, hər yazı faylı üçün bir dəfə əmr sətrinə\n" "əlavə ediləcəkdir. %f fayl adını yazar." msgid "Source code charset:" msgstr "Mənbə kodu kodlaşması:" #, c-format msgid "" "This will be attached to the command line\n" "only if source code charset was given. %c expands to charset value." msgstr "" "Mənbə xarakter əmri verilmişdirsə,\n" "bu əmr sətrinə əlavə ediləcəkdir.\n" "%c xarakter dəyərini yazar." msgid "Catalog properties" msgstr "Kataloq xüsusiyyətləri" msgid "Project name and version:" msgstr "Layihənin adı və versiyası:" msgid "Language team:" msgstr "" msgid "Plural forms:" msgstr "" msgid "Use default rules for this language" msgstr "Bu dil üçün mövcud qaydalardan istifadə edilsin" msgid "Use custom expression" msgstr "Özəl ifadədən istifadə edilsin" msgid "Learn about plural forms" msgstr "Cəm formatları öyrənin" msgid "Charset:" msgstr "Kodlaşdırma:" msgid "Advanced Extraction Settings…" msgstr "" msgid "Advanced extraction settings…" msgstr "" msgid "Translation Properties" msgstr "" msgid "Translation properties" msgstr "Tərcümə xüsusiyyətləri" msgid "Sources Paths" msgstr "" msgid "Sources paths" msgstr "Mənbə yolları" msgid "Extract text from source files in the following directories:" msgstr "Mənbə fayllarındakı mətnləri bu direktoriyaya çıxart:" msgid "Base path:" msgstr "Əsas yol:" msgid "Sources Keywords" msgstr "" msgid "Sources keywords" msgstr "Mənbə açar kəlmələri" msgid "" "Use these keywords (function names) to recognize translatable strings\n" "in source files:" msgstr "" "Mənbə fayllarındakı tərcümə edilə bilinən sətirlər tanındığında, mövcud " "olanların yanında bu açar kəlmələr (funksiya adları) istifadə edilsin." msgid "Also use default keywords for supported languages" msgstr "" msgid "Learn About Gettext Keywords" msgstr "" msgid "Learn about gettext keywords" msgstr "Gettext açar kəlmələrindən öyrənilsin" msgid "Update summary" msgstr "Yenilənmənin nəticəsi" msgid "" "These strings were found in the sources but were not in the catalog.\n" "Poedit will add them to the catalog now." msgstr "" "Mənbədə olan bu sətirlər kataloqda yoxdur.\n" "Poedit bunları kataloqa əlavə edəcək." msgid "New strings" msgstr "Yeni sətir" msgid "" "These strings are no longer in the sources.\n" "Poedit will remove them from the catalog now." msgstr "Bu sətirlər artıq mənbədə yoxdur.Poedit bunları kataloqdan çıxardacaq." msgid "Obsolete strings" msgstr "Əski sətirlər" msgid "(0 new, 0 obsolete)" msgstr "(0 yeni, 0 əski)" msgid "Open" msgstr "Aç" msgid "Save catalog" msgstr "Kataloqu qeyd et" msgid "Validate" msgstr "Təsdiqlə" msgid "Check for errors in the translation" msgstr "Tərcümədəki xətaları yoxla" msgid "Update" msgstr "Yenilə" msgid "Update catalog - synchronize it with sources" msgstr "Kataloqu yenilə - mənbə ilə sinxronlaşdır" msgid "Sidebar" msgstr "Yan menyu" msgid "Show or hide the sidebar" msgstr "Yan paneli göstər/gizlət" #. TRANSLATORS: "Previous" as in used in the past, now replaced with newer. msgid "Previous source text:" msgstr "Öncəki mənbə mətni:" msgid "" "The old source text (before it changed during an update) that the now-" "inaccurate translation corresponds to." msgstr "" msgid "Notes for translators:" msgstr "Tərcüməçilər üçün qeydlər:" msgid "Add comment" msgstr "Şərh əlavə et" msgid "Add Comment" msgstr "Şərh Əlavə Et" msgid "Translation suggestions:" msgstr "Tərcümə xüsusiyyətləri:" #. TRANSLATORS: This is shown when no translation suggestions can be found in the TM (Windows). msgid "No matches found" msgstr "Uyğunluq tapılmadı" #. TRANSLATORS: This is shown when no translation suggestions can be found in the TM (macOS, Linux). msgid "No Matches Found" msgstr "Uyğunluq Tapılmadı" msgid "This string was found in Poedit’s translation memory." msgstr "Bu sətr Poedit-in TY tapıldı." msgid "Cannot create temporary directory." msgstr "Müvəqqəti direktoriya yaradıla bilmir." msgid "Welcome to Poedit" msgstr "Poedit-ə Xoş Gəlmisiniz" #. TRANSLATORS: This is version information in about dialog, "%s" will be #. version number when used #, c-format msgid "Version %s" msgstr "Versiya %s" msgid "Edit a Translation" msgstr "" msgid "Edit a translation" msgstr "Tərcüməni redaktə et" msgid "Open an existing PO file and edit the translation." msgstr "Mövcud olan bir PO faylını açaraq tərcüməni redaktə edin." msgid "" "Take an existing PO file or POT template and create a new translation from " "it." msgstr "" "Mövcud olan bir PO faylı ya da POT şablonundan yeni bir tərcümə yaradın." msgid "Collaborate on a Translation with Others" msgstr "" msgid "Collaborate on a translation with others" msgstr "Tərcümədə başqaları ilə iştirak edin" msgid "" "Download a file from Crowdin project, translate and sync your changes back." msgstr "" "Crowdin layihəsindən bir fayl endirin, tərcümə edin və təkrar " "dəyişikliklərinizi sinxronlaşdırın." msgid "What is Crowdin?" msgstr "Crowdin nədir?" msgid "There are no translations. That’s unusual." msgstr "Orada heç bir tərcümə yoxdur. Bu qeyri-adi bir şeydir." msgid "" "Translatable entries aren’t added manually in the Gettext system, but are " "automatically extracted\n" "from source code. This way, they stay up to date and accurate.\n" "Translators typically use PO template files (POTs) prepared for them by the " "developer." msgstr "" msgid "(Learn more about GNU gettext)" msgstr "(GNU GETTEXT haqqında daha ətraflı məlumat)" msgid "The simplest way to fill this catalog is to update it from a POT:" msgstr "Bu kataloqu doldurmağın ən asan yolu bir POT faylından yeniləməkdir:" msgid "Update from POT" msgstr "POT-dan Yenilə" msgid "Take translatable strings from an existing POT template." msgstr "" "Tərcümə edilə bilinən sətirləri birbaşa POT şablonundan ala bilərsiniz." msgid "" "You can also extract translatable strings directly from the source code:" msgstr "Tərcümə edilə bilinən sətirləri birbaşa mənbə kodundan ala bilərsiniz:" msgid "Extract from sources" msgstr "Mənbələrdən alınsın" msgid "Configure source code extraction in Properties." msgstr "Xüsusiyyətlər bölməsindən mənbə koddan almağı konfiqurasiya edin." msgid "Sync" msgstr "Sinxronlaşdır" msgid "Synchronize the translation with Crowdin" msgstr "Tərcüməni Crowdin ilə sinxronlaşdır" #. TRANSLATORS: This is titlebar of about dialog, "%s" is application name #. ("Poedit" here, but please use "%s") #, c-format msgid "About %s" msgstr "%s Haqqında" #. TRANSLATORS: Title of the preferences window on Windows and Linux. "%s" is replaced with "Poedit" when running. #, c-format msgid "%s Preferences" msgstr "%s Nizamlamalar" #. TRANSLATORS: macOS item in app menu msgid "Services" msgstr "Xidmətlər" #. TRANSLATORS: macOS item in app menu, %s is replaced with "Poedit" #, c-format msgid "Hide %s" msgstr "%s Gizlət" #. TRANSLATORS: macOS item in app menu msgid "Hide Others" msgstr "Digərlərini Gizlət" #. TRANSLATORS: macOS item in app menu msgid "Show All" msgstr "Hamısını Göstər" #. TRANSLATORS: macOS item in app menu, %s is replaced with "Poedit" #, c-format msgid "Quit %s" msgstr "%s Çıx" #. TRANSLATORS: macOS item in app menu msgid "Preferences…" msgstr "" msgid "Preferences..." msgstr "Xüsusiyyətlər..." #. TRANSLATORS: Title of a category in Windows task menu (right-click icon in taskbar) msgid "Recent" msgstr "" #. TRANSLATORS: Title of a category in Windows task menu (right-click icon in taskbar) msgid "Frequent" msgstr "" msgid "&Apply" msgstr "" msgid "Apply" msgstr "" msgid "&Back" msgstr "" msgid "Back" msgstr "" msgid "&Cancel" msgstr "" msgid "&Clear" msgstr "" msgid "Clear" msgstr "" msgid "Copy" msgstr "Köçür" msgid "Cu&t" msgstr "Kə&s" msgid "Cut" msgstr "Kəs" msgid "&Delete" msgstr "&Sİl" msgid "&Quit" msgstr "" msgid "File" msgstr "" msgid "Help" msgstr "" msgid "&New" msgstr "" msgid "&No" msgstr "" msgid "No" msgstr "" msgid "&OK" msgstr "" msgid "Open…" msgstr "" msgid "&Open..." msgstr "&Aç..." msgid "Open..." msgstr "" msgid "&Paste" msgstr "&Yapışdır" msgid "Paste" msgstr "Yapışdır" msgid "Preferences" msgstr "" msgid "&Redo" msgstr "&Yenilə" msgid "Refresh" msgstr "" msgid "&Save as" msgstr "" msgid "Save as" msgstr "" msgid "Select &All" msgstr "Tamamını &Seç" msgid "Select All" msgstr "Tamamını Seç" msgid "&Undo" msgstr "&Geri Al" msgid "&Yes" msgstr "" msgid "Yes" msgstr "" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Shift+" msgstr "Shift+" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Enter" msgstr "Enter" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Up" msgstr "Yuxarı" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Down" msgstr "Aşağı" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Left" msgstr "" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Right" msgstr "" #. TRANSLATORS: Keyboard shortcut, must correspond to translation of "Ctrl+" msgid "ctrl" msgstr "ctrl" #. TRANSLATORS: Keyboard shortcut, must correspond to translation of "Alt+" msgid "alt" msgstr "alt" #. TRANSLATORS: Keyboard shortcut, must correspond to translation of "Shift+" msgid "shift" msgstr "shift" poedit-2.0.6/locales/tr.po0000664000372000037200000015222313230131554012335 00000000000000msgid "" msgstr "" "Project-Id-Version: poedit\n" "Report-Msgid-Bugs-To: help@poedit.net\n" "POT-Creation-Date: 2017-12-05 15:52+0100\n" "PO-Revision-Date: 2017-12-05 09:50-0500\n" "Last-Translator: vslavik \n" "Language-Team: Turkish\n" "Language: tr_TR\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: crowdin.com\n" "X-Crowdin-Project: poedit\n" "X-Crowdin-Language: tr\n" "X-Crowdin-File: /locales/poedit.pot\n" msgid "Hide this notification message" msgstr "Bu uyarı iletisini gizle" msgid "Don’t Show Again" msgstr "Bir Daha Gösterme" msgid "Don’t show again" msgstr "Bir daha gösterme" #, c-format msgid "(New: %i, obsolete: %i)" msgstr "(Yeni: %i, eski: %i)" msgid "Updating catalog" msgstr "Katalog güncelleniyor" msgid "Collecting source files…" msgstr "Kaynak dosyalar toplanıyor…" msgid "Extracting translatable strings…" msgstr "Çevrilebilir dizgeler ayıklanıyor…" msgid "Failed to load extracted catalog." msgstr "Ayıklanan katalog yüklenemedi." msgid "Merging differences…" msgstr "Farklılıklar birleştiriliyor…" #, c-format msgid "“%s” is not a valid POT file." msgstr "“%s” geçerli bir POT dosyası değil." #, c-format msgid "%i line of file “%s” was not loaded correctly." msgid_plural "%i lines of file “%s” were not loaded correctly." msgstr[0] "%i satır “%s” dosyasından doğru olarak yüklenmedi." msgstr[1] "%i satır “%s” dosyasından doğru olarak yüklenmedi." #, c-format msgid "Line %d of file “%s” is corrupted (not valid %s data)." msgstr "Satır %d, “%s” dosyasında bozulmuş (%s verisi geçerli değil)." #, c-format msgid "Malformed header: “%s”" msgstr "Hatalı oluşturulmuş başlık: “%s”" msgid "" "Broken catalog file: singular form msgstr used together with msgid_plural" msgstr "" "Bozuk katalog dosyası: tekil biçim msgstr, msgid_plural ile birlikte " "kullanılmış" msgid "Broken catalog file: plural form msgstr used without msgid_plural" msgstr "" "Bozuk katalog dosyası: çoğul biçim msgstr, msgid_plural olmadan kullanılmış" msgid "" "There were errors when loading the catalog. Some data may be missing or " "corrupted as the result." msgstr "" "Katalog yüklenirken sorunlar çıktı. Sonuçta bazı veriler eksik ya da bozuk " "olabilir." #, c-format msgid "Couldn’t load file %s, it is probably corrupted." msgstr "%s dosyası yüklenemedi, bozuk olabilir." #, c-format msgid "" "File “%s” is read-only and cannot be saved.\n" "Please save it under different name." msgstr "" "“%s” dosyası salt okunur olduğundan kaydedilemez.\n" "Lütfen farklı bir ad ile kaydedin." #, c-format msgid "Couldn’t save file %s." msgstr "%s dosyası kaydedilemedi." msgid "" "There was a problem formatting the file nicely (but it was saved all right)." msgstr "" "Dosyayı güzelce biçimlendirmede bir sorun oldu (ama sorunsuz kaydedildi)." #, c-format msgid "" "The catalog couldn’t be saved in “%s” charset as specified in catalog " "settings.\n" "\n" "It was saved in UTF-8 instead and the setting was modified accordingly." msgstr "" "Katalog, katalog ayarlarında belirtildiği gibi “%s” karakter kümesine " "kaydedilemedi.\n" "\n" "Bunun yerine UTF-8 olarak kaydedildi ve ayar buna göre değiştirildi." msgid "Error saving catalog" msgstr "Katalog kaydedilirken sorun çıktı" msgid "PO Translation Files" msgstr "PO Çeviri Dosyaları" msgid "POT Translation Templates" msgstr "POT Çeviri Kalıpları" msgid "All Translation Files" msgstr "Tüm Çeviri Dosyaları" msgid "(Use default language)" msgstr "(Varsayılan dil kullanılsın)" msgid "Select your preferred language" msgstr "Tercih ettiğiniz dili seçin" msgid "Language selection" msgstr "Dil seçimi" msgid "You must restart Poedit for this change to take effect." msgstr "Değişiklikler Poedit yeniden başlatıldıktan sonra etkin olacak." msgid "Syncing" msgstr "Eşitleniyor" #. TRANSLATORS: %s is a cloud destination, e.g. "Crowdin" or ftp.wordpress.com etc. #, c-format msgid "Syncing with %s…" msgstr "%s ile eşitleniyor…" #. TRANSLATORS: %s is a cloud destination, e.g. "Crowdin" or ftp.wordpress.com etc. #, c-format msgid "Syncing with %s failed." msgstr "%s ile eşitlenemedi." msgid "Syncing error" msgstr "Eşitleme sorunu" msgid "Downloading translations is disabled in this project." msgstr "Bu proje için çevirilerin indirilmesi devre dışı bırakılmış." msgid "Not authorized, please sign in again." msgstr "İzniniz yok, lütfen yeniden oturum açın." msgid "" "Crowdin is an online localization management platform and collaborative " "translation tool. Poedit can seamlessly sync PO files managed at Crowdin." msgstr "" "Crowdin bir çevrimiçi yerelleştirme platformu ve işbirliğine dayalı bir " "çeviri aracıdır. Poedit, dosyaları sorunsuz olarak Crowdin üzerindeki PO " "dosyaları ile eşitleyebilir." msgid "Sign In" msgstr "Oturum Aç" msgid "Sign in" msgstr "Oturum aç" msgid "Sign Out" msgstr "Oturumu Kapat" msgid "Sign out" msgstr "Oturumu kapat" msgid "Waiting for authentication…" msgstr "Kimlik doğrulaması için bekleniyor…" msgid "Updating user information…" msgstr "Kullanıcı bilgileri güncelleniyor…" msgid "Signed in as:" msgstr "Oturum açan:" msgid "Learn More About Crowdin" msgstr "Crowdin Hakkında Bilgi Edinin" msgid "Learn more about Crowdin" msgstr "Crowdin hakkında bilgi edinin" msgid "Sign in to Crowdin" msgstr "Crowdin Oturumu Açın" msgid "Open Crowdin translation" msgstr "Crowdin çevirisi aç" msgid "Project:" msgstr "Proje:" msgid "Language:" msgstr "Dil:" msgid "File:" msgstr "Dosya:" msgid "No translation projects listed in your Crowdin account." msgstr "Crowdin hesabınızda herhangi bir çeviri projesi yok." msgid "This project has no files that can be translated in Poedit." msgstr "Bu projenin Poedit ile çevrilebilecek herhangi bir dosyası yok." msgid "This file can only be edited in Crowdin’s web interface." msgstr "Bu dosya yalnız Crowdin web arayüzünden düzenlenebilir." msgid "Downloading latest translations…" msgstr "Son çeviriler indiriliyor…" msgid "Syncing with Crowdin failed." msgstr "Crowdin ile eşitlenemedi." msgid "Crowdin error" msgstr "Crowdin sorunu" msgid "Uploading translations…" msgstr "Çeviriler yükleniyor…" msgid "&Copy" msgstr "&Kopyala" msgid "Learn more" msgstr "Daha fazla bilgi edinin" msgid "Learn More" msgstr "Daha Fazla Bilgi Edinin" msgid "&Help" msgstr "&Yardım" msgid "MO files can’t be directly edited in Poedit." msgstr "MO dosyaları doğrudan Poedit içinde düzenlenemez." msgid "Error opening file" msgstr "Dosya açılırken sorun çıktı" msgid "" "Please open and edit the corresponding PO file instead. When you save it, " "the MO file will be updated as well." msgstr "" "Lütfen bunun yerine ilgili PO dosyasını açın ve düzenleyin. Kaydettiğinizde " "MO dosyası da güncellenir." msgid "don’t delete temporary files (for debugging)" msgstr "geçici dosyalar silinmesin (hata ayıklama için)" msgid "handle a poedit:// URI" msgstr "Bir poedit:// URI'si kullan" msgid "go to item at given line number" msgstr "belirtilen satır numarasındaki ögeye git" msgid "Failed to communicate with Poedit process." msgstr "Poedit işlemi ile iletişim kurulamadı." #, c-format msgid "Unhandled exception occurred: %s" msgstr "Beklenmeyen bir sorun çıktı: %s" msgid "Open catalog" msgstr "Kataloğu aç" #, c-format msgid "File “%s” doesn’t exist." msgstr "“%s” dosyası bulunamadı." msgid "Poedit is an easy to use translations editor." msgstr "Poedit kolay kullanılan bir çeviri düzenleyicisidir." msgid "Catalogs Manager" msgstr "Katalog Yöneticisi" msgid "Check for Updates…" msgstr "Güncellemeleri Denetle…" msgid "&Edit" msgstr "Düz&en" msgid "Undo" msgstr "Geri al" msgid "Redo" msgstr "Yinele" msgid "Paste and Match Style" msgstr "Biçemi Yapıştır ve Eşleştir" msgid "Delete" msgstr "Sil" msgid "Spelling and Grammar" msgstr "Yazım ve Dilbilgisi" msgid "Show Spelling and Grammar" msgstr "Yazım ve Dilbilgisini Görüntüle" msgid "Check Document Now" msgstr "Belgeyi Şimdi Denetle" msgid "Check Spelling While Typing" msgstr "Yazarken Yazım Denetimi Yap" msgid "Check Grammar With Spelling" msgstr "Yazım ile Dilbilgisi Denetimi Yap" msgid "Correct Spelling Automatically" msgstr "Yazımı Otomatik Olarak Düzelt" msgid "Substitutions" msgstr "Değişimler" msgid "Show Substitutions" msgstr "Değişimleri Görüntüle" msgid "Smart Copy/Paste" msgstr "Akıllı Kopyala/Yapıştır" msgid "Smart Quotes" msgstr "Akıllı Tırnaklar" msgid "Smart Dashes" msgstr "Akıllı Tireler" msgid "Smart Links" msgstr "Akıllı Bağlantılar" msgid "Text Replacement" msgstr "Metin Değişimi" msgid "Transformations" msgstr "Dönüşümler" msgid "Make Upper Case" msgstr "Büyük Harf Yap" msgid "Make Lower Case" msgstr "Küçük Harf Yap" msgid "Capitalize" msgstr "Baş Harfleri Büyük Yap" msgid "Speech" msgstr "Konuşma" msgid "Start Speaking" msgstr "Konuşmayı Başlat" msgid "Stop Speaking" msgstr "Konuşmayı Durdur" msgid "&View" msgstr "&Görünüm" msgid "Enter Full Screen" msgstr "Tam Ekrana Geç" msgid "Window" msgstr "Pencere" msgid "Minimize" msgstr "Simge Durumuna Küçült" msgid "Zoom" msgstr "Yakınlaştır" msgid "Bring All to Front" msgstr "Tümünü Öne Getir" #. TRANSLATORS:File kind displayed in Finder/Explorer msgid "PO Translation" msgstr "PO Çevirisi" msgid "The file cannot be opened." msgstr "Dosya açılamadı." msgid "Invalid file" msgstr "Dosya geçersiz" msgid "" "The file may be either corrupted or in a format not recognized by Poedit." msgstr "Dosya ya bozulmuş ya da biçimi Poedit tarafından tanınamıyor." msgid "You can’t drop more than one file on Poedit window." msgstr "Poedit penceresine birden fazla dosyayı sürükleyip bırakamazsınız." #, c-format msgid "File “%s” is not a message catalog." msgstr "“%s” dosyası bir ileti kataloğu değil." msgid "Poedit" msgstr "Poedit" msgid "&File" msgstr "&Dosya" msgid "&Go" msgstr "&Git" #. TRANSLATORS: %s is language name in its basic form (as you #. would see e.g. in a list of supported languages). You may need #. to rephrase it, e.g. to an equivalent of "for language %s". #, c-format msgid "" "Spellchecking is disabled, because the dictionary for %s isn’t installed." msgstr "" "%s için sözlük kurulmamış olduğundan yazım denetimi devre dışı bırakıldı." msgid "Install" msgstr "Kur" msgid "Catalog modified. Do you want to save changes?" msgstr "Katalog değiştirildi. Değişiklikleri kaydetmek istiyor musunuz?" msgid "Save changes" msgstr "Değişiklikleri kaydet" msgid "Your changes will be lost if you don’t save them." msgstr "Kaydetmezseniz yaptığınız değişiklikler kaybolacak." msgid "Save" msgstr "Kaydet" msgid "Don’t save" msgstr "Kaydetme" msgid "Don’t Save" msgstr "Kaydetme" msgid "Save as…" msgstr "Farklı kaydet…" msgid "Compile to…" msgstr "Şuna derle…" msgid "Compiled Translation Files" msgstr "Derlenmiş Çeviri Dosyaları" msgid "Export as…" msgstr "Dışa farklı aktar…" msgid "HTML Files" msgstr "HTML Dosyaları" msgid "Open catalog template" msgstr "Katalog kalıbını aç" msgid "Source code not available." msgstr "Kaynak kodu bulunamıyor." msgid "Updating failed" msgstr "Güncellenemedi" msgid "" "Translations couldn’t be updated from the source code, because no code was " "found in the location specified in the catalog’s Properties." msgstr "" "Katalog özelliklerinde belirtilen konumda herhangi bir kod bulunamadığından " "çeviriler kaynak kodundan güncellenemedi." msgid "Entries in the catalog are probably incorrect." msgstr "Katalogdaki dizgeler büyük olasılıkla yanlış." msgid "Updating the catalog failed. Click on 'Details >>' for details." msgstr "" "Katalog güncellenemedi. Ayrıntıları görüntülemek için 'Ayrıntılar >>' " "üzerine tıklayın." #, c-format msgid "%d issue with the translation found." msgid_plural "%d issues with the translation found." msgstr[0] "Çeviride %d sorun bulundu." msgstr[1] "Çeviride %d sorun bulundu." msgid "Validation results" msgstr "Doğrulama sonuçları" msgid "" "Entries with errors were marked in red in the list. Details of the error " "will be shown when you select such an entry." msgstr "" "Sorunlu dizgeler listede kırmızı renk ile işaretlendi. Sorunlu bir dizgeyi " "seçerek sorunun ayrıntılarını görebilirsiniz." msgid "The file was saved safely." msgstr "Dosya güvenli bir şekilde kaydedildi." msgid "" "The file was saved safely and compiled into the MO format, but it will " "probably not work correctly." msgstr "" "Dosya güvenli bir şekilde kaydedildi ve MO biçiminde derlendi, ancak büyük " "olasılıkla doğru olarak çalışmayacak." msgid "" "The file was saved safely, but it cannot be compiled into the MO format and " "used." msgstr "" "Dosya güvenli bir şekilde kaydedildi, ancak MO biçiminde derlenemez ve " "kullanılamaz." msgid "" "The file was compiled into the MO format, but it will probably not work " "correctly." msgstr "" "Dosya, MO biçiminde derlendi, ancak büyük olasılıkla doğru olarak " "çalışmayacak." msgid "The file cannot be compiled into the MO format and used." msgstr "Dosya, MO biçiminde derlenemez ve kullanılamaz." msgid "No problems with the translation found." msgstr "Çeviri ile ilgili hiç sorun bulunmadı." #, c-format msgid "The translation is ready for use, but %d entry is not translated yet." msgid_plural "" "The translation is ready for use, but %d entries are not translated yet." msgstr[0] "Çeviri kullanıma hazır, ancak henüz %d dizge çevrilmemiş." msgstr[1] "Çeviri kullanıma hazır, ancak henüz %d dizge çevrilmemiş." msgid "The translation is ready for use." msgstr "Çeviri kullanıma hazır." #, c-format msgid "Poedit automatically fixed invalid content in the file “%s”." msgstr "Poedit, “%s” dosyasındaki geçersiz içeriği otomatik olarak düzeltti." msgid "" "The file contained duplicate items, which is not allowed in PO files and " "would prevent the file from being used. Poedit fixed the issue, but you " "should review translations of any items marked as needing work and correct " "them if necessary." msgstr "" "Dosyada, PO dosyalarında izin verilmeyen ve dosyanın kullanılmasını " "engelleyen birbirinin kopyası olan ögeler var. Poedit sorunu düzeltti, ancak " "çalışma gerekli olarak işaretlenen her bir ögenin çevirisini gözden " "geçirmeli ve gerekirse düzeltmelisiniz." msgid "Language of the translation isn’t set." msgstr "Çeviri dili ayarlı değil." msgid "Set Language" msgstr "Dili ayarla" msgid "Set language" msgstr "Dili ayarla" #. TRANSLATORS: This is shown underneath "Language of the translation isn't set (or ...is the same as source language)." msgid "" "Suggestions are not available if the translation language is not set " "correctly. Other features, such as plural forms, may be affected as well." msgstr "" "Çeviri dili doğru olarak ayarlanmazsa, öneriler kullanılabilir olmaz. Çoğul " "biçimler gibi, diğer özellikler de etkilenebilir." msgid "Language of the translation is the same as source language." msgstr "Çeviri dili kaynak dil ile aynı." msgid "Fix Language" msgstr "Dili Düzelt" msgid "Fix language" msgstr "Dili düzelt" msgid "" "This catalog has entries with plural forms, but doesn’t have Plural-Forms " "header configured." msgstr "" "Bu katalogda çoğul biçimleri olan dizgeler var, ancak Çoğul-Biçimli başlık " "yapılandırılmamış." msgid "" "Entries in this catalog have different plural forms count from what " "catalog’s Plural-Forms header says" msgstr "" "Bu katalogdaki dizgelerde, kataloğun Çoğul-Biçim başlığında belirtilen " "sayıdan farklı çoğul biçimler var" msgid "Required header Plural-Forms is missing." msgstr "Gereken Çoğul-Biçin başlık bilgisi eksik." #, c-format msgid "Syntax error in Plural-Forms header (\"%s\")." msgstr "Çoğul-Biçim başlığında sözdizimi hatası (\"%s\")." msgid "Fix the Header" msgstr "Başlığı Düzelt" msgid "Fix the header" msgstr "Başlığı düzelt" #. TRANSLATORS: %s is language name in its basic form (as you #. would see e.g. in a list of supported languages). You may need #. to rephrase it, e.g. to an equivalent of "for language %s". #, c-format msgid "Plural forms expression used by the catalog is unusual for %s." msgstr "" "%s kataloğu tarafından kullanılan çoğul biçim ifadesi alışılmış şekilde " "değil." #. TRANSLATORS: A verb, shown as action button with ""Plural forms expression used by the catalog is unusual for %s.")" msgid "Review" msgstr "Gözden geçir" #, c-format msgid "Error loading message catalog file “%s”." msgstr "İleti katalog dosyası “%s” yüklenirken bir sorun çıktı." #, c-format msgid "Translated: %d of %d (%d %%)" msgstr "Çevrilen: %d / %d (%d %%)" #, c-format msgid "Remaining: %d" msgstr "Kalan: %d" #, c-format msgid "%d error" msgid_plural "%d errors" msgstr[0] "%d sorun" msgstr[1] "%d sorun" #, c-format msgid "%d entry" msgid_plural "%d entries" msgstr[0] "%d dizge" msgstr[1] "%d dizge" msgid " (unsaved)" msgstr " (kaydedilmedi)" msgid " (modified)" msgstr " (değiştirildi)" #, c-format msgid "Failed to update translation memory: %s" msgstr "Çeviri belleği güncellenemedi: %s" msgid "Purge deleted translations" msgstr "Silinmiş çevirileri temizle" msgid "Do you want to remove all translations that are no longer used?" msgstr "" "Artık kullanılmayan tüm çevirileri kaldırmak istediğinize emin misiniz?" msgid "" "If you continue with purging, all translations marked as deleted will be " "permanently removed. You will have to translate them again if they are added " "back in the future." msgstr "" "Devam ederseniz, silinmek üzere işaretlenmiş tüm çeviriler yok edilecek. " "Gelecekte bunlar yeniden eklenirse, yeniden çevirmek zorunda kalacaksınız." msgid "Keep" msgstr "Koru" msgid "Purge" msgstr "Temizle" msgid "Copy from source text" msgstr "Kaynak metinden kopyala" msgid "Copy from Source Text" msgstr "Kaynak Metinden Kopyala" #. TRANSLATORS: This is the key shortcut used in menus on Windows, some languages call them differently #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Ctrl+" msgstr "Ctrl+" msgid "Clear translation" msgstr "Çeviriyi temizle" msgid "Clear Translation" msgstr "Çeviriyi Temizle" msgid "Edit comment" msgstr "Açıklamayı düzenle" msgid "Edit Comment" msgstr "Açıklamayı Düzenle" msgid "References:" msgstr "Kaynaklar:" msgid "&Bookmarks" msgstr "Ye&r İmleri" #. TRANSLATORS: This is the key shortcut used in menus on Windows, some languages call them differently #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Alt+" msgstr "Alt+" #, c-format msgid "Set bookmark %i" msgstr "%i yer imini ayarla" #, c-format msgid "Go to bookmark %i" msgstr "%i yer imine git" #, c-format msgid "Set Bookmark %i" msgstr "%i Yer İmini Ayarla" #, c-format msgid "Go to Bookmark %i" msgstr "%i Yer İmine Git" msgid "Hide Sidebar" msgstr "Kenar Çubuğunu Gizle" msgid "Show Sidebar" msgstr "Kenar Çubuğunu Görüntüle" msgid "Hide Status Bar" msgstr "Durum Çubuğunu Gizle" msgid "Show Status Bar" msgstr "Durum Çubuğunu Görüntüle" msgid "Source text:" msgstr "Kaynak metin:" msgid "Singular:" msgstr "Tekil:" msgid "Plural:" msgstr "Çoğul:" msgid "Translation:" msgstr "Çeviri:" msgid "Pre-translated" msgstr "Ön çeviri yapılmış" msgid "Needs Work" msgstr "Çalışma Gerekli" #. TRANSLATORS: This indicates that the string's translation isn't final #. and has known problems. For example, it might be machine translated or #. fuzzy matched from an older string. The translation should be short and #. convey this. If it's problematic to translate it, "Needs review" is #. acceptable substitute, but note that the meaning is subtly different: #. "needs review" implies that somebody else should review the string after #. I am done with it (i.e. consider it good), while "needs work" implies I #. need to return to it and finish the translation. msgid "Needs work" msgstr "Çalışma gerekli" msgid "" "POT files are only templates and don’t contain any translations themselves.\n" "To make a translation, create a new PO file based on the template." msgstr "" "POT dosyaları özgün dili içeren boş kalıplardır ve çeviri içermezler.\n" "Bir çeviri oluşturmak için bu kalıbı temel alan bir PO dosyası " "oluşturulmalıdır." msgid "Create New Translation" msgstr "Yeni Çeviri Oluştur" msgid "Create new translation" msgstr "Yeni çeviri oluştur" msgid "Everything" msgstr "Herşey" #, c-format msgid "Form %i" msgstr "Biçim %i" msgid "Singular" msgstr "Tekil" msgid "Zero" msgstr "Sıfır" msgid "One" msgstr "Bir" msgid "Two" msgstr "İki" msgid "Plural" msgstr "Çoğul" msgid "Other" msgstr "Diğer" #, c-format msgid "%s Format" msgstr "%s Biçimi" #. TRANSLATORS: %s is replaced with language name, e.g. "PHP" or "C", so "PHP Format" etc." #, c-format msgid "%s format" msgstr "%s biçimi" msgid "Source text" msgstr "Kaynak metin" #, c-format msgid "Translation — %s" msgstr "Çeviri — %s" msgid "ID" msgstr "Kod" #, c-format msgid "Source text — %s" msgstr "Kaynak metin — %s" msgid "unknown language" msgstr "bilinmeyen dil" #, c-format msgid "Failed command: %s" msgstr "Başarısız komut: %s" msgid "Failed to merge gettext catalogs." msgstr "Gettext kataloglarını birleştirme başarısız." msgid "Source file" msgstr "Kaynak dosyası" msgid "Source file occurrence:" msgstr "Kaynak dosya oluşumu:" msgid "Open in Editor" msgstr "Düzenleyicide Aç" msgid "Open in editor" msgstr "Düzenleyicide aç" msgid "No references for the selected item." msgstr "Seçilmiş öge için herhangi bir kaynak yok." #, c-format msgid "Error opening file %s!" msgstr "%s dosyası açılırken sorun çıktı!" msgid "Find" msgstr "Bul" msgid "Replace" msgstr "Değiştir" #. TRANSLATORS: Expander in Find window for additional options (case sensitive etc.) msgid "Options" msgstr "Ayarlar" msgid "Ignore case" msgstr "Büyük küçük harf yoksayılsın" msgid "Wrap around" msgstr "Sona gelince baştan devam et" msgid "Whole words only" msgstr "Kelimelere aynen uyanları bul" msgid "Find in source texts" msgstr "Kaynak metinlerde bul" msgid "Find in translations" msgstr "Çevirilerde bul" msgid "Find in comments" msgstr "Açıklamalarda bul" msgid "Close" msgstr "Kapat" msgid "Replace &All" msgstr "&Tümünü Değiştir" msgid "Replace &all" msgstr "&Tümünü değiştir" msgid "&Replace" msgstr "&Değiştir" msgid "< &Previous" msgstr "< Ön&ceki" msgid "&Next >" msgstr "So&nraki >" msgid "String to find" msgstr "Bulunacak dizge" msgid "Replacement string" msgstr "Değiştirilecek dizge" #, c-format msgid "Cannot execute program: %s" msgstr "Program çalıştırılamıyor: %s" msgid "Language Code or Name (e.g. en_GB)" msgstr "Dil Kodu ya da Adı (örn. tr_TR)" msgid "Translation Language" msgstr "Çeviri Dili" msgid "Language of the translation:" msgstr "Çeviri dili:" msgid "Poedit - Catalogs manager" msgstr "Poedit - Katalog yöneticisi" msgid "Catalog" msgstr "Katalog" msgid "Total" msgstr "Toplam" msgid "Untrans" msgstr "Çevrilmemiş" msgid "Errors" msgstr "Sorunlar" msgid "Last modified" msgstr "Son değişiklik" msgid "Select directory" msgstr "Dizin seçin" msgid "Directories:" msgstr "Klasör:" msgid "" msgstr "" msgid "Do you want to delete the project?" msgstr "Projeyi silmek istiyor musunuz?" msgid "Confirmation" msgstr "Onaylama" msgid "" "Do you really want to do mass update of\n" "all catalogs in this project?" msgstr "" "Projedeki tüm katalogları güncellemeyi\n" "gerçekten istiyor musunuz?" msgid "Information about the translator" msgstr "Çevirmen hakkında bilgi" msgid "Name:" msgstr "Adı:" msgid "Your Name" msgstr "Adınız" msgid "Email:" msgstr "E-posta:" msgid "your_email@example.com" msgstr "epostaniz@ornek.com" msgid "" "Your name and email address are only used to set the Last-Translator header " "of GNU gettext files." msgstr "" "Adınız ve e-postanız sadece GNU gettext dosyalarının Last-Translator\n" "üst bilgisini ayarlamak için kullanılır." msgid "Editing" msgstr "Düzenleme" msgid "Automatically compile MO file when saving" msgstr "Kaydederken .mo dosyası da derlensin" msgid "Show summary after catalog update" msgstr "Katalog güncellendikten sonra sonuçlar görüntülensin" msgid "Check spelling" msgstr "Yazım denetimi yapılsın" msgid "Always change focus to text input field" msgstr "İmleç hep çeviri alanına odaklansın" msgid "" "Never let the list of strings take focus. If enabled, you must use Ctrl-" "arrows for keyboard navigation but you can also type text immediately, " "without having to press Tab to change focus." msgstr "" "Bu seçenek etkinleştirildiğinde, imleç asla dizge listesine odaklanmaz. " "Böylece odağı değiştirmek için sekme (Tab) tuşuna basmadan çeviriyi hemen " "yazabilirsiniz. Gezinmek için Ctrl-Aşağı/Yukarı ok tuşlarını " "kullanmalısınız. " msgid "Appearance" msgstr "Görünüm" msgid "Use custom list font:" msgstr "Listede özel yazı türü kullanılsın:" msgid "Use custom text fields font:" msgstr "Metin alanlarında özel yazı türü kullanılsın:" msgid "Change UI language" msgstr "Arayüz Dilini Değiştir" #. TRANSLATORS: This is a note appended to "Check spelling" when running on older Windows versions msgid "(requires Windows 8 or newer)" msgstr "(Windows 8 ya da üzeri gerekir)" msgid "General" msgstr "Genel" msgid "Use translation memory" msgstr "Çeviri belleği kullanılsın" msgid "Learn From Files…" msgstr "Dosyalardan Öğren…" msgid "Learn from files…" msgstr "Dosyalardan öğren…" #. TRANSLATORS: This is a button that deletes everything in the translation memory (i.e. clears/resets it). msgid "Reset" msgstr "Sıfırla" #. TRANSLATORS: Followed by "match translations within the file" or "pre-translate from TM" msgid "When updating from sources" msgstr "Kaynaklardan güncellerken" #. TRANSLATORS: Preceded by "When updating from sources" msgid "fuzzy match within the file" msgstr "dosya içinde belirsiz eşleşme" #. TRANSLATORS: Preceded by "When updating from sources" msgid "pre-translate from TM" msgstr "çeviri belleğinden ön çeviri" msgid "" "Poedit can attempt to fill in new entries from only previous translations in " "the file or from your entire translation memory. Using the TM won’t be very " "effective if it’s near-empty, but it will get better as you add more " "translations to it." msgstr "" "Poedit yeni kayıtları yalnız dosyadaki önceki çevirilerden ya da tüm çeviri " "belleğinden doldurmayı deneyebilir. Çeviri Belleği fazla dolu değil ise " "etkin kullanılamayabilir. Ancak çeviri sayısı arttıkça etkinliği artar." msgid "Stored translations:" msgstr "Kaydedilmiş çeviriler:" msgid "Database size on disk:" msgstr "Diskteki veritabanı boyutu:" msgid "Select translation files to import" msgstr "İçe aktarılacak çeviri dosyalarını seçin" msgid "Translation Memory" msgstr "Çeviri Belleği" msgid "Importing translations…" msgstr "Çeviriler içe aktarılıyor…" msgid "Finalizing…" msgstr "Tamamlanıyor…" msgid "Reset translation memory" msgstr "Çeviri belleğini sıfırla" msgid "Are you sure you want to reset the translation memory?" msgstr "Çeviri belleğini sıfırlamak istediğinize emin misiniz?" msgid "" "Resetting the translation memory will irrevocably delete all stored " "translations from it. You can’t undo this operation." msgstr "" "Çeviri belleğini sıfırlama tüm saklanan çevirileri geri dönülmez bir şekilde " "bundan silecek. Bu işlemi geri alamazsınız." msgid "Cancel" msgstr "İptal" #. TRANSLATORS: This is abbreviation of "Translation Memory" used in Preferences on macOS. #. Long text looks weird there, too short (like TM) too, but less so. "General" is about ideal #. length there. msgid "TM" msgstr "ÇBelleği" msgid "" "Source code extractors are used to find translatable strings in the source " "code files and extract them so that they can be translated." msgstr "" "Kaynak kodu çıkartıcıları kaynak kodu dosyalarında çevrilebilir dizgeleri " "bulmak ve onları çıkarmak için kullanılır böylece çevrilebilirler." msgid "Custom Extractors:" msgstr "Özel Ayıklayıcılar:" msgid "Custom extractors:" msgstr "Özel ayıklayıcılar:" msgid "Edit…" msgstr "Düzenle…" msgid "GNU gettext" msgstr "GNU gettext" msgid "" "Supports all programming languages recognized by GNU gettext tools (PHP, C/C+" "+, C#, Perl, Python, Java, JavaScript and others)." msgstr "" "GNU gettext araçları (PHP, C/C++, C#, Perl, Python, Java, JavaScript ve " "diğerleri) tarafından tanınan tüm programlama dillerini destekler." msgid "Delete extractor" msgstr "Ayıklayıcıyı sil" #, c-format msgid "Are you sure you want to delete the “%s” extractor?" msgstr "\"%s\" ayıklayıcısını silmek istediğinize emin misiniz?" msgid "Extractors" msgstr "Ayıklayıcılar" msgid "Accounts" msgstr "Hesaplar" msgid "Automatically check for updates" msgstr "Güncellemeler otomatik olarak denetlensin" msgid "Include beta versions" msgstr "beta sürümleri de alınsın" msgid "" "Beta versions contain the latest new features and improvements, but may be a " "bit less stable." msgstr "" "Beta sürümlerinde en son özellikler ve geliştirmeler bulunur, ancak daha az " "kararlı olabilirler." msgid "Updates" msgstr "Güncellemeler" msgid "" "These settings affect internal formatting of PO files. Adjust them if you " "have specific requirements e.g. because of version control." msgstr "" "Bu ayarlar PO dosyalarının iç biçimlendirmesini etkiler. Örneğin sürüm " "denetimi nedeniyle özel gereksinimleriniz varsa, bunları ayarlayın." msgid "Line endings:" msgstr "Satır sonları:" msgid "Unix (recommended)" msgstr "Unix (önerilir)" msgid "Windows" msgstr "Windows" #. TRANSLATORS: Followed by text control for entering number; wraps text at given width msgid "Wrap at:" msgstr "Kaydırma konumu:" msgid "Preserve formatting of existing files" msgstr "Var olan dosyaların biçimleri korunsun" msgid "Advanced" msgstr "Gelişmiş" msgid "Pre-translating…" msgstr "Ön çeviri yapılıyor…" #, c-format msgid "Pre-translated %u string" msgid_plural "Pre-translated %u strings" msgstr[0] "%u dizgenin ön çevirisi yapıldı" msgstr[1] "%u dizgenin ön çevirisi yapıldı" #. TRANSLATORS: This is a somewhat common term describing the action where #. you apply the translation memory and/or machine translation to all of the #. strings you're translating as the first step, followed by correcting, #. improving etc., i.e. actually translating the strings. This may be tricky #. to express in other languages as simply as in English, but please try to #. keep it similarly concise. Please try to avoid, if possible, describing it #. as "auto-translation" and similar, because such terminology would mislead #. some users into thinking it's all that needs to be done (spoken from #. experience). "Pre-translate" nicely expresses that it's only the step done #. *before* actual translation. msgid "Pre-translate" msgstr "Ön Çeviri" msgid "Only fill in exact matches" msgstr "Yalnız tam eşleşmeler doldurulsun" msgid "" "By default, inaccurate results are filled in as well and marked as needing " "work. Check this option to only include accurate matches." msgstr "" "Varsayılan olarak, doğru olmayan sonuçlar da doldurulur ve belirsiz olarak " "işaretlenir. Yalnız doğru eşleşmelerin katılması için bu seçeneği " "işaretleyin." msgid "Don’t mark exact matches as needing work" msgstr "Tam eşleşmeler belirsiz olarak işaretlenmesin" msgid "" "Only enable if you trust the quality of your TM. By default, all matches " "from the TM are marked as needing work and should be reviewed before use." msgstr "" "Bu seçeneği yalnız Çeviri Belleğinizin kalitesine güveniyorsanız " "etkinleştirin. Varsayılan olarak, Çeviri Belleğinden alınan tüm eşleşmeler " "belirsiz olarak işaretlenir ve kullanılmadan önce gözden geçirilmelidir." msgid "" "Pre-translation automatically finds exact or fuzzy matches for untranslated " "strings in the translation memory and fills in their translations." msgstr "" "Ön çeviri, çevrilmemiş dizgeleri için Çeviri Belleğindeki tam ya da belirsiz " "olan eşleşmeleri otomatik olarak bularak çevirileri doldurur." #, c-format msgid "%d entry was pre-translated." msgid_plural "%d entries were pre-translated." msgstr[0] "%d dizgenin ön çevirisi yapıldı." msgstr[1] "%d dizgenin ön çevirisi yapıldı." msgid "" "The translations were marked as needing work, because they may be " "inaccurate. You should review them for correctness." msgstr "" "Çeviriler yetersiz olduğundan üzerinde çalışılması gerekiyor şeklinde " "işaretlenmiş. Bu çevirilerin doğruluğunu gözden geçirmelisiniz." msgid "No entries could be pre-translated." msgstr "Herhangi bir kayıt için ön çeviri yapılamadı." msgid "" "The TM doesn’t contain any strings similar to the content of this file. It " "is only effective for semi-automatic translations after Poedit learns enough " "from files that you translated manually." msgstr "" "Çeviri Belleğinde bu dosyanın içeriğine uygun bir dizge bulunmuyor. Yarı " "otomatik çeviriler, ancak el ile yaptığınız çeviriler Poedit tarafından " "yeterince öğrenildikten sonra etkili olabilir." msgid "" "Drag and Drop Folders Here\n" "\n" "or use the + button" msgstr "" "Klasörleri Buraya Sürükleyin ve Bırakın\n" "\n" "ya da + düğmesini kullanın" msgid "" "Drag and drop folders here\n" "\n" "or use the + button" msgstr "" "Klasörleri buraya sürükleyin ve bırakın\n" "\n" "ya da + düğmesini kullanın" msgid "Add Folders…" msgstr "Klasörleri Ekle…" msgid "Add folders…" msgstr "Klasörleri ekle…" msgid "Add Files…" msgstr "Dosyaları Ekle…" msgid "Add files…" msgstr "Dosyaları ekle…" msgid "Add Wildcard…" msgstr "Joker Karakter Ekle…" msgid "Add wildcard…" msgstr "Joker karakter ekle…" msgid "Paths" msgstr "Yollar" msgid "Excluded paths" msgstr "Hariç tutulan yollar" msgid "Advanced extraction settings" msgstr "Gelişmiş ayıklama ayarları" msgid "Extract notes for translators from:" msgstr "Çevirmenler için ayıklama notlarının yeri:" msgid "Comments prefixed with:" msgstr "Yorumların ön eki:" msgid "All comments" msgstr "Tüm yorumlar" msgid "Additional xgettext flags:" msgstr "Ek xgettext işaretleri:" msgid "Additional keywords" msgstr "Ek anahtar sözcükler" msgid "Name of the project the translation is for" msgstr "Çevirisi yapılan projenin adı" msgid "Team name and email address or URL" msgstr "Takım adı ve e-posta adresi ya da adresi" msgid "e.g. nplurals=2; plural=(n > 1);" msgstr "örn. nplurals=2; plural=(n > 1);" msgid "UTF-8 (recommended)" msgstr "UTF-8 (önerilir)" msgid "Please save the file first. This section cannot be edited until then." msgstr "Lütfen önce dosyayı kaydedin. O zamana kadar bu bölüm düzenlenemez." msgid "Not all plural forms are translated." msgstr "Tüm çoğul biçimler çevrilmedi." msgid "The translation should start as a sentence." msgstr "Çeviri bir cümle olarak başlamalı." msgid "The translation should start with a lowercase character." msgstr "Çeviri bir küçük harf karakteri ile başlamalı." msgid "The translation doesn’t start with a space." msgstr "Çeviri bir boşluk ile başlamıyor." msgid "The translation starts with a space, but the source text doesn’t." msgstr "Çeviri bir boşluk ile başlıyor, ancak kaynak metin başlamıyor." msgid "The translation is missing a newline at the end." msgstr "Çevirinin sonunda yeni bir satır başlangıcı eksik." msgid "The translation ends with a newline, but the source text doesn’t." msgstr "" "Çeviri yeni bir satır başlangıcı ile bitiyor, ancak kaynak metin bitmiyor." msgid "The translation is missing a space at the end." msgstr "Çevirinin sonunda bir boşluk eksik." msgid "The translation ends with a space, but the source text doesn’t." msgstr "Çeviri bir boşluk ile bitiyor, ancak kaynak metin bitmiyor." #, c-format msgid "The translation should end with “%s”." msgstr "Çeviri “%s” ile bitmeli." #, c-format msgid "The translation should not end with “%s”." msgstr "Çeviri “%s” ile bitmemeli." #, c-format msgid "The translation ends with “%s”, but the source text ends with “%s”." msgstr "Çeviri “%s” ile bitiyor, ancak kaynak metin “%s” ile bitiyor." msgid "Comment:" msgstr "Açıklama:" msgid "OK" msgstr "Tamam" msgid "C&lear" msgstr "&Temizle" msgid "Clear the comment" msgstr "Açıklamayı temizle" msgid "New" msgstr "Yeni" msgid "Create new translations project" msgstr "Yeni çeviri projesi oluştur" msgid "Edit" msgstr "Düzenle" msgid "Edit the project" msgstr "Projeyi düzenle" msgid "Delete the project" msgstr "Projeyi sil" msgid "Update all" msgstr "Tümünü Güncelle" msgid "Update all catalogs in the project" msgstr "Projedeki tüm katalogları güncelle" msgid "Edit project" msgstr "Projeyi düzenle" msgid "Project name:" msgstr "Proje adı:" msgid "Browse" msgstr "Gözat" msgid "Add directory to the list" msgstr "Klasörü listeye ekle" msgid "&New…" msgstr "&Yeni…" msgid "New from &POT/PO file…" msgstr "&POT/PO dosyasından oluştur…" msgid "New From &POT/PO File…" msgstr "&POT/PO Dosyasından Oluştur…" msgid "&Open…" msgstr "&Aç…" msgid "Open Recent" msgstr "Son Kullanılanları Aç" msgid "Open from Crowdin…" msgstr "Crowdin üzerinden aç…" msgid "Open From Crowdin…" msgstr "Crowdin üzerinden aç…" msgid "&Close" msgstr "&Kapat" msgid "&Save" msgstr "Kay&det" msgid "Save &as…" msgstr "&Farklı kaydet…" msgid "Save &As…" msgstr "&Farklı Kaydet…" msgid "Compile to MO…" msgstr "MO olarak Derle…" msgid "E&xport as HTML…" msgstr "HTML olarak &Dışa Aktar…" msgid "Check for updates…" msgstr "Güncellemeleri denetle…" msgid "&Preferences…" msgstr "Aya&rlar…" msgid "Catalogs &manager" msgstr "&Katalog yöneticisi" msgid "Catalogs &Manager" msgstr "&Katalog Yöneticisi" msgid "E&xit" msgstr "Çı&k" msgid "Quit" msgstr "Çık" msgid "Copy from singular" msgstr "Tekilden kopyala" msgid "Copy From Singular" msgstr "Tekilden Kopyala" msgid "Translation needs &work" msgstr "Çalışma &gereken çeviri" msgid "Translation Needs &Work" msgstr "Çalışma &Gereken Çeviri" msgid "Edit &comment" msgstr "Açıklamayı dü&zenle" msgid "Edit &Comment" msgstr "Açıklamayı Dü&zenle" msgid "Suggestions" msgstr "Öneriler" msgid "&Find…" msgstr "&Bul…" msgid "Replace…" msgstr "Değiştir…" msgid "Find next" msgstr "Sonrakini bul" msgid "Find previous" msgstr "Öncekini bul" msgid "Find and Replace…" msgstr "Bul ve Değiştir…" msgid "Find Next" msgstr "Sonrakini Bul" msgid "Find Previous" msgstr "Öncekini Bul" msgid "&Preferences" msgstr "Aya&rlar" msgid "Display entry &IDs" msgstr "&Kayıt kodlarını görüntüle" msgid "Display Entry &IDs" msgstr "&Kayıt Kodlarını Görüntüle" msgid "Sort by &file order" msgstr "&Dosya düzenine göre sırala" msgid "Sort by &File Order" msgstr "&Dosya Düzenine göre Sırala" msgid "Sort by &source" msgstr "&Kaynağa göre sırala" msgid "Sort by &Source" msgstr "&Kaynağa göre Sırala" msgid "Sort by &translation" msgstr "Çeviriye &göre sırala" msgid "Sort by &Translation" msgstr "Çeviriye &göre Sırala" msgid "&Group by context" msgstr "Bağlama göre &grupla" msgid "&Group By Context" msgstr "Bağlama Göre &Grupla" msgid "Entries with errors first" msgstr "Sorunlu dizgeler en üstte" msgid "Entries with Errors First" msgstr "Sorunlu Dizgeler En Üstte" msgid "&Untranslated entries first" msgstr "Ç&evrilmemiş dizgeler en üstte" msgid "&Untranslated Entries First" msgstr "Ç&evrilmemiş Dizgeler En Üstte" msgid "&Show references" msgstr "Referansları gö&rüntüle" msgid "&Show References" msgstr "Referansları Gö&rüntüle" msgid "Show sidebar" msgstr "Kenar çubuğunu görüntüle" msgid "Show status bar" msgstr "Durum çubuğunu görüntüle" msgid "C&atalog" msgstr "&Katalog" msgid "&Update from sources" msgstr "Kaynaklardan gü&ncelle" msgid "&Update from Sources" msgstr "Kaynaklardan Gü&ncelle" msgid "Update from &POT file…" msgstr "&POT dosyasından güncelle…" msgid "Update from &POT File…" msgstr "&POT Dosyasından Güncelle…" msgid "Sync with Crowdin" msgstr "Crowdin ile eşitle" msgid "Pre-&translate…" msgstr "Ön Ç&eviri Yap…" msgid "&Purge deleted translations" msgstr "Silin&miş çevirileri temizle" msgid "&Purge Deleted Translations" msgstr "Silin&miş Çevirileri Temizle" msgid "&Validate translations" msgstr "Çevirileri &doğrula" msgid "&Validate Translations" msgstr "Çevirileri &Doğrula" msgid "&Properties…" msgstr "Ö&zellikler…" msgid "&Done and next" msgstr "&Tamamla ve sonrakine geç" msgid "&Done and Next" msgstr "&Tamamla ve Sonrakine Geç" msgid "&Previous translation" msgstr "Ö&nceki çeviri" msgid "&Previous Translation" msgstr "Ö&nceki Çeviri" msgid "&Next translation" msgstr "&Sonraki çeviri" msgid "&Next Translation" msgstr "&Sonraki Çeviri" msgid "P&revious unfinished" msgstr "Ö&nceki tamamlanmamış" msgid "P&revious Unfinished" msgstr "Ö&nceki Tamamlanmamış" msgid "Ne&xt unfinished" msgstr "S&onraki tamamlanmamış" msgid "Ne&xt Unfinished" msgstr "S&onraki Tamamlanmamış" msgid "Previous plural form" msgstr "Önceki çoğul biçim" msgid "Previous Plural Form" msgstr "Önceki Çoğul Biçim" msgid "Next plural form" msgstr "Sonraki çoğul biçim" msgid "Next Plural Form" msgstr "Sonraki Çoğul Biçim" msgid "&Online help" msgstr "Çe&vrimiçi yardım" msgid "&Online Help" msgstr "Çe&vrimiçi Yardım" msgid "&GNU gettext manual" msgstr "&GNU gettext kılavuzu" msgid "&GNU gettext Manual" msgstr "&GNU gettext Kılavuzu" msgid "&About Poedit" msgstr "Poedit H&akkında" msgid "&About" msgstr "H&akkında" msgid "Extractor setup" msgstr "Ayıklayıcı kurulumu" msgid "List of extensions separated by semicolons (e.g. *.cpp;*.h):" msgstr "Noktalı virgülle ayrılmış uzantılar listesi (Örnek *.cpp;*.h):" msgid "Invocation:" msgstr "Çağrı:" msgid "Command to extract translations:" msgstr "Çevirileri ayıklama komutu:" msgid "" "This is the command used to launch the extractor.\n" "%o expands to the name of output file, %K to list\n" "of keywords, %F to list of input files,\n" "%C to charset flag (see below)." msgstr "" "Ayıklayıcı çalıştırmak için kullanılan komut.\n" "%o belirtilen adlı dosyaya ayıklar, %K anahtar kelimelerin listesine,\n" "%F giriş dosyalarının listesine, %C karakter kümesi\n" "işaretine dönüşür (aşağıya bakın)." msgid "An item in keywords list:" msgstr "Anahtar sözcükler listesindeki bir öge:" msgid "" "This will be attached to the command line once\n" "for each keyword. %k expands to the keyword." msgstr "" "Her anahtar sözcük için bir kez komut satırına\n" "eklenir. %k anahtar sözcüğü yazar." msgid "An item in input files list:" msgstr "Girdi dosyaları listesindeki bir öge:" #, c-format msgid "" "This will be attached to the command line once\n" "for each input file. %f expands to the filename." msgstr "" "Her girdi dosyası için bir kez komut satırına\n" "eklenir. %f dosya adını yazar." msgid "Source code charset:" msgstr "Kaynak kod karakter kümesi:" #, c-format msgid "" "This will be attached to the command line\n" "only if source code charset was given. %c expands to charset value." msgstr "" "Kaynak kodu karakter kümesi verildiyse,\n" "bu komut satırına eklenir.\n" "%c karakter kümesi değerini yazar." msgid "Catalog properties" msgstr "Katalog özellikleri" msgid "Project name and version:" msgstr "Proje adı ve sürümü:" msgid "Language team:" msgstr "Dil takımı:" msgid "Plural forms:" msgstr "Çoğul biçimler:" msgid "Use default rules for this language" msgstr "Bu dil için varsayılan kurallar kullanılsın" msgid "Use custom expression" msgstr "Özel ifade kullanılsın" msgid "Learn about plural forms" msgstr "Çoğul biçimler hakkında bilgi edinin" msgid "Charset:" msgstr "Karakter kümesi:" msgid "Advanced Extraction Settings…" msgstr "Gelişmiş Çıkartma Ayarları…" msgid "Advanced extraction settings…" msgstr "Gelişmiş ayıklama ayarları…" msgid "Translation Properties" msgstr "Çeviri Özellikleri" msgid "Translation properties" msgstr "Çeviri özellikleri" msgid "Sources Paths" msgstr "Kaynak Yolları" msgid "Sources paths" msgstr "Kaynak yolları" msgid "Extract text from source files in the following directories:" msgstr "Kaynak dosyalardaki metinleri şu klasörlere ayıkla:" msgid "Base path:" msgstr "Temel yol:" msgid "Sources Keywords" msgstr "Kaynak Anahtar Sözcükleri" msgid "Sources keywords" msgstr "Kaynak anahtar sözcükleri" msgid "" "Use these keywords (function names) to recognize translatable strings\n" "in source files:" msgstr "" "Kaynak dosyalardaki çevrilebilir dizgeleri tanımak için,\n" "şu anahtar sözcükler (işlev adları) kullanılsın:" msgid "Also use default keywords for supported languages" msgstr "Desteklenen diller için varsayılan anahtar sözcükler de kullanılsın" msgid "Learn About Gettext Keywords" msgstr "Gettext Anahtar Sözcükleri Hakkında Bilgi Alın" msgid "Learn about gettext keywords" msgstr "Gettext anahtar sözcüklerinden öğrenilsin" msgid "Update summary" msgstr "Güncelleme özeti" msgid "" "These strings were found in the sources but were not in the catalog.\n" "Poedit will add them to the catalog now." msgstr "" "Kaynakta bulunan bu dizgeler katalogda yoktu.\n" "Poedit bunları kataloğa ekleyecek." msgid "New strings" msgstr "Yeni dizgeler" msgid "" "These strings are no longer in the sources.\n" "Poedit will remove them from the catalog now." msgstr "" "Bu dizgeler artık kaynakta yok.\n" "Poedit bunları katalogdan çıkaracak." msgid "Obsolete strings" msgstr "Eski dizgeler" msgid "(0 new, 0 obsolete)" msgstr "(0 yeni, 0 eski)" msgid "Open" msgstr "Aç" msgid "Save catalog" msgstr "Kataloğu kaydet" msgid "Validate" msgstr "Doğrula" msgid "Check for errors in the translation" msgstr "Çeviri sorunlarını denetle" msgid "Update" msgstr "Güncelle" msgid "Update catalog - synchronize it with sources" msgstr "Kataloğu güncelleyin - kaynak dosyalarla eşitleyin" msgid "Sidebar" msgstr "Kenar çubuğu" msgid "Show or hide the sidebar" msgstr "Kenar çubuğunu görüntüle ya da gizle" #. TRANSLATORS: "Previous" as in used in the past, now replaced with newer. msgid "Previous source text:" msgstr "Önceki kaynak metin:" msgid "" "The old source text (before it changed during an update) that the now-" "inaccurate translation corresponds to." msgstr "" "Belirsiz çevirinin karşılık geldiği eski kaynak metin (bir güncelleme " "sırasında değiştirilmeden önce)." msgid "Notes for translators:" msgstr "Çevirmenler için notlar:" msgid "Add comment" msgstr "Yorum ekle" msgid "Add Comment" msgstr "Yorum Ekle" msgid "Translation suggestions:" msgstr "Çeviri önerileri:" #. TRANSLATORS: This is shown when no translation suggestions can be found in the TM (Windows). msgid "No matches found" msgstr "Herhangi bir eşleşme bulunamadı" #. TRANSLATORS: This is shown when no translation suggestions can be found in the TM (macOS, Linux). msgid "No Matches Found" msgstr "Herhangi Bir Eşleşme Bulunamadı" msgid "This string was found in Poedit’s translation memory." msgstr "Bu dizge Poedit Çeviri Belleğinde bulundu." msgid "Cannot create temporary directory." msgstr "Geçici klasör oluşturulamıyor." msgid "Welcome to Poedit" msgstr "Poedit Uygulamasına Hoş Geldiniz" #. TRANSLATORS: This is version information in about dialog, "%s" will be #. version number when used #, c-format msgid "Version %s" msgstr "Sürüm %s" msgid "Edit a Translation" msgstr "Bir Çeviriyi Düzenle" msgid "Edit a translation" msgstr "Bir çeviriyi düzenle" msgid "Open an existing PO file and edit the translation." msgstr "Varolan bir PO dosyasını açarak çeviriyi düzenleyin." msgid "" "Take an existing PO file or POT template and create a new translation from " "it." msgstr "Varolan bir PO dosyası ya da POT kalıbından yeni bir çeviri oluşturun." msgid "Collaborate on a Translation with Others" msgstr "Bir Çeviride Diğerlerine Katkıda Bulun" msgid "Collaborate on a translation with others" msgstr "Çeviriye başkalarıyla beraber katkıda bulun" msgid "" "Download a file from Crowdin project, translate and sync your changes back." msgstr "" "Crowdin projesinden bir dosya indirin, çevirin ve değişikliklerinizi " "eşitleyin." msgid "What is Crowdin?" msgstr "Crowdin nedir?" msgid "There are no translations. That’s unusual." msgstr "Herhangi bir çeviri bulunamadı. Bu durum normal değil." msgid "" "Translatable entries aren’t added manually in the Gettext system, but are " "automatically extracted\n" "from source code. This way, they stay up to date and accurate.\n" "Translators typically use PO template files (POTs) prepared for them by the " "developer." msgstr "" "Çevrilebilir dizgeler Gettext sistemine el ile eklenmez ancak kaynak " "kodundan otomatik olarak\n" "ayıklanır. Böylece güncel ve doğru kalırlar.\n" "Çevirmenler genellikle geliştirici tarafından hazırlanan PO kalıp " "dosyalarını (POT) kullanır." msgid "(Learn more about GNU gettext)" msgstr "(GNU gettext hakkında bildi edinin)" msgid "The simplest way to fill this catalog is to update it from a POT:" msgstr "" "Bu kataloğu doldurmanın en kolay yolu bir POT dosyasından güncellemektir:" msgid "Update from POT" msgstr "POT dosyasından güncelle" msgid "Take translatable strings from an existing POT template." msgstr "Çevrilebilir dizgeleri var olan bir POT kalıbından alın." msgid "" "You can also extract translatable strings directly from the source code:" msgstr "Çevrilebilir dizgeleri doğrudan kaynak kodundan ayıklayabilirsiniz:" msgid "Extract from sources" msgstr "Kaynaklardan aktar" msgid "Configure source code extraction in Properties." msgstr "Özellikler bölümünden kaynak kod ayıklamasını yapılandırın." msgid "Sync" msgstr "Eşitle" msgid "Synchronize the translation with Crowdin" msgstr "Çeviriyi Crowdin ile eşitle" #. TRANSLATORS: This is titlebar of about dialog, "%s" is application name #. ("Poedit" here, but please use "%s") #, c-format msgid "About %s" msgstr "%s Hakkında" #. TRANSLATORS: Title of the preferences window on Windows and Linux. "%s" is replaced with "Poedit" when running. #, c-format msgid "%s Preferences" msgstr "%s Ayarları" #. TRANSLATORS: macOS item in app menu msgid "Services" msgstr "Hizmetler" #. TRANSLATORS: macOS item in app menu, %s is replaced with "Poedit" #, c-format msgid "Hide %s" msgstr "%s Gizle" #. TRANSLATORS: macOS item in app menu msgid "Hide Others" msgstr "Diğerlerini Gizle" #. TRANSLATORS: macOS item in app menu msgid "Show All" msgstr "Tümünü Görüntüle" #. TRANSLATORS: macOS item in app menu, %s is replaced with "Poedit" #, c-format msgid "Quit %s" msgstr "%s Uygulamasından Çık" #. TRANSLATORS: macOS item in app menu msgid "Preferences…" msgstr "Ayarlar…" msgid "Preferences..." msgstr "Ayarlar..." #. TRANSLATORS: Title of a category in Windows task menu (right-click icon in taskbar) msgid "Recent" msgstr "Son" #. TRANSLATORS: Title of a category in Windows task menu (right-click icon in taskbar) msgid "Frequent" msgstr "Sık" msgid "&Apply" msgstr "&Uygula" msgid "Apply" msgstr "Uygula" msgid "&Back" msgstr "&Geri" msgid "Back" msgstr "Geri" msgid "&Cancel" msgstr "İ&ptal" msgid "&Clear" msgstr "&Temizle" msgid "Clear" msgstr "Temizle" msgid "Copy" msgstr "Kopyala" msgid "Cu&t" msgstr "&Kes" msgid "Cut" msgstr "Kes" msgid "&Delete" msgstr "&Sil" msgid "&Quit" msgstr "Çı&k" msgid "File" msgstr "Dosya" msgid "Help" msgstr "Yardım" msgid "&New" msgstr "&Yeni" msgid "&No" msgstr "&Hayır" msgid "No" msgstr "Hayır" msgid "&OK" msgstr "&Tamam" msgid "Open…" msgstr "Aç…" msgid "&Open..." msgstr "&Aç..." msgid "Open..." msgstr "Aç..." msgid "&Paste" msgstr "Ya&pıştır" msgid "Paste" msgstr "Yapıştır" msgid "Preferences" msgstr "Ayarlar" msgid "&Redo" msgstr "&Yinele" msgid "Refresh" msgstr "Yenile" msgid "&Save as" msgstr "&Farklı kaydet" msgid "Save as" msgstr "Farklı kaydet" msgid "Select &All" msgstr "&Tümünü Seç" msgid "Select All" msgstr "Tümünü Seç" msgid "&Undo" msgstr "&Geri Al" msgid "&Yes" msgstr "&Evet" msgid "Yes" msgstr "Evet" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Shift+" msgstr "Shift+" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Enter" msgstr "Enter" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Up" msgstr "Yukarı Ok" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Down" msgstr "Aşağı Ok" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Left" msgstr "Sol" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Right" msgstr "Sağ" #. TRANSLATORS: Keyboard shortcut, must correspond to translation of "Ctrl+" msgid "ctrl" msgstr "ctrl" #. TRANSLATORS: Keyboard shortcut, must correspond to translation of "Alt+" msgid "alt" msgstr "alt" #. TRANSLATORS: Keyboard shortcut, must correspond to translation of "Shift+" msgid "shift" msgstr "shift" poedit-2.0.6/locales/kk.mo0000664000372000037200000016670013230132077012320 00000000000000L|$(1 )1 51@1<T11J1g1 W2a2 p2z2 222 2222222222223&3*3<3N3T3Y3a3i3{333 3 3333 33334 4<4X4^4d4m4s4|44444445545:5?5S5r555 5:5:6 A6K6T6 ]6 i6v66 66 6666677?7\7|7 7177'778 58@87F86~88)88 9]9m9A9I9 :::::":: ::.;/;B;T;f;w;;;;;;#;<,<;<A<S<e<w<(}<(<< < ==,= ==K=/f= =======2>L>e>|>> >>S?Y?^?q?????? ???E?"C@?f@ @@*@ @@AKA"bA5AAAA A A ABB (B 5BBBSB[BcBjBpB.BhBC4CuNC,CCDD0D 7DBD QD^D#sD<D"DD EE*%E!PE!rE'EEE'EF FF !F +F9FMF^FsF F F F FFFFF FFFG !G,G1G 9G EGRGbGGG .H:HTH jHH H HH"H;H(I9IVIiI xI III IIIJJ /J:JSJ:XJ J<J.J KK-KHK_K*hKKKK K KKLLL LLLLL#M)M':M$bM7M$M%M N!N$N5N9NNNNO O2&O YOfO|OOOOOOOOOOPP5PPPPnPEWQQ>Q QQQR@R[R-QSS SS2SSS TTT%TTTTU -U;UDUJUeUjUrUyU ~UU UU U UU U(U VVz(VVVV V VV V V V V WW""WEWdWmW }WW WWW WWWWX X'X!7XYXaXiXrXzXX XX XX X X XXYY'Y;YKY`YuYY Z#Z ;ZGZ ZZgZ xZZ ZZKZZ [ [*[?[ N[ \[h[[w\|\(\\ \\\\+]A]ND]8]"]]^8^^_I`RP`c`QaYaltaAa-#bCQbAbKb0#c.Tcc!d)4d-^d+d8dCdu5e,eLe`%ffY gmfg^g:3hnh;i7Vimi_i[\jjjjjkk+kBkZkqkk kk6l:lNl Sltllll l"l,ll m&m6mEmMm^m?nmmmmmn#.nVRnnnn nnoo(oCoTo[o coooxoH|o5o7o 3p3=paqppppp.p q6qRqiqqqq!qqss s3s t;(tBdtttttt u u*uBuUu eu ou }u!u!u u u u!u!v6v->v-lv v v vvvvwww2w Ow Zwewywwwww3w3/x cxmxx xx*x*xy:(y:cy-y3y(z()z Rz\z bz2z$z*zF{M{_{{e|v|||||'|}$+}P}o}'}*}/}~O(~Lx~O~2HfO:S6ŀۀRZB/9́ +(ނs{ $4D=VAօ[#W,{,+Ն.0(@Li@*4"*W!#ψ!EEd8B&"</_,F /7Ћ/78Dp]3&G&n7͍) 4#4X7 Տ#1,1^2sG#̑YJ#[ :"m] ˓,Փ &&6%]%Ô ( 8D J>k7n7ޖg 7,T&*Ki]@Ǚ)2M:mURTQ)Cٛ '7 @M'\20# (@+X  Н ܝ--C Ydt&-*%.E&t4 Рݠ 4CE:ġ(PA$ϢP15$g \ǣ$kAL-6.d D$$7Oagɧ$ҧ$ 2 St%{V%=D\bDHI7ʪϪs9h&"ЬY e&"ɭ   &&1&X"#ܮA { #m. ñ0ʱ\XU"k&0Դ!'>Qg`}"޶"<$&a 2  0?N$a$Ǹ@ݸ 0+\V e q~ں%?^|R($%J$b(ƼL/<+l5(ν/_'Ǿݾ 5 ?!]#8:ܿ/8G:/)1"B8e$"%/ =</z= ~9t(1J][%1:Dl!K/4PdI}T !_xh*cf2 %RxsNy MCh--=AEDA[T5#o$aB ^cZq 12d!4#4#29VO-G `m|Eb'E'm#!,}=;(6 BWWTG21#@d,v#A" AN5VmHeM6.5DHdM=0/`f~**CzG  Z5;?+2.g' I(J& cwvD& 7KXP#Kw:0gdx:l3,K//aSEBAk+jJ<0R WZPu #m!}f24%^e >t1)A'+HBYM>!.Lk9,42n d|.*l 3n\?CF@p70- V<FzU8 N3i&8_=Wb{qM5=V< *5/:-e~qY1jIU9 F%%oL7x`HQ6>h$,@XT(`$m@;6' "4[Dr^\]yOfE"GEt1vR|Npu{)_abis](sc $TJ =-Do9IOB);QryA}~CS6#!L[hH8"?G  (modified) (unsaved)%d entry%d entries%d entry was pre-translated.%d entries were pre-translated.%d error%d errors%d issue with the translation found.%d issues with the translation found.%i line of file “%s” was not loaded correctly.%i lines of file “%s” were not loaded correctly.%s Format%s Preferences%s format&About&About Poedit&Apply&Back&Bookmarks&Cancel&Clear&Close&Copy&Delete&Done and Next&Done and next&Edit&File&Find…&GNU gettext Manual&GNU gettext manual&Go&Group By Context&Group by context&Help&New&New…&Next >&Next Translation&Next translation&No&OK&Online Help&Online help&Open...&Open…&Paste&Preferences&Preferences…&Previous Translation&Previous translation&Properties…&Purge Deleted Translations&Purge deleted translations&Quit&Redo&Replace&Save&Save as&Show References&Show references&Undo&Untranslated Entries First&Untranslated entries first&Update from Sources&Update from sources&Validate Translations&Validate translations&View&Yes(0 new, 0 obsolete)(Learn more about GNU gettext)(New: %i, obsolete: %i)(Use default language)(requires Windows 8 or newer)< &PreviousDrag and Drop Folders Here or use the + buttonDrag and drop folders here or use the + buttonAbout %sAccountsAdd CommentAdd Files…Add Folders…Add Wildcard…Add commentAdd directory to the listAdd files…Add folders…Add wildcard…Additional keywordsAdditional xgettext flags:AdvancedAdvanced Extraction Settings…Advanced extraction settingsAdvanced extraction settings…All Translation FilesAll commentsAlso use default keywords for supported languagesAlt+Always change focus to text input fieldAn item in input files list:An item in keywords list:AppearanceApplyAre you sure you want to delete the “%s” extractor?Are you sure you want to reset the translation memory?Automatically check for updatesAutomatically compile MO file when savingBackBase path:Beta versions contain the latest new features and improvements, but may be a bit less stable.Bring All to FrontBroken catalog file: plural form msgstr used without msgid_pluralBroken catalog file: singular form msgstr used together with msgid_pluralBrowseBy default, inaccurate results are filled in as well and marked as needing work. Check this option to only include accurate matches.C&atalogC&learCancelCannot create temporary directory.Cannot execute program: %sCapitalizeCatalogCatalog modified. Do you want to save changes?Catalog propertiesCatalogs &ManagerCatalogs &managerCatalogs ManagerChange UI languageCharset:Check Document NowCheck Grammar With SpellingCheck Spelling While TypingCheck for Updates…Check for errors in the translationCheck for updates…Check spellingClearClear TranslationClear the commentClear translationCloseCollaborate on a Translation with OthersCollaborate on a translation with othersCollecting source files…Command to extract translations:Comment:Comments prefixed with:Compile to MO…Compile to…Compiled Translation FilesConfigure source code extraction in Properties.ConfirmationCopyCopy From SingularCopy from Source TextCopy from singularCopy from source textCorrect Spelling AutomaticallyCouldn’t load file %s, it is probably corrupted.Couldn’t save file %s.Create New TranslationCreate new translationCreate new translations projectCrowdin errorCrowdin is an online localization management platform and collaborative translation tool. Poedit can seamlessly sync PO files managed at Crowdin.Ctrl+Cu&tCustom Extractors:Custom extractors:CutDatabase size on disk:DeleteDelete extractorDelete the projectDirectories:Display Entry &IDsDisplay entry &IDsDo you really want to do mass update of all catalogs in this project?Do you want to delete the project?Do you want to remove all translations that are no longer used?Don’t SaveDon’t Show AgainDon’t mark exact matches as needing workDon’t saveDon’t show againDownDownload a file from Crowdin project, translate and sync your changes back.Downloading latest translations…Downloading translations is disabled in this project.E&xitE&xport as HTML…EditEdit &CommentEdit &commentEdit CommentEdit a TranslationEdit a translationEdit commentEdit projectEdit the projectEditingEdit…Email:EnterEnter Full ScreenEntries in the catalog are probably incorrect.Entries in this catalog have different plural forms count from what catalog’s Plural-Forms header saysEntries with Errors FirstEntries with errors firstEntries with errors were marked in red in the list. Details of the error will be shown when you select such an entry.Error loading message catalog file “%s”.Error opening fileError opening file %s!Error saving catalogErrorsEverythingExcluded pathsExport as…Extract from sourcesExtract notes for translators from:Extract text from source files in the following directories:Extracting translatable strings…Extractor setupExtractorsFailed command: %sFailed to communicate with Poedit process.Failed to load extracted catalog.Failed to merge gettext catalogs.Failed to update translation memory: %sFileFile “%s” doesn’t exist.File “%s” is not a message catalog.File:Finalizing…FindFind NextFind PreviousFind and Replace…Find in commentsFind in source textsFind in translationsFind nextFind previousFix LanguageFix languageFix the HeaderFix the headerForm %iFrequentGNU gettextGeneralGo to Bookmark %iGo to bookmark %iHTML FilesHelpHide %sHide OthersHide SidebarHide Status BarHide this notification messageIDIf you continue with purging, all translations marked as deleted will be permanently removed. You will have to translate them again if they are added back in the future.Ignore caseImporting translations…Include beta versionsInformation about the translatorInstallInvalid fileInvocation:KeepLanguage Code or Name (e.g. en_GB)Language of the translation is the same as source language.Language of the translation isn’t set.Language of the translation:Language selectionLanguage team:Language:Last modifiedLearn About Gettext KeywordsLearn From Files…Learn MoreLearn More About CrowdinLearn about gettext keywordsLearn about plural formsLearn from files…Learn moreLearn more about CrowdinLeftLine %d of file “%s” is corrupted (not valid %s data).Line endings:List of extensions separated by semicolons (e.g. *.cpp;*.h):MO files can’t be directly edited in Poedit.Make Lower CaseMake Upper CaseMalformed header: “%s”Merging differences…MinimizeName of the project the translation is forName:Ne&xt UnfinishedNe&xt unfinishedNeeds WorkNeeds workNever let the list of strings take focus. If enabled, you must use Ctrl-arrows for keyboard navigation but you can also type text immediately, without having to press Tab to change focus.NewNew From &POT/PO File…New from &POT/PO file…New stringsNext Plural FormNext plural formNoNo Matches FoundNo entries could be pre-translated.No matches foundNo problems with the translation found.No references for the selected item.No translation projects listed in your Crowdin account.Not all plural forms are translated.Not authorized, please sign in again.Notes for translators:OKObsolete stringsOneOnly enable if you trust the quality of your TM. By default, all matches from the TM are marked as needing work and should be reviewed before use.Only fill in exact matchesOpenOpen Crowdin translationOpen From Crowdin…Open RecentOpen an existing PO file and edit the translation.Open catalogOpen catalog templateOpen from Crowdin…Open in EditorOpen in editorOpen...Open…OptionsOtherP&revious UnfinishedP&revious unfinishedPO TranslationPO Translation FilesPOT Translation TemplatesPOT files are only templates and don’t contain any translations themselves. To make a translation, create a new PO file based on the template.PastePaste and Match StylePathsPlease open and edit the corresponding PO file instead. When you save it, the MO file will be updated as well.Please save the file first. This section cannot be edited until then.PluralPlural forms expression used by the catalog is unusual for %s.Plural forms:Plural:PoeditPoedit - Catalogs managerPoedit automatically fixed invalid content in the file “%s”.Poedit can attempt to fill in new entries from only previous translations in the file or from your entire translation memory. Using the TM won’t be very effective if it’s near-empty, but it will get better as you add more translations to it.Poedit is an easy to use translations editor.Pre-&translate…Pre-translatePre-translatedPre-translated %u stringPre-translated %u stringsPre-translating…Pre-translation automatically finds exact or fuzzy matches for untranslated strings in the translation memory and fills in their translations.PreferencesPreferences...Preferences…Preserve formatting of existing filesPrevious Plural FormPrevious plural formPrevious source text:Project name and version:Project name:Project:PurgePurge deleted translationsQuitQuit %sRecentRedoReferences:RefreshRemaining: %dReplaceReplace &AllReplace &allReplacement stringReplace…Required header Plural-Forms is missing.ResetReset translation memoryResetting the translation memory will irrevocably delete all stored translations from it. You can’t undo this operation.ReviewRightSaveSave &As…Save &as…Save asSave as…Save catalogSave changesSelect &AllSelect AllSelect directorySelect translation files to importSelect your preferred languageServicesSet Bookmark %iSet LanguageSet bookmark %iSet languageShift+Show AllShow SidebarShow Spelling and GrammarShow Status BarShow SubstitutionsShow or hide the sidebarShow sidebarShow status barShow summary after catalog updateSidebarSign InSign OutSign inSign in to CrowdinSign outSigned in as:SingularSingular:Smart Copy/PasteSmart DashesSmart LinksSmart QuotesSort by &File OrderSort by &SourceSort by &TranslationSort by &file orderSort by &sourceSort by &translationSource code charset:Source code extractors are used to find translatable strings in the source code files and extract them so that they can be translated.Source code not available.Source fileSource file occurrence:Source textSource text — %sSource text:Sources KeywordsSources PathsSources keywordsSources pathsSpeechSpellchecking is disabled, because the dictionary for %s isn’t installed.Spelling and GrammarStart SpeakingStop SpeakingStored translations:String to findSubstitutionsSuggestionsSuggestions are not available if the translation language is not set correctly. Other features, such as plural forms, may be affected as well.Supports all programming languages recognized by GNU gettext tools (PHP, C/C++, C#, Perl, Python, Java, JavaScript and others).SyncSync with CrowdinSynchronize the translation with CrowdinSyncingSyncing errorSyncing with %s failed.Syncing with %s…Syncing with Crowdin failed.Syntax error in Plural-Forms header ("%s").TMTake an existing PO file or POT template and create a new translation from it.Take translatable strings from an existing POT template.Team name and email address or URLText ReplacementThe TM doesn’t contain any strings similar to the content of this file. It is only effective for semi-automatic translations after Poedit learns enough from files that you translated manually.The file cannot be compiled into the MO format and used.The file cannot be opened.The file contained duplicate items, which is not allowed in PO files and would prevent the file from being used. Poedit fixed the issue, but you should review translations of any items marked as needing work and correct them if necessary.The file may be either corrupted or in a format not recognized by Poedit.The file was compiled into the MO format, but it will probably not work correctly.The file was saved safely and compiled into the MO format, but it will probably not work correctly.The file was saved safely, but it cannot be compiled into the MO format and used.The file was saved safely.The old source text (before it changed during an update) that the now-inaccurate translation corresponds to.The simplest way to fill this catalog is to update it from a POT:The translation doesn’t start with a space.The translation ends with a newline, but the source text doesn’t.The translation ends with a space, but the source text doesn’t.The translation ends with “%s”, but the source text ends with “%s”.The translation is missing a newline at the end.The translation is missing a space at the end.The translation is ready for use, but %d entry is not translated yet.The translation is ready for use, but %d entries are not translated yet.The translation is ready for use.The translation should end with “%s”.The translation should not end with “%s”.The translation should start as a sentence.The translation should start with a lowercase character.The translation starts with a space, but the source text doesn’t.The translations were marked as needing work, because they may be inaccurate. You should review them for correctness.There are no translations. That’s unusual.There was a problem formatting the file nicely (but it was saved all right).There were errors when loading the catalog. Some data may be missing or corrupted as the result.These settings affect internal formatting of PO files. Adjust them if you have specific requirements e.g. because of version control.These strings are no longer in the sources. Poedit will remove them from the catalog now.These strings were found in the sources but were not in the catalog. Poedit will add them to the catalog now.This catalog has entries with plural forms, but doesn’t have Plural-Forms header configured.This file can only be edited in Crowdin’s web interface.This is the command used to launch the extractor. %o expands to the name of output file, %K to list of keywords, %F to list of input files, %C to charset flag (see below).This project has no files that can be translated in Poedit.This string was found in Poedit’s translation memory.This will be attached to the command line only if source code charset was given. %c expands to charset value.This will be attached to the command line once for each input file. %f expands to the filename.This will be attached to the command line once for each keyword. %k expands to the keyword.TotalTransformationsTranslated: %d of %d (%d %%)Translation LanguageTranslation MemoryTranslation Needs &WorkTranslation PropertiesTranslation needs &workTranslation propertiesTranslation suggestions:Translation — %sTranslation:Translations couldn’t be updated from the source code, because no code was found in the location specified in the catalog’s Properties.TwoUTF-8 (recommended)UndoUnhandled exception occurred: %sUnix (recommended)UntransUpUpdateUpdate allUpdate all catalogs in the projectUpdate catalog - synchronize it with sourcesUpdate from &POT File…Update from &POT file…Update from POTUpdate summaryUpdatesUpdating catalogUpdating failedUpdating the catalog failed. Click on 'Details >>' for details.Updating user information…Uploading translations…Use custom expressionUse custom list font:Use custom text fields font:Use default rules for this languageUse these keywords (function names) to recognize translatable strings in source files:Use translation memoryValidateValidation resultsVersion %sWaiting for authentication…Welcome to PoeditWhat is Crowdin?When updating from sourcesWhole words onlyWindowWindowsWrap aroundWrap at:YesYou can also extract translatable strings directly from the source code:You can’t drop more than one file on Poedit window.You must restart Poedit for this change to take effect.Your NameYour changes will be lost if you don’t save them.Your name and email address are only used to set the Last-Translator header of GNU gettext files.ZeroZoomaltctrldon’t delete temporary files (for debugging)e.g. nplurals=2; plural=(n > 1);fuzzy match within the filehandle a poedit:// URIpre-translate from TMshiftunknown languageyour_email@example.com“%s” is not a valid POT file.Project-Id-Version: poedit Report-Msgid-Bugs-To: help@poedit.net POT-Creation-Date: 2017-12-05 15:52+0100 PO-Revision-Date: 2017-07-27 03:14-0400 Last-Translator: vslavik Language-Team: Kazakh Language: kk_KZ MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=1; plural=0; X-Generator: crowdin.com X-Crowdin-Project: poedit X-Crowdin-Language: kk X-Crowdin-File: /locales/poedit.pot (түрлендірілген) (сақталмаған)%d жазба%d жазба алдын-ала аударылды.%d қатеАударма ішінен %d мәселе табылды.%i жол "%s" файлынан дұрыс жүктелмеген.%s пішімі%s баптаулары%s пішімі&Осы туралыPoedit т&уралыІске &асыру&Артқа&Бетбелгілер&Бас тарту&ТазартуЖа&бу&КөшіруӨ&шіруДа&йын және келесіДа&йын және келесі&Түзету&Файл&Табу…&GNU gettext нұсқаулығы&GNU gettext нұсқаулығыӨ&туКонтекст бойынша &топтауКонтекст бойынша &топтау&Көмек&Жаңа&Жаңа…&Келесі >&Келесі аударма&Келесі аударма&Жоқ&ОКЖе&лідегі көмекЖе&лідегі көмекА&шу...А&шу…&Кірістіру&Баптаулар&Баптаулар…&Алдыңғы аударма&Алдыңғы аудармаҚас&иеттері…Ө&шірілген аудармаларды жою&Өшірілген аудармаларды жою&ШығуҚа&йталауАлмасты&ру&СақтауҚалайша &сақтауБа&йланыстарды көрсетуБа&йланыстарды көрсету&БолдырмауАлд&ымен аударылмаған нәрселер Алд&ымен аударылмаған нәрселер &Бастапқы кодтан жаңарту&Бастапқы кодтардан жаңартуАудармаларды &тексеруАудармаларды &тексеруТү&рі&Иә(0 жаңа, 0 ескірген)(GNU gettext туралы көбірек білу)(Жаңа: %i, ескірген: %i)(Негізгі тілді қолдану)(Windows 8 немесе одан жаңасын талап етеді)< &АлдыңғыБумаларды осында тартып апарыңыз немесе + батырмасын қолданыңызБумаларды осында тартып апарыңыз немесе + батырмасын қолданыңыз<атаусыз>%s туралыТіркелгілерПікір қосуФайлдарды қосу…Бумаларды қосу…Шаблон бойынша қосу…Пікір қосуТізімге буманы қосуФайлдарды қосу…Бумаларды қосу…Шаблон бойынша қосу…Қосымша кілттік сөздерҚосымша xgettext жалаушалары:КеңейтілгенЭкстракторлардың кеңейтілген баптаулары…Экстракторлардың кеңейтілген баптауларыЭкстракторлардың кеңейтілген баптаулары…Барлық аудармалар файлдарыБарлық пікірлерСонымен қатар, үнсіз келісім бойынша кілтсөздерді қолдауы бар тілдер үшін қолдануAlt+Фокусты әрқашан мәтін енгізу жолына орнатуКіріс файлдар тізімінің біреуі:Кілт сөздер тізімінің біреуі:Сыртқы түріІске асыру"%s" экстракторын өшіруді шынымен қалайсыз ба?Аудармалар жадысын тастауды шынымен қалайсыз ба?Жаңартуларға автотексеруСақтағанда, MO файлын авто жасауАртқаНегізгі жолы:Бета нұсқаларында соңғы мүмкіндіктер және жақсартулар бар, бірақ, олар тұрақсыздау болуы мүмкін.Барлығын алдына әкелуКаталог файлы қате: msgstr көпше түрі msgid_plural нәрсесіз көрсетілгенКаталог файлы қате: msgstr жекеше түрі msgid_plural нәрсесімен бірге қолданылғанШолуҮнсіз келісім бойынша, дәлсіз нәтижелер де толтырылады, және жөндеу керек етіп белгіленеді. Тек дәл сәйкестіктерді қолдану үшін бұл опцияны іске қосыңыз.К&аталогТа&зартуБас тартуУақытша буманы жасау мүмкін емес.Бағдарламаны орындау мүмкін емес: %sБас әріппенКаталогКаталог түзетілген. Өзгерістерді сақтау керек пе?Каталог қасиеттеріКаталогтар &басқарушысыКаталогтар &басқарушысыКаталогтар басқарушысыБағдарлама тілін өзгертуКодтауы:Құжатты қазір тексеруГрамматиканы теру кезінде тексеріп отыруЕмлені теру кезінде тексеріп отыруЖаңартуларды тексеру…Аударманы қателерге тексеруЖаңартуларды тексеру…Емлені тексеруТазартуАударманы тазартуТүсіндірмені өшіруАударманы тазартуЖабуАудармаға басқалармен бірігіп қатысуАудармаға басқалармен бірігіп қатысуБастапқы код файлдарын жинау…Аудармаларды шығарып алу командасы:Түсіндірме:Пікірлер префиксі:MO файлына компиляциялау…Қалайша компиляциялау…Компиляцияланған аудармалар файлдарыБаптаулар ішінен бастапқы кодтан аудармаларды шығарып алуды баптаңыз.РастауКөшіруЖекеше түрден көшіріп алуБастапқы код мәтінінен көшіруЖекеше түрден көшіріп алуБастапқы код мәтінінен көшіруЕмлені автоматты түрде түзетіп отыру%s файлын жүктеу мүмкін емес, мүмкін ол зақымдалған.%s файлын сақтау мүмкін емес.Жаңа аударманы жасауЖаңа аударманы жасауЖаңа аудармалар жобасын жасауCrowdin қатесіCrowdin - бұл аударлмаларды басқарудың желілік платформасы және бірігіп аудару сайманы. Poedit Crowdin қызметінде орналасқан PO файлдарымен ыңғайлы түрде синхрондай алады.Ctrl+Қ&иып алуТаңдауыңызша экстракторлар:Таңдауыңызша экстракторлар:Қиып алуДерекқордың дискідегі өлшемі:ӨшіруЭкстракторды өшіруЖобаны өшіруБумалар:&Жолдар нөмірлерін көрсету&Жолдар нөмірлерін көрсетуБұл жобадағы барлық каталогтарды топтап жаңартуды шынымен қалайсыз ба?Жобаны өшіруді қалайсыз ба?Осыдан былай қолданылмайтын аудармаларды өшіруді қалайсыз ба?СақтамауКелесіде көрсетпеуДәл сәйкестіктерді жөндеу керек етіп белгілемеуСақтамауКелесіде көрсетпеуТөменФайлды Crowdin қызметінен жүктеп алып, оны аудару және өзгерістерді қайта синхрондау.Соңғы аудармаларды жүктеп алу…Бұл жобада аудармаларды жүктеп алу мүмкіндігі сөндірілген.&ШығуHTML ретінде э&кспорттау…ТүзетуТү&сіндірмені түзетуТү&сіндірмені түзетуТүсіндірмені түзетуАударманы түзетуАударманы түзетуТүсіндірмені түзетуЖобаны түзетуЖобаны түзетуӨңдеуТүзету…Пошта:EnterТолық экранға өтуКаталогтағы жазбалар қате сияқты.Бұл каталогтағы нәрселердің көпше түрлері каталогтың Plural-Forms өрісіндегі көрсетілген көпше түрінен өзгешеАлдымен қателері бар нәрселерАлдымен қателері бар нәрселерҚателері бар жолдар қызыл түспен белгіленді. Қате ақпараты ондай жол таңдалған кезде көрсетіледі."%s" хабарламалар каталог файлын жүктеу қатемен аяқталды.Файлды ашу қатесі%s файлын ашу қатемен аяқталды!Каталогты сақтау қатесіҚателерБарлығыЕлемейтін жолдарҚалайша экспорттау…Бастапқы кодтардан алуАудармашылар үшін пікірлерді қайдан алу:Келесі бумалардағы бастапқы код файлдарынан мәтінді алу:Аударуға келетін жолдарды шығару…Экстрактор баптауларыЭкстракторларСәтсіз команда: %sPoedit үрдісімен байланысу қатесі.Тарқатылған каталогты жүктеу сәтсіз аяқталды.Gettext каталогтарын біріктіру сәтсіз аяқталды.Аудармалар жадысын жаңарту сәтсіз аяқталды: %sФайл"%s" файлы жоқ болып тұр."%s" файлы хабарламалар каталогы емес.Файл:Аяқтау…ТабуКелесіАлдыңғыТабу және алмастыру…Түсіндірмелер ішінен іздеуБастапқы мәтіндерден табуАудармалардан табуКелесіАлдыңғыТілді түзетуТілді түзетуТақырыптаманы дұрыстауӨрісті дұрыстауПішім %iЖиі қолданылатынGNU gettextЖалпыБетбелгі № %i бойынша өтуБетбелгі № %i бойынша өтуHTML файлдарыКөмек%s жасыруҚалғанын жасыруБүйір панелін жасыруҚалып-күй жолағын жасыруБұл хабарламаны жасыруIDЖоюды таңдасаңыз, өшірілген деп белгіленген барлық аудармалар өшірілетін болады. Олар болашақта қайта қосылса, оларды қайта аударуға керек болады.Регистрді елемеуАудармаларды импорттау…Бета нұсқаларын қосаАудармашы жөніндегі ақпаратОрнатуЖарамсыз файлШақыру:ҰстауТіл коды немесе аты (мыс., kk_KZ)Аударма тілі бастапқы тілмен бірдей.Аударма тілі әлі көрсетілмеген.Аударманың тілі:Тілді таңдауТілдік топ:Тіл:Соңғы рет өзгертілгенGettext кілттік сөздері туралы көбірек біліңізФайлдардан үйрету…Көбірек білуCrowdin туралыGettext кілттік сөздері туралы көбірек біліңізКөпше түрлері жөнінде білуФайлдардан үйрету…Көбірек білуCrowdin туралыСол жақЖол %d, "%s" файлында, зақымдалған (жарамсыз %s дерегі).Жол аяқтаулары:Нүктелі үтірмен ажыратылған кеңейтулер тізімі (мыс. *.cpp;*.h):MO файлдарын Poedit ішінде түзетуге болмайды.Кіші әріпті қылуБас әріпті қылуЖарамсыз тақырыптама: "%s"Өзгерістерді біріктіру…БүктеуКелесі үшін аударма жобасының аталуыАты:Келе&сі аяқталмағанКеле&сі аяқталмағанЖөндеу керекЖөндеу керекЖолдарға фокус алуға тыйым салу. Қосулы тұрса, пернетақта навигациясы үшін Ctrl мен жақтар пернелерін қолдануғы тиістісіз, бірақ мәтінді тере аласыз, фокусты алу үшін Tab пернесін басу керек емес.ЖаңаPOT/PO &файлынан жаңа…POT/PO &файлынан жаңа…Жаңа жолдарКелесі көпше түріКелесі көпше түріЖоқСәйкестік табылмадыБірде-бір жазбаны алдын-ала аудару мүмкін емес.Сәйкестік табылмадыАудармалар мәселелері табылмады.Таңдалған нәрселерге сілтемелер жоқ.Сіздің Crowdin тіркелгіңізде бірде-бір жоба тіркелмеген.Көпше түрлер толығымен аударылмаған.Авторизацияланбаған, қайтадан кіріңіз.Аудармашылар үшін ескертулер:ОКЕскірген жолдарБірӨзіңіздің АЖ сапасына сенімді болсаңыз ғана іске қосыңыз. Үнсіз келісім бойынша, АЖ ішінен келген барлық сәйкестіктер жөндеу керек ретінде белгіленеді және оларды қолдану алдында тексеру керек болады.Тек дәл сәйкестіктерді толтыруАшуАударманы Crowdin-да ашуCrowdin сайтынан ашу…Соңғысын ашуБар болып тұрған PO файлын ашып, аударманы түзету.Каталогты ашуКаталог шаблонын ашуCrowdin сайтынан ашу…Түзеткіште ашуТүзеткіште ашуАшу...Ашу…ОпцияларБасқаАлдыңғ&ы аяқталмағанАлдыңғ&ы аяқталмағанPO аудармасыPO аударма файлдарыPOT аударма үлгілеріPOT файлдары тек үлгілер, олардың ішінде аудармалар жоқ. Аударманы жасау үшін, үлгі негізінде жаңа PO файлын жасаңыз.КірістіруКірістіру және сәйкестендіру стиліЖолдарОрнына сәйкес PO файлын ашып, түзетіңіз. Оны сақтаған кезде, MO файлы да жаңартылады.Алдымен файлды сақтаңыз. Оған дейін бұл санатты түзету мүмкін емес.КөпшеКаталог қолданатын көпше түрлерінің өрнегі %s үшін тән емес.Көпше түрлері:Көпше:PoeditPoedit - каталогтарды басқаруPoedit "%s" файлындағы жарамсыз құраманы автотүзеткен.Poedit жаңа жолдарды тек файлдың алдыңғы аудармаларынан, немесе сіздің аудармалар жадысынан толтыру талабын жасай алады. Аудармалар жадысы бос болған кезде оны қолдану пайдасы аз, бірақ, оған жаңа аудармаларды қосқан кезде, пайдасы арта түседі.Poedit - қолдануға ыңғайлы аудармалар түзетушісі.Алдын-ала ау&дару…Алдын-ала аударуАлдын-ала аударылған%u жол алдын-ала аударылғанАлдын-ала аудару…Алдын-ала аудару әрекеті аудармалар жадысынан аудармалары әлі жоқ жолдар үшін дәл немесе дәлсіз сәйкестіктерді тауып, олардың аудармаларын толтырады.БаптауларБаптаулар...Баптаулар…Бар болып тұрған файлдардың пішімдеуін сақтап отыруАлдыңғы көпше түріАлдыңғы көпше түріБастапқы кодтың алдыңғы нұсқасы:Жоба аты мен нұсқасы:Жоба аты:Жоба:ТазартуӨшірілген аудармаларды жоюШығу%s шығуЖуырдағыҚайталауСілтеулер:ЖаңартуҚалды: %dАлмастыруБ&арлығын алмастыруБ&арлығын алмастыруАлмастыру жолыАлмастыру…Міндетті Plural-Forms тақырыптамасы жоқ.ТастауАудармалар жадысын тастауАудармалар жадысын тастау әрекеті одан барлық сақталған аудармаларды қайтармастай өшіреді. Бұл әрекетті болдырмау мүмкін емес болады.ТексеруОң жақСақтауҚала&йша сақтау…Қала&йша сақтау…Қалайша сақтауҚалайша сақтау…Каталогты сақтауӨзгерістерді сақтауБ&арлығын таңдауБарлығын таңдауБуманы таңдауИмпорттау үшін аудармалар файларын таңдаңызӨз тіліңізді таңдаңызҚызметтерБетбелгі № %i орнатуТілді орнатуБетбелгі № %i орнатуТілді орнатуShift+Барлығын көрсетуБүйір панелін көрсетуЕмлені тексеру және грамматиканы көрсетуҚалып-күй жолағын көрсетуАлмастыруларды көрсетуБүйір панелін көрсету/жасыруБүйір панелді көрсетуҚалып-күй жолағын көрсетуКаталогты жаңартудан кейін жалпы ақпаратты көрсетуБүйір панеліЖүйеге кіруШығуКіруCrowdin-ға кіруШығуСіз:ЖекешеЖекеше:Ақылды көшіріп алу/кірістіруАқылды дефистерАқылды сілтемелерАқылды тырнақшалар&Файлдар реті бойынша сұрыптауБа&стапқы коды бойынша сұрыптауАудар&ма бойынша сұрыптау&Файлдар реті бойынша сұрыптауБа&стапқы коды бойынша сұрыптауАудар&ма бойынша сұрыптауБастапқы код кодталуы:Бастапқы кодтар экстракторлары бастапқы кодтар файлдарынан аударуға келетін жолдарды табу және аудару үшін шығарып алуға қолданылады.Бастапқы коды қолжетерсіз.Бастапқы код файлыБастапқы код файлында кездесу:Бастапқы код мәтініБастапқы мәтін — %sБастапқы код мәтіні:Бастапқы код кілт сөздеріБастапқы кодтар орналасу жолдарыБастапқы код кілт сөздеріБастапқы кодтар орналасу жолдарыСөйлеуЕмлені тексеру сөндірілген, өйткені %s тілі үшін сөздік орнатылмаған.Емлені тексеру және грамматикаСөйлеуді бастауСөйлеуді аяқтауСақталған аудармалар:Ізделінетін жолАлмастыруларҰсыныстарАударма тілі дұрыс көрсетілмеген болса, ұсыныстар қолжетерсіз болады. Көпше түрлер сияқты, басқа да мүмкіндіктерге кері әсер тиюі мүмкін.GNU gettext саймандары танитын барлық бағадарламалау тілдерін қолдайды (PHP, C/C++, C#, Perl, Python, Java, JavaScript және басқалары).СинхрондауCrowdin қызметімен синхрондауАударманы Crowdin қызметімен синхрондауСинхрондауСинхрондау қатесі%s қызметімен синхрондау сәтсіз аяқталды.%s қызметімен синхрондау…Crowdin қызметімен синхрондау сәтсіз аяқталды.Plural-Forms өрісіндегі синтаксис қатесі ("%s").TMБар болып тұрған PO файлын немесе POT үлгісін алып, одан жаңа аударманы жасау.Аударуға келетін жолдарды тікелей бар болып тұрған POT үлгісінен алу.Топ аты және эл. пошта адресі немесе сілтемесіМәтінді алмастыруАудармалар жадысынан бұл файлдың құрамасына ұқсайтын жолдар табылмады. Poedit сіз қолмен аударған файлдардан жеткілікті ақпарат жинағаннан кейін ғана бұл жартылай автоматты аудармалар үшін пайдалы болады.Файлды MO пішіміне компиляцилау және қолдану мүмкін емес.Файлды ашу мүмкін емес.Бұл файлда қайталанатын жазбалар болды, ол PO файлдарында рұқсат етілмейді, және файлды қолдануға жол бермейді. Poedit мәселені шешті, бірақ, жөндеу керек етіп белгіленген барлық жазбаларды қарап шығыңыз және керек болса, түзетіңіз.Бұл файл не зақымдалған, не оның пішімін Poedit түсінбейді.Файл MO пішіміне сәтті компиляцияланды, бірақ, ол дұрыс жасамайтын сияқты.Файл сәтті сақталды және MO пішіміне компиляцияланды, бірақ, ол дұрыс жасамайтын сияқты.Файл қаупсіз сақталды, бірақ оны MO пішіміне түрлендіру мен қолдануға болмайды.Файл сәтті сақталды.Дәлсіз аударма сәйкес келетін ескі бастапқы код мәтіні (жаңарту кезінде өзгергенге дейін).Бұл каталогты толтырудың ең оңай жолы - оны POT файлынан жаңарту:Аударма бос аралықтан басталып тұрған жоқ.Аударма жол тасымалдаумен аяқталады, ал, қайнар көз хабарламасы оған аяқталмайды.Аударма бос аралықпен аяқталады, ал, қайнар көз хабарламасы онымен аяқталмайды.Аударма "%s" мәнімен аяқталады, ал қайнар көз хабарламасы "%s" мәнімен аяқталады.Аударма соңында жол тасымалдауы жетпейді.Аударма соңында бос аралық жетпейді.Аударма қолдануға дайын, бірақ, %d жазба әлі аударылмаған.Аударма қолдануға дайын.Аударма "%s" мәнімен аяқталуы тиіс.Аударма "%s" мәнімен аяқталмауы тиіс.Аударма сөйлем ретінде басталуы тиіс.Аударма кіші әріптен басталуы тиіс.Аударма бос аралықтан басталады, ал, қайнар көз хабарламасы одан басталмайды.Аудармалар толық сәйкес болмауы мүмкін себебінен жөндеу керек етіп белгіленді. Олардың дұрыстығын тексеруіңіз керек.Аудармалар жоқ. Бұл әдепкі жағдай емес сияқты.Файлды жақсы пішімдеу кезінде қате кетті (бірақ ол файл сәтті сақталды).Каталогты жүктеген кезде қателер орын алған. Кейбір ақпарат жоқ не зақымдалған болуы мүмкін.Бұл баптаулар PO файлдарының ішкі құрылымына әсер етеді. Сізде арнайы талаптар болса ғана оларды өзгертіңіз, мысалы, нұсқаларды басқару жүйелерді қолдансаңыз.Бұл жолдар бастапқы кодтарда енді жоқ. Poedit оларды каталог ішінен қазір өшіреді.Бұл жолдар бастапқы кодтардан табылды, бірақ каталогта жоқ. Poedit оларды каталог ішіне қазір қосады.Бұл каталогта көпше түрі бар жолдар бар, бірақ каталогтың Plural-Forms өрісі бапталмаған.Бұл файлды тек Crowdin веб интерфейсінде өңдеуге болады.Бұл - экстракторды жөнелту үшін қолданылатын команда. %o шығыс файл атын, %K кілттік сөздер тізімін, %F кіріс файлдар тізімін, ал, %C - кодталу жалаушасын (төменде қараңыз) білдіреді.Бұл жобада Poedit ішінде аударуға болатын файлдар жоқ.Бұл жол Poedit-тің аудармалар жадысы ішінен табылды.Бұл жол бастапқы кодталу көрсетсе ғана командалық жолға қосылады. %c кодталу мәнімен алмастырылады.Бұл жол әр кіріс файлы үшін командалық жолына қосылады. %f - файл атымен алмастырылады.Бұл жол әр кілт сөзі үшін командалық жолына қосылады. %k - кілт сөзімен алмастырылады.ЖалпыТүрлендірулерАударылды: %d, барлығы %d (%d %%)Аударманың тіліАудармалар жадысыАударма өң&деуді талап етедіАударма қасиеттеріАударма өң&деуді талап етедіАударма қасиеттеріАудармаға ұсынылатын нұсқалар:Аударма — %sАударма:Аудармаларды бастапқы кодтардан жаңарту мүмкін емес, өйткені каталог баптауларында көрсетілген орында бастапқы кодтар табылмады.ЕкіUTF-8 (ұсынылады)БолдырмауӨңделмеген ережеден тыс жағдай орын алды: %sUnix (ұсынылады)АударылмағанЖоғарыЖаңартуБарлығын жаңартуЖобадағы барлық каталогтарды жаңартуКаталогты жаңарту - бастапқы кодтармен синхронизацияPOT &файлынан жаңарту…POT &файлынан жаңарту…POT файлынан жаңартуЖаңарту ақпаратыЖаңартуларКаталогты жаңартуЖаңарту сәтсіз аяқталдыКаталогты жаңарту сәтсіз аяқталды. Ақпарат үшін 'Көбірек>>' шертіңіз.Пайдаланушы ақпаратын жаңарту…Аудармаларды жүктеу…Таңдауыңызша өрнекті қолдануТаңдауыңызша тізім қарібін қолдану:Таңдауыңызша мәтіндік өрістер қарібін қолдану:Бұл тіл үшін үнсіз келісім ережелерін қолдануКелесі кілт сөздерді (функциялар аттары) бастапқы кодтарда аударылатын жолдарды тану үшін қолдану:Аудармалар жадысын қолдануТексеруТексеру нәтижелеріНұсқасы %sАутентификацияны күту…Poedit-ке қош келдіңізCrowdin деген не?Бастапқы кодтардан жаңарту кезіндеТек толық сөздерТерезеWindowsСоңына жеткенде басына апаруТасымалдау:ИәСонымен қатар, сіз аударуға келетін жолдарды тікелей бастапқы кодтардан шығара аласыз:Сіз Poedit терезесіне бірден көп файлды тартып апара алмайсыз.Өзгерістерді іске асыру үшін Poedit-ті қайта іске қосыңыз.Сіздің атыңызӨзгерістерді сақтамасаңыз, олар жоғалады.Сіздің атыңыз мен эл. пошта адресіңіз тек қана GNU gettext файлдарындағы Last-Translator жолы үшін керек.НөлМасштабaltctrlуақытша файлдарды өшірмеу (жөндеу режимі үшін пайдалы)мыс., nplurals=1; plural=0;файл ішінен дәлсіз сәйкестендіруpoedit:// URI-ін талдауАЖ ішінен алдын-ала аударуshiftтіл белгісізyour_email@example.com"%s" - дұрыс POT файлы емес.poedit-2.0.6/locales/Makefile.am0000664000372000037200000000553413230131554013406 00000000000000 POEDIT_LINGUAS = an ar az be be@latin bg bs ca ckb co cs da de el en_GB es et eu fa fi fr ga gl he hr hu hy id is it ja ka kab kk ko lt lv ms nb nl oc pa pl pt_BR pt_PT ro ru sk sl sq sr sv tg th tr uk uz vi zh_CN zh_TW localedir = $(datadir)/locale install-data-local: install-poedit-catalogs install-poedit-catalogs: for i in $(POEDIT_LINGUAS) ; do \ $(mkinstalldirs) $(DESTDIR)$(localedir)/$$i/LC_MESSAGES ; \ $(INSTALL_DATA) $(srcdir)/$$i.mo $(DESTDIR)$(localedir)/$$i/LC_MESSAGES/poedit.mo ; \ done uninstall-local: rm -rf $(DESTDIR)$(localedir)/*/LC_MESSAGES/poedit.mo # ---------------------------------------------------------------------------- # Logic for catalogs updating follows # (shamelessly stolen from wxWidgets makefile): # ---------------------------------------------------------------------------- # the programs we use (TODO: use configure to detect them) MSGFMT=msgfmt --verbose --check MSGMERGE=msgmerge XGETTEXT=xgettext XARGS=xargs # common xgettext args: C++ syntax, use the specified macro names as markers XGETTEXT_ARGS=-C -k_ -kwxGetTranslation -kwxTRANSLATE -kwxPLURAL:1,2 -F -j \ --add-comments=TRANSLATORS \ --from-code=UTF-8 \ --package-name=Poedit --package-version=$(PACKAGE_SHORT_VERSION) \ --msgid-bugs-address=help@poedit.net # implicit rules %.mo: %.po $(MSGFMT) -o $@ $< # a PO file must be updated from poedit.pot include new translations %.po: $(srcdir)/poedit.pot if [ -f $@ ]; then $(MSGMERGE) --previous $@ $(srcdir)/poedit.pot > $@.new && mv $@.new $@; else cp $(srcdir)/poedit.pot $@; fi $(srcdir)/sr_RS@latin.po: $(srcdir)/sr.po recode-sr-latin <$< >$@ $(srcdir)/poedit.pot: touch $@ (cd $(srcdir) ; find ../src -name "*.h" | $(XARGS) $(XGETTEXT) $(XGETTEXT_ARGS) -o poedit.pot) (cd $(srcdir) ; find ../src -name "*.cpp" | $(XARGS) $(XGETTEXT) $(XGETTEXT_ARGS) -o poedit.pot) (cd $(srcdir) ; $(WXRC) --gettext ../src/resources/*.xrc | $(XGETTEXT) $(XGETTEXT_ARGS) -o poedit.pot -) allpo: force-update @-for t in $(POEDIT_LINGUAS); do $(MAKE) $(srcdir)/$$t.po; done allmo: @for t in $(POEDIT_LINGUAS); do $(MAKE) $(srcdir)/$$t.mo; done force-update: $(RM) $(srcdir)/poedit.pot # print out the percentage of the translated strings stats: @for i in $(POEDIT_LINGUAS); do \ x=`$(MSGFMT) -o /dev/null "$(srcdir)/$$i.po" 2>&1 | sed -e 's/[,\.]//g' \ -e 's/\([0-9]\+\) translated messages\?/TR=\1/' \ -e 's/\([0-9]\+\) fuzzy translations\?/FZ=\1/' \ -e 's/\([0-9]\+\) untranslated messages\?/UT=\1/'`; \ TR=0 FZ=0 UT=0; \ eval $$x; \ TOTAL=`expr $$TR + $$FZ + $$UT`; \ echo "\"$$i\" => \"`expr 100 "*" $$TR / $$TOTAL`\", /* $$TOTAL strings */"; \ done #echo "$$i.po `expr 100 "*" $$TR / $$TOTAL`% of $$TOTAL strings"; dist-hook: allmo cp -a $(srcdir)/*.pot $(srcdir)/*.po $(srcdir)/*.mo $(distdir) .PHONY: allpo allmo force-update stats FORCE poedit-2.0.6/locales/be.mo0000664000372000037200000017627513230132075012307 00000000000000P%1 1 11<11J 2gW2 22 22 222 3333%3+333B3Q3W3]3f3z333333333333 3 44 4)4 04=4M4c4y44444444445 5(5D5Y5n55555555 6 '6:36:n6 666 6 666 6 7 #707?7O7c7~77777 71898'>8f88 8878689)=9g9 l9]w99A9I*:t:{:; ;;";:; U;`;.h;;;;;;;;<*<F<#[<<<<<<<<(<(=7= R=s=|== ==/= = >>#>9>L>b>2>>>>> ?)???????@@@ 2@?@R@Ee@"@?@ AA*.A YAfAyAK~A"A5A#B)BHAH HHI 'IHI PI ]IiI"nI;I(IIJ&J 5J ?JMJjJ ~JJJJJ JJK:K PK<^K.KKKKLL*%LPLVLgL xL LLJMNMgM MMMMM#MM'M$N7DN$|N%NNNNNNOOOO O2O P#P9PNP]PlPtP|PPPPPPPPQQQnQERZR>aR RRRR@RS-T~>~00D$u$ &2*/9ZJ߀kká  'B]z'ۂ0)Dn30ƒ3&'NjT=[7х Z`QTS [f}8/xh o>zɊۊGE6!|;'$$6#[,#9;*ZL*ҍ#!!2!T!v>/18H7(ˏ8kJϐ=. =O.<S0M*~*9Ԓ%66K/Ô%Ԕ-*-Xk;u. pݖN f;ZX & %7]}%!Ù!"0S7YGٚLL3Z)*.2ޝ ' G+hAb֞89#r4AI$EnP"U1 DNfu!%$ݢ/$2W!w%ѣ%  + 8D)U) Ƥؤ*$BB3#0;.M| 1̧J6I* ܨH#Os,HI#Qu, Z˪ &rGa;7X1&¬3.(6(_!!̭!!į774l.qb.?2ErhL!Wn/Ʋ  !l,N'*<Mg,ӵ$$Bgy **Ͷ %8^M1^ H % Ǻպ,ܺ` jaw#ٽ;;ɾ ,<IL99- *8c ~6 (9PazJ 0J. AN_y!1NQ,  6NU,mV&@8,y&P: IVe B//@/p&.0&'.N0}/,5 V p9+9+Lx|9@!`& '8)6=`!BT(Xu_AWw +98yI~4;pq =}to0gfCos<'8d<RV-[HErCg5zEZ 6A\*4_!{G)?)O$yD%= ]hy7j&4&[%*H(BAW^^;>n(-E-`"U]3`C I.J-Xx)D@FbBzD}],6 9BW6tC3H>C'# )h?*Kq#-0^aG2zFYblx&2LADZ.EwPi=Ab[kv @4uh~ uL@|pnf.nTN? QI2:qOKcajd F!p ]U>T+rXi=J%Vxz51^s4 NH/F"8/XJ`om #UwQk :Gs$ 8jL!~I1,(<D-9B>|;$H(E?g<y!dYgIo \ <eN+rM5&cM5 :"K-A+EmZ7C"603B $%RfRVeyOG*S@ M,4}_{O%W91J)S[`' 7)v &;*{(l_.03=\7P8/t';P (modified) (unsaved)%d entry%d entries%d entry was pre-translated.%d entries were pre-translated.%d error%d errors%d issue with the translation found.%d issues with the translation found.%i line of file “%s” was not loaded correctly.%i lines of file “%s” were not loaded correctly.%s Format%s Preferences%s format&About&About Poedit&Apply&Back&Bookmarks&Cancel&Clear&Close&Copy&Delete&Done and Next&Done and next&Edit&File&Find…&GNU gettext Manual&GNU gettext manual&Go&Group By Context&Group by context&Help&New&New…&Next >&Next Translation&Next translation&No&OK&Online Help&Online help&Open...&Open…&Paste&Preferences&Preferences…&Previous Translation&Previous translation&Properties…&Purge Deleted Translations&Purge deleted translations&Quit&Redo&Replace&Save&Save as&Show References&Show references&Undo&Untranslated Entries First&Untranslated entries first&Update from Sources&Update from sources&Validate Translations&Validate translations&View&Yes(0 new, 0 obsolete)(Learn more about GNU gettext)(New: %i, obsolete: %i)(Use default language)(requires Windows 8 or newer)< &PreviousDrag and Drop Folders Here or use the + buttonDrag and drop folders here or use the + buttonAbout %sAccountsAdd CommentAdd Files…Add Folders…Add Wildcard…Add commentAdd directory to the listAdd files…Add folders…Add wildcard…Additional keywordsAdditional xgettext flags:AdvancedAdvanced Extraction Settings…Advanced extraction settingsAdvanced extraction settings…All Translation FilesAll commentsAlso use default keywords for supported languagesAlt+Always change focus to text input fieldAn item in input files list:An item in keywords list:AppearanceApplyAre you sure you want to delete the “%s” extractor?Are you sure you want to reset the translation memory?Automatically check for updatesAutomatically compile MO file when savingBackBase path:Beta versions contain the latest new features and improvements, but may be a bit less stable.Bring All to FrontBroken catalog file: plural form msgstr used without msgid_pluralBroken catalog file: singular form msgstr used together with msgid_pluralBrowseBy default, inaccurate results are filled in as well and marked as needing work. Check this option to only include accurate matches.C&atalogC&learCancelCannot create temporary directory.Cannot execute program: %sCapitalizeCatalogCatalog modified. Do you want to save changes?Catalog propertiesCatalogs &ManagerCatalogs &managerCatalogs ManagerChange UI languageCharset:Check Document NowCheck Grammar With SpellingCheck Spelling While TypingCheck for Updates…Check for errors in the translationCheck for updates…Check spellingClearClear TranslationClear the commentClear translationCloseCollaborate on a Translation with OthersCollaborate on a translation with othersCollecting source files…Command to extract translations:Comment:Comments prefixed with:Compile to MO…Compile to…Compiled Translation FilesConfigure source code extraction in Properties.ConfirmationCopyCopy From SingularCopy from Source TextCopy from singularCopy from source textCorrect Spelling AutomaticallyCouldn’t load file %s, it is probably corrupted.Couldn’t save file %s.Create New TranslationCreate new translationCreate new translations projectCrowdin errorCrowdin is an online localization management platform and collaborative translation tool. Poedit can seamlessly sync PO files managed at Crowdin.Ctrl+Cu&tCustom Extractors:Custom extractors:CutDatabase size on disk:DeleteDelete extractorDelete the projectDirectories:Display Entry &IDsDisplay entry &IDsDo you really want to do mass update of all catalogs in this project?Do you want to delete the project?Do you want to remove all translations that are no longer used?Don’t SaveDon’t Show AgainDon’t mark exact matches as needing workDon’t saveDon’t show againDownDownload a file from Crowdin project, translate and sync your changes back.Downloading latest translations…Downloading translations is disabled in this project.E&xitE&xport as HTML…EditEdit &CommentEdit &commentEdit CommentEdit a TranslationEdit a translationEdit commentEdit projectEdit the projectEditingEdit…Email:EnterEnter Full ScreenEntries in the catalog are probably incorrect.Entries in this catalog have different plural forms count from what catalog’s Plural-Forms header saysEntries with Errors FirstEntries with errors firstEntries with errors were marked in red in the list. Details of the error will be shown when you select such an entry.Error loading message catalog file “%s”.Error opening fileError opening file %s!Error saving catalogErrorsEverythingExcluded pathsExport as…Extract from sourcesExtract notes for translators from:Extract text from source files in the following directories:Extracting translatable strings…Extractor setupExtractorsFailed command: %sFailed to communicate with Poedit process.Failed to load extracted catalog.Failed to merge gettext catalogs.Failed to update translation memory: %sFileFile “%s” doesn’t exist.File “%s” is not a message catalog.File “%s” is read-only and cannot be saved. Please save it under different name.File:Finalizing…FindFind NextFind PreviousFind and Replace…Find in commentsFind in source textsFind in translationsFind nextFind previousFix LanguageFix languageFix the HeaderFix the headerForm %iFrequentGNU gettextGeneralGo to Bookmark %iGo to bookmark %iHTML FilesHelpHide %sHide OthersHide SidebarHide Status BarHide this notification messageIDIf you continue with purging, all translations marked as deleted will be permanently removed. You will have to translate them again if they are added back in the future.Ignore caseImporting translations…Include beta versionsInformation about the translatorInstallInvalid fileInvocation:KeepLanguage Code or Name (e.g. en_GB)Language of the translation is the same as source language.Language of the translation isn’t set.Language of the translation:Language selectionLanguage team:Language:Last modifiedLearn About Gettext KeywordsLearn From Files…Learn MoreLearn More About CrowdinLearn about gettext keywordsLearn about plural formsLearn from files…Learn moreLearn more about CrowdinLeftLine %d of file “%s” is corrupted (not valid %s data).Line endings:List of extensions separated by semicolons (e.g. *.cpp;*.h):MO files can’t be directly edited in Poedit.Make Lower CaseMake Upper CaseMalformed header: “%s”Merging differences…MinimizeName of the project the translation is forName:Ne&xt UnfinishedNe&xt unfinishedNeeds WorkNeeds workNever let the list of strings take focus. If enabled, you must use Ctrl-arrows for keyboard navigation but you can also type text immediately, without having to press Tab to change focus.NewNew From &POT/PO File…New from &POT/PO file…New stringsNext Plural FormNext plural formNoNo Matches FoundNo entries could be pre-translated.No matches foundNo problems with the translation found.No references for the selected item.No translation projects listed in your Crowdin account.Not all plural forms are translated.Not authorized, please sign in again.Notes for translators:OKObsolete stringsOneOnly enable if you trust the quality of your TM. By default, all matches from the TM are marked as needing work and should be reviewed before use.Only fill in exact matchesOpenOpen Crowdin translationOpen From Crowdin…Open RecentOpen an existing PO file and edit the translation.Open catalogOpen catalog templateOpen from Crowdin…Open in EditorOpen in editorOpen...Open…OptionsOtherP&revious UnfinishedP&revious unfinishedPO TranslationPO Translation FilesPOT Translation TemplatesPOT files are only templates and don’t contain any translations themselves. To make a translation, create a new PO file based on the template.PastePaste and Match StylePathsPlease open and edit the corresponding PO file instead. When you save it, the MO file will be updated as well.Please save the file first. This section cannot be edited until then.PluralPlural forms expression used by the catalog is unusual for %s.Plural forms:Plural:PoeditPoedit - Catalogs managerPoedit automatically fixed invalid content in the file “%s”.Poedit can attempt to fill in new entries from only previous translations in the file or from your entire translation memory. Using the TM won’t be very effective if it’s near-empty, but it will get better as you add more translations to it.Poedit is an easy to use translations editor.Pre-&translate…Pre-translatePre-translatedPre-translated %u stringPre-translated %u stringsPre-translating…Pre-translation automatically finds exact or fuzzy matches for untranslated strings in the translation memory and fills in their translations.PreferencesPreferences...Preferences…Preserve formatting of existing filesPrevious Plural FormPrevious plural formPrevious source text:Project name and version:Project name:Project:PurgePurge deleted translationsQuitQuit %sRecentRedoReferences:RefreshRemaining: %dReplaceReplace &AllReplace &allReplacement stringReplace…Required header Plural-Forms is missing.ResetReset translation memoryResetting the translation memory will irrevocably delete all stored translations from it. You can’t undo this operation.ReviewRightSaveSave &As…Save &as…Save asSave as…Save catalogSave changesSelect &AllSelect AllSelect directorySelect translation files to importSelect your preferred languageServicesSet Bookmark %iSet LanguageSet bookmark %iSet languageShift+Show AllShow SidebarShow Spelling and GrammarShow Status BarShow SubstitutionsShow or hide the sidebarShow sidebarShow status barShow summary after catalog updateSidebarSign InSign OutSign inSign in to CrowdinSign outSigned in as:SingularSingular:Smart Copy/PasteSmart DashesSmart LinksSmart QuotesSort by &File OrderSort by &SourceSort by &TranslationSort by &file orderSort by &sourceSort by &translationSource code charset:Source code extractors are used to find translatable strings in the source code files and extract them so that they can be translated.Source code not available.Source fileSource file occurrence:Source textSource text — %sSource text:Sources KeywordsSources PathsSources keywordsSources pathsSpeechSpellchecking is disabled, because the dictionary for %s isn’t installed.Spelling and GrammarStart SpeakingStop SpeakingStored translations:String to findSubstitutionsSuggestionsSuggestions are not available if the translation language is not set correctly. Other features, such as plural forms, may be affected as well.Supports all programming languages recognized by GNU gettext tools (PHP, C/C++, C#, Perl, Python, Java, JavaScript and others).SyncSync with CrowdinSynchronize the translation with CrowdinSyncingSyncing errorSyncing with %s failed.Syncing with %s…Syncing with Crowdin failed.Syntax error in Plural-Forms header ("%s").TMTake an existing PO file or POT template and create a new translation from it.Take translatable strings from an existing POT template.Team name and email address or URLText ReplacementThe TM doesn’t contain any strings similar to the content of this file. It is only effective for semi-automatic translations after Poedit learns enough from files that you translated manually.The catalog couldn’t be saved in “%s” charset as specified in catalog settings. It was saved in UTF-8 instead and the setting was modified accordingly.The file cannot be compiled into the MO format and used.The file cannot be opened.The file contained duplicate items, which is not allowed in PO files and would prevent the file from being used. Poedit fixed the issue, but you should review translations of any items marked as needing work and correct them if necessary.The file may be either corrupted or in a format not recognized by Poedit.The file was compiled into the MO format, but it will probably not work correctly.The file was saved safely and compiled into the MO format, but it will probably not work correctly.The file was saved safely, but it cannot be compiled into the MO format and used.The file was saved safely.The old source text (before it changed during an update) that the now-inaccurate translation corresponds to.The simplest way to fill this catalog is to update it from a POT:The translation doesn’t start with a space.The translation ends with a newline, but the source text doesn’t.The translation ends with a space, but the source text doesn’t.The translation ends with “%s”, but the source text ends with “%s”.The translation is missing a newline at the end.The translation is missing a space at the end.The translation is ready for use, but %d entry is not translated yet.The translation is ready for use, but %d entries are not translated yet.The translation is ready for use.The translation should end with “%s”.The translation should not end with “%s”.The translation should start as a sentence.The translation should start with a lowercase character.The translation starts with a space, but the source text doesn’t.The translations were marked as needing work, because they may be inaccurate. You should review them for correctness.There are no translations. That’s unusual.There was a problem formatting the file nicely (but it was saved all right).There were errors when loading the catalog. Some data may be missing or corrupted as the result.These settings affect internal formatting of PO files. Adjust them if you have specific requirements e.g. because of version control.These strings are no longer in the sources. Poedit will remove them from the catalog now.These strings were found in the sources but were not in the catalog. Poedit will add them to the catalog now.This catalog has entries with plural forms, but doesn’t have Plural-Forms header configured.This file can only be edited in Crowdin’s web interface.This is the command used to launch the extractor. %o expands to the name of output file, %K to list of keywords, %F to list of input files, %C to charset flag (see below).This project has no files that can be translated in Poedit.This string was found in Poedit’s translation memory.This will be attached to the command line only if source code charset was given. %c expands to charset value.This will be attached to the command line once for each input file. %f expands to the filename.This will be attached to the command line once for each keyword. %k expands to the keyword.TotalTransformationsTranslatable entries aren’t added manually in the Gettext system, but are automatically extracted from source code. This way, they stay up to date and accurate. Translators typically use PO template files (POTs) prepared for them by the developer.Translated: %d of %d (%d %%)Translation LanguageTranslation MemoryTranslation Needs &WorkTranslation PropertiesTranslation needs &workTranslation propertiesTranslation suggestions:Translation — %sTranslation:Translations couldn’t be updated from the source code, because no code was found in the location specified in the catalog’s Properties.TwoUTF-8 (recommended)UndoUnhandled exception occurred: %sUnix (recommended)UntransUpUpdateUpdate allUpdate all catalogs in the projectUpdate catalog - synchronize it with sourcesUpdate from &POT File…Update from &POT file…Update from POTUpdate summaryUpdatesUpdating catalogUpdating failedUpdating the catalog failed. Click on 'Details >>' for details.Updating user information…Uploading translations…Use custom expressionUse custom list font:Use custom text fields font:Use default rules for this languageUse these keywords (function names) to recognize translatable strings in source files:Use translation memoryValidateValidation resultsVersion %sWaiting for authentication…Welcome to PoeditWhat is Crowdin?When updating from sourcesWhole words onlyWindowWindowsWrap aroundWrap at:YesYou can also extract translatable strings directly from the source code:You can’t drop more than one file on Poedit window.You must restart Poedit for this change to take effect.Your NameYour changes will be lost if you don’t save them.Your name and email address are only used to set the Last-Translator header of GNU gettext files.ZeroZoomaltctrldon’t delete temporary files (for debugging)e.g. nplurals=2; plural=(n > 1);fuzzy match within the filego to item at given line numberhandle a poedit:// URIpre-translate from TMshiftunknown languageyour_email@example.com“%s” is not a valid POT file.Project-Id-Version: poedit Report-Msgid-Bugs-To: help@poedit.net POT-Creation-Date: 2017-12-05 15:52+0100 PO-Revision-Date: 2017-09-21 11:18-0400 Last-Translator: vslavik Language-Team: Belarusian Language: be_BY MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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); X-Generator: crowdin.com X-Crowdin-Project: poedit X-Crowdin-Language: be X-Crowdin-File: /locales/poedit.pot (зменены) (не захавана)%d запіс%d запісы%d запісаў%d радок быў запоўнены чарнавым перакладам.%d радкі былі запоўненыя чарнавым перакладам.%d радкоў было запоўнена чарнавым перакладам.%d памылка%d памылкі%d памылакУ перакладзе знойдзена %d праблема.У перакладзе знойдзены %d праблемы.У перакладзе знойдзена %d праблем.%i радок файла "%s" быў загружаны некарэктна.%i радкі файла "%s" былі загружаныя некарэктна.%i радкоў файла "%s" былі загружаныя некарэктна.Фармат %sНалады %sФармат %s&Пра праграму&Пра Poedit&Ужыць&Назад&Закладкі&Адмена&Ачысціць&Закрыць&Скапіяваць&Выдаліць&Скончыць і перайсці да наступнага&Скончыць і перайсці да наступнага&Змяніць&Файл&Знайсці…&Дакументацыя GNU gettext&Дакументацыя GNU gettext&Перайсці&Групаваць па кантэксце&Групаваць па кантэксце&Даведка&Стварыць&Новы…&Наступны >&Наступны пераклад&Наступны пераклад&Не&Ok&Сеціўная даведка&Сеціўная даведка&Адкрыць...&Адкрыць…&Уставіць&Налады&Налады…&Папярэдні пераклад&Папярэдні пераклад&Уласцівасці…&Знішчыць вылучаныя пераклады&Знішчыць вылучаныя пераклады&Выйсці&Аднавіць&Замяніць&Захаваць&Захаваць як&Паказваць спасылкі&Паказваць спасылкі&ВярнуцьСпачатку &не перакладзеныя запісыСпачатку &не перакладзеныя запісы&Абнавіць з зыходнага кода&Абнавіць з зыходнага кода&Праверыць пераклад&Праверыць пераклад&Выгляд&Так(0 новых, 0 састарэлых)(Даведацца больш пра GNU gettext)(Новыя: %i, састарэлыя: %i)(Карыстацца мовай па змаўчанні)(патрабуецца Windows 8 ці больш новая версія)< &ПапярэдніПерацягніце папкі сюды ці выкарыстоўвайце кнопку "+"Перацягніце папкі сюды ці выкарыстоўвайце кнопку "+"<без назвы>Пра %sУліковыя запісыДадаць каментарДадаць файлы…Дадаць папкі…Дадаць шаблон…Дадаць каментарДадаць каталог у спісДадаць файлы…Дадаць папкі…Дадаць шаблон…Дадатковыя ключавыя словыДадатковыя сцягі xgettext:Пашыраныя наладыДадатковыя налады вымання…Дадатковыя налады выманняДадатковыя налады вымання…Усе файлы перакладаўУсе каментарыіТаксама выкарыстоўваць ключавыя словы па змаўчанні для моў, якія падтрымліваюццаAlt+Заўсёды рабіць поле для ўводу тэксту актыўнымЭлемент у спісе ўваходных файлаў:Элемент у спісе ключавых слоў:Знешні выглядУжыцьВы ўпэўненыя, што жадаеце выдаліць экстрактар "%s"?Вы ўпэўненыя, што жадаеце скінуць памяць перакладаў?Аўтаматычна правяраць наяўнасць новых версійАўтаматычна кампіляваць файл MO пры захаванніНазадБазавы шлях:Бэта-версіі ўключаюць усе самыя новыя функцыі і ўдасканаленні, але могуць быць менш стабільнымі.Змясціць усё на пярэднім планеСапсаваны файл каталога: форма множнага ліку msgstr ужыта без msgid_pluralСапсаваны файл каталога: форма адзіночнага ліку msgstr ужываецца разам з msgid_pluralАглядПа змаўчанні вынікі, якія не цалкам супадаюць таксама будуць запоўненыя і пазначаныя як "патрабуюць дапрацоўкі". Пазначце гэту опцыю, каб запаўняць толькі поўныя супадзенні.К&аталогА&чысціцьСкасавацьНе атрымалася стварыць часовы каталог.Не атрымліваецца выканаць праграму: %sВялікімі літараміКаталогКаталог зменены. Захаваць змены?Уласцівасці каталога&Менеджар каталогаў&Менеджар каталогаўМенеджар каталогаўЗмяніць мову інтэрфейсуКадаванне:Праверыць дакументПравяраць граматыку і правапісПравяраць правапіс падчас уводуПраверка абнаўленняў…Праверыць наяўнасць памылак у перакладзеПраверка абнаўленняў…Правяраць правапісАчысціцьАчысціць перакладАчысціць каментарАчысціць перакладЗакрыцьСумесны пераклад з іншымі людзьміСумесны пераклад з іншыміЗбіранне зыходных файлаў…Каманда для вымання перакладу:Каментар:Каментарыі, якія пачынаюцца з:Кампіляваць у файл MO…Кампіляваць у…Скампіляваныя файлы перакладуНаладзьце выманне зыходнага кода ў раздзеле "Уласцівасці".ПацвярджэннеКапіявацьКапіяваць форму адзіночнага лікуСкапіяваць зыходны тэкстКапіяваць форму адзіночнага лікуСкапіяваць зыходны тэкстВыпраўляць правапіс аўтаматычнаНемагчыма загрузіць %s. Магчыма ён пашкоджаны.Немагчыма захаваць файл %s.Стварыць новы перакладСтварыць новы перакладСтварыць новы праект перакладуПамылка CrowdinCrowdin - гэта сеціўная прылада для сумеснай лакалізацыі і перакладу. Poedit можа аўтаматычна сінхранізаваць файлы PO з Crowdin.Ctrl+Выра&зацьКарыстальніцкія экстрактары:Карыстальніцкія экстрактары:ВыразацьПамер базы даных на дыску:ВыдаліцьВыдаліць экстрактарВыдаліць праектКаталогі:Паказваць ну&мары радкоўПаказваць ну&мары радкоўВы сапраўды жадаеце абнавіць усе каталогі ў гэтым праекце?Вы жадаеце выдаліць гэты праект?Жадаеце выдаліць усе пераклады, якія больш не выкарыстоўваюцца?Не захоўвацьНе паказваць зноўНе пазначаць дакладныя супадзенні як "патрабуюць дапрацоўкі"Не захоўвацьНе паказваць зноўУнізСпампаваць файл з праекта Crowdin, перакласці яго і сінхранізаваць змены назад.Пампаванне апошніх перакладаў…Запампоўка перакладаў адключана ў гэтым праекце.В&ыхадЭк&спартаваць як HTML…ЗмяніцьЗмяніць &каментарЗмяніць &каментарРэдагаваць каментарЗмяніць перакладЗмяніць перакладРэдагаваць каментарРэдагаваць праектРэдагаваць праектРэдагаваннеЗмяніць…Электронная пошта:EnterПерайсці ў поўнаэкранны рэжымЗапісы ў каталога, напэўна, памылковыя.Элементы ў гэтым каталозе маюць формы множнага ліку, якія адрозніваюцца ад азначаных у загалоўку Plural-FormsПершымі адлюстроўваць запісы з памылкаміПершымі адлюстроўваць запісы з памылкаміЗапісы з памылкамі былі вылучаны ў спісе чырвоным колерам. Калі выбраць такі запіс, будуць паказаныя падрабязныя звесткі пра памылку.Памылка загрузкі файла каталога паведамлення "%s".Памылка адкрыцця файлаПамылка адкрыцця файла %s!Памылка захавання каталогаПамылкіУсёВыключаныя шляхіЭкспартаваць як…Выняць з зыходнага кодаВыняць нататкі для перакладчыкаў з:Вымаць тэкст з зыходных файлаў у наступных каталогах:Выманне радкоў для перакладу…Налады экстрактараЭкстрактарыПамылка выканання каманды: %sПамылка падключэння да працэсу Poedit.Не атрымалася загрузіць выняты каталог.Не атрымалася аб'яднаць каталогі gettext.Не атрымалася абнавіць памяць перакладаў: %sФайлФайл “%s” не існуе.Файл "%s" не з'яўляецца каталогам паведамленняў.Файл "%s" даступны толькі для чытання і не можа быць захаваны. Калі ласка, захавайце яго пад іншай назвай.Файл:Завяршэнне…ЗнайсціЗнайсці наступныЗнайсці папярэдніЗнайсці і замяніць…Шукаць у перакладахШукаць у зыходных тэкстахШукаць у перакладахЗнайсці наступныЗнайсці папярэдніВыправіць мовуВыправіць мовуВыправіць загаловакВыправіць загаловакФорма %iЧастыяGNU gettextАгульныяПерайсці да закладкі %iПерайсці да закладкі %iФайл HTMLДаведкаСхаваць %sСхаваць іншыяСхаваць бакавую панэльСхаваць радок стануНе паказваць больш гэта апавяшчэннеIDКалі працягнуць аперацыю, усе пераклады, пазначаныя як выдаленыя, будуць цалкам знішчаныя. Калі яны будуць даданыя назад у будучым, іх прыйдзецца перакладаць паўторна.Ігнараваць рэгістрІмпартаванне перакладаў…У тым ліку правяраць бэта-версііЗвесткі пра перакладчыкаУсталявацьПамылковы файлВыклік:ПакінуцьКод мовы ці назва (напр. en_GB)Мова перакладу супадае з зыходнай мовай.Не прызначана мова перакладу.Мова перакладу:Выбар мовыКаманда перакладчыкаў:Мова:Апошняе змяненнеДаведацца больш пра ключавыя словы GettextВывучыць з файлаў…Даведацца большДаведацца больш пра CrowdinДаведацца больш пра ключавыя словы gettextДаведацца больш пра формы множнага лікуВывучыць з файлаў…Даведацца большДаведацца больш пра CrowdinУлеваРадок %d файла "%s" пашкоджаны (некарэктныя даныя %s).Сканчэнне радкоў:Спіс пышырэнняў, падзеленых кропкай з коскай (напрыклад *.cpp;*.h):Файлы з пашырэннем MO нельга змяніць непасрэдна ў Poedit.Канвертаваць у маленькія літарыКанвертаваць у вялікія літарыПашкоджаны загаловак: “%s”Зліццё адрозненняў…ЗгарнуцьНазва праекта перакладу дляІмя:На&ступны незавершаныНа&ступны незавершаныПатрабуе праверкіПатрабуе праверкіНіколі не рабіць актыўным спіс з радкамі. Калі ўключана, для перамяшчэння з дапамогай клавіятуры неабходна выкарыстоўваць Ctrl+стрэлкі. Гэты параметр таксама дазваляе ўводзіць тэкст імгненна, без папярэдняга націску клавішы TAB для пераключэння фокуса.НовыНовы з файла &POT/PO…Новы з файла &POT/PO…Новыя радкіНаступная форма множнага лікуНаступная форма множнага лікуНеСупадзенняў не знойдзенаНяма запісаў для якіх можна зрабіць чарнавы пераклад.Супадзенняў не знойдзенаПраблем у перакладзе не знойдзена.Няма спасылкі для выбранага элемента.У вашым уліковым запісе Crowdin няма праектаў для перакладу.Не ўсе формы множнага ліку перакладзеныя.Не аўтарызаваны, калі ласка, увайдзіце яшчэ раз.Заўвагі для перакладчыка:ДобраСастарэлыя радкіАдзінУключыце толькі ў тым выпадку, калі вы давяраеце якасці вашай памяці перакладаў. Па змаўчанні, усе супадзенні з памяці перакладаў пазначаюцца як "патрабуюць дапрацоўкі" і іх неабходна пераправяраць.Запаўняць толькі пры дакладным супадзенніАдкрыцьАдкрыць пераклад CrowdinАдкрыць з Crowdin…Адкрыць нядаўнія файлыАдкрыць існуючы файл PO і змяніць пераклад.Адкрыць каталогАдкрыць шаблон каталогаАдкрыць з Crowdin…Адкрыць у рэдактарыАдкрыць у рэдактарыАдкрыць...Адкрыць…НаладыIншаеПа&пярэдні незавершаныПа&пярэдні незавершаныФайл перакладу POФайлы перакладу POШаблоны перакладу POTФайлы з пашырэннем POT з'яўляюцца толькі шаблонамі і не змяшчаюць у сабе перакладаў. Каб зрабіць пераклад стварыце файл PO з шаблона.УставіцьСтыль капіявання і ўстаўкіШляхіКалі ласка, адкрыйце і змяніце адпаведны файл PO. Пасля яго захавання, файл MO таксама абнавіцца.Калі ласка, першапачаткова захавайце файл. Да гэтага дадзены раздзел не можа быць зменены.МножныВыраз формы множнага ліку, якое выкарыстоўваецца ў каталога, з'яўляецца незвычайным для %s.Формы множнага ліку:Множны:PoeditPoedit - кіраўнік каталогаўPoedit аўтаматычна выправіў памылковы змест у файле "%s".Poedit можа паспрабаваць запоўніць новыя радкі толькі папярэднімі перакладамі з гэтага файла ці з вашай памяці перакладаў. Выкарыстанне памяці перакладаў не будзе вельмі эфектыўным, калі яна амаль пустая, але яна будзе станавіцца лепш па меры таго, як вы будзеце дадаваць новыя пераклады.Poedit - гэта просты ў выкарыстанні рэдактар перакладаў.Чарнавы &пераклад…Чарнавы перакладЧарнавы варыянтЧарнавы пераклад %u радкаЧарнавы пераклад %u радкоўЧарнавы пераклад %u радкоўВыкананне чарнавога перакладу…Чарнавы пераклад аўтаматычна знаходзіць дакладныя ці недакладныя супадзенні для не перакладзеных радкоў у памяці перакладаў і запаўняе іх перакладамі.НаладыНалады...Налады…Захоўваць фарматаванне існуючых файлаўПапярэдняя форма множнага лікуПапярэдняя форма множнага лікуПапярэдні зыходны тэкст:Назва і версія праекта:Назва праекта:Праект:ЗнішчыцьЗнішчыць вылучаныя перакладыВыйсціВыйсці з %sНядаўніяАднавіцьСпасылкі:АбнавіцьЗасталося: %dЗамяніцьЗамяніць &усеЗамяніць &усеРадок заменыЗамяніць…Неабходны загаловак "Plural-Forms" адсутнічае.СкінуцьСкінуць памяць перакладаўАчыстка памяці перакладаў незваротна выдаліць усе пераклады, якія захоўваюцца ў ёй. Вы не зможаце скасаваць гэтую аперацыю.ПраверыцьУправаЗахавацьЗахаваць &як…Захаваць &як…Захаваць якЗахаваць як…Захаваць каталогЗахаваць змяненніВыбраць у&сёВыбраць усёВыберыце каталогВыберыце файлы перакладу для імпартаванняВыберыце пажаданую мовуСэрвісыДадаць закладку %iВыбраць мовуДадаць закладку %iВыбраць мовуShift+Паказаць усеПаказаць бакавую панэльПаказваць арфаграфічныя і граматычныя памылкіПаказаць радок стануПаказваць заменыПаказаць ці схаваць бакавую панэльПаказаць бакавую панэльПаказаць радок стануПаказваць зводку пасля абнаўлення каталогаБакавая панэльУвайсціВыйсціУвайсціУвайсці ў CrowdinВыйсціВы ўвайшлі як:АдзіночныАдзіночны:Інтэлектуальнае капіяванне/устаўкаІнтэлектуальны працяжнікІнтэлектуальныя спасылкіІнтэлектуальныя двукоссіСартаваць як у &файлеСартаваць як у &арыгіналеСартаваць як у &перакладзеСартаваць як у &файлеСартаваць як у &арыгіналеСартаваць як у &перакладзеКадаванне зыходнага кода:Экстрактары выкарыстоўвацца для пошуку радкоў, якія перакладаюцца ў файлах зыходнага кода і вымаюць іх так, каб іх можна было перакласці.Зыходны код не даступны.Зыходны файлРазмяшчэнне зыходнага файла:Зыходны тэкстЗыходны тэкст — %sЗыходны тэкст:Ключавыя словы зыходных файлаўШлях да зыходнага файлаКлючавыя словы зыходных файлаўШлях да зыходнага файлаМаўленнеПраверка правапісу адключана, таму што, слоўнік для %s не ўсталяваны.Праверка правапісу і граматыкаПачаць агучваннеСпыніць агучваннеЗахаваныя пераклады:Радок пошукуЗаменыПрапановыПрапановы не даступныя, калі мова перакладу не азначаная. Іншыя магчымасці, такія як формы множнага ліку, таксама могуць быць парушаныя.Падтрымліваюцца ўсе праграмныя мовы, якія распазнаюцца сродкамі GNU gettext (PHP, C/C++, C#, Perl, Python, Java, JavaScript і іншыя).СінхранізацыяСінхранізаваць з CrowdinСінхранізаваць пераклад з CrowdinСінхранізацыяПамылка сінхранізацыіНе атрымалася сінхранізаваць з %s.Сіхранізацыя з %s…Сінхранізаваць з Crowdin не атрымалася.Сінтаксічная памылка ў загалоўку "Plural-Forms" ("%s").Памяць перакладаў (ПП)Стварэнне перакладу на падставе існуючага файла PO ці шаблона POT.Выманне радкоў для перакладу з існуючага шаблона POT.Назва каманды і адрас эл. пошты ці URLЗамена тэкстуПамяць перакладаў не змяшчае радкоў, падобных на змесціва гэтага файла. Яна падыходзіць толькі для паўаўтаматычнага перакладу пасля таго, як Poedit збярэ дастаткова даных з файлаў, якія вы пераклалі ўручную.Каталог не можа быць захаваны ў кадаванні "%s" як азначана ў наладах каталога. Замест гэтага ён будзе захаваны ў кадаванні UTF-8 з адпаведнымі зменамі.Не атрымалася скампіляваць файл у фармат MO для далейшага выкарыстання.Не атрымліваецца адкрыць файл.Гэты файл змяшчаў у сабе дубляваныя элементы, якія не дазваляюцца ў файлах PO і могуць ствараць перашкоды ў іх выкарыстанні. Poedit выправіў гэту праблему, але вы павінны перагледзець пераклады з пазнакамі "патрабуюць дапрацоўкі" і выправіць іх пры неабходнасці.Магчыма файл пашкоджаны ці мае фармат, які не падтрымліваецца Poedit.Файл быў скампіляваны ў фармат MO, але магчыма будзе працаваць некарэктна.Файл быў паспяхова захаваны і скампіляваны ў фармат MO, але магчыма будзе працаваць некарэктна.Файл быў паспяхова захаваны, але яго не атрымалася скампіляваць у фармат MO для далейшага выкарыстання.Файл быў паспяхова захаваны.Стары зыходны тэкст (да таго, як быў адноўлены), якому адпавядае недакладны пераклад.Самы просты спосаб перакласці гэты каталог - абнавіць яго з POT:Пераклад не пачынаецца з прабела.Пераклад скачаецца сімвалам новага радка, а пачатковы тэкст не.Пераклад пачынаецца сканчаецца прабелам, а зыходны тэкст не.Пераклад сканчаецца "%s", а пачатковы тэкст сканчаецца "%s".У перакладзе адсутнічае сімвал зыходнага радка ў канцы.У канцы перакладу прапушчаны прабел.Пераклад гатовы да выкарыстання, але %d запіс яшчэ не перакладзены.Пераклад гатовы да выкарыстання, але %d запісы яшчэ не перакладзена.Пераклад гатовы да выкарыстання, але %d запісаў яшчэ не перакладзена.Пераклад гатовы да выкарыстання.Пераклад павінен сканчацца "%s".Пераклад не павінен сканчацца "%s"Пераклад павінен пачынацца з вялікай літары.Пераклад павінен пачынацца з маленькай літары.Пераклад пачынаецца з прабела, а зыходны тэкст не.Пераклады былі пазначаныя як "патрабуюць дапрацоўкі" з той прычыны, што могуць змяшчаць памылкі. Вы павінны праверыць ці слушныя яны.Вельмі дзіўна, але пераклад адсутнічае.Узнікла праблема падчас фарматавання файла (але ён быў паспяхова захаваны).Пры загрузцы каталога ўзнікла памылка. У выніку чаго, некаторыя даныя могуць быць пашкоджаныя ці адсутнічаць.Гэтыя параметры ўплываюць на ўнутранае фарматаванне файлаў PO. Скарэктуйце іх, калі ў вас ёсць адмысловыя патрабаванні, напрыклад, калі вы карыстаецеся сістэмай кантролю версій.Больш няма гэтых радкоў у зыходных файлах. Poedit зараз выдаліць іх з каталога.Гэтыя радкі знойдзены у зыходных файлах, але яны адсутнічаюць у каталозе. Poedit зараз дадасць іх у каталог.Каталог змяшчае элементы з формамі множнага ліку, але ён не мае наладаў загалоўку Plural-Forms.Гэты файл можа быць зменены толькі ў вэб-інтэрфейсе Crowdin.Дадзеная каманда выкарыстоўваецца, каб запусціць экстрактар. %o абазначае назву выходнага файла, %K - спіс ключавых слоў, %F - спіс уваходных файлаў, %C - кадаванне (гл. ніжэй).Гэты праект не змяшчае файлаў, якія могуць быць перакладзены ў Poedit.Гэты радок быў знойдзены ў памяці перакладаў Poedit.Гэта будзе дададзена ў камандны радок, толькі калі было азначана кадаванне зыходнага файла. %c азначае кадаванне.Гэта будзе дадзена ў камандны радок для кожнага ўваходнага файла. %f азначае назву файла.Гэта будзе дададзена ў камандны радок для кожнага ключавога слова. %k азначае ключавое слова.УсягоПераўтварэнніЗапісы, якія перакладаюцца не дадаюцца ўручную ў сістэму Gettext, а аўтаматычна вымаюцца з зыходнага кода. Такім чынам, забяспечваецца іх актуальнасць і дакладнасць. Перакладчыкі звычайна працуюць з файламі PO (шаблоны POT), якія падрыхтаваў для іх распрацоўшчык.Перакладзена: %d з %d (%d %%)Мова перакладуПамяць перакладаўПераклады, якія патрабуюць &дапрацоўкіУласцівасці перакладуПераклад, які патрабуе &дапрацоўкіУласцівасці перакладуВарыянты перакладу:Пераклад — %sПераклад:Пераклады не могуць быць абноўлены з зыходнага кода, таму што код не быў знойдзены ў папцы, азначанай ва ўласцівасцях каталога.ДваUTF-8 (пажадана)ВярнуцьАдбылося непрадбачанае выключэнне: %sUnix (пажадана)Не перакладзеныхУверхАбнавіцьАбнавіць усёАбнавіць усе каталогі праектаАбнавіць каталог - сінхранізаваць яго з зыходнымі файламіАбнавіць з файла &POT…Абнавіць з файла &POT…Абнавіць з POTАбнавіць зводкуАбнаўленніАбнаўленне каталогаНе атрымалася абнавіцьНе атрымалася абнавіць каталог. Пстрыкніце на кнопку "Дэталі>>", каб атрымаць дадатковыя звесткі.Абнаўленне звестак пра карыстальніка…Дасыланне перакладу…Выкарыстоўваць выраз карыстальнікаВыкарыстоўваць карыстальніцкі шрыфт для спісу:Выкарыстоўваць карыстальніцкі тэкст у палях уводу:Выкарыстоўваць правілы па змаўчанні для гэтай мовыВыкарыстоўвайце гэтыя ключавыя словы (імёны функцый) для распазнання радкоў, якія перакладаюцца ў зыходных файлах:Выкарыстоўваць памяць перакладаўПраверыцьВынікі праверкіВерсія %sЧаканне аўтарызацыі…Сардэчна запрашаем у PoeditШто такое Crowdin?Пры абнаўленні з крыніцыТолькі цэлыя словыАкноWindowsШукаць бясконцаПеранос:ТакВы таксама можаце выняць радкі для перакладу непасрэдна з зыходнага кода:Нельга перацягваць некалькі файлаў у акно Poedit.Вы павінны перазапусціць Poedit, каб змены набылі моц.Ваша імяВашы змены будуць страчаныя, калі вы не захаваеце іх.Ваша імя і адрас электроннай пошты будуць выкарыстоўвацца толькі пры пазначэнні апошняга перакладчыка ў загалоўках GNU gettext файлаў.НульМаштабaltctrlне выдаляйце часовыя файлы (для адладкі)напрыклад, plurals=2; plural=(n > 1);падбіраць падобны пераклад унутры файлаперайсці да элемента з вызначаным нумарам радкаапрацаваць адрас poedit://чарнавы пераклад з памяці перакладаўshiftневядомая моваvasha_elposhta@uzor.com"%s" не з'яўляецца карэктным файлам POT.poedit-2.0.6/locales/hu.po0000664000372000037200000015517013230132076012330 00000000000000msgid "" msgstr "" "Project-Id-Version: poedit\n" "Report-Msgid-Bugs-To: help@poedit.net\n" "POT-Creation-Date: 2017-12-05 15:52+0100\n" "PO-Revision-Date: 2018-01-18 07:56-0500\n" "Last-Translator: vslavik \n" "Language-Team: Hungarian\n" "Language: hu_HU\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: crowdin.com\n" "X-Crowdin-Project: poedit\n" "X-Crowdin-Language: hu\n" "X-Crowdin-File: /locales/poedit.pot\n" msgid "Hide this notification message" msgstr "Ezen értesítő üzenet elrejtése" msgid "Don’t Show Again" msgstr "Ne mutassa újra" msgid "Don’t show again" msgstr "Ne mutassa újra" #, c-format msgid "(New: %i, obsolete: %i)" msgstr "(Új: %i, elavult: %i)" msgid "Updating catalog" msgstr "Katalógus frissítése" msgid "Collecting source files…" msgstr "Forrás fájlok összegyűjtése…" msgid "Extracting translatable strings…" msgstr "Lefordítható karakterláncok kinyerése…" msgid "Failed to load extracted catalog." msgstr "A kinyert katalógus betöltése meghiúsult." msgid "Merging differences…" msgstr "Eltérések összefésülése…" #, c-format msgid "“%s” is not a valid POT file." msgstr "\"%s\" nem egy érvényes POT fájl." #, c-format msgid "%i line of file “%s” was not loaded correctly." msgid_plural "%i lines of file “%s” were not loaded correctly." msgstr[0] "%i sor „%s” fájlból nem lett megfelelően betöltve." msgstr[1] "%i sorok „%s” fájlból nem lettek megfelelően betöltve." #, c-format msgid "Line %d of file “%s” is corrupted (not valid %s data)." msgstr "%d sor a “%s” fájlban sérült (nem érvényes %s adat)." #, c-format msgid "Malformed header: “%s”" msgstr "Hibás fejléc: \"%s\"" msgid "" "Broken catalog file: singular form msgstr used together with msgid_plural" msgstr "" "Sérült katalógus fájl: egyes számú msgstr van használva msgid_plural " "megadással" msgid "Broken catalog file: plural form msgstr used without msgid_plural" msgstr "" "Sérült katalógus fájl: többes számú msgstr van használva msgid_plural nélkül" msgid "" "There were errors when loading the catalog. Some data may be missing or " "corrupted as the result." msgstr "" "Hibák történtek a katalógus betöltése közben. Eredményeként néhány adat " "hiányozhat vagy megsérülhetett." #, c-format msgid "Couldn’t load file %s, it is probably corrupted." msgstr "%s fájl betöltése nem sikerült, valószínűleg sérült." #, c-format msgid "" "File “%s” is read-only and cannot be saved.\n" "Please save it under different name." msgstr "" "„%s” fájl csak olvasható és nem lehet menteni.\n" "Kérjük, mentse más néven." #, c-format msgid "Couldn’t save file %s." msgstr "%s fájl mentése nem sikerült." msgid "" "There was a problem formatting the file nicely (but it was saved all right)." msgstr "" "Probléma történt a fájl szépre formázása közben (de rendben mentve lett)." #, c-format msgid "" "The catalog couldn’t be saved in “%s” charset as specified in catalog " "settings.\n" "\n" "It was saved in UTF-8 instead and the setting was modified accordingly." msgstr "" "A katalógust nem lehet a katalógus beállításainál megadott „%s” " "karakterkódolással menteni.\n" "\n" "Ehelyett a mentés UTF-8 kódolással történt, és a beállítás ennek megfelelően " "módosult." msgid "Error saving catalog" msgstr "Hiba a katalógus mentésekor" msgid "PO Translation Files" msgstr "PO fordítási fájlok" msgid "POT Translation Templates" msgstr "POT fordítási sablonok" msgid "All Translation Files" msgstr "Minden fordítási fájl" msgid "(Use default language)" msgstr "(Alapértelmezett nyelv használata)" msgid "Select your preferred language" msgstr "Válassza ki a kívánt nyelvet" msgid "Language selection" msgstr "Nyelvválasztás" msgid "You must restart Poedit for this change to take effect." msgstr "Újra kell indítania a Poeditet a módosítás életbe léptetéséhez." msgid "Syncing" msgstr "Szinkronizálás" #. TRANSLATORS: %s is a cloud destination, e.g. "Crowdin" or ftp.wordpress.com etc. #, c-format msgid "Syncing with %s…" msgstr "Szinkronizálás ezzel: %s…" #. TRANSLATORS: %s is a cloud destination, e.g. "Crowdin" or ftp.wordpress.com etc. #, c-format msgid "Syncing with %s failed." msgstr "A szinkronizálás ezzel: %s nem sikerült." msgid "Syncing error" msgstr "Szinkronizálás hiba" msgid "Downloading translations is disabled in this project." msgstr "A fordítások letöltése ebben a projektben le van tiltva." msgid "Not authorized, please sign in again." msgstr "Nem engedélyezett, kérjük jelentkezzen be újra." msgid "" "Crowdin is an online localization management platform and collaborative " "translation tool. Poedit can seamlessly sync PO files managed at Crowdin." msgstr "" "A Crowdin egy online honosításkezelő platform és együttműködésen alapuló " "fordítási eszköz. A Poedit gond nélkül képes szinkronizálni a Crowdin-on " "kezelt PO fájlokat." msgid "Sign In" msgstr "Bejelentkezés" msgid "Sign in" msgstr "Bejelentkezés" msgid "Sign Out" msgstr "Kijelentkezés" msgid "Sign out" msgstr "Kijelentkezés" msgid "Waiting for authentication…" msgstr "Várakozás a hitelesítésre…" msgid "Updating user information…" msgstr "Felhasználói adatok frissítése…" msgid "Signed in as:" msgstr "Bejelentkezve mint:" msgid "Learn More About Crowdin" msgstr "Tudjon meg többet a Crowdinról" msgid "Learn more about Crowdin" msgstr "Tudjon meg többet a Crowdinról" msgid "Sign in to Crowdin" msgstr "Bejelentkezés a Crowdinra" msgid "Open Crowdin translation" msgstr "Crowdin fordítás megnyitása" msgid "Project:" msgstr "Projekt:" msgid "Language:" msgstr "Nyelv:" msgid "File:" msgstr "Fájl:" msgid "No translation projects listed in your Crowdin account." msgstr "Nem szerepel fordítási projekt az Ön Crowdin fiókjában." msgid "This project has no files that can be translated in Poedit." msgstr "" "Ebben a fordítási projektben nincs olyan fájl, amit a Poedit-tel fordítani " "lehetne." msgid "This file can only be edited in Crowdin’s web interface." msgstr "Ez a fájl csak a Crowdin webes felületén szerkeszthető." msgid "Downloading latest translations…" msgstr "A legújabb fordítások letöltése…" msgid "Syncing with Crowdin failed." msgstr "Nem sikerült szinkronizálni a Crowdin-nel." msgid "Crowdin error" msgstr "Crowdin hiba" msgid "Uploading translations…" msgstr "Fordítások feltöltése…" msgid "&Copy" msgstr "&Másolás" msgid "Learn more" msgstr "Tudjon meg többet" msgid "Learn More" msgstr "Tudjon meg többet" msgid "&Help" msgstr "&Súgó" msgid "MO files can’t be directly edited in Poedit." msgstr "MO fájlok nem szerkeszthetők közvetlenül a Poeditben." msgid "Error opening file" msgstr "Hiba a fájl megnyitása során" msgid "" "Please open and edit the corresponding PO file instead. When you save it, " "the MO file will be updated as well." msgstr "" "Kérjük, nyissa meg és szerkessze helyette a megfelelő PO fájlt. Amikor " "menti, a MO fájl is frissülni fog." msgid "don’t delete temporary files (for debugging)" msgstr "ne törölje az ideiglenes fájlokat (hibakereséshez)" msgid "handle a poedit:// URI" msgstr "kezel egy poedit:// URI" msgid "go to item at given line number" msgstr "ugrás a tételhez a megadott sorszámnál" msgid "Failed to communicate with Poedit process." msgstr "Nem sikerült kommunikálni a Poedit folyamattal." #, c-format msgid "Unhandled exception occurred: %s" msgstr "Nem kezelt kivétel történt: %s" msgid "Open catalog" msgstr "Katalógus megnyitása" #, c-format msgid "File “%s” doesn’t exist." msgstr "\"%s\" fájl nem létezik." msgid "Poedit is an easy to use translations editor." msgstr "A Poedit egy könnyen használható fordítás szerkesztő." msgid "Catalogs Manager" msgstr "&Katalóguskezelő" msgid "Check for Updates…" msgstr "Frissítések ellenőrzése…" msgid "&Edit" msgstr "Sz&erkesztés" msgid "Undo" msgstr "Visszavonás" msgid "Redo" msgstr "Mégis" msgid "Paste and Match Style" msgstr "Beillesztés és stílus egyeztetés" msgid "Delete" msgstr "Törlés" msgid "Spelling and Grammar" msgstr "Helyesírás és nyelvhelyesség" msgid "Show Spelling and Grammar" msgstr "Helyesírás és nyelvhelyesség megjelenítése" msgid "Check Document Now" msgstr "Dokumentum ellenőrzése" msgid "Check Spelling While Typing" msgstr "Helyesírás-ellenőrzés beíráskor" msgid "Check Grammar With Spelling" msgstr "Nyelvhelyesség és helyesírás ellenőrzése" msgid "Correct Spelling Automatically" msgstr "Automatikus helyesírás-javítás" msgid "Substitutions" msgstr "Cserejavaslatok" msgid "Show Substitutions" msgstr "Cserejavaslatok megjelenítése" msgid "Smart Copy/Paste" msgstr "Intelligens másolás/beillesztés" msgid "Smart Quotes" msgstr "Intelligens idézőjelek" msgid "Smart Dashes" msgstr "Intelligens kötőjelek" msgid "Smart Links" msgstr "Intelligens hivatkozások" msgid "Text Replacement" msgstr "Szöveg csere" msgid "Transformations" msgstr "Átalakítások" msgid "Make Upper Case" msgstr "Nagybetűvel" msgid "Make Lower Case" msgstr "Kisbetűvel" msgid "Capitalize" msgstr "Nagy kezdőbetű" msgid "Speech" msgstr "Beszéd" msgid "Start Speaking" msgstr "Beszéd kezdése" msgid "Stop Speaking" msgstr "Beszéd leállítása" msgid "&View" msgstr "&Nézet" msgid "Enter Full Screen" msgstr "Váltás teljes képernyőre" msgid "Window" msgstr "Ablak" msgid "Minimize" msgstr "Minimalizálás" msgid "Zoom" msgstr "Nagyítás" msgid "Bring All to Front" msgstr "Összes előrehozása" #. TRANSLATORS:File kind displayed in Finder/Explorer msgid "PO Translation" msgstr "PO fordítás" msgid "The file cannot be opened." msgstr "A fájlt nem lehet megnyitni." msgid "Invalid file" msgstr "Érvénytelen fájl" msgid "" "The file may be either corrupted or in a format not recognized by Poedit." msgstr "" "A fájl lehet hogy sérült vagy olyan formátumú melyet a Poedit nem ismer fel." msgid "You can’t drop more than one file on Poedit window." msgstr "A Poedit ablakára egyszerre több fájlt nem lehet ráhúzni." #, c-format msgid "File “%s” is not a message catalog." msgstr "„%s” fájl nem üzenet katalógus." msgid "Poedit" msgstr "Poedit" msgid "&File" msgstr "&Fájl" msgid "&Go" msgstr "&Ugrás" #. TRANSLATORS: %s is language name in its basic form (as you #. would see e.g. in a list of supported languages). You may need #. to rephrase it, e.g. to an equivalent of "for language %s". #, c-format msgid "" "Spellchecking is disabled, because the dictionary for %s isn’t installed." msgstr "" "Helyesírás-ellenőrzés le van tiltva, mert a(z) %s szótár nincs telepítve." msgid "Install" msgstr "Telepítés" msgid "Catalog modified. Do you want to save changes?" msgstr "A katalógus módosult. Szeretné menteni a változásokat?" msgid "Save changes" msgstr "Változások mentése" msgid "Your changes will be lost if you don’t save them." msgstr "A változtatások elvesznek, ha nem menti azokat." msgid "Save" msgstr "Mentés" msgid "Don’t save" msgstr "Nincs mentés" msgid "Don’t Save" msgstr "Nincs mentés" msgid "Save as…" msgstr "Mentés másként…" msgid "Compile to…" msgstr "Lefordítás…" msgid "Compiled Translation Files" msgstr "Lefordított fordítási fájlok" msgid "Export as…" msgstr "Exportálás másként…" msgid "HTML Files" msgstr "HTML fájlok" msgid "Open catalog template" msgstr "Katalógus sablon megnyitása" msgid "Source code not available." msgstr "Nem áll rendelkezésre forráskód." msgid "Updating failed" msgstr "Sikertelen frissítés" msgid "" "Translations couldn’t be updated from the source code, because no code was " "found in the location specified in the catalog’s Properties." msgstr "" "A fordításokat nem lehet frissíteni a forráskódból, mert a katalógus " "tulajdonságaiban megadott helyen nem található kód." msgid "Entries in the catalog are probably incorrect." msgstr "A katalógusban lévő bejegyzések valószínűleg hibásak." msgid "Updating the catalog failed. Click on 'Details >>' for details." msgstr "" "A katalógus frissítése meghiúsult. Részletekért kattintson a 'Részletek >>' " "gombra." #, c-format msgid "%d issue with the translation found." msgid_plural "%d issues with the translation found." msgstr[0] "%d probléma van a fordítással." msgstr[1] "%d probléma van a fordítással." msgid "Validation results" msgstr "Érvényesítés eredménye" msgid "" "Entries with errors were marked in red in the list. Details of the error " "will be shown when you select such an entry." msgstr "" "A hibás bejegyzések pirossal meg lettek jelölve a listában. A hiba részletei " "megjelennek, ha egy ilyen bejegyzést választ ki." msgid "The file was saved safely." msgstr "A fájl biztonságosan el lett mentve" msgid "" "The file was saved safely and compiled into the MO format, but it will " "probably not work correctly." msgstr "" "A fájl biztonságosan el lett mentve, de lehetséges, hogy nem fog megfelelően " "működni." msgid "" "The file was saved safely, but it cannot be compiled into the MO format and " "used." msgstr "" "A fájl mentése sikerült, de nem lehet MO formátumúra fordítani és használni." msgid "" "The file was compiled into the MO format, but it will probably not work " "correctly." msgstr "" "A fájl át lett fordítva MO formátumra, de lehetséges, hogy nem fog " "megfelelően működni." msgid "The file cannot be compiled into the MO format and used." msgstr "A fájlt nem lehet MO formátumra fordítani és használni." msgid "No problems with the translation found." msgstr "A fordítással nincsenek problémák." #, c-format msgid "The translation is ready for use, but %d entry is not translated yet." msgid_plural "" "The translation is ready for use, but %d entries are not translated yet." msgstr[0] "A fordítás használatra kész, de %d bejegyzés még nincs lefordítva." msgstr[1] "A fordítás használatra kész, de %d bejegyzés még nincs lefordítva." msgid "The translation is ready for use." msgstr "A fordítás használatra kész." #, c-format msgid "Poedit automatically fixed invalid content in the file “%s”." msgstr "" "A Poedit a(z) “%s” fájlban automatikusan kijavította a nem megfelelő " "tartalmat." msgid "" "The file contained duplicate items, which is not allowed in PO files and " "would prevent the file from being used. Poedit fixed the issue, but you " "should review translations of any items marked as needing work and correct " "them if necessary." msgstr "" "A fájl PO fájlokban nem engedélyezett és a fájl használatát megakadályozó " "ismétlődő elemeket tartalmaz. A Poedit kijavította ezt a problémát, de " "minden bizonytalannak jelölt fordítási bejegyzés felülvizsgálata és estleges " "javítása szükséges." msgid "Language of the translation isn’t set." msgstr "A fordítás nyelve nincs beállítva." msgid "Set Language" msgstr "Nyelv kiválasztása" msgid "Set language" msgstr "Válassza ki a nyelvet" #. TRANSLATORS: This is shown underneath "Language of the translation isn't set (or ...is the same as source language)." msgid "" "Suggestions are not available if the translation language is not set " "correctly. Other features, such as plural forms, may be affected as well." msgstr "" "A javaslatok nem érthetők el, ha a fordítás nyelve nincs pontosan beállítva. " "Ez más funkciókra, mint pl.: a többes számú alakokra is hatással lehet." msgid "Language of the translation is the same as source language." msgstr "A fordítás nyelve megegyezik a forrásnyelvvel." msgid "Fix Language" msgstr "Beállítás kijavítása" msgid "Fix language" msgstr "Beállítás kijavítása" msgid "" "This catalog has entries with plural forms, but doesn’t have Plural-Forms " "header configured." msgstr "" "Ebben a katalógusban többes számú bejegyzések vannak, de nincs Plural-Forms " "fejléc beállítva." msgid "" "Entries in this catalog have different plural forms count from what " "catalog’s Plural-Forms header says" msgstr "" "A katalógusban lévő egyes bejegyzéseknek eltérő darabszámú többes számuk " "van, mint amit a katalógus Plural-Forms fejléce mond" msgid "Required header Plural-Forms is missing." msgstr "A szükséges Plural-Forms fejléc hiányzik." #, c-format msgid "Syntax error in Plural-Forms header (\"%s\")." msgstr "Szintaktikai hiba a Plural-Forms fejlécben („%s”)." msgid "Fix the Header" msgstr "A fejléc javítása" msgid "Fix the header" msgstr "Fejléc javítása" #. TRANSLATORS: %s is language name in its basic form (as you #. would see e.g. in a list of supported languages). You may need #. to rephrase it, e.g. to an equivalent of "for language %s". #, c-format msgid "Plural forms expression used by the catalog is unusual for %s." msgstr "" "A katalógus által használt többes szám kifejezés a %s nyelvhez nem " "használatos." #. TRANSLATORS: A verb, shown as action button with ""Plural forms expression used by the catalog is unusual for %s.")" msgid "Review" msgstr "Felülvizsgálat" #, c-format msgid "Error loading message catalog file “%s”." msgstr "Hiba „%s” üzenetkatalógus fájl betöltése közben." #, c-format msgid "Translated: %d of %d (%d %%)" msgstr "Lefordítva: %d/%d (%d %%)" #, c-format msgid "Remaining: %d" msgstr "Maradt: %d" #, c-format msgid "%d error" msgid_plural "%d errors" msgstr[0] "%d hiba" msgstr[1] "%d hiba" #, c-format msgid "%d entry" msgid_plural "%d entries" msgstr[0] "%d bejegyzés" msgstr[1] "%d bejegyzés" msgid " (unsaved)" msgstr " (nincs mentve)" msgid " (modified)" msgstr " (módosítva)" #, c-format msgid "Failed to update translation memory: %s" msgstr "Nem sikerült frissíteni a fordítási memóriát: %s" msgid "Purge deleted translations" msgstr "Törölt fordítások tisztítása" msgid "Do you want to remove all translations that are no longer used?" msgstr "Tényleg törölni szeretné a már nem használt fordításokat?" msgid "" "If you continue with purging, all translations marked as deleted will be " "permanently removed. You will have to translate them again if they are added " "back in the future." msgstr "" "Ha folytatja a tisztítást, akkor a töröltként megjelölt fordítások végleg " "eltávolításra kerülnek. Újra kell fordítania őket, ha ezek a jövőben újra " "hozzá lesznek adva." msgid "Keep" msgstr "Megtartás" msgid "Purge" msgstr "Tisztítás" msgid "Copy from source text" msgstr "Másolás a forrásszövegből" msgid "Copy from Source Text" msgstr "Másolás a forrásszövegből" #. TRANSLATORS: This is the key shortcut used in menus on Windows, some languages call them differently #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Ctrl+" msgstr "Ctrl+" msgid "Clear translation" msgstr "Fordítás törlése" msgid "Clear Translation" msgstr "Fordítás törlése" msgid "Edit comment" msgstr "Megjegyzés szerkesztése" msgid "Edit Comment" msgstr "Megjegyzés szerkesztése" msgid "References:" msgstr "Hivatkozások:" msgid "&Bookmarks" msgstr "&Könyvjelzők" #. TRANSLATORS: This is the key shortcut used in menus on Windows, some languages call them differently #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Alt+" msgstr "Alt+" #, c-format msgid "Set bookmark %i" msgstr "%i könyvjelző beállítása" #, c-format msgid "Go to bookmark %i" msgstr "Ugrás a(z) %i könyvjelzőre" #, c-format msgid "Set Bookmark %i" msgstr "%i könyvjelző beállítása" #, c-format msgid "Go to Bookmark %i" msgstr "Ugrás a(z) %i könyvjelzőre" msgid "Hide Sidebar" msgstr "Oldalsáv elrejtése" msgid "Show Sidebar" msgstr "Oldalsáv megjelenítése" msgid "Hide Status Bar" msgstr "Állapotsor elrejtése" msgid "Show Status Bar" msgstr "Állapotsor megjelenítése" msgid "Source text:" msgstr "Forrásszöveg:" msgid "Singular:" msgstr "Egyes szám:" msgid "Plural:" msgstr "Többes szám:" msgid "Translation:" msgstr "Fordítás:" msgid "Pre-translated" msgstr "Előfordított" msgid "Needs Work" msgstr "Munkát igényel" #. TRANSLATORS: This indicates that the string's translation isn't final #. and has known problems. For example, it might be machine translated or #. fuzzy matched from an older string. The translation should be short and #. convey this. If it's problematic to translate it, "Needs review" is #. acceptable substitute, but note that the meaning is subtly different: #. "needs review" implies that somebody else should review the string after #. I am done with it (i.e. consider it good), while "needs work" implies I #. need to return to it and finish the translation. msgid "Needs work" msgstr "Munkát igényel" msgid "" "POT files are only templates and don’t contain any translations themselves.\n" "To make a translation, create a new PO file based on the template." msgstr "" "A POT fájl csak egy sablon és nem tartalmaz fordításokat.\n" "Fordítás készítéséhez hozzon létre egy új PO fájlt a sablon alapján." msgid "Create New Translation" msgstr "Új fordítás létrehozása" msgid "Create new translation" msgstr "Új fordítási projekt létrehozása" msgid "Everything" msgstr "Minden" #, c-format msgid "Form %i" msgstr "%i. alak" msgid "Singular" msgstr "Egyes szám" msgid "Zero" msgstr "Nulla" msgid "One" msgstr "Egy" msgid "Two" msgstr "Kettő" msgid "Plural" msgstr "Többes szám" msgid "Other" msgstr "Egyéb" #, c-format msgid "%s Format" msgstr "%s formátum" #. TRANSLATORS: %s is replaced with language name, e.g. "PHP" or "C", so "PHP Format" etc." #, c-format msgid "%s format" msgstr "%s formátum" msgid "Source text" msgstr "Forrásszöveg" #, c-format msgid "Translation — %s" msgstr "Fordítás — %s" msgid "ID" msgstr "Azonosító" #, c-format msgid "Source text — %s" msgstr "Forrásszöveg — %s" msgid "unknown language" msgstr "ismeretlen nyelv" #, c-format msgid "Failed command: %s" msgstr "Sikertelen parancs: %s" msgid "Failed to merge gettext catalogs." msgstr "A gettext katalógusok egyesítése meghiúsult." msgid "Source file" msgstr "Forrásfájl" msgid "Source file occurrence:" msgstr "Forrásfájli előfordulás:" msgid "Open in Editor" msgstr "Megnyitás a szerkesztőben" msgid "Open in editor" msgstr "Megnyitás a szerkesztőben" msgid "No references for the selected item." msgstr "A kiválasztott elemhez nincs referencia." #, c-format msgid "Error opening file %s!" msgstr "Hiba a(z) %s fájl megnyitásakor!" msgid "Find" msgstr "Keresés…" msgid "Replace" msgstr "Csere" #. TRANSLATORS: Expander in Find window for additional options (case sensitive etc.) msgid "Options" msgstr "Beállítások" msgid "Ignore case" msgstr "Nem kis-nagybetű érzékeny" msgid "Wrap around" msgstr "Körkörös keresés" msgid "Whole words only" msgstr "Csak teljes szóra" msgid "Find in source texts" msgstr "Keresés a forrásszövegben" msgid "Find in translations" msgstr "Keresés a fordításban" msgid "Find in comments" msgstr "Keresés a megjegyzésekben" msgid "Close" msgstr "Bezárás" msgid "Replace &All" msgstr "Összes cseréje" msgid "Replace &all" msgstr "Összes cseréje" msgid "&Replace" msgstr "Csere" msgid "< &Previous" msgstr "< Előző" msgid "&Next >" msgstr "Következő >" msgid "String to find" msgstr "Keresendő karakterlánc" msgid "Replacement string" msgstr "Behelyettesítendő karakterlánc" #, c-format msgid "Cannot execute program: %s" msgstr "A programot nem lehet futtatni: %s" msgid "Language Code or Name (e.g. en_GB)" msgstr "Nyelv kódja vagy neve (pl. hu_HU)" msgid "Translation Language" msgstr "Fordítás nyelve" msgid "Language of the translation:" msgstr "A fordítás nyelve:" msgid "Poedit - Catalogs manager" msgstr "Poedit – Katalóguskezelő" msgid "Catalog" msgstr "Katalógus" msgid "Total" msgstr "Összes" msgid "Untrans" msgstr "Lefordítatlan" msgid "Errors" msgstr "Hibák" msgid "Last modified" msgstr "Utoljára módosítva" msgid "Select directory" msgstr "Válassza ki a könyvtárat" msgid "Directories:" msgstr "Könyvtárak:" msgid "" msgstr "" msgid "Do you want to delete the project?" msgstr "Tényleg törölni szeretné a projektet?" msgid "Confirmation" msgstr "Megerősítés" msgid "" "Do you really want to do mass update of\n" "all catalogs in this project?" msgstr "" "Tényleg szeretné frissíteni a projektben\n" "található összes katalógust?" msgid "Information about the translator" msgstr "Információk a fordítóról" msgid "Name:" msgstr "Név:" msgid "Your Name" msgstr "Az Ön neve" msgid "Email:" msgstr "E-mail:" msgid "your_email@example.com" msgstr "az_Ön_emailcíme@példa.com" msgid "" "Your name and email address are only used to set the Last-Translator header " "of GNU gettext files." msgstr "" "Az Ön neve és e-mail címe csak a GNU gettext fájlok\n" "Last-Translator fejlécének beállítására szolgál." msgid "Editing" msgstr "Szerkesztés" msgid "Automatically compile MO file when saving" msgstr "MO fájl automatikus létrehozása mentéskor" msgid "Show summary after catalog update" msgstr "Összefoglaló megjelenítése a katalógus frissítése után" msgid "Check spelling" msgstr "Helyesírás-ellenőrzés" msgid "Always change focus to text input field" msgstr "Mindig a beviteli mező legyen az aktív" msgid "" "Never let the list of strings take focus. If enabled, you must use Ctrl-" "arrows for keyboard navigation but you can also type text immediately, " "without having to press Tab to change focus." msgstr "" "Soha ne legyen aktív a szöveglista. Ha be van kapcsolva, akkor a mozgáshoz a " "Ctrl+nyilakat kell használni, de a szöveg azonnal gépelhető anélkül, hogy " "előtte Tabot kellene nyomni a fókusz váltásához." msgid "Appearance" msgstr "Megjelenés" msgid "Use custom list font:" msgstr "Egyéni lista betűtípus használata:" msgid "Use custom text fields font:" msgstr "Egyéni szövegmező betűtípus használata:" msgid "Change UI language" msgstr "Felület nyelvének változtatása" #. TRANSLATORS: This is a note appended to "Check spelling" when running on older Windows versions msgid "(requires Windows 8 or newer)" msgstr "(Windows 8-as vagy újabb szükséges)" msgid "General" msgstr "Általános" msgid "Use translation memory" msgstr "Fordítási memória használata" msgid "Learn From Files…" msgstr "Beolvasás fájlból…" msgid "Learn from files…" msgstr "Beolvasás fájlból…" #. TRANSLATORS: This is a button that deletes everything in the translation memory (i.e. clears/resets it). msgid "Reset" msgstr "Törlés" #. TRANSLATORS: Followed by "match translations within the file" or "pre-translate from TM" msgid "When updating from sources" msgstr "Forrásokból frissítésekor" #. TRANSLATORS: Preceded by "When updating from sources" msgid "fuzzy match within the file" msgstr "fuzzy megfelelő a fájlon belül" #. TRANSLATORS: Preceded by "When updating from sources" msgid "pre-translate from TM" msgstr "előfordítás TM-ből" msgid "" "Poedit can attempt to fill in new entries from only previous translations in " "the file or from your entire translation memory. Using the TM won’t be very " "effective if it’s near-empty, but it will get better as you add more " "translations to it." msgstr "" "A Poedit megpróbálhat újabb bejegyzéseket betölteni a korábbi fordításokból " "amik a fájlban vagy a teljes fordítási memóriájában vannak. A TM használata " "akkor még nem nagyon hatásos, ha majdnem üres, de amikor több fordítást ad " "hozzá, akkor egyre jobb lesz." msgid "Stored translations:" msgstr "Tárolt fordítások:" msgid "Database size on disk:" msgstr "Adatbázis méret a lemezen:" msgid "Select translation files to import" msgstr "Importálandó fordítás fájlok kiválasztása" msgid "Translation Memory" msgstr "Fordítási memória" msgid "Importing translations…" msgstr "Fordítások importálása…" msgid "Finalizing…" msgstr "Befejezés…" msgid "Reset translation memory" msgstr "Fordítási memória törlése" msgid "Are you sure you want to reset the translation memory?" msgstr "Biztos benne, hogy törölni akarja a fordítási memóriát?" msgid "" "Resetting the translation memory will irrevocably delete all stored " "translations from it. You can’t undo this operation." msgstr "" "A fordítási memória törlésével visszavonhatatlanul töröl minden benne tárolt " "fordítást. Ez a művelet nem vonható vissza." msgid "Cancel" msgstr "Mégse" #. TRANSLATORS: This is abbreviation of "Translation Memory" used in Preferences on macOS. #. Long text looks weird there, too short (like TM) too, but less so. "General" is about ideal #. length there. msgid "TM" msgstr "FM" msgid "" "Source code extractors are used to find translatable strings in the source " "code files and extract them so that they can be translated." msgstr "" "A forráskód kivonatoló szolgál a lefordítható karakterláncok forráskód " "fájlokban való megkeresésére és kivonatolására annak érdekében, hogy le " "lehessen őket fordítani." msgid "Custom Extractors:" msgstr "Egyéni kivonatolók:" msgid "Custom extractors:" msgstr "Egyéni kivonatolók:" msgid "Edit…" msgstr "Szerkesztés…" msgid "GNU gettext" msgstr "GNU-Gettext" msgid "" "Supports all programming languages recognized by GNU gettext tools (PHP, C/C+" "+, C#, Perl, Python, Java, JavaScript and others)." msgstr "" "GNU-gettext eszközök (PHP, C/C++, C#, Perl, Python, Java, JavaScript és " "mások) által elismert minden programozási nyelvet támogat." msgid "Delete extractor" msgstr "Kivonatoló törlése" #, c-format msgid "Are you sure you want to delete the “%s” extractor?" msgstr "Biztosan törölni szeretné a \"%s\" kivonatolót?" msgid "Extractors" msgstr "Kivonatolók" msgid "Accounts" msgstr "Fiókok" msgid "Automatically check for updates" msgstr "Frissítések automatikus keresése" msgid "Include beta versions" msgstr "Beleértve a béta verziókat is." msgid "" "Beta versions contain the latest new features and improvements, but may be a " "bit less stable." msgstr "" "Béta verziók a legújabb funkciókat és fejlesztéseket tartalmazzák, de " "előfordulhat, hogy egy kicsit kevésbé stabilak." msgid "Updates" msgstr "Frissítések" msgid "" "These settings affect internal formatting of PO files. Adjust them if you " "have specific requirements e.g. because of version control." msgstr "" "Ezek a beállítások befolyásolják a PO fájlokat belső formázását. Csak " "speciális követelmények - pl. verzió kezelés - esetén változtassa meg őket." msgid "Line endings:" msgstr "Sorvégek:" msgid "Unix (recommended)" msgstr "Unix (javasolt)" msgid "Windows" msgstr "Windows" #. TRANSLATORS: Followed by text control for entering number; wraps text at given width msgid "Wrap at:" msgstr "Szöveg szélesség:" msgid "Preserve formatting of existing files" msgstr "A meglévő fájlok formázásának megőrzése" msgid "Advanced" msgstr "Speciális" msgid "Pre-translating…" msgstr "Előfordítás…" #, c-format msgid "Pre-translated %u string" msgid_plural "Pre-translated %u strings" msgstr[0] "Előfordított %u sor" msgstr[1] "Előfordított %u sor" #. TRANSLATORS: This is a somewhat common term describing the action where #. you apply the translation memory and/or machine translation to all of the #. strings you're translating as the first step, followed by correcting, #. improving etc., i.e. actually translating the strings. This may be tricky #. to express in other languages as simply as in English, but please try to #. keep it similarly concise. Please try to avoid, if possible, describing it #. as "auto-translation" and similar, because such terminology would mislead #. some users into thinking it's all that needs to be done (spoken from #. experience). "Pre-translate" nicely expresses that it's only the step done #. *before* actual translation. msgid "Pre-translate" msgstr "Előfordítás" msgid "Only fill in exact matches" msgstr "Csak pontos egyezés esetén" msgid "" "By default, inaccurate results are filled in as well and marked as needing " "work. Check this option to only include accurate matches." msgstr "" "Alapesetben a pontatlan eredmények is - bizonytalanként jelölve - " "belekerülnek a fordításba. Bejelölve ezt az opciót, csak pontos egyezés " "esetén lesz kitöltve." msgid "Don’t mark exact matches as needing work" msgstr "Ne jelölje meg a pontos egyezést, mivel munkát igényel" msgid "" "Only enable if you trust the quality of your TM. By default, all matches " "from the TM are marked as needing work and should be reviewed before use." msgstr "" "Csak akkor engedélyezze, ha megbízik a TM minőségében. Alapértelmezés " "szerint a TM minden egyezését Munkát igényel kifejezéssel jelöltük meg, és " "használat előtt ellenőriznie kell." msgid "" "Pre-translation automatically finds exact or fuzzy matches for untranslated " "strings in the translation memory and fills in their translations." msgstr "" "Az előfordítás automatikusan megtalálja a fordítási memóriában a " "lefordítatlan karakterláncok pontos vagy fuzzy illeszkedését, és beírja a " "fordításokat." #, c-format msgid "%d entry was pre-translated." msgid_plural "%d entries were pre-translated." msgstr[0] "%d elem előfordítva." msgstr[1] "%d elem előre lefordítva." msgid "" "The translations were marked as needing work, because they may be " "inaccurate. You should review them for correctness." msgstr "" "A fordítások bizonytalannak lettek jelölve, mert lehet, hogy pontatlanok. A " "pontosításukhoz át kellene nézni ezeket." msgid "No entries could be pre-translated." msgstr "A bejegyzést nem lehet előfordítani." msgid "" "The TM doesn’t contain any strings similar to the content of this file. It " "is only effective for semi-automatic translations after Poedit learns enough " "from files that you translated manually." msgstr "" "A FM nem tartalmaz a fájl tartalmat hasonló karakterláncokat. A félautomata " "fordítás csak azután lesz hatékony miután Poedit eleget tanult a Ön által " "manuálisan lefordított fájlokból." msgid "" "Drag and Drop Folders Here\n" "\n" "or use the + button" msgstr "" "Húzza ide a mappákat\n" "\n" "vagy használja a + gombot" msgid "" "Drag and drop folders here\n" "\n" "or use the + button" msgstr "" "Húzza ide a mappákat\n" "\n" "vagy használja a + gombot" msgid "Add Folders…" msgstr "Mappák hozzáadása…" msgid "Add folders…" msgstr "Mappák hozzáadása…" msgid "Add Files…" msgstr "Fájlok hozzáadása…" msgid "Add files…" msgstr "Fájlok hozzáadása…" msgid "Add Wildcard…" msgstr "Helyettesítő karakter hozzáadása…" msgid "Add wildcard…" msgstr "Helyettesítő karakter hozzáadása…" msgid "Paths" msgstr "Útvonalak" msgid "Excluded paths" msgstr "Kizárt elérési utak" msgid "Advanced extraction settings" msgstr "Speciális kibontási beállítások" msgid "Extract notes for translators from:" msgstr "Kibontás jegyzetek a következő fordítóktól:" msgid "Comments prefixed with:" msgstr "Megjegyzések előtaggal:" msgid "All comments" msgstr "Összes megjegyzés" msgid "Additional xgettext flags:" msgstr "Kiegészítő xgettext jelzők:" msgid "Additional keywords" msgstr "Kiegészítő kulcsszavak" msgid "Name of the project the translation is for" msgstr "A projekt megnevezése, és aminek a fordítása:" msgid "Team name and email address or URL" msgstr "Csapat neve és email címe vagy URL" msgid "e.g. nplurals=2; plural=(n > 1);" msgstr "pl. nplurals=2; plural=(n != 1);" msgid "UTF-8 (recommended)" msgstr "UTF-8 (javasolt)" msgid "Please save the file first. This section cannot be edited until then." msgstr "" "Kérjük először mentse el fájlt. Ez a szakasz mindaddig nem lesz szerkeszthető" msgid "Not all plural forms are translated." msgstr "Nincs az összes többes szám lefordítva." msgid "The translation should start as a sentence." msgstr "A fordítást mondatként kell kezdeni." msgid "The translation should start with a lowercase character." msgstr "A fordítást kisbetűvel kell kezdeni." msgid "The translation doesn’t start with a space." msgstr "A fordítás nem kezdődhet szóközzel." msgid "The translation starts with a space, but the source text doesn’t." msgstr "A fordítás szóközzel kezdődik, de a forrásszöveg nem." msgid "The translation is missing a newline at the end." msgstr "A fordítás végén hiányzik egy új sor." msgid "The translation ends with a newline, but the source text doesn’t." msgstr "A fordítás egy új sorral végződik, de a forrásszöveg nem." msgid "The translation is missing a space at the end." msgstr "A fordítás végén hiányzik egy szóköz." msgid "The translation ends with a space, but the source text doesn’t." msgstr "A fordítás végén hiányzik egy szóköz, de a forrásszövegben nem." #, c-format msgid "The translation should end with “%s”." msgstr "A fordítás végére \"%s\" kell." #, c-format msgid "The translation should not end with “%s”." msgstr "A fordítás végére nem kell \"%s\"." #, c-format msgid "The translation ends with “%s”, but the source text ends with “%s”." msgstr "A fordítás végére \"%s\" kell, de a forrásszöveg végén “%s” van." msgid "Comment:" msgstr "Megjegyzés:" msgid "OK" msgstr "OK" msgid "C&lear" msgstr "Tör&lés" msgid "Clear the comment" msgstr "Megjegyzés törlése" msgid "New" msgstr "Új" msgid "Create new translations project" msgstr "Új fordítási projekt létrehozása" msgid "Edit" msgstr "Szerkesztés" msgid "Edit the project" msgstr "A projekt szerkesztése" msgid "Delete the project" msgstr "Projekt törlése" msgid "Update all" msgstr "Összes frissítése" msgid "Update all catalogs in the project" msgstr "A projekt összes katalógusának frissítése" msgid "Edit project" msgstr "Projekt szerkesztése" msgid "Project name:" msgstr "Projekt neve:" msgid "Browse" msgstr "Tallózás" msgid "Add directory to the list" msgstr "Könyvtár hozzáadása a listához" msgid "&New…" msgstr "Új…" msgid "New from &POT/PO file…" msgstr "Új POT/PO fájlból…" msgid "New From &POT/PO File…" msgstr "Új POT/PO fájlból…" msgid "&Open…" msgstr "Megnyitás…" msgid "Open Recent" msgstr "Legutóbbi megnyitása" msgid "Open from Crowdin…" msgstr "Megnyitás a Crowdin-ról…" msgid "Open From Crowdin…" msgstr "Megnyitás a Crowdin-ról…" msgid "&Close" msgstr "Be&zárás" msgid "&Save" msgstr "Menté&s" msgid "Save &as…" msgstr "Mentés másként…" msgid "Save &As…" msgstr "Mentés másként…" msgid "Compile to MO…" msgstr "Fordítás MO-ra…" msgid "E&xport as HTML…" msgstr "Exportálás HTML-ként…" msgid "Check for updates…" msgstr "Frissítések ellenőrzése…" msgid "&Preferences…" msgstr "Tulajdonságok…" msgid "Catalogs &manager" msgstr "&Katalóguskezelő" msgid "Catalogs &Manager" msgstr "&Katalóguskezelő" msgid "E&xit" msgstr "K&ilépés" msgid "Quit" msgstr "Kilépés" msgid "Copy from singular" msgstr "Másolás az egyes számból" msgid "Copy From Singular" msgstr "Másolás az egyes számból" msgid "Translation needs &work" msgstr "Fordítási munkát igényel" msgid "Translation Needs &Work" msgstr "Fordítási munkát igényel" msgid "Edit &comment" msgstr "&Megjegyzés szerkesztése" msgid "Edit &Comment" msgstr "&Megjegyzés szerkesztése" msgid "Suggestions" msgstr "Javaslatok" msgid "&Find…" msgstr "Keresés…" msgid "Replace…" msgstr "Csere…" msgid "Find next" msgstr "Következő keresése" msgid "Find previous" msgstr "Előző keresése" msgid "Find and Replace…" msgstr "Keresés és csere…" msgid "Find Next" msgstr "Következő keresése" msgid "Find Previous" msgstr "Előző keresése" msgid "&Preferences" msgstr "&Beállítások" msgid "Display entry &IDs" msgstr "Bejegyzés &azonosítók megjelenítése" msgid "Display Entry &IDs" msgstr "Bejegyzés &azonosítók megjelenítése" msgid "Sort by &file order" msgstr "Rendezés &fájlsorrend szerint" msgid "Sort by &File Order" msgstr "Rendezés &fájlsorrend szerint" msgid "Sort by &source" msgstr "Rendezés f&orrás szerint" msgid "Sort by &Source" msgstr "Rendezés f&orrás szerint" msgid "Sort by &translation" msgstr "Rendezés for&dítás szerint" msgid "Sort by &Translation" msgstr "Rendezés for&dítás szerint" msgid "&Group by context" msgstr "Szövegkörnyezeti &csoportosítás" msgid "&Group By Context" msgstr "Szövegkörnyezeti &csoportosítás" msgid "Entries with errors first" msgstr "Hibás bejegyzések elöl" msgid "Entries with Errors First" msgstr "Hibás bejegyzések elöl" msgid "&Untranslated entries first" msgstr "&Lefordítatlan bejegyzések előre" msgid "&Untranslated Entries First" msgstr "&Lefordítatlan bejegyzések előre" msgid "&Show references" msgstr "&Hivatkozások megjelenítése" msgid "&Show References" msgstr "&Hivatkozások megjelenítése" msgid "Show sidebar" msgstr "Oldalsáv megjelenítése" msgid "Show status bar" msgstr "Állapotsor megjelenítése" msgid "C&atalog" msgstr "&Katalógus" msgid "&Update from sources" msgstr "Frissítés a &forrásokból" msgid "&Update from Sources" msgstr "Frissítés a &forrásokból" msgid "Update from &POT file…" msgstr "Frissítés POT fájlból…" msgid "Update from &POT File…" msgstr "Frissítés POT fájlból…" msgid "Sync with Crowdin" msgstr "Szinkronizáció a Crowdin-nel" msgid "Pre-&translate…" msgstr "Előfordítás…" msgid "&Purge deleted translations" msgstr "Törölt &fordítások tisztítása" msgid "&Purge Deleted Translations" msgstr "Törölt &fordítások végleges törlés" msgid "&Validate translations" msgstr "Fordítások ér&vényesítése" msgid "&Validate Translations" msgstr "Fordítások ér&vényesítése" msgid "&Properties…" msgstr "Tulajdonságok…" msgid "&Done and next" msgstr "K&ész és következő" msgid "&Done and Next" msgstr "K&ész és következő" msgid "&Previous translation" msgstr "&Előző fordítás" msgid "&Previous Translation" msgstr "&Előző fordítás" msgid "&Next translation" msgstr "&Következő fordítás" msgid "&Next Translation" msgstr "&Következő fordítás" msgid "P&revious unfinished" msgstr "El&őző befejezetlen" msgid "P&revious Unfinished" msgstr "El&őző befejezetlen" msgid "Ne&xt unfinished" msgstr "K&övetkező befejezetlen" msgid "Ne&xt Unfinished" msgstr "K&övetkező befejezetlen" msgid "Previous plural form" msgstr "Előző többes számú alak" msgid "Previous Plural Form" msgstr "Előző többes számú alak" msgid "Next plural form" msgstr "Következő többes számú alak" msgid "Next Plural Form" msgstr "Következő többes számú alak" msgid "&Online help" msgstr "&Online súgó" msgid "&Online Help" msgstr "&Online súgó" msgid "&GNU gettext manual" msgstr "&GNU gettext kézikönyv" msgid "&GNU gettext Manual" msgstr "&GNU gettext kézikönyv" msgid "&About Poedit" msgstr "Poedit &névjegye" msgid "&About" msgstr "&Névjegy" msgid "Extractor setup" msgstr "Kivonatoló beállítása" msgid "List of extensions separated by semicolons (e.g. *.cpp;*.h):" msgstr "Kiterjesztések listája pontosvesszővel elválasztva (pl. *.cpp;*.h):" msgid "Invocation:" msgstr "Végrehajtás:" msgid "Command to extract translations:" msgstr "Fordítás kivonatoló parancs:" msgid "" "This is the command used to launch the extractor.\n" "%o expands to the name of output file, %K to list\n" "of keywords, %F to list of input files,\n" "%C to charset flag (see below)." msgstr "" "Ezzel a paranccsal lesz indítva a kivonatoló.\n" "%o jelenti a kimeneti fájl nevét, %K a kulcsszavak\n" "listáját, %F a bemeneti fájlokat,\n" " %C pedig a karakterkódolást (lásd lejjebb)." msgid "An item in keywords list:" msgstr "Egy elem a kulcsszavak listájában:" msgid "" "This will be attached to the command line once\n" "for each keyword. %k expands to the keyword." msgstr "" "Ez minden kulcsszónál egyszer a parancssor\n" "végéhez lesz fűzve. %k jelenti a kulcsszót." msgid "An item in input files list:" msgstr "Egy elem a bemeneti fájlok listájában:" #, c-format msgid "" "This will be attached to the command line once\n" "for each input file. %f expands to the filename." msgstr "" "Ez minden bemeneti fájlnál egyszer a parancssor\n" "végéhez lesz fűzve. %f jelenti a fájl nevét." msgid "Source code charset:" msgstr "Forráskód karakterkódolás:" #, c-format msgid "" "This will be attached to the command line\n" "only if source code charset was given. %c expands to charset value." msgstr "" "Ez csak akkor lesz a parancssorhoz fűzve, ha forráskód\n" "karakterkódolás meg lett adva. %c jelenti a karakterkódolás értékét." msgid "Catalog properties" msgstr "Katalógus tulajdonságok" msgid "Project name and version:" msgstr "Projekt neve és verziószáma:" msgid "Language team:" msgstr "Nyelvi csoport:" msgid "Plural forms:" msgstr "Többes számú alakok:" msgid "Use default rules for this language" msgstr "Alapértelmezett szabályok használata ehhez a nyelvhez" msgid "Use custom expression" msgstr "Egyéni kifejezés használata" msgid "Learn about plural forms" msgstr "Tudjon meg többet a többes számú alakokról" msgid "Charset:" msgstr "Karakterkódolás:" msgid "Advanced Extraction Settings…" msgstr "Speciális kibontási beállítások…" msgid "Advanced extraction settings…" msgstr "Speciális kibontási beállítások…" msgid "Translation Properties" msgstr "Fordítás tulajdonságai" msgid "Translation properties" msgstr "Fordítás tulajdonságai" msgid "Sources Paths" msgstr "Források útvonalai" msgid "Sources paths" msgstr "Források útvonalai" msgid "Extract text from source files in the following directories:" msgstr "Szövegek kinyerése a következő könyvtárakban lévő forrásfájlokból:" msgid "Base path:" msgstr "Alap útvonal:" msgid "Sources Keywords" msgstr "Források kulcsszavai" msgid "Sources keywords" msgstr "Források kulcsszavai" msgid "" "Use these keywords (function names) to recognize translatable strings\n" "in source files:" msgstr "" "Használja ezeket a kulcsszavakat (függvény neveket) a forrásfájlokban lévő\n" "lefordítható szövegek felismeréséhez:" msgid "Also use default keywords for supported languages" msgstr "A támogatott nyelvek alapértelmezett kulcsszavai is használhatók" msgid "Learn About Gettext Keywords" msgstr "Tudjon meg többet a Gettext kulcsszavakról" msgid "Learn about gettext keywords" msgstr "Tudjon meg többet a gettext kulcsszavakról" msgid "Update summary" msgstr "Frissítési összefoglaló" msgid "" "These strings were found in the sources but were not in the catalog.\n" "Poedit will add them to the catalog now." msgstr "" "Ezek a katalógusból hiányzó szövegek voltak megtalálhatóak a forrásokban.\n" "A Poedit most hozzáadja őket a katalógushoz." msgid "New strings" msgstr "Új szövegek" msgid "" "These strings are no longer in the sources.\n" "Poedit will remove them from the catalog now." msgstr "" "Ezek a szövegek már nem találhatóak meg a forrásokban.\n" "A Poedit most törli őket a katalógusból." msgid "Obsolete strings" msgstr "Elavult szövegek" msgid "(0 new, 0 obsolete)" msgstr "(0 új, 0 elavult)" msgid "Open" msgstr "Megnyitás" msgid "Save catalog" msgstr "Katalógus mentése" msgid "Validate" msgstr "Érvényesítés" msgid "Check for errors in the translation" msgstr "Hibák keresése a fordításban" msgid "Update" msgstr "Frissítés" msgid "Update catalog - synchronize it with sources" msgstr "Katalógus frissítése - szinkronizálás a forrásokhoz" msgid "Sidebar" msgstr "Oldalsáv" msgid "Show or hide the sidebar" msgstr "Oldalsáv megjelenítése/elrejtése" #. TRANSLATORS: "Previous" as in used in the past, now replaced with newer. msgid "Previous source text:" msgstr "Előző forrásszöveg:" msgid "" "The old source text (before it changed during an update) that the now-" "inaccurate translation corresponds to." msgstr "" "A régi forrásszöveg (a frissítést megelőző állapotú), ami bizonytalan " "fordításnak tekinthető." msgid "Notes for translators:" msgstr "Megjegyzések a fordítóknak:" msgid "Add comment" msgstr "Hozzászólás" msgid "Add Comment" msgstr "Hozzászólás" msgid "Translation suggestions:" msgstr "Fordítási javaslatok:" #. TRANSLATORS: This is shown when no translation suggestions can be found in the TM (Windows). msgid "No matches found" msgstr "Nincs találat" #. TRANSLATORS: This is shown when no translation suggestions can be found in the TM (macOS, Linux). msgid "No Matches Found" msgstr "Nincs találat" msgid "This string was found in Poedit’s translation memory." msgstr "Erre a karakterláncra a Poedit fordítási memóriájában találtunk rá." msgid "Cannot create temporary directory." msgstr "Az ideiglenes fájlok könyvtárát nem lehet létrehozni." msgid "Welcome to Poedit" msgstr "Üdvözöljük a Poeditnél" #. TRANSLATORS: This is version information in about dialog, "%s" will be #. version number when used #, c-format msgid "Version %s" msgstr "%s verzió" msgid "Edit a Translation" msgstr "Fordítás szerkesztése" msgid "Edit a translation" msgstr "Fordítás szerkesztése" msgid "Open an existing PO file and edit the translation." msgstr "Egy létező PO fájl megnyitása, és a fordítás szerkesztése" msgid "" "Take an existing PO file or POT template and create a new translation from " "it." msgstr "" "Egy már meglévő PO fájl vagy POT sablon kiválasztása és új fordítás " "készítése belőle." msgid "Collaborate on a Translation with Others" msgstr "Együttműködés egy fordításban másokkal" msgid "Collaborate on a translation with others" msgstr "Együttműködés egy fordításban másokkal" msgid "" "Download a file from Crowdin project, translate and sync your changes back." msgstr "" "Töltsön le egy fájlt egy Crowdin projektből, fordítsa le, majd " "szinkronizálja Crowdin-en lévőkkel." msgid "What is Crowdin?" msgstr "Mi az a Crowdin?" msgid "There are no translations. That’s unusual." msgstr "Nem léteznek fordítások. Ez szokatlan." msgid "" "Translatable entries aren’t added manually in the Gettext system, but are " "automatically extracted\n" "from source code. This way, they stay up to date and accurate.\n" "Translators typically use PO template files (POTs) prepared for them by the " "developer." msgstr "" "A Gettext rendszerben a fordítható bejegyzések nem adhatók hozzá kézzel, a " "kinyerésük a forráskódból\n" "automatikusan történik. Ily módon mindig naprakész és pontos lesz.\n" "A fordítók jellemzően a fejlesztők által számukra készített PO sablon " "fájlokat (POT) használják." msgid "(Learn more about GNU gettext)" msgstr "(Tudjon meg többet a GNU gettextről)" msgid "The simplest way to fill this catalog is to update it from a POT:" msgstr "" "A legegyszerűbb módja a katalógus kitöltésének, ha frissíti egy POT fájlból:" msgid "Update from POT" msgstr "Frissítés &POT fájlból…" msgid "Take translatable strings from an existing POT template." msgstr "Lefordítható karakterláncok egy már létező POT sablonból" msgid "" "You can also extract translatable strings directly from the source code:" msgstr "" "Közvetlenül a forráskódból is kinyerhet lefordítható karaktersorozatokat:" msgid "Extract from sources" msgstr "Kinyerés forrás fájlból" msgid "Configure source code extraction in Properties." msgstr "Forráskód extrakció konfigurálása a Tulajdonságok panelen" msgid "Sync" msgstr "Szinkronizáció" msgid "Synchronize the translation with Crowdin" msgstr "Fordítások szinkronizálása a Crowdin-nel" #. TRANSLATORS: This is titlebar of about dialog, "%s" is application name #. ("Poedit" here, but please use "%s") #, c-format msgid "About %s" msgstr "%s névjegye" #. TRANSLATORS: Title of the preferences window on Windows and Linux. "%s" is replaced with "Poedit" when running. #, c-format msgid "%s Preferences" msgstr "%s beállításai" #. TRANSLATORS: macOS item in app menu msgid "Services" msgstr "Szolgáltatások" #. TRANSLATORS: macOS item in app menu, %s is replaced with "Poedit" #, c-format msgid "Hide %s" msgstr "%s elrejtése" #. TRANSLATORS: macOS item in app menu msgid "Hide Others" msgstr "Többi elrejtése" #. TRANSLATORS: macOS item in app menu msgid "Show All" msgstr "Mindet mutat" #. TRANSLATORS: macOS item in app menu, %s is replaced with "Poedit" #, c-format msgid "Quit %s" msgstr "Kilépés a %s-ből" #. TRANSLATORS: macOS item in app menu msgid "Preferences…" msgstr "Tulajdonságok…" msgid "Preferences..." msgstr "Beállítások..." #. TRANSLATORS: Title of a category in Windows task menu (right-click icon in taskbar) msgid "Recent" msgstr "Legutóbbi" #. TRANSLATORS: Title of a category in Windows task menu (right-click icon in taskbar) msgid "Frequent" msgstr "Gyakori" msgid "&Apply" msgstr "Alkalmaz" msgid "Apply" msgstr "Alkalmaz" msgid "&Back" msgstr "Vissza" msgid "Back" msgstr "Vissza" msgid "&Cancel" msgstr "Mégsem" msgid "&Clear" msgstr "Töröl" msgid "Clear" msgstr "Töröl" msgid "Copy" msgstr "Másolás" msgid "Cu&t" msgstr "&Kivágás" msgid "Cut" msgstr "Kivágás" msgid "&Delete" msgstr "&Törlés" msgid "&Quit" msgstr "Kilépés" msgid "File" msgstr "Fájl" msgid "Help" msgstr "Súgó" msgid "&New" msgstr "Új" msgid "&No" msgstr "Nem" msgid "No" msgstr "Nem" msgid "&OK" msgstr "OK" msgid "Open…" msgstr "Megnyitás…" msgid "&Open..." msgstr "&Megnyitás…" msgid "Open..." msgstr "Megnyitás..." msgid "&Paste" msgstr "&Beillesztés" msgid "Paste" msgstr "Beillesztés" msgid "Preferences" msgstr "Beállítások" msgid "&Redo" msgstr "&Mégis" msgid "Refresh" msgstr "Frissítés" msgid "&Save as" msgstr "Mentés másként" msgid "Save as" msgstr "Mentés másként" msgid "Select &All" msgstr "Min&den kijelölése" msgid "Select All" msgstr "Minden kijelölése" msgid "&Undo" msgstr "&Visszavonás" msgid "&Yes" msgstr "Igen" msgid "Yes" msgstr "Igen" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Shift+" msgstr "Shift+" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Enter" msgstr "Enter" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Up" msgstr "Fel" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Down" msgstr "Le" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Left" msgstr "Balra" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Right" msgstr "Jobbra" #. TRANSLATORS: Keyboard shortcut, must correspond to translation of "Ctrl+" msgid "ctrl" msgstr "ctrl" #. TRANSLATORS: Keyboard shortcut, must correspond to translation of "Alt+" msgid "alt" msgstr "alt" #. TRANSLATORS: Keyboard shortcut, must correspond to translation of "Shift+" msgid "shift" msgstr "shift" poedit-2.0.6/locales/uk.po0000664000372000037200000020603313230131554012326 00000000000000msgid "" msgstr "" "Project-Id-Version: poedit\n" "Report-Msgid-Bugs-To: help@poedit.net\n" "POT-Creation-Date: 2017-12-05 15:52+0100\n" "PO-Revision-Date: 2017-09-21 11:20-0400\n" "Last-Translator: vslavik \n" "Language-Team: Ukrainian\n" "Language: uk_UA\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" "%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" "X-Generator: crowdin.com\n" "X-Crowdin-Project: poedit\n" "X-Crowdin-Language: uk\n" "X-Crowdin-File: /locales/poedit.pot\n" msgid "Hide this notification message" msgstr "Сховати це повідомлення" msgid "Don’t Show Again" msgstr "Не показувати знову" msgid "Don’t show again" msgstr "Не показувати знову" #, c-format msgid "(New: %i, obsolete: %i)" msgstr "(Нових: %i, застарілих: %i)" msgid "Updating catalog" msgstr "Поновлюю каталог" msgid "Collecting source files…" msgstr "Збирання вихідних файлів…" msgid "Extracting translatable strings…" msgstr "Видобування рядків для перекладу…" msgid "Failed to load extracted catalog." msgstr "Не вдалося завантажити добутий каталог." msgid "Merging differences…" msgstr "Злиття відмінностей…" #, c-format msgid "“%s” is not a valid POT file." msgstr "„%s“ — некоректний POT-файл." #, c-format msgid "%i line of file “%s” was not loaded correctly." msgid_plural "%i lines of file “%s” were not loaded correctly." msgstr[0] "%i рядок файлу „%s“ було завантажено некоректно." msgstr[1] "%i рядки файлу „%s“ було завантажено некоректно." msgstr[2] "%i рядків файлу „%s“ було завантажено некоректно." #, c-format msgid "Line %d of file “%s” is corrupted (not valid %s data)." msgstr "Рядок %d файлу „%s“ пошкоджений (недійсні дані %s)." #, c-format msgid "Malformed header: “%s”" msgstr "Неправильний заголовок: „%s“" msgid "" "Broken catalog file: singular form msgstr used together with msgid_plural" msgstr "" "Зіпсований файл каталогу: msgstr у однині використана разом із формою " "множини msgid_plural" msgid "Broken catalog file: plural form msgstr used without msgid_plural" msgstr "" "Зіпсований файл каталогу: msgstr у множині використано без msgid_plural" msgid "" "There were errors when loading the catalog. Some data may be missing or " "corrupted as the result." msgstr "" "При завантаженні каталогу виникли помилки. В результаті деякі дані можуть " "бути відсутніми або бути пошкоджені." #, c-format msgid "Couldn’t load file %s, it is probably corrupted." msgstr "Неможливо завантажити файл %s. Можливо він пошкоджений." #, c-format msgid "" "File “%s” is read-only and cannot be saved.\n" "Please save it under different name." msgstr "" "Файл «%s» доступний лише для читання і не може бути збережений.\n" "Будь ласка, збережіть його з іншою назвою." #, c-format msgid "Couldn’t save file %s." msgstr "Неможливо зберегти файл %s." msgid "" "There was a problem formatting the file nicely (but it was saved all right)." msgstr "" "Сталися негаразди при спробі правильного форматування файлу (але його все " "одно збережено)." #, c-format msgid "" "The catalog couldn’t be saved in “%s” charset as specified in catalog " "settings.\n" "\n" "It was saved in UTF-8 instead and the setting was modified accordingly." msgstr "" "Каталог не вдалося зберегти в кодуванні «%s», як це зазначено в " "налаштуваннях каталогу.\n" "\n" "Натомість він був збережений в кодуванні UTF-8, і відповідно, були змінені " "налаштування." msgid "Error saving catalog" msgstr "Помилка збереження каталогу" msgid "PO Translation Files" msgstr "Файли перекладу PO" msgid "POT Translation Templates" msgstr "Шаблони перекладу POT" msgid "All Translation Files" msgstr "Всі файли перекладу" msgid "(Use default language)" msgstr "(Мова за замовчуванням)" msgid "Select your preferred language" msgstr "Виберіть бажану мову" msgid "Language selection" msgstr "Вибір мови" msgid "You must restart Poedit for this change to take effect." msgstr "Зміни набудуть чинності після перезапуску Poedit." msgid "Syncing" msgstr "Синхронізація" #. TRANSLATORS: %s is a cloud destination, e.g. "Crowdin" or ftp.wordpress.com etc. #, c-format msgid "Syncing with %s…" msgstr "Синхронізація з %s…" #. TRANSLATORS: %s is a cloud destination, e.g. "Crowdin" or ftp.wordpress.com etc. #, c-format msgid "Syncing with %s failed." msgstr "Не вдалось синхронізувати з %s." msgid "Syncing error" msgstr "Помилка синхронізації" msgid "Downloading translations is disabled in this project." msgstr "Завантаження перекладів відключена в цьому проекті." msgid "Not authorized, please sign in again." msgstr "Не авторизовані, повторіть будь ласка вхід." msgid "" "Crowdin is an online localization management platform and collaborative " "translation tool. Poedit can seamlessly sync PO files managed at Crowdin." msgstr "" "Crowdin це онлайн-платформа управління локалізаціями та інструмент для " "спільного перекладу. Poedit може легко синхронізувати файли PO, керованих в " "Crowdin." msgid "Sign In" msgstr "Увійти" msgid "Sign in" msgstr "Увійти" msgid "Sign Out" msgstr "Вийти" msgid "Sign out" msgstr "Вийти" msgid "Waiting for authentication…" msgstr "Очікування автентифікації…" msgid "Updating user information…" msgstr "Оновлення відомостей про користувача…" msgid "Signed in as:" msgstr "Увійшли як:" msgid "Learn More About Crowdin" msgstr "Дізнатися більше про Crowdin" msgid "Learn more about Crowdin" msgstr "Дізнатися більше про Crowdin" msgid "Sign in to Crowdin" msgstr "Увійти до Crowdin" msgid "Open Crowdin translation" msgstr "Відкрити переклад Crowdin" msgid "Project:" msgstr "Проект:" msgid "Language:" msgstr "Мова:" msgid "File:" msgstr "Файл:" msgid "No translation projects listed in your Crowdin account." msgstr "У вашому обліковому записі Crowdin немає перекладацьких проектів." msgid "This project has no files that can be translated in Poedit." msgstr "Цей проект не містить файлів, які можуть бути перекладені у Poedit." msgid "This file can only be edited in Crowdin’s web interface." msgstr "Цей файл можна редагувати тільки за допомогою веб-інтерфейсу Crowdin." msgid "Downloading latest translations…" msgstr "Завантажити найновіший переклад…" msgid "Syncing with Crowdin failed." msgstr "Не вдалось синхронізувати з Crowdin." msgid "Crowdin error" msgstr "Помилка Crowdin" msgid "Uploading translations…" msgstr "Відправлення перекладу…" msgid "&Copy" msgstr "&Копіювати" msgid "Learn more" msgstr "Дізнатися більше" msgid "Learn More" msgstr "Дізнатися більше" msgid "&Help" msgstr "&Довідка" msgid "MO files can’t be directly edited in Poedit." msgstr "Файли MO не можна редагувати безпосередньо в Poedit." msgid "Error opening file" msgstr "Не вдалося відкрити файл" msgid "" "Please open and edit the corresponding PO file instead. When you save it, " "the MO file will be updated as well." msgstr "" "Будь ласка, відкрийте і редагуйте відповідний PO-файл. Коли ви збережете " "його, MO-файл також оновиться." msgid "don’t delete temporary files (for debugging)" msgstr "не видаляти тимчасові файли (для налагодження)" msgid "handle a poedit:// URI" msgstr "обробити poedit:// URI" msgid "go to item at given line number" msgstr "перейти до елемента у рядку з вказаним номером" msgid "Failed to communicate with Poedit process." msgstr "Помилка зв’язку з процесом Poedit." #, c-format msgid "Unhandled exception occurred: %s" msgstr "Сталося непередбачене виключення: %s" msgid "Open catalog" msgstr "Відкрити каталог" #, c-format msgid "File “%s” doesn’t exist." msgstr "Файлу “%s” не існує." msgid "Poedit is an easy to use translations editor." msgstr "Poedit — простий у використанні редактор перекладів." msgid "Catalogs Manager" msgstr "Менеджер каталогів" msgid "Check for Updates…" msgstr "Перевірити оновлення…" msgid "&Edit" msgstr "&Редагування" msgid "Undo" msgstr "Скасувати" msgid "Redo" msgstr "Відновити" msgid "Paste and Match Style" msgstr "Вставити в поточному стилі" msgid "Delete" msgstr "Видалити" msgid "Spelling and Grammar" msgstr "Перевірка орфографії та граматики" msgid "Show Spelling and Grammar" msgstr "Показати орфографічні та граматичні помилки" msgid "Check Document Now" msgstr "Перевірити документ зараз" msgid "Check Spelling While Typing" msgstr "Перевіряти орфографію під час введення" msgid "Check Grammar With Spelling" msgstr "Перевірити граматику і орфографію" msgid "Correct Spelling Automatically" msgstr "Виправляти автоматично орфографічні помилки" msgid "Substitutions" msgstr "Заміни" msgid "Show Substitutions" msgstr "Показати заміни" msgid "Smart Copy/Paste" msgstr "Розумне копіювання/вставка" msgid "Smart Quotes" msgstr "Розумні цитати" msgid "Smart Dashes" msgstr "Розумні тире" msgid "Smart Links" msgstr "Розумні посилання" msgid "Text Replacement" msgstr "Заміна тексту" msgid "Transformations" msgstr "Перетворення" msgid "Make Upper Case" msgstr "У ВЕРХНІЙ РЕГІСТР" msgid "Make Lower Case" msgstr "У нижній регістр" msgid "Capitalize" msgstr "Перша Велика" msgid "Speech" msgstr "Мовлення" msgid "Start Speaking" msgstr "Почати озвучування" msgid "Stop Speaking" msgstr "Зупинити озвучування" msgid "&View" msgstr "&Вигляд" msgid "Enter Full Screen" msgstr "Перейти в повноекранний режим" msgid "Window" msgstr "Вікно" msgid "Minimize" msgstr "Мінімізувати" msgid "Zoom" msgstr "Масштабувати" msgid "Bring All to Front" msgstr "Вивести все на передній план" #. TRANSLATORS:File kind displayed in Finder/Explorer msgid "PO Translation" msgstr "PO переклад" msgid "The file cannot be opened." msgstr "Файл не може бути відкритий." msgid "Invalid file" msgstr "Неправильний файл" msgid "" "The file may be either corrupted or in a format not recognized by Poedit." msgstr "Файл або пошкоджений, або у форматі, який не підтримується Poedit." msgid "You can’t drop more than one file on Poedit window." msgstr "Не можна перетягувати у вікно Poedit більше одног файлу." #, c-format msgid "File “%s” is not a message catalog." msgstr "Файл “%s” не є каталогом повідомлень." msgid "Poedit" msgstr "Poedit" msgid "&File" msgstr "&Файл" msgid "&Go" msgstr "Пере&йти" #. TRANSLATORS: %s is language name in its basic form (as you #. would see e.g. in a list of supported languages). You may need #. to rephrase it, e.g. to an equivalent of "for language %s". #, c-format msgid "" "Spellchecking is disabled, because the dictionary for %s isn’t installed." msgstr "" "Перевірка орфографії відключена, тому що не встановлено словник для мови %s." msgid "Install" msgstr "Встановити" msgid "Catalog modified. Do you want to save changes?" msgstr "Каталог змінено. Зберегти зміни?" msgid "Save changes" msgstr "Зберегти зміни" msgid "Your changes will be lost if you don’t save them." msgstr "Внесені зміни буде втрачено, якщо їх не зберегти." msgid "Save" msgstr "Зберегти" msgid "Don’t save" msgstr "Не зберігати" msgid "Don’t Save" msgstr "Не зберігати" msgid "Save as…" msgstr "Зберегти як…" msgid "Compile to…" msgstr "Компілювати в…" msgid "Compiled Translation Files" msgstr "Скомпільовані файли перекладу" msgid "Export as…" msgstr "Експортувати як…" msgid "HTML Files" msgstr "HTML файли" msgid "Open catalog template" msgstr "Відкрити шаблон каталогу" msgid "Source code not available." msgstr "Вихідний код не доступний." msgid "Updating failed" msgstr "Оновлення не вдалося" msgid "" "Translations couldn’t be updated from the source code, because no code was " "found in the location specified in the catalog’s Properties." msgstr "" "Переклади не можуть бути оновлені з вихідного коду, тому що вихідний код не " "був знайдений у теці, зазначеній у властивостях каталогу." msgid "Entries in the catalog are probably incorrect." msgstr "Напевне, у каталозі є неправильні записи." msgid "Updating the catalog failed. Click on 'Details >>' for details." msgstr "" "Не вдалося поновити каталог. Отримайте докладнішу інформацію, натиснувши " "«Деталі»." #, c-format msgid "%d issue with the translation found." msgid_plural "%d issues with the translation found." msgstr[0] "Знайдено %d проблему з перекладом." msgstr[1] "Знайдено %d проблеми з перекладом." msgstr[2] "Знайдено %d проблем із перекладом." msgid "Validation results" msgstr "Результати перевірки" msgid "" "Entries with errors were marked in red in the list. Details of the error " "will be shown when you select such an entry." msgstr "" "Елементи з помилками позначені у списку червоним. Виділіть елемент, що " "переглянути деталі помилки." msgid "The file was saved safely." msgstr "Файл був успішно збережений." msgid "" "The file was saved safely and compiled into the MO format, but it will " "probably not work correctly." msgstr "" "Файл був збережений і скомпільований в формат MO. Але, швидше за все, не " "буде правильно працювати." msgid "" "The file was saved safely, but it cannot be compiled into the MO format and " "used." msgstr "Файл збережений, але не може бути зібраний та використаний як MO." msgid "" "The file was compiled into the MO format, but it will probably not work " "correctly." msgstr "" "Файл був скомпільований в формат MO, але, швидше за все, не буде правильно " "працювати." msgid "The file cannot be compiled into the MO format and used." msgstr "" "Не вдається скомпілювати даний файл у формат MO для подальшого використання." msgid "No problems with the translation found." msgstr "Жодних проблем з перекладом не знайдено." #, c-format msgid "The translation is ready for use, but %d entry is not translated yet." msgid_plural "" "The translation is ready for use, but %d entries are not translated yet." msgstr[0] "Переклад готовий до використання, але %d запис ще не перекладено." msgstr[1] "Переклад готовий до використання, але %d записи ще не перекладено." msgstr[2] "Переклад готовий до використання, але %d записів ще не перекладено." msgid "The translation is ready for use." msgstr "Переклад готовий до використання." #, c-format msgid "Poedit automatically fixed invalid content in the file “%s”." msgstr "Poedit автоматично виправив хибний вміст у файлі „%s“." msgid "" "The file contained duplicate items, which is not allowed in PO files and " "would prevent the file from being used. Poedit fixed the issue, but you " "should review translations of any items marked as needing work and correct " "them if necessary." msgstr "" "Файл містив дубльовані елементи, що не дозволено у PO-файлах і унеможливлює " "використання файлу. Poedit виправив цю помилку, проте Ви повинні переглянути " "переклади, позначені як „потребує доопрацювання“, та, за потреби, їх " "виправити." msgid "Language of the translation isn’t set." msgstr "Мову перекладу не зазначено." msgid "Set Language" msgstr "Вибрати мову" msgid "Set language" msgstr "Вибрати мову" #. TRANSLATORS: This is shown underneath "Language of the translation isn't set (or ...is the same as source language)." msgid "" "Suggestions are not available if the translation language is not set " "correctly. Other features, such as plural forms, may be affected as well." msgstr "" "Пропозиції будуть недоступними, якщо неправильно вказано мову перекладу. " "Інші функції, такі як форми множини, також можуть бути порушені." msgid "Language of the translation is the same as source language." msgstr "Мова перекладу така сама, як і вихідна мова." msgid "Fix Language" msgstr "Виправити мову" msgid "Fix language" msgstr "Виправити мову" msgid "" "This catalog has entries with plural forms, but doesn’t have Plural-Forms " "header configured." msgstr "" "Каталог містить елементи з формами множини, але не має налаштованого " "заголовку Plural-Forms." msgid "" "Entries in this catalog have different plural forms count from what " "catalog’s Plural-Forms header says" msgstr "" "Елементи цього каталогу мають форми множини, відмінні від вказаних у " "заголовку Plural-Forms." msgid "Required header Plural-Forms is missing." msgstr "Відсутній обов’язковий заголовок Plural-Forms." #, c-format msgid "Syntax error in Plural-Forms header (\"%s\")." msgstr "Синтаксична помилка в заголовку Plural-Forms («%s»)." msgid "Fix the Header" msgstr "Виправити заголовок" msgid "Fix the header" msgstr "Виправити заголовок" #. TRANSLATORS: %s is language name in its basic form (as you #. would see e.g. in a list of supported languages). You may need #. to rephrase it, e.g. to an equivalent of "for language %s". #, c-format msgid "Plural forms expression used by the catalog is unusual for %s." msgstr "Вираз форми множини, вжитий у каталозі, незвичний для %s." #. TRANSLATORS: A verb, shown as action button with ""Plural forms expression used by the catalog is unusual for %s.")" msgid "Review" msgstr "Огляд" #, c-format msgid "Error loading message catalog file “%s”." msgstr "Помилка завантаження файлу каталогу повідомлень “%s”." #, c-format msgid "Translated: %d of %d (%d %%)" msgstr "Перекладено: %d з %d (%d %%)" #, c-format msgid "Remaining: %d" msgstr "Залишилося: %d" #, c-format msgid "%d error" msgid_plural "%d errors" msgstr[0] "%d помилка" msgstr[1] "%d помилки" msgstr[2] "%d помилок" #, c-format msgid "%d entry" msgid_plural "%d entries" msgstr[0] "%d елемент" msgstr[1] "%d елементи" msgstr[2] "%d елементів" msgid " (unsaved)" msgstr " (не збережено)" msgid " (modified)" msgstr " (змінено)" #, c-format msgid "Failed to update translation memory: %s" msgstr "Не вдалося оновити пам'ять перекладів: %s" msgid "Purge deleted translations" msgstr "Знищити вилучені переклади" msgid "Do you want to remove all translations that are no longer used?" msgstr "Що робити з невикористаним перекладом?" msgid "" "If you continue with purging, all translations marked as deleted will be " "permanently removed. You will have to translate them again if they are added " "back in the future." msgstr "" "Точно вилучити з каталогу усі невикористані переклади? Якщо вони знову " "знадобляться в майбутньому, вам доведеться ще раз перекладати їх." msgid "Keep" msgstr "Залишити" msgid "Purge" msgstr "Знищити" msgid "Copy from source text" msgstr "Копіювати з вихідного тексту" msgid "Copy from Source Text" msgstr "Копіювати з вихідного тексту" #. TRANSLATORS: This is the key shortcut used in menus on Windows, some languages call them differently #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Ctrl+" msgstr "Ctrl+" msgid "Clear translation" msgstr "Стерти переклад" msgid "Clear Translation" msgstr "Стерти переклад" msgid "Edit comment" msgstr "Редагувати коментар" msgid "Edit Comment" msgstr "Редагувати коментар" msgid "References:" msgstr "Посилання:" msgid "&Bookmarks" msgstr "Зак&ладки" #. TRANSLATORS: This is the key shortcut used in menus on Windows, some languages call them differently #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Alt+" msgstr "Alt+" #, c-format msgid "Set bookmark %i" msgstr "Додати закладку %i" #, c-format msgid "Go to bookmark %i" msgstr "Перейти до закладки %i" #, c-format msgid "Set Bookmark %i" msgstr "Додати закладку %i" #, c-format msgid "Go to Bookmark %i" msgstr "Перейти до закладки %i" msgid "Hide Sidebar" msgstr "Приховати бічну панель" msgid "Show Sidebar" msgstr "Показати бічну панель" msgid "Hide Status Bar" msgstr "Приховати панель стану" msgid "Show Status Bar" msgstr "Показати панель стану" msgid "Source text:" msgstr "Оригінал:" msgid "Singular:" msgstr "Однина:" msgid "Plural:" msgstr "Множина:" msgid "Translation:" msgstr "Переклад:" msgid "Pre-translated" msgstr "Попередньо перекладений" msgid "Needs Work" msgstr "Потребує доопрацювання" #. TRANSLATORS: This indicates that the string's translation isn't final #. and has known problems. For example, it might be machine translated or #. fuzzy matched from an older string. The translation should be short and #. convey this. If it's problematic to translate it, "Needs review" is #. acceptable substitute, but note that the meaning is subtly different: #. "needs review" implies that somebody else should review the string after #. I am done with it (i.e. consider it good), while "needs work" implies I #. need to return to it and finish the translation. msgid "Needs work" msgstr "Потребує доопрацювання" msgid "" "POT files are only templates and don’t contain any translations themselves.\n" "To make a translation, create a new PO file based on the template." msgstr "" "POT файли - лише шаблони і самі не містять будь-яких перекладів.\n" " Щоб зробити переклад, створіть новий файл PO, заснований на цьому шаблоні." msgid "Create New Translation" msgstr "Створити новий переклад" msgid "Create new translation" msgstr "Створити новий переклад" msgid "Everything" msgstr "Усе" #, c-format msgid "Form %i" msgstr "Форма %i" msgid "Singular" msgstr "Однина" msgid "Zero" msgstr "Нуль" msgid "One" msgstr "Один" msgid "Two" msgstr "Два" msgid "Plural" msgstr "Множина" msgid "Other" msgstr "Інше" #, c-format msgid "%s Format" msgstr "Формат %s" #. TRANSLATORS: %s is replaced with language name, e.g. "PHP" or "C", so "PHP Format" etc." #, c-format msgid "%s format" msgstr "Формат %s" msgid "Source text" msgstr "Оригінал" #, c-format msgid "Translation — %s" msgstr "Переклад — %s" msgid "ID" msgstr "ID" #, c-format msgid "Source text — %s" msgstr "Вихідний текст — %s" msgid "unknown language" msgstr "невідома мова" #, c-format msgid "Failed command: %s" msgstr "Не вдалося виконати команду: %s" msgid "Failed to merge gettext catalogs." msgstr "Не вдалося об'єднати gettext-каталоги." msgid "Source file" msgstr "Вихідний файл" msgid "Source file occurrence:" msgstr "Розташування вихідного файлу:" msgid "Open in Editor" msgstr "Відкрити в редакторі" msgid "Open in editor" msgstr "Відкрити в редакторі" msgid "No references for the selected item." msgstr "Немає посилання для вибраного елемента." #, c-format msgid "Error opening file %s!" msgstr "Помилка при відкритті файлу '%s'!" msgid "Find" msgstr "Знайти" msgid "Replace" msgstr "Замінити" #. TRANSLATORS: Expander in Find window for additional options (case sensitive etc.) msgid "Options" msgstr "Опції" msgid "Ignore case" msgstr "Ігнорувати регістр" msgid "Wrap around" msgstr "По колу" msgid "Whole words only" msgstr "Лише слово цілком" msgid "Find in source texts" msgstr "Шукати у вихідних текстах" msgid "Find in translations" msgstr "Шукати у перекладах" msgid "Find in comments" msgstr "Шукати в коментарях" msgid "Close" msgstr "Закрити" msgid "Replace &All" msgstr "Замінити &все" msgid "Replace &all" msgstr "Замінити &все" msgid "&Replace" msgstr "&Замінити" msgid "< &Previous" msgstr "< &Попередній" msgid "&Next >" msgstr "&Наступний >" msgid "String to find" msgstr "Рядок пошуку" msgid "Replacement string" msgstr "Рядок заміни" #, c-format msgid "Cannot execute program: %s" msgstr "Не вдалося виконати програму: %s" msgid "Language Code or Name (e.g. en_GB)" msgstr "Код мови або назва (напр. en_GB)" msgid "Translation Language" msgstr "Мова перекладу" msgid "Language of the translation:" msgstr "Мова перекладу:" msgid "Poedit - Catalogs manager" msgstr "Poedit. Менеджер каталогів" msgid "Catalog" msgstr "Каталог" msgid "Total" msgstr "Загалом" msgid "Untrans" msgstr "Не перекладено" msgid "Errors" msgstr "Помилки" msgid "Last modified" msgstr "Останні зміни" msgid "Select directory" msgstr "Виберіть теку" msgid "Directories:" msgstr "Теки:" msgid "" msgstr "<без назви>" msgid "Do you want to delete the project?" msgstr "Ви дійсно хочете вилучити проект?" msgid "Confirmation" msgstr "Підтвердження" msgid "" "Do you really want to do mass update of\n" "all catalogs in this project?" msgstr "" "Ви дійсно хочете поновити\n" "всі каталоги в цьому проекті?" msgid "Information about the translator" msgstr "Інформація про перекладача" msgid "Name:" msgstr "Ім'я:" msgid "Your Name" msgstr "Ваше ім'я" msgid "Email:" msgstr "Emaіl:" msgid "your_email@example.com" msgstr "your_email@example.com" msgid "" "Your name and email address are only used to set the Last-Translator header " "of GNU gettext files." msgstr "" "Ваше ім'я та пошта будуть використовуватися тільки при вказівці останнього " "перекладача в заголовках GNU gettext файлів." msgid "Editing" msgstr "Редагування" msgid "Automatically compile MO file when saving" msgstr "Автоматично компілювати файл MO при збереженні" msgid "Show summary after catalog update" msgstr "Показувати підсумок після поновлення каталогу" msgid "Check spelling" msgstr "Перевірка орфографії" msgid "Always change focus to text input field" msgstr "Завжди встановлювати фокус у поле вводу тесту" msgid "" "Never let the list of strings take focus. If enabled, you must use Ctrl-" "arrows for keyboard navigation but you can also type text immediately, " "without having to press Tab to change focus." msgstr "" "Ніколи не дозволяйте списку рядків отримати фокус. Якщо активовано, можна " "використовувати Ctrl+стрілки для навігації за допомогою клавіатури, але " "вводити текст можна починати одразу не натискаючи Tab для зміни фокусу." msgid "Appearance" msgstr "Зовнішній вигляд" msgid "Use custom list font:" msgstr "Використовувати користувацький шрифт для списку:" msgid "Use custom text fields font:" msgstr "Використовувати користувальницький текст в полях вводу:" msgid "Change UI language" msgstr "Змінити мову інтерфейсу" #. TRANSLATORS: This is a note appended to "Check spelling" when running on older Windows versions msgid "(requires Windows 8 or newer)" msgstr "(потрібно Windows 8 або пізнішої версії)" msgid "General" msgstr "Загальні" msgid "Use translation memory" msgstr "Використовувати пам'ять перекладів" msgid "Learn From Files…" msgstr "Зібрати з файлів…" msgid "Learn from files…" msgstr "Зібрати з файлів…" #. TRANSLATORS: This is a button that deletes everything in the translation memory (i.e. clears/resets it). msgid "Reset" msgstr "Скинути" #. TRANSLATORS: Followed by "match translations within the file" or "pre-translate from TM" msgid "When updating from sources" msgstr "При оновлені з джерел" #. TRANSLATORS: Preceded by "When updating from sources" msgid "fuzzy match within the file" msgstr "підбирати схожий переклад всередині файлу" #. TRANSLATORS: Preceded by "When updating from sources" msgid "pre-translate from TM" msgstr "попередній переклад через ТМ" msgid "" "Poedit can attempt to fill in new entries from only previous translations in " "the file or from your entire translation memory. Using the TM won’t be very " "effective if it’s near-empty, but it will get better as you add more " "translations to it." msgstr "" "Poedit може спробувати заповнити нові рядки тільки попередніми перекладами з " "цього файлу або з вашої пам'яті перекладів. Використання ПП буде не дуже " "ефективним, якщо вона майже порожня, але буде поліпшуватися в міру додавання " "перекладів." msgid "Stored translations:" msgstr "Збережені переклади:" msgid "Database size on disk:" msgstr "Розмір бази даних на диску:" msgid "Select translation files to import" msgstr "Виберіть файли перекладу для імпорту" msgid "Translation Memory" msgstr "Пам'ять перекладів" msgid "Importing translations…" msgstr "Імпортування перекладів…" msgid "Finalizing…" msgstr "Завершення…" msgid "Reset translation memory" msgstr "Скинути пам'ять перекладів" msgid "Are you sure you want to reset the translation memory?" msgstr "Ви впевнені, що хочете очистити пам'ять перекладів?" msgid "" "Resetting the translation memory will irrevocably delete all stored " "translations from it. You can’t undo this operation." msgstr "" "При очищені пам'яті перекладів будуть безповоротно видалені всі збережені " "переклади. Ви не зможете скасувати цю операцію." msgid "Cancel" msgstr "Скасувати" #. TRANSLATORS: This is abbreviation of "Translation Memory" used in Preferences on macOS. #. Long text looks weird there, too short (like TM) too, but less so. "General" is about ideal #. length there. msgid "TM" msgstr "Пам'ять перекладів" msgid "" "Source code extractors are used to find translatable strings in the source " "code files and extract them so that they can be translated." msgstr "" "Екстрактори використовуються для пошуку рядків, що перекладаються, у файлах " "вихідного коду і витягують їх так, щоб їх можна було перекласти." msgid "Custom Extractors:" msgstr "Користувацькі видобувачі:" msgid "Custom extractors:" msgstr "Користувацькі видобувачі:" msgid "Edit…" msgstr "Змінити…" msgid "GNU gettext" msgstr "GNU gettext" msgid "" "Supports all programming languages recognized by GNU gettext tools (PHP, C/C+" "+, C#, Perl, Python, Java, JavaScript and others)." msgstr "" "Підтримуються всі мови програмування, що розпізнаються інструментами GNU " "gettext (PHP, C/C++, C#, Perl, Python, Java, JavaScript тощо)." msgid "Delete extractor" msgstr "Видалити екстрактор" #, c-format msgid "Are you sure you want to delete the “%s” extractor?" msgstr "Ви впевнені, що бажаєте видалити екстрактор \"%s\"?" msgid "Extractors" msgstr "Екстрактори" msgid "Accounts" msgstr "Облікові записи" msgid "Automatically check for updates" msgstr "Автоматично перевіряти оновлення" msgid "Include beta versions" msgstr "Включити бета-версії" msgid "" "Beta versions contain the latest new features and improvements, but may be a " "bit less stable." msgstr "" "Бета-версії містять новітні функції і поліпшення, але можуть бути менш " "стабільними." msgid "Updates" msgstr "Оновлення" msgid "" "These settings affect internal formatting of PO files. Adjust them if you " "have specific requirements e.g. because of version control." msgstr "" "Ці параметри впливають на внутрішнє форматування файлів PO. Скоректуйте їх, " "якщо у вас є спеціальні вимоги, наприклад, якщо ви користуєтеся системою " "контролю версій." msgid "Line endings:" msgstr "Закінчення рядків:" msgid "Unix (recommended)" msgstr "Unix (рекомендовано)" msgid "Windows" msgstr "Windows" #. TRANSLATORS: Followed by text control for entering number; wraps text at given width msgid "Wrap at:" msgstr "Перенос:" msgid "Preserve formatting of existing files" msgstr "Зберігати форматування існуючих файлів" msgid "Advanced" msgstr "Розширені параметри" msgid "Pre-translating…" msgstr "Попередній переклад…" #, c-format msgid "Pre-translated %u string" msgid_plural "Pre-translated %u strings" msgstr[0] "Попередньо перекладено %u рядок" msgstr[1] "Попередньо перекладено %u рядки" msgstr[2] "Попередньо перекладено %u рядків" #. TRANSLATORS: This is a somewhat common term describing the action where #. you apply the translation memory and/or machine translation to all of the #. strings you're translating as the first step, followed by correcting, #. improving etc., i.e. actually translating the strings. This may be tricky #. to express in other languages as simply as in English, but please try to #. keep it similarly concise. Please try to avoid, if possible, describing it #. as "auto-translation" and similar, because such terminology would mislead #. some users into thinking it's all that needs to be done (spoken from #. experience). "Pre-translate" nicely expresses that it's only the step done #. *before* actual translation. msgid "Pre-translate" msgstr "Попередній переклад" msgid "Only fill in exact matches" msgstr "Заповнювати тільки при точних збігах" msgid "" "By default, inaccurate results are filled in as well and marked as needing " "work. Check this option to only include accurate matches." msgstr "" "По-замовчуванням результати, які не повністю збігаються всеодно будуть " "заповнені, але помічені як \"потребує доопрацювання\"." msgid "Don’t mark exact matches as needing work" msgstr "Не позначати точні збіги як \"потребує доопрацювання\"" msgid "" "Only enable if you trust the quality of your TM. By default, all matches " "from the TM are marked as needing work and should be reviewed before use." msgstr "" "Увімкніть це тільки якщо ви впевнені в якості вашій пам'яті перекладів. За " "замовчуванням всі збіги з пам'яті перекладів помічаються як \"потребує " "доопрацювання\" і підлягають перевірці." msgid "" "Pre-translation automatically finds exact or fuzzy matches for untranslated " "strings in the translation memory and fills in their translations." msgstr "" "Попередній переклад автоматично знаходить точні або нечіткі збіги для " "неперекладених рядків в пам'яті перекладів і заповнює в їх перекладах." #, c-format msgid "%d entry was pre-translated." msgid_plural "%d entries were pre-translated." msgstr[0] "%d запис було попередньо перекладено." msgstr[1] "%d записи було попередньо перекладено." msgstr[2] "%d записів було попередньо перекладено." msgid "" "The translations were marked as needing work, because they may be " "inaccurate. You should review them for correctness." msgstr "" "Переклади були позначені як \"потребує доопрацювання\". Перевірте їх " "правильність." msgid "No entries could be pre-translated." msgstr "Немає записів, які можна було б попередньо перекладається." msgid "" "The TM doesn’t contain any strings similar to the content of this file. It " "is only effective for semi-automatic translations after Poedit learns enough " "from files that you translated manually." msgstr "" "Пам'ять перекладів не містить ніяких рядків, схожих на вміст цього файлу. " "Вона підходить тільки для напівавтоматичного перекладу після того, як Poedit " "збере достатньо даних з файлів, які ви переклали самостійно." msgid "" "Drag and Drop Folders Here\n" "\n" "or use the + button" msgstr "" "Перетягніть теки сюди\n" "\n" "або використайте кнопку „+“" msgid "" "Drag and drop folders here\n" "\n" "or use the + button" msgstr "" "Перетягніть теки сюди\n" "\n" "або використайте кнопку „+“" msgid "Add Folders…" msgstr "Додати теки…" msgid "Add folders…" msgstr "Додати теки…" msgid "Add Files…" msgstr "Додати файли…" msgid "Add files…" msgstr "Додати файли…" msgid "Add Wildcard…" msgstr "Додати шаблон…" msgid "Add wildcard…" msgstr "Додати шаблон…" msgid "Paths" msgstr "Шляхи" msgid "Excluded paths" msgstr "Виключені шляхи" msgid "Advanced extraction settings" msgstr "Розширені налаштування видобування" msgid "Extract notes for translators from:" msgstr "Видобути нотатки для перекладачів з:" msgid "Comments prefixed with:" msgstr "Коментарі із префіксом:" msgid "All comments" msgstr "Усі коментарі" msgid "Additional xgettext flags:" msgstr "Додаткові прапорці xgettext:" msgid "Additional keywords" msgstr "Додаткові ключові слова" msgid "Name of the project the translation is for" msgstr "Назва проекту, для якого призначений переклад" msgid "Team name and email address or URL" msgstr "Назва команди та адреса ел. пошти чи посилання" msgid "e.g. nplurals=2; plural=(n > 1);" msgstr "напр. nplurals=2; plural=(n > 1);" msgid "UTF-8 (recommended)" msgstr "UTF-8 (рекомендовано)" msgid "Please save the file first. This section cannot be edited until then." msgstr "" "Будь ласка, спершу збережіть файл. Без збереження цей розділ редагувати не " "можна." msgid "Not all plural forms are translated." msgstr "Перекладено не всі форм множини." msgid "The translation should start as a sentence." msgstr "Переклад повинен починатися з великої літери." msgid "The translation should start with a lowercase character." msgstr "Переклад повинен починатися із символу в нижньому регістрі." msgid "The translation doesn’t start with a space." msgstr "Переклад не починаються з пробілу." msgid "The translation starts with a space, but the source text doesn’t." msgstr "Переклад починається з пробілу, але не початковий текст." msgid "The translation is missing a newline at the end." msgstr "У переклад відсутній символ нового рядка наприкінці." msgid "The translation ends with a newline, but the source text doesn’t." msgstr "Переклад закінчується символом нового рядка, але не початковий текст." msgid "The translation is missing a space at the end." msgstr "У переклад відсутній пробіл наприкінці." msgid "The translation ends with a space, but the source text doesn’t." msgstr "Переклад закінчується пробілом, але не початковий текст." #, c-format msgid "The translation should end with “%s”." msgstr "Переклад повинен закінчуватися „%s“." #, c-format msgid "The translation should not end with “%s”." msgstr "Переклад не повинен закінчуватися „%s“." #, c-format msgid "The translation ends with “%s”, but the source text ends with “%s”." msgstr "Переклад закінчується „%s“, але початковий текст закінчується „%s“." msgid "Comment:" msgstr "Коментар:" msgid "OK" msgstr "Гаразд" msgid "C&lear" msgstr "&Очистити" msgid "Clear the comment" msgstr "Очистити коментар" msgid "New" msgstr "Новий" msgid "Create new translations project" msgstr "Створити новий проект перекладів" msgid "Edit" msgstr "Редагувати" msgid "Edit the project" msgstr "Редагувати проект" msgid "Delete the project" msgstr "Вилучити проект" msgid "Update all" msgstr "Оновити усе" msgid "Update all catalogs in the project" msgstr "Оновити усі каталоги в цьому проекті" msgid "Edit project" msgstr "Редагувати проект" msgid "Project name:" msgstr "Назва проекту:" msgid "Browse" msgstr "Вибрати" msgid "Add directory to the list" msgstr "Додати теку до списку" msgid "&New…" msgstr "&Новий…" msgid "New from &POT/PO file…" msgstr "Новий з &POT/PO-файлу…" msgid "New From &POT/PO File…" msgstr "Новий з &POT/PO-файлу…" msgid "&Open…" msgstr "&Відкрити…" msgid "Open Recent" msgstr "Відкрити нещодавні" msgid "Open from Crowdin…" msgstr "Відкрити на Crowdin…" msgid "Open From Crowdin…" msgstr "Відкрити на Crowdin…" msgid "&Close" msgstr "З&акрити" msgid "&Save" msgstr "&Зберегти" msgid "Save &as…" msgstr "Зберегти &як…" msgid "Save &As…" msgstr "Зберегти як…" msgid "Compile to MO…" msgstr "Компілювати в MO…" msgid "E&xport as HTML…" msgstr "E&кспортувати як HTML…" msgid "Check for updates…" msgstr "Перевірити оновлення…" msgid "&Preferences…" msgstr "&Налаштування…" msgid "Catalogs &manager" msgstr "Менеджер &каталогів" msgid "Catalogs &Manager" msgstr "Менеджер &каталогів" msgid "E&xit" msgstr "&Вийти" msgid "Quit" msgstr "Вийти" msgid "Copy from singular" msgstr "Копіювати форму однини" msgid "Copy From Singular" msgstr "Копіювати форму однини" msgid "Translation needs &work" msgstr "Переклад потребує &доопрацювання" msgid "Translation Needs &Work" msgstr "Переклад потребує &доопрацювання" msgid "Edit &comment" msgstr "Редагувати &коментар" msgid "Edit &Comment" msgstr "Редагувати &коментар" msgid "Suggestions" msgstr "Пропозиції" msgid "&Find…" msgstr "&Знайти…" msgid "Replace…" msgstr "Замінити…" msgid "Find next" msgstr "Знайти наступний" msgid "Find previous" msgstr "Знайти попередній" msgid "Find and Replace…" msgstr "Знайти та замінити…" msgid "Find Next" msgstr "Знайти наступний" msgid "Find Previous" msgstr "Знайти попередній" msgid "&Preferences" msgstr "&Налаштування" msgid "Display entry &IDs" msgstr "Показувати &ID елементів" msgid "Display Entry &IDs" msgstr "Показувати &ID елементів" msgid "Sort by &file order" msgstr "Сортувати за положенням у &файлі" msgid "Sort by &File Order" msgstr "Сортувати за положенням у &файлі" msgid "Sort by &source" msgstr "Сортувати за &оригіналом" msgid "Sort by &Source" msgstr "Сортувати за &оригіналом" msgid "Sort by &translation" msgstr "Сортувати за &перекладом" msgid "Sort by &Translation" msgstr "Сортувати за &перекладом" msgid "&Group by context" msgstr "&Групувати по контексту" msgid "&Group By Context" msgstr "&Групувати по контексту" msgid "Entries with errors first" msgstr "Записи з помилками - згори" msgid "Entries with Errors First" msgstr "Записи з помилками - згори" msgid "&Untranslated entries first" msgstr "&Неперекладене — згори" msgid "&Untranslated Entries First" msgstr "Неперекладене — &згори" msgid "&Show references" msgstr "&Показувати посилання" msgid "&Show References" msgstr "&Показувати посилання" msgid "Show sidebar" msgstr "Показати бічну панель" msgid "Show status bar" msgstr "Показати панель стану" msgid "C&atalog" msgstr "&Каталог" msgid "&Update from sources" msgstr "&Поновити з джерельних кодів" msgid "&Update from Sources" msgstr "Поновити з &джерельних кодів" msgid "Update from &POT file…" msgstr "Поновити з POT-&файлу…" msgid "Update from &POT File…" msgstr "Поновити з POT-&файлу…" msgid "Sync with Crowdin" msgstr "Синхронізація з Crowdin" msgid "Pre-&translate…" msgstr "Попередній &переклад…" msgid "&Purge deleted translations" msgstr "&Знищити вилучені переклади" msgid "&Purge Deleted Translations" msgstr "&Знищити вилучені переклади" msgid "&Validate translations" msgstr "&Перевірити переклад" msgid "&Validate Translations" msgstr "&Перевірити переклад" msgid "&Properties…" msgstr "&Властивості…" msgid "&Done and next" msgstr "&Завершити та до наступного" msgid "&Done and Next" msgstr "&Завершити та до наступного" msgid "&Previous translation" msgstr "Попередній переклад" msgid "&Previous Translation" msgstr "Попередній переклад" msgid "&Next translation" msgstr "Наступний переклад" msgid "&Next Translation" msgstr "Наступний переклад" msgid "P&revious unfinished" msgstr "До п&опереднього незавершеного" msgid "P&revious Unfinished" msgstr "До п&опереднього незавершеного" msgid "Ne&xt unfinished" msgstr "До н&аступного незавершеного" msgid "Ne&xt Unfinished" msgstr "До н&аступного незавершеного" msgid "Previous plural form" msgstr "Попередня форма множини" msgid "Previous Plural Form" msgstr "Попередня форма множини" msgid "Next plural form" msgstr "Наступна форма множини" msgid "Next Plural Form" msgstr "Наступна форма множини" msgid "&Online help" msgstr "&Онлайн-довідка" msgid "&Online Help" msgstr "&Онлайн-довідка" msgid "&GNU gettext manual" msgstr "&Документація GNU gettext" msgid "&GNU gettext Manual" msgstr "&Документація GNU gettext" msgid "&About Poedit" msgstr "&Про Poedit..." msgid "&About" msgstr "&Про програму..." msgid "Extractor setup" msgstr "Налаштування екстрактора" msgid "List of extensions separated by semicolons (e.g. *.cpp;*.h):" msgstr "Список розширень, розділених крапкою з комою (наприклад, *.cpp;*.h):" msgid "Invocation:" msgstr "Виклик:" msgid "Command to extract translations:" msgstr "Команда для видобування перекладу:" msgid "" "This is the command used to launch the extractor.\n" "%o expands to the name of output file, %K to list\n" "of keywords, %F to list of input files,\n" "%C to charset flag (see below)." msgstr "" "Ця команда запускає екстрактор.\n" "%o означає назву вихідного файлу, %K — список\n" "ключових слів, %F — список вхідних файлів,\n" "%C — кодування (див. нижче)." msgid "An item in keywords list:" msgstr "Елемент списку ключових слів:" msgid "" "This will be attached to the command line once\n" "for each keyword. %k expands to the keyword." msgstr "" "Це буде додано до командного рядку для кожного\n" "ключового слова. %k замінюється на ключове слово." msgid "An item in input files list:" msgstr "Елемент в списку вхідних файлів:" #, c-format msgid "" "This will be attached to the command line once\n" "for each input file. %f expands to the filename." msgstr "" "Це буде додано до командного рядку для кожного\n" "вхідного файлу. %f замінюється на ім'я файлу." msgid "Source code charset:" msgstr "Кодування файлів з джерельним кодом:" #, c-format msgid "" "This will be attached to the command line\n" "only if source code charset was given. %c expands to charset value." msgstr "" "Це буде додано до командного рядку лише якщо вказано\n" "кодування файлів з вихідними кодами. %c замінюється на кодування." msgid "Catalog properties" msgstr "Властивості каталогу" msgid "Project name and version:" msgstr "Назва та версія проекту:" msgid "Language team:" msgstr "Команда перекладачів:" msgid "Plural forms:" msgstr "Форми множини:" msgid "Use default rules for this language" msgstr "Використовувати стандартні правила для цієї мови" msgid "Use custom expression" msgstr "Використовувати користувацький вираз" msgid "Learn about plural forms" msgstr "Дізнатися більше про форми множини" msgid "Charset:" msgstr "Кодування каталогу:" msgid "Advanced Extraction Settings…" msgstr "Розширені налаштування видобування…" msgid "Advanced extraction settings…" msgstr "Розширені налаштування видобування…" msgid "Translation Properties" msgstr "Властивості перекладу" msgid "Translation properties" msgstr "Властивості перекладу" msgid "Sources Paths" msgstr "Шлях до джерел" msgid "Sources paths" msgstr "Шлях до джерел" msgid "Extract text from source files in the following directories:" msgstr "Шукати джерельний текст у наступних теках:" msgid "Base path:" msgstr "Базовий шлях:" msgid "Sources Keywords" msgstr "Ключові слова джерельних файлів" msgid "Sources keywords" msgstr "Ключові слова джерельних файлів" msgid "" "Use these keywords (function names) to recognize translatable strings\n" "in source files:" msgstr "" "Використовувати ці ключові слова (назви функцій) додатково до\n" "типових для розпізнавання у джерельних файлах рядків,\n" "придатних для перекладу." msgid "Also use default keywords for supported languages" msgstr "" "Також використовувати ключові слова по замовчуванню для підтримуваних мов" msgid "Learn About Gettext Keywords" msgstr "Дізнатися більше про ключові слова Gettext" msgid "Learn about gettext keywords" msgstr "Дізнатися більше про ключові слова Gettext" msgid "Update summary" msgstr "Підсумок про оновлення" msgid "" "These strings were found in the sources but were not in the catalog.\n" "Poedit will add them to the catalog now." msgstr "" "Ці рядки було знайдено у джерельних текстах, але вони відсутні у каталозі.\n" "Poedit додасть їх до каталогу." msgid "New strings" msgstr "Нові рядки" msgid "" "These strings are no longer in the sources.\n" "Poedit will remove them from the catalog now." msgstr "" "Цих рядків вже немає у джерельних текстах.\n" "Poedit вилучить їх з каталогу." msgid "Obsolete strings" msgstr "Застарілі рядки" msgid "(0 new, 0 obsolete)" msgstr "(0 нових, 0 застарілих)" msgid "Open" msgstr "Відкрити" msgid "Save catalog" msgstr "Зберегти каталог" msgid "Validate" msgstr "Перевірити" msgid "Check for errors in the translation" msgstr "Перевірити переклад на наявність помилок" msgid "Update" msgstr "Оновити" msgid "Update catalog - synchronize it with sources" msgstr "Оновлення каталогу — синхронізація з джерельними текстами" msgid "Sidebar" msgstr "Бічна панель" msgid "Show or hide the sidebar" msgstr "Показати або сховати бічну панель" #. TRANSLATORS: "Previous" as in used in the past, now replaced with newer. msgid "Previous source text:" msgstr "Попередній вихідний текст:" msgid "" "The old source text (before it changed during an update) that the now-" "inaccurate translation corresponds to." msgstr "" "Старий вихідний текст (до поновлення), якому відповідає неточний переклад." msgid "Notes for translators:" msgstr "Примітка для перекладачів:" msgid "Add comment" msgstr "Додати коментар" msgid "Add Comment" msgstr "Додати коментар" msgid "Translation suggestions:" msgstr "Варіанти перекладу:" #. TRANSLATORS: This is shown when no translation suggestions can be found in the TM (Windows). msgid "No matches found" msgstr "Збігів не знайдено" #. TRANSLATORS: This is shown when no translation suggestions can be found in the TM (macOS, Linux). msgid "No Matches Found" msgstr "Збігів не знайдено" msgid "This string was found in Poedit’s translation memory." msgstr "Цей рядок був знайдений в пам'яті перекладів Poedit." msgid "Cannot create temporary directory." msgstr "Не вдалося створити тимчасову теку." msgid "Welcome to Poedit" msgstr "Ласкаво просимо до Poedit" #. TRANSLATORS: This is version information in about dialog, "%s" will be #. version number when used #, c-format msgid "Version %s" msgstr "Версія %s" msgid "Edit a Translation" msgstr "Редагувати переклад" msgid "Edit a translation" msgstr "Редагувати переклад" msgid "Open an existing PO file and edit the translation." msgstr "Відкрити наявний PO-файл та редагувати переклад." msgid "" "Take an existing PO file or POT template and create a new translation from " "it." msgstr "Створення перекладу на основі наявного PO-файлу або POT-шаблону." msgid "Collaborate on a Translation with Others" msgstr "Сумісний переклад з іншими" msgid "Collaborate on a translation with others" msgstr "Сумісний переклад з іншими" msgid "" "Download a file from Crowdin project, translate and sync your changes back." msgstr "" "Завантажити файл з проекту Crowdin, перекласти та синхронізувати зміни назад." msgid "What is Crowdin?" msgstr "Що таке Crowdin?" msgid "There are no translations. That’s unusual." msgstr "Дивно, але переклад відсутній." msgid "" "Translatable entries aren’t added manually in the Gettext system, but are " "automatically extracted\n" "from source code. This way, they stay up to date and accurate.\n" "Translators typically use PO template files (POTs) prepared for them by the " "developer." msgstr "" "Записи, що перекладаються, не додаються в систему Gettext вручну, а " "автоматично витягуються\n" "з вихідного коду. Таким чином забезпечується їхня актуальність і точність.\n" "Перекладачі зазвичай працюють з PO-файлами (POT), які підготував для них " "розробник." msgid "(Learn more about GNU gettext)" msgstr "(Більше про GNU gettext)" msgid "The simplest way to fill this catalog is to update it from a POT:" msgstr "Найпростіший спосіб перекласти цей каталог - оновити його з POT:" msgid "Update from POT" msgstr "Оновити з &POT-файлу..." msgid "Take translatable strings from an existing POT template." msgstr "Витяг рядків для перекладу з наявного POT-шаблону." msgid "" "You can also extract translatable strings directly from the source code:" msgstr "" "Рядки, що перекладаються, можна також отримати безпосередньо з вихідного " "коду:" msgid "Extract from sources" msgstr "Видобути з вихідного коду" msgid "Configure source code extraction in Properties." msgstr "Налаштувати видобуток вихідного коду у Властивостях." msgid "Sync" msgstr "Синхронізувати" msgid "Synchronize the translation with Crowdin" msgstr "Синхронізувати переклад з Crowdin" #. TRANSLATORS: This is titlebar of about dialog, "%s" is application name #. ("Poedit" here, but please use "%s") #, c-format msgid "About %s" msgstr "Про %s" #. TRANSLATORS: Title of the preferences window on Windows and Linux. "%s" is replaced with "Poedit" when running. #, c-format msgid "%s Preferences" msgstr "Налаштування %s" #. TRANSLATORS: macOS item in app menu msgid "Services" msgstr "Сервіси" #. TRANSLATORS: macOS item in app menu, %s is replaced with "Poedit" #, c-format msgid "Hide %s" msgstr "Приховати %s" #. TRANSLATORS: macOS item in app menu msgid "Hide Others" msgstr "Приховати інші" #. TRANSLATORS: macOS item in app menu msgid "Show All" msgstr "Показати все" #. TRANSLATORS: macOS item in app menu, %s is replaced with "Poedit" #, c-format msgid "Quit %s" msgstr "Вийти з %s" #. TRANSLATORS: macOS item in app menu msgid "Preferences…" msgstr "Налаштування…" msgid "Preferences..." msgstr "Налаштування..." #. TRANSLATORS: Title of a category in Windows task menu (right-click icon in taskbar) msgid "Recent" msgstr "Нещодавні" #. TRANSLATORS: Title of a category in Windows task menu (right-click icon in taskbar) msgid "Frequent" msgstr "Найчастіші" msgid "&Apply" msgstr "&Застосувати" msgid "Apply" msgstr "Застосувати" msgid "&Back" msgstr "&Повернутися" msgid "Back" msgstr "Повернутися" msgid "&Cancel" msgstr "&Відмінити" msgid "&Clear" msgstr "&Очистити" msgid "Clear" msgstr "Очистити" msgid "Copy" msgstr "Копіювати" msgid "Cu&t" msgstr "Ви&різати" msgid "Cut" msgstr "Вирізати" msgid "&Delete" msgstr "&Вилучити" msgid "&Quit" msgstr "&Вийти" msgid "File" msgstr "Файл" msgid "Help" msgstr "Довідка" msgid "&New" msgstr "&Новий" msgid "&No" msgstr "&Ні" msgid "No" msgstr "Ні" msgid "&OK" msgstr "&ОК" msgid "Open…" msgstr "Відкрити…" msgid "&Open..." msgstr "&Відкрити..." msgid "Open..." msgstr "Відкрити..." msgid "&Paste" msgstr "&Вставити" msgid "Paste" msgstr "Вставити" msgid "Preferences" msgstr "Налаштування" msgid "&Redo" msgstr "&Повторити" msgid "Refresh" msgstr "Оновити" msgid "&Save as" msgstr "&Зберегти як" msgid "Save as" msgstr "Зберегти як" msgid "Select &All" msgstr "Вибрати &все" msgid "Select All" msgstr "Вибрати все" msgid "&Undo" msgstr "&Скасувати" msgid "&Yes" msgstr "&Так" msgid "Yes" msgstr "Так" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Shift+" msgstr "Shift+" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Enter" msgstr "Enter" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Up" msgstr "Вгору" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Down" msgstr "Вниз" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Left" msgstr "Вліво" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Right" msgstr "Вправо" #. TRANSLATORS: Keyboard shortcut, must correspond to translation of "Ctrl+" msgid "ctrl" msgstr "ctrl" #. TRANSLATORS: Keyboard shortcut, must correspond to translation of "Alt+" msgid "alt" msgstr "alt" #. TRANSLATORS: Keyboard shortcut, must correspond to translation of "Shift+" msgid "shift" msgstr "shift" poedit-2.0.6/locales/oc.mo0000664000372000037200000012070013230132042012272 00000000000000l( ( ())J/)gz) )) )* * *%*,*2*:*I*X*^*d*x******** * *+ + ++3+I+e++++++++++ , ,7,N,T,h,,,, ,:,:- V-`-i- r- ~----- --'-... H.7S.6..). /]/u/A/I/00$0+0"20U0 p0{0.000000 11)1E1a1#v111111(1(2 72X2 a2o2/2 22222332=3p3333 33w4}444444 444E4"A5?d5 55 555K5"565X666 6 6 666 6 6777"7(7.:7hi777u8,|8888 88 99<$9a9 q9|9*9!9!9'9'&:N: T:b: g: q:::: : : : ::: ;;;,; >;I; Q; ];j;z;;; F<R<l< << < <<"<;<((=Q=n= = === === >$> 8>C>:\> ><>.>?!?1?L?c?*l???? ? ??@ @@@@@'@$ A72A%jAAAAAAAA A2B 7BDBZBiBxBBBBBBBBCCCnCEDVD>]D DDDD@D-E BEPE_ErEE%EEEEE FF'F-FHFMFUF ZF fFtF |F FF(FFFzFlGsG xG G G G GG"GGHH H-H =HJHQH ZHgHHHH HH!HHI III0I 9IGI PIZI kI xI IIIIIIIJJJ JJ JJ J K K)KK0K|KK KKK K KK{LL(LL+LMNM8VMMM8cNNNIOROcCPQPPAQVQ!Q,RL4R`RRYhSmS^0T:TT;vU7UmU_XV[VWW*WGW\WoWWWWW WW{XXX XXXXX X"X, Y9YIYXY`YqY?YYYYZ$Z#AZVeZZZZ ZZ[*[;[V[g[n[ v[[H[5[7 \ B\3L\a\\\\\.\ $]E]a]x]]]]!]] _ ___B_>` `` ` `` a a(a 0a:aOa da oayaaaaaa aabb'b 7bBbIbXbob#b#b b b bb c"c%+c%Qc wc ccc ccd.dMd"ld dGdGd -e8eHePeee zee e!eee-e1(f(Zf f6fBf(gC1guglggEhSTh h hhh,h&h"i5iG>iiiii!i jj)8j-bjj'jjjkk2k*9k*dk%k kk!k=k 0l=lDlXlwll&lBl(m=mZm'wm mmZn`nhn&onnnn n n nXo#xoCooopp p]$p.pIpp q q%q=qTqmqqqq qqqq=rvCr!r!rr2s!s&s#t5t9t ItUtGqtt tt4t*1u,\u;u5u uvvv/vCv^v|vvvvvvv www2wIw Xwbwtww'wwwyx!xxx xxx y#y33y'gyyyyy'y#y #z0z$Iz$nz#z zzDz"{I2{G|{{{{ |,|4|T|Z|m|| ||}}}}#}# ~/1~1a~F~'~ %81;mt9'>FLa vL$Rwr~ZLCS"H܂4% Z hs0׃= Q]"e  ʄڄ'*(9b (@^o2*dž&@Q Vb#|"Ӈ5)_ n| ň݈   4L`p#v  Ȋ ۊYoʋ ݋ %*݌/8R;:ɍD$O [p{̐qH3cR,+'eSq+Jڔ|%RWMMJkTFE&$=$b ϙܙ+֚  .4F{ ؛W2J#}%$ǜ9/&sV"ʝ ;R1h Ğ˞VS8@ ͟?ٟ<"!6Rhl~&,+3tC'w)eASZUiomy= ` E rssl0bQ#KP}!8AtdQH(gwJ:ZXd.4&D~*i'}*^UNp .G|W8%RM@~;"B1MLk5)_#Kr2n{nY"_| 6 c$yF`Y:>HN?zjxT{$@\4^P 7EJ>-R(h/Dm [<G]O7&0cujLk;qTvCV/I1\e?V , 2lz9o ]+59-hup! faW6IBf[q%<xOFXa=bvSg3 (modified) (unsaved)%d entry%d entries%d error%d errors%d issue with the translation found.%d issues with the translation found.%i line of file “%s” was not loaded correctly.%i lines of file “%s” were not loaded correctly.%s Format%s Preferences%s format&About&About Poedit&Bookmarks&Close&Copy&Delete&Done and Next&Done and next&Edit&File&GNU gettext Manual&GNU gettext manual&Go&Group By Context&Group by context&Help&Next >&Next Translation&Next translation&Online Help&Online help&Open...&Paste&Preferences&Previous Translation&Previous translation&Purge Deleted Translations&Purge deleted translations&Redo&Replace&Save&Show References&Show references&Undo&Untranslated Entries First&Untranslated entries first&Update from Sources&Update from sources&Validate Translations&Validate translations&View(0 new, 0 obsolete)(Learn more about GNU gettext)(New: %i, obsolete: %i)(Use default language)(requires Windows 8 or newer)< &PreviousDrag and Drop Folders Here or use the + buttonDrag and drop folders here or use the + buttonAbout %sAccountsAdd CommentAdd commentAdd directory to the listAdditional keywordsAdvancedAll Translation FilesAll commentsAlt+Always change focus to text input fieldAn item in input files list:An item in keywords list:AppearanceAre you sure you want to delete the “%s” extractor?Are you sure you want to reset the translation memory?Automatically check for updatesAutomatically compile MO file when savingBase path:Beta versions contain the latest new features and improvements, but may be a bit less stable.Bring All to FrontBroken catalog file: plural form msgstr used without msgid_pluralBroken catalog file: singular form msgstr used together with msgid_pluralBrowseC&atalogC&learCancelCannot create temporary directory.Cannot execute program: %sCapitalizeCatalogCatalog modified. Do you want to save changes?Catalog propertiesCatalogs &ManagerCatalogs &managerCatalogs ManagerChange UI languageCharset:Check Document NowCheck Grammar With SpellingCheck Spelling While TypingCheck for Updates…Check for errors in the translationCheck spellingClear TranslationClear the commentClear translationCloseCollaborate on a Translation with OthersCollaborate on a translation with othersCommand to extract translations:Comment:Compile to…Compiled Translation FilesConfigure source code extraction in Properties.ConfirmationCopyCopy From SingularCopy from Source TextCopy from singularCopy from source textCorrect Spelling AutomaticallyCouldn’t load file %s, it is probably corrupted.Couldn’t save file %s.Create New TranslationCreate new translationCreate new translations projectCrowdin errorCrowdin is an online localization management platform and collaborative translation tool. Poedit can seamlessly sync PO files managed at Crowdin.Ctrl+Cu&tCutDatabase size on disk:DeleteDelete extractorDelete the projectDirectories:Display Entry &IDsDisplay entry &IDsDo you really want to do mass update of all catalogs in this project?Do you want to delete the project?Do you want to remove all translations that are no longer used?Don’t SaveDon’t Show AgainDon’t saveDon’t show againDownDownload a file from Crowdin project, translate and sync your changes back.Downloading latest translations…Downloading translations is disabled in this project.E&xitEditEdit &CommentEdit &commentEdit CommentEdit a TranslationEdit a translationEdit commentEdit projectEdit the projectEditingEmail:EnterEnter Full ScreenEntries in the catalog are probably incorrect.Entries in this catalog have different plural forms count from what catalog’s Plural-Forms header saysEntries with Errors FirstEntries with errors firstEntries with errors were marked in red in the list. Details of the error will be shown when you select such an entry.Error loading message catalog file “%s”.Error opening fileError opening file %s!Error saving catalogEverythingExcluded pathsExport as…Extract from sourcesExtract text from source files in the following directories:Extractor setupExtractorsFailed command: %sFailed to communicate with Poedit process.Failed to load extracted catalog.Failed to merge gettext catalogs.Failed to update translation memory: %sFile “%s” is not a message catalog.File:Finalizing…FindFind NextFind PreviousFind in commentsFind in source textsFind in translationsFind nextFind previousFix LanguageFix languageFix the HeaderFix the headerForm %iGeneralGo to Bookmark %iGo to bookmark %iHTML FilesHide %sHide OthersHide SidebarHide Status BarHide this notification messageIDIf you continue with purging, all translations marked as deleted will be permanently removed. You will have to translate them again if they are added back in the future.Ignore caseImporting translations…Include beta versionsInformation about the translatorInstallInvalid fileInvocation:KeepLanguage Code or Name (e.g. en_GB)Language of the translation is the same as source language.Language of the translation isn’t set.Language of the translation:Language selectionLanguage:Last modifiedLearn About Gettext KeywordsLearn From Files…Learn MoreLearn More About CrowdinLearn about gettext keywordsLearn about plural formsLearn from files…Learn moreLearn more about CrowdinLine %d of file “%s” is corrupted (not valid %s data).Line endings:List of extensions separated by semicolons (e.g. *.cpp;*.h):MO files can’t be directly edited in Poedit.Make Lower CaseMake Upper CaseMalformed header: “%s”Merging differences…MinimizeName of the project the translation is forName:Ne&xt UnfinishedNe&xt unfinishedNeeds WorkNeeds workNever let the list of strings take focus. If enabled, you must use Ctrl-arrows for keyboard navigation but you can also type text immediately, without having to press Tab to change focus.NewNew stringsNext Plural FormNext plural formNo Matches FoundNo matches foundNo problems with the translation found.No references for the selected item.No translation projects listed in your Crowdin account.Not authorized, please sign in again.Notes for translators:OKObsolete stringsOneOnly fill in exact matchesOpenOpen Crowdin translationOpen RecentOpen an existing PO file and edit the translation.Open catalogOpen catalog templateOpen in EditorOpen in editorOptionsOtherP&revious UnfinishedP&revious unfinishedPO TranslationPO Translation FilesPOT Translation TemplatesPOT files are only templates and don’t contain any translations themselves. To make a translation, create a new PO file based on the template.PastePaste and Match StylePathsPlease open and edit the corresponding PO file instead. When you save it, the MO file will be updated as well.Please save the file first. This section cannot be edited until then.PluralPlural forms expression used by the catalog is unusual for %s.Plural forms:Plural:PoeditPoedit - Catalogs managerPoedit automatically fixed invalid content in the file “%s”.Poedit is an easy to use translations editor.Pre-translatePre-translatedPre-translating…Preferences...Preferences…Preserve formatting of existing filesPrevious Plural FormPrevious plural formPrevious source text:Project name and version:Project name:Project:PurgePurge deleted translationsQuitQuit %sRedoReferences:Remaining: %dReplaceReplace &AllReplace &allReplacement stringRequired header Plural-Forms is missing.ResetReset translation memoryResetting the translation memory will irrevocably delete all stored translations from it. You can’t undo this operation.ReviewSaveSave as…Save catalogSave changesSelect &AllSelect AllSelect directorySelect translation files to importSelect your preferred languageServicesSet Bookmark %iSet LanguageSet bookmark %iSet languageShift+Show AllShow SidebarShow Spelling and GrammarShow Status BarShow SubstitutionsShow or hide the sidebarShow sidebarShow status barShow summary after catalog updateSidebarSign InSign OutSign inSign in to CrowdinSign outSigned in as:SingularSingular:Smart Copy/PasteSmart DashesSmart LinksSmart QuotesSort by &File OrderSort by &SourceSort by &TranslationSort by &file orderSort by &sourceSort by &translationSource code charset:Source code extractors are used to find translatable strings in the source code files and extract them so that they can be translated.Source code not available.Source fileSource file occurrence:Source textSource text — %sSource text:Sources keywordsSources pathsSpeechSpellchecking is disabled, because the dictionary for %s isn’t installed.Spelling and GrammarStart SpeakingStop SpeakingStored translations:String to findSubstitutionsSuggestionsSuggestions are not available if the translation language is not set correctly. Other features, such as plural forms, may be affected as well.SyncSync with CrowdinSynchronize the translation with CrowdinSyncing with Crowdin failed.Syntax error in Plural-Forms header ("%s").TMTake an existing PO file or POT template and create a new translation from it.Take translatable strings from an existing POT template.Text ReplacementThe TM doesn’t contain any strings similar to the content of this file. It is only effective for semi-automatic translations after Poedit learns enough from files that you translated manually.The file cannot be compiled into the MO format and used.The file cannot be opened.The file contained duplicate items, which is not allowed in PO files and would prevent the file from being used. Poedit fixed the issue, but you should review translations of any items marked as needing work and correct them if necessary.The file may be either corrupted or in a format not recognized by Poedit.The file was compiled into the MO format, but it will probably not work correctly.The file was saved safely and compiled into the MO format, but it will probably not work correctly.The file was saved safely, but it cannot be compiled into the MO format and used.The file was saved safely.The simplest way to fill this catalog is to update it from a POT:The translation is ready for use, but %d entry is not translated yet.The translation is ready for use, but %d entries are not translated yet.The translation is ready for use.There are no translations. That’s unusual.There was a problem formatting the file nicely (but it was saved all right).There were errors when loading the catalog. Some data may be missing or corrupted as the result.These settings affect internal formatting of PO files. Adjust them if you have specific requirements e.g. because of version control.These strings are no longer in the sources. Poedit will remove them from the catalog now.These strings were found in the sources but were not in the catalog. Poedit will add them to the catalog now.This catalog has entries with plural forms, but doesn’t have Plural-Forms header configured.This file can only be edited in Crowdin’s web interface.This is the command used to launch the extractor. %o expands to the name of output file, %K to list of keywords, %F to list of input files, %C to charset flag (see below).This project has no files that can be translated in Poedit.This string was found in Poedit’s translation memory.This will be attached to the command line only if source code charset was given. %c expands to charset value.This will be attached to the command line once for each input file. %f expands to the filename.This will be attached to the command line once for each keyword. %k expands to the keyword.TotalTransformationsTranslated: %d of %d (%d %%)Translation LanguageTranslation MemoryTranslation Needs &WorkTranslation needs &workTranslation propertiesTranslation suggestions:Translation — %sTranslation:Translations couldn’t be updated from the source code, because no code was found in the location specified in the catalog’s Properties.TwoUTF-8 (recommended)UndoUnhandled exception occurred: %sUnix (recommended)UntransUpUpdateUpdate allUpdate all catalogs in the projectUpdate catalog - synchronize it with sourcesUpdate from POTUpdate summaryUpdatesUpdating catalogUpdating failedUpdating the catalog failed. Click on 'Details >>' for details.Updating user information…Uploading translations…Use custom expressionUse custom list font:Use custom text fields font:Use default rules for this languageUse these keywords (function names) to recognize translatable strings in source files:Use translation memoryValidateValidation resultsVersion %sWaiting for authentication…Welcome to PoeditWhat is Crowdin?When updating from sourcesWhole words onlyWindowWindowsWrap aroundWrap at:You can also extract translatable strings directly from the source code:You can’t drop more than one file on Poedit window.You must restart Poedit for this change to take effect.Your NameYour changes will be lost if you don’t save them.Your name and email address are only used to set the Last-Translator header of GNU gettext files.ZeroZoomaltctrldon’t delete temporary files (for debugging)e.g. nplurals=2; plural=(n > 1);fuzzy match within the filehandle a poedit:// URIpre-translate from TMshiftunknown languageyour_email@example.com“%s” is not a valid POT file.Project-Id-Version: poedit Report-Msgid-Bugs-To: help@poedit.net POT-Creation-Date: 2017-12-05 15:52+0100 PO-Revision-Date: 2017-07-27 03:14-0400 Last-Translator: vslavik Language-Team: Occitan Language: oc_FR MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=(n > 1); X-Generator: crowdin.com X-Crowdin-Project: poedit X-Crowdin-Language: oc X-Crowdin-File: /locales/poedit.pot (modificat) (pas salvat)%d entrada%d entradas%d error%d errors%d problèma dins la traduccion.%d problèmas dins la traduccion.%i linha del fichièr « %s » es pas estada cargada corrèctament.%i linhas del fichièr « %s » son pas estadas cargadas corrèctament.Format %sPreferéncias de %sformat %s&A prepaus&A prepaus de Poedit&Marcapaginas&Tampar&Copiar&Suprimir&Aplicar e contunhar&Aplicar e contunhar&Modificar&FichièrManual de &GNU gettextManual de &GNU gettextA&viar&Gropar per Contèxte&Gropar per contèxte&Ajuda&Seguenta >Traduccion segue&ntaTraduccion segue&nta&Ajuda en linha&Ajuda en linhaD&obrir...&Pegar&PreferénciasTraduccion &precedentaTraduccion &precedenta&Escafar las traduccions suprimidas&Escafar las traduccions suprimidas&Restablir&Remplaçar&Enregistrar&Veire las referéncias&Veire las referénciasAn&ullarEntradas &pas Traduitas d'en PrimièrEntradas &pas traduitas d'en primièr&Metre a jorn dempuèi las Fonts&Metre a jorn dempuèi las fonts&Validar las traduccions&Validar las traduccions&Afichatge(0 novèla, 0 obsolèta)(Ne saber mai sus GNU gettext)(Novèla : %i, obsolèta : %i)(Utilizar la lenga per defaut)(necessita Windows 8 o mai recent)< &PrecedentaLisatz-depausatz los dorsièrs aicí o utilizatz lo boton +Lisatz-depausatz los dorsièrs aicí o utilizatz lo boton +A prepaus de %sComptesApondre un comentariApondre un comentariApondre un repertòri a la listaMots claus suplementarisAvançatsTotes los fichièrs de traduccionTotes los comentarisAlt+Activar totjorn la zòna de picada del tèxteUn element de la lista dels fichièrs d'entrada :Un element de la lista dels mots claus :AparénciaSètz segur que volètz suprimir l'extractor «%s » ?Sètz segur que volètz reïnicializar la memòria de traduccion ?Recercar automaticament las mesas a jornCompilar automaticament lo fichier MO al moment de l'enregistramentCamin de basa :Las versions bèta contenon las darrièras novetats e melhoraments, mas pòdon èsser un pauc mens establas.Tot passar al primièr planCatalòg corromput : forma plurala msgstr utilizada sens msgid_pluralCatalòg corromput : forma singulara msgstr utilizada conjuntament amb msgid_pluralPercórrer&Catalòg&EscafarAnullarImpossible de crear lo repertòri temporari.Impossible d'executar lo programa : %sMetre en majusculaCatalògLo catalòg es estat modificat. Volètz enregistrar las modificacions ?Proprietats del catalògGestion dels &catalògsGestion dels &catalògsGestionari de catalògsCambiar la lenga de l'interfàciaJòc de caractèrs :Verificar lo document araVerificar la gramatica amb l’ortografiaVerificar l'ortografia al moment de la picadaRecèrca de las mesas a jorn...Verificar las errors dins la traduccionVerificar l’ortografiaEscafar la traduccionEscafar lo comentariEscafar la traduccionTamparCollaborar a una traduccion amb d’autresCollaborar a una traduccion amb d’autresComanda per extraire de traduccions :Comentari :Compilacion...Fichièrs de traduccion compilatsConfigurar l’extraccion de còdi font dins las Proprietats.ConfirmacionCopiarCopiar del singularCopiar dempuèi lo tèxte fontCopiar del singularCopiar dempuèi lo tèxte fontCorregir l’ortografia automaticamentFracàs del cargament del fichièr %s : es probablament corromput.Impossible d'enregistrar lo fichièr %s.Crear una Novèla TraduccionCrear una novèla traduccionCrear un novèl projècte de traduccionError CrowdinCrowdin es una plataforma de gestion de localizacion en linha e una aisina de traduccion collaborativa. Poedit pòt sincronizar perfièitament los fichièrs PO amb Crowdin.Ctrl+&TalharTalharTalha de la basa de donadas sul disc :SuprimirSuprimir l'extractorSuprimir aqueste projècteRepertòris :Afichar los &IDs de las entradasAfichar los &IDs de las entradasSètz segur que volètz far una mesa a jorn de totes los catalògs d'aqueste projècte ?Volètz escafar aqueste projècte ?Volètz suprimir totas las traduccions que son pas mai utilizadas ?Enregistrar pasAfichar pas maiEnregistrar pasAfichar pas maiBasTelecargar un fichièr d'un projècte Crowdin, traduire e sincronizar vòstras modificacions.Telecargament de las darrièras traduccions...Lo telecargament de las traduccions es desactivat dins aqueste projècte.&QuitarModificarModificar lo &comentariModificar lo &comentariModificar lo comentariModificar una traduccionModificar una traduccionModificar lo comentariModificar lo projècteModificar lo projècteCambiamentsEmail :EntradaPassar en mòde ecran completCertanas entradas del catalòg son probablament incorrèctas.Las entradas dins aqueste catalòg an un nombre de formas pluralas diferent de lo qu'es indicat dins l'entèsta PluralEntradas amb Errors d'en primièrEntradas amb errors d'en primièrLas entradas amb d'errors son estadas marcadas en roge dins la lista. Los detalhs de l'error s'aficharàn quand seleccionaretz aqueste tipe d'entrada.Error al cargament del fichièr catalòg « %s ».Error a la dobertura del fichièrError a la dobertura del fichièr %s !Error d'enregistrament del catalògTotCamins exclusesExportar...Extraire dempuèi las fontsExtraire lo tèxte dels fichièrs fonts dins los repertòris seguents :Installacion de l'extractorExtractorsLa comanda a fracassat : %sImpossible de comunicar amb los processus de Poedit.Fracàs de cargament del catalòg extrait.Fracàs de la fusion dels catalògs gettext.Fracàs de la mesa a jorn de la memòria de traduccion : %sLo fichièr « %s » es pas un catalòg de messatges.Fichièr :Finalizacion...TrobarCercar lo seguentCercar lo precedentTrobar dins los comentarisTrobar dins los tèxtes fontsTrobar dins las traduccionsCercar lo seguentTrobar lo precedentCorregir la lengaCorregir la lengaCorregir l'entèstaCorregir l'entèstaForma %iGeneralAnar al marcapagina %iAnar al marcapagina %iFichièrs HTMLAmagar %sAmagar los autresAmagar lo panèl lateralAmagar la barra d'estatAmagar aqueste messatge de notificacionIDEn contunhant lo netejatge, totas las traduccions marcadas coma suprimidas seràn escafadas definitivament. Caldrà recomençar la traduccion se son apondudas tornamai.Ignorar la cassaImportacion de las traduccions…Inclure las versions bètaInformacions sul traductorInstallarFichièr invalidApèl :ConservarCòdi o nom de la lenga (ex. oc_FR)La lenga de traduccion es identica a la lenga font.La lenga de traduccion es pas definida.Lenga de la traduccion :Seleccion de lengaLenga :Darrièr cambiamentNe saber mai suls mots claus de GettextApréner a partir dels fichièrs...Ne saber maiNe saber Mai sus CrowdinNe saber mai suls mots claus gettextNe saber mai sus las formas pluralasApréner a partir dels fichièrs...Ne saber maiNe saber mai sus CrowdinLa linha %d del fichièr '%s' es corrompuda (donadas %s invalidas).Fins de linha :Lista de las extensions separadas per de punts-virgulas (ex. *.cpp;*.h) :Los fichièrs MO pòdon pas èsser modificats dirèctament dins Poedit.Metre en minusculasMetre en majusculasEntèsta mal formada : « %s »Integracion dels cambiaments...ReduireNom del projècte de traduccionNom :Incomplet seguen&tIncomplet seguen&tTrabalh necessariDe repassarDaissar pas jamai la man a la lista de las cadenas. Quand es activada, cal utilizar las tòcas Ctrl + Naut/Bas de navigacion, mas podètz tanben picar lo tèxte dirèctament sens que vos calga utilizar la tòca de tabulacion per activar la zòna de traduccion.NovèlCadenas novèlasForma plurala seguentaForma plurala seguentaCap de Correspondéncia pas trobadaCap de correspondéncia pas trobadaCap de problèma pas trobat dins la traduccion.Pas cap de referéncia per l'element seleccionat.Cap de projècte de traduccion pas listat dins vòstre compte Crowdin.Pas autorizat, connectatz-vos tornamai.Nòtas pels traductors :D'acòrdiCadenas obsolètasUnCompletar unicament las correspondéncias exactasDobrirDobrir la traduccion CrowdinDobèrts recentamentDobrir un fichièr PO existent e modificar la traduccion.Dobrir un catalògDobrir un modèl de catalògDobrir dins l’EditorDobrir dins l’EditorOpcionsAutreIncomplet p&recedentIncomplet p&recedentTraduccion POFichièrs de traduccion POModèls de traduccion POTLos fichièrs POT son pas que de modèls e contenon pas de traduccions. Per far una traduccion, creatz un novèl fichièr PO a partir del modèl.PegarPegar en conservant la mesa en formaCaminsDobrissètz e editar lo fichièr PO correspondent. Quand l'enregistraretz, lo fichièr MO serà mes a jorn tanben.D'en primièr, enregistratz lo fichièr. Aquesta seccion pòt pas èsser modificada abans.PluralLas formas pluralas utilizadas pel catalòg son inabitualas per %s.Formas pluralas :Plural :PoeditPoedit - Gestionari dels catalògsPoedit a corregit automaticament lo contengut invalid del fichièr "%s".Poedit es un logicial de traduccion de bon utilizar.PretraductionPretraduitPretraduccion…Preferéncias...Preferéncias...Preservar lo formatatge dels fichièrs existentsForma plural precedentaForma plural precedentaTèxte font precedent :Nom e version del projècte :Nom del projècte :Projècte :EscafarEscafar las traduccions suprimidasQuitarQuitar %sRefarReferéncias :Que demòra : %dRemplaçarRemplaçar &totRemplaçar &totCadena de remplaçamentL'entèsta Plural requesida es absenta.ReïnicializarReïnicializar la memòria de traduccionLa reïnicializacion de la memòria de traduccion suprimirà definitivament totas las traductions que i son emmagazinadas. Aquesta operacion es irreversibla.RepassarEnregistrarEnregistrar jos...Enregistrar lo catalògEnregistrar las modificacionsSeleccionar &totSeleccionar totCausir un repertòriSeleccionar los fichièrs de traduccion d'importarSeleccionatz vòstra lenga de preferénciaServicisDefinir lo marcapagina %iDefinir la lengaDefinir lo marcapagina %iDefinir la lengaMaj+Afichar totAfichar lo panèl lateralAfichar l'ortografia e la gramaticaAfichar la barra d'estatAfichar las substitucionsAfichar o amagar lo panèl lateralAfichar lo panèl lateralAfichar la barra d'estatAfichar lo resumit aprèp la mesa a jorn del catalògPanèl lateralS'identificarSe desconnectarS'identificarConnectatz-vos sus CrowdinSe desconnectarConnectat en tant que :SingularSingular :Copiar/pegar intelligentJonhents intelligentsLigams intelligentsVerguetas intelligentasTriar per &FichièrTriar per &FontTriar per &TraduccionTriar per &fichièrTriar per &fontTriar per &traduccionJòc de caractèrs del còdi font :Los extractors de còdi font son utilizats per recercar e extraire las cadenas tradusiblas dels fichièrs del còdi font per fin de las traduire.Còdi font indisponible.Fichièr fontPreséncia del fichièr font :Tèxte fontTèxte font — %sTèxte font :Mots claus fontsCamins de las fontsDictarLa verificacion ortografica es desactivada, perque lo diccionari pel %s es pas installat.Ortografia e GramaticaComençar de parlarComençar de parlarTraduccions emmagazinadas :Cadena de recercarSubstitucionsSuggestionsLas suggestions son pas disponiblas se la lenga de traduccion es pas definida. Las autras foncionalitats, coma los plurals, pòdon èsser afectadas tanben.SincronizarSincronizar amb CrowdinSincronizar la traduccion amb CrowdinLa sincronizacion amb Crowdin a fracassat.Error de sintaxi dins l'entèsta Plural ("%s").MTCrear una novèla traduccion a partir d'un fichièr PO o d'un modèl POT existent.Utilizar las cadenas tradusiblas d'un modèl POT existent.Tèxte de remplaçamentLa MT conten pas cap de cadena identica al contengut d'aqueste fichièr. Es efectiu unicament per de traduccions semi-automaticas aprèp que Poedit aja aprés pro de fichièrs traduits manualament.Lo fichièr pòt pas èsser compilat al format MO e èsser utilizat.Lo fichièr pòt pas èsser dobèrt.Lo fichièr conteniá d'elements en doble, aquò es pas permés dins los fichièrs PO e empachariá son utilizacion. Poedit a reglat aqueste problèma, mas vos caldriá repassar las traduccions de totes los elements marcats coma aproximatius e las corregir se necessari.Benlèu que lo fichièr es corromput o dins un format pas reconegut per Poedit.Lo fichièr es estat compilat al format MO, mas foncionarà probablament pas corrèctament.Lo fichièr es estat enregistrat en tota seguretat e compilat al format MO, mas foncionarà probablament pas corrèctament.Lo fichièr es estat enregistrat en tota seguretat, mas pòt pas èsser compilat al format MO ni èsser utilizat.Lo fichièr es estat enregistrat en tota seguretat.Lo biais lo mai simple d'emplenar aqueste catalòg es de lo metre a jorn dempuèi un fichièr POT :La traduccion es prèsta a èsser utilizada, mas %d entrada es pas encara traduita.La traduccion es prèsta a èsser utilizada, mas %d entrada es pas encara traduita.La traduccion es prèsta a èsser utilizada.I a pas cap de traduccions. Es pas corrent.I a agut un problèma al moment del formatatge del fichièr (mas es estat enregistrat corrèctament).I a agut d'errors al moment del cargament del catalòg. Es possible que de donadas sián mancantas o corrompudas.Aqueles paramètres modifican la mesa en forma intèrna dels fichièrs PO. Ajustatz-las se avètz d'exigéncias especificas, per exemple en rason del contraròtle de version.Aquestas cadenas son pas mai dins las fonts. Poedit los leva del catalòg.Las cadenas seguentas son estadas trobadas dins las fonts mas existisson pas dins lo catalòg. Poedit las apond al catalòg.Aqueste catalòg a d'entradas al plural, mas l'entèsta Plural es pas configurada.Aqueste fichièr pòt pas èsser modificat qu'a partir de l'interfàcia web de Crowdin.Aquí las comandas qu'avian l'extractor. %o : espandir al nom del fichièr de sortida, %K : far la lista dels mots claus, %F : far la lista dels fichièrs d'entrada, %C : jòc de caractèrs (veire çaijós).Aqueste projècte a pas cap de fichièr que pòsca èsser traduit amb Poedit.Aquesta cadena es estada trobada dins la memòria de traduccion de Poedit.Inserit dins la linha de comanda quand lo còdi de jòc de caractèrs de la font es provesit. %c s'espandís a la valor del jòc de caractèrs.Inserit dins la linha de comanda per cada fichièr d'entrada. %f : nom del fichièr.Inserit dins la linha de comanda per cada mot clau. %k : lo mot clau.TotalTransformacionsTraduit : %d de %d (%d %%)Lenga de traduccionMemòria de traduccionTraduccion necessitant una &revisionTraduccion necessitant una &revisionProprietats de traduccionSuggestions de traduccion :Traduccion — %sTraduccion :Las traduccions an pas pogut èsser mesas a jorn a partir del còdi font, perque cap de còdi es pas estat trobat a l'emplaçament precisat dins las proprietats del catalòg.DosUTF-8 (recomandat)AnullarUna excepcion pas gerida s'es produita : %sUnix (recomandat)Pas traduitNautMetre a jornTot metre a jornMetre a jorn totes los catalògs del projècteMetre a jorn lo catalòg - Sincronizar amb las fontsMetre a jorn dempuèi un POTResumit de la mesa a jornMesas a jornMesa a jorn del catalògFracàs de la mesa a jornLa mesa a jorn del catalòg a fracassat. Clicatz sus « Detalhs >> » per ne saber mai.Mesa a jorn de las informacions de l'utilizaire...Telecargament de las traduccions...Utilizar una expression personalizadaUtilizar una poliça personalizada :Utilizar una poliça personalizada pels camps de tèxte :Utilizar las règlas per defaut d'aquesta lengaUtilizar aquestes mots claus (noms de foncions) per reconéisser las cadenas tradusiblas dins los fichièrs fonts :Utilizar la memòria de traduccionValidarResultats de la validacionVersion %sEn espèra d'autentificacion...Benvenguda dins PoeditQu'es aquò Crowdin ?Al moment de l’actualizacion dempuèi las fontsMots entièrs unicamentFenèstraWindowsBoclarPassar a la linha a :Tanben podètz extraire las cadenas tradusiblas dirèctament a partir del còdi font :Es impossible de depausar mai d'un fichièr a l'encòp dins la fenèstra de Poedit.Vos cal reaviar Poedit per qu'aqueste cambiament prenga efièit.Vòstre nomVòstras modificacions seràn perdudas se las enregistratz pas.Vòstre nom e vòstra adreça e-mail son utilizats unicament per definir l'entèsta Last-Translator dels fichièrs de GNU gettext.ZèroAgrandiraltctrlsuprimir pas los fichièrs temporaris (per fins de desbugar)p. ex. nplurals=2; plural=(n > 1);emplenatge aprox. amb lo fichièrgerís una URI de poedit://pretraduire amb la MTmajlenga desconegudavostre.e-maill@exemple.com« %s » es pas un fichièr POT valid.poedit-2.0.6/locales/et.mo0000664000372000037200000011542713230132076012322 00000000000000)d"8. 9. E.P.<d..J.g. g/q/ // /// //////////00"060:0L0^0d0i0q0y0000 0 0000 000 1!101L1h1n1t1}1111111122-2D2J2O2c2222 2:2:3 Q3[3d3 m3 y333 33 3333 4&4/4 E4R4'W444 44644)5H5 M5]X55A5I 6U6\6e6l6"s66 66.6677*7;7N7W7j777#777788)8;8(A8(j88888 88 999.9D9W9m929999: &:4::::::: ;;&;E9;";?; ;;*< -<:<M<KR<"<5<<<= = #= 1=>=Q= d= q=~======.=h=V>p>u>,?-?@?W?l? s?~? ?<??*?!@!7@'Y@@@'@@ @@ @ @@A#A8A MA WA eA rAAAAA AAAA AAA A BB'BFBIB BBC /CPC XC eCqC"vC;C(CCD.D =D GDUDrD DDDDD DDE:E XE<fE.EEEE F$F*-FXF^FoF F FFRGVGoG GGGGG#GG'G$'H7LH$H%HHHHHHII7I LI2XI IIIIIIIIIIJ)J8JMJgJJJnKEsKK>K K LLL@6L-wLL LL2LM M&M5M%DMjMMMM MMMMMN NN N!N )N7N ?N LNYN lN(wNNNzN:OAOGO LO XOdO lO wO O O OO"OOOP P!P 1P>PEP NP[PuPPP PP!PPPQ QQ$Q -Q;Q DQNQ _Q lQ xQQQQQQQQ R 'R3R KRWR jRwR RR RRKRSS ,S:SOS ^S lSxST T(TGT OT]TuTT+TTNT8#U"\UU8UUQU6VAQV-VCVAWKGW0W.W!W)X-?X+mX8XCX,YLCY`YYYmKZ^Z:[;S[7[m[_5\[\\\]$]9]L]d]{]]]] ]]o^s^^^^^^ ^"^,^ _%_>_N_]_e_v_?____`)`#F`Vj```` ``a/a@a[alasa {aaa5a7a b3 ba@bbbbb.b bc!c7c=cNc!ecc aeme}e6ee8eef vf f f f fffff ffffgg'g6gv[vXxv$vv w&wEwJwPwjwAzw w,ww*x'Bxjxox!xxxxx xxx y!y1y @y My Zy gy uyy y yyyy yyy yy zz2z5zzzz{&{ /{ ;{I{R{#r{{{ {{{{+|,|>|M|+f|(|||||:| 6}6A}$x}}}}} }}~~2~ I~ V~c~,0H `m+8'$`&Ȁˀ܀'(6_qǁρӁ }(VK UG\Ã9܃& = K V-a &Ȅ,GYbj  ΅ Յ  1 <FhX ̆҆ۆ  , @ LW!j ̇   5FVr& ň Ј ܈  $+ 3TkpՉ &> XczĊي EKcv IXr܌&+IBL-+1-gAJ @#?d?#%D!b"<ǐ/C4YxMґ] S~4Ғ>&Frm\W=  ” ͔ٔ- ?MWUƕ͕  .&Ul ˖O3Ok(+ї][ nx ɘ٘  &3.7;f :[C HRV'[К ֚&H:(Y\lu. Y1*a OG8^[!1QT%{-'uI> D3e@y?jHc`>~z$koJG,K7][qUl%Q" B@ E3X6gj,{AJwz $."IAbEekp#};d  gCaDx- t!Sy?+=WU)P&"xM_ |(m#n:r9)KV)| 6 N'W 9fTF5\<b/#*q8 pRwoC+h^%X20P]f4 &tLi;RZsnF72~ZLV=`04s_rh5vmOdM cB(< Si}$'N /!v (modified) (unsaved)%d entry%d entries%d entry was pre-translated.%d entries were pre-translated.%d error%d errors%d issue with the translation found.%d issues with the translation found.%i line of file “%s” was not loaded correctly.%i lines of file “%s” were not loaded correctly.%s Format%s Preferences%s format&About&About Poedit&Apply&Back&Bookmarks&Cancel&Clear&Close&Copy&Delete&Done and Next&Done and next&Edit&File&Find…&GNU gettext Manual&GNU gettext manual&Go&Group By Context&Group by context&Help&New&New…&Next >&Next Translation&Next translation&No&OK&Online Help&Online help&Open...&Open…&Paste&Preferences&Preferences…&Previous Translation&Previous translation&Properties…&Purge Deleted Translations&Purge deleted translations&Quit&Redo&Replace&Save&Save as&Show References&Show references&Undo&Untranslated Entries First&Untranslated entries first&Update from Sources&Update from sources&Validate Translations&Validate translations&View&Yes(0 new, 0 obsolete)(Learn more about GNU gettext)(New: %i, obsolete: %i)(Use default language)(requires Windows 8 or newer)< &PreviousDrag and Drop Folders Here or use the + buttonDrag and drop folders here or use the + buttonAbout %sAccountsAdd CommentAdd Files…Add Folders…Add Wildcard…Add commentAdd directory to the listAdd files…Add folders…Add wildcard…Additional keywordsAdditional xgettext flags:AdvancedAll Translation FilesAll commentsAlt+Always change focus to text input fieldAn item in input files list:An item in keywords list:AppearanceApplyAre you sure you want to reset the translation memory?Automatically check for updatesAutomatically compile MO file when savingBackBase path:Beta versions contain the latest new features and improvements, but may be a bit less stable.Bring All to FrontBroken catalog file: plural form msgstr used without msgid_pluralBroken catalog file: singular form msgstr used together with msgid_pluralBrowseC&atalogC&learCancelCannot create temporary directory.Cannot execute program: %sCapitalizeCatalogCatalog modified. Do you want to save changes?Catalog propertiesCatalogs &ManagerCatalogs &managerCatalogs ManagerChange UI languageCharset:Check Document NowCheck Grammar With SpellingCheck Spelling While TypingCheck for Updates…Check for errors in the translationCheck for updates…Check spellingClearClear TranslationClear the commentClear translationCloseCollaborate on a Translation with OthersCollaborate on a translation with othersCollecting source files…Comment:Comments prefixed with:Compile to MO…Compile to…Compiled Translation FilesConfirmationCopyCopy From SingularCopy from Source TextCopy from singularCopy from source textCorrect Spelling AutomaticallyCouldn’t load file %s, it is probably corrupted.Couldn’t save file %s.Create New TranslationCreate new translationCreate new translations projectCrowdin errorCrowdin is an online localization management platform and collaborative translation tool. Poedit can seamlessly sync PO files managed at Crowdin.Ctrl+Cu&tCutDatabase size on disk:DeleteDelete the projectDirectories:Display Entry &IDsDisplay entry &IDsDo you really want to do mass update of all catalogs in this project?Do you want to delete the project?Do you want to remove all translations that are no longer used?Don’t SaveDon’t Show AgainDon’t mark exact matches as needing workDon’t saveDon’t show againDownDownload a file from Crowdin project, translate and sync your changes back.Downloading latest translations…Downloading translations is disabled in this project.E&xitE&xport as HTML…EditEdit &CommentEdit &commentEdit CommentEdit a TranslationEdit a translationEdit commentEdit projectEdit the projectEditingEdit…Email:EnterEnter Full ScreenEntries in the catalog are probably incorrect.Entries in this catalog have different plural forms count from what catalog’s Plural-Forms header saysEntries with Errors FirstEntries with errors firstEntries with errors were marked in red in the list. Details of the error will be shown when you select such an entry.Error loading message catalog file “%s”.Error opening fileError opening file %s!Error saving catalogErrorsEverythingExcluded pathsExport as…Extract text from source files in the following directories:Failed command: %sFailed to communicate with Poedit process.Failed to load extracted catalog.Failed to merge gettext catalogs.Failed to update translation memory: %sFileFile “%s” doesn’t exist.File “%s” is not a message catalog.File:Finalizing…FindFind NextFind PreviousFind and Replace…Find in commentsFind in source textsFind in translationsFind nextFind previousFix LanguageFix languageFix the HeaderFix the headerForm %iFrequentGNU gettextGeneralGo to Bookmark %iGo to bookmark %iHTML FilesHelpHide %sHide OthersHide SidebarHide Status BarHide this notification messageIDIf you continue with purging, all translations marked as deleted will be permanently removed. You will have to translate them again if they are added back in the future.Ignore caseImporting translations…Include beta versionsInformation about the translatorInstallInvalid fileInvocation:KeepLanguage Code or Name (e.g. en_GB)Language of the translation is the same as source language.Language of the translation isn’t set.Language of the translation:Language selectionLanguage team:Language:Last modifiedLearn About Gettext KeywordsLearn From Files…Learn MoreLearn More About CrowdinLearn about gettext keywordsLearn about plural formsLearn from files…Learn moreLearn more about CrowdinLeftLine %d of file “%s” is corrupted (not valid %s data).Line endings:List of extensions separated by semicolons (e.g. *.cpp;*.h):MO files can’t be directly edited in Poedit.Make Lower CaseMake Upper CaseMalformed header: “%s”Merging differences…MinimizeName of the project the translation is forName:Ne&xt UnfinishedNe&xt unfinishedNeeds WorkNeeds workNever let the list of strings take focus. If enabled, you must use Ctrl-arrows for keyboard navigation but you can also type text immediately, without having to press Tab to change focus.NewNew From &POT/PO File…New from &POT/PO file…New stringsNext Plural FormNext plural formNoNo Matches FoundNo entries could be pre-translated.No matches foundNo problems with the translation found.No references for the selected item.No translation projects listed in your Crowdin account.Not all plural forms are translated.Not authorized, please sign in again.Notes for translators:OKObsolete stringsOneOnly fill in exact matchesOpenOpen Crowdin translationOpen From Crowdin…Open RecentOpen an existing PO file and edit the translation.Open catalogOpen catalog templateOpen from Crowdin…Open in EditorOpen in editorOpen...Open…OptionsOtherP&revious UnfinishedP&revious unfinishedPO TranslationPO Translation FilesPOT Translation TemplatesPOT files are only templates and don’t contain any translations themselves. To make a translation, create a new PO file based on the template.PastePathsPlease open and edit the corresponding PO file instead. When you save it, the MO file will be updated as well.Please save the file first. This section cannot be edited until then.PluralPlural forms expression used by the catalog is unusual for %s.Plural forms:Plural:PoeditPoedit - Catalogs managerPoedit automatically fixed invalid content in the file “%s”.Poedit is an easy to use translations editor.Pre-&translate…Pre-translatePre-translatedPre-translated %u stringPre-translated %u stringsPre-translating…PreferencesPreferences...Preferences…Preserve formatting of existing filesPrevious Plural FormPrevious plural formPrevious source text:Project name and version:Project name:Project:PurgePurge deleted translationsQuitQuit %sRecentRedoReferences:RefreshRemaining: %dReplaceReplace &AllReplace &allReplacement stringReplace…Required header Plural-Forms is missing.ResetReset translation memoryResetting the translation memory will irrevocably delete all stored translations from it. You can’t undo this operation.ReviewRightSaveSave &As…Save &as…Save asSave as…Save catalogSave changesSelect &AllSelect AllSelect directorySelect translation files to importSelect your preferred languageServicesSet Bookmark %iSet LanguageSet bookmark %iSet languageShift+Show AllShow SidebarShow Spelling and GrammarShow Status BarShow SubstitutionsShow or hide the sidebarShow sidebarShow status barShow summary after catalog updateSidebarSign InSign OutSign inSign in to CrowdinSign outSigned in as:SingularSingular:Smart Copy/PasteSmart DashesSmart LinksSmart QuotesSort by &File OrderSort by &SourceSort by &TranslationSort by &file orderSort by &sourceSort by &translationSource code charset:Source code not available.Source fileSource file occurrence:Source textSource text — %sSource text:Sources KeywordsSources PathsSources keywordsSources pathsSpeechSpellchecking is disabled, because the dictionary for %s isn’t installed.Spelling and GrammarStart SpeakingStop SpeakingStored translations:String to findSubstitutionsSuggestionsSuggestions are not available if the translation language is not set correctly. Other features, such as plural forms, may be affected as well.SyncSync with CrowdinSynchronize the translation with CrowdinSyncingSyncing errorSyncing with %s failed.Syncing with %s…Syncing with Crowdin failed.Syntax error in Plural-Forms header ("%s").TMTake an existing PO file or POT template and create a new translation from it.Take translatable strings from an existing POT template.Team name and email address or URLText ReplacementThe file cannot be compiled into the MO format and used.The file cannot be opened.The file was saved safely, but it cannot be compiled into the MO format and used.The file was saved safely.The simplest way to fill this catalog is to update it from a POT:The translation doesn’t start with a space.The translation ends with a newline, but the source text doesn’t.The translation ends with a space, but the source text doesn’t.The translation ends with “%s”, but the source text ends with “%s”.The translation is missing a newline at the end.The translation is missing a space at the end.The translation is ready for use.The translation should end with “%s”.The translation should not end with “%s”.The translation should start as a sentence.The translation should start with a lowercase character.The translation starts with a space, but the source text doesn’t.There are no translations. That’s unusual.There was a problem formatting the file nicely (but it was saved all right).There were errors when loading the catalog. Some data may be missing or corrupted as the result.These strings are no longer in the sources. Poedit will remove them from the catalog now.These strings were found in the sources but were not in the catalog. Poedit will add them to the catalog now.This catalog has entries with plural forms, but doesn’t have Plural-Forms header configured.This file can only be edited in Crowdin’s web interface.This project has no files that can be translated in Poedit.This string was found in Poedit’s translation memory.This will be attached to the command line only if source code charset was given. %c expands to charset value.This will be attached to the command line once for each input file. %f expands to the filename.This will be attached to the command line once for each keyword. %k expands to the keyword.TotalTransformationsTranslated: %d of %d (%d %%)Translation LanguageTranslation MemoryTranslation Needs &WorkTranslation PropertiesTranslation needs &workTranslation propertiesTranslation suggestions:Translation — %sTranslation:Translations couldn’t be updated from the source code, because no code was found in the location specified in the catalog’s Properties.TwoUTF-8 (recommended)UndoUnix (recommended)UntransUpUpdateUpdate allUpdate all catalogs in the projectUpdate catalog - synchronize it with sourcesUpdate from &POT File…Update from &POT file…Update from POTUpdate summaryUpdatesUpdating catalogUpdating failedUpdating the catalog failed. Click on 'Details >>' for details.Updating user information…Uploading translations…Use custom expressionUse custom list font:Use custom text fields font:Use default rules for this languageUse these keywords (function names) to recognize translatable strings in source files:Use translation memoryValidateValidation resultsVersion %sWaiting for authentication…Welcome to PoeditWhat is Crowdin?When updating from sourcesWhole words onlyWindowWindowsWrap aroundWrap at:YesYou can’t drop more than one file on Poedit window.You must restart Poedit for this change to take effect.Your NameYour changes will be lost if you don’t save them.Your name and email address are only used to set the Last-Translator header of GNU gettext files.ZeroZoomaltctrldon’t delete temporary files (for debugging)e.g. nplurals=2; plural=(n > 1);fuzzy match within the filepre-translate from TMshiftunknown languageyour_email@example.com“%s” is not a valid POT file.Project-Id-Version: poedit Report-Msgid-Bugs-To: help@poedit.net POT-Creation-Date: 2017-12-05 15:52+0100 PO-Revision-Date: 2017-07-27 03:14-0400 Last-Translator: vslavik Language-Team: Estonian Language: et_EE MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=(n != 1); X-Generator: crowdin.com X-Crowdin-Project: poedit X-Crowdin-Language: et X-Crowdin-File: /locales/poedit.pot (muudetud) (salvestamata)%d kirje%d kirjet%d sissekanne eeltõlgiti.%d sissekannet eeltõlgiti.%d viga%d vigaTõlkest leiti %d probleem.Tõlkest leiti %d probleemi.%i rida failis "%s" mis ei ole laetud korrektselt.%i rida failis "%s" mis ei ole laetud korrektselt.%s formaadis%s Eelistused%s formaadis&Programmist&Poeditist&RakendaTagasi&JärjehoidjadKatkestaTühjendaSu&lge&KopeeriK&ustuta&Valmis, järgmine&Valmis, järgmine&Redigeerimine&Fail&Otsi…& GNU gettext juhend& GNU gettext juhend&Liikumine&Rühmita konteksti järgi&Rühmita konteksti järgiA&bi&Uus&Uus…&Järgmine >&Järgmine tõlge&Järgmine tõlge&Nr&OK&Veebiabi&Veebiabi&Avamine...&Ava…&Aseta&Eelistused&Eelistused…&Eelmine tõlge&Eelmine tõlge&Omadused…&Puhasta kustutatud tõlgetest&Puhasta kustutatud tõlkedLõpeta&Tee uuestiA&senda&SalvestaSalvesta kui&Näita viiteid&Näita viiteid&Võta tagasiTõlkimata tekstid &eespool&Tõlkimata tekstid eespool&Uuenda lähtekoodist&Uuenda lähtekoodist&Kontrolli tõlkeid&Kontrolli tõlkeid&VaadeJah(uusi 0, iganenuid 0)(Vaata insainfot GNU gettexti kohta)(Uus: %i, vananenud: %i)(Kasuta vaikekeelt)(nõuab Windows 8 või uuemat)< &EelmineLohista kaustad siia või kasuta + nuppuLohista kaustad siia või kasuta + nuppuProgrammist %sKontodLisa kommentaarLisa failid…Lisa kaustad…Lisa metamärk…Lisa kommentaarLisa kataloog nimistusseLisa failid…Lisa kaustad…Lisa metamärk…Täiendavad märksõnadTäiendavad xgettext lipud:LisavalikudKõik tõlkefailidKõik kommentaaridAlt+Fookus on alati tekstisisestusväljalLiige sisendfailide nimistus:Liige võtmesõnade nimistus:VälimusRakendaOled sa kindel, et soovid tõlkemälu nullida?Kontrolli automaatselt uuendusi automaatseltSalvestamisel luuakse automaatselt MO failTagasiBaasrada:Beetaversioonides on uuemad funktsioonid ja täiendused, aga nad ei pruugi olla nii stabiilsed.Too kõik etteKatkine kataloogi fail: msgstr vorm ilma msgid_pluralKatkine kataloogi fail: msgstr vormi on kasutatud koos msgid_pluralLehitse&Kataloog&TühjendaKatkestaPole võimalik luua ajutist kataloogi.Programmi pole võimalik käivitada: %sSuure algus tähegaKataloogKataloogi on muudetud. Kas soovid muudatused salvestada?Kataloogi omadused&Kataloogihaldur&KataloogihaldurKataloogide haldamineMuuda kasutajaliidese keeltMärgistik:Kontrolli dokumenti koheKontrolli grammatikat koos õigekirja kontrollimisegaKontrolli õigekirja kirjutamise ajalUuenduste kontroll…Tõlkest vigade otsimineUuenduste kontroll…Kontrolli õigekirjaTühjendaEemalda tõlgeTühjenda kommentaarTõlke eemaldamineSulgeTee teistega tõlkimisel koostöödTee teistega tõlkimisel koostöödLähtefailide kogumine…Kommentaar:Kommentaarid eesliitega:Kompileeri MO…Kompileeri…Kompileeritud tõlkefailidKinnitusKopeeriKopeeri ainsusestKopeeri lähtetekstKopeeri ainsusestLähteteksti kopeerimineParanda õigekirja automaatseltEi saadud laadida faili %s, see on tõenäoliselt vigane.Faili %s pole võimalik salvestada.Loo uus tõlgeLoo uus tõlgeLoo uus tõlkeprojektCrowdini tõrgeCrowdin on veebipõhine tõlgete haldamise platform ja ühiskasutatav tõlkevahend. Poedit suudab sujuvalt sünkroonida Crowdinis olevaid PO faile.Ctrl+Lõik&aLõikaAndmebaasi suurus kettal:KustutaKustuta projektKataloogid:Näita kirje ID-sidNäita kirje ID-sidKas sa soovid tõesti massuuendada kõiki katalooge selles projektis?Kas sa soovid selle projekti kustutada?Kas tahad eemaldada tõlked, mida enam ei kasutata?Ära salvestaÄra enam näitaÄra märgi täpseid vasteid tööd vajavateks tõlgeteksÄra salvestaÄra enam näitaAllaLaadi fail Crowdini projektist alla, tõlgi ning sünkrooni oma muudatused tagasi.Viimaste tõlgete allalaadimine…Tõlgete allalaadimine on selles projektis keelatud.&Välju&Ekspordi HTML-ina…MuudaMuuda &kommentaariRedigeeri ko&mmentaariKommentaari muutmineMuuda tõlgetMuuda tõlgetKommentaari muutmineProjekti muutmineProjekti muutmineMuutmineRedigeeri…E-post:EnterAktiveeri täisekraanKirjed kataloogis on tõenäoliselt vigased.Selle kataloogi tekstide mitmusvormide arv erineb Plural-Forms päises määratustVigadega sissekanded eespoolVigadega sissekanded eespoolVigadega tekstid märgiti loendis punasega. Vea üksikasju kuvatakse teksti märkimisel.Viga sõnumi laadimisel failis "%s".Tõrge faili avamiselTõrge faili %s avamisel!Tõrge kataloogi salvestamiselVeadKõikVälja jäetud kaustateedEkspordi kui…Teksti otsitakse järgnevates kataloogides asuvast lähtekoodist:Käsuviga: %sPoediti protsessiga suhtlemine ebaõnnestus.Viga kataloogi lahtipakkimisel.Viga teksti ühildumisel antud kataloogis.Tõlkemälu uuendamine ebaõnnestus: %sFailFaili "%s" pole olemas.Fail "%s" pole sõnumikataloogis.Fail:Lõpetamine…LeiaLeia järgmineLeia eelmineOtsi ja asenda…Otsitakse kommentaaridestOtsi lähtetekstidestOtsi tõlgetestLeia järgmineLeia eelmineParanda keelParanda keelParanda päisParanda päis%i vormSagedasedGNU gettextÜldineMine järjehoidjale %iMine järjehoidjale %iHTML-failidAbiPeida %sPeida teisedPeida külgribaPeida olekuribaSelle teate peitmineIDKui sa jätkad puhastamisega, eemaldatakse kõik kustutatuks märgitud tõlked lõplikult. Kui need kunagi uuesti lisatakse, pead need uuesti tõlkima.Ignoreeri tähesuurustTõlgete importimine…Kaasa beetaversioonidInfo tõlkija kohtaPaigaldaVigane failKäivitamine:SäilitaKeele kood või nimi (nt en_GB)Tõlke keel on sama kui lähtekeel.Tõlke keel on määramata.Keel, millesse tõlgitakse:KeelevalikKeele meeskond:Keel:Viimati muudetudVaata lisainfot Gettexti märksõnade kohtaÕpi failidest…Uuri lähemaltLisateave Crowdini kohtaVaata lisainfot Gettexti märksõnade kohtaMitmuse vormide kohta lähemalt uurimineÕpi failidest…Uuri lähemaltLisateave Crowdini kohtaVasakRida %d failis "%s" on vigane (ei ole kehtivad %s andmed).Realõpud:Laiendite nimistu, eraldaja semikoolon (nt *.cpp;*.h):MO faile ei saa otse Poeditis muuta.Tee väiketähtedeksTee suurtähtedeksVigane päis: "%s"Erinevuste ühendamine…MinimeeriTõlgitava projekti nimiNimi:Järgmine &lõpetamataJärgmine &lõpetamataVajab töödVajab töödÄra luba tekstinimekirjal fookust haarata. Kui sisse lülitatud, pead kasutama klaviatuuriga navigeerimiseks Ctrl-nooli, kuid teksti võib sisestada ka vahetult, ilma Tab-klahviga fookust vahetamata.UusUus & POT/PO-failist…Uus & POT/PO-failist…Uued tekstidJärgmine mitmusevormJärgmine mitmusevormEiVasteid ei leitudÜhtegi sissekannet ei saanud eel-tõlkida.Vasteid ei leitudTõlgetest ei leitud vigu.Valitud kirjetele viiteid pole.Sinu Crowdin kasutajakontol pole ühtegi tõlkeprojekti.Kõik mitmuse vormid pole tõlgitud.Pole lubatud, palun logi uuesti sisse.Märkused tõlkijate jaoks:OKIganenud tekstidÜksTäida ainult täpsed vastedAvaAva Crowdin tõlgeAva Crowdinist…Ava hiljutisedAva olemasolev PO fail ja muuda tõlget.Kataloogi avamineKataloogimalli avamineAva Crowdinist…Ava redaktorisAva redaktoris&Ava...Ava…ValikudMuuEel&mine lõpetamataEel&mine lõpetamataPO tõlgePO tõlkefailidPOT tõlkemallidPOT failid on ainult mallid ja neis endis pole mingeid tõlkeid. Tõlke tegemiseks loo palun selle malli põhjal uus PO fail.AsetaRajadPalun ava hoopis vastav PO fail. Kui sa selle salvestad, siis uuendatakse ka MO faili.Palun salvesta esmalt fail. Seda sektsiooni ei saa enne salvestamist muuta.MitmusKataloogis kasutatud mitmuse väljendid on %s keele jaoks ebatavalised.Mitmuse vormid:Mitmus:PoeditPoedit - KataloogihaldurPoedit parandas automaatselt vigase sisu failis “%s”.Poedit on lihtne tõlkimise abivahend.Eel-tõlge…Eel-tõlgeEel-tõlgeEeltõlgitud %u tekstEeltõlgitud %u tekstidEel-tõlkimine…EelistusedEelistused...Eelistused…Säilite olemasolevate failide vormingEelmine mitmusevormEelmine mitmusevormEelmine lähtetekst:Projekti nimi ja versioon:Projekti nimetus:Projekt:PuhastaKustutatud tõlgete puhastamineLõpetaLõpeta %sHiljutisedKordaViited:VärskendaJäänud: %dAsenda&Asenda kõik&Asenda kõikAsenda sellegaAsenda…Vajalik päis Plural-Forms (mitmusvormid) puudub.LähtestaNulli tõlkemäluTõlkemälu nullimine kustutab sellest pöördumatult kõik tõlked. Seda tegevust ei saa tagasi võtta.Vaata üleParemSalvestaSalvesta &kui…Salvesta &kui…Salvesta kuiSalvesta kui…Salvesta kataloogSalvesta muudatusedV&ali kõikVali kõikKataloogi valimineVali tõlkefailid, mida importidaVali enda meeliskeelTeenusedLisa järjehoidja %iMäära keelLisa järjehoidja %iMäära keelShift+Näita kõikiNäita külgribaNäita õigekirja ja grammatikatNäita olekuribaNäita asendusiNäita või peida külgribaNäita külgribaNäita olekuribaKokkuvõte kataloogi uuendamise järelKülgribaLogi sisseLogi VäljaLogi sisseLogi Crowdinisse sisseLogi väljaSisse logitud kasutajana:AinsusAinsus:Nutikas kopeerimine ja asetamineNutikad mõttekriipsudd liNutikad jutumärkidSortimine &failide järgiSortimine &lähtekoodi järgiSortimine &tõlke järgiSortimine &failide järgiSortimine &lähtekoodi järgiSortimine &tõlke järgiLähtekoodi märgistik:Lähtekood pole saadaval.LähtefailLähtefaili esinemine:OriginaaltekstLähtetekst — %sOriginaaltekst:Lähtekoodi märksõnadLähtekoodi asukohadLähtekoodi võtmesõnadOtsingurajadKõneÕigekirjakontroll on keelatud, kuna %s sõnastikku pole paigaldatud.Õigekiri ja grammatikaAlusta rääkimistLõpeta rääkimineSalvestatud tõlked:OtsisõnaAsendusedSoovitusedSoovitused pole saadaval, kui tõlkekeel pole õigesti seadistatud. See võib mõjutada ka teisi funktsioone nagu näiteks mitmuse vormid.SünkroonimineSünkroonimine CrowdinigaSünkrooni tõlge CrowdinigaSünkroniseerimineSünkrooniseerimise tõrge%s sünkrooniseerimine nurjus.Sünkrooniseerimine %s…Crowdiniga sünkronimine ebaõnnestus.Süntaksi viga Plural-Forms päises ("%s").TMVõta olemasolev PO või POT mall ja loo selle põhjal uus tõlge.Tõlgitavad failid olemasolevast POT failist.Meeskonna nimi ja e-posti aadress või linkTeksti asendamineFaili ei saa kasutada ja MO failiks kompileerida.Faili ei saa avada.Fail salvestati edukalt, kuid seda polnud võimalik kompileerida MO vormingusse ning kasutusele võtta.Fail on salvestatud.Lihtsaim viis selle kataloogi täitmiseks on selle uuendamine POT failist:Tõlge ei alga tühikuga.Tõlge lõpeb uue rea märgiga, aga lähtekeeles seda seal pole.Tõlge lõpeb tühikuga, aga lähteteksti lõpus tühikut pole.Tõlke lõpus on “%s”, aga lähteteksti lõpus on “%s”.Tõlke lõpus puudub uue rea märk.Tõlke lõpus puudub tühik.Tõlge on kasutamiseks valmis.Tõlke peab lõppema "%s"-ga.Tõlke ei peaks lõppema "%s"-ga.Tõlge peaks algama nagu lause.Tõlge peaks algama väiketähega.Tõlge algab tühikuga, aga lähtekeeles seal tühikut pole.Ühtegi tõlget pole. See on küll ebatavaline.Faili kauni vormindusega tekkis viga (kuid see salvestati edukalt).Mõned vead tekkisid kataloogi laadimisel. Mõned andmed on puudu või vigase tulemusega.Need tekstid pole enam lähtekoodis. Poedit eemaldab need nüüd kataloogist.Need tekstid leiti lähtekoodist, kuid ei ole kataloogis. Poedit lisab need nüüd kataloogi.Kataloogis on tekste mitmusvormidega, kuid sel pole Plural-Forms päis seadistatud.Seda faili saab muuta ainult Crowdini veebiliideses.Sellel projektil pole faile ja seda ei saa Poeditiga tõlkida.See tekst leiti Poediti tõlkemälust.See lisatakse käsureale ainult siis, kui on toodud algteksti märgistik. %c asendatakse märgistiku väärtusega.See lisatakse käsureale üks kord iga sisendfaili kohta. %f asendatakse sisendfaili nimega.See lisatakse käsureale üks kord iga võtmesõna kohta. %k asendatakse võtmesõnaga.KokkuTeisendusedTõlgitud: %d / %d (%d %%)TõlkekeelTõlkemäluTõlge vajab veel &töödTõlke omadusedTõlge vajab veel &töödTõlke omadusedTõlkesoovitused:Tõlge — %sTõlge:Tõlked ei saanud värskendada lähtekoodist, sest määratud kaustast ei leitud koodi.KaksUTF-8 (soovituslik)TaastaUnix (soovituslik)TõlkimataÜlesUuendaUuenda kõikUuenda kõiki projekti kataloogeUuenda kataloog - sünkroniseeri lähtekoodigaUuenda &POT failist…Uuenda &POT failist…Uuenda POT failistUuendamise kokkuvõteUuendusedKataloogi uuendamineUuendamine ebaõnnestusKataloogi uuendamine nurjus. Täpsustuse jaoks klõpsa nupule "Üksikasjad >>".Kasutaja info uuendamine…Tõlgete üles laadimine…Kasuta kohandatud väljendeidKasuta kohandatud loend fonti:Kasuta kohandatud teksti väljade fonti:Kasuta selle keele jaoks vaikimisi reegleidKasuta neid võtmesõnu (funktsioonide nimesid) leidmaks lähtekoodist tõlgitavaid sõnesid:Kasuta tõlkemäluKontrolliKontrolli tulemusedVersioon %sAutentimise ootamine…Tere tulemast PoeditisseMis on Crowdin?Allikatest uuendamiselAinult terved sõnadAkenWindowsAlusta otsast pealeReamurdmine:JahPoedit aknasse saab lohistada vaid ühe faili.Selle muudatuse jõustumiseks peab Poedit-i taaskäivitama.Sinu nimiTehtud muudatused lähevad kaotsi, kui neid ei salvestata.Sinu nime ja e-posti kasutatakse ainult viimase tõlkija kohal GNU gettext failide päises.NullSuurendusaltctrlajutisi faile ei kustutata (silumiseks)nt. nplurals=2; plural=(n > 1);hägus vaste failiseel-tõlge tõlkemälustshifttundmatu keelsinu_epost@domeen.ee'%s' pole korrektne POT fail.poedit-2.0.6/locales/th.mo0000664000372000037200000005272713230132042012321 00000000000000d     #+4 ;Hdj{ 'Da {AI%,5 <G.O~,5/P  ls E""5U Z h u.(*;!f!   $ 1= P Z hs <.% 7%)ORch nmu|- $, 1= B O \ hs !* 3 AK `Kl  5IPL`YHm: ;K m _ [U!!!! !!!" "(";"C" J""U",x"""""# # #)#G#Y#j#q#7y### ###$5% & )&4&H&P& a&o&w&&& &&&&+'74'l'('-'/'(%(ED(3(x(@7)Cx))9) **u+++<++,:,:,9,-%f-%-6-B-9,.f..H.x.[/Hw/9///=*0h1o111U2B2~33%3$3$3$46=4Nt4Q4F5Q\5?545_#6W6G6 #7617'h77777E7*8*@8k8$8 83838V#93z9V9v:Y|:0:;<<{=s= =$ > 1>&>>*e>0>>$>(>H%?n??n@@6@v@:A@VA"AA3A BB%B5BUB0hB<B%B$B*!CBLCCC!CBCi#D!DD!D)DE49EnE7E$EE6FFFG62G:iG?G3GHHgI>J+KLtL 'M5N+O*P-@PnPP PPPXP*QAQ]Q'pQZQuQ-iRNR9R< S]S$sSSTS4 TBATTTT5UEU(\U U0UgJjm7<vn Iw;z chD' 6a(#N:G0A%=EZ,sB9}r\YK~RCf`584@3y/PFU1pl{.QM|u !ob>xe-"Tq[*2O ]V)?St_XWdk^& LHi+$ (modified)&Bookmarks&Close&Copy&Delete&Edit&File&Go&Help&Next >&Open...&Paste&Preferences&Purge deleted translations&Save&Show references&Update from sources&View(0 new, 0 obsolete)(New: %i, obsolete: %i)(Use default language)About %sAdd directory to the listAll Translation FilesAlways change focus to text input fieldAn item in input files list:An item in keywords list:Base path:Bring All to FrontBroken catalog file: plural form msgstr used without msgid_pluralBroken catalog file: singular form msgstr used together with msgid_pluralBrowseC&atalogCancelCapitalizeCatalogCatalog modified. Do you want to save changes?Catalogs &ManagerCatalogs &managerCatalogs ManagerChange UI languageCharset:Check Document NowCheck Grammar With SpellingCheck Spelling While TypingClear the commentComment:Compiled Translation FilesConfigure source code extraction in Properties.ConfirmationCorrect Spelling AutomaticallyCreate new translations projectCrowdin errorCrowdin is an online localization management platform and collaborative translation tool. Poedit can seamlessly sync PO files managed at Crowdin.DeleteDelete the projectDirectories:Do you really want to do mass update of all catalogs in this project?Do you want to delete the project?Downloading latest translations…Downloading translations is disabled in this project.EditEdit &commentEdit commentEdit projectEdit the projectEnter Full ScreenEntries in the catalog are probably incorrect.Error opening fileError opening file %s!Error saving catalogExtract from sourcesFailed command: %sFailed to communicate with Poedit process.Failed to load extracted catalog.Failed to merge gettext catalogs.File:Find in commentsFind in translationsForm %iHTML FilesHide %sHide OthersHide this notification messageInstallInvalid fileInvocation:Language selectionLanguage:Last modifiedLearn MoreLearn More About CrowdinLearn moreLearn more about CrowdinList of extensions separated by semicolons (e.g. *.cpp;*.h):MO files can’t be directly edited in Poedit.MinimizeNever let the list of strings take focus. If enabled, you must use Ctrl-arrows for keyboard navigation but you can also type text immediately, without having to press Tab to change focus.NewNew stringsNo translation projects listed in your Crowdin account.Not authorized, please sign in again.OKObsolete stringsOpenOpen Crowdin translationOpen catalogOpen catalog templatePO TranslationPO Translation FilesPOT Translation TemplatesPaste and Match StylePathsPlease open and edit the corresponding PO file instead. When you save it, the MO file will be updated as well.Plural:PoeditPoedit - Catalogs managerPoedit is an easy to use translations editor.Preferences...Project name and version:Project name:Project:Purge deleted translationsQuitQuit %sRedoReferences:SaveSave catalogSave changesSelect &AllSelect AllSelect directorySelect your preferred languageServicesSet languageShow AllShow Spelling and GrammarShow summary after catalog updateSign InSign OutSign inSign in to CrowdinSign outSigned in as:Singular:Source code charset:Source fileSpellchecking is disabled, because the dictionary for %s isn’t installed.Spelling and GrammarStart SpeakingStop SpeakingSyncingSyncing errorSyncing with %s failed.Syncing with Crowdin failed.The file cannot be opened.The file may be either corrupted or in a format not recognized by Poedit.There was a problem formatting the file nicely (but it was saved all right).There were errors when loading the catalog. Some data may be missing or corrupted as the result.These strings are no longer in the sources. Poedit will remove them from the catalog now.These strings were found in the sources but were not in the catalog. Poedit will add them to the catalog now.This file can only be edited in Crowdin’s web interface.This project has no files that can be translated in Poedit.This will be attached to the command line only if source code charset was given. %c expands to charset value.This will be attached to the command line once for each input file. %f expands to the filename.This will be attached to the command line once for each keyword. %k expands to the keyword.TotalTranslation MemoryTranslation — %sTranslation:TwoUTF-8 (recommended)UndoUnhandled exception occurred: %sUnix (recommended)UntransUpdateUpdate allUpdate all catalogs in the projectUpdate catalog - synchronize it with sourcesUpdate summaryUpdating user information…Uploading translations…Use translation memoryValidateValidation resultsVersion %sWaiting for authentication…Welcome to PoeditWhole words onlyWindowWindowsYou must restart Poedit for this change to take effect.ZeroZoome.g. nplurals=2; plural=(n > 1);handle a poedit:// URIunknown languageProject-Id-Version: poedit Report-Msgid-Bugs-To: help@poedit.net POT-Creation-Date: 2017-12-05 15:52+0100 PO-Revision-Date: 2017-07-27 03:15-0400 Last-Translator: vslavik Language-Team: Thai Language: th_TH MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=1; plural=0; X-Generator: crowdin.com X-Crowdin-Project: poedit X-Crowdin-Language: th X-Crowdin-File: /locales/poedit.pot (ที่ถูกปรับเปลี่ยน)&รายการโปรด&ปิด&คัดลอก&ลบ&แก้ไข&ไฟล์ไ&ป&ช่วยเหลือ&ถัดไป >&เปิด...&วาง&ตั้งค่า&ลบการแปล&บันทึกแสดงการอ้า&งอิงปรับปรุง&จากต้นฉบับ&มุมมอง(0 ใหม่ 0 ล้าสมัย)(ใหม่: %i, ล้าสมัย: %i)(ใช้ภาษาเริ่มต้น)<ไม่มีชื่อ>เกี่ยวกับ %sเพิ่มตำแหน่งไปยังรายการแฟ้มการแปลทั้งหมดเปลี่ยนความละเอียดไปยังพื้นที่ของข้อความรายการในรายการของแฟ้ม:รายการในรายการของศัพท์:ส่วนฐาน:นำทั้งหมดมาด้านหน้าแฟ้มรายการที่เสียหาย: รูปแบบพหูพจน์สำหรับ msgstr ถูกใช้โดยไม่มี msgid_pluralแฟ้มรายการที่เสียหาย: รูปแบบเอกพจน์ถูกใชเรวมกับรูปแบบพหูพจน์เรียกดูรา&ยการยกเลิกใช้อักษรตัวพิมพ์ใหญ่รายการรายการถูกปรับเปลี่ยน คุณต้องการจะบันทึกการเปลี่ยนแปลงหรือไม่?ตัวจัดการ&แค็ตตาล็อกตัวจัดการ&แค็ตตาล็อกตัวจัดการแค็ตตาล็อกเปลี่ยนภาษา UI รูปแบบอักขระ:ตรวจสอบเอกสารทันทีตรวจไวยากรณ์และการสะกดตรวจการสะกดขณะพิมพ์ลบคำแนะนำคำแนะนำ:แฟ้มการแปลที่คอมไพล์แล้วกำหนดค่าการแตกไฟล์โค้ดต้นฉบับในคุณสมบัติการยืนยันแก้ไขการสะกดโดยอัตโนมัติสร้างโครงการแปลใหม่ข้อผิดพลาดของ CrowdinCrowdin เป็นแพลตฟอร์มการจัดการการแปลออนไลน์และเครื่องมือการแปลร่วมกัน Poedit สามารถซิงค์แฟ้ม PO ที่จัดการที่ Crowdin ได้ทันทีลบลบโครงการที่ตั้ง:คุณต้องการจะปรับปรุงข้อมูลปรับปรุงทั้งหมดของ รายการทั้งหมดในโครงการหรือไม่?คุณต้องการจะลบโครงการหรือไม่?ดาวน์โหลดการแปลล่าสุด...การดาวน์โหลดงานแปลถูกปิดใช้งานในโครงการนี้แก้ไขแก้ไขคำแ&นะนำแก้ไขคำแนะนำแก้ไขโครงการแก้ไขโครงการเข้าโหมดเต็มหน้าจอข้อึความในรายการไม่ถูกต้องเกิดข้อผิดพลาดในการเปิดแฟ้มข้อผิดลากในการเปิดแฟ้ม %s!ข้อผิดผลาดในการบันทึกรายการแตกไฟล์จากแหล่งข้อมูลคำสั่งที่ล้มเหลว: %sการสื่อสารกับกระบวนการ Poedit ล้มเหลวล้มเหลวในการโหลดรายการที่ขยายล้มเหลวที่จะรวมรายการ gettextไฟล์:ค้นหาในความคิดเห็นค้นหาในการแปลฟอร์ม %iแฟ้ม HTMLซ่อน %sซ่อนคนอื่นซ่อนข้อความแจ้งเตือนนี้ติดตั้งไฟล์ไม่ถูกต้องการร้องขอ:การเลือกภาษาภาษา:ปรับเปลี่ยนล่าสุดเรียนรู้เพิ่มเติมเรียนรู้เพิ่มเติมเกี่ยวกับ Crowdinเรียนรู้เพิ่มเติมเรียนรู้เพิ่มเติมเกี่ยวกับ Crowdinรายการของส่วนขยายแยกโดยใช้อัฒภาค (ต.ย. *.cpp;*.h):แฟ้ม MO ไม่สามารถแก้ไขโดยตรงใน Poeditย่อให้เล็กที่สุดอย่าทำให้รายการของข้อมูลมีความละเอียด ถ้าเปิการใช้งาน คุณจะต้องใช้ลูกศรและ Ctr เพื่อการเคลือนที่เท่านั้นแต่คุณก็สามารถพิมพ์ข้อความได้ทันที โดยไม่ต้องในการปุ่ม Tab สร้างใหม่สตริงใหม่ไม่มีโครงการแปลที่ระบุไว้ในบัญชี Crowdin ของคุณไม่ได้รับอนุญาต โปรดเข้าสู่ระบบอีกครั้งตกลงข้อมูลโดยแท้เปิดเปิดงานแปล Crowdinเปิดแค็ตตาล็อกเปิดรายการแม่แบบการแปล POไฟล์แปลภาษา POแม่แบบการแปล POTวางและจัดรูปแบบให้ตรงกันเส้นทางกรุณาเปิด และแก้ไขแฟ้ม PO ที่เกี่ยวข้องแทน เมื่อคุณบันทึก แฟ้ม MO จะถูกปรับปรุงไปด้วยพหูพจน์:PoeditPoedit - ตัวจัดการรายการPoedit เป็นโปรแกรมแปลภาษาที่ง่ายต่อการใช้งานตัวเลือก...ชื่อและรุ่นของโครงการ:ชื่อโครงการ:โครงการ:ลบการแปลที่ลบถาวรออกออกจาก %sทำซ้ำการอ้างอิง:บันทึกบันทึกแค็ตตาล็อกบันทึกการเปลี่ยนแปลงเลือก&ทั้งหมดเลือกทั้งหมดเลือกไดเรกทอรีเลือกภาษาที่คุณต้องการบริการกำหนดภาษาแสดงทั้งหมดแสดงการสะกดและไวยากรณ์แสดงผลลัพธ์หลังจากการปรับปรุงรายการเข้าสู่ระบบออกจากระบบเข้าสู่ระบบเข้าสู่ระบบ Crowdinออกจากระบบลงชื่อเข้าใช้เป็น:เอกพจน์:รหัสอักขระดั้งเดิม:แฟ้มดั้งเดิมการตรวจคำสะกดถูกปิดใช้งาน เนื่องจากไม่ได้ติดตั้งพจนานุกรมสำหรับภาษา %sการสะกดและไวยากรณ์เริ่มพูดหยุดพูดกำลังซิงค์ข้อผิดพลาดการซิงค์การซิงค์กับ %s ล้มเหลวการซิงค์กับ Crowdin ล้มเหลวไม่สามารถเปิดไฟล์ไฟล์อาจจะเสียหาย หรืออยู่ในรูปแบบที่ Poedit ไม่รู้จักมีปัญหาการจัดรูปแบบแฟ้มให้สวยงาม (แต่แฟ้มได้รับการบันทึกเรียบร้อย)ผิดผลาดระหว่างมีการโหลดรายการ ข้อมูลบางอันอาจจะหายหรือไม่สามารถใช้การได้ข้อมูลที่ไม่ได้อยู่ในรายการดั้งเดิมนี้อีกต่อไป Poedit จะเอาแฟ้มออกจากรายการเดี๋ยวนี้ข้อมูลพบในรายการดั้งเดิมแต่ไปได้อยู่ในรายการ Poedit จะเพิ่มแฟ้มไปยังรายการเดี๋ยวนี้แฟ้มนี้สามารถแก้ไขได้ในอินเทอร์เฟซเว็บของ Crowdin เท่านั้นโครงการนี้ไม่มีแฟ้มที่สามารถแปลใน Poedit ได้นี้จะแนบแฟ้มคำสั่งของรายการ เมื่อรหัสชุดอักขระถูกมให้มาเท่านั้น %c จะขยายไปยังค่าของชุดอักขระนี้จะแนบแฟ้มคำสั่งไปยังรายการหนึ่งครั้ง สำหรับแฟ้มแต่ละแฟ้ม %f จะขยายไปยังชื่อของแฟ้มนี้จะแนบแฟ้มไปยังคำสั่งหนึ่งครั้ง ต่อศัพท์ที่ใช้แต่ละคำ %k จะขยายไปยังชื่อของศัพท์ที่ใช้ทั้งหมดความจำของการแปลการแปล — %sการแปล:สองUTF-8 (แนะนำ)เลิกทำเกิดข้อยกเว้นที่จัดการไม่ได้: %sUnix (แนะนำ)ไม่ได้แปลอัพเดทอัพเดททั้งหมดปรับปรุงรายการทั้งหมดในโครงการปรับปรุงรายการ - เชื่อมต่อกับแฟ้มดั้งเดิมปรับปรุงผลลัพธ์กำลังปรับปรุงข้อมูลผู้ใช้...กำลังอัปโหลดงานแปล...ใช้หน่วยความจำการแปลตรวจสอบผลการตรวจสอบเวอร์ชั่น %sกำลังรอการรับรองความถูกต้อง...ยินดีต้อนรับสู่ Poeditศัพท์อย่างเต็มเท่านั้นหน้าต่างWindowsคุณต้องเริ่มต้น Poedit ใหม่เพื่อให้การเปลี่ยนแปลงมีผลศูนย์ย่อ/ขยายเช่น nplurals=2; plural=(n > 1);จัดการ URI poedit://ภาษาที่ไม่รู้จักpoedit-2.0.6/locales/hy.mo0000664000372000037200000017224313230132076012331 00000000000000P%1 1 11<11J 2gW2 22 22 222 3333%3+333B3Q3W3]3f3z333333333333 3 44 4)4 04=4M4c4y44444444445 5(5D5Y5n55555555 6 '6:36:n6 666 6 666 6 7 #707?7O7c7~77777 71898'>8f88 8878689)=9g9 l9]w99A9I*:t:{:; ;;";:; U;`;.h;;;;;;;;<*<F<#[<<<<<<<<(<(=7= R=s=|== ==/= = >>#>9>L>b>2>>>>> ?)???????@@@ 2@?@R@Ee@"@?@ AA*.A YAfAyAK~A"A5A#B)BHAH HHI 'IHI PI ]IiI"nI;I(IIJ&J 5J ?JMJjJ ~JJJJJ JJK:K PK<^K.KKKKLL*%LPLVLgL xL LLJMNMgM MMMMM#MM'M$N7DN$|N%NNNNNNOOOO O2O P#P9PNP]PlPtP|PPPPPPPPQQQnQERZR>aR RRRR@RS-T,y- Ԍ+- +; gZr^͍4,La=Ύ (<Bl20#c2_ؐ582n2?ԑ(* 0'<'d  66Mz-Sە/BbhgLЖo &2ї217/i-1ǘ!!=PdtzNڙ006"(4/d s~ (cUL?+!'FIOLh-4Gԟ Š ٠#5<.r3ա #=[y  ΢!+!M&o#%N<t,>ޤ. @ J>UU8(#!Ln +"ݦ,<D;",$M+yu\a*;ʩ6 P\{Kʪ< [i5G5(I^.V׭D.@s+= D1OU ,*Wr α (*H+sy!9lMfv3}mP(7`{Q'=Pm7-!0O > $5GZm ¼QHH[>QVgþ%1:Q!g03 &<Ukr%S* /7;g%*QFWo) 2G]){0/50</m5.1Mk"1+)F!p<'d'1" .7 D%j!9(>XGpM7d!lT+^, ZoCK0yBzZwM[O=-1HJ6\Zs9Dvy5IMFmdM  /'L:t797!7Y>! ( )'HpKe 'o'+' %HnD;>=z "?<=1+Fr)- 7HPh}}[P^_#Z *d=@"%HNf%}D}],6 9BW6tC3H>C'# )h?*Kq#-0^aG2zFYblx&2LADZ.EwPi=Ab[kv @4uh~ uL@|pnf.nTN? QI2:qOKcajd F!p ]U>T+rXi=J%Vxz51^s4 NH/F"8/XJ`om #UwQk :Gs$ 8jL!~I1,(<D-9B>|;$H(E?g<y!dYgIo \ <eN+rM5&cM5 :"K-A+EmZ7C"603B $%RfRVeyOG*S@ M,4}_{O%W91J)S[`' 7)v &;*{(l_.03=\7P8/t';P (modified) (unsaved)%d entry%d entries%d entry was pre-translated.%d entries were pre-translated.%d error%d errors%d issue with the translation found.%d issues with the translation found.%i line of file “%s” was not loaded correctly.%i lines of file “%s” were not loaded correctly.%s Format%s Preferences%s format&About&About Poedit&Apply&Back&Bookmarks&Cancel&Clear&Close&Copy&Delete&Done and Next&Done and next&Edit&File&Find…&GNU gettext Manual&GNU gettext manual&Go&Group By Context&Group by context&Help&New&New…&Next >&Next Translation&Next translation&No&OK&Online Help&Online help&Open...&Open…&Paste&Preferences&Preferences…&Previous Translation&Previous translation&Properties…&Purge Deleted Translations&Purge deleted translations&Quit&Redo&Replace&Save&Save as&Show References&Show references&Undo&Untranslated Entries First&Untranslated entries first&Update from Sources&Update from sources&Validate Translations&Validate translations&View&Yes(0 new, 0 obsolete)(Learn more about GNU gettext)(New: %i, obsolete: %i)(Use default language)(requires Windows 8 or newer)< &PreviousDrag and Drop Folders Here or use the + buttonDrag and drop folders here or use the + buttonAbout %sAccountsAdd CommentAdd Files…Add Folders…Add Wildcard…Add commentAdd directory to the listAdd files…Add folders…Add wildcard…Additional keywordsAdditional xgettext flags:AdvancedAdvanced Extraction Settings…Advanced extraction settingsAdvanced extraction settings…All Translation FilesAll commentsAlso use default keywords for supported languagesAlt+Always change focus to text input fieldAn item in input files list:An item in keywords list:AppearanceApplyAre you sure you want to delete the “%s” extractor?Are you sure you want to reset the translation memory?Automatically check for updatesAutomatically compile MO file when savingBackBase path:Beta versions contain the latest new features and improvements, but may be a bit less stable.Bring All to FrontBroken catalog file: plural form msgstr used without msgid_pluralBroken catalog file: singular form msgstr used together with msgid_pluralBrowseBy default, inaccurate results are filled in as well and marked as needing work. Check this option to only include accurate matches.C&atalogC&learCancelCannot create temporary directory.Cannot execute program: %sCapitalizeCatalogCatalog modified. Do you want to save changes?Catalog propertiesCatalogs &ManagerCatalogs &managerCatalogs ManagerChange UI languageCharset:Check Document NowCheck Grammar With SpellingCheck Spelling While TypingCheck for Updates…Check for errors in the translationCheck for updates…Check spellingClearClear TranslationClear the commentClear translationCloseCollaborate on a Translation with OthersCollaborate on a translation with othersCollecting source files…Command to extract translations:Comment:Comments prefixed with:Compile to MO…Compile to…Compiled Translation FilesConfigure source code extraction in Properties.ConfirmationCopyCopy From SingularCopy from Source TextCopy from singularCopy from source textCorrect Spelling AutomaticallyCouldn’t load file %s, it is probably corrupted.Couldn’t save file %s.Create New TranslationCreate new translationCreate new translations projectCrowdin errorCrowdin is an online localization management platform and collaborative translation tool. Poedit can seamlessly sync PO files managed at Crowdin.Ctrl+Cu&tCustom Extractors:Custom extractors:CutDatabase size on disk:DeleteDelete extractorDelete the projectDirectories:Display Entry &IDsDisplay entry &IDsDo you really want to do mass update of all catalogs in this project?Do you want to delete the project?Do you want to remove all translations that are no longer used?Don’t SaveDon’t Show AgainDon’t mark exact matches as needing workDon’t saveDon’t show againDownDownload a file from Crowdin project, translate and sync your changes back.Downloading latest translations…Downloading translations is disabled in this project.E&xitE&xport as HTML…EditEdit &CommentEdit &commentEdit CommentEdit a TranslationEdit a translationEdit commentEdit projectEdit the projectEditingEdit…Email:EnterEnter Full ScreenEntries in the catalog are probably incorrect.Entries in this catalog have different plural forms count from what catalog’s Plural-Forms header saysEntries with Errors FirstEntries with errors firstEntries with errors were marked in red in the list. Details of the error will be shown when you select such an entry.Error loading message catalog file “%s”.Error opening fileError opening file %s!Error saving catalogErrorsEverythingExcluded pathsExport as…Extract from sourcesExtract notes for translators from:Extract text from source files in the following directories:Extracting translatable strings…Extractor setupExtractorsFailed command: %sFailed to communicate with Poedit process.Failed to load extracted catalog.Failed to merge gettext catalogs.Failed to update translation memory: %sFileFile “%s” doesn’t exist.File “%s” is not a message catalog.File “%s” is read-only and cannot be saved. Please save it under different name.File:Finalizing…FindFind NextFind PreviousFind and Replace…Find in commentsFind in source textsFind in translationsFind nextFind previousFix LanguageFix languageFix the HeaderFix the headerForm %iFrequentGNU gettextGeneralGo to Bookmark %iGo to bookmark %iHTML FilesHelpHide %sHide OthersHide SidebarHide Status BarHide this notification messageIDIf you continue with purging, all translations marked as deleted will be permanently removed. You will have to translate them again if they are added back in the future.Ignore caseImporting translations…Include beta versionsInformation about the translatorInstallInvalid fileInvocation:KeepLanguage Code or Name (e.g. en_GB)Language of the translation is the same as source language.Language of the translation isn’t set.Language of the translation:Language selectionLanguage team:Language:Last modifiedLearn About Gettext KeywordsLearn From Files…Learn MoreLearn More About CrowdinLearn about gettext keywordsLearn about plural formsLearn from files…Learn moreLearn more about CrowdinLeftLine %d of file “%s” is corrupted (not valid %s data).Line endings:List of extensions separated by semicolons (e.g. *.cpp;*.h):MO files can’t be directly edited in Poedit.Make Lower CaseMake Upper CaseMalformed header: “%s”Merging differences…MinimizeName of the project the translation is forName:Ne&xt UnfinishedNe&xt unfinishedNeeds WorkNeeds workNever let the list of strings take focus. If enabled, you must use Ctrl-arrows for keyboard navigation but you can also type text immediately, without having to press Tab to change focus.NewNew From &POT/PO File…New from &POT/PO file…New stringsNext Plural FormNext plural formNoNo Matches FoundNo entries could be pre-translated.No matches foundNo problems with the translation found.No references for the selected item.No translation projects listed in your Crowdin account.Not all plural forms are translated.Not authorized, please sign in again.Notes for translators:OKObsolete stringsOneOnly enable if you trust the quality of your TM. By default, all matches from the TM are marked as needing work and should be reviewed before use.Only fill in exact matchesOpenOpen Crowdin translationOpen From Crowdin…Open RecentOpen an existing PO file and edit the translation.Open catalogOpen catalog templateOpen from Crowdin…Open in EditorOpen in editorOpen...Open…OptionsOtherP&revious UnfinishedP&revious unfinishedPO TranslationPO Translation FilesPOT Translation TemplatesPOT files are only templates and don’t contain any translations themselves. To make a translation, create a new PO file based on the template.PastePaste and Match StylePathsPlease open and edit the corresponding PO file instead. When you save it, the MO file will be updated as well.Please save the file first. This section cannot be edited until then.PluralPlural forms expression used by the catalog is unusual for %s.Plural forms:Plural:PoeditPoedit - Catalogs managerPoedit automatically fixed invalid content in the file “%s”.Poedit can attempt to fill in new entries from only previous translations in the file or from your entire translation memory. Using the TM won’t be very effective if it’s near-empty, but it will get better as you add more translations to it.Poedit is an easy to use translations editor.Pre-&translate…Pre-translatePre-translatedPre-translated %u stringPre-translated %u stringsPre-translating…Pre-translation automatically finds exact or fuzzy matches for untranslated strings in the translation memory and fills in their translations.PreferencesPreferences...Preferences…Preserve formatting of existing filesPrevious Plural FormPrevious plural formPrevious source text:Project name and version:Project name:Project:PurgePurge deleted translationsQuitQuit %sRecentRedoReferences:RefreshRemaining: %dReplaceReplace &AllReplace &allReplacement stringReplace…Required header Plural-Forms is missing.ResetReset translation memoryResetting the translation memory will irrevocably delete all stored translations from it. You can’t undo this operation.ReviewRightSaveSave &As…Save &as…Save asSave as…Save catalogSave changesSelect &AllSelect AllSelect directorySelect translation files to importSelect your preferred languageServicesSet Bookmark %iSet LanguageSet bookmark %iSet languageShift+Show AllShow SidebarShow Spelling and GrammarShow Status BarShow SubstitutionsShow or hide the sidebarShow sidebarShow status barShow summary after catalog updateSidebarSign InSign OutSign inSign in to CrowdinSign outSigned in as:SingularSingular:Smart Copy/PasteSmart DashesSmart LinksSmart QuotesSort by &File OrderSort by &SourceSort by &TranslationSort by &file orderSort by &sourceSort by &translationSource code charset:Source code extractors are used to find translatable strings in the source code files and extract them so that they can be translated.Source code not available.Source fileSource file occurrence:Source textSource text — %sSource text:Sources KeywordsSources PathsSources keywordsSources pathsSpeechSpellchecking is disabled, because the dictionary for %s isn’t installed.Spelling and GrammarStart SpeakingStop SpeakingStored translations:String to findSubstitutionsSuggestionsSuggestions are not available if the translation language is not set correctly. Other features, such as plural forms, may be affected as well.Supports all programming languages recognized by GNU gettext tools (PHP, C/C++, C#, Perl, Python, Java, JavaScript and others).SyncSync with CrowdinSynchronize the translation with CrowdinSyncingSyncing errorSyncing with %s failed.Syncing with %s…Syncing with Crowdin failed.Syntax error in Plural-Forms header ("%s").TMTake an existing PO file or POT template and create a new translation from it.Take translatable strings from an existing POT template.Team name and email address or URLText ReplacementThe TM doesn’t contain any strings similar to the content of this file. It is only effective for semi-automatic translations after Poedit learns enough from files that you translated manually.The catalog couldn’t be saved in “%s” charset as specified in catalog settings. It was saved in UTF-8 instead and the setting was modified accordingly.The file cannot be compiled into the MO format and used.The file cannot be opened.The file contained duplicate items, which is not allowed in PO files and would prevent the file from being used. Poedit fixed the issue, but you should review translations of any items marked as needing work and correct them if necessary.The file may be either corrupted or in a format not recognized by Poedit.The file was compiled into the MO format, but it will probably not work correctly.The file was saved safely and compiled into the MO format, but it will probably not work correctly.The file was saved safely, but it cannot be compiled into the MO format and used.The file was saved safely.The old source text (before it changed during an update) that the now-inaccurate translation corresponds to.The simplest way to fill this catalog is to update it from a POT:The translation doesn’t start with a space.The translation ends with a newline, but the source text doesn’t.The translation ends with a space, but the source text doesn’t.The translation ends with “%s”, but the source text ends with “%s”.The translation is missing a newline at the end.The translation is missing a space at the end.The translation is ready for use, but %d entry is not translated yet.The translation is ready for use, but %d entries are not translated yet.The translation is ready for use.The translation should end with “%s”.The translation should not end with “%s”.The translation should start as a sentence.The translation should start with a lowercase character.The translation starts with a space, but the source text doesn’t.The translations were marked as needing work, because they may be inaccurate. You should review them for correctness.There are no translations. That’s unusual.There was a problem formatting the file nicely (but it was saved all right).There were errors when loading the catalog. Some data may be missing or corrupted as the result.These settings affect internal formatting of PO files. Adjust them if you have specific requirements e.g. because of version control.These strings are no longer in the sources. Poedit will remove them from the catalog now.These strings were found in the sources but were not in the catalog. Poedit will add them to the catalog now.This catalog has entries with plural forms, but doesn’t have Plural-Forms header configured.This file can only be edited in Crowdin’s web interface.This is the command used to launch the extractor. %o expands to the name of output file, %K to list of keywords, %F to list of input files, %C to charset flag (see below).This project has no files that can be translated in Poedit.This string was found in Poedit’s translation memory.This will be attached to the command line only if source code charset was given. %c expands to charset value.This will be attached to the command line once for each input file. %f expands to the filename.This will be attached to the command line once for each keyword. %k expands to the keyword.TotalTransformationsTranslatable entries aren’t added manually in the Gettext system, but are automatically extracted from source code. This way, they stay up to date and accurate. Translators typically use PO template files (POTs) prepared for them by the developer.Translated: %d of %d (%d %%)Translation LanguageTranslation MemoryTranslation Needs &WorkTranslation PropertiesTranslation needs &workTranslation propertiesTranslation suggestions:Translation — %sTranslation:Translations couldn’t be updated from the source code, because no code was found in the location specified in the catalog’s Properties.TwoUTF-8 (recommended)UndoUnhandled exception occurred: %sUnix (recommended)UntransUpUpdateUpdate allUpdate all catalogs in the projectUpdate catalog - synchronize it with sourcesUpdate from &POT File…Update from &POT file…Update from POTUpdate summaryUpdatesUpdating catalogUpdating failedUpdating the catalog failed. Click on 'Details >>' for details.Updating user information…Uploading translations…Use custom expressionUse custom list font:Use custom text fields font:Use default rules for this languageUse these keywords (function names) to recognize translatable strings in source files:Use translation memoryValidateValidation resultsVersion %sWaiting for authentication…Welcome to PoeditWhat is Crowdin?When updating from sourcesWhole words onlyWindowWindowsWrap aroundWrap at:YesYou can also extract translatable strings directly from the source code:You can’t drop more than one file on Poedit window.You must restart Poedit for this change to take effect.Your NameYour changes will be lost if you don’t save them.Your name and email address are only used to set the Last-Translator header of GNU gettext files.ZeroZoomaltctrldon’t delete temporary files (for debugging)e.g. nplurals=2; plural=(n > 1);fuzzy match within the filego to item at given line numberhandle a poedit:// URIpre-translate from TMshiftunknown languageyour_email@example.com“%s” is not a valid POT file.Project-Id-Version: poedit Report-Msgid-Bugs-To: help@poedit.net POT-Creation-Date: 2017-12-05 15:52+0100 PO-Revision-Date: 2017-09-21 11:29-0400 Last-Translator: vslavik Language-Team: Armenian Language: hy_AM MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=(n != 1); X-Generator: crowdin.com X-Crowdin-Project: poedit X-Crowdin-Language: hy-AM X-Crowdin-File: /locales/poedit.pot (փոփոխված)(չպահպանված)%d գրառում%d գրառում%d գրառումը նախաթարգմանվել է:%d գրառումները նախաթարգմանվել են:%d սխալ%d սխալ%d խնդիր է հայտնաբերվել թարգմանությունում:%d խնդիրներ են հայտնաբերվել թարգմանությունում:“%2$s” ֆայլի %1$i տողը ճիշտ չէ բեռնվել.“%2$s” ֆայլի %1$i տողերը ճիշտ չեն բեռնվել.%s ձևաչափ%s-ի կարգավորումները%s ձևաչափ&Ծրագրի մասինPoedit-ի &մասին&Գործադրել&Հետ&Էջանիշեր&Չեղարկել&Մաքրել&Փակել&Պատճենել&Ջնջել&Պատրաստ է և հաջորդը&Պատրաստ է և հաջորդը&Խմբագրել&Ֆայլ&Գտնել…&GNU gettext-ի ձեռնարկ&GNU gettext-ի ձեռնարկ&Անցնել&Խմբավորել ըստ համատեքստի&Խմբավորել ըստ համատեքստի&Օգնություն&Նոր&Նոր…&Հաջորդ »&Հաջորդ թարգմանությունը&Հաջորդ թարգմանությունը&Ոչ&Լավ&Առցանց օգնություն&Առցանց օգնություն&Բացել...&Բացել…&Տեղադրել&Կարգավորումներ&Կարգավորումներ…&Նախորդ թարգմանությունը&Նախորդ թարգմանությունը&Հատկություններ…&Մաքրել ջնջված թարգմանությունները&Մաքրել ջնջված թարգմանությունները&Փակել&Կրկնակել&Փոխարինել&Պահպանել&Պահպանել որպես&Ցուցադրել հղումները&Ցուցադրել հղումները&Հետարկել&Նախ չթարգմանվածները&Նախ չթարգմանվածները&Թարմացնել սկզբնականից&Թարմացնել սկզբնականից&Վավերացնել թարգմանությունները&Վավերացնել թարգմանությունները&Տեսք&Այո(0 նոր, 0 հնացած)(Մանրամասներ GNU gettext-ի մասին)(Նոր՝ %i, հնացած՝ %i)(Օգտ. հիմնական լեզուն)(պահանջում է Windows 8 կամ ավելի նորը)« &ՆախորդՎերցրեք և գցեք թղթապանակները այստեղ կամ օգտագործեք + կոճակըՎերցրեք և գցեք թղթապանակները այստեղ կամ օգտագործեք + կոճակը<անանուն>%s ծրագրի մասինՀաշիվներՀավելել մեկնաբանությունՀավելել ֆայլեր…Հավելել թղթապանակներ…Հավելել դերանշան…Հավելել մեկնաբանությունԳրացուցակը հավելել ցանկումՀավելել ֆայլեր…Հավելել թղթապանակներ…Հավելել դերանշան…Լրացուցիչ հիմնաբառերԼրացուցիչ xgettext դրոշակներ.ԸնդլայնվածԴուրս բերելու ընդլայնված կարգավորումներ…Դուրս բերելու ընդլայնված կարգավորումներԴուրս բերելու ընդլայնված կարգավորումներ…Թարգմանության բոլոր ֆայլերըԲոլոր մեկնաբանություններըՆաև օգտագործեք լռելյայն հիմնաբառեր՝ աջակցվող լեզուների համարAlt+Դաշտը միշտ ակտիվ դարձնել՝ տեքստ մուտքագրելու համարՄիավորը ներածված ֆայլերի ցանկում է.Միավոր՝ հիմնաբառերի ցանկում.ՏեսքԳործադրելՋնջե՞լ “%s” արտահանիչը:Վերակայե՞լ թարգմանության հիշողությունըԻնքնաբար ստուգել թարմացումներըՊահպանելիս ինքնաբար կազմարկել MO ֆայլՀետՀիմնական ուղին.Բետա տարբերակը պարունակում է ամենավերջին յուրահատկությունները և լավարկումները, բայց կարող է կայուն չաշխատել:Պահել բոլորը առջևումԳրացուցակի վնասված ֆայլ. եզակի ձև msgstr-ը օգտագործում է առանց msgid_plural-իԳրացուցակի վնասված ֆայլ. եզակի ձև msgstr-ը օգտագործում է msgid_plural-ի հետԸնտրելԸստ լռելյայնի, ոչ ճիշտ արդյունքները լցվում են և նշվում որպես ոչ վերջնական: Նշեք այս ընտրանքը՝ միայն ճիշտ համընկնումները ներառելու համար:Գ&րացուցակՄ&աքրելՉեղարկելՀնարավոր չեղավ ստեղծել ժամանակավոր գրացուցակ:Հնարավոր չէ կատարել %s ծրագիրըԳլխատառացելԳրացուցակԳրացուցակը փոփոխվել է: Պահպանե՞լ փոփոխությունները:Գրացուցակի հատկություններըԳրացուցակների &կառավարԳրացուցակների &կառավարԳրացուցակների կառավարՓոխել ծրագրի լեզունԿոդավորում.Ստուգել փաստաթուղթըՍտուգել քերականությունը մուտքագրելիսՍտուգել ուղղագրոթյունը մուտքագրելիսՍտուգել թարմացումները…Ստուգել թարգմանության սխալներըՍտուգել թարմացումները…Ստուգել ուղղագրությունըՄաքրելՄաքրել թարգմանությունըՄաքրել մեկնաբանությունըՄաքրել թարգմանությունըՓակելՀամագործակցել թարգմանելու հարցում ուրիշների հետՀամագործակցել թարգմանության հարցում ուրիշների հետՀավաքում է աղբյուր ֆայլերը...Թարգմանությունները դուրս հանելու հրաման.Մեկնաբանություն.Մեկնաբանություններ նախանծանցով՝Կազմարկել MO-ի…Կազմարկել առ՝Թարգմանության կազմարկված ֆայլերԿազմաձևել սկզբնական կոդի դուրս բերումը Հատկություններում:ՀաստատումՊատճենելՊատճենել եզակիիցՊատճենել սկզբնական տեքստիցՊատճենել հոգնակիիցՊատճենել սկզբնական տեքստիցԻնքնաբար ուղղելՀնարավոր չէ բեռնել %s ֆայլը: Հնարավոր է այն վնասված է:Հնարավոր չէ պահպանել %s ֆայլը:Ստեղծել նոր թարգմանությունՍտեղծել նոր թարգմանությունՍտեղծել թարգմանության նոր նախագիծCrowdin-ի սխալCrowdin-ը առցանց թարգմանությունների հարթակ է և թարգմանությունները համատեղելու գործիք: Poedit-ը կարող է հեշտության համաժամեցնել PO ֆայլերը Crowdin-ում:Ctrl+Կտրե&լԸնտրովի դուրս բերում.Ընտրովի դուրս բերում.ԿտրելՇտեմարանի չափը՝ՋնջելՋնջել արտահանիչըՋնջել նախագիծըԳրացուցակներ.Ցուցադրել գրառումների &ID-ներըՑուցադրել գրառումների &ID-ներըՑանկանու՞մ եք կատարել մասսայական թարմացում նախագծի բոլոր գրացուցակներում:Ջնջե՞լ նախագիծըՀեռացնե՞լ բոլոր թարգմանությունները, որոնք այլևս չեն օգտագործվում:ՉպահպանելԱյլևս չցուցադրելՉնշել ճիշտ համընկնումները որպես ոչ վերջնականՉպահպանելԱյլևս չցուցադրելDownՆերբեռնել ֆայլ Crowdin-ի նախագծից, թարգմանել և համաժամեցնել:Ներբեռնում է վերջին թարգմանությունները...Թարգմանությունների ներբեռնումը անջատած է այս նախագծի համար:Փ&ակելԱ&րտահանել որպես HTML…ԽմբագրելԽմբագրել &մեկնաբանությունըԽմբագրել &մեկնաբանությունըԽմբագրել մեկնաբանությունըԽմբագրել թարգմանությունըԽմբագրել թարգմանությունԽմբագրել մեկնաբանությունըԽմբագրել նախագիծըԽմբագրել նախագիծըԽմբագրումԽմբագրել…Էլ. փոստ.EnterԼրաէկրանՀնարավոր է գրացուցակի գրառումները սխալ են:Այս գրացուցակի գրառումները ունեն այլ հոգնակի ձևեր, ինչ գրացուցակի հոգնակի ձևերի գլխագիրն էՆախ սխալներով գրառումներըՆախ սխալներով գրառումներըՍխալներով գրառումները ցանկում նշված են կարմիր գույնով: Սխալի մանրամասները կցուցադրվեն, երբ ընտրեք գրառումը:Սխալ՝ '%s' գրացուցակը բեռնելիս:Ֆայլը բացելու սխալՍխալ՝ %s ֆայլը բացելիս:Սխալ՝ գրացուցակը պահպանելիսՍխալներԱմենըԲացառված ուղիներԱրտահանել որպես…Հանել սկզբնական կոդիցԴուրս բերել նշումները թարգմանիչների համար հետևյալից՝Հանել տեքստը սկզբնական ֆայլից հետևյալ տեղում՝Դուրս է բերում թարգմանվող տողերը…Արտահանիչի կարգավորումԱրտահանիչներՁախողված հրաման. %sՀնարավոր չէ հաղորդակցել Poedit-ի ընթացքը:Ձախողվեց դուրս բերված գրացուցակի բեռնումը:Հնարավոր չեղավ ձուլել gettext գրացուցակները:Հնարավոր չեղավ թարմացնել թարգմանության հիշողությունը. %sՖայլ“%s” ֆայլը գոյություն չունի:'%s' ֆայլը հաղորդագրության գրացուցակ չէ:“%s” ֆայլը միայն կարդալու համար է և հնարավոր չէ այն պահպանել: Պահպանեք այն այլ անունով:Ֆայլ.Ամփոփում…ԳտնելԳտնել հաջորդըԳտնել նախորդըԳտնել և փոխարինել…Գտնել մեկնաբանություններումԳտնել սկզբնական տեքստումԳտնել թարգմանություններումԳտնել հաջորդըԳտնել նախորդըՈւղղել լեզունՈւղղել լեզունՈւղղել գլխագիրըՈւղղել գլխագիրը%i-իցՀաճախակիGNU gettextԳլխավորԱնցնել %i էջանիշինԱնցնել %i էջանիշինHTML ֆայլերՕգնությունԹաքցնել %s-ըԹաքցնել ուրիշներըԹաքցնել կողագոտինԹաքցնել Վիճակի գոտինԹաքցնել ծանուցումըIDԵթե շարունակեք մաքրել, ապա նշված բոլոր թարգմանությունները կջնջվեն անվերադարձ:Անտեսել գրանցատեղինԹարգմանությունների ներմուծում…Ներառյալ բետա տարբերակըՏեղեկություններ թարգմանողի մասինՏեղադրելՍխալ ֆայլԿանչ.ՊահելԼեզվի կոդը կամ անունը (օրինակ՝ hy_am)Թարգմանության լեզուն նույնն է, ինչ սկզբնականը:Թարգմանության լեզուն նշված չէ:Թարգմանության լեզուն.Լեզվի ընտրությունԼեզվի թիմը.Լեզուն.Վերջին փոփոխումըԻմացեք Gettext Keywords-ի մասինՍովորել ֆայլերից…ՄանրամասներՄանրամասներ Crowdin-ի մասինՄանրամասներ gettext հիմնաբառի մասինՄանրամասներ հոգնակի ձևերի մասինՍովորել ֆայլերից…ՄանրամասներՄանրամասներ Crowdin-ի մասինՁախ%d տողի '%s' ֆայլը վնասված է (անվավեր %s տվյալ):Տողի ավարտ.Ընդլայնումների ցուցակը՝ առանձնացված կետ-ստորակետով (օր.՝ *.cpp;*.h).MO ֆայլերը չեն կարող ուղղակիորեն խմբագրվել Poedit-ում:Դարձնել փոքրատառԴարձնել մեծատառԱյլակերպված '%s' գլխագիրՏարբերությունները ձուլվում են…ՆվազեցնելԹարգմանության նախագծի անունըԱնուն.Հաջ&որդ անավարտըՀաջ&որդ անավարտըՎերջնական չէՎերջնական չէԵրբեք ակտիվ չի դարձնի տողերով ցանկերը: Եթե միացված է, ապա պետք է օգտագործեք ստեղնաշարի Ctrl+սլաքները, կարող եք նաև մուտքագրել անմիջապես՝ առանց Tab-ի միջոցով առաջնահերթությունը փոխելու:ՆորՆոր &POT/PO ֆայլից…Նոր &POT/PO ֆայլից…Նոր տողՀաջորդ հոգնակինՀաջորդ հոգնակինՈչՉկան համապատասխանություններՆախաթարգմանելու համար գրառումներ չկանՉկան համապատասխանություններԹարգմանության հետ կապված խնդիրներ չկան:Հղում չկա ընտրվածի համար:Չկան թարգմանության նախագծեր Crowdin-ի Ձեր հաշվում:Ոչ բոլոր հոգնակի ձևերն են թարգմանված:Իսկորոշում չկա, կրկին մուտք գործեք:Նշում թարգմանողի համար.ԼավՀնացած տողերՄեկՄիացրեք, եթե միայն վստահում եք ձեր TM-ի որակին: Ըստ լռելյայնի, TM-ից բոլոր համընկնումները կնշվեն որպես ոչ վերջնական աշխատանք և պետք է ստուգվեն:Լցնել միայն ճիշտ համընկնումներովԲացելԲացել Crowdin թարգմանությունըԲացել Crowdin-ից…Բացել վերջինըԲացել առկա PO ֆայլը և խմբագրել թարգմանությունը:Բացել գրացուցակԲացել գրացուցակի նմուշըԲացել Crowdin-ից…Բացել ԽմբագրիչովԲացել ԽմբագրիչովԲացել...Բացել…ԸնտրանքներԱյլՆ&ախորդ անավարտըՆ&ախորդ անավարտըPO թարգմանությունPO թարգմանության ֆայլերPOT թարգմանության ֆայլերPOT ֆայլերը միայն նմուշներ են և չեն պարունակում որևէ թարգմանություն: Թարգմանություն ստեղծելու համար ստեղծեք նոր PO ֆայլ:ՏեղադրելՏեղադրել և ըստ ոճիՈւղիներՓոխարենը խնդրում ենք բացել և խմբագրել համապատասխան PO ֆայլը: Երբ պահպանեք այն՝ MO ֆայլը կթարմացվի:Խնդրում ենք նախ պահպանել ֆայլը:ՀոգնակիԳրացուցակի կողմից օգտագործվող հոգնակի ձևերի արտահայտությունը անսովոր է %s-ի համար:Հոգնակի ձևեր.Հոգնակի.PoeditPoedit-ի Գրացուցակների կառավարPoedit-ը ինքնաբար ուղղել է սխալ բովանդակությունը “%s” ֆայլում:Poedit-ը կարող է փորձել լրացնել նոր գրառումները միայն նախորդ թարգմանություններից այս ֆայլում կամ թարգմանության ձեր հիշողությունից: TM-ի օգտագործումը արդյունավետ չի լինի, եթե այն գրեթե դատարկ է, բայց կլավարկվի թարգմանություններ ավելացնելու ընթացքում:Poedit-ը թարգմանությունների դյուրին խմբագիր է:Նախա&թարգմանություն…ՆախաթարգմանելՆախաթարգմանվածՆախաթարգմանված %u տողՆախաթարգմանված %u տողերՆախաթարգմանություն...Նախաթարգմանությունը ինքնաբար գտնում է ճիշտ կամ ոչ վերջնական համընկնումները չթարգմանված տողերի համար թարգմանության հիշողությունում և լցնում է դրանց թարգմանություններում:ԿարգավորումներԿարգավորումներ...Կարգավորումներ…Պահել առկա ֆայլերի ձևաչափումըՆախորդ հոգնակինՆախորդ հոգնակինՆախորդ սկզբնական տեքստը.Նախագծի անունը և տարբեակը.Նախագծի անունը.Նախագիծ.ՄաքրելՄաքրել ջնջված թարգմանություններըՓակելՓակել %s-ըՎերջինըՎերարկելՀղումներ:ԹարմացնելՄնում է՝ %dՓոխարինելՓոխարինել &բոլորըՓոխարինել &բոլորըԻնչով փոխարինելՓոխարինել…Պահանջվող հոգնակի ձևի գլխագիրը բացակայում էՎերակայելՎերակայել թարգմանության հիշողությունըԹարգմանության հիշողության վերակայումը անվերադարձ կջնջի բոլոր թարգմանությունները:ՎերանայելԱջՊահպանելՊահպանել &որպես…Պահպանել &որպես…Պահպանել որպեսՊահպանել որպես…Պահպանել գրացուցակըՊահպանել փոփոխություններըՆշել &բոլորըՆշել բոլորըԸնտրել գրացուցակըԸնտրեք ներմուծվող ֆայլերըԸնտրեք Ձեր նախընտրած լեզունԾառայություններՆշել էջանիշ %iՆշել լեզունՆշել էջանիշ %iՆշել լեզունShift+Ցուցադրել բոլորըՑուցադրել կողագոտինՑուցադրել ուղղագրությունը և քերականությունըՑուցադրել Վիճակի գոտինՑուցադրել փոխարինումներըՑուցադրել կամ թաքցնել կողագոտինՑուցադրել կողագոտինՑուցադրել վիճակի գոտինՑուցադրել ամփոփում՝ գրացուցակը թարմացնելիսԿողագոտիՄուտք գործելԴուրս գրվելՄուտք գործելՄուտք գործել CrowdinԴուրս գրվելՄուտք եք գործել որպես՝ԵզակիԵզակի.Խելացի պատճենում/տեղադրումԽելացի գծերԽելացի հղումներԽելացի ծելաաչակերտներԽմբավորել ըստ &ֆայլի կարգիԽմբավորել ըստ &սկզբնականիԽմբավորել ըստ &թարգմանությանԽմբավորել ըստ &ֆայլի կարգիԽմբավորել ըստ &սկզբնականիԽմբավորել ըստ &թարգմանությանՍկզբնական կոդի գրանշանը՝Սկզբնական կոդի արտահանիչները օգտագործվում են գտնելու թարգմանվող տողեր սկզբնական կոդի ֆայլերում և դուրս բերելու դրանք, որպեսզի հնարավոր լինի թարգմանել:Սկզբնական կոդը հասանելի չէՍկզբնական ֆայլըՍկզբնական ֆայլ.Սկզբնական տեքստՍկզբնական տեքստ՝ %sՍկզբնական տեքստ.Սկզբնականների հիմնաբառերըՍկզբնականների ուղիներըՍկզբնականի հիմնաբառերՍկզբնական ուղիներԽոսքՈւղղագրության ստուգումը անջատված է, քանի որ բառարանը %s-ի համար տեղադրված չէ:Ուղղագրություն և քերականությունՍկսել արտասանելԸնդհատել արտասանումըՊահված թարգմանություններ՝Ինչ փնտրելՓոխարինումներԱռաջարկություններԱռաջարկությունները հասանելի չեն, եթե թարգմանվող լեզուն նորմալ նշված չէ: Այլ յուրահատկություններ, ինչպես օրինակ՝ հոգնակի ձևերը, կարող են ազդվել:Աջակցում է ծրագրավորման բոլոր լեզուները՝ ճանաչված GNU gettext գործիքների կողմից (PHP, C/C++, C#, Perl, Python, Java, JavaScript և այլն):ՍինքՍինք Crowdin-ի հետՀամաժամեցնել թարգմանությունը Crowdin-ինՀամաժամեցումՀամաժամեցման սխալ%s-ի հետ համաժամեցումը ձախողվեց:Համաժամեցում %s-ի հետ...Համաժամեցումը Crowdin-ի հետ ձախողվեց:Շարահյուսական սխալ հոգնակի ձևերի գլխագրում ("%s"):ԹՀՎերցնել առկա PO ֆայլ կամ POT նմուշ և ստեղծել նոր թարգմանություն:Վերցնել թարգմանվող տողերը առկա POT նմուշից:Թիմի անունը և էլ. փոստը կամ URL-նՏեքստի փոխարինումԹՀ-ը չի պարունակում այս բովանդակությանը համապատասխանող որևէ տող: Սա օգտակար է ինքնաբար թարգմանելու համար, եթե միայն Poedit-ը սովորում է մեծ քանակությամբ թարգմանություններ, որոնք դուք ձեռքով եք կատարել:ՀՆարավոր չէ պահպանել գրացուցակը “%s”-ում այն գաղտնագրմամբ, որը հատկորոշված է գրացուցակի կարգավորումներում: Փոխարենը՝ այն պահպանվել է UTF-8-ով և համապատասխանաբար կարգավորումը փոփոխվել է:Ֆայլը հնարավոր չէ կազմարկել MO ձևաչափի և օգտագործել:Ֆայլը հնարավոր չէ բացել:Ֆայլը պարունակում է կրկնօրինակ միույթներ, որոնք թույլատրված չեն PO ֆայլերում և կարող են կանխել ֆայլի օգտագործումը: Poedit-ը ուղղել է այդ խնդիրը, բայց դուք պետք է ստուգեք թարգմանությունները, որոնք նշված են որպես ոչ վերջնական և անհրաժեշտության դեպքում ուղղեք դրանք:Ֆայլը կարող է վնասված լինել կամ ոչ Poedit-ի ձևաչափով:Ֆայլը կազմարկվել է MO ձևաչափի, բայց հնարավոր է նորմալ չաշխատի:Ֆայլը անվտանգ պահպանվել է և կազմարկվել է MO ձևաչափի, բայց հնարավոր է նորմալ չաշխատի:Ֆայլը անվտանգ պահպանվել է, բայց չի կարող կազմարկվել MO ձևաչափի և օգտագործվել:Ֆայլը անվտանգ պահպանվել է:Հին սկզբնական գրվածքը (մինչև արդիացման ընթացքում դրա փոխվելը), որը այժմ ոչ ճիշտ է:Այս գրացուցակը լցնելու ամենապարզ ճանապարհը այն POT-ից թարմացնելն է.Թարգմանությունը չի սկսվում բացատով:Թարգմանությունը վերջանում է նոր տողով, բայց սկզբնական գրվածքը՝ ոչ:Թարգմանությունը վերջանում է բացատով, բայց սկզբնական գրվածքը՝ ոչ:Թարգմանությունը վերջանում է “%s”-ով, բայց սկզբնական գրվածքը վերջանում է “%s”-ով:Թարգմանությունում բաց է թողնված նոր տողը վերջում:Թարգմանության վերջում բացակայում է բացատը:Թարգմանությունը պատրաստ է օգտագործելու համար, բայց %d գրառում դեռ թարգմանված չէ:Թարգմանությունը պատրաստ է օգտագործելու համար, բայց %d գրառումներ դեռ թարգմանված չեն:Թարգմանությունը պատրաստ է:Թարգմանությունը պետք է վերջանա “%s”-ով:Թարգմանությունը չպետք է վերջանա “%s”-ով:Թարգմանությունը պետք է սկսի որպես նախադասություն:Նախադասությունը պետք է սկսվի փոքրատառ գրանշանով:Թարգմանությունը սկսվում է բացատով, բայց սկզբնական գրվածքը՝ ոչ:Թարգմանությունները նշվել են որպես ոչ վերջնական, քանի որ դրանք, հնարավոր է, ճիշտ չեն: Դուք պետք է ստուգեք դրանք:Թարգմանություններ չկան: Դա նորմալ չէ:Ֆայլը նորմալ ձևաչափելու խնդիր (բայց այն հաջողությամբ պահպանվել է):Սխալ՝ գրացուցակը բեռնելիս: Որոշ տվյալներ բացակայում են կամ վնասված են:Այս կարգավորումները վերաբերում են PO ֆայլերի ներքին ձևաչափմանը: Հարմարեցրեք դրանք, եթե ունեք որոշակի պահանջներ, ինչպես օրինակ՝ տարբերակի կառավարում:Այս տողերը այլևս սկզբնականում չկան: Poedit-ը դրանք կհեռացնի գրացուցակից:Այս տողերը գտնվել են սկզբնականում, բայց ոչ գրացուցակում: nPoedit-ը դրանք կավելացնի գրացուցակում:Այս գրացուցակը ունի գրառումներ հոգնակի ձևով, բայց հոգնակի ձևերը կազմաձևված չեն:Այս ֆայլը կարող է խմբագրվել միայն Crowdin-ում:Այս հրամանը օգտագործվում է բացելու համար արտահանիչը: %o-ը կավելացվի արտածվող ֆայլի անվանը, %K-ը՝ հիմնաբառի ցանկին, %F-ը՝ ներածվող ֆայլերի ցանկին, %C-ը՝ կոդավորման դրոշակին (տես ստորև):Այս նախագիծը չունի ֆայլեր, որոնք կարող են թարգմանվել Poedit-ով:Այս տողը գտնվել է Poedit-ի թարգմանության հիշողությունում:Սա կկցվի հրամանի տողին, եթե միայն սկզբնական կոդավորում է տրված: %c-ը կավելացվի կոդավորման արժեքին:Սա կկցվի հրամանի տողին մեկ անգամ՝ յուրաքանչյուր ստեղնաշարի համար: %f-ը կավելացվի ֆայլի անվանը:Սա կկցվի հրամանի տողին մեկ անգամ՝ յուրաքանչյուր ստեղնաշարի համար: %k-ը կավելացվի ստեղնաշարին:ԸնդամենըՓոխակերպումԹարգմանելի գրառումները ձեռքով չեն ավելացվել Gettext համակարգում, բայց ինքնաբար դուրս են բերվել աղբյուր կոդից: Այս ճանապարհով դրանք մնում են արդիացված և ճիշտ: Թարգմանիչները սովորաբար օգտագործում են PO ձևանմուշի ֆայլեր ((POT-եր), որոնք նրանց համար նախապատրաստվել են մշակողների կողմից:Թարգմանված է՝ %d-ը %d-ից (%d %%)Թարգմանության լեզունԹարգմանության հիշողություն (ԹՀ)Թարգմանությունը վերջնական &չէԹարգմանության հատկություններըԹարգմանությունը վերջնական &չէԹարգմանության հատկություններԹարգմանության առաջարկություններ.Թարգմանություն՝ %sԹարգմանություն.Թարգմանությունները չեն կարող թարմացվել սկզբնական կոդից, քանի որ այն չի գտնվել գրացուցակի հատկություններում:ԵրկուUTF-8 (խորհուրդ է տրվում)ՀետարկելԱնհայտ բացառություն. %sUnix (խորհուրդ է տրվում)ՉթարգմանվածUpԹարմացնելԹարմացնել բոլորըԹարմացնել բոլոր գրացուցակները նախագծումԹարմացնել գրացուցակը՝ համաժամեցնել այն սկզբնականի հետԹարմացնել &POT ֆայլից…Թարմացնել &POT ֆայլից…Թարմացնել POT-իցԹարմացումների ամփոփումԹարմացումներԳրացուցակի թարմացումԹարմացումը ձախողվեցԳրացուցակի թարմացումը ձախողվեց: Մանրամասնելու համար սեղմեք 'Մանրամասներ>>':Թարմացնում է օգտվողի տեղեկությունը...Թարգմանությունների վերբեռնում..Օգտ. հարմարեցված արտահայտությունՑանկի տառատեսակը.Տեքստի տառատեսակը.Օգտ. այս լեզվի ծրագրային կանոններըՕգտ. այս հիմնաբառերը (գործառույթի անունները)՝ ճանաչելու համար թարգմանվող տողերը սկզբնական ֆայլում.Օգտ. թարգմանության հիշողությունըՎավերացնելՎավերացման արդյունքներՏարբերակ՝ %sՍպասում է իսկորոշման...Բարի գալուստ PoeditԻ՞նչ է Crowdin-ըՍկզբնականից արդիացնելիսՄիայն ամբողջ բառըՊատուհանWindowsԾալել շուրջըՏողադարձը՝ԱյոԿարող եք նաև հանել թարգմանվող տողերը անմիջականորեն սկզբնական կոդից.Չեք կարող գցել մեկ ֆայլից ավելի Poedit-ի պատուհանում:Կիրառֆելու համար պետք է վերագործարկեք Poedit-ըՁեր անունըԵթե չպահպանեք փոփոխությունները, ապա կկորցնեք դրանք:Ձեր անունը և էլ. փոստը օգտագործվելու են միայն GNU gettext ֆայլերի գլխագրերում՝ ցուցադրելու վերջին թարգմանողին:ԶրոՉափորոշելaltctrlչջնջել ժամանակավոր ֆայլերը (վրիպազերծելու համար)օրինակ՝ nplurals=2; plural=(n > 1);ոչ վերջնականի համընկնում ֆայլումանցնել միույթի՝ տողի տրված համարովhandle a poedit:// URIնախաթարգմանել TM-իցshiftանհայտ լեզուyour_email@example.com'%s'-ը վավեր POT ֆայլ չէ:poedit-2.0.6/locales/fr.po0000664000372000037200000015716213230132076012326 00000000000000msgid "" msgstr "" "Project-Id-Version: poedit\n" "Report-Msgid-Bugs-To: help@poedit.net\n" "POT-Creation-Date: 2017-12-05 15:52+0100\n" "PO-Revision-Date: 2018-01-18 07:55-0500\n" "Last-Translator: vslavik \n" "Language-Team: French\n" "Language: fr_FR\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" "X-Generator: crowdin.com\n" "X-Crowdin-Project: poedit\n" "X-Crowdin-Language: fr\n" "X-Crowdin-File: /locales/poedit.pot\n" msgid "Hide this notification message" msgstr "Masquer ce message de notification" msgid "Don’t Show Again" msgstr "Ne plus afficher" msgid "Don’t show again" msgstr "Ne plus afficher" #, c-format msgid "(New: %i, obsolete: %i)" msgstr "(Nouvelle : %i, obsolète : %i)" msgid "Updating catalog" msgstr "Mise à jour du catalogue" msgid "Collecting source files…" msgstr "Collecte des fichiers sources…" msgid "Extracting translatable strings…" msgstr "Extraction des chaînes traduisibles…" msgid "Failed to load extracted catalog." msgstr "Échec du chargement du catalogue extrait." msgid "Merging differences…" msgstr "Intégration des changements…" #, c-format msgid "“%s” is not a valid POT file." msgstr "« %s » n’est pas un fichier POT valide." #, c-format msgid "%i line of file “%s” was not loaded correctly." msgid_plural "%i lines of file “%s” were not loaded correctly." msgstr[0] "%i ligne du fichier « %s » n’a pas été chargée correctement." msgstr[1] "%i lignes du fichier « %s » n’ont pas été chargées correctement." #, c-format msgid "Line %d of file “%s” is corrupted (not valid %s data)." msgstr "La ligne %d du fichier « %s » est corrompue (données %s non valides)." #, c-format msgid "Malformed header: “%s”" msgstr "En-tête mal formée : « %s »" msgid "" "Broken catalog file: singular form msgstr used together with msgid_plural" msgstr "" "Catalogue corrompu : forme singulière msgstr utilisée conjointement avec " "msgid_plural" msgid "Broken catalog file: plural form msgstr used without msgid_plural" msgstr "Catalogue corrompu : forme plurielle msgstr utilisée sans msgid_plural" msgid "" "There were errors when loading the catalog. Some data may be missing or " "corrupted as the result." msgstr "" "Il y a eu des erreurs lors du chargement du catalogue. Il se pourrait que " "des données soient manquantes ou corrompues." #, c-format msgid "Couldn’t load file %s, it is probably corrupted." msgstr "Échec du chargement du fichier %s : il est probablement corrompu." #, c-format msgid "" "File “%s” is read-only and cannot be saved.\n" "Please save it under different name." msgstr "" "Le fichier « %s » est en lecture seule et ne peut être enregistré.\n" "Veuillez l’enregistrer sous un nom différent." #, c-format msgid "Couldn’t save file %s." msgstr "Impossible d’enregistrer le fichier %s." msgid "" "There was a problem formatting the file nicely (but it was saved all right)." msgstr "" "Il y a eu un problème lors du formatage du fichier (mais il a été enregistré " "correctement)." #, c-format msgid "" "The catalog couldn’t be saved in “%s” charset as specified in catalog " "settings.\n" "\n" "It was saved in UTF-8 instead and the setting was modified accordingly." msgstr "" "Le catalogue n’a pas pu être enregistré avec le jeu de caractères « %s » " "spécifié dans les paramètres du catalogue.\n" "\n" "Le jeu UTF-8 a été utilisé en remplacement et la configuration a été " "modifiée en conséquence." msgid "Error saving catalog" msgstr "Erreur d'enregistrement du catalogue" msgid "PO Translation Files" msgstr "Fichiers de traduction PO" msgid "POT Translation Templates" msgstr "Modèles de traduction POT" msgid "All Translation Files" msgstr "Tous les fichiers de traduction" msgid "(Use default language)" msgstr "(Utiliser la langue par défaut)" msgid "Select your preferred language" msgstr "Sélectionnez votre langue de préférence" msgid "Language selection" msgstr "Sélection de langue" msgid "You must restart Poedit for this change to take effect." msgstr "Vous devez redémarrer Poedit pour que ce changement prenne effet." msgid "Syncing" msgstr "Synchronisation" #. TRANSLATORS: %s is a cloud destination, e.g. "Crowdin" or ftp.wordpress.com etc. #, c-format msgid "Syncing with %s…" msgstr "Synchronisation avec %s…" #. TRANSLATORS: %s is a cloud destination, e.g. "Crowdin" or ftp.wordpress.com etc. #, c-format msgid "Syncing with %s failed." msgstr "La synchronisation avec %s a échoué." msgid "Syncing error" msgstr "Erreur de synchronisation" msgid "Downloading translations is disabled in this project." msgstr "Le téléchargement des traductions est désactivé dans ce projet." msgid "Not authorized, please sign in again." msgstr "Non autorisé, veuillez vous connecter à nouveau." msgid "" "Crowdin is an online localization management platform and collaborative " "translation tool. Poedit can seamlessly sync PO files managed at Crowdin." msgstr "" "Crowdin est une plateforme de gestion de localisation en ligne et un outil " "de traduction collaborative. Poedit peut synchroniser les fichiers PO pris " "en charge sur Crowdin." msgid "Sign In" msgstr "Se connecter" msgid "Sign in" msgstr "Se connecter" msgid "Sign Out" msgstr "Se déconnecter" msgid "Sign out" msgstr "Se déconnecter" msgid "Waiting for authentication…" msgstr "En attente d'authentification..." msgid "Updating user information…" msgstr "Mise à jour des informations de l'utilisateur..." msgid "Signed in as:" msgstr "Connecté en tant que :" msgid "Learn More About Crowdin" msgstr "En savoir plus sur Crowdin" msgid "Learn more about Crowdin" msgstr "En savoir plus sur Crowdin" msgid "Sign in to Crowdin" msgstr "Connectez-vous sur Crowdin" msgid "Open Crowdin translation" msgstr "Ouvrir la traduction Crowdin" msgid "Project:" msgstr "Projet :" msgid "Language:" msgstr "Langue :" msgid "File:" msgstr "Fichier :" msgid "No translation projects listed in your Crowdin account." msgstr "Aucun projet de traduction listé dans votre compte Crowdin." msgid "This project has no files that can be translated in Poedit." msgstr "Ce projet n'a aucun fichier qui puisse être traduit avec Poedit." msgid "This file can only be edited in Crowdin’s web interface." msgstr "" "Ce fichier ne peut être modifié qu'à partir de l'interface web de Crowdin." msgid "Downloading latest translations…" msgstr "Téléchargement des dernières traductions..." msgid "Syncing with Crowdin failed." msgstr "Échec de la synchronisation avec Crowdin." msgid "Crowdin error" msgstr "Erreur Crowdin" msgid "Uploading translations…" msgstr "Téléchargement des traductions..." msgid "&Copy" msgstr "&Copier" msgid "Learn more" msgstr "En savoir plus" msgid "Learn More" msgstr "En savoir plus" msgid "&Help" msgstr "&Aide" msgid "MO files can’t be directly edited in Poedit." msgstr "Les fichiers MO ne peuvent pas être directement modifiés dans Poedit." msgid "Error opening file" msgstr "Erreur à l'ouverture du fichier" msgid "" "Please open and edit the corresponding PO file instead. When you save it, " "the MO file will be updated as well." msgstr "" "Veuillez ouvrir et éditer le fichier PO correspondant. Lorsque vous " "l'enregistrerez, le fichier MO sera également mis à jour." msgid "don’t delete temporary files (for debugging)" msgstr "ne pas supprimer les fichiers temporaires (à des fins de débogage)" msgid "handle a poedit:// URI" msgstr "gère une poedit: // URI" msgid "go to item at given line number" msgstr "aller à l’élément à la ligne donnée" msgid "Failed to communicate with Poedit process." msgstr "Échec de la communication avec le processus Poedit." #, c-format msgid "Unhandled exception occurred: %s" msgstr "Une exception non gérée s'est produite : %s" msgid "Open catalog" msgstr "Ouvrir un catalogue" #, c-format msgid "File “%s” doesn’t exist." msgstr "Le fichier « %s » n’existe pas." msgid "Poedit is an easy to use translations editor." msgstr "Poedit est un logiciel de traduction simple à utiliser." msgid "Catalogs Manager" msgstr "Gestionnaire de catalogues" msgid "Check for Updates…" msgstr "Rechercher des mises à jour…" msgid "&Edit" msgstr "&Édition" msgid "Undo" msgstr "Annuler" msgid "Redo" msgstr "Refaire" msgid "Paste and Match Style" msgstr "Coller en conservant la mise en forme" msgid "Delete" msgstr "Supprimer" msgid "Spelling and Grammar" msgstr "Orthographe et Grammaire" msgid "Show Spelling and Grammar" msgstr "Afficher l'orthographe et la grammaire" msgid "Check Document Now" msgstr "Vérifier le document maintenant" msgid "Check Spelling While Typing" msgstr "Vérifier l'orthographe lors de la frappe" msgid "Check Grammar With Spelling" msgstr "Vérifier la grammaire et l'orthographe" msgid "Correct Spelling Automatically" msgstr "Corriger l’orthographe automatiquement" msgid "Substitutions" msgstr "Substitutions" msgid "Show Substitutions" msgstr "Afficher les substitutions" msgid "Smart Copy/Paste" msgstr "Copier/coller intelligent " msgid "Smart Quotes" msgstr "Guillemets intelligents" msgid "Smart Dashes" msgstr "Tirets intelligents" msgid "Smart Links" msgstr "Liens intelligents" msgid "Text Replacement" msgstr "Texte de remplacement" msgid "Transformations" msgstr "Transformations" msgid "Make Upper Case" msgstr "Mettre en majuscules" msgid "Make Lower Case" msgstr "Mettre en minuscules" msgid "Capitalize" msgstr "Mettre en majuscule" msgid "Speech" msgstr "Dicter" msgid "Start Speaking" msgstr "Commencer à dicter" msgid "Stop Speaking" msgstr "Arrêter de dicter" msgid "&View" msgstr "&Affichage" msgid "Enter Full Screen" msgstr "Passer en mode plein écran" msgid "Window" msgstr "Fenêtre" msgid "Minimize" msgstr "Réduire" msgid "Zoom" msgstr "Agrandir" msgid "Bring All to Front" msgstr "Tout passer au premier plan" #. TRANSLATORS:File kind displayed in Finder/Explorer msgid "PO Translation" msgstr "Traduction PO" msgid "The file cannot be opened." msgstr "Le fichier ne peut pas être ouvert." msgid "Invalid file" msgstr "Fichier non valide" msgid "" "The file may be either corrupted or in a format not recognized by Poedit." msgstr "" "Le fichier est peut-être corrompu ou dans un format non reconnu par Poedit." msgid "You can’t drop more than one file on Poedit window." msgstr "" "Il est impossible de déposer plus d’un fichier à la fois dans la fenêtre de " "Poedit." #, c-format msgid "File “%s” is not a message catalog." msgstr "Le fichier « %s » n’est pas un catalogue de messages." msgid "Poedit" msgstr "Poedit" msgid "&File" msgstr "&Fichier" msgid "&Go" msgstr "&Aller à" #. TRANSLATORS: %s is language name in its basic form (as you #. would see e.g. in a list of supported languages). You may need #. to rephrase it, e.g. to an equivalent of "for language %s". #, c-format msgid "" "Spellchecking is disabled, because the dictionary for %s isn’t installed." msgstr "" "La vérification orthographique est désactivée, car le dictionnaire pour le " "%s n'est pas installé." msgid "Install" msgstr "Installer" msgid "Catalog modified. Do you want to save changes?" msgstr "" "Le catalogue a été modifié. Voulez-vous enregistrer les modifications ?" msgid "Save changes" msgstr "Enregistrer les modifications" msgid "Your changes will be lost if you don’t save them." msgstr "Vos modifications seront perdues si vous ne les enregistrez pas." msgid "Save" msgstr "Enregistrer" msgid "Don’t save" msgstr "Ne pas enregistrer" msgid "Don’t Save" msgstr "Ne pas enregistrer" msgid "Save as…" msgstr "Enregistrer sous…" msgid "Compile to…" msgstr "Compilation…" msgid "Compiled Translation Files" msgstr "Fichiers de traduction compilés" msgid "Export as…" msgstr "Exporter en tant que…" msgid "HTML Files" msgstr "Fichiers HTML" msgid "Open catalog template" msgstr "Ouvrir un modèle de catalogue" msgid "Source code not available." msgstr "Code source non disponible." msgid "Updating failed" msgstr "Échec de la mise à jour" msgid "" "Translations couldn’t be updated from the source code, because no code was " "found in the location specified in the catalog’s Properties." msgstr "" "Les traductions n'ont pas pu être mises à jour à partir du code source, car " "aucun code n'a été trouvé à l'emplacement précisé dans les propriétés du " "catalogue." msgid "Entries in the catalog are probably incorrect." msgstr "Certaines entrées du catalogue sont probablement incorrectes." msgid "Updating the catalog failed. Click on 'Details >>' for details." msgstr "" "La mise à jour du catalogue a échoué. Cliquez sur « Détails >> » pour en " "savoir plus." #, c-format msgid "%d issue with the translation found." msgid_plural "%d issues with the translation found." msgstr[0] "%d problème trouvé dans la traduction." msgstr[1] "%d problèmes trouvés dans la traduction" msgid "Validation results" msgstr "Résultats de la validation" msgid "" "Entries with errors were marked in red in the list. Details of the error " "will be shown when you select such an entry." msgstr "" "Les entrées comportant des erreurs ont été marquées en rouge dans la liste. " "Sélectionnez-les pour en afficher les détails." msgid "The file was saved safely." msgstr "Le fichier a été enregistré avec succès." msgid "" "The file was saved safely and compiled into the MO format, but it will " "probably not work correctly." msgstr "" "Le fichier a été enregistré avec succès et compilé au format MO, mais il ne " "fonctionnera probablement pas correctement." msgid "" "The file was saved safely, but it cannot be compiled into the MO format and " "used." msgstr "" "Le fichier a été enregistré avec succès, mais il ne peut ni être compilé au " "format MO ni être utilisé." msgid "" "The file was compiled into the MO format, but it will probably not work " "correctly." msgstr "" "Le fichier a été compilé au format MO, mais il ne fonctionnera probablement " "pas correctement." msgid "The file cannot be compiled into the MO format and used." msgstr "Le fichier ne peut pas être compilé au format MO et être utilisé." msgid "No problems with the translation found." msgstr "Aucun problème trouvé dans la traduction." #, c-format msgid "The translation is ready for use, but %d entry is not translated yet." msgid_plural "" "The translation is ready for use, but %d entries are not translated yet." msgstr[0] "" "La traduction est prête à être utilisée, mais %d entrée n'est pas encore " "traduite." msgstr[1] "" "La traduction est prête à être utilisée, mais %d entrées ne sont pas encore " "traduites." msgid "The translation is ready for use." msgstr "La traduction est prête à être utilisée." #, c-format msgid "Poedit automatically fixed invalid content in the file “%s”." msgstr "" "Poedit a automatiquement corrigé le contenu non valide du fichier « %s »." msgid "" "The file contained duplicate items, which is not allowed in PO files and " "would prevent the file from being used. Poedit fixed the issue, but you " "should review translations of any items marked as needing work and correct " "them if necessary." msgstr "" "Le fichier contenait des éléments dupliqués, ce qui n’est pas autorisé dans " "les fichiers PO et empêcherait le fichier d'être utilisé. Poedit a résolu le " "problème, mais vous devriez examiner les traductions de tous les éléments " "marqués comme nécessitant une révision et les corriger si nécessaire." msgid "Language of the translation isn’t set." msgstr "La langue de traduction n’est pas définie." msgid "Set Language" msgstr "Définir la langue" msgid "Set language" msgstr "Définir la langue" #. TRANSLATORS: This is shown underneath "Language of the translation isn't set (or ...is the same as source language)." msgid "" "Suggestions are not available if the translation language is not set " "correctly. Other features, such as plural forms, may be affected as well." msgstr "" "Les suggestions ne sont pas disponibles si la langue de traduction n’est pas " "définie correctement. Les autres fonctionnalités, comme les formes " "plurielles, peuvent également être affectées." msgid "Language of the translation is the same as source language." msgstr "La langue de traduction est identique à la langue source." msgid "Fix Language" msgstr "Corriger la langue" msgid "Fix language" msgstr "Corriger la langue" msgid "" "This catalog has entries with plural forms, but doesn’t have Plural-Forms " "header configured." msgstr "" "Ce catalogue possède des entrées au pluriel, mais aucune en-tête Plural-" "Forms n’est configurée." msgid "" "Entries in this catalog have different plural forms count from what " "catalog’s Plural-Forms header says" msgstr "" "Les entrées dans ce catalogue ont un nombre de formes plurielles différent " "de celui indiqué dans l’en-tête Plural-Forms" msgid "Required header Plural-Forms is missing." msgstr "L’en-tête requise Plural-Forms est absente." #, c-format msgid "Syntax error in Plural-Forms header (\"%s\")." msgstr "Erreur de syntaxe dans l’en-tête Plurial-Forms (\"%s\")." msgid "Fix the Header" msgstr "Corriger l'en-tête" msgid "Fix the header" msgstr "Corriger l’en-tête" #. TRANSLATORS: %s is language name in its basic form (as you #. would see e.g. in a list of supported languages). You may need #. to rephrase it, e.g. to an equivalent of "for language %s". #, c-format msgid "Plural forms expression used by the catalog is unusual for %s." msgstr "" "Les formes plurielles utilisées par le catalogue sont inhabituelles pour %s." #. TRANSLATORS: A verb, shown as action button with ""Plural forms expression used by the catalog is unusual for %s.")" msgid "Review" msgstr "Vérifier" #, c-format msgid "Error loading message catalog file “%s”." msgstr "Erreur au chargement du fichier catalogue « %s »." #, c-format msgid "Translated: %d of %d (%d %%)" msgstr "Traduit : %d de %d (%d %%)" #, c-format msgid "Remaining: %d" msgstr "Restant : %d" #, c-format msgid "%d error" msgid_plural "%d errors" msgstr[0] "%d erreur" msgstr[1] "%d erreurs" #, c-format msgid "%d entry" msgid_plural "%d entries" msgstr[0] "%d entrée" msgstr[1] "%d entrées" msgid " (unsaved)" msgstr " (non enregistré)" msgid " (modified)" msgstr " (modifié)" #, c-format msgid "Failed to update translation memory: %s" msgstr "Échec de la mise à jour de la mémoire de traduction : %s" msgid "Purge deleted translations" msgstr "Nettoyer les traductions supprimées" msgid "Do you want to remove all translations that are no longer used?" msgstr "" "Voulez-vous supprimer toutes les traductions qui ne sont plus utilisées ?" msgid "" "If you continue with purging, all translations marked as deleted will be " "permanently removed. You will have to translate them again if they are added " "back in the future." msgstr "" "Si vous validez l’épuration, toutes les traductions marquées comme " "supprimées seront définitivement effacées. Il faudra les traduire à nouveau " "si elles sont réintroduites par la suite." msgid "Keep" msgstr "Conserver" msgid "Purge" msgstr "Nettoyer" msgid "Copy from source text" msgstr "Copier depuis le texte original" msgid "Copy from Source Text" msgstr "Copier à partir du texte original" #. TRANSLATORS: This is the key shortcut used in menus on Windows, some languages call them differently #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Ctrl+" msgstr "Ctrl+" msgid "Clear translation" msgstr "Effacer la traduction" msgid "Clear Translation" msgstr "Effacer la traduction" msgid "Edit comment" msgstr "Modifier le commentaire" msgid "Edit Comment" msgstr "Modifier le commentaire" msgid "References:" msgstr "Références :" msgid "&Bookmarks" msgstr "&Marque-pages" #. TRANSLATORS: This is the key shortcut used in menus on Windows, some languages call them differently #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Alt+" msgstr "Alt+" #, c-format msgid "Set bookmark %i" msgstr "Définir le marque page %i" #, c-format msgid "Go to bookmark %i" msgstr "Aller au marque page %i" #, c-format msgid "Set Bookmark %i" msgstr "Définir le marque page %i" #, c-format msgid "Go to Bookmark %i" msgstr "Aller au marque page %i" msgid "Hide Sidebar" msgstr "Masquer le panneau latéral" msgid "Show Sidebar" msgstr "Afficher le panneau latéral" msgid "Hide Status Bar" msgstr "Masquer la barre d’état" msgid "Show Status Bar" msgstr "Afficher la barre d’état" msgid "Source text:" msgstr "Texte source :" msgid "Singular:" msgstr "Singulier :" msgid "Plural:" msgstr "Pluriel :" msgid "Translation:" msgstr "Traduction :" msgid "Pre-translated" msgstr "Pré-traduit" msgid "Needs Work" msgstr "À réviser" #. TRANSLATORS: This indicates that the string's translation isn't final #. and has known problems. For example, it might be machine translated or #. fuzzy matched from an older string. The translation should be short and #. convey this. If it's problematic to translate it, "Needs review" is #. acceptable substitute, but note that the meaning is subtly different: #. "needs review" implies that somebody else should review the string after #. I am done with it (i.e. consider it good), while "needs work" implies I #. need to return to it and finish the translation. msgid "Needs work" msgstr "À réviser" msgid "" "POT files are only templates and don’t contain any translations themselves.\n" "To make a translation, create a new PO file based on the template." msgstr "" "Les fichiers POT ne sont que des modèles et ne contiennent pas de " "traductions.\n" "Pour faire une traduction, créez un nouveau fichier PO à partir du modèle." msgid "Create New Translation" msgstr "Créer une nouvelle traduction" msgid "Create new translation" msgstr "Créer une nouvelle traduction" msgid "Everything" msgstr "Tout" #, c-format msgid "Form %i" msgstr "Forme %i" msgid "Singular" msgstr "Singulier" msgid "Zero" msgstr "Zéro" msgid "One" msgstr "Un" msgid "Two" msgstr "Deux" msgid "Plural" msgstr "Pluriel" msgid "Other" msgstr "Autre" #, c-format msgid "%s Format" msgstr "Format %s" #. TRANSLATORS: %s is replaced with language name, e.g. "PHP" or "C", so "PHP Format" etc." #, c-format msgid "%s format" msgstr "format %s" msgid "Source text" msgstr "Texte original" #, c-format msgid "Translation — %s" msgstr "Traduction — %s" msgid "ID" msgstr "ID" #, c-format msgid "Source text — %s" msgstr "Texte original — %s" msgid "unknown language" msgstr "langue inconnue" #, c-format msgid "Failed command: %s" msgstr "Échec de la commande : %s" msgid "Failed to merge gettext catalogs." msgstr "Échec de la fusion des catalogues gettext." msgid "Source file" msgstr "Fichier original" msgid "Source file occurrence:" msgstr "Présence du fichier original :" msgid "Open in Editor" msgstr "Ouvrir dans l’Éditeur" msgid "Open in editor" msgstr "Ouvrir dans l'éditeur" msgid "No references for the selected item." msgstr "Aucune référence pour l’élément sélectionné." #, c-format msgid "Error opening file %s!" msgstr "Erreur à l’ouverture du fichier %s !" msgid "Find" msgstr "Trouver" msgid "Replace" msgstr "Remplacer" #. TRANSLATORS: Expander in Find window for additional options (case sensitive etc.) msgid "Options" msgstr "Options" msgid "Ignore case" msgstr "Ignorer la casse" msgid "Wrap around" msgstr "Boucler" msgid "Whole words only" msgstr "Mots entiers uniquement" msgid "Find in source texts" msgstr "Trouver dans les textes originaux" msgid "Find in translations" msgstr "Trouver dans les traductions" msgid "Find in comments" msgstr "Rechercher dans les commentaires" msgid "Close" msgstr "Fermer" msgid "Replace &All" msgstr "Remplacer &tout" msgid "Replace &all" msgstr "&Tout remplacer" msgid "&Replace" msgstr "&Remplacer" msgid "< &Previous" msgstr "< &Précédent" msgid "&Next >" msgstr "&Suivant >" msgid "String to find" msgstr "Chaîne à rechercher" msgid "Replacement string" msgstr "Chaîne de remplacement" #, c-format msgid "Cannot execute program: %s" msgstr "Impossible d’exécuter le programme : %s" msgid "Language Code or Name (e.g. en_GB)" msgstr "Code ou nom de la langue (p.ex. fr_FR)" msgid "Translation Language" msgstr "Langue de traduction" msgid "Language of the translation:" msgstr "Langue de la traduction :" msgid "Poedit - Catalogs manager" msgstr "Poedit - Gestionnaire des catalogues" msgid "Catalog" msgstr "Catalogue" msgid "Total" msgstr "Total" msgid "Untrans" msgstr "Non traduit" msgid "Errors" msgstr "Erreurs" msgid "Last modified" msgstr "Dernière modification" msgid "Select directory" msgstr "Choisir un répertoire" msgid "Directories:" msgstr "Répertoires :" msgid "" msgstr "" msgid "Do you want to delete the project?" msgstr "Voulez-vous effacer ce projet ?" msgid "Confirmation" msgstr "Confirmation" msgid "" "Do you really want to do mass update of\n" "all catalogs in this project?" msgstr "" "Voulez-vous vraiment faire une mise à jour\n" "de tous les catalogues de ce projet ?" msgid "Information about the translator" msgstr "Informations sur le traducteur" msgid "Name:" msgstr "Nom :" msgid "Your Name" msgstr "Votre nom" msgid "Email:" msgstr "E-mail :" msgid "your_email@example.com" msgstr "votre_e-mail@example.com" msgid "" "Your name and email address are only used to set the Last-Translator header " "of GNU gettext files." msgstr "" "Votre nom et votre adresse e-mail sont uniquement utilisés pour définir l’en-" "tête Last-Translator des fichiers de GNU gettext." msgid "Editing" msgstr "Modification" msgid "Automatically compile MO file when saving" msgstr "Compiler automatiquement le fichier MO lors de l'enregistrement" msgid "Show summary after catalog update" msgstr "Afficher le résumé après la mise à jour du catalogue" msgid "Check spelling" msgstr "Vérifier l’orthographe" msgid "Always change focus to text input field" msgstr "Toujours activer la zone de saisie du texte" msgid "" "Never let the list of strings take focus. If enabled, you must use Ctrl-" "arrows for keyboard navigation but you can also type text immediately, " "without having to press Tab to change focus." msgstr "" "Ne laisse jamais le focus à la liste des chaînes. Si activé, il vous faut " "utiliser les touches Ctrl+flèches pour une navigation au clavier, mais vous " "pouvez aussi taper du texte directement, sans avoir à utiliser la touche de " "tabulation pour changer le focus." msgid "Appearance" msgstr "Apparence" msgid "Use custom list font:" msgstr "Utiliser une police personnalisée :" msgid "Use custom text fields font:" msgstr "Utiliser une police personnalisée pour les champs texte :" msgid "Change UI language" msgstr "Changer la langue de l’interface" #. TRANSLATORS: This is a note appended to "Check spelling" when running on older Windows versions msgid "(requires Windows 8 or newer)" msgstr "(nécessite Windows 8 ou plus récent)" msgid "General" msgstr "Général" msgid "Use translation memory" msgstr "Utiliser la mémoire de traduction" msgid "Learn From Files…" msgstr "Apprendre à partir des fichiers…" msgid "Learn from files…" msgstr "Apprendre à partir des fichiers…" #. TRANSLATORS: This is a button that deletes everything in the translation memory (i.e. clears/resets it). msgid "Reset" msgstr "Réinitialiser " #. TRANSLATORS: Followed by "match translations within the file" or "pre-translate from TM" msgid "When updating from sources" msgstr "Lors de l’actualisation depuis les sources" #. TRANSLATORS: Preceded by "When updating from sources" msgid "fuzzy match within the file" msgstr "remplissage approx. dans le fichier" #. TRANSLATORS: Preceded by "When updating from sources" msgid "pre-translate from TM" msgstr "pré-traduire avec la MT" msgid "" "Poedit can attempt to fill in new entries from only previous translations in " "the file or from your entire translation memory. Using the TM won’t be very " "effective if it’s near-empty, but it will get better as you add more " "translations to it." msgstr "" "Poedit peut essayer de remplir les nouvelles entrées uniquement depuis les " "précédentes traductions de ce fichier ou depuis votre mémoire de traduction. " "Pour que la MT soit performante, il faut qu’elle contienne le plus possible " "de traductions, car à moitié vide elle ne sera pas efficace." msgid "Stored translations:" msgstr "Traductions stockées :" msgid "Database size on disk:" msgstr "Taille de la base de données sur le disque :" msgid "Select translation files to import" msgstr "Sélectionner les fichiers de traduction à importer" msgid "Translation Memory" msgstr "Mémoire de traduction" msgid "Importing translations…" msgstr "Importation des traductions…" msgid "Finalizing…" msgstr "Finalisation…" msgid "Reset translation memory" msgstr "Réinitialiser la mémoire de traduction" msgid "Are you sure you want to reset the translation memory?" msgstr "Voulez-vous vraiment réinitialiser la mémoire de traduction ?" msgid "" "Resetting the translation memory will irrevocably delete all stored " "translations from it. You can’t undo this operation." msgstr "" "La réinitialisation de la mémoire de traduction supprimera définitivement " "toutes les traductions qui y sont stockées. Cette opération est irréversible." msgid "Cancel" msgstr "Annuler" #. TRANSLATORS: This is abbreviation of "Translation Memory" used in Preferences on macOS. #. Long text looks weird there, too short (like TM) too, but less so. "General" is about ideal #. length there. msgid "TM" msgstr "MT" msgid "" "Source code extractors are used to find translatable strings in the source " "code files and extract them so that they can be translated." msgstr "" "Les extracteurs de code source sont utilisés pour rechercher et extraire les " "chaînes traduisibles des fichiers du code source afin de les traduire." msgid "Custom Extractors:" msgstr "Extracteurs personnalisés :" msgid "Custom extractors:" msgstr "Extracteurs personnalisés :" msgid "Edit…" msgstr "Modifier…" msgid "GNU gettext" msgstr "GNU gettext" msgid "" "Supports all programming languages recognized by GNU gettext tools (PHP, C/C+" "+, C#, Perl, Python, Java, JavaScript and others)." msgstr "" "Supporte tous les langages de programmation des outils GNU gettext (PHP, C/C+" "+, C#, Perl, Python, Java, JavaScript et autres)." msgid "Delete extractor" msgstr "Supprimer l’extracteur" #, c-format msgid "Are you sure you want to delete the “%s” extractor?" msgstr "Êtes-vous sûr de vouloir supprimer l’extracteur « %s » ?" msgid "Extractors" msgstr "Extracteurs" msgid "Accounts" msgstr "Comptes" msgid "Automatically check for updates" msgstr "Rechercher automatiquement les mises à jour" msgid "Include beta versions" msgstr "Inclure les versions bêta" msgid "" "Beta versions contain the latest new features and improvements, but may be a " "bit less stable." msgstr "" "Les versions bêta contiennent les dernières nouveautés et améliorations, " "mais elles peuvent être un peu moins stables." msgid "Updates" msgstr "Mises à jour" msgid "" "These settings affect internal formatting of PO files. Adjust them if you " "have specific requirements e.g. because of version control." msgstr "" "Ces paramètres modifient la mise en forme interne des fichiers PO. Ajustez-" "les si vous avez des exigences spécifiques, par exemple en raison du " "contrôle de version." msgid "Line endings:" msgstr "Fins de ligne :" msgid "Unix (recommended)" msgstr "Unix (recommandé)" msgid "Windows" msgstr "Windows" #. TRANSLATORS: Followed by text control for entering number; wraps text at given width msgid "Wrap at:" msgstr "Passer à la ligne à :" msgid "Preserve formatting of existing files" msgstr "Préserver le formatage des fichiers existants" msgid "Advanced" msgstr "Avancés" msgid "Pre-translating…" msgstr "Pré-traduction…" #, c-format msgid "Pre-translated %u string" msgid_plural "Pre-translated %u strings" msgstr[0] "%u chaîne pré-traduite" msgstr[1] "%u chaînes pré-traduites" #. TRANSLATORS: This is a somewhat common term describing the action where #. you apply the translation memory and/or machine translation to all of the #. strings you're translating as the first step, followed by correcting, #. improving etc., i.e. actually translating the strings. This may be tricky #. to express in other languages as simply as in English, but please try to #. keep it similarly concise. Please try to avoid, if possible, describing it #. as "auto-translation" and similar, because such terminology would mislead #. some users into thinking it's all that needs to be done (spoken from #. experience). "Pre-translate" nicely expresses that it's only the step done #. *before* actual translation. msgid "Pre-translate" msgstr "Pré-traduction" msgid "Only fill in exact matches" msgstr "Remplir uniquement les correspondances exactes" msgid "" "By default, inaccurate results are filled in as well and marked as needing " "work. Check this option to only include accurate matches." msgstr "" "Par défaut, les résultats approximatifs sont inclus et marqués comme " "nécessitant une révision. Cochez cette option pour inclure uniquement les " "correspondances exactes." msgid "Don’t mark exact matches as needing work" msgstr "Ne pas marquer les correspondances exactes comme à réviser" msgid "" "Only enable if you trust the quality of your TM. By default, all matches " "from the TM are marked as needing work and should be reviewed before use." msgstr "" "À activer uniquement si vous êtes sûr de la qualité de votre MT. Par défaut, " "toutes les correspondances de la MT sont marquées comme à réviser et doivent " "être examinées avant utilisation." msgid "" "Pre-translation automatically finds exact or fuzzy matches for untranslated " "strings in the translation memory and fills in their translations." msgstr "" "La pré-traduction automatique trouve dans la MT des correspondances exactes " "ou approximatives pour les entrées non traduites afin de les remplir." #, c-format msgid "%d entry was pre-translated." msgid_plural "%d entries were pre-translated." msgstr[0] "%d entrée a été pré-traduite." msgstr[1] "%d entrées ont été pré-traduites." msgid "" "The translations were marked as needing work, because they may be " "inaccurate. You should review them for correctness." msgstr "" "Les traductions ont été marquées comme à réviser car il est possible quelles " "soient imprécises. Vous devriez vérifier leur exactitude." msgid "No entries could be pre-translated." msgstr "Aucune entrée n’a pu être pré-traduite." msgid "" "The TM doesn’t contain any strings similar to the content of this file. It " "is only effective for semi-automatic translations after Poedit learns enough " "from files that you translated manually." msgstr "" "La MT ne contient aucune chaîne identique au contenu de ce fichier. C'est " "effectif uniquement pour des traductions semi-automatiques après que Poedit " "ait appris suffisamment de fichiers traduits manuellement." msgid "" "Drag and Drop Folders Here\n" "\n" "or use the + button" msgstr "" "Glissez-déposez les dossiers ici\n" "\n" "ou utilisez le bouton +" msgid "" "Drag and drop folders here\n" "\n" "or use the + button" msgstr "" "Glissez-déposez les dossiers ici\n" "\n" "ou utilisez le bouton +" msgid "Add Folders…" msgstr "Ajouter des dossiers…" msgid "Add folders…" msgstr "Ajouter des dossiers…" msgid "Add Files…" msgstr "Ajouter des fichiers…" msgid "Add files…" msgstr "Ajouter des fichiers…" msgid "Add Wildcard…" msgstr "Ajouter un caractère générique…" msgid "Add wildcard…" msgstr "Ajouter un caractère générique…" msgid "Paths" msgstr "Chemins" msgid "Excluded paths" msgstr "Chemins exclus" msgid "Advanced extraction settings" msgstr "Réglages avancés d’extraction" msgid "Extract notes for translators from:" msgstr "Extrait les notes pour les traducteurs à partir de :" msgid "Comments prefixed with:" msgstr "Les commentaires sont précédés par :" msgid "All comments" msgstr "Tous les commentaires" msgid "Additional xgettext flags:" msgstr "Indicateurs additionnels xgettext :" msgid "Additional keywords" msgstr "Mots clés supplémentaires" msgid "Name of the project the translation is for" msgstr "Nom du projet de traduction" msgid "Team name and email address or URL" msgstr "Nom de l’équipe et adresse e-mail ou URL" msgid "e.g. nplurals=2; plural=(n > 1);" msgstr "p. ex. nplurals=2; plural=(n > 1);" msgid "UTF-8 (recommended)" msgstr "UTF-8 (recommandé)" msgid "Please save the file first. This section cannot be edited until then." msgstr "" "Veuillez d’abord enregistrer le fichier. Cette section ne peut pas être " "modifiée avant." msgid "Not all plural forms are translated." msgstr "Toutes les formes plurielles ne sont pas traduites." msgid "The translation should start as a sentence." msgstr "La traduction devrait commencer comme une phrase." msgid "The translation should start with a lowercase character." msgstr "La traduction devrait commencer par un caractère en minuscule." msgid "The translation doesn’t start with a space." msgstr "La traduction ne commence pas par une espace." msgid "The translation starts with a space, but the source text doesn’t." msgstr "La traduction commence par une espace, mais pas le texte source." msgid "The translation is missing a newline at the end." msgstr "Il manque un saut de ligne à la fin de la traduction." msgid "The translation ends with a newline, but the source text doesn’t." msgstr "" "La traduction se termine par un saut de ligne, mais pas le texte source." msgid "The translation is missing a space at the end." msgstr "Il manque une espace à la fin de la traduction." msgid "The translation ends with a space, but the source text doesn’t." msgstr "La traduction se termine par une espace, mais pas le texte source." #, c-format msgid "The translation should end with “%s”." msgstr "La traduction devrait se terminer par ”%s”." #, c-format msgid "The translation should not end with “%s”." msgstr "La traduction ne devrait pas se terminer par ”%s”." #, c-format msgid "The translation ends with “%s”, but the source text ends with “%s”." msgstr "" "La traduction se termine par ”%s”, mais le texte source se termine par ”%s”." msgid "Comment:" msgstr "Commentaire :" msgid "OK" msgstr "OK" msgid "C&lear" msgstr "&Effacer" msgid "Clear the comment" msgstr "Effacer le commentaire" msgid "New" msgstr "Nouveau" msgid "Create new translations project" msgstr "Créer un nouveau projet de traduction" msgid "Edit" msgstr "Modifier" msgid "Edit the project" msgstr "Modifier le projet" msgid "Delete the project" msgstr "Supprimer le projet" msgid "Update all" msgstr "Tout mettre à jour" msgid "Update all catalogs in the project" msgstr "Mettre à jour tous les catalogues du projet" msgid "Edit project" msgstr "Modifier le projet" msgid "Project name:" msgstr "Nom du projet :" msgid "Browse" msgstr "Parcourir" msgid "Add directory to the list" msgstr "Ajouter un répertoire à la liste" msgid "&New…" msgstr "&Nouveau…" msgid "New from &POT/PO file…" msgstr "Nouveau à partir d’un fichier &POT/PO…" msgid "New From &POT/PO File…" msgstr "Nouveau à partir d’un fichier &POT/PO…" msgid "&Open…" msgstr "&Ouvrir…" msgid "Open Recent" msgstr "Récemment ouverts" msgid "Open from Crowdin…" msgstr "Ouvrir à partir de Crowdin…" msgid "Open From Crowdin…" msgstr "Ouvrir à partir de Crowdin…" msgid "&Close" msgstr "&Fermer" msgid "&Save" msgstr "&Enregistrer" msgid "Save &as…" msgstr "Enregistrer &sous…" msgid "Save &As…" msgstr "Enregistrer &sous…" msgid "Compile to MO…" msgstr "Compiler vers MO…" msgid "E&xport as HTML…" msgstr "E&xporter en HTML…" msgid "Check for updates…" msgstr "Rechercher des mises à jour…" msgid "&Preferences…" msgstr "&Préférences…" msgid "Catalogs &manager" msgstr "Gestion des &catalogues" msgid "Catalogs &Manager" msgstr "Gestionnaire des &catalogues" msgid "E&xit" msgstr "&Quitter" msgid "Quit" msgstr "Quitter" msgid "Copy from singular" msgstr "Copier du singulier" msgid "Copy From Singular" msgstr "Copier du singulier" msgid "Translation needs &work" msgstr "Traduction nécessitant une &révision" msgid "Translation Needs &Work" msgstr "Traduction nécessitant une &révision" msgid "Edit &comment" msgstr "Modifier le &commentaire" msgid "Edit &Comment" msgstr "Modifier le &commentaire" msgid "Suggestions" msgstr "Suggestions" msgid "&Find…" msgstr "&Rechercher…" msgid "Replace…" msgstr "Remplacer…" msgid "Find next" msgstr "Rechercher le suivant" msgid "Find previous" msgstr "Rechercher le précédent" msgid "Find and Replace…" msgstr "Rechercher et remplacer…" msgid "Find Next" msgstr "Rechercher le suivant" msgid "Find Previous" msgstr "Chercher le précédent" msgid "&Preferences" msgstr "&Préférences" msgid "Display entry &IDs" msgstr "Afficher les &IDs des entrées" msgid "Display Entry &IDs" msgstr "Afficher les &IDs des entrées" msgid "Sort by &file order" msgstr "Trier par &fichier" msgid "Sort by &File Order" msgstr "Trier par &fichier" msgid "Sort by &source" msgstr "Trier par &source" msgid "Sort by &Source" msgstr "Trier par &source" msgid "Sort by &translation" msgstr "Trier par &traduction" msgid "Sort by &Translation" msgstr "Trier par &traduction" msgid "&Group by context" msgstr "&Grouper par contexte" msgid "&Group By Context" msgstr "&Grouper par contexte" msgid "Entries with errors first" msgstr "Entrées avec erreurs en premier" msgid "Entries with Errors First" msgstr "Entrées avec erreurs en premier" msgid "&Untranslated entries first" msgstr "Entrées &non traduites en premier" msgid "&Untranslated Entries First" msgstr "Entrées &non traduites en premier" msgid "&Show references" msgstr "Voir les référence&s" msgid "&Show References" msgstr "Voir les référence&s" msgid "Show sidebar" msgstr "Afficher le panneau latéral" msgid "Show status bar" msgstr "Afficher la barre d’état" msgid "C&atalog" msgstr "C&atalogue" msgid "&Update from sources" msgstr "Mettre à jo&ur depuis les sources" msgid "&Update from Sources" msgstr "Mettre à jo&ur depuis les sources" msgid "Update from &POT file…" msgstr "Mettre à jour depuis un fichier &POT…" msgid "Update from &POT File…" msgstr "Mettre à jour depuis un fichier &POT…" msgid "Sync with Crowdin" msgstr "Synchroniser avec Crowdin" msgid "Pre-&translate…" msgstr "Pré-&traduire…" msgid "&Purge deleted translations" msgstr "&Purger les traductions supprimées" msgid "&Purge Deleted Translations" msgstr "&Purger les traductions supprimées" msgid "&Validate translations" msgstr "&Valider les traductions" msgid "&Validate Translations" msgstr "&Valider les traductions" msgid "&Properties…" msgstr "&Propriétés…" msgid "&Done and next" msgstr "&Appliquer et continuer" msgid "&Done and Next" msgstr "&Appliquer et continuer" msgid "&Previous translation" msgstr "Traduction &précédente" msgid "&Previous Translation" msgstr "Traduction &précédente" msgid "&Next translation" msgstr "Traduction suiva&nte" msgid "&Next Translation" msgstr "Traduction suiva&nte" msgid "P&revious unfinished" msgstr "Incomplet p&récédent" msgid "P&revious Unfinished" msgstr "Incomplet p&récédent" msgid "Ne&xt unfinished" msgstr "Incomplet suivan&t" msgid "Ne&xt Unfinished" msgstr "Incomplet suivan&t" msgid "Previous plural form" msgstr "Forme plurielle précédente" msgid "Previous Plural Form" msgstr "Forme plurielle précédente" msgid "Next plural form" msgstr "Forme plurielle suivante" msgid "Next Plural Form" msgstr "Forme plurielle suivante" msgid "&Online help" msgstr "&Aide en ligne" msgid "&Online Help" msgstr "&Aide en ligne" msgid "&GNU gettext manual" msgstr "Manuel de &GNU gettext" msgid "&GNU gettext Manual" msgstr "Manuel de &GNU gettext" msgid "&About Poedit" msgstr "&À propos de Poedit" msgid "&About" msgstr "&À propos" msgid "Extractor setup" msgstr "Installation de l’extracteur" msgid "List of extensions separated by semicolons (e.g. *.cpp;*.h):" msgstr "" "Liste des extensions séparées par des points-virgules (ex. *.cpp;*.h) :" msgid "Invocation:" msgstr "Appel :" msgid "Command to extract translations:" msgstr "Commande pour extraire des traductions :" msgid "" "This is the command used to launch the extractor.\n" "%o expands to the name of output file, %K to list\n" "of keywords, %F to list of input files,\n" "%C to charset flag (see below)." msgstr "" "Cette commande est utilisée pour lancer l’extracteur.\n" "%o pour étendre au nom du fichier de sortie,\n" "%K pour lister les mots-clés,\n" "%F pour lister les fichiers d’entrée,\n" "%C pour le jeu de caractères (voir ci-dessous)." msgid "An item in keywords list:" msgstr "Un élément de la liste des mots clés :" msgid "" "This will be attached to the command line once\n" "for each keyword. %k expands to the keyword." msgstr "" "Sera inséré dans la ligne de commande pour chaque\n" "mot-clé.\n" "%k s’étend au mot-clé." msgid "An item in input files list:" msgstr "Un élément de la liste des fichiers d’entrée :" #, c-format msgid "" "This will be attached to the command line once\n" "for each input file. %f expands to the filename." msgstr "" "Sera inséré dans la ligne de commande pour chaque\n" "fichier d’entrée.\n" "%f s’étend au nom du fichier." msgid "Source code charset:" msgstr "Jeu de caractères du code source :" #, c-format msgid "" "This will be attached to the command line\n" "only if source code charset was given. %c expands to charset value." msgstr "" "Sera inséré dans la ligne de commande uniquement\n" "si le code source du jeu de caractères est fourni.\n" "%c s’étend à la valeur du jeu de caractères." msgid "Catalog properties" msgstr "Propriétés du catalogue" msgid "Project name and version:" msgstr "Nom et version du projet :" msgid "Language team:" msgstr "Équipe de langue :" msgid "Plural forms:" msgstr "Formes plurielles :" msgid "Use default rules for this language" msgstr "Utiliser les règles par défaut de cette langue" msgid "Use custom expression" msgstr "Utiliser une expression personnalisée" msgid "Learn about plural forms" msgstr "En savoir plus sur les formes plurielles" msgid "Charset:" msgstr "Jeu de caractères :" msgid "Advanced Extraction Settings…" msgstr "Réglages avancés d’extraction…" msgid "Advanced extraction settings…" msgstr "Réglages avancés d’extraction…" msgid "Translation Properties" msgstr "Propriétés de traduction" msgid "Translation properties" msgstr "Propriétés de traduction" msgid "Sources Paths" msgstr "Chemins des sources" msgid "Sources paths" msgstr "Chemins des sources" msgid "Extract text from source files in the following directories:" msgstr "Extraire le texte des répertoires suivants :" msgid "Base path:" msgstr "Chemin de base :" msgid "Sources Keywords" msgstr "Mots-clés sources" msgid "Sources keywords" msgstr "Mots clés sources" msgid "" "Use these keywords (function names) to recognize translatable strings\n" "in source files:" msgstr "" "Utiliser ces mots-clés (noms de fonctions) pour reconnaître les chaînes\n" "traduisibles dans les fichiers sources :" msgid "Also use default keywords for supported languages" msgstr "" "Utiliser également les mots-clés par défaut pour les langues supportées" msgid "Learn About Gettext Keywords" msgstr "En savoir plus sur les mots-clés de Gettext" msgid "Learn about gettext keywords" msgstr "En savoir plus sur les mots clés gettext" msgid "Update summary" msgstr "Mettre à jour le résumé" msgid "" "These strings were found in the sources but were not in the catalog.\n" "Poedit will add them to the catalog now." msgstr "" "Ces chaînes ont été trouvées dans les sources mais n’existent pas dans le " "catalogue.\n" "Poedit les ajoute maintenant au catalogue." msgid "New strings" msgstr "Nouvelles chaînes" msgid "" "These strings are no longer in the sources.\n" "Poedit will remove them from the catalog now." msgstr "" "Ces chaînes ne sont plus dans les sources.\n" "Poedit les retire maintenant du catalogue." msgid "Obsolete strings" msgstr "Chaînes obsolètes" msgid "(0 new, 0 obsolete)" msgstr "(0 nouvelle, 0 obsolète)" msgid "Open" msgstr "Ouvrir" msgid "Save catalog" msgstr "Enregistrer le catalogue" msgid "Validate" msgstr "Valider" msgid "Check for errors in the translation" msgstr "Vérifier les erreurs dans la traduction" msgid "Update" msgstr "Mettre à jour" msgid "Update catalog - synchronize it with sources" msgstr "Mettre à jour le catalogue - Synchroniser avec les sources" msgid "Sidebar" msgstr "Panneau latéral" msgid "Show or hide the sidebar" msgstr "Afficher ou masquer le panneau latéral" #. TRANSLATORS: "Previous" as in used in the past, now replaced with newer. msgid "Previous source text:" msgstr "Texte source précédent :" msgid "" "The old source text (before it changed during an update) that the now-" "inaccurate translation corresponds to." msgstr "" "L’ancien texte source (avant sa modification lors d’une mise à jour) auquel " "correspond la traduction approximative." msgid "Notes for translators:" msgstr "Notes pour les traducteurs :" msgid "Add comment" msgstr "Ajouter un commentaire" msgid "Add Comment" msgstr "Ajouter un commentaire" msgid "Translation suggestions:" msgstr "Suggestions de traduction :" #. TRANSLATORS: This is shown when no translation suggestions can be found in the TM (Windows). msgid "No matches found" msgstr "Aucune correspondance trouvée" #. TRANSLATORS: This is shown when no translation suggestions can be found in the TM (macOS, Linux). msgid "No Matches Found" msgstr "Aucune correspondance trouvée" msgid "This string was found in Poedit’s translation memory." msgstr "Cette chaîne a été trouvée dans la mémoire de traduction de Poedit." msgid "Cannot create temporary directory." msgstr "Impossible de créer le répertoire temporaire." msgid "Welcome to Poedit" msgstr "Bienvenue dans Poedit" #. TRANSLATORS: This is version information in about dialog, "%s" will be #. version number when used #, c-format msgid "Version %s" msgstr "Version %s" msgid "Edit a Translation" msgstr "Modifier une traduction" msgid "Edit a translation" msgstr "Modifier une traduction" msgid "Open an existing PO file and edit the translation." msgstr "Ouvrir un fichier PO existant et modifier la traduction." msgid "" "Take an existing PO file or POT template and create a new translation from " "it." msgstr "" "Créer une nouvelle traduction à partir d’un fichier PO ou d’un modèle POT " "existant." msgid "Collaborate on a Translation with Others" msgstr "Collaborer à une traduction avec d’autres" msgid "Collaborate on a translation with others" msgstr "Collaborer à une traduction avec d’autres" msgid "" "Download a file from Crowdin project, translate and sync your changes back." msgstr "" "Télécharger un fichier d’un projet Crowdin, traduire et synchroniser vos " "modifications." msgid "What is Crowdin?" msgstr "Qu’est-ce que Crowdin ?" msgid "There are no translations. That’s unusual." msgstr "Il n’y a aucune traduction. Ce n’est pas courant." msgid "" "Translatable entries aren’t added manually in the Gettext system, but are " "automatically extracted\n" "from source code. This way, they stay up to date and accurate.\n" "Translators typically use PO template files (POTs) prepared for them by the " "developer." msgstr "" "Les entrées traduisibles ne sont pas ajoutées manuellement au système " "Gettext, mais sont extraites automatiquement\n" "à partir du code source. De cette façon, elles restent à jour et exactes.\n" "Les traducteurs utilisent généralement des fichiers de modèle PO (POTs) " "préparés par le développeur." msgid "(Learn more about GNU gettext)" msgstr "(En savoir plus sur GNU gettext)" msgid "The simplest way to fill this catalog is to update it from a POT:" msgstr "" "La façon la plus simple de remplir ce catalogue est de le mettre à jour " "depuis un fichier POT :" msgid "Update from POT" msgstr "Mettre à jour depuis un POT" msgid "Take translatable strings from an existing POT template." msgstr "Utiliser les chaînes traduisibles d'un modèle POT existant." msgid "" "You can also extract translatable strings directly from the source code:" msgstr "" "Vous pouvez également extraire les chaînes traduisibles directement à partir " "du code source :" msgid "Extract from sources" msgstr "Extraire depuis les sources" msgid "Configure source code extraction in Properties." msgstr "Configurer l’extraction du code source dans les Propriétés." msgid "Sync" msgstr "Synchroniser" msgid "Synchronize the translation with Crowdin" msgstr "Synchroniser la traduction avec Crowdin" #. TRANSLATORS: This is titlebar of about dialog, "%s" is application name #. ("Poedit" here, but please use "%s") #, c-format msgid "About %s" msgstr "À propos de %s" #. TRANSLATORS: Title of the preferences window on Windows and Linux. "%s" is replaced with "Poedit" when running. #, c-format msgid "%s Preferences" msgstr "Préférences de %s" #. TRANSLATORS: macOS item in app menu msgid "Services" msgstr "Services" #. TRANSLATORS: macOS item in app menu, %s is replaced with "Poedit" #, c-format msgid "Hide %s" msgstr "Masquer %s" #. TRANSLATORS: macOS item in app menu msgid "Hide Others" msgstr "Masquer le reste" #. TRANSLATORS: macOS item in app menu msgid "Show All" msgstr "Tout afficher" #. TRANSLATORS: macOS item in app menu, %s is replaced with "Poedit" #, c-format msgid "Quit %s" msgstr "Quitter %s" #. TRANSLATORS: macOS item in app menu msgid "Preferences…" msgstr "Préférences…" msgid "Preferences..." msgstr "Préférences..." #. TRANSLATORS: Title of a category in Windows task menu (right-click icon in taskbar) msgid "Recent" msgstr "Récent" #. TRANSLATORS: Title of a category in Windows task menu (right-click icon in taskbar) msgid "Frequent" msgstr "Fréquent" msgid "&Apply" msgstr "&Appliquer" msgid "Apply" msgstr "Appliquer" msgid "&Back" msgstr "Retour" msgid "Back" msgstr "Retour" msgid "&Cancel" msgstr "Annuler" msgid "&Clear" msgstr "Effa&cer" msgid "Clear" msgstr "Effacer" msgid "Copy" msgstr "Copier" msgid "Cu&t" msgstr "Couper" msgid "Cut" msgstr "Couper" msgid "&Delete" msgstr "&Supprimer" msgid "&Quit" msgstr "&Quitter" msgid "File" msgstr "Fichier" msgid "Help" msgstr "Aide" msgid "&New" msgstr "&Nouveau" msgid "&No" msgstr "&Non" msgid "No" msgstr "Non" msgid "&OK" msgstr "&OK" msgid "Open…" msgstr "Ouvrir…" msgid "&Open..." msgstr "&Ouvrir..." msgid "Open..." msgstr "Ouvrir..." msgid "&Paste" msgstr "&Coller" msgid "Paste" msgstr "Coller" msgid "Preferences" msgstr "Préférences" msgid "&Redo" msgstr "&Rétablir" msgid "Refresh" msgstr "Actualiser" msgid "&Save as" msgstr "&Enregistrer sous" msgid "Save as" msgstr "Enregistrer sous" msgid "Select &All" msgstr "Tout sélectionner" msgid "Select All" msgstr "Tout sélectionner" msgid "&Undo" msgstr "Ann&uler" msgid "&Yes" msgstr "Oui" msgid "Yes" msgstr "Oui" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Shift+" msgstr "Maj+" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Enter" msgstr "Entrée" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Up" msgstr "Haut" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Down" msgstr "Bas" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Left" msgstr "Gauche" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Right" msgstr "Droite" #. TRANSLATORS: Keyboard shortcut, must correspond to translation of "Ctrl+" msgid "ctrl" msgstr "ctrl" #. TRANSLATORS: Keyboard shortcut, must correspond to translation of "Alt+" msgid "alt" msgstr "alt" #. TRANSLATORS: Keyboard shortcut, must correspond to translation of "Shift+" msgid "shift" msgstr "maj" poedit-2.0.6/locales/ga.mo0000664000372000037200000014550513230132076012301 00000000000000P%1 1 11<11J 2gW2 22 22 222 3333%3+333B3Q3W3]3f3z333333333333 3 44 4)4 04=4M4c4y44444444445 5(5D5Y5n55555555 6 '6:36:n6 666 6 666 6 7 #707?7O7c7~77777 71898'>8f88 8878689)=9g9 l9]w99A9I*:t:{:; ;;";:; U;`;.h;;;;;;;;<*<F<#[<<<<<<<<(<(=7= R=s=|== ==/= = >>#>9>L>b>2>>>>> ?)???????@@@ 2@?@R@Ee@"@?@ AA*.A YAfAyAK~A"A5A#B)BHAH HHI 'IHI PI ]IiI"nI;I(IIJ&J 5J ?JMJjJ ~JJJJJ JJK:K PK<^K.KKKKLL*%LPLVLgL xL LLJMNMgM MMMMM#MM'M$N7DN$|N%NNNNNNOOOO O2O P#P9PNP]PlPtP|PPPPPPPPQQQnQERZR>aR RRRR@RS-T|!`|| | ||||| |#|#}<}U}n}}}}}#}},~<~ [~Ii~I~ ~ 6Kcx!'@VoT92RqvEḾ$@?yO)Jy ă΃-̈́ CBZtԅ + Abx؆"݆"#%:` p!Eׇ &1F]r$K(#?"[~(.5Qm)sʊ,ي,j3'RƋ 'L< Y27H !ˍ & Bc{  9юc /o/ϏAS"#)ܐ *>.YA%ʑ /'9W%;&n;ē̓.B^tŔ ۔ ) BO Wbw! ו"#– (< C%N.t(̗ &5Sk|#ܘ#?,l<|= 0 L7Z&&!%Eet G 1&7E^ &ŝ -1'!(EZ@u ßޟ ! +5>%C%iؠ pzwi{HʢܢFLH\Ѥu +;-Kyզ  # / 9 D N Zdt 0 ݧ+Ҩ 8HW1h ܩ 0!Km&Ǫ0 0= M[k ѫ&"Ad""t Y zƭέ(=.lĮ ڮ (*@kz"'Ӱ51I48~+0H yNbVjDsgϵM7+JFWC44з*:=&1d4P˺-[i>VfjW(YھD<ɿvvx "  (C_v- 1?!H jw  5 *J\ r]' !1S!n,/kY x +4= ERcPgK;@<Gg,!1&S-z/ !#D}],6 9BW6tC3H>C'# )h?*Kq#-0^aG2zFYblx&2LADZ.EwPi=Ab[kv @4uh~ uL@|pnf.nTN? QI2:qOKcajd F!p ]U>T+rXi=J%Vxz51^s4 NH/F"8/XJ`om #UwQk :Gs$ 8jL!~I1,(<D-9B>|;$H(E?g<y!dYgIo \ <eN+rM5&cM5 :"K-A+EmZ7C"603B $%RfRVeyOG*S@ M,4}_{O%W91J)S[`' 7)v &;*{(l_.03=\7P8/t';P (modified) (unsaved)%d entry%d entries%d entry was pre-translated.%d entries were pre-translated.%d error%d errors%d issue with the translation found.%d issues with the translation found.%i line of file “%s” was not loaded correctly.%i lines of file “%s” were not loaded correctly.%s Format%s Preferences%s format&About&About Poedit&Apply&Back&Bookmarks&Cancel&Clear&Close&Copy&Delete&Done and Next&Done and next&Edit&File&Find…&GNU gettext Manual&GNU gettext manual&Go&Group By Context&Group by context&Help&New&New…&Next >&Next Translation&Next translation&No&OK&Online Help&Online help&Open...&Open…&Paste&Preferences&Preferences…&Previous Translation&Previous translation&Properties…&Purge Deleted Translations&Purge deleted translations&Quit&Redo&Replace&Save&Save as&Show References&Show references&Undo&Untranslated Entries First&Untranslated entries first&Update from Sources&Update from sources&Validate Translations&Validate translations&View&Yes(0 new, 0 obsolete)(Learn more about GNU gettext)(New: %i, obsolete: %i)(Use default language)(requires Windows 8 or newer)< &PreviousDrag and Drop Folders Here or use the + buttonDrag and drop folders here or use the + buttonAbout %sAccountsAdd CommentAdd Files…Add Folders…Add Wildcard…Add commentAdd directory to the listAdd files…Add folders…Add wildcard…Additional keywordsAdditional xgettext flags:AdvancedAdvanced Extraction Settings…Advanced extraction settingsAdvanced extraction settings…All Translation FilesAll commentsAlso use default keywords for supported languagesAlt+Always change focus to text input fieldAn item in input files list:An item in keywords list:AppearanceApplyAre you sure you want to delete the “%s” extractor?Are you sure you want to reset the translation memory?Automatically check for updatesAutomatically compile MO file when savingBackBase path:Beta versions contain the latest new features and improvements, but may be a bit less stable.Bring All to FrontBroken catalog file: plural form msgstr used without msgid_pluralBroken catalog file: singular form msgstr used together with msgid_pluralBrowseBy default, inaccurate results are filled in as well and marked as needing work. Check this option to only include accurate matches.C&atalogC&learCancelCannot create temporary directory.Cannot execute program: %sCapitalizeCatalogCatalog modified. Do you want to save changes?Catalog propertiesCatalogs &ManagerCatalogs &managerCatalogs ManagerChange UI languageCharset:Check Document NowCheck Grammar With SpellingCheck Spelling While TypingCheck for Updates…Check for errors in the translationCheck for updates…Check spellingClearClear TranslationClear the commentClear translationCloseCollaborate on a Translation with OthersCollaborate on a translation with othersCollecting source files…Command to extract translations:Comment:Comments prefixed with:Compile to MO…Compile to…Compiled Translation FilesConfigure source code extraction in Properties.ConfirmationCopyCopy From SingularCopy from Source TextCopy from singularCopy from source textCorrect Spelling AutomaticallyCouldn’t load file %s, it is probably corrupted.Couldn’t save file %s.Create New TranslationCreate new translationCreate new translations projectCrowdin errorCrowdin is an online localization management platform and collaborative translation tool. Poedit can seamlessly sync PO files managed at Crowdin.Ctrl+Cu&tCustom Extractors:Custom extractors:CutDatabase size on disk:DeleteDelete extractorDelete the projectDirectories:Display Entry &IDsDisplay entry &IDsDo you really want to do mass update of all catalogs in this project?Do you want to delete the project?Do you want to remove all translations that are no longer used?Don’t SaveDon’t Show AgainDon’t mark exact matches as needing workDon’t saveDon’t show againDownDownload a file from Crowdin project, translate and sync your changes back.Downloading latest translations…Downloading translations is disabled in this project.E&xitE&xport as HTML…EditEdit &CommentEdit &commentEdit CommentEdit a TranslationEdit a translationEdit commentEdit projectEdit the projectEditingEdit…Email:EnterEnter Full ScreenEntries in the catalog are probably incorrect.Entries in this catalog have different plural forms count from what catalog’s Plural-Forms header saysEntries with Errors FirstEntries with errors firstEntries with errors were marked in red in the list. Details of the error will be shown when you select such an entry.Error loading message catalog file “%s”.Error opening fileError opening file %s!Error saving catalogErrorsEverythingExcluded pathsExport as…Extract from sourcesExtract notes for translators from:Extract text from source files in the following directories:Extracting translatable strings…Extractor setupExtractorsFailed command: %sFailed to communicate with Poedit process.Failed to load extracted catalog.Failed to merge gettext catalogs.Failed to update translation memory: %sFileFile “%s” doesn’t exist.File “%s” is not a message catalog.File “%s” is read-only and cannot be saved. Please save it under different name.File:Finalizing…FindFind NextFind PreviousFind and Replace…Find in commentsFind in source textsFind in translationsFind nextFind previousFix LanguageFix languageFix the HeaderFix the headerForm %iFrequentGNU gettextGeneralGo to Bookmark %iGo to bookmark %iHTML FilesHelpHide %sHide OthersHide SidebarHide Status BarHide this notification messageIDIf you continue with purging, all translations marked as deleted will be permanently removed. You will have to translate them again if they are added back in the future.Ignore caseImporting translations…Include beta versionsInformation about the translatorInstallInvalid fileInvocation:KeepLanguage Code or Name (e.g. en_GB)Language of the translation is the same as source language.Language of the translation isn’t set.Language of the translation:Language selectionLanguage team:Language:Last modifiedLearn About Gettext KeywordsLearn From Files…Learn MoreLearn More About CrowdinLearn about gettext keywordsLearn about plural formsLearn from files…Learn moreLearn more about CrowdinLeftLine %d of file “%s” is corrupted (not valid %s data).Line endings:List of extensions separated by semicolons (e.g. *.cpp;*.h):MO files can’t be directly edited in Poedit.Make Lower CaseMake Upper CaseMalformed header: “%s”Merging differences…MinimizeName of the project the translation is forName:Ne&xt UnfinishedNe&xt unfinishedNeeds WorkNeeds workNever let the list of strings take focus. If enabled, you must use Ctrl-arrows for keyboard navigation but you can also type text immediately, without having to press Tab to change focus.NewNew From &POT/PO File…New from &POT/PO file…New stringsNext Plural FormNext plural formNoNo Matches FoundNo entries could be pre-translated.No matches foundNo problems with the translation found.No references for the selected item.No translation projects listed in your Crowdin account.Not all plural forms are translated.Not authorized, please sign in again.Notes for translators:OKObsolete stringsOneOnly enable if you trust the quality of your TM. By default, all matches from the TM are marked as needing work and should be reviewed before use.Only fill in exact matchesOpenOpen Crowdin translationOpen From Crowdin…Open RecentOpen an existing PO file and edit the translation.Open catalogOpen catalog templateOpen from Crowdin…Open in EditorOpen in editorOpen...Open…OptionsOtherP&revious UnfinishedP&revious unfinishedPO TranslationPO Translation FilesPOT Translation TemplatesPOT files are only templates and don’t contain any translations themselves. To make a translation, create a new PO file based on the template.PastePaste and Match StylePathsPlease open and edit the corresponding PO file instead. When you save it, the MO file will be updated as well.Please save the file first. This section cannot be edited until then.PluralPlural forms expression used by the catalog is unusual for %s.Plural forms:Plural:PoeditPoedit - Catalogs managerPoedit automatically fixed invalid content in the file “%s”.Poedit can attempt to fill in new entries from only previous translations in the file or from your entire translation memory. Using the TM won’t be very effective if it’s near-empty, but it will get better as you add more translations to it.Poedit is an easy to use translations editor.Pre-&translate…Pre-translatePre-translatedPre-translated %u stringPre-translated %u stringsPre-translating…Pre-translation automatically finds exact or fuzzy matches for untranslated strings in the translation memory and fills in their translations.PreferencesPreferences...Preferences…Preserve formatting of existing filesPrevious Plural FormPrevious plural formPrevious source text:Project name and version:Project name:Project:PurgePurge deleted translationsQuitQuit %sRecentRedoReferences:RefreshRemaining: %dReplaceReplace &AllReplace &allReplacement stringReplace…Required header Plural-Forms is missing.ResetReset translation memoryResetting the translation memory will irrevocably delete all stored translations from it. You can’t undo this operation.ReviewRightSaveSave &As…Save &as…Save asSave as…Save catalogSave changesSelect &AllSelect AllSelect directorySelect translation files to importSelect your preferred languageServicesSet Bookmark %iSet LanguageSet bookmark %iSet languageShift+Show AllShow SidebarShow Spelling and GrammarShow Status BarShow SubstitutionsShow or hide the sidebarShow sidebarShow status barShow summary after catalog updateSidebarSign InSign OutSign inSign in to CrowdinSign outSigned in as:SingularSingular:Smart Copy/PasteSmart DashesSmart LinksSmart QuotesSort by &File OrderSort by &SourceSort by &TranslationSort by &file orderSort by &sourceSort by &translationSource code charset:Source code extractors are used to find translatable strings in the source code files and extract them so that they can be translated.Source code not available.Source fileSource file occurrence:Source textSource text — %sSource text:Sources KeywordsSources PathsSources keywordsSources pathsSpeechSpellchecking is disabled, because the dictionary for %s isn’t installed.Spelling and GrammarStart SpeakingStop SpeakingStored translations:String to findSubstitutionsSuggestionsSuggestions are not available if the translation language is not set correctly. Other features, such as plural forms, may be affected as well.Supports all programming languages recognized by GNU gettext tools (PHP, C/C++, C#, Perl, Python, Java, JavaScript and others).SyncSync with CrowdinSynchronize the translation with CrowdinSyncingSyncing errorSyncing with %s failed.Syncing with %s…Syncing with Crowdin failed.Syntax error in Plural-Forms header ("%s").TMTake an existing PO file or POT template and create a new translation from it.Take translatable strings from an existing POT template.Team name and email address or URLText ReplacementThe TM doesn’t contain any strings similar to the content of this file. It is only effective for semi-automatic translations after Poedit learns enough from files that you translated manually.The catalog couldn’t be saved in “%s” charset as specified in catalog settings. It was saved in UTF-8 instead and the setting was modified accordingly.The file cannot be compiled into the MO format and used.The file cannot be opened.The file contained duplicate items, which is not allowed in PO files and would prevent the file from being used. Poedit fixed the issue, but you should review translations of any items marked as needing work and correct them if necessary.The file may be either corrupted or in a format not recognized by Poedit.The file was compiled into the MO format, but it will probably not work correctly.The file was saved safely and compiled into the MO format, but it will probably not work correctly.The file was saved safely, but it cannot be compiled into the MO format and used.The file was saved safely.The old source text (before it changed during an update) that the now-inaccurate translation corresponds to.The simplest way to fill this catalog is to update it from a POT:The translation doesn’t start with a space.The translation ends with a newline, but the source text doesn’t.The translation ends with a space, but the source text doesn’t.The translation ends with “%s”, but the source text ends with “%s”.The translation is missing a newline at the end.The translation is missing a space at the end.The translation is ready for use, but %d entry is not translated yet.The translation is ready for use, but %d entries are not translated yet.The translation is ready for use.The translation should end with “%s”.The translation should not end with “%s”.The translation should start as a sentence.The translation should start with a lowercase character.The translation starts with a space, but the source text doesn’t.The translations were marked as needing work, because they may be inaccurate. You should review them for correctness.There are no translations. That’s unusual.There was a problem formatting the file nicely (but it was saved all right).There were errors when loading the catalog. Some data may be missing or corrupted as the result.These settings affect internal formatting of PO files. Adjust them if you have specific requirements e.g. because of version control.These strings are no longer in the sources. Poedit will remove them from the catalog now.These strings were found in the sources but were not in the catalog. Poedit will add them to the catalog now.This catalog has entries with plural forms, but doesn’t have Plural-Forms header configured.This file can only be edited in Crowdin’s web interface.This is the command used to launch the extractor. %o expands to the name of output file, %K to list of keywords, %F to list of input files, %C to charset flag (see below).This project has no files that can be translated in Poedit.This string was found in Poedit’s translation memory.This will be attached to the command line only if source code charset was given. %c expands to charset value.This will be attached to the command line once for each input file. %f expands to the filename.This will be attached to the command line once for each keyword. %k expands to the keyword.TotalTransformationsTranslatable entries aren’t added manually in the Gettext system, but are automatically extracted from source code. This way, they stay up to date and accurate. Translators typically use PO template files (POTs) prepared for them by the developer.Translated: %d of %d (%d %%)Translation LanguageTranslation MemoryTranslation Needs &WorkTranslation PropertiesTranslation needs &workTranslation propertiesTranslation suggestions:Translation — %sTranslation:Translations couldn’t be updated from the source code, because no code was found in the location specified in the catalog’s Properties.TwoUTF-8 (recommended)UndoUnhandled exception occurred: %sUnix (recommended)UntransUpUpdateUpdate allUpdate all catalogs in the projectUpdate catalog - synchronize it with sourcesUpdate from &POT File…Update from &POT file…Update from POTUpdate summaryUpdatesUpdating catalogUpdating failedUpdating the catalog failed. Click on 'Details >>' for details.Updating user information…Uploading translations…Use custom expressionUse custom list font:Use custom text fields font:Use default rules for this languageUse these keywords (function names) to recognize translatable strings in source files:Use translation memoryValidateValidation resultsVersion %sWaiting for authentication…Welcome to PoeditWhat is Crowdin?When updating from sourcesWhole words onlyWindowWindowsWrap aroundWrap at:YesYou can also extract translatable strings directly from the source code:You can’t drop more than one file on Poedit window.You must restart Poedit for this change to take effect.Your NameYour changes will be lost if you don’t save them.Your name and email address are only used to set the Last-Translator header of GNU gettext files.ZeroZoomaltctrldon’t delete temporary files (for debugging)e.g. nplurals=2; plural=(n > 1);fuzzy match within the filego to item at given line numberhandle a poedit:// URIpre-translate from TMshiftunknown languageyour_email@example.com“%s” is not a valid POT file.Project-Id-Version: poedit Report-Msgid-Bugs-To: help@poedit.net POT-Creation-Date: 2017-12-05 15:52+0100 PO-Revision-Date: 2017-12-05 09:48-0500 Last-Translator: vslavik Language-Team: Irish Language: ga_IE MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=5; plural=(n==1 ? 0 : n==2 ? 1 : n<7 ? 2 : n<11 ? 3 : 4); X-Generator: crowdin.com X-Crowdin-Project: poedit X-Crowdin-Language: ga-IE X-Crowdin-File: /locales/poedit.pot (mionathraithe) (gan sábháil)%d iontráil%d iontráil%d iontráil%d n-iontráil%d iontráilRinneadh réamhaistriúchán ar %d teaghrán.Rinneadh réamhaistriúchán ar %d theaghrán.Rinneadh réamhaistriúchán ar %d theaghrán.Rinneadh réamhaistriúchán ar %d dteaghrán.Rinneadh réamhaistriúchán ar %d teaghrán.%d earráid%d earráid%d earráid%d n-earráid%d earráidAimsíodh %d fhadhb leis an aistriúchán.Aimsíodh %d fhadhb leis an aistriúchán.Aimsíodh %d fhadhb leis an aistriúchán.Aimsíodh %d bhfadhb leis an aistriúchán.Aimsíodh %d fadhb leis an aistriúchán.Níor luchtaíodh %i líne i gcomhad '%s' mar is ceart.Níor luchtaíodh %i líne i gcomhad '%s' mar is ceart.Níor luchtaíodh %i líne i gcomhad '%s' mar is ceart.Níor luchtaíodh %i líne i gcomhad '%s' mar is ceart.Níor luchtaíodh %i líne i gcomhad '%s' mar is ceart.Formáid %sSainroghanna %sFormáid %s&Maidir Leis&Maidir le Poedit&Cuir i bhFeidhm&Siar&Astail&Cealaigh&Glan&Dún&Cóipeáil&Scrios&Críochnú agus dul ar aghaidh&Críochnú agus dul ar aghaidh&Eagar&Comhad&Aimsigh…Cáipéisí gettext &GNUCáipéisí gettext &GNU&Téigh&Grúpáil de réir Comhthéacs&Grúpáil de réir comhthéacs&Cabhair&Nua&Nua…&Ar Aghaidh >An &Chéad Aistriúchán Eile&An chéad aistriúchán eile&Níl&OKCúnamh &Ar LíneCúnamh &ar líne&Oscail...&Oscail…&Greamaigh&Sainroghanna&Sainroghanna…An tAistriúchán &Roimhe SeoAn t-aistriúchán &roimhe seo&Airíonna…&Glan na hAistriúcháin Scriosta&Glan na haistriúcháin scriostaSc&oir&Athdhéan&Ionadaigh&Cuir i dtaisce&Sábháil mar&Taispeáin Tagairtí&Taispeáin tagairtí&CealaighIontrálacha &gan aistriú ar dtúsIontrálacha &gan aistriú ar dtús&Nuashonraigh ó Foinsí&Nuashonraigh ó foinsí&Bailíochtaigh Aistriúcháin&Bailíochtaigh aistriúcháin&Amharc&Tá(0 nua, 0 as feidhm)(Tuilleadh eolais faoi GNU gettext)(Nua: %i, dulta i léig: %i)(Bain feidhm as an béarla réamhshocraithe)(Windows 8 nó níos déanaí)< &Roimhe SeoTarraing agus Scaoil Fillteáin Anseo nó úsáid an cnaipe +Tarraing agus scaoil fillteáin anseo nó úsáid an cnaipe +Maidir le %sCuntaisCuir nóta tráchta leisCuir Comhaid Leis…Cuir Fillteáin Leis…Cuir Saoróg leis…Cuir nóta tráchta leisCuir comhadlann leis an réimCuir comhaid leis…Cuir fillteáin leis…Cuir saoróg leis…Lorgfhocail sa bhreisBratacha breise xgettext:CastaArdsocruithe Bailithe…Ardsocruithe bailitheArdsocruithe bailithe…Gach Comhad AistriúcháinGach nóta tráchtaBain úsáid as lorgfhocail réamhshocraithe le haghaidh teangacha a dtacaítear leoAlt+Athruigh an sprioc i gcónaí chuig réimse inchur téacsMír i réim na comhaid inchur:Mír i réim na treoirfhocail:CumaCuir i bhFeidhmAn bhfuil tú cinnte gur mhaith leat an bailitheoir "%s" a scriosadh?An bhfuil tú cinnte gur mhaith leat an chuimhne aistriúcháin a athshocrú?Lorg nuashonruithe go huathoibríochTiomsaigh mar chomhad MO go huathoibríoch agus é á shábháilSiarCosán bunaidh:Gheobhaidh tú na gnéithe agus na feabhsúcháin is déanaí sa leagan béite, ach seans nach mbeidh sé chomh cobhsaí.Tabhair Uile Chun TosaighComhad comhaid briste: baineadh feidhm as leagan iolrach mgstr gan msgid_pluralComhad clár briste: baineadh feidhm as leagan uatha mgstr le msgid_pluralSiortaighDe réir réamhshocraithe, úsáidtear torthaí neamhchruinne ón TM agus marcáiltear go bhfuil tuilleadh oibre de dhíth orthu. Cuir tic anseo chun torthaí cruinne amháin a úsáid.C&omhadG&lanCealaighNí féidir comhadlann shealadach a chruthú.Ní féidir an clár a rith: %sCeannlitirClárClár mionathraithe. Ar mhaith leat na hathruithe a chur i dtaisce?Airíonna na catalóige&Bainisteoir na gCatalóg&Bainisteoir clárBainisteoir na gCatalógAthraigh teanga an chomhéadainFoireann litreacha:Seiceáil an Cháipéis AnoisSeiceáil Gramadach agus LitriúSeiceáil Litrithe BheoLorg Nuashonruithe…Lorg botúin sna haistriúcháinLorg nuashonruithe…Seiceáil an litriúGlanGlan an tAistriúchánGlan an nóta tráchtaGlan an t-aistriúchánDúnDéan comhoibriú ar aistriúchánDéan comhoibriú ar aistriúchánFoinsí á mbailiú…Ordú chun aistriúcháin a bhailiú:Nóta tráchta:Réimír roimh nótaí tráchta:Tiomsaigh go MO…Tiomsaigh mar…Comhaid Aistriúcháin TiomsaitheCumraigh an próiseas bailithe teaghrán ó bhunchód sna hAiríonna.DearbhúCóipeáilCóipeáil ón UathaCóipeáil ón FhoinseCóipeáil ón uathaCóipeáil ón fhoinseSeiceáil Litrithe go hUathoibríochNíorbh fhéidir comhad %s a lódáil, is dóigh go bhfuil sé truaillithe.Níorbh fhéidir comhad %s a shábháil.Cruthaigh Aistriúchán NuaCruthaigh aistriúchán nuaCruthaigh togra aistriúcháin nuaEarráid CrowdinIs éard atá in Crowdin ná ardán logánaithe ar líne agus uirlis aistriúcháin. Tá Poedit ábalta comhaid aistriúcháin a shioncronú le Crowdin.Ctrl+Gea&rrBailitheoirí Saincheaptha:Bailitheoirí saincheaptha:GearrMéid an bhunachair sonraí ar an diosca:ScriosScrios an bailitheoirScrios an tograComhadlannaí:Ta&ispeáin aitheantóirí na n-iontrálachaTa&ispeáin aitheantóirí na n-iontrálachaAn bhfuil tú cinnte go dteastaíonn uait nuashonrú ollmhór dos na cláir uile sa togra seo a dhéanamh?An dteastaíonn uait an togra a scrios?An bhfuil fonn ort na haistriúcháin go léir nach bhfuil in úsáid a scriosadh?Ná SábháilNá Taispeáin ArísNá marcáil go bhfuil tuilleadh oibre de dhíth más meaitseáil chruinn éNá sábháilNá taispeáin arísSaighead SíosÍoslódáil comhad ó thionscadal Crowdin, aistrigh é, agus sioncronaigh na hathruithe.Na haistriúcháin is déanaí á n-íosluchtú…Ní féidir aistriúcháin a íosluchtú don togra seo.S&coirEa&spórtáil mar HTML…Déan eagarCuir &Nóta Tráchta in EagarDéan eagar ar an &nóta tráchtaCuir Nóta Tráchta in EagarCuir Aistriúchán in EagarCuir aistriúchán in eagarDéan eagar ar an nóta tráchtaDéan eagar ar an tograDéan eagar ar an tograCur in EagarEagar…Ríomhphost:EnterMód LánscáileáinIs dóigh go bhfuil na hiontrálacha sa chlár mícheart.Ní ionann líon na n-iolraí sa chatalóg seo agus an líon atá sainithe ar an líne Plural-FormsIontrálacha a bhfuil earráidí iontu ar dtúsIontrálacha a bhfuil earráidí iontu ar dtúsMarcáladh earráidí le cló dearg sa liosta. Gheobhaidh tú mionsonraí na hearráide nuair a roghnóidh tú iontráil sa liosta.Tharla botún ag luchtú comhad clár teachtaireachtaí “%s”.Earráid agus an comhad á oscailtTharla botún ag oscailt comhad %s!Tharla botún ag chuir an clár i dtaisceEarráidíGach RudCosáin eisiataEaspórtáil mar…Faigh teaghráin ón chódBailigh nótaí le haghaidh aistritheoirí ó:Faigh téacs ó comhaid fhoinseacha sna comhadlanna seo a leanas:Teaghráin inaistrithe á mbailiú…Socrú an bhailitheoraBailitheoiríOrdú teipthe: %sTheip ar chumarsáid leis an bpróiseas Poedit.Níorbh féidir an chatalóg a baineadh amach a lódáil.Theip ar cláir gettext a chumascú. Níorbh fhéidir an chuimhne aistriúchán a nuashonrú: %sComhadNíl comhad “%s” ann.Ní comhad aistriúcháin é “%s”.Is comhad inléite-amháin é “%s” agus ní féidir é a chur i dtaisce. Cuir i dtaisce é faoi ainm eile.Comhad:Á chríochnú…AimsighAn chéad toradh eileAn toradh roimhe seoAimsigh agus Ionadaigh…Aimsigh sna nótaí tráchtaAimsigh sna foinsíCuardaigh in aistriúcháinAn chéad toradh eileAn toradh roimhe seoAthraigh an TeangaAthraigh an teangaDeisigh an CeanntáscDeisigh an ceanntáscLeagan %iÚsáidte go minicGNU gettextGinearáltaOscail Leabharmharc a %iOscail leabharmharc a %iComhaid HTMLCabhairFolaigh %sFolaigh na cinn eileCuir an Barra Taoibh i bhfolachCuir an Barra Stádais i bhfolachCuir an fógra seo i bhfolachAitheantasMá leanann tú ar aghaidh leis seo, déanfar léirscriosadh buan ar gach aistriúchán atá marcáilte "scriosta". Beidh sé ort iad a aistriú arís má chuirtear ar ais iad amach anseo.Ná bac le cás uachtair/íochtairAistriúcháin á n-iompórtáil…Leaganacha béite san áireamhEolas faoin aistritheoirSuiteáilComhad neamhbhailíGairm:Ná ScriosCód nó Ainm na Teanga (m.sh. ga_IE)Is ionann an bhunteanga agus an sprioctheanga.Níl teanga an aistriúcháin socraithe.Teanga an aistriúcháin:Rogha béarlaFoireann teanga:Béarla:Mionathraithe an uair deirineadh ar anMaidir le Lorgfhocail gettextFoghlaim ó chomhaid…Tuilleadh EolaisTuilleadh eolais faoi CrowdinMaidir le lorgfhocail gettextTuilleadh eolais maidir le hiolraíFoghlaim ó chomhaid…Tuilleadh eolaisTuilleadh eolais faoi CrowdinAr ChléLíne %d i gcomhad '%s' truaillithe (ní sonraí bailí %s é).Deireadh líne:Réim breiseáin scartha le leathstadanna (m.sh. *.cpp;*.h):Ní féidir comhaid MO a chur in eagar go díreach in Poedit.Cás ÍochtairCás UachtairCeanntásc míchumtha: '%s'Difríochtaí á gcumasc…ÍoslaghdaighAinm an tionscadail a mbaineann an t-aistriúchán leisAinm:An &chéad cheann eile gan chríochnúAn &chéad cheann eile gan chríochnúTuilleadh oibre de dhíthTuilleadh oibre de dhíthNá riamh lig don réim teaghráin bheith mar sprioc. Má tá sé chumasaithe, caithfear feidhm a bhaint as na saighdeanna Ctrl le haghaidh an méarchlár a fheidhmiú ach is féidir téacs a chlóscríobh láithreach, gan Tab a bhrúigh chun an sprioc a athrú.NuaCeann nua ó chomhad &POT/PO…Ceann nua ó chomhad &POT/PO…Teaghráin nuaAn Chéad Iolra EileAn chéad iolra eileNílGan TorthaíNíorbh fhéidir réamhaistriúchán a dhéanamh ar theaghrán ar bith.Gan torthaíNíor aimsíodh aon fhadhb leis an aistriúchán.Níl aon tagairt don mhír roghnaithe.Níl aon tionscadail aistriúcháin ceangailte le do chuntas Crowdin.Níl gach foirm iolra aistrithe.Níl cead agat. Logáil isteach arís.Nótaí ar son aistritheoirí:Tá go maithTeaghráin as feidhmAonNá húsáid an rogha seo mura bhfuil an-mhuinín agat as do chuimhne aistriúcháin. De réir réamhshocraithe, marcálfar go bhfuil tuilleadh oibre de dhíth ar gach aistriúchán a thagann ón TM.Ná húsáid ach meaitseálacha cruinneOscailOscail aistriúchán CrowdinOscail ó Crowdin…Oscail Comhaid Le DéanaíOscail comhad PO atá ann agus cuir an t-aistriúchán in eagar.Oscail clárOscail fíoraí an chláirOscail ó Crowdin…Oscail san EagarthóirOscail san eagarthóirOscail...Oscail…RoghannaEileTeagh&rán gan chríochnú roimhe seoTeagh&rán gan chríochnú roimhe seoAistriúchán POComhaid Aistriúcháin POTeimpléid Aistriúcháin POTNíl sna comhaid POT ach teimpléid; níl aon aistriúcháin iontu. Chun aistriúchán a dhéanamh, cruthaigh comhad nua PO, bunaithe ar an teimpléad.GreamaighPaste and Match StyleCosáin:Oscail agus cuir an comhad PO in eagar ina áit sin. Nuair a shábhálfaidh tú é, nuashonrófar an comhad MO freisin.Sábháil an comhad ar dtús. Ní féidir an rannán seo a chur in eagar go dtí go sábhálfaidh tú é.IolraTá an líne Plural-Forms sa chatalóg as an ngnáth don teanga seo: %s.Leaganacha iolra:Iolra:PoeditPoedit - Bainisteoir ClárDheisigh Poedit ábhar neamhbhailí sa chomhad "%s" go huathoibríoch.Is féidir leat Poedit iarracht a dhéanamh iontrálacha nua a líonadh ó aistriúcháin eile sa chomhad seo amháin, nó ón chuimhne aistriúcháin iomlán. Ní bheidh an TM ró-éifeachtach má tá sé beagnach folamh, ach tiocfaidh feabhas uirthi de réir a chéile.Is eagarthóir aistriúcháin é Poedit atá furasta feidhm a bhaint as.Réamhais&triúchán…RéamhaistriúchánRéamhaistrithe%u teaghrán réamhaistrithe%u theaghrán réamhaistrithe%u theaghrán réamhaistrithe%u dteaghrán réamhaistrithe%u teaghrán réamhaistritheRéamhaistriúchán ar siúl…Le réamhaistriúchán, aimsítear meaitseálacha, cruinn nó neamhchruinn, ar theaghráin gan aistriúchán sa gcuimhne aistriúcháin.SainroghannaSainroghanna...Sainroghanna…Caomhnaigh an formáidiú i gcomhaid atá annAn tIolra Roimhe SeoAn t-iolra roimhe seoSeantéacs foinseach:Ainm agus leagan an togra:Ainm an togra:Tionscadal:ScriosGlan aistriúcháin scriostaScoirScoir %sLe DéanaíAthdhéanTagairtí:AthnuaighFágtha: %dIonadaighIonadaigh &UileIonadaigh &uileTeaghrán le cur ina ionadIonadaigh…Ceanntásc riachtanach Plural-Forms ar iarraidh.AthshocraighAthshocraigh an cuimhneachán aistriúchánMá athshocraíonn tú an chuimhne aistriúcháin, scriosfar gach aistriúchán atá inti go buan. Ní féidir dul ar ais air seo.AthbhreithniúAr DheisCuir i dtaisceSábháil M&ar…Sábháil m&ar…Sábháil marSábháil mar…Cuir an clár i dtaisceCuir i dtaisce na hathruitheRoghnaigh &UileRoghnaigh UileSelect directoryRoghnaigh comhaid aistriúcháin le hiompórtáilRoghnaigh do rogha béarlaSeirbhísíSocraigh Leabharmharc a %iRoghnaigh TeangaSocraigh leabharmharc a %iRoghnaigh teangaShift+Taispeáin UileTaispeáin an Barra TaoibhTaispeáin Litriú agus GramadachTaispeáin an Barra StádaisTaispeáin IonadaitheTaispeáin nó folaigh an barra taoibhTaispeáin an barra taoibhTaispeáin an barra stádaisTaispeáin achoimre tar éis nuashonrú an clárBarra taoibhLogáil isteachLogáil AmachLogáil isteachLogáil isteach i CrowdinLogáil amachLogáilte isteach mar:UathaUatha:Cóipeáil/Greamú ClisteDaiseanna ClisteNascanna ClisteAthfhriotail ChlisteSórtáil mar atá sa &chomhadSórtáil de réir &FoinseSórtáil de réir &AistriúcháinSórtáil mar atá sa &chomhadSórtáil de réir &foinseSórtáil de réir &aistriúcháinTagairt foinse foireann litreacha:Baintear úsáid as bailitheoir chun teaghráin inaistrithe a aimsiú i mbunchód sa chaoi gur féidir iad aistriú.Níl an cód foinseach ar fáil.Comhad foinseTagairt san fhoinse:Téacs foinseachTéacs foinseach — %sFoinse:Lorgfhocail sna FoinsíCosáin na bhFoinsíLorgfhocail sna foinsíCosáin na bhfoinsíCaintNíl an litreoir ar fáil, toisc nach bhfuil foclóir %s ann.Litriú agus GramadachTosaigh ag LabhairtStop ag LabhairtAistriúcháin stóráilte:Teaghrán le haimsiúIonadaitheMoltaíNí féidir moltaí a fháil mura bhfuil teanga an aistriúcháin socraithe. Agus beidh fadhbanna agat le gnéithe eile freisin, mar shampla iolraí.Tacaíonn sé le gach teanga ríomhchlárúcháin a aithníonn na huirlisí GNU gettext (PHP, C/C++, C#, Perl, Python, Java, JavaScript agus cinn eile).SiocronaighSioncronaigh le CrowdinSioncronaigh an t-aistriúchán le CrowdinÁ shioncronúEarráid le linn sioncronaitheNíorbh fhéidir sioncronú le %s.Ag sioncronú le %s…Níorbh fhéidir sioncronú le Crowdin.Earráid chomhréire ar an líne Plural-Forms ("%s").TMCruthaigh aistriúchán nua as comhad PO atá ann, nó as teimpléad POT.Tóg teaghráin inaistrithe ó theimpléad POT atá ann.Ainm na foirne agus seoladh rphoist nó URLIonadú TéacsNíl aon teaghráin cosúil le hábhar an chomhaid seo sa gcuimhne aistriúcháin. Ní bheidh an TM éifeachtach go dtí go mbaileoidh Poedit go leor comhad a aistríonn tú de láimh.Níorbh fhéidir an chatalóg a shábháil mar “%s” de réir socruithe na catalóige. Sábháladh mar UTF-8 é agus athraíodh an socrú dá bharr sin.Ní féidir an comhad a thiomsú mar chomhad MO.Ní féidir an comhad a oscailt.Bhí teaghráin dhúblacha sa chomhad, rud nach gceadaítear i gcomhaid PO. Réitigh Poedit an fhadhb, ach ba chóir duit na haistriúcháin a bhfuil tuilleadh oibre de dhíth orthu a athbhreithniú.Seans go bhfuil an comhad truaillithe, nó ní aithníonn Poedit an fhormáid.Tiomsaíodh an comhad mar chomhad MO, ach is dócha nach n-oibreoidh sé mar is ceart.Sábháladh an comhad agus tiomsaíodh mar chomhad MO é, ach is dócha nach n-oibreoidh sé mar is ceart.Sábháladh an comhad, ach ní féidir é a thiomsú mar chomhad MO.Sábháladh an comhad.An sean-bhuntéacs (sular athraigh sé) a fhreagraíonn an t-aistriúchán (atá míchruinn anois) dó.An bealach is fusa an chatalóg seo a líonadh ná nuashonrú ó chomhad POT:Ní thosaíonn an t-aistriúchán le spás.Tá líne nua ag deireadh an aistriúcháin cé nach bhfuil sa mbuntéacs.Tá spás ag deireadh an aistriúcháin cé nach bhfuil sa mbuntéacs.Tá “%s” ag deireadh an aistriúcháin, ach tá “%s” ag deireadh an bhuntéacs.Tá spás ar iarraidh ag deireadh an aistriúcháin.Tá spás ar iarraidh ag deireadh an aistriúcháin.Tá an t-aistriúchán réidh le húsáid, ach tá %d teaghrán gan aistriúchán fós.Tá an t-aistriúchán réidh le húsáid, ach tá %d theaghrán gan aistriúchán fós.Tá an t-aistriúchán réidh le húsáid, ach tá %d theaghrán gan aistriúchán fós.Tá an t-aistriúchán réidh le húsáid, ach tá %d dteaghrán gan aistriúchán fós.Tá an t-aistriúchán réidh le húsáid, ach tá %d teaghrán gan aistriúchán fós.Tá an t-aistriúchán réidh le húsáid.Ba chóir “%s” a bheith ag deireadh an aistriúcháin.Níor chóir “%s” a bheith ag deireadh an aistriúcháin.Ba chóir an t-aistriúchán a thosú mar abairt.Ba chóir don aistriúchán a thosú le litir bheag.Tosaíonn an t-aistriúchán le spás, ach ní thosaíonn an buntéacs le spás.Marcáladh go bhfuil tuilleadh oibre de dhíth ar na haistriúcháin toisc gurbh fhéidir nach bhfuil siad cruinn. Ba chóir duit iad a athbhreithniú.Níl aon aistriúcháin ann. Nach ait é sin.Níorbh fhéidir leagan amach deas a chur ar an gcomhad (ach sábháladh é mar sin féin).Tharla botúin i rith luchtú an clár. D'fhéadfadh sonraí bheith in easnamh nó truaillithe dá bharr.Rachaidh na socruithe seo i bhfeidhm ar fhormáidiú inmheánach comhad PO. Is féidir leat iad a athrú má tá riachtanais ar leith agat, m.sh. mar gheall ar chóras rialaithe leaganacha.Níl na teaghráin seo sna foinsí a thuilleadh. Bainfidh Poedit iad ón chlár anois.Aimsíodh na teaghráin seo sna foinsí ach ní raibh siad sa chlár. Cuirfidh Poedit sa chlár iad anois.Tá iontrálacha iolra sa chatalóg seo, ach níl an ceanntásc Plural-Forms socraithe.Is trí chomhéadan Gréasáin Crowdin amháin gur féidir an comhad seo a chur in eagar.Seo é an t-ordú chun an bailitheoir a thosú. Is é %o ainm an aschomhaid, is é %K liosta lorgfhocal, %F liosta inchomhad, agus %C an tacar carachtar (féach thíos).Níl aon chomhaid is féidir a aistriú in Poedit sa tionscadal seo.Aimsíodh an teaghrán seo i gcuimhne aistriúcháin Poedit.Ceanglófar é seo le líne na n-orduithe amháin má tugadh tacar carachtar an chóid. Leathnaíonn %c go dtí an tacar carachtar.Ceanglófar é seo chuig líne na n-orduithe uair amháin do gach comhad inchur. Leathnaíonn %f chuig an ainm comhad.Ceanglófar é seo chuig líne na n-orduithe uair amháin do gach treoirfhocal. Leathnaíonn &k chuig an treoirfhocal.IomlánClaochluitheNí chuirtear teaghráin inaistrithe nua leis an gcomhad de láimh sa chóras Gettext. Ina áit sin, baintear go díreach ón bhunchod iad. Sa chaoi seo, fanann siad cruinn agus cothrom le dáta. De ghnáth, úsáideann aistritheoirí teimpléid PO (comhaid POT) a ullmhaíonn an forbróir.Aistrithe: %d as %d (%d %%)SprioctheangaCuimhne AistriúcháinTuilleadh &oibre de dhíthAiríonna an AistriúcháinTuilleadh &oibre de dhíthAiríonna an aistriúcháinAistriúcháin mholta:Aistriúchán — %sAistriúchán:Níorbh fhéidir na haistriúcháin a nuashonrú ón gcód foinseach, toisc nár aimsíodh aon chód san áit sainithe in airíonna na catalóige.DóUTF-8 (molta)CealaighTharla earráid gan réiteach: %sUnix (molta)NeamhaistritheSaighead SuasNuashonraighNuashonraigh uileNuashonraigh gach clár sa tograNuashonraigh an clár - comhaimsearaigh é le foinsíNuashonraigh ó Chomhad &POT…Nuashonraigh ó chomhad &POT…Nuashonrú ó POTNuashonraigh achoimreNuashonruitheCatalóg á nuashonrúTheip ar nuashonrúTheip ar nuashonrú na catalóige. Cliceáil 'Mionsonraí >>' chun tuilleadh eolais a fháil.Sonraí an úsáideora á nuashonrú…Aistriúcháin á n-uasluchtú…Úsáid slonn saincheapthaÚsáid cló saincheaptha liosta:Úsáid cló saincheaptha i réimsí téacs:Úsáid rialacha réamhshocraithe na teanga seoÚsáid na lorgfhocail seo (ainmneacha ar fheidhmeanna) chun teacht ar theaghráin inaistrithe san fhoinse:Úsáid cuimhne aistriúcháinDeimhnighTorthaí an bhailíochtaitheLeagan %sAg fanacht le fíordheimhniú…Fáilte go dtí PoeditCad é Crowdin?Agus teaghráin sa bhunteanga á nuashonrúFocail iomlán amháinFuinneogWindowsTimfhilleadhTimfhilleadh ag:TáNó is féidir leat teaghráin inaistrithe a bhailiú go díreach ón bhunchód:Ní féidir ach comhad amháin a chaitheamh isteach ar an fhuinneog PoEdit.Caithfear Poedit a atosú chun an athrú a chur i bhfeidhm.D'ainmCaillfidh tú do chuid athruithe mura sábhálfaidh tú iad.Ní úsáidfear d'ainm nó do sheoladh r-phoist ach ar an líne Last-Translator i gcomhaid GNU gettext.NáidSúmáilaltctrlná scrios comhaid shealadacha (dífhabhtú)m.sh. nplurals=2; plural=(n > 1);garbhmheaitseáil laistigh den chomhadléim go dtí an mhír ar an líne shonraithedéileáil le URI poedit://réamhaistriúchán ón chuimhne aistriúcháinshiftteanga anaithniddo_sheoladh@example.comNí comhad POT ceart é “%s”.poedit-2.0.6/locales/id.po0000664000372000037200000014764713230132076012322 00000000000000msgid "" msgstr "" "Project-Id-Version: poedit\n" "Report-Msgid-Bugs-To: help@poedit.net\n" "POT-Creation-Date: 2017-12-05 15:52+0100\n" "PO-Revision-Date: 2017-07-27 03:14-0400\n" "Last-Translator: vslavik \n" "Language-Team: Indonesian\n" "Language: id_ID\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" "X-Generator: crowdin.com\n" "X-Crowdin-Project: poedit\n" "X-Crowdin-Language: id\n" "X-Crowdin-File: /locales/poedit.pot\n" msgid "Hide this notification message" msgstr "Sembunyikan pesan pemberitahuan ini" msgid "Don’t Show Again" msgstr "Jangan Tampilkan Lagi" msgid "Don’t show again" msgstr "Jangan tampilkan lagi" #, c-format msgid "(New: %i, obsolete: %i)" msgstr "(Baru: %i, usang: %i)" msgid "Updating catalog" msgstr "Memperbarui katalog" msgid "Collecting source files…" msgstr "Mengumpulkan berkas sumber…" msgid "Extracting translatable strings…" msgstr "Mengekstrak string yang dapat diterjemahkan…" msgid "Failed to load extracted catalog." msgstr "Gagal memuat katalog terekstrak." msgid "Merging differences…" msgstr "Menggabungkan perbedaan…" #, c-format msgid "“%s” is not a valid POT file." msgstr "\"%s\" bukan berkas POT yang valid." #, c-format msgid "%i line of file “%s” was not loaded correctly." msgid_plural "%i lines of file “%s” were not loaded correctly." msgstr[0] "%i baris dari berkas \"%s\" tidak dimuat dengan benar." #, c-format msgid "Line %d of file “%s” is corrupted (not valid %s data)." msgstr "Baris %d dari berkas \"%s\" rusak (data %s tak valid)." #, c-format msgid "Malformed header: “%s”" msgstr "Header cacat: \"%s\"" msgid "" "Broken catalog file: singular form msgstr used together with msgid_plural" msgstr "" "Berkas katalog rusak: msgstr bentuk tunggal dipakai bersama dengan " "msgid_plural" msgid "Broken catalog file: plural form msgstr used without msgid_plural" msgstr "Berkas katalog rusak: bentuk msgstr jamak digunakan tanpa msgid_plural" msgid "" "There were errors when loading the catalog. Some data may be missing or " "corrupted as the result." msgstr "" "Terdapat kesalahan ketika memuat katalog. Beberapa data hilang atau rusak " "sebagai hasilnya." #, c-format msgid "Couldn’t load file %s, it is probably corrupted." msgstr "Tak bisa memuat berkas %s, mungkin cacat." #, c-format msgid "" "File “%s” is read-only and cannot be saved.\n" "Please save it under different name." msgstr "" "Berkas \"%s\" hanya bisa dibaca dan tidak bisa disimpan.\n" "\n" "Harap simpan dengan nama berbeda." #, c-format msgid "Couldn’t save file %s." msgstr "Tak bisa menyimpan berkas %s." msgid "" "There was a problem formatting the file nicely (but it was saved all right)." msgstr "" "Ada masalah pemformatan berkas secara rapi (tapi berkas telah disimpan " "secara baik)." #, c-format msgid "" "The catalog couldn’t be saved in “%s” charset as specified in catalog " "settings.\n" "\n" "It was saved in UTF-8 instead and the setting was modified accordingly." msgstr "" "Katalog tak bisa disimpan dalam set karakter \"%s\" sebagaimana dinyatakan " "dalam pengaturan katalog.\n" "\n" "Sebagai gantinya itu disimpan dalam UTF-8 dan pengaturan disesuaikan." msgid "Error saving catalog" msgstr "Gagal menyimpan katalog" msgid "PO Translation Files" msgstr "Berkas Terjemahan PO" msgid "POT Translation Templates" msgstr "Templat Terjemahan POT" msgid "All Translation Files" msgstr "Semua Berkas Terjemahan" msgid "(Use default language)" msgstr "(Pakai bahasa bawaan)" msgid "Select your preferred language" msgstr "Pilih bahasa yang disukai" msgid "Language selection" msgstr "Pilihan bahasa" msgid "You must restart Poedit for this change to take effect." msgstr "Jalankan ulang Poedit agar efek perubahan terlihat." msgid "Syncing" msgstr "Menyelaraskan" #. TRANSLATORS: %s is a cloud destination, e.g. "Crowdin" or ftp.wordpress.com etc. #, c-format msgid "Syncing with %s…" msgstr "Selaraskan dengan %s…" #. TRANSLATORS: %s is a cloud destination, e.g. "Crowdin" or ftp.wordpress.com etc. #, c-format msgid "Syncing with %s failed." msgstr "Penyelarasan dengan %s gagal." msgid "Syncing error" msgstr "Galat penyelarasan" msgid "Downloading translations is disabled in this project." msgstr "Mengunduh terjemahan dinonaktifkan dalam proyek ini." msgid "Not authorized, please sign in again." msgstr "Tidak berwenang, silakan masuk lagi." msgid "" "Crowdin is an online localization management platform and collaborative " "translation tool. Poedit can seamlessly sync PO files managed at Crowdin." msgstr "" "Crowdin adalah sebuah platform manajemen lokalisasi daring dan alat " "penerjemahan kolaboratif. Poedit dapat menyelaraskan berkas PO yang dikelola " "pada Crowdin secara mulus." msgid "Sign In" msgstr "Masuk" msgid "Sign in" msgstr "Masuk" msgid "Sign Out" msgstr "Keluar" msgid "Sign out" msgstr "Keluar" msgid "Waiting for authentication…" msgstr "Menunggu otentikasi…" msgid "Updating user information…" msgstr "Memutakhirkan informasi pengguna…" msgid "Signed in as:" msgstr "Masuk sebagai:" msgid "Learn More About Crowdin" msgstr "Pelajari Lebih Lanjut Tentang Crowdin" msgid "Learn more about Crowdin" msgstr "Pelajari lebih lanjut tentang Crowdin" msgid "Sign in to Crowdin" msgstr "Masuk ke Crowdin" msgid "Open Crowdin translation" msgstr "Buka terjemahan Crowdin" msgid "Project:" msgstr "Proyek:" msgid "Language:" msgstr "Bahasa:" msgid "File:" msgstr "Berkas:" msgid "No translation projects listed in your Crowdin account." msgstr "Tidak ada proyek terjemahan yang tercantum dalam akun Crowdin Anda." msgid "This project has no files that can be translated in Poedit." msgstr "" "Proyek ini tidak memiliki berkas yang dapat diterjemahkan dalam Poedit." msgid "This file can only be edited in Crowdin’s web interface." msgstr "Berkas ini hanya dapat disunting dalam antar muka web Crowdin." msgid "Downloading latest translations…" msgstr "Unduh terjemahan terbaru…" msgid "Syncing with Crowdin failed." msgstr "Penyelarasan dengan Crowdin gagal." msgid "Crowdin error" msgstr "Kesalahan Crowdin" msgid "Uploading translations…" msgstr "Mengunggah terjemahan…" msgid "&Copy" msgstr "&Salin" msgid "Learn more" msgstr "Belajar lagi" msgid "Learn More" msgstr "Pelajari Lebih Lanjut" msgid "&Help" msgstr "&Bantuan" msgid "MO files can’t be directly edited in Poedit." msgstr "Berkas MO tak dapat langsung disunting di Poedit." msgid "Error opening file" msgstr "Kesalahan saat membuka berkas" msgid "" "Please open and edit the corresponding PO file instead. When you save it, " "the MO file will be updated as well." msgstr "" "Silakan membuka dan menyunting berkas PO yang sesuai. Ketika Anda menyimpan, " "berkas MO juga akan diperbarui." msgid "don’t delete temporary files (for debugging)" msgstr "jangan hapus berkas sementara (untuk pengawakutuan)" msgid "handle a poedit:// URI" msgstr "menangani URI poedit://" msgid "go to item at given line number" msgstr "pergi ke butir pada nomor baris yang didiberikan" msgid "Failed to communicate with Poedit process." msgstr "Gagal berkomunikasi dengan proses Poedit." #, c-format msgid "Unhandled exception occurred: %s" msgstr "Eksepsi tidak tertangani terjadi: %s" msgid "Open catalog" msgstr "Buka katalog" #, c-format msgid "File “%s” doesn’t exist." msgstr "Berkas \"%s\" tidak ada." msgid "Poedit is an easy to use translations editor." msgstr "Poedit adalah penyunting terjemahan yang mudah dipakai." msgid "Catalogs Manager" msgstr "Manajer Katalog" msgid "Check for Updates…" msgstr "Periksa Pemutakhiran…" msgid "&Edit" msgstr "&Sunting" msgid "Undo" msgstr "Batal" msgid "Redo" msgstr "Jadi Lagi" msgid "Paste and Match Style" msgstr "Tempel dan Cocokkan Gaya" msgid "Delete" msgstr "Hapus" msgid "Spelling and Grammar" msgstr "Ejaan dan Tata Bahasa" msgid "Show Spelling and Grammar" msgstr "Tampilkan Ejaan dan Tata Bahasa" msgid "Check Document Now" msgstr "Periksa Dokumen Sekarang" msgid "Check Spelling While Typing" msgstr "Periksa Ejaan Saat Mengetik" msgid "Check Grammar With Spelling" msgstr "Periksa Tata Bahasa Dengan Ejaan" msgid "Correct Spelling Automatically" msgstr "Perbaiki Ejaan Secara Otomatis" msgid "Substitutions" msgstr "Substitusi" msgid "Show Substitutions" msgstr "Tampilkan Substitusi" msgid "Smart Copy/Paste" msgstr "Salin/Tempel Cerdas" msgid "Smart Quotes" msgstr "Tanda Kutip Cerdas" msgid "Smart Dashes" msgstr "Garis Hubung Cerdas" msgid "Smart Links" msgstr "Taut Cerdas" msgid "Text Replacement" msgstr "Teks Pengganti" msgid "Transformations" msgstr "Transformasi" msgid "Make Upper Case" msgstr "Jadikan Huruf Besar" msgid "Make Lower Case" msgstr "Jadikan Huruf Kecil" msgid "Capitalize" msgstr "Kapitalkan" msgid "Speech" msgstr "Pidato" msgid "Start Speaking" msgstr "Mulai Bicara" msgid "Stop Speaking" msgstr "Berhenti Bicara" msgid "&View" msgstr "&Lihat" msgid "Enter Full Screen" msgstr "Masuk Layar Penuh" msgid "Window" msgstr "Jendela" msgid "Minimize" msgstr "Minimalkan" msgid "Zoom" msgstr "Zum" msgid "Bring All to Front" msgstr "Bawa Semua ke Depan" #. TRANSLATORS:File kind displayed in Finder/Explorer msgid "PO Translation" msgstr "Terjemahan PO" msgid "The file cannot be opened." msgstr "Berkas tidak dapat dibuka." msgid "Invalid file" msgstr "Berkas tak valid" msgid "" "The file may be either corrupted or in a format not recognized by Poedit." msgstr "Berkas mungkin rusak atau dalam format yang tak dikenal oleh Poedit." msgid "You can’t drop more than one file on Poedit window." msgstr "Anda tak bisa menjatuhkan lebih dari satu berkas pada jendela Poedit." #, c-format msgid "File “%s” is not a message catalog." msgstr "Berkas \"%s\" bukan suatu katalog pesan." msgid "Poedit" msgstr "Poedit" msgid "&File" msgstr "&Berkas" msgid "&Go" msgstr "&Lompat" #. TRANSLATORS: %s is language name in its basic form (as you #. would see e.g. in a list of supported languages). You may need #. to rephrase it, e.g. to an equivalent of "for language %s". #, c-format msgid "" "Spellchecking is disabled, because the dictionary for %s isn’t installed." msgstr "Pemeriksaan ejaan dinonaktifkan, karena kamus untuk %s tidak diinstal." msgid "Install" msgstr "Instal" msgid "Catalog modified. Do you want to save changes?" msgstr "Katalog berubah. Apakah ingin menyimpan perubahan?" msgid "Save changes" msgstr "Simpan perubahan" msgid "Your changes will be lost if you don’t save them." msgstr "Perubahan yang Anda buat akan hilang bila tidak Anda simpan." msgid "Save" msgstr "Simpan" msgid "Don’t save" msgstr "Jangan simpan" msgid "Don’t Save" msgstr "Jangan Simpan" msgid "Save as…" msgstr "Simpan sebagai…" msgid "Compile to…" msgstr "Kompail ke…" msgid "Compiled Translation Files" msgstr "Berkas Terjemahan Dikompilasi" msgid "Export as…" msgstr "Ekspor sebagai…" msgid "HTML Files" msgstr "Berkas HTML" msgid "Open catalog template" msgstr "Buka templat katalog" msgid "Source code not available." msgstr "Kode sumber tidak tersedia." msgid "Updating failed" msgstr "Gagal Memperbarui" msgid "" "Translations couldn’t be updated from the source code, because no code was " "found in the location specified in the catalog’s Properties." msgstr "" "Terjemahan tidak diperbarui dari kode sumber, karena kode tidak ditemukan di " "lokasi yang ditentukan dalam katalog properti." msgid "Entries in the catalog are probably incorrect." msgstr "Entri di katalog mungkin salah." msgid "Updating the catalog failed. Click on 'Details >>' for details." msgstr "Proses memperbarui katalog gagal. Klik 'Rincian>>' untuk detilnya." #, c-format msgid "%d issue with the translation found." msgid_plural "%d issues with the translation found." msgstr[0] "%d masalah pada terjemahan ditemukan." msgid "Validation results" msgstr "Hasil validasi" msgid "" "Entries with errors were marked in red in the list. Details of the error " "will be shown when you select such an entry." msgstr "" "Entri dengan kesalahan ditandai dengan warna merah dalam daftar. Rincian " "kesalahan akan ditampilkan ketika Anda memilih entri tersebut." msgid "The file was saved safely." msgstr "Berkas disimpan dengan aman." msgid "" "The file was saved safely and compiled into the MO format, but it will " "probably not work correctly." msgstr "" "File disimpan dengan aman dan dikompail ke format MO, tapi itu mungkin tidak " "akan bekerja dengan benar." msgid "" "The file was saved safely, but it cannot be compiled into the MO format and " "used." msgstr "" "Berkas disimpan secara aman, tapi tak bisa dikompail ke dalam format MO dan " "dipakai." msgid "" "The file was compiled into the MO format, but it will probably not work " "correctly." msgstr "" "Berkas telah dikompail ke format MO, tapi mungkin tak akan bekerja dengan " "benar." msgid "The file cannot be compiled into the MO format and used." msgstr "Berkas tak dapat dikompail ke dalam format MO dan digunakan." msgid "No problems with the translation found." msgstr "Tidak ditemukan masalah dengan terjemahan." #, c-format msgid "The translation is ready for use, but %d entry is not translated yet." msgid_plural "" "The translation is ready for use, but %d entries are not translated yet." msgstr[0] "" "Terjemahan siap untuk digunakan, tetapi %d entri belum diterjemahkan." msgid "The translation is ready for use." msgstr "Terjemahan siap digunakan." #, c-format msgid "Poedit automatically fixed invalid content in the file “%s”." msgstr "" "Poedit secara otomatis memperbaiki isi yang tak valid dalam berkas \"%s\"." msgid "" "The file contained duplicate items, which is not allowed in PO files and " "would prevent the file from being used. Poedit fixed the issue, but you " "should review translations of any items marked as needing work and correct " "them if necessary." msgstr "" "Berkas memuat butir-butir duplikat, yang tak diijinkan dalam berkas PO dan " "akan mencegah berkas dipakai. Poedit memperbaiki masalah ini, tapi Anda " "mesti meninjau terjemahan yang ditandai sebagai perlu tindak lanjut dan " "memperbaiki mereka bila perlu." msgid "Language of the translation isn’t set." msgstr "Bahasa terjemahan belum dipilih." msgid "Set Language" msgstr "Atur bahasa" msgid "Set language" msgstr "Atur bahasa" #. TRANSLATORS: This is shown underneath "Language of the translation isn't set (or ...is the same as source language)." msgid "" "Suggestions are not available if the translation language is not set " "correctly. Other features, such as plural forms, may be affected as well." msgstr "" "Saran tidak tersedia jika bahasa terjemahan tidak diatur dengan benar. Fitur " "lainnya, seperti bentuk jamak, mungkin akan terpengaruh juga." msgid "Language of the translation is the same as source language." msgstr "Bahasa terjemahan sama dengan bahasa sumber." msgid "Fix Language" msgstr "Perbaiki Bahasa" msgid "Fix language" msgstr "Perbaiki bahasa" msgid "" "This catalog has entries with plural forms, but doesn’t have Plural-Forms " "header configured." msgstr "" "Katalog ini memiliki entri dengan bentuk jamak, tapi Plural-Forms tak " "tertata di header." msgid "" "Entries in this catalog have different plural forms count from what " "catalog’s Plural-Forms header says" msgstr "" "Entri pada katalog ini memiliki cacah bentuk jamak yang berbeda dengan isi " "header Plural-Forms" msgid "Required header Plural-Forms is missing." msgstr "Kurang tajuk Plural-Forms yang diperlukan." #, c-format msgid "Syntax error in Plural-Forms header (\"%s\")." msgstr "Kesalahan sintaks di header Plural-Forms (\"%s\")." msgid "Fix the Header" msgstr "Perbaiki Header" msgid "Fix the header" msgstr "Perbaiki header" #. TRANSLATORS: %s is language name in its basic form (as you #. would see e.g. in a list of supported languages). You may need #. to rephrase it, e.g. to an equivalent of "for language %s". #, c-format msgid "Plural forms expression used by the catalog is unusual for %s." msgstr "Ekspresi bentuk jamak yang dipakai oleh katalog tak umum bagi %s." #. TRANSLATORS: A verb, shown as action button with ""Plural forms expression used by the catalog is unusual for %s.")" msgid "Review" msgstr "Tinjau" #, c-format msgid "Error loading message catalog file “%s”." msgstr "Kesalahan saat memuat berkas katalog pesan \"%s\"." #, c-format msgid "Translated: %d of %d (%d %%)" msgstr "Diterjemahkan: %d dari %d (%d %%)" #, c-format msgid "Remaining: %d" msgstr "Sisa: %d" #, c-format msgid "%d error" msgid_plural "%d errors" msgstr[0] "%d kesalahan" #, c-format msgid "%d entry" msgid_plural "%d entries" msgstr[0] "%d entri" msgid " (unsaved)" msgstr " (belum disimpan)" msgid " (modified)" msgstr " (telah diubah)" #, c-format msgid "Failed to update translation memory: %s" msgstr "Gagal memperbarui ingatan terjemahan: %s" msgid "Purge deleted translations" msgstr "Buang terjemahan yang dihapus" msgid "Do you want to remove all translations that are no longer used?" msgstr "Apakah Anda ingin menghapus semua terjemahan yang tak dipakai lagi?" msgid "" "If you continue with purging, all translations marked as deleted will be " "permanently removed. You will have to translate them again if they are added " "back in the future." msgstr "" "Bila Anda meneruskan pembersihan, semua terjemahan yang ditandai sebagai " "terhapus akan dibuang secara permanen. Anda mesti menerjemahkan ulang bila " "mereka ditambahkan kembali di masa mendatang." msgid "Keep" msgstr "Pertahankan" msgid "Purge" msgstr "Buang" msgid "Copy from source text" msgstr "Salin dari teks sumber" msgid "Copy from Source Text" msgstr "Salin dari Teks Sumber" #. TRANSLATORS: This is the key shortcut used in menus on Windows, some languages call them differently #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Ctrl+" msgstr "Ctrl+" msgid "Clear translation" msgstr "Bersihkan terjemahan" msgid "Clear Translation" msgstr "Bersihkan Terjemahan" msgid "Edit comment" msgstr "Sunting komentar" msgid "Edit Comment" msgstr "Sunting Komentar" msgid "References:" msgstr "Referensi:" msgid "&Bookmarks" msgstr "Penanda &Buku" #. TRANSLATORS: This is the key shortcut used in menus on Windows, some languages call them differently #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Alt+" msgstr "Alt+" #, c-format msgid "Set bookmark %i" msgstr "Atur tanda buku %i" #, c-format msgid "Go to bookmark %i" msgstr "Ke penanda %i" #, c-format msgid "Set Bookmark %i" msgstr "Atur Tanda Buku %i" #, c-format msgid "Go to Bookmark %i" msgstr "Ke Tanda Buku %i" msgid "Hide Sidebar" msgstr "Sembunyikan Bilah Sisi" msgid "Show Sidebar" msgstr "Tampilkan Bilah Sisi" msgid "Hide Status Bar" msgstr "Sembunyikan Bilah Status" msgid "Show Status Bar" msgstr "Tampilkan Bilah Status" msgid "Source text:" msgstr "Teks sumber:" msgid "Singular:" msgstr "Tunggal:" msgid "Plural:" msgstr "Jamak:" msgid "Translation:" msgstr "Terjemahan:" msgid "Pre-translated" msgstr "Dipraterjemahkan" msgid "Needs Work" msgstr "Perlu Tindak Lanjut" #. TRANSLATORS: This indicates that the string's translation isn't final #. and has known problems. For example, it might be machine translated or #. fuzzy matched from an older string. The translation should be short and #. convey this. If it's problematic to translate it, "Needs review" is #. acceptable substitute, but note that the meaning is subtly different: #. "needs review" implies that somebody else should review the string after #. I am done with it (i.e. consider it good), while "needs work" implies I #. need to return to it and finish the translation. msgid "Needs work" msgstr "Perlu tindak lanjut" msgid "" "POT files are only templates and don’t contain any translations themselves.\n" "To make a translation, create a new PO file based on the template." msgstr "" "Berkas POT hanya templat dan tidak memuat terjemahan apapun.\n" "Untuk membuat suatu terjemahan, buatlah sebuah berkas PO baru berbasis " "templat itu." msgid "Create New Translation" msgstr "Buat Terjemahan Baru" msgid "Create new translation" msgstr "Buat terjemahan baru" msgid "Everything" msgstr "Segalanya" #, c-format msgid "Form %i" msgstr "Formulir %i" msgid "Singular" msgstr "Tunggal" msgid "Zero" msgstr "Nol" msgid "One" msgstr "Satu" msgid "Two" msgstr "Dua" msgid "Plural" msgstr "Jamak" msgid "Other" msgstr "Lainnya" #, c-format msgid "%s Format" msgstr "Format %s" #. TRANSLATORS: %s is replaced with language name, e.g. "PHP" or "C", so "PHP Format" etc." #, c-format msgid "%s format" msgstr "Format %s" msgid "Source text" msgstr "Teks sumber" #, c-format msgid "Translation — %s" msgstr "Terjemahan — %s" msgid "ID" msgstr "ID" #, c-format msgid "Source text — %s" msgstr "Teks sumber — %s" msgid "unknown language" msgstr "bahasa tak dikenal" #, c-format msgid "Failed command: %s" msgstr "Perintah gagal: %s" msgid "Failed to merge gettext catalogs." msgstr "Gagal menggabung katalog-katalog gettext." msgid "Source file" msgstr "Berkas sumber" msgid "Source file occurrence:" msgstr "Kemunculan berkas sumber:" msgid "Open in Editor" msgstr "Buka Dalam Penyunting" msgid "Open in editor" msgstr "Buka dalam penyunting" msgid "No references for the selected item." msgstr "Tidak ada acuan untuk butir yang dipilih." #, c-format msgid "Error opening file %s!" msgstr "Gagal membuka berkas %s!" msgid "Find" msgstr "Cari" msgid "Replace" msgstr "Ganti" #. TRANSLATORS: Expander in Find window for additional options (case sensitive etc.) msgid "Options" msgstr "Opsi" msgid "Ignore case" msgstr "Abaikan besar kecil huruf" msgid "Wrap around" msgstr "Ulang dari awal" msgid "Whole words only" msgstr "Hanya kata lengkap" msgid "Find in source texts" msgstr "Cari dalam teks sumber" msgid "Find in translations" msgstr "Cari dalam terjemahan" msgid "Find in comments" msgstr "Cari dalam komentar" msgid "Close" msgstr "Tutup" msgid "Replace &All" msgstr "Ganti Semu&a" msgid "Replace &all" msgstr "Ganti semu&a" msgid "&Replace" msgstr "&Gantikan" msgid "< &Previous" msgstr "< Se&belumnya" msgid "&Next >" msgstr "Berikut&nya >" msgid "String to find" msgstr "Kalimat yang dicari" msgid "Replacement string" msgstr "Kalimat pengganti" #, c-format msgid "Cannot execute program: %s" msgstr "Tak bisa menjalankan program: %s" msgid "Language Code or Name (e.g. en_GB)" msgstr "Kode atau Nama Bahasa (mis. en_GB)" msgid "Translation Language" msgstr "Bahasa Terjemahan" msgid "Language of the translation:" msgstr "Bahasa terjemahan:" msgid "Poedit - Catalogs manager" msgstr "Poedit - Manajer katalog" msgid "Catalog" msgstr "Katalog" msgid "Total" msgstr "Total" msgid "Untrans" msgstr "Belum" msgid "Errors" msgstr "Kesalahan" msgid "Last modified" msgstr "Terakhir berubah" msgid "Select directory" msgstr "Pilih direktori" msgid "Directories:" msgstr "Direktori:" msgid "" msgstr "" msgid "Do you want to delete the project?" msgstr "Apakah Anda ingin menghapus projek?" msgid "Confirmation" msgstr "Konfirmasi" msgid "" "Do you really want to do mass update of\n" "all catalogs in this project?" msgstr "" "Apakah Anda ingin melakukan pembaruan masal\n" "atas semua katalog di projek ini?" msgid "Information about the translator" msgstr "Informasi tentang penerjemah" msgid "Name:" msgstr "Nama:" msgid "Your Name" msgstr "Nama Anda" msgid "Email:" msgstr "Surel:" msgid "your_email@example.com" msgstr "your_email@example.com" msgid "" "Your name and email address are only used to set the Last-Translator header " "of GNU gettext files." msgstr "" "Nama dan alamat surel Anda hanya digunakan untuk menetapkan header Last-" "Translator dari berkas gettext GNU." msgid "Editing" msgstr "Penyuntingan" msgid "Automatically compile MO file when saving" msgstr "Otomatis mengkompilasi berkas MO saat menyimpan" msgid "Show summary after catalog update" msgstr "Perlihatkan rangkuman sesudah katalog diperbarui" msgid "Check spelling" msgstr "Periksa ejaan" msgid "Always change focus to text input field" msgstr "Selalu ubah fokus ke ruas masukan teks" msgid "" "Never let the list of strings take focus. If enabled, you must use Ctrl-" "arrows for keyboard navigation but you can also type text immediately, " "without having to press Tab to change focus." msgstr "" "Jangan pernah memfokuskan ke daftar kalimat. Jika diaktifkan gunakan Ctrl-" "panah keyboard untuk navigasi tapi juga dapat dituliskan secara langsung, " "tanpa menekan Tab untuk merubah fokus." msgid "Appearance" msgstr "Penampilan" msgid "Use custom list font:" msgstr "Gunakan fonta daftar ubahan:" msgid "Use custom text fields font:" msgstr "Gunakan fonta ruas teks ubahan:" msgid "Change UI language" msgstr "Ubah bahasa UI" #. TRANSLATORS: This is a note appended to "Check spelling" when running on older Windows versions msgid "(requires Windows 8 or newer)" msgstr "(memerlukan Windows 8 atau yang lebih baru)" msgid "General" msgstr "Umum" msgid "Use translation memory" msgstr "Pakai ingatan terjemahan" msgid "Learn From Files…" msgstr "Belajar Dari Berkas…" msgid "Learn from files…" msgstr "Belajar dari berkas…" #. TRANSLATORS: This is a button that deletes everything in the translation memory (i.e. clears/resets it). msgid "Reset" msgstr "Reset" #. TRANSLATORS: Followed by "match translations within the file" or "pre-translate from TM" msgid "When updating from sources" msgstr "Ketika memperbarui dari sumber" #. TRANSLATORS: Preceded by "When updating from sources" msgid "fuzzy match within the file" msgstr "fuzzy cocok dengan file" #. TRANSLATORS: Preceded by "When updating from sources" msgid "pre-translate from TM" msgstr "pra-menerjemahkan dari TM" msgid "" "Poedit can attempt to fill in new entries from only previous translations in " "the file or from your entire translation memory. Using the TM won’t be very " "effective if it’s near-empty, but it will get better as you add more " "translations to it." msgstr "" "Poedit dapat mencoba untuk mengisi entri baru dari terjemahan sebelumnya " "dalam file atau dari memori seluruh terjemahan Anda. Menggunakan TM tidak " "akan sangat efektif jika memang mendekati kosong, tapi itu akan membaik " "untuk Anda menambahkan terjemahan kedalamnya." msgid "Stored translations:" msgstr "Terjemahan tersimpan:" msgid "Database size on disk:" msgstr "Ukuran basis data pada disk:" msgid "Select translation files to import" msgstr "Pilih berkas terjemahan yang akan diimpor" msgid "Translation Memory" msgstr "Ingatan Terjemahan" msgid "Importing translations…" msgstr "Mengimpor terjemahan…" msgid "Finalizing…" msgstr "Finalisasi…" msgid "Reset translation memory" msgstr "Reset memori terjemahan" msgid "Are you sure you want to reset the translation memory?" msgstr "Apakah Anda yakin Anda ingin me-reset memori terjemahan?" msgid "" "Resetting the translation memory will irrevocably delete all stored " "translations from it. You can’t undo this operation." msgstr "" "Me-reset memori terjemahan akan menghapus seterusnya semua terjemahan yang " "disimpan darinya. Anda tidak dapat membatalkan operasian ini." msgid "Cancel" msgstr "Batal" #. TRANSLATORS: This is abbreviation of "Translation Memory" used in Preferences on macOS. #. Long text looks weird there, too short (like TM) too, but less so. "General" is about ideal #. length there. msgid "TM" msgstr "TM" msgid "" "Source code extractors are used to find translatable strings in the source " "code files and extract them so that they can be translated." msgstr "" "Pengekstrak kode sumber digunakan untuk menemukan kalimat yang dapat " "diterjemahkan dalam berkas kode sumber dan mengekstrak mereka sehingga dapat " "diterjemahkan." msgid "Custom Extractors:" msgstr "Pengekstraksi Ubahan:" msgid "Custom extractors:" msgstr "Pengekstraksi ubahan:" msgid "Edit…" msgstr "Sunting…" msgid "GNU gettext" msgstr "GNU gettext" msgid "" "Supports all programming languages recognized by GNU gettext tools (PHP, C/C+" "+, C#, Perl, Python, Java, JavaScript and others)." msgstr "" "Mendukung semua bahasa pemrograman yang dikenali oleh alat GNU gettext (PHP, " "C/C++, C#, Perl, Python, Java, JavaScript dan lain-lain)." msgid "Delete extractor" msgstr "Hapus ekstraktor" #, c-format msgid "Are you sure you want to delete the “%s” extractor?" msgstr "Anda yakin Anda ingin menghapus ekstraktor \"%s\"?" msgid "Extractors" msgstr "Pengekstrak" msgid "Accounts" msgstr "Akun" msgid "Automatically check for updates" msgstr "Secara otomatis memeriksa pembaruan" msgid "Include beta versions" msgstr "Termasuk versi beta" msgid "" "Beta versions contain the latest new features and improvements, but may be a " "bit less stable." msgstr "" "Versi beta berisi fitur terbaru dan perbaikan, tetapi mungkin sedikit kurang " "stabil." msgid "Updates" msgstr "Pembaruan" msgid "" "These settings affect internal formatting of PO files. Adjust them if you " "have specific requirements e.g. because of version control." msgstr "" "Pengaturan ini mempengaruhi pemformatan internal berkas PO. Sesuaikan mereka " "jika Anda memiliki persyaratan tertentu misalnya karena kontrol versi." msgid "Line endings:" msgstr "Akhiran baris:" msgid "Unix (recommended)" msgstr "Unix (disarankan)" msgid "Windows" msgstr "Windows" #. TRANSLATORS: Followed by text control for entering number; wraps text at given width msgid "Wrap at:" msgstr "Tekuk pada:" msgid "Preserve formatting of existing files" msgstr "Pertahankan format berkas yang sudah ada" msgid "Advanced" msgstr "Tingkat lanjut" msgid "Pre-translating…" msgstr "Memraterjemahkan…" #, c-format msgid "Pre-translated %u string" msgid_plural "Pre-translated %u strings" msgstr[0] "Dipraterjemahkan %u string" #. TRANSLATORS: This is a somewhat common term describing the action where #. you apply the translation memory and/or machine translation to all of the #. strings you're translating as the first step, followed by correcting, #. improving etc., i.e. actually translating the strings. This may be tricky #. to express in other languages as simply as in English, but please try to #. keep it similarly concise. Please try to avoid, if possible, describing it #. as "auto-translation" and similar, because such terminology would mislead #. some users into thinking it's all that needs to be done (spoken from #. experience). "Pre-translate" nicely expresses that it's only the step done #. *before* actual translation. msgid "Pre-translate" msgstr "Pra-terjemah" msgid "Only fill in exact matches" msgstr "Hanya mengisi yang sama persis" msgid "" "By default, inaccurate results are filled in as well and marked as needing " "work. Check this option to only include accurate matches." msgstr "" "Secara default, hasil-hasil yang tak akurat diisi dan ditandai sebagai perlu " "tindak lanjut. Contreng pilihan ini untuk hanya menyertakan kecocokan yang " "akurat." msgid "Don’t mark exact matches as needing work" msgstr "Jangan tandai yang cocok persis sebagai perlu tindak lanjut" msgid "" "Only enable if you trust the quality of your TM. By default, all matches " "from the TM are marked as needing work and should be reviewed before use." msgstr "" "Hanya fungsikan jika Anda mempercayai kualitas TM Anda. Secara default, " "semua kecocokan dari TM ditandai sebagai perlu tindak lanjut dan mesti " "ditinjau sebelum dipakai." msgid "" "Pre-translation automatically finds exact or fuzzy matches for untranslated " "strings in the translation memory and fills in their translations." msgstr "" "Pra-terjemahan secara otomatis menemukan kecocokan persis atau ragu untuk " "kalimat yang belum diterjemahkan dalam memori terjemahan dan mengisikan " "terjemahan mereka." #, c-format msgid "%d entry was pre-translated." msgid_plural "%d entries were pre-translated." msgstr[0] "%d entri dipraterjemahkan." msgid "" "The translations were marked as needing work, because they may be " "inaccurate. You should review them for correctness." msgstr "" "Terjemahan ditandai sebagai perlu tindak lanjut, karena mereka mungkin tidak " "akurat. Anda mesti meninjau benar tidaknya mereka." msgid "No entries could be pre-translated." msgstr "Tidak ada entri yang bisa dipraterjemahkan." msgid "" "The TM doesn’t contain any strings similar to the content of this file. It " "is only effective for semi-automatic translations after Poedit learns enough " "from files that you translated manually." msgstr "" "TM tidak mengandung string apapun yang mirip dengan isi dari berkas ini. Ini " "hanya efektif untuk penerjemahan semi otomatis setelah Poedit belajar cukup " "dari berkas yang Anda terjemahkan secara manual." msgid "" "Drag and Drop Folders Here\n" "\n" "or use the + button" msgstr "" "Seret dan Jatuhkan Folder Di Sini\n" "\n" "atau gunakan tombol +" msgid "" "Drag and drop folders here\n" "\n" "or use the + button" msgstr "" "Folder Seret dan jatuhkan folder di sini\n" "\n" "atau gunakan tombol +" msgid "Add Folders…" msgstr "Tambah Folder…" msgid "Add folders…" msgstr "Tambah folder…" msgid "Add Files…" msgstr "Tambah Berkas…" msgid "Add files…" msgstr "Tambah berkas…" msgid "Add Wildcard…" msgstr "Tambah Wildcard…" msgid "Add wildcard…" msgstr "Tambah wildcard…" msgid "Paths" msgstr "Path" msgid "Excluded paths" msgstr "Path yang dikecualikan" msgid "Advanced extraction settings" msgstr "Pengaturan ekstraksi tingkat lanjut" msgid "Extract notes for translators from:" msgstr "Ekstrak catatan untuk penerjemah dari:" msgid "Comments prefixed with:" msgstr "Komentar diawali dengan:" msgid "All comments" msgstr "Semua komentar" msgid "Additional xgettext flags:" msgstr "Flag xgettext tambahan:" msgid "Additional keywords" msgstr "Kata kunci tambahan" msgid "Name of the project the translation is for" msgstr "Terjemahan ini untuk projek bernama tersebut" msgid "Team name and email address or URL" msgstr "URL atau alamat surel dan nama tim" msgid "e.g. nplurals=2; plural=(n > 1);" msgstr "mis. nplurals=2; plural=(n > 1);" msgid "UTF-8 (recommended)" msgstr "UTF-8 (disarankan)" msgid "Please save the file first. This section cannot be edited until then." msgstr "Harap simpan dulu. Seksi ini tak bisa disunting sebelum itu." msgid "Not all plural forms are translated." msgstr "Tidak semua bentuk jamak diterjemahkan." msgid "The translation should start as a sentence." msgstr "Terjemahan harus mulai sebagai satu kalimat." msgid "The translation should start with a lowercase character." msgstr "Terjemahan harus mulai dengan karakter huruf kecil." msgid "The translation doesn’t start with a space." msgstr "Terjemahan tidak diawali dengan sebuah spasi." msgid "The translation starts with a space, but the source text doesn’t." msgstr "Terjemahan diawali dengan sebuah spasi, tapi teks sumber tidak." msgid "The translation is missing a newline at the end." msgstr "Terjemahan kurang ganti baris di akhir." msgid "The translation ends with a newline, but the source text doesn’t." msgstr "Terjemahan berakhir dengan ganti baris, tapi teks sumber tidak." msgid "The translation is missing a space at the end." msgstr "Terjemahan kekurangan spasi di akhir." msgid "The translation ends with a space, but the source text doesn’t." msgstr "Terjemahan berakhir dengan spasi, tapi teks sumber tidak." #, c-format msgid "The translation should end with “%s”." msgstr "Terjemahan harus berakhir dengan \"%s\"." #, c-format msgid "The translation should not end with “%s”." msgstr "Terjemahan tidak boleh berakhir dengan \"%s\"." #, c-format msgid "The translation ends with “%s”, but the source text ends with “%s”." msgstr "" "Terjemahan berakhir dengan \"%s\", tapi teks sumber berakhir dengan \"%s\"." msgid "Comment:" msgstr "Komentar:" msgid "OK" msgstr "OK" msgid "C&lear" msgstr "&Bersihkan" msgid "Clear the comment" msgstr "Hapus komentar" msgid "New" msgstr "Baru" msgid "Create new translations project" msgstr "Buat projek terjemahan baru" msgid "Edit" msgstr "Sunting" msgid "Edit the project" msgstr "Menyunting projek" msgid "Delete the project" msgstr "Hapus projek" msgid "Update all" msgstr "Perbarui semua" msgid "Update all catalogs in the project" msgstr "Perbarui semua katalog dalam projek" msgid "Edit project" msgstr "Sunting projek" msgid "Project name:" msgstr "Nama projek:" msgid "Browse" msgstr "Ramban" msgid "Add directory to the list" msgstr "Tambahkan direktori ke daftar" msgid "&New…" msgstr "&Baru…" msgid "New from &POT/PO file…" msgstr "Baru dari berkas &POT/PO…" msgid "New From &POT/PO File…" msgstr "Baru Dari Berkas &POT/PO…" msgid "&Open…" msgstr "&Buka…" msgid "Open Recent" msgstr "Buka Yang Baru-baru Ini" msgid "Open from Crowdin…" msgstr "Buka dari Crowdin…" msgid "Open From Crowdin…" msgstr "Buka Dari Crowdin…" msgid "&Close" msgstr "&Tutup" msgid "&Save" msgstr "&Simpan" msgid "Save &as…" msgstr "Simpan seb&agai…" msgid "Save &As…" msgstr "Simp&an Sebagai…" msgid "Compile to MO…" msgstr "Kompail ke MO…" msgid "E&xport as HTML…" msgstr "E&kspor sebagai HTML…" msgid "Check for updates…" msgstr "Periksa pemutakhiran…" msgid "&Preferences…" msgstr "&Preferensi…" msgid "Catalogs &manager" msgstr "&Manajer katalog" msgid "Catalogs &Manager" msgstr "&Manajer Katalog" msgid "E&xit" msgstr "&Keluar" msgid "Quit" msgstr "Keluar" msgid "Copy from singular" msgstr "Salin dari bentuk tunggal" msgid "Copy From Singular" msgstr "Salin Dari Bentuk Tunggal" msgid "Translation needs &work" msgstr "Terjemahan perlu tindak &lanjut" msgid "Translation Needs &Work" msgstr "Terjemahan Perlu Tindak &Lanjut" msgid "Edit &comment" msgstr "Sunting &komentar" msgid "Edit &Comment" msgstr "Sunting &Komentar" msgid "Suggestions" msgstr "Saran" msgid "&Find…" msgstr "&Cari…" msgid "Replace…" msgstr "Ganti…" msgid "Find next" msgstr "Cari berikutnya" msgid "Find previous" msgstr "Cari sebelumnya" msgid "Find and Replace…" msgstr "Cari dan Ganti…" msgid "Find Next" msgstr "Cari Berikutnya" msgid "Find Previous" msgstr "Cari Sebelumnya" msgid "&Preferences" msgstr "&Preferensi" msgid "Display entry &IDs" msgstr "Menampilkan &ID entri" msgid "Display Entry &IDs" msgstr "Tampilkan &ID Entri" msgid "Sort by &file order" msgstr "Urutkan berdasar urutan &berkas" msgid "Sort by &File Order" msgstr "Urutkan Berdasar Urutan &Berkas" msgid "Sort by &source" msgstr "Urutkan berdasar &sumber" msgid "Sort by &Source" msgstr "Urutkan Berdasar &Sumber" msgid "Sort by &translation" msgstr "Urutkan berdasar &terjemahan" msgid "Sort by &Translation" msgstr "Urutkan Berdasar &Terjemahan" msgid "&Group by context" msgstr "&Kelompokkan menurut konteks" msgid "&Group By Context" msgstr "&Kelompokkan Menurut Konteks" msgid "Entries with errors first" msgstr "Entri dengan kesalahan di awal" msgid "Entries with Errors First" msgstr "Entri dengan Kesalahan Dulu" msgid "&Untranslated entries first" msgstr "Entri bel&um diterjemahkan di awal" msgid "&Untranslated Entries First" msgstr "Entri Bel&um Diterjemahkan Di Awal" msgid "&Show references" msgstr "Perlihatkan referen&si" msgid "&Show References" msgstr "Perlihatkan Referen&si" msgid "Show sidebar" msgstr "Tampilkan bilah sisi" msgid "Show status bar" msgstr "Tampilkan bilah status" msgid "C&atalog" msgstr "K&atalog" msgid "&Update from sources" msgstr "Perbar&ui dari sumber" msgid "&Update from Sources" msgstr "Perbar&ui dari Sumber" msgid "Update from &POT file…" msgstr "Mutakhirkan dari berkas &POT…" msgid "Update from &POT File…" msgstr "Mutakhirkan dari Berkas &POT…" msgid "Sync with Crowdin" msgstr "Selaraskan dengan Crowdin" msgid "Pre-&translate…" msgstr "Pra&terjemahkan…" msgid "&Purge deleted translations" msgstr "Buang terjemahan yang diha&pus" msgid "&Purge Deleted Translations" msgstr "Buang Terjemahan Yang Diha&pus" msgid "&Validate translations" msgstr "&Validasikan terjemahan" msgid "&Validate Translations" msgstr "&Validasikan Terjemahan" msgid "&Properties…" msgstr "&Properti…" msgid "&Done and next" msgstr "&Beres dan berikutnya" msgid "&Done and Next" msgstr "&Beres dan Berikutnya" msgid "&Previous translation" msgstr "Terjemahan se&belumnya" msgid "&Previous Translation" msgstr "Terjemahan Se&belumnya" msgid "&Next translation" msgstr "Terjemahan sela&njutnya" msgid "&Next Translation" msgstr "Terjemahan Sela&njutnya" msgid "P&revious unfinished" msgstr "Belum dite&rjemahkan sebelumnya" msgid "P&revious Unfinished" msgstr "Belum Dite&rjemahkan Sebelumnya" msgid "Ne&xt unfinished" msgstr "Belum diterjemahkan berikutn&ya" msgid "Ne&xt Unfinished" msgstr "Belum Diterjemahkan Berikutn&ya" msgid "Previous plural form" msgstr "Bentuk jamak sebelumnya" msgid "Previous Plural Form" msgstr "Bentuk Jamak Sebelumnya" msgid "Next plural form" msgstr "Bentuk jamak berikutnya" msgid "Next Plural Form" msgstr "Bentuk Jamak Selanjutnya" msgid "&Online help" msgstr "Bantuan &daring" msgid "&Online Help" msgstr "Bantuan &Daring" msgid "&GNU gettext manual" msgstr "Manual gettext &GNU" msgid "&GNU gettext Manual" msgstr "Manual gettext &GNU" msgid "&About Poedit" msgstr "Tent&ang Poedit" msgid "&About" msgstr "Ihw&al" msgid "Extractor setup" msgstr "Penyiapan ekstraktor" msgid "List of extensions separated by semicolons (e.g. *.cpp;*.h):" msgstr "Daftar ekstensi dipisah dengan titik koma (mis. *.cpp;*.h):" msgid "Invocation:" msgstr "Invokasi:" msgid "Command to extract translations:" msgstr "Perintah untuk mengekstrak terjemahan:" msgid "" "This is the command used to launch the extractor.\n" "%o expands to the name of output file, %K to list\n" "of keywords, %F to list of input files,\n" "%C to charset flag (see below)." msgstr "" "Ini adalah perintah yang dipakai untuk meluncurkan pengekstrak.\n" "%o diubah ke nama berkas keluaran, %K ke daftar\n" "kata kunci, %F ke daftar berkas masukan,\n" "%C ke flag set karakter (lihat di bawah)." msgid "An item in keywords list:" msgstr "Satu item di daftar kata kunci:" msgid "" "This will be attached to the command line once\n" "for each keyword. %k expands to the keyword." msgstr "" "Ini akan dilampirkan ke baris perintah sekali\n" "untuk tiap kata kunci. %k diubah ke kata kunci." msgid "An item in input files list:" msgstr "Satu item di daftar berkas masukan:" #, c-format msgid "" "This will be attached to the command line once\n" "for each input file. %f expands to the filename." msgstr "" "Ini akan dilampirkan ke baris perintah sekali\n" "untuk tiap berkas masukan. %f diubah ke nama berkas" msgid "Source code charset:" msgstr "Set karakter kode sumber:" #, c-format msgid "" "This will be attached to the command line\n" "only if source code charset was given. %c expands to charset value." msgstr "" "Ini akan dilampirkan ke baris perintah\n" "hanya jika sumber kode set karakter telah diberikan. %c diubah ke nilai set " "karakter." msgid "Catalog properties" msgstr "Properti katalog" msgid "Project name and version:" msgstr "Nama dan versi projek:" msgid "Language team:" msgstr "Tim bahasa:" msgid "Plural forms:" msgstr "Bentuk jamak:" msgid "Use default rules for this language" msgstr "Pakai aturan baku untuk bahasa ini" msgid "Use custom expression" msgstr "Gunakan ekspresi pilihan sendiri" msgid "Learn about plural forms" msgstr "Belajar tentang bentuk jamak" msgid "Charset:" msgstr "Set karakter:" msgid "Advanced Extraction Settings…" msgstr "Pengaturan Ekstraksi Tingkat Lanjut…" msgid "Advanced extraction settings…" msgstr "Pengaturan ekstraksi tingkat lanjut…" msgid "Translation Properties" msgstr "Properti Terjemahan" msgid "Translation properties" msgstr "Properti terjemahan" msgid "Sources Paths" msgstr "Path Sumber" msgid "Sources paths" msgstr "Path sumber" msgid "Extract text from source files in the following directories:" msgstr "Ekstrak teks dari berkas sumber di direktori berikut:" msgid "Base path:" msgstr "Path dasar:" msgid "Sources Keywords" msgstr "Kata Kunci Sumber" msgid "Sources keywords" msgstr "Kata-kata kunci sumber" msgid "" "Use these keywords (function names) to recognize translatable strings\n" "in source files:" msgstr "" "Gunakan kata-kata kunci ini (nama-nama fungsi) untuk mengenali\n" "kalimat yang dapat diterjemahkan di berkas sumber:" msgid "Also use default keywords for supported languages" msgstr "Juga menggunakan kata kunci default untuk bahasa yang didukung" msgid "Learn About Gettext Keywords" msgstr "Pelajari tentang kata kunci gettext" msgid "Learn about gettext keywords" msgstr "Belajar tentang kata kunci gettext" msgid "Update summary" msgstr "Perbarui rangkuman" msgid "" "These strings were found in the sources but were not in the catalog.\n" "Poedit will add them to the catalog now." msgstr "" "Kalimat ini ditemukan dalam sumber tapi tidak di katalog.\n" "Sekarang Poedit akan menambahkan ke katalog." msgid "New strings" msgstr "Kalimat baru" msgid "" "These strings are no longer in the sources.\n" "Poedit will remove them from the catalog now." msgstr "" "Kalimat ini sudah tidak ada di sumber.\n" "Sekarang Poedit akan menghapus dari katalog." msgid "Obsolete strings" msgstr "Kalimat usang" msgid "(0 new, 0 obsolete)" msgstr "(0 baru, 0 usang)" msgid "Open" msgstr "Buka" msgid "Save catalog" msgstr "Simpan katalog" msgid "Validate" msgstr "Validasikan" msgid "Check for errors in the translation" msgstr "Periksa kesalahan dalam terjemahan" msgid "Update" msgstr "Perbarui" msgid "Update catalog - synchronize it with sources" msgstr "Perbarui katalog - mensinkronkan dengan sumber" msgid "Sidebar" msgstr "Bilah Sisi" msgid "Show or hide the sidebar" msgstr "Tampilkan atau sembunyikan bilah sisi" #. TRANSLATORS: "Previous" as in used in the past, now replaced with newer. msgid "Previous source text:" msgstr "Teks sumber sebelumnya:" msgid "" "The old source text (before it changed during an update) that the now-" "inaccurate translation corresponds to." msgstr "" "Teks sumber lama (sebelum berubah selama pemutakhiran) yang berkaitan dengan " "terjemahan kurang tepat." msgid "Notes for translators:" msgstr "Catatan bagi para penerjemah:" msgid "Add comment" msgstr "Tambah komentar" msgid "Add Comment" msgstr "Tambah Komentar" msgid "Translation suggestions:" msgstr "Saran terjemahan:" #. TRANSLATORS: This is shown when no translation suggestions can be found in the TM (Windows). msgid "No matches found" msgstr "Tak ditemukan yang cocok" #. TRANSLATORS: This is shown when no translation suggestions can be found in the TM (macOS, Linux). msgid "No Matches Found" msgstr "Tak Ditemukan Yang Cocok" msgid "This string was found in Poedit’s translation memory." msgstr "String ini ditemukan dalam memori terjemahan Poedit." msgid "Cannot create temporary directory." msgstr "Tak bisa membuat direktori sementara." msgid "Welcome to Poedit" msgstr "Selamat Datang di Poedit" #. TRANSLATORS: This is version information in about dialog, "%s" will be #. version number when used #, c-format msgid "Version %s" msgstr "Versi %s" msgid "Edit a Translation" msgstr "Edit Penerjemahan" msgid "Edit a translation" msgstr "Sunting suatu terjemahan" msgid "Open an existing PO file and edit the translation." msgstr "Buka berkas PO yang ada dan sunting terjemahan tersebut." msgid "" "Take an existing PO file or POT template and create a new translation from " "it." msgstr "" "Ambil berkas PO atau templat POT yang ada dan buat terjemahan baru darinya." msgid "Collaborate on a Translation with Others" msgstr "Berkolaborasi terjemahan dengan orang lain" msgid "Collaborate on a translation with others" msgstr "Bekerja sama pada suatu terjemahan dengan orang lain" msgid "" "Download a file from Crowdin project, translate and sync your changes back." msgstr "" "Unduh suatu berkas dari proyek Crowdin, terjemahkan, dan selaraskan balik " "perubahan Anda." msgid "What is Crowdin?" msgstr "Apa itu Crowdin?" msgid "There are no translations. That’s unusual." msgstr "Tidak ada terjemahan. Itu tidak biasa." msgid "" "Translatable entries aren’t added manually in the Gettext system, but are " "automatically extracted\n" "from source code. This way, they stay up to date and accurate.\n" "Translators typically use PO template files (POTs) prepared for them by the " "developer." msgstr "" "Entri-entri yang dapat diterjemahkan tidak ditambahkan secara manual dalam " "sistem Gettext, tapi\n" "diekstrak secara otomatis dari kode sumber. Dengan cara ini, mereka tetap " "mutakhir dan akurat.\n" "Penerjemah biasanya memakai berkas templat PO (POT) yang disiapkan untuk " "mereka oleh pengembang." msgid "(Learn more about GNU gettext)" msgstr "(Belajar lebih banyak tentang gettext GNU)" msgid "The simplest way to fill this catalog is to update it from a POT:" msgstr "" "Cara termudah untuk memenuhi katalog ini adalah dengan memutakhirkannya dari " "suatu POT:" msgid "Update from POT" msgstr "Perbarui dari POT" msgid "Take translatable strings from an existing POT template." msgstr "" "Ambil kalimat-kalimat yang dapat diterjemahkan dari templat POT yang ada." msgid "" "You can also extract translatable strings directly from the source code:" msgstr "" "Anda juga dapat mengekstrak string yang dapat diterjemahkan secara langsung " "dari kode sumber:" msgid "Extract from sources" msgstr "Ekstrak dari sumber" msgid "Configure source code extraction in Properties." msgstr "Atur konfigurasi ekstraksi kode sumber dalam Properti." msgid "Sync" msgstr "Selaraskan" msgid "Synchronize the translation with Crowdin" msgstr "Selaraskan terjemahan dengan Crowdin" #. TRANSLATORS: This is titlebar of about dialog, "%s" is application name #. ("Poedit" here, but please use "%s") #, c-format msgid "About %s" msgstr "Tentang %s" #. TRANSLATORS: Title of the preferences window on Windows and Linux. "%s" is replaced with "Poedit" when running. #, c-format msgid "%s Preferences" msgstr "Preferensi %s" #. TRANSLATORS: macOS item in app menu msgid "Services" msgstr "Layanan" #. TRANSLATORS: macOS item in app menu, %s is replaced with "Poedit" #, c-format msgid "Hide %s" msgstr "Sembunyikan %s" #. TRANSLATORS: macOS item in app menu msgid "Hide Others" msgstr "Sembunyikan Yang Lain" #. TRANSLATORS: macOS item in app menu msgid "Show All" msgstr "Tampilkan Semua" #. TRANSLATORS: macOS item in app menu, %s is replaced with "Poedit" #, c-format msgid "Quit %s" msgstr "Keluar %s" #. TRANSLATORS: macOS item in app menu msgid "Preferences…" msgstr "Preferensi…" msgid "Preferences..." msgstr "Preferensi..." #. TRANSLATORS: Title of a category in Windows task menu (right-click icon in taskbar) msgid "Recent" msgstr "Baru-baru Ini" #. TRANSLATORS: Title of a category in Windows task menu (right-click icon in taskbar) msgid "Frequent" msgstr "Sering" msgid "&Apply" msgstr "Ter&apkan" msgid "Apply" msgstr "Terapkan" msgid "&Back" msgstr "Mun&dur" msgid "Back" msgstr "Mundur" msgid "&Cancel" msgstr "&Batal" msgid "&Clear" msgstr "&Bersihkan" msgid "Clear" msgstr "Bersihkan" msgid "Copy" msgstr "Salin" msgid "Cu&t" msgstr "Po&tong" msgid "Cut" msgstr "Memotong" msgid "&Delete" msgstr "&Hapus" msgid "&Quit" msgstr "&Keluar" msgid "File" msgstr "Berkas" msgid "Help" msgstr "Bantuan" msgid "&New" msgstr "&Baru" msgid "&No" msgstr "&Tidak" msgid "No" msgstr "Tidak" msgid "&OK" msgstr "&OK" msgid "Open…" msgstr "Buka…" msgid "&Open..." msgstr "&Buka..." msgid "Open..." msgstr "Buka..." msgid "&Paste" msgstr "Tem&pel" msgid "Paste" msgstr "Tempel" msgid "Preferences" msgstr "Preferensi" msgid "&Redo" msgstr "Jadi &Lagi" msgid "Refresh" msgstr "Segarkan" msgid "&Save as" msgstr "&Simpan sebagai" msgid "Save as" msgstr "Simpan sebagai" msgid "Select &All" msgstr "Pilih Semu&a" msgid "Select All" msgstr "Pilih Semua" msgid "&Undo" msgstr "&Batalkan" msgid "&Yes" msgstr "&Ya" msgid "Yes" msgstr "Ya" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Shift+" msgstr "Shift+" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Enter" msgstr "Enter" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Up" msgstr "Naik" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Down" msgstr "Turun" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Left" msgstr "Kiri" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Right" msgstr "Kanan" #. TRANSLATORS: Keyboard shortcut, must correspond to translation of "Ctrl+" msgid "ctrl" msgstr "ctrl" #. TRANSLATORS: Keyboard shortcut, must correspond to translation of "Alt+" msgid "alt" msgstr "alt" #. TRANSLATORS: Keyboard shortcut, must correspond to translation of "Shift+" msgid "shift" msgstr "shift" poedit-2.0.6/locales/pt_BR.po0000664000372000037200000015321513230131554012720 00000000000000msgid "" msgstr "" "Project-Id-Version: poedit\n" "Report-Msgid-Bugs-To: help@poedit.net\n" "POT-Creation-Date: 2017-12-05 15:52+0100\n" "PO-Revision-Date: 2017-12-05 09:50-0500\n" "Last-Translator: vslavik \n" "Language-Team: Portuguese, Brazilian\n" "Language: pt_BR\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: crowdin.com\n" "X-Crowdin-Project: poedit\n" "X-Crowdin-Language: pt-BR\n" "X-Crowdin-File: /locales/poedit.pot\n" msgid "Hide this notification message" msgstr "Esconder esta mensagem de notificação" msgid "Don’t Show Again" msgstr "Não Mostrar Novamente" msgid "Don’t show again" msgstr "Não mostrar novamente" #, c-format msgid "(New: %i, obsolete: %i)" msgstr "(Novas: %i, obsoletas: %i)" msgid "Updating catalog" msgstr "Atualizando catálogo" msgid "Collecting source files…" msgstr "Coletando arquivos de origem…" msgid "Extracting translatable strings…" msgstr "Extraindo sequências de caracteres traduzíveis…" msgid "Failed to load extracted catalog." msgstr "Falha ao carregar o catálogo extraído." msgid "Merging differences…" msgstr "Mesclando diferenças…" #, c-format msgid "“%s” is not a valid POT file." msgstr "\"%s\" não é um arquivo POT válido." #, c-format msgid "%i line of file “%s” was not loaded correctly." msgid_plural "%i lines of file “%s” were not loaded correctly." msgstr[0] "%i linha do arquivo \"%s\" não foi carregada corretamente." msgstr[1] "%i linhas do arquivo \"%s\" não foram carregadas corretamente." #, c-format msgid "Line %d of file “%s” is corrupted (not valid %s data)." msgstr "A linha %d do arquivo \"%s\" está corrompida (dados %s inválidos)." #, c-format msgid "Malformed header: “%s”" msgstr "Cabeçalho malformado: \"%s\"" msgid "" "Broken catalog file: singular form msgstr used together with msgid_plural" msgstr "" "Arquivo do catálogo quebrado: a forma singular do msgst foi usada junta com " "o msgid_plural" msgid "Broken catalog file: plural form msgstr used without msgid_plural" msgstr "" "Arquivo do catálogo quebrado: a forma plural do msgst foi usada sem o " "msgid_plural" msgid "" "There were errors when loading the catalog. Some data may be missing or " "corrupted as the result." msgstr "" "Houve erros quando carregava o catálogo. Alguns dados podem estar ausentes " "ou corrompidos como resultado." #, c-format msgid "Couldn’t load file %s, it is probably corrupted." msgstr "Erro ao carregar o arquivo %s, provavelmente ele está corrompido." #, c-format msgid "" "File “%s” is read-only and cannot be saved.\n" "Please save it under different name." msgstr "" "O arquivo \"%s\" é somente leitura e não pode ser salvo.\n" "Salve-o com outro nome." #, c-format msgid "Couldn’t save file %s." msgstr "Não foi possível salvar arquivo %s." msgid "" "There was a problem formatting the file nicely (but it was saved all right)." msgstr "" "Houve um problema ao formatar o arquivo (mas ele foi salvo corretamente)." #, c-format msgid "" "The catalog couldn’t be saved in “%s” charset as specified in catalog " "settings.\n" "\n" "It was saved in UTF-8 instead and the setting was modified accordingly." msgstr "" "O catálogo não pôde ser salvo na tabela de caracteres \"%s\" como " "especificado nas configurações do catálogo. \n" "\n" "Ele foi salvo em UTF-8 e a configuração foi devidamente alterada." msgid "Error saving catalog" msgstr "Erro ao salvar o catálogo" msgid "PO Translation Files" msgstr "Arquivos de Tradução PO" msgid "POT Translation Templates" msgstr "Modelos de Tradução POT" msgid "All Translation Files" msgstr "Todos os Arquivos de Tradução" msgid "(Use default language)" msgstr "(Usar idioma padrão)" msgid "Select your preferred language" msgstr "Selecione seu idioma preferido" msgid "Language selection" msgstr "Seleção de idioma" msgid "You must restart Poedit for this change to take effect." msgstr "Você deve reiniciar o Poedit para validar as alterações." msgid "Syncing" msgstr "Sincronização" #. TRANSLATORS: %s is a cloud destination, e.g. "Crowdin" or ftp.wordpress.com etc. #, c-format msgid "Syncing with %s…" msgstr "Sincronizando com %s…" #. TRANSLATORS: %s is a cloud destination, e.g. "Crowdin" or ftp.wordpress.com etc. #, c-format msgid "Syncing with %s failed." msgstr "A sincronização com %s falhou." msgid "Syncing error" msgstr "Erro de sincronização" msgid "Downloading translations is disabled in this project." msgstr "O download de traduções está desativado neste projeto." msgid "Not authorized, please sign in again." msgstr "Não autorizado. Inicie a sessão novamente." msgid "" "Crowdin is an online localization management platform and collaborative " "translation tool. Poedit can seamlessly sync PO files managed at Crowdin." msgstr "" "O Crowdin é uma plataforma de gerenciamento de localizações online e " "ferramenta de tradução colaborativa. O Poedit pode sincronizar uniformemente " "arquivos PO gerenciados no Crowdin." msgid "Sign In" msgstr "Logar" msgid "Sign in" msgstr "Ingressar" msgid "Sign Out" msgstr "Sair" msgid "Sign out" msgstr "Sair" msgid "Waiting for authentication…" msgstr "Aguardando autenticação…" msgid "Updating user information…" msgstr "Atualizando informações do usuário…" msgid "Signed in as:" msgstr "Logado como:" msgid "Learn More About Crowdin" msgstr "Saiba mais sobre o Crowdin" msgid "Learn more about Crowdin" msgstr "Saiba mais sobre o Crowdin" msgid "Sign in to Crowdin" msgstr "Ingressar ao Crowdin" msgid "Open Crowdin translation" msgstr "Abrir tradução do Crowdin" msgid "Project:" msgstr "Projeto:" msgid "Language:" msgstr "Idioma:" msgid "File:" msgstr "Arquivo:" msgid "No translation projects listed in your Crowdin account." msgstr "Não existem projetos de tradução associados à sua conta Crowdin." msgid "This project has no files that can be translated in Poedit." msgstr "Este projeto não tem arquivos que possam ser traduzidos no Poedit." msgid "This file can only be edited in Crowdin’s web interface." msgstr "Este arquivo só pode ser editado na interface web do Crowdin." msgid "Downloading latest translations…" msgstr "Baixando as traduções mais recentes…" msgid "Syncing with Crowdin failed." msgstr "A sincronização com o Crowdin falhou." msgid "Crowdin error" msgstr "Erro do Crowdin" msgid "Uploading translations…" msgstr "Fazendo upload das traduções…" msgid "&Copy" msgstr "&Copiar" msgid "Learn more" msgstr "Saiba mais" msgid "Learn More" msgstr "Aprenda Mais" msgid "&Help" msgstr "&Ajuda" msgid "MO files can’t be directly edited in Poedit." msgstr "Arquivos MO não podem ser editados diretamente no Poedit." msgid "Error opening file" msgstr "Erro ao abrir o arquivo" msgid "" "Please open and edit the corresponding PO file instead. When you save it, " "the MO file will be updated as well." msgstr "" "Por favor abra e edite o arquivo PO correspondente ao invés disto. Quando " "você salvá-lo, o arquivo MO será atualizado também." msgid "don’t delete temporary files (for debugging)" msgstr "não apagar arquivos temporários (para depuração)" msgid "handle a poedit:// URI" msgstr "Manipular com uma URI do poedit://" msgid "go to item at given line number" msgstr "vá para o item no número de linha fornecido" msgid "Failed to communicate with Poedit process." msgstr "Falha de comunicação com o processo do Poedit." #, c-format msgid "Unhandled exception occurred: %s" msgstr "Ocorreu uma exceção não manipulada: %s" msgid "Open catalog" msgstr "Abrir catálogo" #, c-format msgid "File “%s” doesn’t exist." msgstr "O arquivo \"%s\" não existe." msgid "Poedit is an easy to use translations editor." msgstr "O Poedit é um editor de traduções fácil de usar." msgid "Catalogs Manager" msgstr "Gerenciador de Catálogos" msgid "Check for Updates…" msgstr "Verificar Atualizações…" msgid "&Edit" msgstr "&Editar" msgid "Undo" msgstr "Desfazer" msgid "Redo" msgstr "Refazer" msgid "Paste and Match Style" msgstr "Colar e Combinar Estilo" msgid "Delete" msgstr "Apagar" msgid "Spelling and Grammar" msgstr "Ortografia e Gramática" msgid "Show Spelling and Grammar" msgstr "Mostrar Ortografia e Gramática" msgid "Check Document Now" msgstr "Verificar Documento Agora" msgid "Check Spelling While Typing" msgstr "Verificar a Ortografia Enquanto Digitar" msgid "Check Grammar With Spelling" msgstr "Verificar Gramática com Ortografia" msgid "Correct Spelling Automatically" msgstr "Corrigir Ortografia Automaticamente" msgid "Substitutions" msgstr "Substituições" msgid "Show Substitutions" msgstr "Mostrar Substituições" msgid "Smart Copy/Paste" msgstr "Copiar/Colar Inteligente" msgid "Smart Quotes" msgstr "Aspas Inteligentes" msgid "Smart Dashes" msgstr "Hífens Inteligentes" msgid "Smart Links" msgstr "Links Inteligentes" msgid "Text Replacement" msgstr "Substituição de Texto" msgid "Transformations" msgstr "Transformações" msgid "Make Upper Case" msgstr "Tornar Maiúscula" msgid "Make Lower Case" msgstr "Converter em minúsculas" msgid "Capitalize" msgstr "Letras Iniciais em Maiúsculas" msgid "Speech" msgstr "Fala" msgid "Start Speaking" msgstr "Começar a Falar" msgid "Stop Speaking" msgstr "Parar de Falar" msgid "&View" msgstr "&Visualizar" msgid "Enter Full Screen" msgstr "Entrar em Tela Cheia" msgid "Window" msgstr "Janela" msgid "Minimize" msgstr "Minimizar" msgid "Zoom" msgstr "Zoom" msgid "Bring All to Front" msgstr "Trazer Tudo pra Frente" #. TRANSLATORS:File kind displayed in Finder/Explorer msgid "PO Translation" msgstr "Tradução PO" msgid "The file cannot be opened." msgstr "O arquivo não pode ser aberto." msgid "Invalid file" msgstr "Arquivo inválido" msgid "" "The file may be either corrupted or in a format not recognized by Poedit." msgstr "" "O arquivo pode estar corrompido ou em um formato não reconhecido pelo Poedit." msgid "You can’t drop more than one file on Poedit window." msgstr "Você não pode soltar mais do que um arquivo na janela do Poedit." #, c-format msgid "File “%s” is not a message catalog." msgstr "O arquivo \"%s\" não é um catálogo de mensagens." msgid "Poedit" msgstr "Poedit" msgid "&File" msgstr "&Arquivo" msgid "&Go" msgstr "&Ir" #. TRANSLATORS: %s is language name in its basic form (as you #. would see e.g. in a list of supported languages). You may need #. to rephrase it, e.g. to an equivalent of "for language %s". #, c-format msgid "" "Spellchecking is disabled, because the dictionary for %s isn’t installed." msgstr "" "A verificação ortográfica está desativada, porque o dicionário para %s não " "está instalado." msgid "Install" msgstr "Instalar" msgid "Catalog modified. Do you want to save changes?" msgstr "Catálogo modificado. Você deseja salvar as alterações?" msgid "Save changes" msgstr "Salvar mudanças" msgid "Your changes will be lost if you don’t save them." msgstr "Suas alterações serão perdidas se você não salvá-las." msgid "Save" msgstr "Salvar" msgid "Don’t save" msgstr "Não salvar" msgid "Don’t Save" msgstr "Não salvar" msgid "Save as…" msgstr "Salvar como…" msgid "Compile to…" msgstr "Compilar para…" msgid "Compiled Translation Files" msgstr "Arquivos de Tradução Compilados" msgid "Export as…" msgstr "Exportar como…" msgid "HTML Files" msgstr "Arquivos HTML" msgid "Open catalog template" msgstr "Abrir modelo de catálogo" msgid "Source code not available." msgstr "Código-fonte não disponível." msgid "Updating failed" msgstr "A atualização falhou" msgid "" "Translations couldn’t be updated from the source code, because no code was " "found in the location specified in the catalog’s Properties." msgstr "" "As traduções não puderam ser atualizadas do código-fonte, porque nenhum " "código foi achado no local especificado nas Propriedades do catálogo." msgid "Entries in the catalog are probably incorrect." msgstr "As entradas no catálogo provavelmente estão incorretas." msgid "Updating the catalog failed. Click on 'Details >>' for details." msgstr "" "A atualização do catálogo falhou. Clique em 'Detalhes >>' para mais " "informações." #, c-format msgid "%d issue with the translation found." msgid_plural "%d issues with the translation found." msgstr[0] "%d problema encontrado na tradução." msgstr[1] "%d problemas encontrados na tradução." msgid "Validation results" msgstr "Resultados da validação" msgid "" "Entries with errors were marked in red in the list. Details of the error " "will be shown when you select such an entry." msgstr "" "As entradas com erros foram marcadas em vermelho na lista. Detalhes do erro " "serão exibidos quando você selecionar uma entrada." msgid "The file was saved safely." msgstr "O arquivo foi salvo com segurança." msgid "" "The file was saved safely and compiled into the MO format, but it will " "probably not work correctly." msgstr "" "O arquivo foi salvo com segurança e compilado no formato MO, mas " "provavelmente não funcionará corretamente." msgid "" "The file was saved safely, but it cannot be compiled into the MO format and " "used." msgstr "" "O arquivo foi salvo com segurança, mas não pode ser compilado no formato MO " "e usado." msgid "" "The file was compiled into the MO format, but it will probably not work " "correctly." msgstr "" "O arquivo foi compilado no formato MO, mas ele provavelmente não funcionará " "corretamente." msgid "The file cannot be compiled into the MO format and used." msgstr "O arquivo não pode ser compilado para o formato MO e usado." msgid "No problems with the translation found." msgstr "Não foram encontrados problemas na tradução." #, c-format msgid "The translation is ready for use, but %d entry is not translated yet." msgid_plural "" "The translation is ready for use, but %d entries are not translated yet." msgstr[0] "" "A tradução está pronta para ser usada, mas %d entrada ainda não foi " "traduzida." msgstr[1] "" "A tradução está pronta para ser usada, mas %d entradas ainda não foram " "traduzidas." msgid "The translation is ready for use." msgstr "A tradução pronta para ser usada." #, c-format msgid "Poedit automatically fixed invalid content in the file “%s”." msgstr "" "O Poedit consertou automaticamente o conteúdo inválido no arquivo \"%s\"." msgid "" "The file contained duplicate items, which is not allowed in PO files and " "would prevent the file from being used. Poedit fixed the issue, but you " "should review translations of any items marked as needing work and correct " "them if necessary." msgstr "" "O arquivo continha itens duplicados, o que não é permitido em arquivos PO e " "impediria a utilização do arquivo. O Poedit corrigiu o problema, mas você " "deve revisar as traduções de todos os itens marcados como incertos e corrigi-" "los se necessário." msgid "Language of the translation isn’t set." msgstr "O idioma da tradução não está definido." msgid "Set Language" msgstr "Definir Idioma" msgid "Set language" msgstr "Definir idioma" #. TRANSLATORS: This is shown underneath "Language of the translation isn't set (or ...is the same as source language)." msgid "" "Suggestions are not available if the translation language is not set " "correctly. Other features, such as plural forms, may be affected as well." msgstr "" "As sugestões não estarão disponíveis se o idioma da tradução não estiver " "definido corretamente. Outros recursos, como formas de plural, também podem " "ser afetados." msgid "Language of the translation is the same as source language." msgstr "O idioma da tradução é o mesmo do idioma de origem." msgid "Fix Language" msgstr "Consertar o Idioma" msgid "Fix language" msgstr "Consertar o idioma" msgid "" "This catalog has entries with plural forms, but doesn’t have Plural-Forms " "header configured." msgstr "" "Este catálogo tem entradas com formas no plural, mas não tem o cabeçalho de " "formas de plural configurado." msgid "" "Entries in this catalog have different plural forms count from what " "catalog’s Plural-Forms header says" msgstr "" "As entradas neste catálogo tem contagens de formas de plural diferentes das " "formas de plural que o cabeçalho do catálogo diz" msgid "Required header Plural-Forms is missing." msgstr "O cabeçalho exigido Formas-Plural está ausente." #, c-format msgid "Syntax error in Plural-Forms header (\"%s\")." msgstr "Erro de sintaxe no cabeçalho Formas-Plural (\"%s\")." msgid "Fix the Header" msgstr "Consertar o cabeçalho" msgid "Fix the header" msgstr "Consertar o cabeçalho" #. TRANSLATORS: %s is language name in its basic form (as you #. would see e.g. in a list of supported languages). You may need #. to rephrase it, e.g. to an equivalent of "for language %s". #, c-format msgid "Plural forms expression used by the catalog is unusual for %s." msgstr "A expressão usada de formas de plural pelo catálogo é incomum para %s." #. TRANSLATORS: A verb, shown as action button with ""Plural forms expression used by the catalog is unusual for %s.")" msgid "Review" msgstr "Revisar" #, c-format msgid "Error loading message catalog file “%s”." msgstr "Erro ao carregar o arquivo do catálogo de mensagens \"%s\"." #, c-format msgid "Translated: %d of %d (%d %%)" msgstr "Traduzidos: %d de %d (%d %%)" #, c-format msgid "Remaining: %d" msgstr "Restante: %d" #, c-format msgid "%d error" msgid_plural "%d errors" msgstr[0] "%d erro" msgstr[1] "%d erros" #, c-format msgid "%d entry" msgid_plural "%d entries" msgstr[0] "%d entrada" msgstr[1] "%d entradas" msgid " (unsaved)" msgstr " (não salvo)" msgid " (modified)" msgstr " (modificado)" #, c-format msgid "Failed to update translation memory: %s" msgstr "Falha ao atualizar a memória de traduções: %s" msgid "Purge deleted translations" msgstr "Remover traduções excluídas" msgid "Do you want to remove all translations that are no longer used?" msgstr "Você deseja remover todas as traduções que não são mais usadas?" msgid "" "If you continue with purging, all translations marked as deleted will be " "permanently removed. You will have to translate them again if they are added " "back in the future." msgstr "" "Se você continuar com a remoção, todas as traduções marcadas como apagadas " "serão removidas permanentemente. Você terá que traduzi-las novamente se elas " "forem readicionadas no futuro." msgid "Keep" msgstr "Manter" msgid "Purge" msgstr "Remover" msgid "Copy from source text" msgstr "Copiar do texto fonte" msgid "Copy from Source Text" msgstr "Copiar do Texto Fonte" #. TRANSLATORS: This is the key shortcut used in menus on Windows, some languages call them differently #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Ctrl+" msgstr "Ctrl+" msgid "Clear translation" msgstr "Limpar tradução" msgid "Clear Translation" msgstr "Limpar Tradução" msgid "Edit comment" msgstr "Editar comentário" msgid "Edit Comment" msgstr "Editar Comentário" msgid "References:" msgstr "Referências:" msgid "&Bookmarks" msgstr "&Marcadores" #. TRANSLATORS: This is the key shortcut used in menus on Windows, some languages call them differently #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Alt+" msgstr "Alt+" #, c-format msgid "Set bookmark %i" msgstr "Definir favorito %i" #, c-format msgid "Go to bookmark %i" msgstr "Ir para o favorito %i" #, c-format msgid "Set Bookmark %i" msgstr "Definir Favorito %i" #, c-format msgid "Go to Bookmark %i" msgstr "Ir para o favorito %i" msgid "Hide Sidebar" msgstr "Esconder a Barra Lateral" msgid "Show Sidebar" msgstr "Mostrar Barra Lateral" msgid "Hide Status Bar" msgstr "Esconder a Barra de Status" msgid "Show Status Bar" msgstr "Mostrar Barra de Status" msgid "Source text:" msgstr "Texto fonte:" msgid "Singular:" msgstr "Singular:" msgid "Plural:" msgstr "Plural:" msgid "Translation:" msgstr "Tradução:" msgid "Pre-translated" msgstr "Pré-traduzida" msgid "Needs Work" msgstr "Precisa de trabalho" #. TRANSLATORS: This indicates that the string's translation isn't final #. and has known problems. For example, it might be machine translated or #. fuzzy matched from an older string. The translation should be short and #. convey this. If it's problematic to translate it, "Needs review" is #. acceptable substitute, but note that the meaning is subtly different: #. "needs review" implies that somebody else should review the string after #. I am done with it (i.e. consider it good), while "needs work" implies I #. need to return to it and finish the translation. msgid "Needs work" msgstr "Imprecisa" msgid "" "POT files are only templates and don’t contain any translations themselves.\n" "To make a translation, create a new PO file based on the template." msgstr "" "Arquivos POT são apenas modelos e não contêm quaisquer traduções.\n" "Para fazer uma tradução, crie um novo arquivo PO com base no modelo." msgid "Create New Translation" msgstr "Criar Nova Tradução" msgid "Create new translation" msgstr "Criar nova tradução" msgid "Everything" msgstr "Tudo" #, c-format msgid "Form %i" msgstr "Forma %i" msgid "Singular" msgstr "Singular" msgid "Zero" msgstr "Zero" msgid "One" msgstr "Um" msgid "Two" msgstr "Dois" msgid "Plural" msgstr "Plural" msgid "Other" msgstr "Outro" #, c-format msgid "%s Format" msgstr "Formato %s" #. TRANSLATORS: %s is replaced with language name, e.g. "PHP" or "C", so "PHP Format" etc." #, c-format msgid "%s format" msgstr "Formato %s" msgid "Source text" msgstr "Texto fonte" #, c-format msgid "Translation — %s" msgstr "Tradução — %s" msgid "ID" msgstr "ID" #, c-format msgid "Source text — %s" msgstr "Texto fonte — %s" msgid "unknown language" msgstr "idioma desconhecido" #, c-format msgid "Failed command: %s" msgstr "O comando falhou: %s" msgid "Failed to merge gettext catalogs." msgstr "Falha ao mesclar catálogos do gettext." msgid "Source file" msgstr "Arquivo fonte" msgid "Source file occurrence:" msgstr "Ocorrência do arquivo fonte:" msgid "Open in Editor" msgstr "Abrir no Editor" msgid "Open in editor" msgstr "Abrir no editor" msgid "No references for the selected item." msgstr "Não existem referências para o item selecionado." #, c-format msgid "Error opening file %s!" msgstr "Erro ao abrir o arquivo %s!" msgid "Find" msgstr "Achar" msgid "Replace" msgstr "Substituir" #. TRANSLATORS: Expander in Find window for additional options (case sensitive etc.) msgid "Options" msgstr "Opções" msgid "Ignore case" msgstr "Ignorar maiúsculas e minúsculas" msgid "Wrap around" msgstr "Pesquisa circular" msgid "Whole words only" msgstr "Somente palavras inteiras" msgid "Find in source texts" msgstr "Localizar nos textos fonte" msgid "Find in translations" msgstr "Achar nas traduções" msgid "Find in comments" msgstr "Achar nos comentários" msgid "Close" msgstr "Fechar" msgid "Replace &All" msgstr "Substituir &Tudo" msgid "Replace &all" msgstr "Substituir &tudo" msgid "&Replace" msgstr "Substitui&r" msgid "< &Previous" msgstr "< &Anterior" msgid "&Next >" msgstr "&Próximo >" msgid "String to find" msgstr "String para localizar" msgid "Replacement string" msgstr "String de substituição" #, c-format msgid "Cannot execute program: %s" msgstr "Não pode executar o programa: %s" msgid "Language Code or Name (e.g. en_GB)" msgstr "Código ou Nome do Idioma (ex.: pt_BR)" msgid "Translation Language" msgstr "Idioma da Tradução" msgid "Language of the translation:" msgstr "Idioma da tradução:" msgid "Poedit - Catalogs manager" msgstr "Poedit - Gerenciador de catálogos" msgid "Catalog" msgstr "Catálogo" msgid "Total" msgstr "Total" msgid "Untrans" msgstr "Sem Tradução" msgid "Errors" msgstr "Erros" msgid "Last modified" msgstr "Última modificação" msgid "Select directory" msgstr "Selecionar diretório" msgid "Directories:" msgstr "Diretórios:" msgid "" msgstr "" msgid "Do you want to delete the project?" msgstr "Você deseja realmente excluir o projeto?" msgid "Confirmation" msgstr "Confirmação" msgid "" "Do you really want to do mass update of\n" "all catalogs in this project?" msgstr "" "Você deseja realmente realizar uma atualização em\n" "massa de todos os catálogos desse projeto?" msgid "Information about the translator" msgstr "Informações sobre o tradutor" msgid "Name:" msgstr "Nome:" msgid "Your Name" msgstr "Seu Nome" msgid "Email:" msgstr "E-mail:" msgid "your_email@example.com" msgstr "seu_email@exemplo.com" msgid "" "Your name and email address are only used to set the Last-Translator header " "of GNU gettext files." msgstr "" "Seu nome e endereço de e-mail só são usados pra definir o cabeçalho do " "Último-Tradutor dos arquivos gettext do GNU." msgid "Editing" msgstr "Editando" msgid "Automatically compile MO file when saving" msgstr "Compilar automaticamente o arquivo MO ao salvar" msgid "Show summary after catalog update" msgstr "Mostrar sumário após a atualização do catálogo" msgid "Check spelling" msgstr "Verificar ortografia" msgid "Always change focus to text input field" msgstr "Sempre mudar o foco para o campo de entrada de texto" msgid "" "Never let the list of strings take focus. If enabled, you must use Ctrl-" "arrows for keyboard navigation but you can also type text immediately, " "without having to press Tab to change focus." msgstr "" "Nunca deixe a lista de strings tirar o foco. Se ativado, você deve usar Ctrl-" "setas de navegação do teclado, mas você também pode digitar o texto " "imediatamente, sem ter que pressionar Tab para mudar o foco." msgid "Appearance" msgstr "Aparência" msgid "Use custom list font:" msgstr "Usar fonte personalizada da lista:" msgid "Use custom text fields font:" msgstr "Usar fonte dos campos de texto personalizada:" msgid "Change UI language" msgstr "Selecionar idioma da interface" #. TRANSLATORS: This is a note appended to "Check spelling" when running on older Windows versions msgid "(requires Windows 8 or newer)" msgstr "(requer Windows 8 ou mais novo)" msgid "General" msgstr "Geral" msgid "Use translation memory" msgstr "Usar a memória das traduções" msgid "Learn From Files…" msgstr "Aprender dos Arquivos…" msgid "Learn from files…" msgstr "Aprender dos Arquivos…" #. TRANSLATORS: This is a button that deletes everything in the translation memory (i.e. clears/resets it). msgid "Reset" msgstr "Resetar" #. TRANSLATORS: Followed by "match translations within the file" or "pre-translate from TM" msgid "When updating from sources" msgstr "Ao atualizar dos originais" #. TRANSLATORS: Preceded by "When updating from sources" msgid "fuzzy match within the file" msgstr "difundir correspondência dentro do arquivo" #. TRANSLATORS: Preceded by "When updating from sources" msgid "pre-translate from TM" msgstr "pré-traduzir da MT" msgid "" "Poedit can attempt to fill in new entries from only previous translations in " "the file or from your entire translation memory. Using the TM won’t be very " "effective if it’s near-empty, but it will get better as you add more " "translations to it." msgstr "" "O Poedit pode tentar preencher novas entradas somente a partir de traduções " "anteriores do arquivo ou de toda memória de tradução. O uso da MT não será " "muito eficaz se ela estiver quase vazia, mas ficará melhor conforme você for " "adicionando traduções à ela." msgid "Stored translations:" msgstr "Traduções armazenadas:" msgid "Database size on disk:" msgstr "Tamanho do banco de dados no disco:" msgid "Select translation files to import" msgstr "Selecione os arquivos de tradução para importar" msgid "Translation Memory" msgstr "Memória das Traduções" msgid "Importing translations…" msgstr "Importando traduções…" msgid "Finalizing…" msgstr "Finalizando…" msgid "Reset translation memory" msgstr "Resetar a memória de tradução" msgid "Are you sure you want to reset the translation memory?" msgstr "Você tem certeza que você quer resetar a memória das traduções?" msgid "" "Resetting the translation memory will irrevocably delete all stored " "translations from it. You can’t undo this operation." msgstr "" "Resetar a memória de tradução irrevogavelmente apagará todas as traduções " "armazenadas nela. Você não pode desfazer esta operação." msgid "Cancel" msgstr "Cancelar" #. TRANSLATORS: This is abbreviation of "Translation Memory" used in Preferences on macOS. #. Long text looks weird there, too short (like TM) too, but less so. "General" is about ideal #. length there. msgid "TM" msgstr "MT" msgid "" "Source code extractors are used to find translatable strings in the source " "code files and extract them so that they can be translated." msgstr "" "Extratores de código fonte são usados para encontrar strings de tradução nos " "arquivos fonte e extraí-los para que eles possam ser traduzidos." msgid "Custom Extractors:" msgstr "Extratores Personalizados:" msgid "Custom extractors:" msgstr "Extratores personalizados:" msgid "Edit…" msgstr "Editar…" msgid "GNU gettext" msgstr "GetText do GNU" msgid "" "Supports all programming languages recognized by GNU gettext tools (PHP, C/C+" "+, C#, Perl, Python, Java, JavaScript and others)." msgstr "" "Suporta todas as linguagens de programação reconhecidas pelas ferramentas do " "gettext GNU (PHP, C/C++, c#, Perl, Python, Java, JavaScript e outros)." msgid "Delete extractor" msgstr "Apagar extrator" #, c-format msgid "Are you sure you want to delete the “%s” extractor?" msgstr "Você tem certeza que deseja apagar o extrator \"%s\"?" msgid "Extractors" msgstr "Extratores" msgid "Accounts" msgstr "Contas" msgid "Automatically check for updates" msgstr "Procurar atualizações automaticamente" msgid "Include beta versions" msgstr "Incluir versões beta" msgid "" "Beta versions contain the latest new features and improvements, but may be a " "bit less stable." msgstr "" "As versões beta contém novas funções e melhorias mais recentes, mas podem " "ser um pouco menos estáveis." msgid "Updates" msgstr "Atualizações" msgid "" "These settings affect internal formatting of PO files. Adjust them if you " "have specific requirements e.g. because of version control." msgstr "" "Estas configurações afetam a formatação interna dos arquivos PO. Ajuste-os " "se você tem requerimentos específicos, ex: por causa do controle de versões." msgid "Line endings:" msgstr "Finais de linha:" msgid "Unix (recommended)" msgstr "Unix (recomendado)" msgid "Windows" msgstr "Windows" #. TRANSLATORS: Followed by text control for entering number; wraps text at given width msgid "Wrap at:" msgstr "Quebra em:" msgid "Preserve formatting of existing files" msgstr "Preservar a formatação de arquivos existentes" msgid "Advanced" msgstr "Avançado" msgid "Pre-translating…" msgstr "Pré-traduzindo…" #, c-format msgid "Pre-translated %u string" msgid_plural "Pre-translated %u strings" msgstr[0] "%u string pré-traduzida" msgstr[1] "%u sequência de caracteres pré-traduzidas" #. TRANSLATORS: This is a somewhat common term describing the action where #. you apply the translation memory and/or machine translation to all of the #. strings you're translating as the first step, followed by correcting, #. improving etc., i.e. actually translating the strings. This may be tricky #. to express in other languages as simply as in English, but please try to #. keep it similarly concise. Please try to avoid, if possible, describing it #. as "auto-translation" and similar, because such terminology would mislead #. some users into thinking it's all that needs to be done (spoken from #. experience). "Pre-translate" nicely expresses that it's only the step done #. *before* actual translation. msgid "Pre-translate" msgstr "Pré-traduzir" msgid "Only fill in exact matches" msgstr "Só preencher com as combinações exatas" msgid "" "By default, inaccurate results are filled in as well and marked as needing " "work. Check this option to only include accurate matches." msgstr "" "Por padrão, os resultados imprecisos são preenchidos também e marcados como " "incertos. Marque esta opção para incluir apenas correspondências exatas." msgid "Don’t mark exact matches as needing work" msgstr "Não marcar ocorrências exatas como imprecisas" msgid "" "Only enable if you trust the quality of your TM. By default, all matches " "from the TM are marked as needing work and should be reviewed before use." msgstr "" "Apenas ative se você confia na qualidade da sua MT. Por padrão, todas as " "correspondências da MT são marcadas como imprecisas e devem ser revisadas." msgid "" "Pre-translation automatically finds exact or fuzzy matches for untranslated " "strings in the translation memory and fills in their translations." msgstr "" "A pré-tradução automática encontra correspondências exatas ou imprecisas " "para sequências não traduzidas na memória de tradução e preenche as " "traduções." #, c-format msgid "%d entry was pre-translated." msgid_plural "%d entries were pre-translated." msgstr[0] "%d entrada foi pré-traduzida." msgstr[1] "%d entradas foram pré-traduzidas." msgid "" "The translations were marked as needing work, because they may be " "inaccurate. You should review them for correctness." msgstr "" "As traduções foram marcadas como imprecisas, porque elas podem estar " "incorretas. Você deve revisá-las para correção." msgid "No entries could be pre-translated." msgstr "Nenhuma entrada pôde ser pré-traduzida." msgid "" "The TM doesn’t contain any strings similar to the content of this file. It " "is only effective for semi-automatic translations after Poedit learns enough " "from files that you translated manually." msgstr "" "A MT não contém nenhuma sentença similar ao conteúdo deste arquivo. Ela é " "efetiva apenas para traduções semi-automáticas após o Poedit aprender o " "bastante dos arquivos traduzidos manualmente." msgid "" "Drag and Drop Folders Here\n" "\n" "or use the + button" msgstr "" "Arraste e Solte as Pastas Aqui \n" "\n" "ou use o botão +" msgid "" "Drag and drop folders here\n" "\n" "or use the + button" msgstr "" "Arraste e solte as pastas aqui\n" "\n" "ou use o botão +" msgid "Add Folders…" msgstr "Adicionar Pastas…" msgid "Add folders…" msgstr "Adicionar Pastas…" msgid "Add Files…" msgstr "Adicionar Arquivos…" msgid "Add files…" msgstr "Adicionar arquivos…" msgid "Add Wildcard…" msgstr "Adicionar Caractere Especial…" msgid "Add wildcard…" msgstr "Adicionar caractere especial…" msgid "Paths" msgstr "Caminhos" msgid "Excluded paths" msgstr "Caminhos excluídos" msgid "Advanced extraction settings" msgstr "Configurações avançadas de extração" msgid "Extract notes for translators from:" msgstr "Extrair notas para tradutores de:" msgid "Comments prefixed with:" msgstr "Comentários com o prefixo:" msgid "All comments" msgstr "Todos os comentários" msgid "Additional xgettext flags:" msgstr "Sinalizadores xgettext adicionais:" msgid "Additional keywords" msgstr "Palavras-chave adicionais" msgid "Name of the project the translation is for" msgstr "Nome do projeto para o qual é a tradução" msgid "Team name and email address or URL" msgstr "Nome da equipe e-mail ou URL" msgid "e.g. nplurals=2; plural=(n > 1);" msgstr "ex.: nplurals=2; plural=(n > 1);" msgid "UTF-8 (recommended)" msgstr "UTF-8 (recomendado)" msgid "Please save the file first. This section cannot be edited until then." msgstr "Salve o arquivo primeiro. Esta seção não pode ser editada até então." msgid "Not all plural forms are translated." msgstr "Nem todas as formas do plural estão traduzidas." msgid "The translation should start as a sentence." msgstr "A tradução deve começar como uma sentença." msgid "The translation should start with a lowercase character." msgstr "A tradução deve começar com um caractere minúsculo." msgid "The translation doesn’t start with a space." msgstr "A tradução não começa com um espaço." msgid "The translation starts with a space, but the source text doesn’t." msgstr "A tradução começa com um espaço, mas o texto de origem não." msgid "The translation is missing a newline at the end." msgstr "Está faltando uma nova linha no final da tradução." msgid "The translation ends with a newline, but the source text doesn’t." msgstr "A tradução termina com uma nova linha, mas o texto de origem não." msgid "The translation is missing a space at the end." msgstr "Está faltando um espaço no final da tradução." msgid "The translation ends with a space, but the source text doesn’t." msgstr "A tradução termina com um espaço, mas o texto de origem não." #, c-format msgid "The translation should end with “%s”." msgstr "A tradução deve terminar com \"%s\"." #, c-format msgid "The translation should not end with “%s”." msgstr "A tradução não deve terminar com \"%s\"." #, c-format msgid "The translation ends with “%s”, but the source text ends with “%s”." msgstr "" "A tradução termina com \"%s\", mas o texto de origem termina com \"%s\"." msgid "Comment:" msgstr "Comentário:" msgid "OK" msgstr "OK" msgid "C&lear" msgstr "&Limpar" msgid "Clear the comment" msgstr "Limpar o comentário" msgid "New" msgstr "Novo" msgid "Create new translations project" msgstr "Criar novo projeto de tradução" msgid "Edit" msgstr "Editar" msgid "Edit the project" msgstr "Editar o projeto" msgid "Delete the project" msgstr "Apagar o projeto" msgid "Update all" msgstr "Atualizar tudo" msgid "Update all catalogs in the project" msgstr "Atualizar todos os catálogos no projeto" msgid "Edit project" msgstr "Editar projeto" msgid "Project name:" msgstr "Nome do projeto:" msgid "Browse" msgstr "Explorar" msgid "Add directory to the list" msgstr "Adicionar diretório à lista" msgid "&New…" msgstr "&Novo…" msgid "New from &POT/PO file…" msgstr "Novo do arquivo &POT/PO…" msgid "New From &POT/PO File…" msgstr "Novo do Arquivo &POT/PO…" msgid "&Open…" msgstr "A&brir…" msgid "Open Recent" msgstr "Abrir Recentes" msgid "Open from Crowdin…" msgstr "Abrir do Crowdin…" msgid "Open From Crowdin…" msgstr "Abrir do Crowdin…" msgid "&Close" msgstr "&Fechar" msgid "&Save" msgstr "&Salvar" msgid "Save &as…" msgstr "Salvar &como…" msgid "Save &As…" msgstr "Salvar &Como…" msgid "Compile to MO…" msgstr "Compilar para MO…" msgid "E&xport as HTML…" msgstr "E&xportar como HTML…" msgid "Check for updates…" msgstr "Verificar atualizações…" msgid "&Preferences…" msgstr "&Preferências…" msgid "Catalogs &manager" msgstr "Gerenciador de &catálogos" msgid "Catalogs &Manager" msgstr "Gerenciador de &Catálogos" msgid "E&xit" msgstr "Sa&ir" msgid "Quit" msgstr "Sair" msgid "Copy from singular" msgstr "Copiar do singular" msgid "Copy From Singular" msgstr "Copiar do singular" msgid "Translation needs &work" msgstr "Tradução &imprecisa" msgid "Translation Needs &Work" msgstr "Tradução &imprecisa" msgid "Edit &comment" msgstr "Editar &comentário" msgid "Edit &Comment" msgstr "Editar &Comentário" msgid "Suggestions" msgstr "Sugestões" msgid "&Find…" msgstr "Locali&zar…" msgid "Replace…" msgstr "Substituir…" msgid "Find next" msgstr "Achar o próximo" msgid "Find previous" msgstr "Achar o anterior" msgid "Find and Replace…" msgstr "Localizar e Substituir…" msgid "Find Next" msgstr "Achar o Próximo" msgid "Find Previous" msgstr "Achar o Anterior" msgid "&Preferences" msgstr "&Preferências" msgid "Display entry &IDs" msgstr "Exibir &IDs de entrada" msgid "Display Entry &IDs" msgstr "Exibir &IDs de Entrada" msgid "Sort by &file order" msgstr "Classificar por ordem de ar&quivos" msgid "Sort by &File Order" msgstr "Classificar por Ordem de Ar&quivos" msgid "Sort by &source" msgstr "Classificar por &fonte" msgid "Sort by &Source" msgstr "Classificar por &Fonte" msgid "Sort by &translation" msgstr "Classificar por &tradução" msgid "Sort by &Translation" msgstr "Classificar por &Tradução" msgid "&Group by context" msgstr "&Agrupar pelo contexto" msgid "&Group By Context" msgstr "&Agrupar Pelo Contexto" msgid "Entries with errors first" msgstr "Entradas com erros primeiro" msgid "Entries with Errors First" msgstr "Entradas com Erros Primeiro" msgid "&Untranslated entries first" msgstr "&Entradas não traduzidas primeiro" msgid "&Untranslated Entries First" msgstr "&Entradas Não Traduzidas Primeiro" msgid "&Show references" msgstr "&Mostrar referências" msgid "&Show References" msgstr "&Mostrar Referências" msgid "Show sidebar" msgstr "Mostrar barra lateral" msgid "Show status bar" msgstr "Mostrar barra de status" msgid "C&atalog" msgstr "C&atálogo" msgid "&Update from sources" msgstr "&Atualizar do código fonte" msgid "&Update from Sources" msgstr "&Atualizar do Código Fonte" msgid "Update from &POT file…" msgstr "Atualizar do arquivo &POT…" msgid "Update from &POT File…" msgstr "Atualizar do Arquivo &POT…" msgid "Sync with Crowdin" msgstr "Sincronizar com o Crowdin" msgid "Pre-&translate…" msgstr "Pré-&traduzir…" msgid "&Purge deleted translations" msgstr "&Remover traduções excluídas" msgid "&Purge Deleted Translations" msgstr "&Remover Traduções Excluídas" msgid "&Validate translations" msgstr "&Validar traduções" msgid "&Validate Translations" msgstr "&Validar Traduções" msgid "&Properties…" msgstr "&Propriedades…" msgid "&Done and next" msgstr "&Feito e próximo" msgid "&Done and Next" msgstr "&Feito e Próximo" msgid "&Previous translation" msgstr "&Tradução anterior" msgid "&Previous Translation" msgstr "&Tradução Anterior" msgid "&Next translation" msgstr "&Tradução seguinte" msgid "&Next Translation" msgstr "&Tradução Seguinte" msgid "P&revious unfinished" msgstr "Incompleto ante&rior" msgid "P&revious Unfinished" msgstr "Incompleto Ante&rior" msgid "Ne&xt unfinished" msgstr "Incompleto se&guinte" msgid "Ne&xt Unfinished" msgstr "Incompleto Se&guinte" msgid "Previous plural form" msgstr "Forma plural anterior" msgid "Previous Plural Form" msgstr "Forma Plural Anterior" msgid "Next plural form" msgstr "Forma plural seguinte" msgid "Next Plural Form" msgstr "Forma Plural Seguinte" msgid "&Online help" msgstr "&Ajuda online" msgid "&Online Help" msgstr "&Ajuda Online" msgid "&GNU gettext manual" msgstr "&Manual gettext do GNU" msgid "&GNU gettext Manual" msgstr "&Manual gettext do GNU" msgid "&About Poedit" msgstr "&Sobre o Poedit" msgid "&About" msgstr "&Sobre" msgid "Extractor setup" msgstr "Configurador do extrator" msgid "List of extensions separated by semicolons (e.g. *.cpp;*.h):" msgstr "Lista de extensões separadas por ponto e vírgula (ex.: *.cpp;*.h):" msgid "Invocation:" msgstr "Invocação:" msgid "Command to extract translations:" msgstr "Comando para extrair as traduções:" msgid "" "This is the command used to launch the extractor.\n" "%o expands to the name of output file, %K to list\n" "of keywords, %F to list of input files,\n" "%C to charset flag (see below)." msgstr "" "Este é o comando usado pra executar o extrator.\n" "%o expande o nome do arquivo de saída, %K para a lista\n" "de palavras-chave, %F para a lista de arquivos de entrada,\n" "%C para a bandeira do conjunto de caracteres (veja abaixo)." msgid "An item in keywords list:" msgstr "Um item da lista de palavras-chave:" msgid "" "This will be attached to the command line once\n" "for each keyword. %k expands to the keyword." msgstr "" "Isto será anexado para linha de comando uma vez\n" "para cada palavra-chave. %k expande para a palavra-chave." msgid "An item in input files list:" msgstr "Um item da lista de arquivos de entrada:" #, c-format msgid "" "This will be attached to the command line once\n" "for each input file. %f expands to the filename." msgstr "" "Isto será anexado para linha de comando uma vez\n" "para cada arquivo de entrada. %f expande para o nome do arquivo." msgid "Source code charset:" msgstr "Conjunto de caracteres do código fonte:" #, c-format msgid "" "This will be attached to the command line\n" "only if source code charset was given. %c expands to charset value." msgstr "" "Isto será anexado à linha de comando apenas se o\n" "conjunto de caracteres do código fonte foi informado. %c expande para o " "valor do conjunto de caracteres." msgid "Catalog properties" msgstr "Propriedades do catálogo" msgid "Project name and version:" msgstr "Nome e versão do projeto:" msgid "Language team:" msgstr "Equipe de idioma:" msgid "Plural forms:" msgstr "Formas de Plural:" msgid "Use default rules for this language" msgstr "Usar regras padrão para este idioma" msgid "Use custom expression" msgstr "Usar expressão personalizada" msgid "Learn about plural forms" msgstr "Saiba mais sobre formas de plural" msgid "Charset:" msgstr "Tabela de caracteres:" msgid "Advanced Extraction Settings…" msgstr "Configurações Avançadas de Extração…" msgid "Advanced extraction settings…" msgstr "Configurações avançadas de extração…" msgid "Translation Properties" msgstr "Propriedades da tradução" msgid "Translation properties" msgstr "Propriedades da tradução" msgid "Sources Paths" msgstr "Caminhos de origem" msgid "Sources paths" msgstr "Caminhos das fontes" msgid "Extract text from source files in the following directories:" msgstr "Extrair texto dos arquivos fonte nos seguintes diretórios:" msgid "Base path:" msgstr "Caminho base:" msgid "Sources Keywords" msgstr "Palavras-chave de origem" msgid "Sources keywords" msgstr "Palavras-chave das fontes" msgid "" "Use these keywords (function names) to recognize translatable strings\n" "in source files:" msgstr "" "Use estas palavras-chave (nomes de funções) para reconhecer strings\n" "traduzíveis nos arquivos fonte:" msgid "Also use default keywords for supported languages" msgstr "Usar também palavras-chave padrão para idiomas suportados" msgid "Learn About Gettext Keywords" msgstr "Saiba mais sobre palavras-chave Gettext" msgid "Learn about gettext keywords" msgstr "Saiba mais sobre palavras-chave gettext" msgid "Update summary" msgstr "Atualizar sumário" msgid "" "These strings were found in the sources but were not in the catalog.\n" "Poedit will add them to the catalog now." msgstr "" "Estas strings foram encontradas nas fontes mas não estavam no catálogo.\n" "O Poedit vai adicioná-las agora para o catálogo." msgid "New strings" msgstr "Novas strings" msgid "" "These strings are no longer in the sources.\n" "Poedit will remove them from the catalog now." msgstr "" "Estas strings não estão mais nas fontes.\n" "O Poedit vai removê-las do catálogo agora." msgid "Obsolete strings" msgstr "Strings obsoletas" msgid "(0 new, 0 obsolete)" msgstr "(0 novas, 0 obsoletas)" msgid "Open" msgstr "Abrir" msgid "Save catalog" msgstr "Salvar catálogo" msgid "Validate" msgstr "Validar" msgid "Check for errors in the translation" msgstr "Procurar erros na tradução" msgid "Update" msgstr "Atualizar" msgid "Update catalog - synchronize it with sources" msgstr "Atualizar catálogo - sincronizá-lo com as fontes" msgid "Sidebar" msgstr "Barra lateral" msgid "Show or hide the sidebar" msgstr "Mostrar ou ocultar a barra lateral" #. TRANSLATORS: "Previous" as in used in the past, now replaced with newer. msgid "Previous source text:" msgstr "Texto fonte anterior:" msgid "" "The old source text (before it changed during an update) that the now-" "inaccurate translation corresponds to." msgstr "" "Texto de origem antigo (antes da alteração durante uma atualização) a qual a " "tradução aproximada se refere." msgid "Notes for translators:" msgstr "Notas para os tradutores:" msgid "Add comment" msgstr "Adicionar comentário" msgid "Add Comment" msgstr "Adicionar Comentário" msgid "Translation suggestions:" msgstr "Sugestões de tradução: " #. TRANSLATORS: This is shown when no translation suggestions can be found in the TM (Windows). msgid "No matches found" msgstr "Não foram achadas combinações" #. TRANSLATORS: This is shown when no translation suggestions can be found in the TM (macOS, Linux). msgid "No Matches Found" msgstr "Não Foram Achadas Combinações" msgid "This string was found in Poedit’s translation memory." msgstr "Esta string foi achada na memória de traduções do Poedit." msgid "Cannot create temporary directory." msgstr "Não foi possível criar o diretório temporário." msgid "Welcome to Poedit" msgstr "Bem-vindo ao Poedit" #. TRANSLATORS: This is version information in about dialog, "%s" will be #. version number when used #, c-format msgid "Version %s" msgstr "Versão %s" msgid "Edit a Translation" msgstr "Editar uma tradução" msgid "Edit a translation" msgstr "Editar uma tradução" msgid "Open an existing PO file and edit the translation." msgstr "Abrir um arquivo PO existente e editar a tradução." msgid "" "Take an existing PO file or POT template and create a new translation from " "it." msgstr "" "Importe um arquivo PO existente ou modelo POT e crie uma nova tradução dele." msgid "Collaborate on a Translation with Others" msgstr "Colabore na Tradução com Outros Usuários" msgid "Collaborate on a translation with others" msgstr "Colaborar na tradução com outros usuários" msgid "" "Download a file from Crowdin project, translate and sync your changes back." msgstr "" "Baixe um arquivo de um projeto do Crowdin, traduza e sincronize as " "alterações de volta." msgid "What is Crowdin?" msgstr "O que é Crowdin?" msgid "There are no translations. That’s unusual." msgstr "Não há traduções. Isso é incomum." msgid "" "Translatable entries aren’t added manually in the Gettext system, but are " "automatically extracted\n" "from source code. This way, they stay up to date and accurate.\n" "Translators typically use PO template files (POTs) prepared for them by the " "developer." msgstr "" "Entradas traduzíveis não são adicionadas manualmente no sistema Gettext, mas " "são automaticamente\n" "extraídas do código fonte. Desta maneira, elas ficam atualizadas e " "precisas.\n" "Os tradutores geralmente usam arquivos de modelo PO (POT) fornecidos pelo " "desenvolvedor." msgid "(Learn more about GNU gettext)" msgstr "(Aprenda mais sobre o GNU gettext)" msgid "The simplest way to fill this catalog is to update it from a POT:" msgstr "" "A maneira mais fácil de preencher este catálogo é atualizá-lo de um arquivo " "POT:" msgid "Update from POT" msgstr "Atualizar do POT" msgid "Take translatable strings from an existing POT template." msgstr "Importe strings traduzíveis de um modelo POT existente." msgid "" "You can also extract translatable strings directly from the source code:" msgstr "" "Você também pode extrair strings traduzíveis diretamente do código fonte:" msgid "Extract from sources" msgstr "Extrair das fontes" msgid "Configure source code extraction in Properties." msgstr "Configurar extração do código fonte em Propriedades." msgid "Sync" msgstr "Sincronizar" msgid "Synchronize the translation with Crowdin" msgstr "Sincronizar tradução com Crowdin" #. TRANSLATORS: This is titlebar of about dialog, "%s" is application name #. ("Poedit" here, but please use "%s") #, c-format msgid "About %s" msgstr "Sobre o %s" #. TRANSLATORS: Title of the preferences window on Windows and Linux. "%s" is replaced with "Poedit" when running. #, c-format msgid "%s Preferences" msgstr "Preferências do %s" #. TRANSLATORS: macOS item in app menu msgid "Services" msgstr "Serviços" #. TRANSLATORS: macOS item in app menu, %s is replaced with "Poedit" #, c-format msgid "Hide %s" msgstr "Ocultar %s" #. TRANSLATORS: macOS item in app menu msgid "Hide Others" msgstr "Ocultar Outros" #. TRANSLATORS: macOS item in app menu msgid "Show All" msgstr "Mostrar Tudo" #. TRANSLATORS: macOS item in app menu, %s is replaced with "Poedit" #, c-format msgid "Quit %s" msgstr "Encerrar o %s" #. TRANSLATORS: macOS item in app menu msgid "Preferences…" msgstr "Preferências…" msgid "Preferences..." msgstr "Preferências..." #. TRANSLATORS: Title of a category in Windows task menu (right-click icon in taskbar) msgid "Recent" msgstr "Recentes" #. TRANSLATORS: Title of a category in Windows task menu (right-click icon in taskbar) msgid "Frequent" msgstr "Frequentes" msgid "&Apply" msgstr "&Aplicar" msgid "Apply" msgstr "Aplicar" msgid "&Back" msgstr "&Voltar" msgid "Back" msgstr "Voltar" msgid "&Cancel" msgstr "&Cancelar" msgid "&Clear" msgstr "&Limpar" msgid "Clear" msgstr "Limpar" msgid "Copy" msgstr "Copiar" msgid "Cu&t" msgstr "Recor&tar" msgid "Cut" msgstr "Cortar" msgid "&Delete" msgstr "Apa&gar" msgid "&Quit" msgstr "&Encerrar" msgid "File" msgstr "Arquivo" msgid "Help" msgstr "Ajuda" msgid "&New" msgstr "&Novo" msgid "&No" msgstr "&Não" msgid "No" msgstr "Não" msgid "&OK" msgstr "&OK" msgid "Open…" msgstr "Abrir…" msgid "&Open..." msgstr "&Abrir..." msgid "Open..." msgstr "Abrir..." msgid "&Paste" msgstr "&Colar" msgid "Paste" msgstr "Colar" msgid "Preferences" msgstr "Preferências" msgid "&Redo" msgstr "&Refazer" msgid "Refresh" msgstr "Atualizar" msgid "&Save as" msgstr "&Salvar como" msgid "Save as" msgstr "Salvar como" msgid "Select &All" msgstr "Selecionar &Tudo" msgid "Select All" msgstr "Selecionar Tudo" msgid "&Undo" msgstr "&Desfazer" msgid "&Yes" msgstr "&Sim" msgid "Yes" msgstr "Sim" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Shift+" msgstr "Shift+" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Enter" msgstr "Enter" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Up" msgstr "Para Cima" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Down" msgstr "Para Baixo" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Left" msgstr "Esquerda" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Right" msgstr "Direita" #. TRANSLATORS: Keyboard shortcut, must correspond to translation of "Ctrl+" msgid "ctrl" msgstr "ctrl" #. TRANSLATORS: Keyboard shortcut, must correspond to translation of "Alt+" msgid "alt" msgstr "alt" #. TRANSLATORS: Keyboard shortcut, must correspond to translation of "Shift+" msgid "shift" msgstr "shift" poedit-2.0.6/locales/el.po0000664000372000037200000015642313230132076012316 00000000000000msgid "" msgstr "" "Project-Id-Version: poedit\n" "Report-Msgid-Bugs-To: help@poedit.net\n" "POT-Creation-Date: 2017-12-05 15:52+0100\n" "PO-Revision-Date: 2017-12-05 09:48-0500\n" "Last-Translator: vslavik \n" "Language-Team: Greek\n" "Language: el_GR\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: crowdin.com\n" "X-Crowdin-Project: poedit\n" "X-Crowdin-Language: el\n" "X-Crowdin-File: /locales/poedit.pot\n" msgid "Hide this notification message" msgstr "Απόκρυψη του παρόντος μηνύματος επισήμανσης" msgid "Don’t Show Again" msgstr "Μην το ξαναδείξεις" msgid "Don’t show again" msgstr "Μην το ξαναδείξεις" #, c-format msgid "(New: %i, obsolete: %i)" msgstr "(Νέα: %i, παρωχημένα: %i)" msgid "Updating catalog" msgstr "Ενημερώνεται ο κατάλογος" msgid "Collecting source files…" msgstr "Συλλογή αρχείων προέλευσης…" msgid "Extracting translatable strings…" msgstr "Εξαγωγή μεταφράσιμων συμβολοσειρών…" msgid "Failed to load extracted catalog." msgstr "Αποτυχία στη φόρτωση του εξαγόμενου κατάλογου." msgid "Merging differences…" msgstr "Συνένωση διαφορών…" #, c-format msgid "“%s” is not a valid POT file." msgstr "Το '%s' δεν είναι έγκυρο αρχείο POT." #, c-format msgid "%i line of file “%s” was not loaded correctly." msgid_plural "%i lines of file “%s” were not loaded correctly." msgstr[0] "Η γραμμή %i του αρχείου '%s', δεν φορτώθηκε σωστά." msgstr[1] "%i γραμμές του αρχείου '%s', δεν φορτώθηκαν σωστά." #, c-format msgid "Line %d of file “%s” is corrupted (not valid %s data)." msgstr "" #, c-format msgid "Malformed header: “%s”" msgstr "" msgid "" "Broken catalog file: singular form msgstr used together with msgid_plural" msgstr "" "Κατεστραμμένο αρχείο καταλόγου: ο ενικός msgstr χρησιμοποιείται μαζί με " "msgid_plural " msgid "Broken catalog file: plural form msgstr used without msgid_plural" msgstr "" "Κατεστραμμένο αρχείο καταλόγου: ο πληθυντικός msgstr χρησιμοποιείται χωρίς " "msgid_plural" msgid "" "There were errors when loading the catalog. Some data may be missing or " "corrupted as the result." msgstr "" "Υπήρξαν λάθη κατά το φόρτωμα του καταλόγου. Κατά συνέπεια κάποια δεδομένα " "μπορεί να λείπουν ή να είναι αλλοιωμένα." #, c-format msgid "Couldn’t load file %s, it is probably corrupted." msgstr "" #, c-format msgid "" "File “%s” is read-only and cannot be saved.\n" "Please save it under different name." msgstr "" #, c-format msgid "Couldn’t save file %s." msgstr "Αδυναμία αποθήκευσης του αρχείου %s." msgid "" "There was a problem formatting the file nicely (but it was saved all right)." msgstr "" "Υπήρξε ένα πρόβλημα στην καλή μορφοποίηση του αρχείου (αλλά, κατά τα άλλα, " "αποθηκεύθηκε εντάξει)." #, c-format msgid "" "The catalog couldn’t be saved in “%s” charset as specified in catalog " "settings.\n" "\n" "It was saved in UTF-8 instead and the setting was modified accordingly." msgstr "" msgid "Error saving catalog" msgstr "Σφάλμα αποθήκευσης καταλόγου" msgid "PO Translation Files" msgstr "Αρχεία μετάφρασης PO" msgid "POT Translation Templates" msgstr "Πρότυπα μετάφρασης POT" msgid "All Translation Files" msgstr "Όλα τα αρχεία μετάφρασης" msgid "(Use default language)" msgstr "(Χρήση εξ ορισμού γλώσσας)" msgid "Select your preferred language" msgstr "Επιλογή της γλώσσας προτίμησης" msgid "Language selection" msgstr "Επιλογή Γλώσσας" msgid "You must restart Poedit for this change to take effect." msgstr "" "Πρέπει να γίνει επανεκκίνηση του Poedit, ώστε αυτή η αλλαγή να έχει επίδραση." msgid "Syncing" msgstr "Συγχρονισμός" #. TRANSLATORS: %s is a cloud destination, e.g. "Crowdin" or ftp.wordpress.com etc. #, c-format msgid "Syncing with %s…" msgstr "Συγχρονισμός με %s…" #. TRANSLATORS: %s is a cloud destination, e.g. "Crowdin" or ftp.wordpress.com etc. #, c-format msgid "Syncing with %s failed." msgstr "Ο συγχρονισμός με το %s απέτυχε." msgid "Syncing error" msgstr "Σφάλμα συγχρονισμού" msgid "Downloading translations is disabled in this project." msgstr "Η λήψη μεταφράσεων είναι απενεργοποιημένη για αυτό το έργο." msgid "Not authorized, please sign in again." msgstr "Δεν επιτρέπεται, Παρακαλούμε συνδεθείτε ξανά." msgid "" "Crowdin is an online localization management platform and collaborative " "translation tool. Poedit can seamlessly sync PO files managed at Crowdin." msgstr "" "Το Crodwin είναι μία online πλατφόρμα τοπκοποίησης και ένα συνεργατικό " "εργαλείο μεταφράσεων. Το Poedit μπορεί να συγχρονίσει αρχεία PO που " "βρίσκονται στο Crodwin με ευκολία." msgid "Sign In" msgstr "Σύνδεση" msgid "Sign in" msgstr "Σύνδεση" msgid "Sign Out" msgstr "Αποσύνδεση" msgid "Sign out" msgstr "Αποσύνδεση" msgid "Waiting for authentication…" msgstr "Αναμονή για έλεγχο ταυτότητας…" msgid "Updating user information…" msgstr "Ενημέρωση των πληροφοριών χρήστη…" msgid "Signed in as:" msgstr "Συνδεδεμένος ως:" msgid "Learn More About Crowdin" msgstr "Μάθετε περισσότερα σχετικά με το Crowdin" msgid "Learn more about Crowdin" msgstr "Μάθετε περισσότερα σχετικά με το Crowdin" msgid "Sign in to Crowdin" msgstr "Συνδεθείτε στο Crowdin" msgid "Open Crowdin translation" msgstr "Ανοικτή μετάφραση Crowdin" msgid "Project:" msgstr "Εργασία:" msgid "Language:" msgstr "Γλώσσα:" msgid "File:" msgstr "Αρχείο:" msgid "No translation projects listed in your Crowdin account." msgstr "Δεν υπάρχουν μεταφραστικά έργα στον Crowdin λογαριασμό σας." msgid "This project has no files that can be translated in Poedit." msgstr "Αυτό το έργο δεν έχει αρχεία, που μπορούν να μεταφραστούν στο Poedit." msgid "This file can only be edited in Crowdin’s web interface." msgstr "Η επεξεργασία του αρχείου πρέπει να γίνει στο Crowdin." msgid "Downloading latest translations…" msgstr "Γίνεται λήψη των τελευταίων μεταφράσεων…" msgid "Syncing with Crowdin failed." msgstr "Ο συγχρονισμός με το Crowdin απέτυχε." msgid "Crowdin error" msgstr "Σφάλμα του Crodwin" msgid "Uploading translations…" msgstr "Μεταφόρτωση μεταφράσεων…" msgid "&Copy" msgstr "&Αντιγραφή" msgid "Learn more" msgstr "Περισσότερες πληροφορίες" msgid "Learn More" msgstr "Μάθετε Περισσότερα" msgid "&Help" msgstr "&Βοήθεια" msgid "MO files can’t be directly edited in Poedit." msgstr "Δεν είναι δυνατή η επεξεργασία αρχείων MO στο Poedit." msgid "Error opening file" msgstr "Σφάλμα κατά το άνοιγμα του αρχείου" msgid "" "Please open and edit the corresponding PO file instead. When you save it, " "the MO file will be updated as well." msgstr "" msgid "don’t delete temporary files (for debugging)" msgstr "μη διαγράψεις προσωρινά αρχεία (γι' αποσφαλμάτωση)" msgid "handle a poedit:// URI" msgstr "Χειρίσου ένα poedit:// URI" msgid "go to item at given line number" msgstr "μετάβαση στο στοιχείο, στο δεδομένο αριθμό γραμμής" msgid "Failed to communicate with Poedit process." msgstr "Αδυναμία επικοινωνίας με τη διεργασία Poedit." #, c-format msgid "Unhandled exception occurred: %s" msgstr "Παρουσιάστηκε ανεπίλυτη εξαίρεση: %s" msgid "Open catalog" msgstr "Άνοιγμα καταλόγου" #, c-format msgid "File “%s” doesn’t exist." msgstr "Το αρχείο “%s” δεν υπάρχει." msgid "Poedit is an easy to use translations editor." msgstr "Το Poedit είναι ένας εύκολος στη χρήση επεξεργαστής μεταφράσεων." msgid "Catalogs Manager" msgstr "Διαχειριστής Καταλόγων" msgid "Check for Updates…" msgstr "Έλεγχος για Ενημερώσεις…" msgid "&Edit" msgstr "&Επεξεργασία" msgid "Undo" msgstr "Αναίρεση" msgid "Redo" msgstr "Επαναφορά" msgid "Paste and Match Style" msgstr "Επικόλληση και Ταίριασμα Τεχνοτροπίας" msgid "Delete" msgstr "Διαγραφή" msgid "Spelling and Grammar" msgstr "Ορθογραφία και Γραμματική" msgid "Show Spelling and Grammar" msgstr "Εμφάνιση Ορθογραφίας και Γραμματικής" msgid "Check Document Now" msgstr "Έλεγχος του Εγγράφου, Τώρα" msgid "Check Spelling While Typing" msgstr "Έλεγχος της Ορθογραφίας Κατά την Πληκτρολόγηση" msgid "Check Grammar With Spelling" msgstr "Έλεγχος της Γραμματικής με Ορθογραφία" msgid "Correct Spelling Automatically" msgstr "Αυτόματη Επιδιόρθωση της Ορθογραφίας" msgid "Substitutions" msgstr "Αντικαταστάσεις" msgid "Show Substitutions" msgstr "Εμφάνιση των Αντικαταστάσεων" msgid "Smart Copy/Paste" msgstr "Έξυπνη Αντιγραφή/Επικόλληση" msgid "Smart Quotes" msgstr "Έξυπνα Εισαγωγικά" msgid "Smart Dashes" msgstr "Έξυπνες Παύλες" msgid "Smart Links" msgstr "Έξυπνοι Δεσμοί" msgid "Text Replacement" msgstr "Αντικατάσταση Κειμένου" msgid "Transformations" msgstr "Μετασχηματισμοί" msgid "Make Upper Case" msgstr "Μετατροπή σε Κεφαλαία" msgid "Make Lower Case" msgstr "Μετατροπή σε Πεζά" msgid "Capitalize" msgstr "Το πρώτο γράμμα κεφαλαίο" msgid "Speech" msgstr "Ομιλία" msgid "Start Speaking" msgstr "Αρχίνισμα της Ομιλίας" msgid "Stop Speaking" msgstr "Σταμάτημα της Ομιλίας" msgid "&View" msgstr "&Προβολή" msgid "Enter Full Screen" msgstr "Πλήρης οθόνη" msgid "Window" msgstr "Παράθυρο" msgid "Minimize" msgstr "Ελαχιστοποίηση" msgid "Zoom" msgstr "Μεγέθυνση" msgid "Bring All to Front" msgstr "Φέρτε όλα προς τα εμπρός" #. TRANSLATORS:File kind displayed in Finder/Explorer msgid "PO Translation" msgstr "Μετάφραση PO" msgid "The file cannot be opened." msgstr "Το αρχείο δεν μπορεί να να ανοιχτεί." msgid "Invalid file" msgstr "Μη έγκυρο αρχείο" msgid "" "The file may be either corrupted or in a format not recognized by Poedit." msgstr "" "Το αρχείο μπορεί είτε να είναι φθαρμένο, ή να είναι σε μία μορφή, την οποία " "δεν αναγνωρίζει το Ποέντιτ. " msgid "You can’t drop more than one file on Poedit window." msgstr "" #, c-format msgid "File “%s” is not a message catalog." msgstr "" msgid "Poedit" msgstr "Poedit" msgid "&File" msgstr "&Αρχείο" msgid "&Go" msgstr "&Μετάβαση" #. TRANSLATORS: %s is language name in its basic form (as you #. would see e.g. in a list of supported languages). You may need #. to rephrase it, e.g. to an equivalent of "for language %s". #, c-format msgid "" "Spellchecking is disabled, because the dictionary for %s isn’t installed." msgstr "" "Ο ορθογραφικός έλεγχος είναι απενεργοποιημένος, επειδή το λεξικό για %s δεν " "είναι εγκατεστημένο." msgid "Install" msgstr "Εγκατάσταση" msgid "Catalog modified. Do you want to save changes?" msgstr "Ο κατάλογος τροποποιήθηκε. Θέλετε να γίνει αποθήκευση των αλλαγών;" msgid "Save changes" msgstr "Αποθήκευση αλλαγών" msgid "Your changes will be lost if you don’t save them." msgstr "" msgid "Save" msgstr "Αποθήκευση" msgid "Don’t save" msgstr "Να μην αποθηκευθεί" msgid "Don’t Save" msgstr "Να μην αποθηκευθεί" msgid "Save as…" msgstr "Αποθήκευση ως…" msgid "Compile to…" msgstr "Μεταγλώττιση σε…" msgid "Compiled Translation Files" msgstr "Μεταγλωττισμένα αρχεία μετάφρασης" msgid "Export as…" msgstr "Εξαγωγή ως…" msgid "HTML Files" msgstr "Αρχεία HTML" msgid "Open catalog template" msgstr "Άνοιγμα προτύπου καταλόγου" msgid "Source code not available." msgstr "Ο πηγαίος κώδικας δεν είναι διαθέσιμος." msgid "Updating failed" msgstr "Η ενημέρωση απέτυχε" msgid "" "Translations couldn’t be updated from the source code, because no code was " "found in the location specified in the catalog’s Properties." msgstr "" msgid "Entries in the catalog are probably incorrect." msgstr "Οι καταχωρήσεις στον κατάλογο είναι μάλλον λανθασμένες." msgid "Updating the catalog failed. Click on 'Details >>' for details." msgstr "" "Η ενημέρωση του καταλόγου απέτυχε. \n" "Για περισσότερες πληροφορίες, κλίκαρε στο 'Λεπτομέρειες >>' ." #, c-format msgid "%d issue with the translation found." msgid_plural "%d issues with the translation found." msgstr[0] "Βρέθηκε %d ζήτημα στην μετάφραση." msgstr[1] "Βρέθηκαν %d ζητήματα στην μετάφραση." msgid "Validation results" msgstr "Αποτέλεσμα επικύρωσης" msgid "" "Entries with errors were marked in red in the list. Details of the error " "will be shown when you select such an entry." msgstr "" "Οι θέσεις με σφάλματα έχουν επισημανθεί με κόκκινο στην λίστα. Οι " "λεπτομέρειες του σφάλματος θα εμφανιστούν, όταν επιλέξεις τη συγκεκριμένη " "θέση." msgid "The file was saved safely." msgstr "Το αρχείο αποθηκεύθηκε με ασφάλεια." msgid "" "The file was saved safely and compiled into the MO format, but it will " "probably not work correctly." msgstr "" "Το αρχείο σώθηκε με ασφάλεια και μεταγλωττίστηκε σε μορφή MO, αλλά κατά πάσα " "πιθανότητα δεν θα λειτουργήσει σωστά." msgid "" "The file was saved safely, but it cannot be compiled into the MO format and " "used." msgstr "" "Το αρχείο αποθηκεύθηκε επιτυχώς, όμως δεν μπορεί να γίνει σύνθεση του " "αρχείου σε μορφή MO, ώστε, μετά, να χρησιμοποιηθεί." msgid "" "The file was compiled into the MO format, but it will probably not work " "correctly." msgstr "" "Το αρχείο μεταγλωττίστηκε σε μορφή MO, αλλά κατά πάσα πιθανότητα δεν θα " "λειτουργήσει σωστά." msgid "The file cannot be compiled into the MO format and used." msgstr "" msgid "No problems with the translation found." msgstr "Δεν βρέθηκε κανένα πρόβλημα στην μετάφραση." #, c-format msgid "The translation is ready for use, but %d entry is not translated yet." msgid_plural "" "The translation is ready for use, but %d entries are not translated yet." msgstr[0] "" msgstr[1] "" msgid "The translation is ready for use." msgstr "Η μετάφραση είναι έτοιμη προς χρήση." #, c-format msgid "Poedit automatically fixed invalid content in the file “%s”." msgstr "" msgid "" "The file contained duplicate items, which is not allowed in PO files and " "would prevent the file from being used. Poedit fixed the issue, but you " "should review translations of any items marked as needing work and correct " "them if necessary." msgstr "" msgid "Language of the translation isn’t set." msgstr "Δεν έχει οριστεί η γλώσσα της μετάφρασης." msgid "Set Language" msgstr "Ορισμός γλώσσας" msgid "Set language" msgstr "Ορισμός γλώσσας" #. TRANSLATORS: This is shown underneath "Language of the translation isn't set (or ...is the same as source language)." msgid "" "Suggestions are not available if the translation language is not set " "correctly. Other features, such as plural forms, may be affected as well." msgstr "" msgid "Language of the translation is the same as source language." msgstr "" msgid "Fix Language" msgstr "Επιδιόρθωση γλώσσας" msgid "Fix language" msgstr "Επιδιόρθωση γλώσσας" msgid "" "This catalog has entries with plural forms, but doesn’t have Plural-Forms " "header configured." msgstr "" msgid "" "Entries in this catalog have different plural forms count from what " "catalog’s Plural-Forms header says" msgstr "" msgid "Required header Plural-Forms is missing." msgstr "Λείπει η απαιτούμενη κεφαλίδα «Plural-Forms»." #, c-format msgid "Syntax error in Plural-Forms header (\"%s\")." msgstr "Σφάλμα σύνταξης στην κεφαλίδα «Plural-Forms» (\"%s\")." msgid "Fix the Header" msgstr "Επιδιόρθωση της κεφαλίδας" msgid "Fix the header" msgstr "Επιδιόρθωση της κεφαλίδας" #. TRANSLATORS: %s is language name in its basic form (as you #. would see e.g. in a list of supported languages). You may need #. to rephrase it, e.g. to an equivalent of "for language %s". #, c-format msgid "Plural forms expression used by the catalog is unusual for %s." msgstr "" "Οι μορφές πληθυντικού, οι οποίες χρησιμοποιούνται για τον κατάλογο, είναι " "ασυνήθιστες για το %s." #. TRANSLATORS: A verb, shown as action button with ""Plural forms expression used by the catalog is unusual for %s.")" msgid "Review" msgstr "Επισκόπηση" #, c-format msgid "Error loading message catalog file “%s”." msgstr "" #, c-format msgid "Translated: %d of %d (%d %%)" msgstr "Μεταφράστηκαν %d από %d (%d %%)" #, c-format msgid "Remaining: %d" msgstr "Απομένουν: %d" #, c-format msgid "%d error" msgid_plural "%d errors" msgstr[0] "Σφάλμα %d" msgstr[1] "Σφάλματα %d" #, c-format msgid "%d entry" msgid_plural "%d entries" msgstr[0] "%d είσοδος" msgstr[1] "%d είσοδοι" msgid " (unsaved)" msgstr " (μη αποθηκευμένο)" msgid " (modified)" msgstr " (τροποποιήθηκε)" #, c-format msgid "Failed to update translation memory: %s" msgstr "Αδυναμία ενημέρωσης της μεταφραστικής μνήμης: %s" msgid "Purge deleted translations" msgstr "Ε&κκαθάριση διαγραμμένων μεταφράσεων" msgid "Do you want to remove all translations that are no longer used?" msgstr "" "Θα ήθελες να αφαιρεθούν όλες οι μεταφράσεις, οι οποίες έπαψαν να " "χρησιμοποιούνται;" msgid "" "If you continue with purging, all translations marked as deleted will be " "permanently removed. You will have to translate them again if they are added " "back in the future." msgstr "" "Αν συνεχίσεις με την εκκαθάριση, θα απομακρυνθούν όλες τις μεταφράσεις οι " "οποίες έχουν επισημανθεί ως διαγραμμένες.\n" "Θα πρέπει να ξανακάνεις τις μεταφράσεις, από την αρχή, αν προστεθούν ξανά " "στο μέλλον." msgid "Keep" msgstr "Διατήρηση" msgid "Purge" msgstr "Εκκαθάριση" msgid "Copy from source text" msgstr "Αντιγραφή από το πηγαίο κείμενο" msgid "Copy from Source Text" msgstr "Αντιγραφή από το Πηγαίο Κείμενο" #. TRANSLATORS: This is the key shortcut used in menus on Windows, some languages call them differently #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Ctrl+" msgstr "Ctrl+" msgid "Clear translation" msgstr "Εκκαθάριση της μετάφρασης" msgid "Clear Translation" msgstr "Εκκαθάριση της Μετάφρασης" msgid "Edit comment" msgstr "Επεξεργασία σχολίου" msgid "Edit Comment" msgstr "Επεξεργασία των Σχολίων" msgid "References:" msgstr "Αναφορές:" msgid "&Bookmarks" msgstr "&Σελιδοδείκτες" #. TRANSLATORS: This is the key shortcut used in menus on Windows, some languages call them differently #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Alt+" msgstr "Alt+" #, c-format msgid "Set bookmark %i" msgstr "" #, c-format msgid "Go to bookmark %i" msgstr "" #, c-format msgid "Set Bookmark %i" msgstr "" #, c-format msgid "Go to Bookmark %i" msgstr "" msgid "Hide Sidebar" msgstr "" msgid "Show Sidebar" msgstr "" msgid "Hide Status Bar" msgstr "" msgid "Show Status Bar" msgstr "" msgid "Source text:" msgstr "Πηγαίο κείμενο:" msgid "Singular:" msgstr "Ενικός:" msgid "Plural:" msgstr "Πληθυντικός:" msgid "Translation:" msgstr "Μετάφραση:" msgid "Pre-translated" msgstr "" msgid "Needs Work" msgstr "" #. TRANSLATORS: This indicates that the string's translation isn't final #. and has known problems. For example, it might be machine translated or #. fuzzy matched from an older string. The translation should be short and #. convey this. If it's problematic to translate it, "Needs review" is #. acceptable substitute, but note that the meaning is subtly different: #. "needs review" implies that somebody else should review the string after #. I am done with it (i.e. consider it good), while "needs work" implies I #. need to return to it and finish the translation. msgid "Needs work" msgstr "" msgid "" "POT files are only templates and don’t contain any translations themselves.\n" "To make a translation, create a new PO file based on the template." msgstr "" "Τα αρχεία POT είναι μόνο πρότυπα και δεν περιέχουν μεταφράσεις. \n" "Για να κάνετε μια μετάφραση, δημιουργήστε ένα νέο αρχείο PO που βασίζεται " "στο πρότυπο." msgid "Create New Translation" msgstr "Δημιουργία νέας μετάφρασης" msgid "Create new translation" msgstr "Δημιουργία νέας μετάφρασης" msgid "Everything" msgstr "Τα πάντα" #, c-format msgid "Form %i" msgstr "Μορφή %i" msgid "Singular" msgstr "Ενικός" msgid "Zero" msgstr "Μηδέν" msgid "One" msgstr "Ένα" msgid "Two" msgstr "Δύο" msgid "Plural" msgstr "Πληθυντικός" msgid "Other" msgstr "Άλλο" #, c-format msgid "%s Format" msgstr "" #. TRANSLATORS: %s is replaced with language name, e.g. "PHP" or "C", so "PHP Format" etc." #, c-format msgid "%s format" msgstr "" msgid "Source text" msgstr "Πηγαίο κείμενο" #, c-format msgid "Translation — %s" msgstr "Μετάφραση — %s" msgid "ID" msgstr "Ταυτότητα" #, c-format msgid "Source text — %s" msgstr "" msgid "unknown language" msgstr "άγνωστη γλώσσα" #, c-format msgid "Failed command: %s" msgstr "Αποτυχία τη εντολής: %s" msgid "Failed to merge gettext catalogs." msgstr "Αποτυχία στη συγχώνευση των καταλόγων gettext." msgid "Source file" msgstr "Αρχείο πηγαίου κώδικα" msgid "Source file occurrence:" msgstr "Συνύπαρξη πηγαίου αρχείου:" msgid "Open in Editor" msgstr "" msgid "Open in editor" msgstr "" msgid "No references for the selected item." msgstr "" #, c-format msgid "Error opening file %s!" msgstr "Σφάλμα ανοίγματος αρχείου %s!" msgid "Find" msgstr "Εύρεση" msgid "Replace" msgstr "Αντικατάσταση" #. TRANSLATORS: Expander in Find window for additional options (case sensitive etc.) msgid "Options" msgstr "Επιλογές" msgid "Ignore case" msgstr "Αγνόηση κεφαλαιοποίησης" msgid "Wrap around" msgstr "Ξεκίνα από την αρχή" msgid "Whole words only" msgstr "Πλήρης λέξεις μόνο" msgid "Find in source texts" msgstr "" msgid "Find in translations" msgstr "" msgid "Find in comments" msgstr "Ανεύρεση στα σχόλια" msgid "Close" msgstr "Κλείσιμο" msgid "Replace &All" msgstr "Αντικατάσταση &Όλων" msgid "Replace &all" msgstr "Αντικατάσταση &όλων" msgid "&Replace" msgstr "&Αντικατάσταση" msgid "< &Previous" msgstr "< &Προηγούμενο" msgid "&Next >" msgstr "&Επόμενο >" msgid "String to find" msgstr "" msgid "Replacement string" msgstr "" #, c-format msgid "Cannot execute program: %s" msgstr "Αδυναμία εκτέλεσης του προγράμματος: %s" msgid "Language Code or Name (e.g. en_GB)" msgstr "Κωδικός ή Όνομα της γλώσσας (πχ, en_GB)" msgid "Translation Language" msgstr "Γλώσσα Μετάφρασης" msgid "Language of the translation:" msgstr "Γλώσσα της μετάφρασης:" msgid "Poedit - Catalogs manager" msgstr "Poedit - Διαχειριστής καταλόγων" msgid "Catalog" msgstr "Κατάλογος" msgid "Total" msgstr "Συνολικά" msgid "Untrans" msgstr "Μη μεταφρασμένο" msgid "Errors" msgstr "" msgid "Last modified" msgstr "Τελευταία τροποποίηση" msgid "Select directory" msgstr "Επιλογή φακέλου" msgid "Directories:" msgstr "Φάκελοι αρχείων:" msgid "" msgstr "<δίχως όνομα>" msgid "Do you want to delete the project?" msgstr "Επιθυμείς να διαγράψεις την εργασία;" msgid "Confirmation" msgstr "Επιβεβαίωση" msgid "" "Do you really want to do mass update of\n" "all catalogs in this project?" msgstr "" "Θέλεις πραγματικά να κάνεις μαζική ενημέρωση\n" "σε όλους τους καταλόγους αυτής της εργασίας;" msgid "Information about the translator" msgstr "Πληροφορίες σχετικά με το μεταφραστή" msgid "Name:" msgstr "Όνομα:" msgid "Your Name" msgstr "Το Όνομά σας" msgid "Email:" msgstr "Email:" msgid "your_email@example.com" msgstr "your_email@example.com" msgid "" "Your name and email address are only used to set the Last-Translator header " "of GNU gettext files." msgstr "" msgid "Editing" msgstr "Επεξεργασία" msgid "Automatically compile MO file when saving" msgstr "" msgid "Show summary after catalog update" msgstr "Εμφάνιση περίληψης μετά την ενημέρωση του καταλόγου" msgid "Check spelling" msgstr "Έλεγχος ορθογραφίας" msgid "Always change focus to text input field" msgstr "Πάντα αλλαγή εστίασης στο πεδίο εισόδου κειμένου" msgid "" "Never let the list of strings take focus. If enabled, you must use Ctrl-" "arrows for keyboard navigation but you can also type text immediately, " "without having to press Tab to change focus." msgstr "" "Ποτέ μην αφήνετε τη λίστα των στίχων να εστιαστεί. Αν ενεργοποιηθεί, πρέπει " "να χρησιμοποιήσετε το Ctrl-βελάκια για πλοήγηση μέσω πληκτρολογίου, αλλά " "μπορείτε επίσης να πληκτρολογήσετε κείμενο αμέσως, χωρίς να χρειαστεί να " "πατήσετε το πλήκτρο Tab για αλλαγή εστίασης." msgid "Appearance" msgstr "Εμφάνιση" msgid "Use custom list font:" msgstr "" msgid "Use custom text fields font:" msgstr "" msgid "Change UI language" msgstr "Επιλογή γλώσσας UI" #. TRANSLATORS: This is a note appended to "Check spelling" when running on older Windows versions msgid "(requires Windows 8 or newer)" msgstr "(απαιτείται Windows 8 ή νεότερο)" msgid "General" msgstr "Γενικές ρυθμίσεις" msgid "Use translation memory" msgstr "Χρήση της μεταφραστικής μνήμης" msgid "Learn From Files…" msgstr "Εκμάθηση από Αρχεία…" msgid "Learn from files…" msgstr "" #. TRANSLATORS: This is a button that deletes everything in the translation memory (i.e. clears/resets it). msgid "Reset" msgstr "" #. TRANSLATORS: Followed by "match translations within the file" or "pre-translate from TM" msgid "When updating from sources" msgstr "" #. TRANSLATORS: Preceded by "When updating from sources" msgid "fuzzy match within the file" msgstr "" #. TRANSLATORS: Preceded by "When updating from sources" msgid "pre-translate from TM" msgstr "" msgid "" "Poedit can attempt to fill in new entries from only previous translations in " "the file or from your entire translation memory. Using the TM won’t be very " "effective if it’s near-empty, but it will get better as you add more " "translations to it." msgstr "" msgid "Stored translations:" msgstr "Αποθηκευμένες μεταφράσεις:" msgid "Database size on disk:" msgstr "Το μέγεθος της βάσης δεδομένων στο δίσκο:" msgid "Select translation files to import" msgstr "Επέλεξε τα αρχεία μετάφρασης προς εισαγωγή" msgid "Translation Memory" msgstr "Μεταφραστική Μνήμη" msgid "Importing translations…" msgstr "" msgid "Finalizing…" msgstr "" msgid "Reset translation memory" msgstr "Επαναφορά μεταφραστικής μνήμης" msgid "Are you sure you want to reset the translation memory?" msgstr "" msgid "" "Resetting the translation memory will irrevocably delete all stored " "translations from it. You can’t undo this operation." msgstr "" msgid "Cancel" msgstr "Ακύρωση" #. TRANSLATORS: This is abbreviation of "Translation Memory" used in Preferences on macOS. #. Long text looks weird there, too short (like TM) too, but less so. "General" is about ideal #. length there. msgid "TM" msgstr "" msgid "" "Source code extractors are used to find translatable strings in the source " "code files and extract them so that they can be translated." msgstr "" msgid "Custom Extractors:" msgstr "" msgid "Custom extractors:" msgstr "" msgid "Edit…" msgstr "Επεξεργασία…" msgid "GNU gettext" msgstr "" msgid "" "Supports all programming languages recognized by GNU gettext tools (PHP, C/C+" "+, C#, Perl, Python, Java, JavaScript and others)." msgstr "" msgid "Delete extractor" msgstr "" #, c-format msgid "Are you sure you want to delete the “%s” extractor?" msgstr "" msgid "Extractors" msgstr "" msgid "Accounts" msgstr "" msgid "Automatically check for updates" msgstr "" msgid "Include beta versions" msgstr "Περιλαμβανομένων των δοκιμαστικών εκδόσεων" msgid "" "Beta versions contain the latest new features and improvements, but may be a " "bit less stable." msgstr "" msgid "Updates" msgstr "" msgid "" "These settings affect internal formatting of PO files. Adjust them if you " "have specific requirements e.g. because of version control." msgstr "" msgid "Line endings:" msgstr "" msgid "Unix (recommended)" msgstr "UNIX (προτείνεται)" msgid "Windows" msgstr "Microsoft Windows" #. TRANSLATORS: Followed by text control for entering number; wraps text at given width msgid "Wrap at:" msgstr "" msgid "Preserve formatting of existing files" msgstr "" msgid "Advanced" msgstr "Για προχωρημένους" msgid "Pre-translating…" msgstr "" #, c-format msgid "Pre-translated %u string" msgid_plural "Pre-translated %u strings" msgstr[0] "" msgstr[1] "" #. TRANSLATORS: This is a somewhat common term describing the action where #. you apply the translation memory and/or machine translation to all of the #. strings you're translating as the first step, followed by correcting, #. improving etc., i.e. actually translating the strings. This may be tricky #. to express in other languages as simply as in English, but please try to #. keep it similarly concise. Please try to avoid, if possible, describing it #. as "auto-translation" and similar, because such terminology would mislead #. some users into thinking it's all that needs to be done (spoken from #. experience). "Pre-translate" nicely expresses that it's only the step done #. *before* actual translation. msgid "Pre-translate" msgstr "" msgid "Only fill in exact matches" msgstr "" msgid "" "By default, inaccurate results are filled in as well and marked as needing " "work. Check this option to only include accurate matches." msgstr "" msgid "Don’t mark exact matches as needing work" msgstr "" msgid "" "Only enable if you trust the quality of your TM. By default, all matches " "from the TM are marked as needing work and should be reviewed before use." msgstr "" msgid "" "Pre-translation automatically finds exact or fuzzy matches for untranslated " "strings in the translation memory and fills in their translations." msgstr "" #, c-format msgid "%d entry was pre-translated." msgid_plural "%d entries were pre-translated." msgstr[0] "" msgstr[1] "" msgid "" "The translations were marked as needing work, because they may be " "inaccurate. You should review them for correctness." msgstr "" msgid "No entries could be pre-translated." msgstr "" msgid "" "The TM doesn’t contain any strings similar to the content of this file. It " "is only effective for semi-automatic translations after Poedit learns enough " "from files that you translated manually." msgstr "" msgid "" "Drag and Drop Folders Here\n" "\n" "or use the + button" msgstr "" msgid "" "Drag and drop folders here\n" "\n" "or use the + button" msgstr "" msgid "Add Folders…" msgstr "" msgid "Add folders…" msgstr "" msgid "Add Files…" msgstr "" msgid "Add files…" msgstr "" msgid "Add Wildcard…" msgstr "" msgid "Add wildcard…" msgstr "" msgid "Paths" msgstr "Διαδρομές" msgid "Excluded paths" msgstr "" msgid "Advanced extraction settings" msgstr "" msgid "Extract notes for translators from:" msgstr "" msgid "Comments prefixed with:" msgstr "" msgid "All comments" msgstr "" msgid "Additional xgettext flags:" msgstr "" msgid "Additional keywords" msgstr "Επιπρόσθετες λέξεις-κλειδιά" msgid "Name of the project the translation is for" msgstr "Το όνομα της εργασίας για την οποία είναι η μετάφραση" msgid "Team name and email address or URL" msgstr "" msgid "e.g. nplurals=2; plural=(n > 1);" msgstr "παράδειγμα nplurals=2; plural=(n > 1);" msgid "UTF-8 (recommended)" msgstr "UTF-8 (προτείνεται)" msgid "Please save the file first. This section cannot be edited until then." msgstr "" "Παρακαλώ αποθήκευσε αυτό το αρχείο, πρώτα, ώστε να μπορεί να γίνει, μετά, " "επεξεργασία αυτού του τμήματος." msgid "Not all plural forms are translated." msgstr "" msgid "The translation should start as a sentence." msgstr "" msgid "The translation should start with a lowercase character." msgstr "" msgid "The translation doesn’t start with a space." msgstr "" msgid "The translation starts with a space, but the source text doesn’t." msgstr "" msgid "The translation is missing a newline at the end." msgstr "" msgid "The translation ends with a newline, but the source text doesn’t." msgstr "" msgid "The translation is missing a space at the end." msgstr "" msgid "The translation ends with a space, but the source text doesn’t." msgstr "" #, c-format msgid "The translation should end with “%s”." msgstr "" #, c-format msgid "The translation should not end with “%s”." msgstr "" #, c-format msgid "The translation ends with “%s”, but the source text ends with “%s”." msgstr "" msgid "Comment:" msgstr "Σχόλιο:" msgid "OK" msgstr "Εντάξει" msgid "C&lear" msgstr "&Καθαρισμός" msgid "Clear the comment" msgstr "Καθαρισμός σχολίου" msgid "New" msgstr "Νέο" msgid "Create new translations project" msgstr "Δημιουργία νέας εργασίας μετάφρασης" msgid "Edit" msgstr "Επεξεργασία" msgid "Edit the project" msgstr "Επεξεργασία εργασίας" msgid "Delete the project" msgstr "Διαγραφή εργασίας" msgid "Update all" msgstr "Ενημέρωση όλων" msgid "Update all catalogs in the project" msgstr "Ενημέρωση όλων των καταλόγων στην εργασία" msgid "Edit project" msgstr "Επεξεργασία εργασίας" msgid "Project name:" msgstr "Όνομα εργασίας:" msgid "Browse" msgstr "Εξερεύνηση" msgid "Add directory to the list" msgstr "Προσθήκη φακέλου στη λίστα" msgid "&New…" msgstr "" msgid "New from &POT/PO file…" msgstr "" msgid "New From &POT/PO File…" msgstr "" msgid "&Open…" msgstr "" msgid "Open Recent" msgstr "" msgid "Open from Crowdin…" msgstr "" msgid "Open From Crowdin…" msgstr "" msgid "&Close" msgstr "&Κλείσιμο" msgid "&Save" msgstr "&Αποθήκευση" msgid "Save &as…" msgstr "" msgid "Save &As…" msgstr "" msgid "Compile to MO…" msgstr "" msgid "E&xport as HTML…" msgstr "" msgid "Check for updates…" msgstr "" msgid "&Preferences…" msgstr "" msgid "Catalogs &manager" msgstr "&Διαχειριστής Καταλόγων" msgid "Catalogs &Manager" msgstr "&Διαχειριστής Καταλόγων" msgid "E&xit" msgstr "Έ&ξοδος" msgid "Quit" msgstr "Τερματισμός" msgid "Copy from singular" msgstr "Αντιγραφή από ενικό" msgid "Copy From Singular" msgstr "Αντιγραφή από ενικό" msgid "Translation needs &work" msgstr "" msgid "Translation Needs &Work" msgstr "" msgid "Edit &comment" msgstr "Επεξεργασία &σχολίου" msgid "Edit &Comment" msgstr "Επεξεργασία των Σ&χολίων" msgid "Suggestions" msgstr "" msgid "&Find…" msgstr "" msgid "Replace…" msgstr "" msgid "Find next" msgstr "Εύρεση επόμενου" msgid "Find previous" msgstr "Εύρεση προηγούμενου" msgid "Find and Replace…" msgstr "" msgid "Find Next" msgstr "Εύρεση Επόμενου" msgid "Find Previous" msgstr "Εύρεση Προηγούμενου" msgid "&Preferences" msgstr "&Προτιμήσεις" msgid "Display entry &IDs" msgstr "Προβολή της ταυτότητας του ειση&γμένου" msgid "Display Entry &IDs" msgstr "Προβολή της Ταυτότητας του Ειση&γμένου" msgid "Sort by &file order" msgstr "Ταξινόμηση κατά τη σειρά των &σρχείων" msgid "Sort by &File Order" msgstr "Ταξινόμηση κατά τη Σειρά των &Αρχείων" msgid "Sort by &source" msgstr "Ταξινόμηση κατά τη &πηγή" msgid "Sort by &Source" msgstr "Ταξινόμηση κατά τη &Πηγή" msgid "Sort by &translation" msgstr "Ταξινόμηση κατά τη &μετάφραση" msgid "Sort by &Translation" msgstr "Ταξινόμηση κατά τη &Μετάφραση" msgid "&Group by context" msgstr "" msgid "&Group By Context" msgstr "" msgid "Entries with errors first" msgstr "Καταχωρήσεις με σφάλματα πρώτες" msgid "Entries with Errors First" msgstr "Καταχωρήσεις με σφάλματα πρώτες" msgid "&Untranslated entries first" msgstr "Πρώτα οι &αμετάφραστες καταχωρήσεις" msgid "&Untranslated Entries First" msgstr "Πρώτα οι &Αμετάφραστες Καταχωρήσεις" msgid "&Show references" msgstr "&Εμφάνιση αναφορών" msgid "&Show References" msgstr "&Εμφάνιση των Αναφορών" msgid "Show sidebar" msgstr "Εμφάνιση πλευρικής μπάρας" msgid "Show status bar" msgstr "Εμφάνιση γραμμής κατάστασης" msgid "C&atalog" msgstr "Κ&ατάλογος" msgid "&Update from sources" msgstr "&Ενημέρωση από τις πηγές" msgid "&Update from Sources" msgstr "&Ενημέρωση από τις Πηγές" msgid "Update from &POT file…" msgstr "" msgid "Update from &POT File…" msgstr "" msgid "Sync with Crowdin" msgstr "Συγχρονισμός με Crowdin" msgid "Pre-&translate…" msgstr "" msgid "&Purge deleted translations" msgstr "Ε&κκαθάριση των διαγραμμένων μεταφράσεων" msgid "&Purge Deleted Translations" msgstr "Ε&κκαθάριση των Διαγραμμένων Μεταφράσεων" msgid "&Validate translations" msgstr "Επι&κύρωση των μεταφράσεων" msgid "&Validate Translations" msgstr "Επι&κύρωση των Μεταφράσεων" msgid "&Properties…" msgstr "" msgid "&Done and next" msgstr "Έ&γκριση και μετάβαση στο επόμενο" msgid "&Done and Next" msgstr "Έ&γκριση και Μετάβαση στο Επόμενο" msgid "&Previous translation" msgstr "" msgid "&Previous Translation" msgstr "" msgid "&Next translation" msgstr "" msgid "&Next Translation" msgstr "" msgid "P&revious unfinished" msgstr "&Προηγούμενο ατελές" msgid "P&revious Unfinished" msgstr "&Προηγούμενο Ατελές" msgid "Ne&xt unfinished" msgstr "&Επόμενο ατελές" msgid "Ne&xt Unfinished" msgstr "&Επόμενο Ατελές" msgid "Previous plural form" msgstr "Προηγούμενη μορφή πληθυντικού" msgid "Previous Plural Form" msgstr "Προηγούμενη μορφή πληθυντικού" msgid "Next plural form" msgstr "Επόμενη μορφή πληθυντικού" msgid "Next Plural Form" msgstr "Επόμενη μορφή πληθυντικού" msgid "&Online help" msgstr "&Διαδικτυακή βοήθεια" msgid "&Online Help" msgstr "&Διαδικτυακή Βοήθεια" msgid "&GNU gettext manual" msgstr "Οδηγίες χρήσης του &ΤζιΕνΓιού γκέττεξτ" msgid "&GNU gettext Manual" msgstr "Οδηγίες Χρήσης του &ΤζιΕνΓιού γκέττεξτ (GNU gettext)" msgid "&About Poedit" msgstr "Σχετικά με το Ποέντιτ" msgid "&About" msgstr "&Περί" msgid "Extractor setup" msgstr "" msgid "List of extensions separated by semicolons (e.g. *.cpp;*.h):" msgstr "Η λίστα των επεκτάσεων χωρίζεται από άνω τελείες (πχ *.cpp · *.h):" msgid "Invocation:" msgstr "Κλήση:" msgid "Command to extract translations:" msgstr "" msgid "" "This is the command used to launch the extractor.\n" "%o expands to the name of output file, %K to list\n" "of keywords, %F to list of input files,\n" "%C to charset flag (see below)." msgstr "" msgid "An item in keywords list:" msgstr "Ένα αντικείμενο στη λίστα των λέξεων κλειδιών:" msgid "" "This will be attached to the command line once\n" "for each keyword. %k expands to the keyword." msgstr "" "Αυτό θα προσαρτηθεί στη γραμμή εντολών μία φορά\n" "για κάθε λέξη κλειδί. Το %k αναπτύσσει τη λέξη κλειδί." msgid "An item in input files list:" msgstr "Ένα αντικείμενο στη λίστα των αρχείων εισαγωγής:" #, c-format msgid "" "This will be attached to the command line once\n" "for each input file. %f expands to the filename." msgstr "" "Αυτό θα προσαρτηθεί στη γραμμή εντολών μία φορά\n" "για κάθε αρχείο εισόδου. Το %f αναπτύσσει το όνομα αρχείου." msgid "Source code charset:" msgstr "Σύνολο χαρακτήρων πηγαίου κώδικα:" #, c-format msgid "" "This will be attached to the command line\n" "only if source code charset was given. %c expands to charset value." msgstr "" "Αυτό θα προσαρτηθεί στη γραμμή εντολών μόνο αν δοθεί\n" "το σύνολο χαρακτήρων πηγαίου κώδικα. Το %c αναπτύσσει την τιμή του συνόλου " "χαρακτήρων." msgid "Catalog properties" msgstr "Ιδιότητες καταλόγου" msgid "Project name and version:" msgstr "Όνομα εργασίας και έκδοση:" msgid "Language team:" msgstr "" msgid "Plural forms:" msgstr "" msgid "Use default rules for this language" msgstr "Χρήση των προκαθορισμένων κανόνων για αυτή τη γλώσσα" msgid "Use custom expression" msgstr "Χρήση προσαρμοσμένων εκφράσεων" msgid "Learn about plural forms" msgstr "Πληροφορίες για τις Μορφές Πληθυντικού" msgid "Charset:" msgstr "Σύνολο Χαρακτήρων:" msgid "Advanced Extraction Settings…" msgstr "" msgid "Advanced extraction settings…" msgstr "" msgid "Translation Properties" msgstr "" msgid "Translation properties" msgstr "" msgid "Sources Paths" msgstr "" msgid "Sources paths" msgstr "Διαδρομές των πηγών" msgid "Extract text from source files in the following directories:" msgstr "Εξαγωγή του κειμένου από τα πηγαία αρχεία στους ακόλουθους φακέλους:" msgid "Base path:" msgstr "Διαδρομή βάσης:" msgid "Sources Keywords" msgstr "" msgid "Sources keywords" msgstr "Λέξεις-κλειδιά των πηγών" msgid "" "Use these keywords (function names) to recognize translatable strings\n" "in source files:" msgstr "" "Χρήση αυτών των λέξεων κλειδιών (ονόματα συναρτήσεων) προς αναγνώριση " "μεταφράσιμων στίχων\n" "στα πηγαία αρχεία:" msgid "Also use default keywords for supported languages" msgstr "" msgid "Learn About Gettext Keywords" msgstr "" msgid "Learn about gettext keywords" msgstr "Εκμάθηση από λέξεις-κλειδιά του γκέττεξτ" msgid "Update summary" msgstr "Περίληψη ενημέρωσης" msgid "" "These strings were found in the sources but were not in the catalog.\n" "Poedit will add them to the catalog now." msgstr "" "Αυτοί οι στίχοι βρέθηκαν στα πηγαία αρχεία αλλά δεν ήταν στον κατάλογο.\n" "Το Poedit θα τους προσθέσει στον κατάλογο τώρα." msgid "New strings" msgstr "Νέοι στίχοι" msgid "" "These strings are no longer in the sources.\n" "Poedit will remove them from the catalog now." msgstr "" "Αυτοί οι στίχοι δεν υπάρχουν πλέον στα πηγαία αρχεία.\n" "Το Poedit θα τους αφαιρέσει τώρα από τον κατάλογο." msgid "Obsolete strings" msgstr "Στίχοι εκτός χρήσης" msgid "(0 new, 0 obsolete)" msgstr "(0 νέο, 0 εκτός χρήσης)" msgid "Open" msgstr "Άνοιγμα" msgid "Save catalog" msgstr "Αποθήκευση καταλόγου" msgid "Validate" msgstr "Επικύρωση" msgid "Check for errors in the translation" msgstr "Έλεγχος λαθών στη μετάφραση" msgid "Update" msgstr "Ενημέρωση" msgid "Update catalog - synchronize it with sources" msgstr "Ενημέρωση καταλόγου - συγχρονισμός με τον πηγαίο κώδικα" msgid "Sidebar" msgstr "" msgid "Show or hide the sidebar" msgstr "" #. TRANSLATORS: "Previous" as in used in the past, now replaced with newer. msgid "Previous source text:" msgstr "" msgid "" "The old source text (before it changed during an update) that the now-" "inaccurate translation corresponds to." msgstr "" msgid "Notes for translators:" msgstr "Σημειώσεις για τους Μεταφραστές:" msgid "Add comment" msgstr "" msgid "Add Comment" msgstr "" msgid "Translation suggestions:" msgstr "" #. TRANSLATORS: This is shown when no translation suggestions can be found in the TM (Windows). msgid "No matches found" msgstr "" #. TRANSLATORS: This is shown when no translation suggestions can be found in the TM (macOS, Linux). msgid "No Matches Found" msgstr "" msgid "This string was found in Poedit’s translation memory." msgstr "" msgid "Cannot create temporary directory." msgstr "Αδυναμία δημιουργίας του φακέλου των προσωρινών αρχείων." msgid "Welcome to Poedit" msgstr "Καλώς ήρθες στο Ποέντιτ" #. TRANSLATORS: This is version information in about dialog, "%s" will be #. version number when used #, c-format msgid "Version %s" msgstr "Έκδοση %s" msgid "Edit a Translation" msgstr "" msgid "Edit a translation" msgstr "Επεξεργασία μιας μετάφρασης" msgid "Open an existing PO file and edit the translation." msgstr "Άνοιγμα ενός υπάρχοντος αρχείου .PO, και επεξεργασία της μετάφρασης. " msgid "" "Take an existing PO file or POT template and create a new translation from " "it." msgstr "" "Χρησιμοποίησε ένα υπάρχον αρχείο .PO, ή ένα πρότυπο .POT, και δημιούργησε " "μία νέα μετάφραση." msgid "Collaborate on a Translation with Others" msgstr "" msgid "Collaborate on a translation with others" msgstr "" msgid "" "Download a file from Crowdin project, translate and sync your changes back." msgstr "" msgid "What is Crowdin?" msgstr "" msgid "There are no translations. That’s unusual." msgstr "Δεν υπάρχουν μεταφράσεις. Αυτό είναι ασυνήθιστο." msgid "" "Translatable entries aren’t added manually in the Gettext system, but are " "automatically extracted\n" "from source code. This way, they stay up to date and accurate.\n" "Translators typically use PO template files (POTs) prepared for them by the " "developer." msgstr "" msgid "(Learn more about GNU gettext)" msgstr "(Μάθε περισσότερα για το ΤζιΕνΓιού γκέττεξτ)" msgid "The simplest way to fill this catalog is to update it from a POT:" msgstr "" "Ο πιο απλός τρόπος για να γεμίσεις αυτό τον κατάλογο, είναι να κάνεις " "ενημέρωση από ένα αρχείο .POT:" msgid "Update from POT" msgstr "Ενημέρωση από το αρχείο POΤ" msgid "Take translatable strings from an existing POT template." msgstr "Πάρε μεταφράσιμους στίχους από ένα υπάρχον πρότυπο .POT." msgid "" "You can also extract translatable strings directly from the source code:" msgstr "" "Μπορείς, επίσης να εξάγεις μεταφράσιμους στίχους, κατευθείαν από τον πηγαίο " "κώδικα:" msgid "Extract from sources" msgstr "Εξαγωγή από τις πηγές" msgid "Configure source code extraction in Properties." msgstr "Ρύθμισε την εξαγωγή του πηγαίου κώδικα στις Ιδιότητες." msgid "Sync" msgstr "" msgid "Synchronize the translation with Crowdin" msgstr "" #. TRANSLATORS: This is titlebar of about dialog, "%s" is application name #. ("Poedit" here, but please use "%s") #, c-format msgid "About %s" msgstr "Περί του %s" #. TRANSLATORS: Title of the preferences window on Windows and Linux. "%s" is replaced with "Poedit" when running. #, c-format msgid "%s Preferences" msgstr "" #. TRANSLATORS: macOS item in app menu msgid "Services" msgstr "" #. TRANSLATORS: macOS item in app menu, %s is replaced with "Poedit" #, c-format msgid "Hide %s" msgstr "" #. TRANSLATORS: macOS item in app menu msgid "Hide Others" msgstr "" #. TRANSLATORS: macOS item in app menu msgid "Show All" msgstr "" #. TRANSLATORS: macOS item in app menu, %s is replaced with "Poedit" #, c-format msgid "Quit %s" msgstr "" #. TRANSLATORS: macOS item in app menu msgid "Preferences…" msgstr "" msgid "Preferences..." msgstr "" #. TRANSLATORS: Title of a category in Windows task menu (right-click icon in taskbar) msgid "Recent" msgstr "" #. TRANSLATORS: Title of a category in Windows task menu (right-click icon in taskbar) msgid "Frequent" msgstr "" msgid "&Apply" msgstr "" msgid "Apply" msgstr "" msgid "&Back" msgstr "" msgid "Back" msgstr "" msgid "&Cancel" msgstr "" msgid "&Clear" msgstr "" msgid "Clear" msgstr "" msgid "Copy" msgstr "Αντιγραφή" msgid "Cu&t" msgstr "Απο&κοπή" msgid "Cut" msgstr "Αποκοπή" msgid "&Delete" msgstr "&Διαγραφή" msgid "&Quit" msgstr "" msgid "File" msgstr "" msgid "Help" msgstr "" msgid "&New" msgstr "" msgid "&No" msgstr "" msgid "No" msgstr "" msgid "&OK" msgstr "" msgid "Open…" msgstr "" msgid "&Open..." msgstr "&Άνοιγμα..." msgid "Open..." msgstr "" msgid "&Paste" msgstr "&Επικόλληση" msgid "Paste" msgstr "Επικόλληση" msgid "Preferences" msgstr "" msgid "&Redo" msgstr "Επαναφο&ρά" msgid "Refresh" msgstr "" msgid "&Save as" msgstr "" msgid "Save as" msgstr "" msgid "Select &All" msgstr "Επιλογή Ό&λων" msgid "Select All" msgstr "Επιλογή όλων" msgid "&Undo" msgstr "&Αναίρεση" msgid "&Yes" msgstr "" msgid "Yes" msgstr "" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Shift+" msgstr "Shift+" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Enter" msgstr "Enter" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Up" msgstr "Πάνω" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Down" msgstr "Κάτω" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Left" msgstr "" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Right" msgstr "" #. TRANSLATORS: Keyboard shortcut, must correspond to translation of "Ctrl+" msgid "ctrl" msgstr "ctrl" #. TRANSLATORS: Keyboard shortcut, must correspond to translation of "Alt+" msgid "alt" msgstr "alt" #. TRANSLATORS: Keyboard shortcut, must correspond to translation of "Shift+" msgid "shift" msgstr "shift" poedit-2.0.6/locales/be.po0000664000372000037200000020750413230132075012300 00000000000000msgid "" msgstr "" "Project-Id-Version: poedit\n" "Report-Msgid-Bugs-To: help@poedit.net\n" "POT-Creation-Date: 2017-12-05 15:52+0100\n" "PO-Revision-Date: 2017-09-21 11:18-0400\n" "Last-Translator: vslavik \n" "Language-Team: Belarusian\n" "Language: be_BY\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" "%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" "X-Generator: crowdin.com\n" "X-Crowdin-Project: poedit\n" "X-Crowdin-Language: be\n" "X-Crowdin-File: /locales/poedit.pot\n" msgid "Hide this notification message" msgstr "Не паказваць больш гэта апавяшчэнне" msgid "Don’t Show Again" msgstr "Не паказваць зноў" msgid "Don’t show again" msgstr "Не паказваць зноў" #, c-format msgid "(New: %i, obsolete: %i)" msgstr "(Новыя: %i, састарэлыя: %i)" msgid "Updating catalog" msgstr "Абнаўленне каталога" msgid "Collecting source files…" msgstr "Збіранне зыходных файлаў…" msgid "Extracting translatable strings…" msgstr "Выманне радкоў для перакладу…" msgid "Failed to load extracted catalog." msgstr "Не атрымалася загрузіць выняты каталог." msgid "Merging differences…" msgstr "Зліццё адрозненняў…" #, c-format msgid "“%s” is not a valid POT file." msgstr "\"%s\" не з'яўляецца карэктным файлам POT." #, c-format msgid "%i line of file “%s” was not loaded correctly." msgid_plural "%i lines of file “%s” were not loaded correctly." msgstr[0] "%i радок файла \"%s\" быў загружаны некарэктна." msgstr[1] "%i радкі файла \"%s\" былі загружаныя некарэктна." msgstr[2] "%i радкоў файла \"%s\" былі загружаныя некарэктна." #, c-format msgid "Line %d of file “%s” is corrupted (not valid %s data)." msgstr "Радок %d файла \"%s\" пашкоджаны (некарэктныя даныя %s)." #, c-format msgid "Malformed header: “%s”" msgstr "Пашкоджаны загаловак: “%s”" msgid "" "Broken catalog file: singular form msgstr used together with msgid_plural" msgstr "" "Сапсаваны файл каталога: форма адзіночнага ліку msgstr ужываецца разам з " "msgid_plural" msgid "Broken catalog file: plural form msgstr used without msgid_plural" msgstr "" "Сапсаваны файл каталога: форма множнага ліку msgstr ужыта без msgid_plural" msgid "" "There were errors when loading the catalog. Some data may be missing or " "corrupted as the result." msgstr "" "Пры загрузцы каталога ўзнікла памылка. У выніку чаго, некаторыя даныя могуць " "быць пашкоджаныя ці адсутнічаць." #, c-format msgid "Couldn’t load file %s, it is probably corrupted." msgstr "Немагчыма загрузіць %s. Магчыма ён пашкоджаны." #, c-format msgid "" "File “%s” is read-only and cannot be saved.\n" "Please save it under different name." msgstr "" "Файл \"%s\" даступны толькі для чытання і не можа быць захаваны.\n" "Калі ласка, захавайце яго пад іншай назвай." #, c-format msgid "Couldn’t save file %s." msgstr "Немагчыма захаваць файл %s." msgid "" "There was a problem formatting the file nicely (but it was saved all right)." msgstr "" "Узнікла праблема падчас фарматавання файла (але ён быў паспяхова захаваны)." #, c-format msgid "" "The catalog couldn’t be saved in “%s” charset as specified in catalog " "settings.\n" "\n" "It was saved in UTF-8 instead and the setting was modified accordingly." msgstr "" "Каталог не можа быць захаваны ў кадаванні \"%s\" як азначана ў наладах " "каталога.\n" "\n" "Замест гэтага ён будзе захаваны ў кадаванні UTF-8 з адпаведнымі зменамі." msgid "Error saving catalog" msgstr "Памылка захавання каталога" msgid "PO Translation Files" msgstr "Файлы перакладу PO" msgid "POT Translation Templates" msgstr "Шаблоны перакладу POT" msgid "All Translation Files" msgstr "Усе файлы перакладаў" msgid "(Use default language)" msgstr "(Карыстацца мовай па змаўчанні)" msgid "Select your preferred language" msgstr "Выберыце пажаданую мову" msgid "Language selection" msgstr "Выбар мовы" msgid "You must restart Poedit for this change to take effect." msgstr "Вы павінны перазапусціць Poedit, каб змены набылі моц." msgid "Syncing" msgstr "Сінхранізацыя" #. TRANSLATORS: %s is a cloud destination, e.g. "Crowdin" or ftp.wordpress.com etc. #, c-format msgid "Syncing with %s…" msgstr "Сіхранізацыя з %s…" #. TRANSLATORS: %s is a cloud destination, e.g. "Crowdin" or ftp.wordpress.com etc. #, c-format msgid "Syncing with %s failed." msgstr "Не атрымалася сінхранізаваць з %s." msgid "Syncing error" msgstr "Памылка сінхранізацыі" msgid "Downloading translations is disabled in this project." msgstr "Запампоўка перакладаў адключана ў гэтым праекце." msgid "Not authorized, please sign in again." msgstr "Не аўтарызаваны, калі ласка, увайдзіце яшчэ раз." msgid "" "Crowdin is an online localization management platform and collaborative " "translation tool. Poedit can seamlessly sync PO files managed at Crowdin." msgstr "" "Crowdin - гэта сеціўная прылада для сумеснай лакалізацыі і перакладу. Poedit " "можа аўтаматычна сінхранізаваць файлы PO з Crowdin." msgid "Sign In" msgstr "Увайсці" msgid "Sign in" msgstr "Увайсці" msgid "Sign Out" msgstr "Выйсці" msgid "Sign out" msgstr "Выйсці" msgid "Waiting for authentication…" msgstr "Чаканне аўтарызацыі…" msgid "Updating user information…" msgstr "Абнаўленне звестак пра карыстальніка…" msgid "Signed in as:" msgstr "Вы ўвайшлі як:" msgid "Learn More About Crowdin" msgstr "Даведацца больш пра Crowdin" msgid "Learn more about Crowdin" msgstr "Даведацца больш пра Crowdin" msgid "Sign in to Crowdin" msgstr "Увайсці ў Crowdin" msgid "Open Crowdin translation" msgstr "Адкрыць пераклад Crowdin" msgid "Project:" msgstr "Праект:" msgid "Language:" msgstr "Мова:" msgid "File:" msgstr "Файл:" msgid "No translation projects listed in your Crowdin account." msgstr "У вашым уліковым запісе Crowdin няма праектаў для перакладу." msgid "This project has no files that can be translated in Poedit." msgstr "Гэты праект не змяшчае файлаў, якія могуць быць перакладзены ў Poedit." msgid "This file can only be edited in Crowdin’s web interface." msgstr "Гэты файл можа быць зменены толькі ў вэб-інтэрфейсе Crowdin." msgid "Downloading latest translations…" msgstr "Пампаванне апошніх перакладаў…" msgid "Syncing with Crowdin failed." msgstr "Сінхранізаваць з Crowdin не атрымалася." msgid "Crowdin error" msgstr "Памылка Crowdin" msgid "Uploading translations…" msgstr "Дасыланне перакладу…" msgid "&Copy" msgstr "&Скапіяваць" msgid "Learn more" msgstr "Даведацца больш" msgid "Learn More" msgstr "Даведацца больш" msgid "&Help" msgstr "&Даведка" msgid "MO files can’t be directly edited in Poedit." msgstr "Файлы з пашырэннем MO нельга змяніць непасрэдна ў Poedit." msgid "Error opening file" msgstr "Памылка адкрыцця файла" msgid "" "Please open and edit the corresponding PO file instead. When you save it, " "the MO file will be updated as well." msgstr "" "Калі ласка, адкрыйце і змяніце адпаведны файл PO. Пасля яго захавання, файл " "MO таксама абнавіцца." msgid "don’t delete temporary files (for debugging)" msgstr "не выдаляйце часовыя файлы (для адладкі)" msgid "handle a poedit:// URI" msgstr "апрацаваць адрас poedit://" msgid "go to item at given line number" msgstr "перайсці да элемента з вызначаным нумарам радка" msgid "Failed to communicate with Poedit process." msgstr "Памылка падключэння да працэсу Poedit." #, c-format msgid "Unhandled exception occurred: %s" msgstr "Адбылося непрадбачанае выключэнне: %s" msgid "Open catalog" msgstr "Адкрыць каталог" #, c-format msgid "File “%s” doesn’t exist." msgstr "Файл “%s” не існуе." msgid "Poedit is an easy to use translations editor." msgstr "Poedit - гэта просты ў выкарыстанні рэдактар перакладаў." msgid "Catalogs Manager" msgstr "Менеджар каталогаў" msgid "Check for Updates…" msgstr "Праверка абнаўленняў…" msgid "&Edit" msgstr "&Змяніць" msgid "Undo" msgstr "Вярнуць" msgid "Redo" msgstr "Аднавіць" msgid "Paste and Match Style" msgstr "Стыль капіявання і ўстаўкі" msgid "Delete" msgstr "Выдаліць" msgid "Spelling and Grammar" msgstr "Праверка правапісу і граматыка" msgid "Show Spelling and Grammar" msgstr "Паказваць арфаграфічныя і граматычныя памылкі" msgid "Check Document Now" msgstr "Праверыць дакумент" msgid "Check Spelling While Typing" msgstr "Правяраць правапіс падчас уводу" msgid "Check Grammar With Spelling" msgstr "Правяраць граматыку і правапіс" msgid "Correct Spelling Automatically" msgstr "Выпраўляць правапіс аўтаматычна" msgid "Substitutions" msgstr "Замены" msgid "Show Substitutions" msgstr "Паказваць замены" msgid "Smart Copy/Paste" msgstr "Інтэлектуальнае капіяванне/устаўка" msgid "Smart Quotes" msgstr "Інтэлектуальныя двукоссі" msgid "Smart Dashes" msgstr "Інтэлектуальны працяжнік" msgid "Smart Links" msgstr "Інтэлектуальныя спасылкі" msgid "Text Replacement" msgstr "Замена тэксту" msgid "Transformations" msgstr "Пераўтварэнні" msgid "Make Upper Case" msgstr "Канвертаваць у вялікія літары" msgid "Make Lower Case" msgstr "Канвертаваць у маленькія літары" msgid "Capitalize" msgstr "Вялікімі літарамі" msgid "Speech" msgstr "Маўленне" msgid "Start Speaking" msgstr "Пачаць агучванне" msgid "Stop Speaking" msgstr "Спыніць агучванне" msgid "&View" msgstr "&Выгляд" msgid "Enter Full Screen" msgstr "Перайсці ў поўнаэкранны рэжым" msgid "Window" msgstr "Акно" msgid "Minimize" msgstr "Згарнуць" msgid "Zoom" msgstr "Маштаб" msgid "Bring All to Front" msgstr "Змясціць усё на пярэднім плане" #. TRANSLATORS:File kind displayed in Finder/Explorer msgid "PO Translation" msgstr "Файл перакладу PO" msgid "The file cannot be opened." msgstr "Не атрымліваецца адкрыць файл." msgid "Invalid file" msgstr "Памылковы файл" msgid "" "The file may be either corrupted or in a format not recognized by Poedit." msgstr "Магчыма файл пашкоджаны ці мае фармат, які не падтрымліваецца Poedit." msgid "You can’t drop more than one file on Poedit window." msgstr "Нельга перацягваць некалькі файлаў у акно Poedit." #, c-format msgid "File “%s” is not a message catalog." msgstr "Файл \"%s\" не з'яўляецца каталогам паведамленняў." msgid "Poedit" msgstr "Poedit" msgid "&File" msgstr "&Файл" msgid "&Go" msgstr "&Перайсці" #. TRANSLATORS: %s is language name in its basic form (as you #. would see e.g. in a list of supported languages). You may need #. to rephrase it, e.g. to an equivalent of "for language %s". #, c-format msgid "" "Spellchecking is disabled, because the dictionary for %s isn’t installed." msgstr "Праверка правапісу адключана, таму што, слоўнік для %s не ўсталяваны." msgid "Install" msgstr "Усталяваць" msgid "Catalog modified. Do you want to save changes?" msgstr "Каталог зменены. Захаваць змены?" msgid "Save changes" msgstr "Захаваць змяненні" msgid "Your changes will be lost if you don’t save them." msgstr "Вашы змены будуць страчаныя, калі вы не захаваеце іх." msgid "Save" msgstr "Захаваць" msgid "Don’t save" msgstr "Не захоўваць" msgid "Don’t Save" msgstr "Не захоўваць" msgid "Save as…" msgstr "Захаваць як…" msgid "Compile to…" msgstr "Кампіляваць у…" msgid "Compiled Translation Files" msgstr "Скампіляваныя файлы перакладу" msgid "Export as…" msgstr "Экспартаваць як…" msgid "HTML Files" msgstr "Файл HTML" msgid "Open catalog template" msgstr "Адкрыць шаблон каталога" msgid "Source code not available." msgstr "Зыходны код не даступны." msgid "Updating failed" msgstr "Не атрымалася абнавіць" msgid "" "Translations couldn’t be updated from the source code, because no code was " "found in the location specified in the catalog’s Properties." msgstr "" "Пераклады не могуць быць абноўлены з зыходнага кода, таму што код не быў " "знойдзены ў папцы, азначанай ва ўласцівасцях каталога." msgid "Entries in the catalog are probably incorrect." msgstr "Запісы ў каталога, напэўна, памылковыя." msgid "Updating the catalog failed. Click on 'Details >>' for details." msgstr "" "Не атрымалася абнавіць каталог. Пстрыкніце на кнопку \"Дэталі>>\", каб " "атрымаць дадатковыя звесткі." #, c-format msgid "%d issue with the translation found." msgid_plural "%d issues with the translation found." msgstr[0] "У перакладзе знойдзена %d праблема." msgstr[1] "У перакладзе знойдзены %d праблемы." msgstr[2] "У перакладзе знойдзена %d праблем." msgid "Validation results" msgstr "Вынікі праверкі" msgid "" "Entries with errors were marked in red in the list. Details of the error " "will be shown when you select such an entry." msgstr "" "Запісы з памылкамі былі вылучаны ў спісе чырвоным колерам. Калі выбраць такі " "запіс, будуць паказаныя падрабязныя звесткі пра памылку." msgid "The file was saved safely." msgstr "Файл быў паспяхова захаваны." msgid "" "The file was saved safely and compiled into the MO format, but it will " "probably not work correctly." msgstr "" "Файл быў паспяхова захаваны і скампіляваны ў фармат MO, але магчыма будзе " "працаваць некарэктна." msgid "" "The file was saved safely, but it cannot be compiled into the MO format and " "used." msgstr "" "Файл быў паспяхова захаваны, але яго не атрымалася скампіляваць у фармат MO " "для далейшага выкарыстання." msgid "" "The file was compiled into the MO format, but it will probably not work " "correctly." msgstr "" "Файл быў скампіляваны ў фармат MO, але магчыма будзе працаваць некарэктна." msgid "The file cannot be compiled into the MO format and used." msgstr "" "Не атрымалася скампіляваць файл у фармат MO для далейшага выкарыстання." msgid "No problems with the translation found." msgstr "Праблем у перакладзе не знойдзена." #, c-format msgid "The translation is ready for use, but %d entry is not translated yet." msgid_plural "" "The translation is ready for use, but %d entries are not translated yet." msgstr[0] "Пераклад гатовы да выкарыстання, але %d запіс яшчэ не перакладзены." msgstr[1] "" "Пераклад гатовы да выкарыстання, але %d запісы яшчэ не перакладзена." msgstr[2] "" "Пераклад гатовы да выкарыстання, але %d запісаў яшчэ не перакладзена." msgid "The translation is ready for use." msgstr "Пераклад гатовы да выкарыстання." #, c-format msgid "Poedit automatically fixed invalid content in the file “%s”." msgstr "Poedit аўтаматычна выправіў памылковы змест у файле \"%s\"." msgid "" "The file contained duplicate items, which is not allowed in PO files and " "would prevent the file from being used. Poedit fixed the issue, but you " "should review translations of any items marked as needing work and correct " "them if necessary." msgstr "" "Гэты файл змяшчаў у сабе дубляваныя элементы, якія не дазваляюцца ў файлах " "PO і могуць ствараць перашкоды ў іх выкарыстанні. Poedit выправіў гэту " "праблему, але вы павінны перагледзець пераклады з пазнакамі \"патрабуюць " "дапрацоўкі\" і выправіць іх пры неабходнасці." msgid "Language of the translation isn’t set." msgstr "Не прызначана мова перакладу." msgid "Set Language" msgstr "Выбраць мову" msgid "Set language" msgstr "Выбраць мову" #. TRANSLATORS: This is shown underneath "Language of the translation isn't set (or ...is the same as source language)." msgid "" "Suggestions are not available if the translation language is not set " "correctly. Other features, such as plural forms, may be affected as well." msgstr "" "Прапановы не даступныя, калі мова перакладу не азначаная. Іншыя магчымасці, " "такія як формы множнага ліку, таксама могуць быць парушаныя." msgid "Language of the translation is the same as source language." msgstr "Мова перакладу супадае з зыходнай мовай." msgid "Fix Language" msgstr "Выправіць мову" msgid "Fix language" msgstr "Выправіць мову" msgid "" "This catalog has entries with plural forms, but doesn’t have Plural-Forms " "header configured." msgstr "" "Каталог змяшчае элементы з формамі множнага ліку, але ён не мае наладаў " "загалоўку Plural-Forms." msgid "" "Entries in this catalog have different plural forms count from what " "catalog’s Plural-Forms header says" msgstr "" "Элементы ў гэтым каталозе маюць формы множнага ліку, якія адрозніваюцца ад " "азначаных у загалоўку Plural-Forms" msgid "Required header Plural-Forms is missing." msgstr "Неабходны загаловак \"Plural-Forms\" адсутнічае." #, c-format msgid "Syntax error in Plural-Forms header (\"%s\")." msgstr "Сінтаксічная памылка ў загалоўку \"Plural-Forms\" (\"%s\")." msgid "Fix the Header" msgstr "Выправіць загаловак" msgid "Fix the header" msgstr "Выправіць загаловак" #. TRANSLATORS: %s is language name in its basic form (as you #. would see e.g. in a list of supported languages). You may need #. to rephrase it, e.g. to an equivalent of "for language %s". #, c-format msgid "Plural forms expression used by the catalog is unusual for %s." msgstr "" "Выраз формы множнага ліку, якое выкарыстоўваецца ў каталога, з'яўляецца " "незвычайным для %s." #. TRANSLATORS: A verb, shown as action button with ""Plural forms expression used by the catalog is unusual for %s.")" msgid "Review" msgstr "Праверыць" #, c-format msgid "Error loading message catalog file “%s”." msgstr "Памылка загрузкі файла каталога паведамлення \"%s\"." #, c-format msgid "Translated: %d of %d (%d %%)" msgstr "Перакладзена: %d з %d (%d %%)" #, c-format msgid "Remaining: %d" msgstr "Засталося: %d" #, c-format msgid "%d error" msgid_plural "%d errors" msgstr[0] "%d памылка" msgstr[1] "%d памылкі" msgstr[2] "%d памылак" #, c-format msgid "%d entry" msgid_plural "%d entries" msgstr[0] "%d запіс" msgstr[1] "%d запісы" msgstr[2] "%d запісаў" msgid " (unsaved)" msgstr " (не захавана)" msgid " (modified)" msgstr "(зменены)" #, c-format msgid "Failed to update translation memory: %s" msgstr "Не атрымалася абнавіць памяць перакладаў: %s" msgid "Purge deleted translations" msgstr "Знішчыць вылучаныя пераклады" msgid "Do you want to remove all translations that are no longer used?" msgstr "Жадаеце выдаліць усе пераклады, якія больш не выкарыстоўваюцца?" msgid "" "If you continue with purging, all translations marked as deleted will be " "permanently removed. You will have to translate them again if they are added " "back in the future." msgstr "" "Калі працягнуць аперацыю, усе пераклады, пазначаныя як выдаленыя, будуць " "цалкам знішчаныя. Калі яны будуць даданыя назад у будучым, іх прыйдзецца " "перакладаць паўторна." msgid "Keep" msgstr "Пакінуць" msgid "Purge" msgstr "Знішчыць" msgid "Copy from source text" msgstr "Скапіяваць зыходны тэкст" msgid "Copy from Source Text" msgstr "Скапіяваць зыходны тэкст" #. TRANSLATORS: This is the key shortcut used in menus on Windows, some languages call them differently #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Ctrl+" msgstr "Ctrl+" msgid "Clear translation" msgstr "Ачысціць пераклад" msgid "Clear Translation" msgstr "Ачысціць пераклад" msgid "Edit comment" msgstr "Рэдагаваць каментар" msgid "Edit Comment" msgstr "Рэдагаваць каментар" msgid "References:" msgstr "Спасылкі:" msgid "&Bookmarks" msgstr "&Закладкі" #. TRANSLATORS: This is the key shortcut used in menus on Windows, some languages call them differently #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Alt+" msgstr "Alt+" #, c-format msgid "Set bookmark %i" msgstr "Дадаць закладку %i" #, c-format msgid "Go to bookmark %i" msgstr "Перайсці да закладкі %i" #, c-format msgid "Set Bookmark %i" msgstr "Дадаць закладку %i" #, c-format msgid "Go to Bookmark %i" msgstr "Перайсці да закладкі %i" msgid "Hide Sidebar" msgstr "Схаваць бакавую панэль" msgid "Show Sidebar" msgstr "Паказаць бакавую панэль" msgid "Hide Status Bar" msgstr "Схаваць радок стану" msgid "Show Status Bar" msgstr "Паказаць радок стану" msgid "Source text:" msgstr "Зыходны тэкст:" msgid "Singular:" msgstr "Адзіночны:" msgid "Plural:" msgstr "Множны:" msgid "Translation:" msgstr "Пераклад:" msgid "Pre-translated" msgstr "Чарнавы варыянт" msgid "Needs Work" msgstr "Патрабуе праверкі" #. TRANSLATORS: This indicates that the string's translation isn't final #. and has known problems. For example, it might be machine translated or #. fuzzy matched from an older string. The translation should be short and #. convey this. If it's problematic to translate it, "Needs review" is #. acceptable substitute, but note that the meaning is subtly different: #. "needs review" implies that somebody else should review the string after #. I am done with it (i.e. consider it good), while "needs work" implies I #. need to return to it and finish the translation. msgid "Needs work" msgstr "Патрабуе праверкі" msgid "" "POT files are only templates and don’t contain any translations themselves.\n" "To make a translation, create a new PO file based on the template." msgstr "" "Файлы з пашырэннем POT з'яўляюцца толькі шаблонамі і не змяшчаюць у сабе " "перакладаў.\n" "Каб зрабіць пераклад стварыце файл PO з шаблона." msgid "Create New Translation" msgstr "Стварыць новы пераклад" msgid "Create new translation" msgstr "Стварыць новы пераклад" msgid "Everything" msgstr "Усё" #, c-format msgid "Form %i" msgstr "Форма %i" msgid "Singular" msgstr "Адзіночны" msgid "Zero" msgstr "Нуль" msgid "One" msgstr "Адзін" msgid "Two" msgstr "Два" msgid "Plural" msgstr "Множны" msgid "Other" msgstr "Iншае" #, c-format msgid "%s Format" msgstr "Фармат %s" #. TRANSLATORS: %s is replaced with language name, e.g. "PHP" or "C", so "PHP Format" etc." #, c-format msgid "%s format" msgstr "Фармат %s" msgid "Source text" msgstr "Зыходны тэкст" #, c-format msgid "Translation — %s" msgstr "Пераклад — %s" msgid "ID" msgstr "ID" #, c-format msgid "Source text — %s" msgstr "Зыходны тэкст — %s" msgid "unknown language" msgstr "невядомая мова" #, c-format msgid "Failed command: %s" msgstr "Памылка выканання каманды: %s" msgid "Failed to merge gettext catalogs." msgstr "Не атрымалася аб'яднаць каталогі gettext." msgid "Source file" msgstr "Зыходны файл" msgid "Source file occurrence:" msgstr "Размяшчэнне зыходнага файла:" msgid "Open in Editor" msgstr "Адкрыць у рэдактары" msgid "Open in editor" msgstr "Адкрыць у рэдактары" msgid "No references for the selected item." msgstr "Няма спасылкі для выбранага элемента." #, c-format msgid "Error opening file %s!" msgstr "Памылка адкрыцця файла %s!" msgid "Find" msgstr "Знайсці" msgid "Replace" msgstr "Замяніць" #. TRANSLATORS: Expander in Find window for additional options (case sensitive etc.) msgid "Options" msgstr "Налады" msgid "Ignore case" msgstr "Ігнараваць рэгістр" msgid "Wrap around" msgstr "Шукаць бясконца" msgid "Whole words only" msgstr "Толькі цэлыя словы" msgid "Find in source texts" msgstr "Шукаць у зыходных тэкстах" msgid "Find in translations" msgstr "Шукаць у перакладах" msgid "Find in comments" msgstr "Шукаць у перакладах" msgid "Close" msgstr "Закрыць" msgid "Replace &All" msgstr "Замяніць &усе" msgid "Replace &all" msgstr "Замяніць &усе" msgid "&Replace" msgstr "&Замяніць" msgid "< &Previous" msgstr "< &Папярэдні" msgid "&Next >" msgstr "&Наступны >" msgid "String to find" msgstr "Радок пошуку" msgid "Replacement string" msgstr "Радок замены" #, c-format msgid "Cannot execute program: %s" msgstr "Не атрымліваецца выканаць праграму: %s" msgid "Language Code or Name (e.g. en_GB)" msgstr "Код мовы ці назва (напр. en_GB)" msgid "Translation Language" msgstr "Мова перакладу" msgid "Language of the translation:" msgstr "Мова перакладу:" msgid "Poedit - Catalogs manager" msgstr "Poedit - кіраўнік каталогаў" msgid "Catalog" msgstr "Каталог" msgid "Total" msgstr "Усяго" msgid "Untrans" msgstr "Не перакладзеных" msgid "Errors" msgstr "Памылкі" msgid "Last modified" msgstr "Апошняе змяненне" msgid "Select directory" msgstr "Выберыце каталог" msgid "Directories:" msgstr "Каталогі:" msgid "" msgstr "<без назвы>" msgid "Do you want to delete the project?" msgstr "Вы жадаеце выдаліць гэты праект?" msgid "Confirmation" msgstr "Пацвярджэнне" msgid "" "Do you really want to do mass update of\n" "all catalogs in this project?" msgstr "" "Вы сапраўды жадаеце абнавіць\n" "усе каталогі ў гэтым праекце?" msgid "Information about the translator" msgstr "Звесткі пра перакладчыка" msgid "Name:" msgstr "Імя:" msgid "Your Name" msgstr "Ваша імя" msgid "Email:" msgstr "Электронная пошта:" msgid "your_email@example.com" msgstr "vasha_elposhta@uzor.com" msgid "" "Your name and email address are only used to set the Last-Translator header " "of GNU gettext files." msgstr "" "Ваша імя і адрас электроннай пошты будуць выкарыстоўвацца толькі пры " "пазначэнні апошняга перакладчыка ў загалоўках GNU gettext файлаў." msgid "Editing" msgstr "Рэдагаванне" msgid "Automatically compile MO file when saving" msgstr "Аўтаматычна кампіляваць файл MO пры захаванні" msgid "Show summary after catalog update" msgstr "Паказваць зводку пасля абнаўлення каталога" msgid "Check spelling" msgstr "Правяраць правапіс" msgid "Always change focus to text input field" msgstr "Заўсёды рабіць поле для ўводу тэксту актыўным" msgid "" "Never let the list of strings take focus. If enabled, you must use Ctrl-" "arrows for keyboard navigation but you can also type text immediately, " "without having to press Tab to change focus." msgstr "" "Ніколі не рабіць актыўным спіс з радкамі. Калі ўключана, для перамяшчэння з " "дапамогай клавіятуры неабходна выкарыстоўваць Ctrl+стрэлкі. Гэты параметр " "таксама дазваляе ўводзіць тэкст імгненна, без папярэдняга націску клавішы " "TAB для пераключэння фокуса." msgid "Appearance" msgstr "Знешні выгляд" msgid "Use custom list font:" msgstr "Выкарыстоўваць карыстальніцкі шрыфт для спісу:" msgid "Use custom text fields font:" msgstr "Выкарыстоўваць карыстальніцкі тэкст у палях уводу:" msgid "Change UI language" msgstr "Змяніць мову інтэрфейсу" #. TRANSLATORS: This is a note appended to "Check spelling" when running on older Windows versions msgid "(requires Windows 8 or newer)" msgstr "(патрабуецца Windows 8 ці больш новая версія)" msgid "General" msgstr "Агульныя" msgid "Use translation memory" msgstr "Выкарыстоўваць памяць перакладаў" msgid "Learn From Files…" msgstr "Вывучыць з файлаў…" msgid "Learn from files…" msgstr "Вывучыць з файлаў…" #. TRANSLATORS: This is a button that deletes everything in the translation memory (i.e. clears/resets it). msgid "Reset" msgstr "Скінуць" #. TRANSLATORS: Followed by "match translations within the file" or "pre-translate from TM" msgid "When updating from sources" msgstr "Пры абнаўленні з крыніцы" #. TRANSLATORS: Preceded by "When updating from sources" msgid "fuzzy match within the file" msgstr "падбіраць падобны пераклад унутры файла" #. TRANSLATORS: Preceded by "When updating from sources" msgid "pre-translate from TM" msgstr "чарнавы пераклад з памяці перакладаў" msgid "" "Poedit can attempt to fill in new entries from only previous translations in " "the file or from your entire translation memory. Using the TM won’t be very " "effective if it’s near-empty, but it will get better as you add more " "translations to it." msgstr "" "Poedit можа паспрабаваць запоўніць новыя радкі толькі папярэднімі " "перакладамі з гэтага файла ці з вашай памяці перакладаў. Выкарыстанне памяці " "перакладаў не будзе вельмі эфектыўным, калі яна амаль пустая, але яна будзе " "станавіцца лепш па меры таго, як вы будзеце дадаваць новыя пераклады." msgid "Stored translations:" msgstr "Захаваныя пераклады:" msgid "Database size on disk:" msgstr "Памер базы даных на дыску:" msgid "Select translation files to import" msgstr "Выберыце файлы перакладу для імпартавання" msgid "Translation Memory" msgstr "Памяць перакладаў" msgid "Importing translations…" msgstr "Імпартаванне перакладаў…" msgid "Finalizing…" msgstr "Завяршэнне…" msgid "Reset translation memory" msgstr "Скінуць памяць перакладаў" msgid "Are you sure you want to reset the translation memory?" msgstr "Вы ўпэўненыя, што жадаеце скінуць памяць перакладаў?" msgid "" "Resetting the translation memory will irrevocably delete all stored " "translations from it. You can’t undo this operation." msgstr "" "Ачыстка памяці перакладаў незваротна выдаліць усе пераклады, якія " "захоўваюцца ў ёй. Вы не зможаце скасаваць гэтую аперацыю." msgid "Cancel" msgstr "Скасаваць" #. TRANSLATORS: This is abbreviation of "Translation Memory" used in Preferences on macOS. #. Long text looks weird there, too short (like TM) too, but less so. "General" is about ideal #. length there. msgid "TM" msgstr "Памяць перакладаў (ПП)" msgid "" "Source code extractors are used to find translatable strings in the source " "code files and extract them so that they can be translated." msgstr "" "Экстрактары выкарыстоўвацца для пошуку радкоў, якія перакладаюцца ў файлах " "зыходнага кода і вымаюць іх так, каб іх можна было перакласці." msgid "Custom Extractors:" msgstr "Карыстальніцкія экстрактары:" msgid "Custom extractors:" msgstr "Карыстальніцкія экстрактары:" msgid "Edit…" msgstr "Змяніць…" msgid "GNU gettext" msgstr "GNU gettext" msgid "" "Supports all programming languages recognized by GNU gettext tools (PHP, C/C+" "+, C#, Perl, Python, Java, JavaScript and others)." msgstr "" "Падтрымліваюцца ўсе праграмныя мовы, якія распазнаюцца сродкамі GNU gettext " "(PHP, C/C++, C#, Perl, Python, Java, JavaScript і іншыя)." msgid "Delete extractor" msgstr "Выдаліць экстрактар" #, c-format msgid "Are you sure you want to delete the “%s” extractor?" msgstr "Вы ўпэўненыя, што жадаеце выдаліць экстрактар \"%s\"?" msgid "Extractors" msgstr "Экстрактары" msgid "Accounts" msgstr "Уліковыя запісы" msgid "Automatically check for updates" msgstr "Аўтаматычна правяраць наяўнасць новых версій" msgid "Include beta versions" msgstr "У тым ліку правяраць бэта-версіі" msgid "" "Beta versions contain the latest new features and improvements, but may be a " "bit less stable." msgstr "" "Бэта-версіі ўключаюць усе самыя новыя функцыі і ўдасканаленні, але могуць " "быць менш стабільнымі." msgid "Updates" msgstr "Абнаўленні" msgid "" "These settings affect internal formatting of PO files. Adjust them if you " "have specific requirements e.g. because of version control." msgstr "" "Гэтыя параметры ўплываюць на ўнутранае фарматаванне файлаў PO. Скарэктуйце " "іх, калі ў вас ёсць адмысловыя патрабаванні, напрыклад, калі вы карыстаецеся " "сістэмай кантролю версій." msgid "Line endings:" msgstr "Сканчэнне радкоў:" msgid "Unix (recommended)" msgstr "Unix (пажадана)" msgid "Windows" msgstr "Windows" #. TRANSLATORS: Followed by text control for entering number; wraps text at given width msgid "Wrap at:" msgstr "Перанос:" msgid "Preserve formatting of existing files" msgstr "Захоўваць фарматаванне існуючых файлаў" msgid "Advanced" msgstr "Пашыраныя налады" msgid "Pre-translating…" msgstr "Выкананне чарнавога перакладу…" #, c-format msgid "Pre-translated %u string" msgid_plural "Pre-translated %u strings" msgstr[0] "Чарнавы пераклад %u радка" msgstr[1] "Чарнавы пераклад %u радкоў" msgstr[2] "Чарнавы пераклад %u радкоў" #. TRANSLATORS: This is a somewhat common term describing the action where #. you apply the translation memory and/or machine translation to all of the #. strings you're translating as the first step, followed by correcting, #. improving etc., i.e. actually translating the strings. This may be tricky #. to express in other languages as simply as in English, but please try to #. keep it similarly concise. Please try to avoid, if possible, describing it #. as "auto-translation" and similar, because such terminology would mislead #. some users into thinking it's all that needs to be done (spoken from #. experience). "Pre-translate" nicely expresses that it's only the step done #. *before* actual translation. msgid "Pre-translate" msgstr "Чарнавы пераклад" msgid "Only fill in exact matches" msgstr "Запаўняць толькі пры дакладным супадзенні" msgid "" "By default, inaccurate results are filled in as well and marked as needing " "work. Check this option to only include accurate matches." msgstr "" "Па змаўчанні вынікі, якія не цалкам супадаюць таксама будуць запоўненыя і " "пазначаныя як \"патрабуюць дапрацоўкі\". Пазначце гэту опцыю, каб запаўняць " "толькі поўныя супадзенні." msgid "Don’t mark exact matches as needing work" msgstr "Не пазначаць дакладныя супадзенні як \"патрабуюць дапрацоўкі\"" msgid "" "Only enable if you trust the quality of your TM. By default, all matches " "from the TM are marked as needing work and should be reviewed before use." msgstr "" "Уключыце толькі ў тым выпадку, калі вы давяраеце якасці вашай памяці " "перакладаў. Па змаўчанні, усе супадзенні з памяці перакладаў пазначаюцца як " "\"патрабуюць дапрацоўкі\" і іх неабходна пераправяраць." msgid "" "Pre-translation automatically finds exact or fuzzy matches for untranslated " "strings in the translation memory and fills in their translations." msgstr "" "Чарнавы пераклад аўтаматычна знаходзіць дакладныя ці недакладныя супадзенні " "для не перакладзеных радкоў у памяці перакладаў і запаўняе іх перакладамі." #, c-format msgid "%d entry was pre-translated." msgid_plural "%d entries were pre-translated." msgstr[0] "%d радок быў запоўнены чарнавым перакладам." msgstr[1] "%d радкі былі запоўненыя чарнавым перакладам." msgstr[2] "%d радкоў было запоўнена чарнавым перакладам." msgid "" "The translations were marked as needing work, because they may be " "inaccurate. You should review them for correctness." msgstr "" "Пераклады былі пазначаныя як \"патрабуюць дапрацоўкі\" з той прычыны, што " "могуць змяшчаць памылкі. Вы павінны праверыць ці слушныя яны." msgid "No entries could be pre-translated." msgstr "Няма запісаў для якіх можна зрабіць чарнавы пераклад." msgid "" "The TM doesn’t contain any strings similar to the content of this file. It " "is only effective for semi-automatic translations after Poedit learns enough " "from files that you translated manually." msgstr "" "Памяць перакладаў не змяшчае радкоў, падобных на змесціва гэтага файла. Яна " "падыходзіць толькі для паўаўтаматычнага перакладу пасля таго, як Poedit " "збярэ дастаткова даных з файлаў, якія вы пераклалі ўручную." msgid "" "Drag and Drop Folders Here\n" "\n" "or use the + button" msgstr "" "Перацягніце папкі сюды\n" "\n" "ці выкарыстоўвайце кнопку \"+\"" msgid "" "Drag and drop folders here\n" "\n" "or use the + button" msgstr "" "Перацягніце папкі сюды\n" "\n" "ці выкарыстоўвайце кнопку \"+\"" msgid "Add Folders…" msgstr "Дадаць папкі…" msgid "Add folders…" msgstr "Дадаць папкі…" msgid "Add Files…" msgstr "Дадаць файлы…" msgid "Add files…" msgstr "Дадаць файлы…" msgid "Add Wildcard…" msgstr "Дадаць шаблон…" msgid "Add wildcard…" msgstr "Дадаць шаблон…" msgid "Paths" msgstr "Шляхі" msgid "Excluded paths" msgstr "Выключаныя шляхі" msgid "Advanced extraction settings" msgstr "Дадатковыя налады вымання" msgid "Extract notes for translators from:" msgstr "Выняць нататкі для перакладчыкаў з:" msgid "Comments prefixed with:" msgstr "Каментарыі, якія пачынаюцца з:" msgid "All comments" msgstr "Усе каментарыі" msgid "Additional xgettext flags:" msgstr "Дадатковыя сцягі xgettext:" msgid "Additional keywords" msgstr "Дадатковыя ключавыя словы" msgid "Name of the project the translation is for" msgstr "Назва праекта перакладу для" msgid "Team name and email address or URL" msgstr "Назва каманды і адрас эл. пошты ці URL" msgid "e.g. nplurals=2; plural=(n > 1);" msgstr "напрыклад, plurals=2; plural=(n > 1);" msgid "UTF-8 (recommended)" msgstr "UTF-8 (пажадана)" msgid "Please save the file first. This section cannot be edited until then." msgstr "" "Калі ласка, першапачаткова захавайце файл. Да гэтага дадзены раздзел не можа " "быць зменены." msgid "Not all plural forms are translated." msgstr "Не ўсе формы множнага ліку перакладзеныя." msgid "The translation should start as a sentence." msgstr "Пераклад павінен пачынацца з вялікай літары." msgid "The translation should start with a lowercase character." msgstr "Пераклад павінен пачынацца з маленькай літары." msgid "The translation doesn’t start with a space." msgstr "Пераклад не пачынаецца з прабела." msgid "The translation starts with a space, but the source text doesn’t." msgstr "Пераклад пачынаецца з прабела, а зыходны тэкст не." msgid "The translation is missing a newline at the end." msgstr "У перакладзе адсутнічае сімвал зыходнага радка ў канцы." msgid "The translation ends with a newline, but the source text doesn’t." msgstr "Пераклад скачаецца сімвалам новага радка, а пачатковы тэкст не." msgid "The translation is missing a space at the end." msgstr "У канцы перакладу прапушчаны прабел." msgid "The translation ends with a space, but the source text doesn’t." msgstr "Пераклад пачынаецца сканчаецца прабелам, а зыходны тэкст не." #, c-format msgid "The translation should end with “%s”." msgstr "Пераклад павінен сканчацца \"%s\"." #, c-format msgid "The translation should not end with “%s”." msgstr "Пераклад не павінен сканчацца \"%s\"" #, c-format msgid "The translation ends with “%s”, but the source text ends with “%s”." msgstr "Пераклад сканчаецца \"%s\", а пачатковы тэкст сканчаецца \"%s\"." msgid "Comment:" msgstr "Каментар:" msgid "OK" msgstr "Добра" msgid "C&lear" msgstr "А&чысціць" msgid "Clear the comment" msgstr "Ачысціць каментар" msgid "New" msgstr "Новы" msgid "Create new translations project" msgstr "Стварыць новы праект перакладу" msgid "Edit" msgstr "Змяніць" msgid "Edit the project" msgstr "Рэдагаваць праект" msgid "Delete the project" msgstr "Выдаліць праект" msgid "Update all" msgstr "Абнавіць усё" msgid "Update all catalogs in the project" msgstr "Абнавіць усе каталогі праекта" msgid "Edit project" msgstr "Рэдагаваць праект" msgid "Project name:" msgstr "Назва праекта:" msgid "Browse" msgstr "Агляд" msgid "Add directory to the list" msgstr "Дадаць каталог у спіс" msgid "&New…" msgstr "&Новы…" msgid "New from &POT/PO file…" msgstr "Новы з файла &POT/PO…" msgid "New From &POT/PO File…" msgstr "Новы з файла &POT/PO…" msgid "&Open…" msgstr "&Адкрыць…" msgid "Open Recent" msgstr "Адкрыць нядаўнія файлы" msgid "Open from Crowdin…" msgstr "Адкрыць з Crowdin…" msgid "Open From Crowdin…" msgstr "Адкрыць з Crowdin…" msgid "&Close" msgstr "&Закрыць" msgid "&Save" msgstr "&Захаваць" msgid "Save &as…" msgstr "Захаваць &як…" msgid "Save &As…" msgstr "Захаваць &як…" msgid "Compile to MO…" msgstr "Кампіляваць у файл MO…" msgid "E&xport as HTML…" msgstr "Эк&спартаваць як HTML…" msgid "Check for updates…" msgstr "Праверка абнаўленняў…" msgid "&Preferences…" msgstr "&Налады…" msgid "Catalogs &manager" msgstr "&Менеджар каталогаў" msgid "Catalogs &Manager" msgstr "&Менеджар каталогаў" msgid "E&xit" msgstr "В&ыхад" msgid "Quit" msgstr "Выйсці" msgid "Copy from singular" msgstr "Капіяваць форму адзіночнага ліку" msgid "Copy From Singular" msgstr "Капіяваць форму адзіночнага ліку" msgid "Translation needs &work" msgstr "Пераклад, які патрабуе &дапрацоўкі" msgid "Translation Needs &Work" msgstr "Пераклады, якія патрабуюць &дапрацоўкі" msgid "Edit &comment" msgstr "Змяніць &каментар" msgid "Edit &Comment" msgstr "Змяніць &каментар" msgid "Suggestions" msgstr "Прапановы" msgid "&Find…" msgstr "&Знайсці…" msgid "Replace…" msgstr "Замяніць…" msgid "Find next" msgstr "Знайсці наступны" msgid "Find previous" msgstr "Знайсці папярэдні" msgid "Find and Replace…" msgstr "Знайсці і замяніць…" msgid "Find Next" msgstr "Знайсці наступны" msgid "Find Previous" msgstr "Знайсці папярэдні" msgid "&Preferences" msgstr "&Налады" msgid "Display entry &IDs" msgstr "Паказваць ну&мары радкоў" msgid "Display Entry &IDs" msgstr "Паказваць ну&мары радкоў" msgid "Sort by &file order" msgstr "Сартаваць як у &файле" msgid "Sort by &File Order" msgstr "Сартаваць як у &файле" msgid "Sort by &source" msgstr "Сартаваць як у &арыгінале" msgid "Sort by &Source" msgstr "Сартаваць як у &арыгінале" msgid "Sort by &translation" msgstr "Сартаваць як у &перакладзе" msgid "Sort by &Translation" msgstr "Сартаваць як у &перакладзе" msgid "&Group by context" msgstr "&Групаваць па кантэксце" msgid "&Group By Context" msgstr "&Групаваць па кантэксце" msgid "Entries with errors first" msgstr "Першымі адлюстроўваць запісы з памылкамі" msgid "Entries with Errors First" msgstr "Першымі адлюстроўваць запісы з памылкамі" msgid "&Untranslated entries first" msgstr "Спачатку &не перакладзеныя запісы" msgid "&Untranslated Entries First" msgstr "Спачатку &не перакладзеныя запісы" msgid "&Show references" msgstr "&Паказваць спасылкі" msgid "&Show References" msgstr "&Паказваць спасылкі" msgid "Show sidebar" msgstr "Паказаць бакавую панэль" msgid "Show status bar" msgstr "Паказаць радок стану" msgid "C&atalog" msgstr "К&аталог" msgid "&Update from sources" msgstr "&Абнавіць з зыходнага кода" msgid "&Update from Sources" msgstr "&Абнавіць з зыходнага кода" msgid "Update from &POT file…" msgstr "Абнавіць з файла &POT…" msgid "Update from &POT File…" msgstr "Абнавіць з файла &POT…" msgid "Sync with Crowdin" msgstr "Сінхранізаваць з Crowdin" msgid "Pre-&translate…" msgstr "Чарнавы &пераклад…" msgid "&Purge deleted translations" msgstr "&Знішчыць вылучаныя пераклады" msgid "&Purge Deleted Translations" msgstr "&Знішчыць вылучаныя пераклады" msgid "&Validate translations" msgstr "&Праверыць пераклад" msgid "&Validate Translations" msgstr "&Праверыць пераклад" msgid "&Properties…" msgstr "&Уласцівасці…" msgid "&Done and next" msgstr "&Скончыць і перайсці да наступнага" msgid "&Done and Next" msgstr "&Скончыць і перайсці да наступнага" msgid "&Previous translation" msgstr "&Папярэдні пераклад" msgid "&Previous Translation" msgstr "&Папярэдні пераклад" msgid "&Next translation" msgstr "&Наступны пераклад" msgid "&Next Translation" msgstr "&Наступны пераклад" msgid "P&revious unfinished" msgstr "Па&пярэдні незавершаны" msgid "P&revious Unfinished" msgstr "Па&пярэдні незавершаны" msgid "Ne&xt unfinished" msgstr "На&ступны незавершаны" msgid "Ne&xt Unfinished" msgstr "На&ступны незавершаны" msgid "Previous plural form" msgstr "Папярэдняя форма множнага ліку" msgid "Previous Plural Form" msgstr "Папярэдняя форма множнага ліку" msgid "Next plural form" msgstr "Наступная форма множнага ліку" msgid "Next Plural Form" msgstr "Наступная форма множнага ліку" msgid "&Online help" msgstr "&Сеціўная даведка" msgid "&Online Help" msgstr "&Сеціўная даведка" msgid "&GNU gettext manual" msgstr "&Дакументацыя GNU gettext" msgid "&GNU gettext Manual" msgstr "&Дакументацыя GNU gettext" msgid "&About Poedit" msgstr "&Пра Poedit" msgid "&About" msgstr "&Пра праграму" msgid "Extractor setup" msgstr "Налады экстрактара" msgid "List of extensions separated by semicolons (e.g. *.cpp;*.h):" msgstr "Спіс пышырэнняў, падзеленых кропкай з коскай (напрыклад *.cpp;*.h):" msgid "Invocation:" msgstr "Выклік:" msgid "Command to extract translations:" msgstr "Каманда для вымання перакладу:" msgid "" "This is the command used to launch the extractor.\n" "%o expands to the name of output file, %K to list\n" "of keywords, %F to list of input files,\n" "%C to charset flag (see below)." msgstr "" "Дадзеная каманда выкарыстоўваецца, каб запусціць экстрактар.\n" "%o абазначае назву выходнага файла, %K - спіс\n" "ключавых слоў, %F - спіс уваходных файлаў,\n" "%C - кадаванне (гл. ніжэй)." msgid "An item in keywords list:" msgstr "Элемент у спісе ключавых слоў:" msgid "" "This will be attached to the command line once\n" "for each keyword. %k expands to the keyword." msgstr "" "Гэта будзе дададзена ў камандны радок для кожнага\n" "ключавога слова. %k азначае ключавое слова." msgid "An item in input files list:" msgstr "Элемент у спісе ўваходных файлаў:" #, c-format msgid "" "This will be attached to the command line once\n" "for each input file. %f expands to the filename." msgstr "" "Гэта будзе дадзена ў камандны радок для\n" "кожнага ўваходнага файла. %f азначае назву файла." msgid "Source code charset:" msgstr "Кадаванне зыходнага кода:" #, c-format msgid "" "This will be attached to the command line\n" "only if source code charset was given. %c expands to charset value." msgstr "" "Гэта будзе дададзена ў камандны радок, толькі калі было азначана\n" "кадаванне зыходнага файла. %c азначае кадаванне." msgid "Catalog properties" msgstr "Уласцівасці каталога" msgid "Project name and version:" msgstr "Назва і версія праекта:" msgid "Language team:" msgstr "Каманда перакладчыкаў:" msgid "Plural forms:" msgstr "Формы множнага ліку:" msgid "Use default rules for this language" msgstr "Выкарыстоўваць правілы па змаўчанні для гэтай мовы" msgid "Use custom expression" msgstr "Выкарыстоўваць выраз карыстальніка" msgid "Learn about plural forms" msgstr "Даведацца больш пра формы множнага ліку" msgid "Charset:" msgstr "Кадаванне:" msgid "Advanced Extraction Settings…" msgstr "Дадатковыя налады вымання…" msgid "Advanced extraction settings…" msgstr "Дадатковыя налады вымання…" msgid "Translation Properties" msgstr "Уласцівасці перакладу" msgid "Translation properties" msgstr "Уласцівасці перакладу" msgid "Sources Paths" msgstr "Шлях да зыходнага файла" msgid "Sources paths" msgstr "Шлях да зыходнага файла" msgid "Extract text from source files in the following directories:" msgstr "Вымаць тэкст з зыходных файлаў у наступных каталогах:" msgid "Base path:" msgstr "Базавы шлях:" msgid "Sources Keywords" msgstr "Ключавыя словы зыходных файлаў" msgid "Sources keywords" msgstr "Ключавыя словы зыходных файлаў" msgid "" "Use these keywords (function names) to recognize translatable strings\n" "in source files:" msgstr "" "Выкарыстоўвайце гэтыя ключавыя словы (імёны функцый) для распазнання\n" "радкоў, якія перакладаюцца ў зыходных файлах:" msgid "Also use default keywords for supported languages" msgstr "" "Таксама выкарыстоўваць ключавыя словы па змаўчанні для моў, якія " "падтрымліваюцца" msgid "Learn About Gettext Keywords" msgstr "Даведацца больш пра ключавыя словы Gettext" msgid "Learn about gettext keywords" msgstr "Даведацца больш пра ключавыя словы gettext" msgid "Update summary" msgstr "Абнавіць зводку" msgid "" "These strings were found in the sources but were not in the catalog.\n" "Poedit will add them to the catalog now." msgstr "" "Гэтыя радкі знойдзены у зыходных файлах, але яны адсутнічаюць у каталозе.\n" "Poedit зараз дадасць іх у каталог." msgid "New strings" msgstr "Новыя радкі" msgid "" "These strings are no longer in the sources.\n" "Poedit will remove them from the catalog now." msgstr "" "Больш няма гэтых радкоў у зыходных файлах.\n" "Poedit зараз выдаліць іх з каталога." msgid "Obsolete strings" msgstr "Састарэлыя радкі" msgid "(0 new, 0 obsolete)" msgstr "(0 новых, 0 састарэлых)" msgid "Open" msgstr "Адкрыць" msgid "Save catalog" msgstr "Захаваць каталог" msgid "Validate" msgstr "Праверыць" msgid "Check for errors in the translation" msgstr "Праверыць наяўнасць памылак у перакладзе" msgid "Update" msgstr "Абнавіць" msgid "Update catalog - synchronize it with sources" msgstr "Абнавіць каталог - сінхранізаваць яго з зыходнымі файламі" msgid "Sidebar" msgstr "Бакавая панэль" msgid "Show or hide the sidebar" msgstr "Паказаць ці схаваць бакавую панэль" #. TRANSLATORS: "Previous" as in used in the past, now replaced with newer. msgid "Previous source text:" msgstr "Папярэдні зыходны тэкст:" msgid "" "The old source text (before it changed during an update) that the now-" "inaccurate translation corresponds to." msgstr "" "Стары зыходны тэкст (да таго, як быў адноўлены), якому адпавядае недакладны " "пераклад." msgid "Notes for translators:" msgstr "Заўвагі для перакладчыка:" msgid "Add comment" msgstr "Дадаць каментар" msgid "Add Comment" msgstr "Дадаць каментар" msgid "Translation suggestions:" msgstr "Варыянты перакладу:" #. TRANSLATORS: This is shown when no translation suggestions can be found in the TM (Windows). msgid "No matches found" msgstr "Супадзенняў не знойдзена" #. TRANSLATORS: This is shown when no translation suggestions can be found in the TM (macOS, Linux). msgid "No Matches Found" msgstr "Супадзенняў не знойдзена" msgid "This string was found in Poedit’s translation memory." msgstr "Гэты радок быў знойдзены ў памяці перакладаў Poedit." msgid "Cannot create temporary directory." msgstr "Не атрымалася стварыць часовы каталог." msgid "Welcome to Poedit" msgstr "Сардэчна запрашаем у Poedit" #. TRANSLATORS: This is version information in about dialog, "%s" will be #. version number when used #, c-format msgid "Version %s" msgstr "Версія %s" msgid "Edit a Translation" msgstr "Змяніць пераклад" msgid "Edit a translation" msgstr "Змяніць пераклад" msgid "Open an existing PO file and edit the translation." msgstr "Адкрыць існуючы файл PO і змяніць пераклад." msgid "" "Take an existing PO file or POT template and create a new translation from " "it." msgstr "Стварэнне перакладу на падставе існуючага файла PO ці шаблона POT." msgid "Collaborate on a Translation with Others" msgstr "Сумесны пераклад з іншымі людзьмі" msgid "Collaborate on a translation with others" msgstr "Сумесны пераклад з іншымі" msgid "" "Download a file from Crowdin project, translate and sync your changes back." msgstr "" "Спампаваць файл з праекта Crowdin, перакласці яго і сінхранізаваць змены " "назад." msgid "What is Crowdin?" msgstr "Што такое Crowdin?" msgid "There are no translations. That’s unusual." msgstr "Вельмі дзіўна, але пераклад адсутнічае." msgid "" "Translatable entries aren’t added manually in the Gettext system, but are " "automatically extracted\n" "from source code. This way, they stay up to date and accurate.\n" "Translators typically use PO template files (POTs) prepared for them by the " "developer." msgstr "" "Запісы, якія перакладаюцца не дадаюцца ўручную ў сістэму Gettext, а " "аўтаматычна вымаюцца\n" "з зыходнага кода. Такім чынам, забяспечваецца іх актуальнасць і " "дакладнасць.\n" "Перакладчыкі звычайна працуюць з файламі PO (шаблоны POT), якія падрыхтаваў " "для іх распрацоўшчык." msgid "(Learn more about GNU gettext)" msgstr "(Даведацца больш пра GNU gettext)" msgid "The simplest way to fill this catalog is to update it from a POT:" msgstr "Самы просты спосаб перакласці гэты каталог - абнавіць яго з POT:" msgid "Update from POT" msgstr "Абнавіць з POT" msgid "Take translatable strings from an existing POT template." msgstr "Выманне радкоў для перакладу з існуючага шаблона POT." msgid "" "You can also extract translatable strings directly from the source code:" msgstr "" "Вы таксама можаце выняць радкі для перакладу непасрэдна з зыходнага кода:" msgid "Extract from sources" msgstr "Выняць з зыходнага кода" msgid "Configure source code extraction in Properties." msgstr "Наладзьце выманне зыходнага кода ў раздзеле \"Уласцівасці\"." msgid "Sync" msgstr "Сінхранізацыя" msgid "Synchronize the translation with Crowdin" msgstr "Сінхранізаваць пераклад з Crowdin" #. TRANSLATORS: This is titlebar of about dialog, "%s" is application name #. ("Poedit" here, but please use "%s") #, c-format msgid "About %s" msgstr "Пра %s" #. TRANSLATORS: Title of the preferences window on Windows and Linux. "%s" is replaced with "Poedit" when running. #, c-format msgid "%s Preferences" msgstr "Налады %s" #. TRANSLATORS: macOS item in app menu msgid "Services" msgstr "Сэрвісы" #. TRANSLATORS: macOS item in app menu, %s is replaced with "Poedit" #, c-format msgid "Hide %s" msgstr "Схаваць %s" #. TRANSLATORS: macOS item in app menu msgid "Hide Others" msgstr "Схаваць іншыя" #. TRANSLATORS: macOS item in app menu msgid "Show All" msgstr "Паказаць усе" #. TRANSLATORS: macOS item in app menu, %s is replaced with "Poedit" #, c-format msgid "Quit %s" msgstr "Выйсці з %s" #. TRANSLATORS: macOS item in app menu msgid "Preferences…" msgstr "Налады…" msgid "Preferences..." msgstr "Налады..." #. TRANSLATORS: Title of a category in Windows task menu (right-click icon in taskbar) msgid "Recent" msgstr "Нядаўнія" #. TRANSLATORS: Title of a category in Windows task menu (right-click icon in taskbar) msgid "Frequent" msgstr "Частыя" msgid "&Apply" msgstr "&Ужыць" msgid "Apply" msgstr "Ужыць" msgid "&Back" msgstr "&Назад" msgid "Back" msgstr "Назад" msgid "&Cancel" msgstr "&Адмена" msgid "&Clear" msgstr "&Ачысціць" msgid "Clear" msgstr "Ачысціць" msgid "Copy" msgstr "Капіяваць" msgid "Cu&t" msgstr "Выра&заць" msgid "Cut" msgstr "Выразаць" msgid "&Delete" msgstr "&Выдаліць" msgid "&Quit" msgstr "&Выйсці" msgid "File" msgstr "Файл" msgid "Help" msgstr "Даведка" msgid "&New" msgstr "&Стварыць" msgid "&No" msgstr "&Не" msgid "No" msgstr "Не" msgid "&OK" msgstr "&Ok" msgid "Open…" msgstr "Адкрыць…" msgid "&Open..." msgstr "&Адкрыць..." msgid "Open..." msgstr "Адкрыць..." msgid "&Paste" msgstr "&Уставіць" msgid "Paste" msgstr "Уставіць" msgid "Preferences" msgstr "Налады" msgid "&Redo" msgstr "&Аднавіць" msgid "Refresh" msgstr "Абнавіць" msgid "&Save as" msgstr "&Захаваць як" msgid "Save as" msgstr "Захаваць як" msgid "Select &All" msgstr "Выбраць у&сё" msgid "Select All" msgstr "Выбраць усё" msgid "&Undo" msgstr "&Вярнуць" msgid "&Yes" msgstr "&Так" msgid "Yes" msgstr "Так" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Shift+" msgstr "Shift+" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Enter" msgstr "Enter" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Up" msgstr "Уверх" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Down" msgstr "Уніз" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Left" msgstr "Улева" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Right" msgstr "Управа" #. TRANSLATORS: Keyboard shortcut, must correspond to translation of "Ctrl+" msgid "ctrl" msgstr "ctrl" #. TRANSLATORS: Keyboard shortcut, must correspond to translation of "Alt+" msgid "alt" msgstr "alt" #. TRANSLATORS: Keyboard shortcut, must correspond to translation of "Shift+" msgid "shift" msgstr "shift" poedit-2.0.6/locales/tr.mo0000664000372000037200000014124213230132042012322 00000000000000P%1 1 11<11J 2gW2 22 22 222 3333%3+333B3Q3W3]3f3z333333333333 3 44 4)4 04=4M4c4y44444444445 5(5D5Y5n55555555 6 '6:36:n6 666 6 666 6 7 #707?7O7c7~77777 71898'>8f88 8878689)=9g9 l9]w99A9I*:t:{:; ;;";:; U;`;.h;;;;;;;;<*<F<#[<<<<<<<<(<(=7= R=s=|== ==/= = >>#>9>L>b>2>>>>> ?)???????@@@ 2@?@R@Ee@"@?@ AA*.A YAfAyAK~A"A5A#B)BHAH HHI 'IHI PI ]IiI"nI;I(IIJ&J 5J ?JMJjJ ~JJJJJ JJK:K PK<^K.KKKKLL*%LPLVLgL xL LLJMNMgM MMMMM#MM'M$N7DN$|N%NNNNNNOOOO O2O P#P9PNP]PlPtP|PPPPPPPPQQQnQERZR>aR RRRR@RS-T"E"hC0D^p"ǂ6>Pfx)~/؃ !6IXEvń̈́ބ )@jυޅԆ؆  # DEeMˇ"05fo SEFMjsщ ! ,8AG3Wu7A!($Glu}/6'%Mdu) 2׍$ /5-T\ߎ ,@V g u  ŏϏ ԏ !*=Tk#% Ij !ő" ' 5 AOT2eǒ-(=TlF֓E5-cu)"Ӕ  ,EXkc h ϖ"3"D)g.7#,Id jx|$e9י 7Qdw~ ƚӚ !؛oߛIO[ M=7z ƞҞG2M ()@Wm Šޠ  &< S.a <KPWj}Ǣע /# AK `l #ȣ )%Om9Ť Ԥ ߤ   +18Uf}ȥ1N +8 LZvV';Ng w © +8F K<֪*>O1ì  BXZ{X/'qM"%pO=F$7k%ɱId&4ɲDC9ٳLZ`HQRj;XAw,jRQZ (5Fbw˺{ԺPUg"o ƻ%ڻ56Utȼdؼ'=e)4ý/s(ľ ۾("2A\{FHDP9vOWfj2o! + -NTc*wD}],6 9BW6tC3H>C'# )h?*Kq#-0^aG2zFYblx&2LADZ.EwPi=Ab[kv @4uh~ uL@|pnf.nTN? QI2:qOKcajd F!p ]U>T+rXi=J%Vxz51^s4 NH/F"8/XJ`om #UwQk :Gs$ 8jL!~I1,(<D-9B>|;$H(E?g<y!dYgIo \ <eN+rM5&cM5 :"K-A+EmZ7C"603B $%RfRVeyOG*S@ M,4}_{O%W91J)S[`' 7)v &;*{(l_.03=\7P8/t';P (modified) (unsaved)%d entry%d entries%d entry was pre-translated.%d entries were pre-translated.%d error%d errors%d issue with the translation found.%d issues with the translation found.%i line of file “%s” was not loaded correctly.%i lines of file “%s” were not loaded correctly.%s Format%s Preferences%s format&About&About Poedit&Apply&Back&Bookmarks&Cancel&Clear&Close&Copy&Delete&Done and Next&Done and next&Edit&File&Find…&GNU gettext Manual&GNU gettext manual&Go&Group By Context&Group by context&Help&New&New…&Next >&Next Translation&Next translation&No&OK&Online Help&Online help&Open...&Open…&Paste&Preferences&Preferences…&Previous Translation&Previous translation&Properties…&Purge Deleted Translations&Purge deleted translations&Quit&Redo&Replace&Save&Save as&Show References&Show references&Undo&Untranslated Entries First&Untranslated entries first&Update from Sources&Update from sources&Validate Translations&Validate translations&View&Yes(0 new, 0 obsolete)(Learn more about GNU gettext)(New: %i, obsolete: %i)(Use default language)(requires Windows 8 or newer)< &PreviousDrag and Drop Folders Here or use the + buttonDrag and drop folders here or use the + buttonAbout %sAccountsAdd CommentAdd Files…Add Folders…Add Wildcard…Add commentAdd directory to the listAdd files…Add folders…Add wildcard…Additional keywordsAdditional xgettext flags:AdvancedAdvanced Extraction Settings…Advanced extraction settingsAdvanced extraction settings…All Translation FilesAll commentsAlso use default keywords for supported languagesAlt+Always change focus to text input fieldAn item in input files list:An item in keywords list:AppearanceApplyAre you sure you want to delete the “%s” extractor?Are you sure you want to reset the translation memory?Automatically check for updatesAutomatically compile MO file when savingBackBase path:Beta versions contain the latest new features and improvements, but may be a bit less stable.Bring All to FrontBroken catalog file: plural form msgstr used without msgid_pluralBroken catalog file: singular form msgstr used together with msgid_pluralBrowseBy default, inaccurate results are filled in as well and marked as needing work. Check this option to only include accurate matches.C&atalogC&learCancelCannot create temporary directory.Cannot execute program: %sCapitalizeCatalogCatalog modified. Do you want to save changes?Catalog propertiesCatalogs &ManagerCatalogs &managerCatalogs ManagerChange UI languageCharset:Check Document NowCheck Grammar With SpellingCheck Spelling While TypingCheck for Updates…Check for errors in the translationCheck for updates…Check spellingClearClear TranslationClear the commentClear translationCloseCollaborate on a Translation with OthersCollaborate on a translation with othersCollecting source files…Command to extract translations:Comment:Comments prefixed with:Compile to MO…Compile to…Compiled Translation FilesConfigure source code extraction in Properties.ConfirmationCopyCopy From SingularCopy from Source TextCopy from singularCopy from source textCorrect Spelling AutomaticallyCouldn’t load file %s, it is probably corrupted.Couldn’t save file %s.Create New TranslationCreate new translationCreate new translations projectCrowdin errorCrowdin is an online localization management platform and collaborative translation tool. Poedit can seamlessly sync PO files managed at Crowdin.Ctrl+Cu&tCustom Extractors:Custom extractors:CutDatabase size on disk:DeleteDelete extractorDelete the projectDirectories:Display Entry &IDsDisplay entry &IDsDo you really want to do mass update of all catalogs in this project?Do you want to delete the project?Do you want to remove all translations that are no longer used?Don’t SaveDon’t Show AgainDon’t mark exact matches as needing workDon’t saveDon’t show againDownDownload a file from Crowdin project, translate and sync your changes back.Downloading latest translations…Downloading translations is disabled in this project.E&xitE&xport as HTML…EditEdit &CommentEdit &commentEdit CommentEdit a TranslationEdit a translationEdit commentEdit projectEdit the projectEditingEdit…Email:EnterEnter Full ScreenEntries in the catalog are probably incorrect.Entries in this catalog have different plural forms count from what catalog’s Plural-Forms header saysEntries with Errors FirstEntries with errors firstEntries with errors were marked in red in the list. Details of the error will be shown when you select such an entry.Error loading message catalog file “%s”.Error opening fileError opening file %s!Error saving catalogErrorsEverythingExcluded pathsExport as…Extract from sourcesExtract notes for translators from:Extract text from source files in the following directories:Extracting translatable strings…Extractor setupExtractorsFailed command: %sFailed to communicate with Poedit process.Failed to load extracted catalog.Failed to merge gettext catalogs.Failed to update translation memory: %sFileFile “%s” doesn’t exist.File “%s” is not a message catalog.File “%s” is read-only and cannot be saved. Please save it under different name.File:Finalizing…FindFind NextFind PreviousFind and Replace…Find in commentsFind in source textsFind in translationsFind nextFind previousFix LanguageFix languageFix the HeaderFix the headerForm %iFrequentGNU gettextGeneralGo to Bookmark %iGo to bookmark %iHTML FilesHelpHide %sHide OthersHide SidebarHide Status BarHide this notification messageIDIf you continue with purging, all translations marked as deleted will be permanently removed. You will have to translate them again if they are added back in the future.Ignore caseImporting translations…Include beta versionsInformation about the translatorInstallInvalid fileInvocation:KeepLanguage Code or Name (e.g. en_GB)Language of the translation is the same as source language.Language of the translation isn’t set.Language of the translation:Language selectionLanguage team:Language:Last modifiedLearn About Gettext KeywordsLearn From Files…Learn MoreLearn More About CrowdinLearn about gettext keywordsLearn about plural formsLearn from files…Learn moreLearn more about CrowdinLeftLine %d of file “%s” is corrupted (not valid %s data).Line endings:List of extensions separated by semicolons (e.g. *.cpp;*.h):MO files can’t be directly edited in Poedit.Make Lower CaseMake Upper CaseMalformed header: “%s”Merging differences…MinimizeName of the project the translation is forName:Ne&xt UnfinishedNe&xt unfinishedNeeds WorkNeeds workNever let the list of strings take focus. If enabled, you must use Ctrl-arrows for keyboard navigation but you can also type text immediately, without having to press Tab to change focus.NewNew From &POT/PO File…New from &POT/PO file…New stringsNext Plural FormNext plural formNoNo Matches FoundNo entries could be pre-translated.No matches foundNo problems with the translation found.No references for the selected item.No translation projects listed in your Crowdin account.Not all plural forms are translated.Not authorized, please sign in again.Notes for translators:OKObsolete stringsOneOnly enable if you trust the quality of your TM. By default, all matches from the TM are marked as needing work and should be reviewed before use.Only fill in exact matchesOpenOpen Crowdin translationOpen From Crowdin…Open RecentOpen an existing PO file and edit the translation.Open catalogOpen catalog templateOpen from Crowdin…Open in EditorOpen in editorOpen...Open…OptionsOtherP&revious UnfinishedP&revious unfinishedPO TranslationPO Translation FilesPOT Translation TemplatesPOT files are only templates and don’t contain any translations themselves. To make a translation, create a new PO file based on the template.PastePaste and Match StylePathsPlease open and edit the corresponding PO file instead. When you save it, the MO file will be updated as well.Please save the file first. This section cannot be edited until then.PluralPlural forms expression used by the catalog is unusual for %s.Plural forms:Plural:PoeditPoedit - Catalogs managerPoedit automatically fixed invalid content in the file “%s”.Poedit can attempt to fill in new entries from only previous translations in the file or from your entire translation memory. Using the TM won’t be very effective if it’s near-empty, but it will get better as you add more translations to it.Poedit is an easy to use translations editor.Pre-&translate…Pre-translatePre-translatedPre-translated %u stringPre-translated %u stringsPre-translating…Pre-translation automatically finds exact or fuzzy matches for untranslated strings in the translation memory and fills in their translations.PreferencesPreferences...Preferences…Preserve formatting of existing filesPrevious Plural FormPrevious plural formPrevious source text:Project name and version:Project name:Project:PurgePurge deleted translationsQuitQuit %sRecentRedoReferences:RefreshRemaining: %dReplaceReplace &AllReplace &allReplacement stringReplace…Required header Plural-Forms is missing.ResetReset translation memoryResetting the translation memory will irrevocably delete all stored translations from it. You can’t undo this operation.ReviewRightSaveSave &As…Save &as…Save asSave as…Save catalogSave changesSelect &AllSelect AllSelect directorySelect translation files to importSelect your preferred languageServicesSet Bookmark %iSet LanguageSet bookmark %iSet languageShift+Show AllShow SidebarShow Spelling and GrammarShow Status BarShow SubstitutionsShow or hide the sidebarShow sidebarShow status barShow summary after catalog updateSidebarSign InSign OutSign inSign in to CrowdinSign outSigned in as:SingularSingular:Smart Copy/PasteSmart DashesSmart LinksSmart QuotesSort by &File OrderSort by &SourceSort by &TranslationSort by &file orderSort by &sourceSort by &translationSource code charset:Source code extractors are used to find translatable strings in the source code files and extract them so that they can be translated.Source code not available.Source fileSource file occurrence:Source textSource text — %sSource text:Sources KeywordsSources PathsSources keywordsSources pathsSpeechSpellchecking is disabled, because the dictionary for %s isn’t installed.Spelling and GrammarStart SpeakingStop SpeakingStored translations:String to findSubstitutionsSuggestionsSuggestions are not available if the translation language is not set correctly. Other features, such as plural forms, may be affected as well.Supports all programming languages recognized by GNU gettext tools (PHP, C/C++, C#, Perl, Python, Java, JavaScript and others).SyncSync with CrowdinSynchronize the translation with CrowdinSyncingSyncing errorSyncing with %s failed.Syncing with %s…Syncing with Crowdin failed.Syntax error in Plural-Forms header ("%s").TMTake an existing PO file or POT template and create a new translation from it.Take translatable strings from an existing POT template.Team name and email address or URLText ReplacementThe TM doesn’t contain any strings similar to the content of this file. It is only effective for semi-automatic translations after Poedit learns enough from files that you translated manually.The catalog couldn’t be saved in “%s” charset as specified in catalog settings. It was saved in UTF-8 instead and the setting was modified accordingly.The file cannot be compiled into the MO format and used.The file cannot be opened.The file contained duplicate items, which is not allowed in PO files and would prevent the file from being used. Poedit fixed the issue, but you should review translations of any items marked as needing work and correct them if necessary.The file may be either corrupted or in a format not recognized by Poedit.The file was compiled into the MO format, but it will probably not work correctly.The file was saved safely and compiled into the MO format, but it will probably not work correctly.The file was saved safely, but it cannot be compiled into the MO format and used.The file was saved safely.The old source text (before it changed during an update) that the now-inaccurate translation corresponds to.The simplest way to fill this catalog is to update it from a POT:The translation doesn’t start with a space.The translation ends with a newline, but the source text doesn’t.The translation ends with a space, but the source text doesn’t.The translation ends with “%s”, but the source text ends with “%s”.The translation is missing a newline at the end.The translation is missing a space at the end.The translation is ready for use, but %d entry is not translated yet.The translation is ready for use, but %d entries are not translated yet.The translation is ready for use.The translation should end with “%s”.The translation should not end with “%s”.The translation should start as a sentence.The translation should start with a lowercase character.The translation starts with a space, but the source text doesn’t.The translations were marked as needing work, because they may be inaccurate. You should review them for correctness.There are no translations. That’s unusual.There was a problem formatting the file nicely (but it was saved all right).There were errors when loading the catalog. Some data may be missing or corrupted as the result.These settings affect internal formatting of PO files. Adjust them if you have specific requirements e.g. because of version control.These strings are no longer in the sources. Poedit will remove them from the catalog now.These strings were found in the sources but were not in the catalog. Poedit will add them to the catalog now.This catalog has entries with plural forms, but doesn’t have Plural-Forms header configured.This file can only be edited in Crowdin’s web interface.This is the command used to launch the extractor. %o expands to the name of output file, %K to list of keywords, %F to list of input files, %C to charset flag (see below).This project has no files that can be translated in Poedit.This string was found in Poedit’s translation memory.This will be attached to the command line only if source code charset was given. %c expands to charset value.This will be attached to the command line once for each input file. %f expands to the filename.This will be attached to the command line once for each keyword. %k expands to the keyword.TotalTransformationsTranslatable entries aren’t added manually in the Gettext system, but are automatically extracted from source code. This way, they stay up to date and accurate. Translators typically use PO template files (POTs) prepared for them by the developer.Translated: %d of %d (%d %%)Translation LanguageTranslation MemoryTranslation Needs &WorkTranslation PropertiesTranslation needs &workTranslation propertiesTranslation suggestions:Translation — %sTranslation:Translations couldn’t be updated from the source code, because no code was found in the location specified in the catalog’s Properties.TwoUTF-8 (recommended)UndoUnhandled exception occurred: %sUnix (recommended)UntransUpUpdateUpdate allUpdate all catalogs in the projectUpdate catalog - synchronize it with sourcesUpdate from &POT File…Update from &POT file…Update from POTUpdate summaryUpdatesUpdating catalogUpdating failedUpdating the catalog failed. Click on 'Details >>' for details.Updating user information…Uploading translations…Use custom expressionUse custom list font:Use custom text fields font:Use default rules for this languageUse these keywords (function names) to recognize translatable strings in source files:Use translation memoryValidateValidation resultsVersion %sWaiting for authentication…Welcome to PoeditWhat is Crowdin?When updating from sourcesWhole words onlyWindowWindowsWrap aroundWrap at:YesYou can also extract translatable strings directly from the source code:You can’t drop more than one file on Poedit window.You must restart Poedit for this change to take effect.Your NameYour changes will be lost if you don’t save them.Your name and email address are only used to set the Last-Translator header of GNU gettext files.ZeroZoomaltctrldon’t delete temporary files (for debugging)e.g. nplurals=2; plural=(n > 1);fuzzy match within the filego to item at given line numberhandle a poedit:// URIpre-translate from TMshiftunknown languageyour_email@example.com“%s” is not a valid POT file.Project-Id-Version: poedit Report-Msgid-Bugs-To: help@poedit.net POT-Creation-Date: 2017-12-05 15:52+0100 PO-Revision-Date: 2017-12-05 09:50-0500 Last-Translator: vslavik Language-Team: Turkish Language: tr_TR MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=(n != 1); X-Generator: crowdin.com X-Crowdin-Project: poedit X-Crowdin-Language: tr X-Crowdin-File: /locales/poedit.pot (değiştirildi) (kaydedilmedi)%d dizge%d dizge%d dizgenin ön çevirisi yapıldı.%d dizgenin ön çevirisi yapıldı.%d sorun%d sorunÇeviride %d sorun bulundu.Çeviride %d sorun bulundu.%i satır “%s” dosyasından doğru olarak yüklenmedi.%i satır “%s” dosyasından doğru olarak yüklenmedi.%s Biçimi%s Ayarları%s biçimiH&akkındaPoedit H&akkında&Uygula&GeriYe&r İmleriİ&ptal&Temizle&Kapat&Kopyala&Sil&Tamamla ve Sonrakine Geç&Tamamla ve sonrakine geçDüz&en&Dosya&Bul…&GNU gettext Kılavuzu&GNU gettext kılavuzu&GitBağlama Göre &GruplaBağlama göre &grupla&Yardım&Yeni&Yeni…So&nraki >&Sonraki Çeviri&Sonraki çeviri&Hayır&TamamÇe&vrimiçi YardımÇe&vrimiçi yardım&Aç...&Aç…Ya&pıştırAya&rlarAya&rlar…Ö&nceki ÇeviriÖ&nceki çeviriÖ&zellikler…Silin&miş Çevirileri TemizleSilin&miş çevirileri temizleÇı&k&Yinele&DeğiştirKay&det&Farklı kaydetReferansları Gö&rüntüleReferansları gö&rüntüle&Geri AlÇ&evrilmemiş Dizgeler En ÜstteÇ&evrilmemiş dizgeler en üstteKaynaklardan Gü&ncelleKaynaklardan gü&ncelleÇevirileri &DoğrulaÇevirileri &doğrula&Görünüm&Evet(0 yeni, 0 eski)(GNU gettext hakkında bildi edinin)(Yeni: %i, eski: %i)(Varsayılan dil kullanılsın)(Windows 8 ya da üzeri gerekir)< Ön&cekiKlasörleri Buraya Sürükleyin ve Bırakın ya da + düğmesini kullanınKlasörleri buraya sürükleyin ve bırakın ya da + düğmesini kullanın%s HakkındaHesaplarYorum EkleDosyaları Ekle…Klasörleri Ekle…Joker Karakter Ekle…Yorum ekleKlasörü listeye ekleDosyaları ekle…Klasörleri ekle…Joker karakter ekle…Ek anahtar sözcüklerEk xgettext işaretleri:GelişmişGelişmiş Çıkartma Ayarları…Gelişmiş ayıklama ayarlarıGelişmiş ayıklama ayarları…Tüm Çeviri DosyalarıTüm yorumlarDesteklenen diller için varsayılan anahtar sözcükler de kullanılsınAlt+İmleç hep çeviri alanına odaklansınGirdi dosyaları listesindeki bir öge:Anahtar sözcükler listesindeki bir öge:GörünümUygula"%s" ayıklayıcısını silmek istediğinize emin misiniz?Çeviri belleğini sıfırlamak istediğinize emin misiniz?Güncellemeler otomatik olarak denetlensinKaydederken .mo dosyası da derlensinGeriTemel yol:Beta sürümlerinde en son özellikler ve geliştirmeler bulunur, ancak daha az kararlı olabilirler.Tümünü Öne GetirBozuk katalog dosyası: çoğul biçim msgstr, msgid_plural olmadan kullanılmışBozuk katalog dosyası: tekil biçim msgstr, msgid_plural ile birlikte kullanılmışGözatVarsayılan olarak, doğru olmayan sonuçlar da doldurulur ve belirsiz olarak işaretlenir. Yalnız doğru eşleşmelerin katılması için bu seçeneği işaretleyin.&Katalog&TemizleİptalGeçici klasör oluşturulamıyor.Program çalıştırılamıyor: %sBaş Harfleri Büyük YapKatalogKatalog değiştirildi. Değişiklikleri kaydetmek istiyor musunuz?Katalog özellikleri&Katalog Yöneticisi&Katalog yöneticisiKatalog YöneticisiArayüz Dilini DeğiştirKarakter kümesi:Belgeyi Şimdi DenetleYazım ile Dilbilgisi Denetimi YapYazarken Yazım Denetimi YapGüncellemeleri Denetle…Çeviri sorunlarını denetleGüncellemeleri denetle…Yazım denetimi yapılsınTemizleÇeviriyi TemizleAçıklamayı temizleÇeviriyi temizleKapatBir Çeviride Diğerlerine Katkıda BulunÇeviriye başkalarıyla beraber katkıda bulunKaynak dosyalar toplanıyor…Çevirileri ayıklama komutu:Açıklama:Yorumların ön eki:MO olarak Derle…Şuna derle…Derlenmiş Çeviri DosyalarıÖzellikler bölümünden kaynak kod ayıklamasını yapılandırın.OnaylamaKopyalaTekilden KopyalaKaynak Metinden KopyalaTekilden kopyalaKaynak metinden kopyalaYazımı Otomatik Olarak Düzelt%s dosyası yüklenemedi, bozuk olabilir.%s dosyası kaydedilemedi.Yeni Çeviri OluşturYeni çeviri oluşturYeni çeviri projesi oluşturCrowdin sorunuCrowdin bir çevrimiçi yerelleştirme platformu ve işbirliğine dayalı bir çeviri aracıdır. Poedit, dosyaları sorunsuz olarak Crowdin üzerindeki PO dosyaları ile eşitleyebilir.Ctrl+&KesÖzel Ayıklayıcılar:Özel ayıklayıcılar:KesDiskteki veritabanı boyutu:SilAyıklayıcıyı silProjeyi silKlasör:&Kayıt Kodlarını Görüntüle&Kayıt kodlarını görüntüleProjedeki tüm katalogları güncellemeyi gerçekten istiyor musunuz?Projeyi silmek istiyor musunuz?Artık kullanılmayan tüm çevirileri kaldırmak istediğinize emin misiniz?KaydetmeBir Daha GöstermeTam eşleşmeler belirsiz olarak işaretlenmesinKaydetmeBir daha göstermeAşağı OkCrowdin projesinden bir dosya indirin, çevirin ve değişikliklerinizi eşitleyin.Son çeviriler indiriliyor…Bu proje için çevirilerin indirilmesi devre dışı bırakılmış.Çı&kHTML olarak &Dışa Aktar…DüzenleAçıklamayı Dü&zenleAçıklamayı dü&zenleAçıklamayı DüzenleBir Çeviriyi DüzenleBir çeviriyi düzenleAçıklamayı düzenleProjeyi düzenleProjeyi düzenleDüzenlemeDüzenle…E-posta:EnterTam Ekrana GeçKatalogdaki dizgeler büyük olasılıkla yanlış.Bu katalogdaki dizgelerde, kataloğun Çoğul-Biçim başlığında belirtilen sayıdan farklı çoğul biçimler varSorunlu Dizgeler En ÜstteSorunlu dizgeler en üstteSorunlu dizgeler listede kırmızı renk ile işaretlendi. Sorunlu bir dizgeyi seçerek sorunun ayrıntılarını görebilirsiniz.İleti katalog dosyası “%s” yüklenirken bir sorun çıktı.Dosya açılırken sorun çıktı%s dosyası açılırken sorun çıktı!Katalog kaydedilirken sorun çıktıSorunlarHerşeyHariç tutulan yollarDışa farklı aktar…Kaynaklardan aktarÇevirmenler için ayıklama notlarının yeri:Kaynak dosyalardaki metinleri şu klasörlere ayıkla:Çevrilebilir dizgeler ayıklanıyor…Ayıklayıcı kurulumuAyıklayıcılarBaşarısız komut: %sPoedit işlemi ile iletişim kurulamadı.Ayıklanan katalog yüklenemedi.Gettext kataloglarını birleştirme başarısız.Çeviri belleği güncellenemedi: %sDosya“%s” dosyası bulunamadı.“%s” dosyası bir ileti kataloğu değil.“%s” dosyası salt okunur olduğundan kaydedilemez. Lütfen farklı bir ad ile kaydedin.Dosya:Tamamlanıyor…BulSonrakini BulÖncekini BulBul ve Değiştir…Açıklamalarda bulKaynak metinlerde bulÇevirilerde bulSonrakini bulÖncekini bulDili DüzeltDili düzeltBaşlığı DüzeltBaşlığı düzeltBiçim %iSıkGNU gettextGenel%i Yer İmine Git%i yer imine gitHTML DosyalarıYardım%s GizleDiğerlerini GizleKenar Çubuğunu GizleDurum Çubuğunu GizleBu uyarı iletisini gizleKodDevam ederseniz, silinmek üzere işaretlenmiş tüm çeviriler yok edilecek. Gelecekte bunlar yeniden eklenirse, yeniden çevirmek zorunda kalacaksınız.Büyük küçük harf yoksayılsınÇeviriler içe aktarılıyor…beta sürümleri de alınsınÇevirmen hakkında bilgiKurDosya geçersizÇağrı:KoruDil Kodu ya da Adı (örn. tr_TR)Çeviri dili kaynak dil ile aynı.Çeviri dili ayarlı değil.Çeviri dili:Dil seçimiDil takımı:Dil:Son değişiklikGettext Anahtar Sözcükleri Hakkında Bilgi AlınDosyalardan Öğren…Daha Fazla Bilgi EdininCrowdin Hakkında Bilgi EdininGettext anahtar sözcüklerinden öğrenilsinÇoğul biçimler hakkında bilgi edininDosyalardan öğren…Daha fazla bilgi edininCrowdin hakkında bilgi edininSolSatır %d, “%s” dosyasında bozulmuş (%s verisi geçerli değil).Satır sonları:Noktalı virgülle ayrılmış uzantılar listesi (Örnek *.cpp;*.h):MO dosyaları doğrudan Poedit içinde düzenlenemez.Küçük Harf YapBüyük Harf YapHatalı oluşturulmuş başlık: “%s”Farklılıklar birleştiriliyor…Simge Durumuna KüçültÇevirisi yapılan projenin adıAdı:S&onraki TamamlanmamışS&onraki tamamlanmamışÇalışma GerekliÇalışma gerekliBu seçenek etkinleştirildiğinde, imleç asla dizge listesine odaklanmaz. Böylece odağı değiştirmek için sekme (Tab) tuşuna basmadan çeviriyi hemen yazabilirsiniz. Gezinmek için Ctrl-Aşağı/Yukarı ok tuşlarını kullanmalısınız. Yeni&POT/PO Dosyasından Oluştur…&POT/PO dosyasından oluştur…Yeni dizgelerSonraki Çoğul BiçimSonraki çoğul biçimHayırHerhangi Bir Eşleşme BulunamadıHerhangi bir kayıt için ön çeviri yapılamadı.Herhangi bir eşleşme bulunamadıÇeviri ile ilgili hiç sorun bulunmadı.Seçilmiş öge için herhangi bir kaynak yok.Crowdin hesabınızda herhangi bir çeviri projesi yok.Tüm çoğul biçimler çevrilmedi.İzniniz yok, lütfen yeniden oturum açın.Çevirmenler için notlar:TamamEski dizgelerBirBu seçeneği yalnız Çeviri Belleğinizin kalitesine güveniyorsanız etkinleştirin. Varsayılan olarak, Çeviri Belleğinden alınan tüm eşleşmeler belirsiz olarak işaretlenir ve kullanılmadan önce gözden geçirilmelidir.Yalnız tam eşleşmeler doldurulsunAçCrowdin çevirisi açCrowdin üzerinden aç…Son Kullanılanları AçVarolan bir PO dosyasını açarak çeviriyi düzenleyin.Kataloğu açKatalog kalıbını açCrowdin üzerinden aç…Düzenleyicide AçDüzenleyicide açAç...Aç…AyarlarDiğerÖ&nceki TamamlanmamışÖ&nceki tamamlanmamışPO ÇevirisiPO Çeviri DosyalarıPOT Çeviri KalıplarıPOT dosyaları özgün dili içeren boş kalıplardır ve çeviri içermezler. Bir çeviri oluşturmak için bu kalıbı temel alan bir PO dosyası oluşturulmalıdır.YapıştırBiçemi Yapıştır ve EşleştirYollarLütfen bunun yerine ilgili PO dosyasını açın ve düzenleyin. Kaydettiğinizde MO dosyası da güncellenir.Lütfen önce dosyayı kaydedin. O zamana kadar bu bölüm düzenlenemez.Çoğul%s kataloğu tarafından kullanılan çoğul biçim ifadesi alışılmış şekilde değil.Çoğul biçimler:Çoğul:PoeditPoedit - Katalog yöneticisiPoedit, “%s” dosyasındaki geçersiz içeriği otomatik olarak düzeltti.Poedit yeni kayıtları yalnız dosyadaki önceki çevirilerden ya da tüm çeviri belleğinden doldurmayı deneyebilir. Çeviri Belleği fazla dolu değil ise etkin kullanılamayabilir. Ancak çeviri sayısı arttıkça etkinliği artar.Poedit kolay kullanılan bir çeviri düzenleyicisidir.Ön Ç&eviri Yap…Ön ÇeviriÖn çeviri yapılmış%u dizgenin ön çevirisi yapıldı%u dizgenin ön çevirisi yapıldıÖn çeviri yapılıyor…Ön çeviri, çevrilmemiş dizgeleri için Çeviri Belleğindeki tam ya da belirsiz olan eşleşmeleri otomatik olarak bularak çevirileri doldurur.AyarlarAyarlar...Ayarlar…Var olan dosyaların biçimleri korunsunÖnceki Çoğul BiçimÖnceki çoğul biçimÖnceki kaynak metin:Proje adı ve sürümü:Proje adı:Proje:TemizleSilinmiş çevirileri temizleÇık%s Uygulamasından ÇıkSonYineleKaynaklar:YenileKalan: %dDeğiştir&Tümünü Değiştir&Tümünü değiştirDeğiştirilecek dizgeDeğiştir…Gereken Çoğul-Biçin başlık bilgisi eksik.SıfırlaÇeviri belleğini sıfırlaÇeviri belleğini sıfırlama tüm saklanan çevirileri geri dönülmez bir şekilde bundan silecek. Bu işlemi geri alamazsınız.Gözden geçirSağKaydet&Farklı Kaydet…&Farklı kaydet…Farklı kaydetFarklı kaydet…Kataloğu kaydetDeğişiklikleri kaydet&Tümünü SeçTümünü SeçDizin seçinİçe aktarılacak çeviri dosyalarını seçinTercih ettiğiniz dili seçinHizmetler%i Yer İmini AyarlaDili ayarla%i yer imini ayarlaDili ayarlaShift+Tümünü GörüntüleKenar Çubuğunu GörüntüleYazım ve Dilbilgisini GörüntüleDurum Çubuğunu GörüntüleDeğişimleri GörüntüleKenar çubuğunu görüntüle ya da gizleKenar çubuğunu görüntüleDurum çubuğunu görüntüleKatalog güncellendikten sonra sonuçlar görüntülensinKenar çubuğuOturum AçOturumu KapatOturum açCrowdin Oturumu AçınOturumu kapatOturum açan:TekilTekil:Akıllı Kopyala/YapıştırAkıllı TirelerAkıllı BağlantılarAkıllı Tırnaklar&Dosya Düzenine göre Sırala&Kaynağa göre SıralaÇeviriye &göre Sırala&Dosya düzenine göre sırala&Kaynağa göre sıralaÇeviriye &göre sıralaKaynak kod karakter kümesi:Kaynak kodu çıkartıcıları kaynak kodu dosyalarında çevrilebilir dizgeleri bulmak ve onları çıkarmak için kullanılır böylece çevrilebilirler.Kaynak kodu bulunamıyor.Kaynak dosyasıKaynak dosya oluşumu:Kaynak metinKaynak metin — %sKaynak metin:Kaynak Anahtar SözcükleriKaynak YollarıKaynak anahtar sözcükleriKaynak yollarıKonuşma%s için sözlük kurulmamış olduğundan yazım denetimi devre dışı bırakıldı.Yazım ve DilbilgisiKonuşmayı BaşlatKonuşmayı DurdurKaydedilmiş çeviriler:Bulunacak dizgeDeğişimlerÖnerilerÇeviri dili doğru olarak ayarlanmazsa, öneriler kullanılabilir olmaz. Çoğul biçimler gibi, diğer özellikler de etkilenebilir.GNU gettext araçları (PHP, C/C++, C#, Perl, Python, Java, JavaScript ve diğerleri) tarafından tanınan tüm programlama dillerini destekler.EşitleCrowdin ile eşitleÇeviriyi Crowdin ile eşitleEşitleniyorEşitleme sorunu%s ile eşitlenemedi.%s ile eşitleniyor…Crowdin ile eşitlenemedi.Çoğul-Biçim başlığında sözdizimi hatası ("%s").ÇBelleğiVarolan bir PO dosyası ya da POT kalıbından yeni bir çeviri oluşturun.Çevrilebilir dizgeleri var olan bir POT kalıbından alın.Takım adı ve e-posta adresi ya da adresiMetin DeğişimiÇeviri Belleğinde bu dosyanın içeriğine uygun bir dizge bulunmuyor. Yarı otomatik çeviriler, ancak el ile yaptığınız çeviriler Poedit tarafından yeterince öğrenildikten sonra etkili olabilir.Katalog, katalog ayarlarında belirtildiği gibi “%s” karakter kümesine kaydedilemedi. Bunun yerine UTF-8 olarak kaydedildi ve ayar buna göre değiştirildi.Dosya, MO biçiminde derlenemez ve kullanılamaz.Dosya açılamadı.Dosyada, PO dosyalarında izin verilmeyen ve dosyanın kullanılmasını engelleyen birbirinin kopyası olan ögeler var. Poedit sorunu düzeltti, ancak çalışma gerekli olarak işaretlenen her bir ögenin çevirisini gözden geçirmeli ve gerekirse düzeltmelisiniz.Dosya ya bozulmuş ya da biçimi Poedit tarafından tanınamıyor.Dosya, MO biçiminde derlendi, ancak büyük olasılıkla doğru olarak çalışmayacak.Dosya güvenli bir şekilde kaydedildi ve MO biçiminde derlendi, ancak büyük olasılıkla doğru olarak çalışmayacak.Dosya güvenli bir şekilde kaydedildi, ancak MO biçiminde derlenemez ve kullanılamaz.Dosya güvenli bir şekilde kaydedildi.Belirsiz çevirinin karşılık geldiği eski kaynak metin (bir güncelleme sırasında değiştirilmeden önce).Bu kataloğu doldurmanın en kolay yolu bir POT dosyasından güncellemektir:Çeviri bir boşluk ile başlamıyor.Çeviri yeni bir satır başlangıcı ile bitiyor, ancak kaynak metin bitmiyor.Çeviri bir boşluk ile bitiyor, ancak kaynak metin bitmiyor.Çeviri “%s” ile bitiyor, ancak kaynak metin “%s” ile bitiyor.Çevirinin sonunda yeni bir satır başlangıcı eksik.Çevirinin sonunda bir boşluk eksik.Çeviri kullanıma hazır, ancak henüz %d dizge çevrilmemiş.Çeviri kullanıma hazır, ancak henüz %d dizge çevrilmemiş.Çeviri kullanıma hazır.Çeviri “%s” ile bitmeli.Çeviri “%s” ile bitmemeli.Çeviri bir cümle olarak başlamalı.Çeviri bir küçük harf karakteri ile başlamalı.Çeviri bir boşluk ile başlıyor, ancak kaynak metin başlamıyor.Çeviriler yetersiz olduğundan üzerinde çalışılması gerekiyor şeklinde işaretlenmiş. Bu çevirilerin doğruluğunu gözden geçirmelisiniz.Herhangi bir çeviri bulunamadı. Bu durum normal değil.Dosyayı güzelce biçimlendirmede bir sorun oldu (ama sorunsuz kaydedildi).Katalog yüklenirken sorunlar çıktı. Sonuçta bazı veriler eksik ya da bozuk olabilir.Bu ayarlar PO dosyalarının iç biçimlendirmesini etkiler. Örneğin sürüm denetimi nedeniyle özel gereksinimleriniz varsa, bunları ayarlayın.Bu dizgeler artık kaynakta yok. Poedit bunları katalogdan çıkaracak.Kaynakta bulunan bu dizgeler katalogda yoktu. Poedit bunları kataloğa ekleyecek.Bu katalogda çoğul biçimleri olan dizgeler var, ancak Çoğul-Biçimli başlık yapılandırılmamış.Bu dosya yalnız Crowdin web arayüzünden düzenlenebilir.Ayıklayıcı çalıştırmak için kullanılan komut. %o belirtilen adlı dosyaya ayıklar, %K anahtar kelimelerin listesine, %F giriş dosyalarının listesine, %C karakter kümesi işaretine dönüşür (aşağıya bakın).Bu projenin Poedit ile çevrilebilecek herhangi bir dosyası yok.Bu dizge Poedit Çeviri Belleğinde bulundu.Kaynak kodu karakter kümesi verildiyse, bu komut satırına eklenir. %c karakter kümesi değerini yazar.Her girdi dosyası için bir kez komut satırına eklenir. %f dosya adını yazar.Her anahtar sözcük için bir kez komut satırına eklenir. %k anahtar sözcüğü yazar.ToplamDönüşümlerÇevrilebilir dizgeler Gettext sistemine el ile eklenmez ancak kaynak kodundan otomatik olarak ayıklanır. Böylece güncel ve doğru kalırlar. Çevirmenler genellikle geliştirici tarafından hazırlanan PO kalıp dosyalarını (POT) kullanır.Çevrilen: %d / %d (%d %%)Çeviri DiliÇeviri BelleğiÇalışma &Gereken ÇeviriÇeviri ÖzellikleriÇalışma &gereken çeviriÇeviri özellikleriÇeviri önerileri:Çeviri — %sÇeviri:Katalog özelliklerinde belirtilen konumda herhangi bir kod bulunamadığından çeviriler kaynak kodundan güncellenemedi.İkiUTF-8 (önerilir)Geri alBeklenmeyen bir sorun çıktı: %sUnix (önerilir)ÇevrilmemişYukarı OkGüncelleTümünü GüncelleProjedeki tüm katalogları güncelleKataloğu güncelleyin - kaynak dosyalarla eşitleyin&POT Dosyasından Güncelle…&POT dosyasından güncelle…POT dosyasından güncelleGüncelleme özetiGüncellemelerKatalog güncelleniyorGüncellenemediKatalog güncellenemedi. Ayrıntıları görüntülemek için 'Ayrıntılar >>' üzerine tıklayın.Kullanıcı bilgileri güncelleniyor…Çeviriler yükleniyor…Özel ifade kullanılsınListede özel yazı türü kullanılsın:Metin alanlarında özel yazı türü kullanılsın:Bu dil için varsayılan kurallar kullanılsınKaynak dosyalardaki çevrilebilir dizgeleri tanımak için, şu anahtar sözcükler (işlev adları) kullanılsın:Çeviri belleği kullanılsınDoğrulaDoğrulama sonuçlarıSürüm %sKimlik doğrulaması için bekleniyor…Poedit Uygulamasına Hoş GeldinizCrowdin nedir?Kaynaklardan güncellerkenKelimelere aynen uyanları bulPencereWindowsSona gelince baştan devam etKaydırma konumu:EvetÇevrilebilir dizgeleri doğrudan kaynak kodundan ayıklayabilirsiniz:Poedit penceresine birden fazla dosyayı sürükleyip bırakamazsınız.Değişiklikler Poedit yeniden başlatıldıktan sonra etkin olacak.AdınızKaydetmezseniz yaptığınız değişiklikler kaybolacak.Adınız ve e-postanız sadece GNU gettext dosyalarının Last-Translator üst bilgisini ayarlamak için kullanılır.SıfırYakınlaştıraltctrlgeçici dosyalar silinmesin (hata ayıklama için)örn. nplurals=2; plural=(n > 1);dosya içinde belirsiz eşleşmebelirtilen satır numarasındaki ögeye gitBir poedit:// URI'si kullançeviri belleğinden ön çevirishiftbilinmeyen dilepostaniz@ornek.com“%s” geçerli bir POT dosyası değil.poedit-2.0.6/locales/sl.po0000664000372000037200000015062413230131554012331 00000000000000msgid "" msgstr "" "Project-Id-Version: poedit\n" "Report-Msgid-Bugs-To: help@poedit.net\n" "POT-Creation-Date: 2017-12-05 15:52+0100\n" "PO-Revision-Date: 2017-07-27 03:15-0400\n" "Last-Translator: vslavik \n" "Language-Team: Slovenian\n" "Language: sl_SI\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=4; plural=(n%100==1 ? 1 : n%100==2 ? 2 : n%100==3 || n" "%100==4 ? 3 : 0);\n" "X-Generator: crowdin.com\n" "X-Crowdin-Project: poedit\n" "X-Crowdin-Language: sl\n" "X-Crowdin-File: /locales/poedit.pot\n" msgid "Hide this notification message" msgstr "Skrij obvestilno sporočilo" msgid "Don’t Show Again" msgstr "Ne prikaži več" msgid "Don’t show again" msgstr "Ne prikaži več" #, c-format msgid "(New: %i, obsolete: %i)" msgstr "(Novo: %i, zastarelo: %i)" msgid "Updating catalog" msgstr "Posodabljanje kataloga" msgid "Collecting source files…" msgstr "Zbiranje izvornih datotek ..." msgid "Extracting translatable strings…" msgstr "Izluščenje prevedljivih nizov ..." msgid "Failed to load extracted catalog." msgstr "Prišlo je do napake med nalaganjem kataloga prevodov." msgid "Merging differences…" msgstr "Združevanje razlik ..." #, c-format msgid "“%s” is not a valid POT file." msgstr "»%s« ni veljavna datoteka POT." #, c-format msgid "%i line of file “%s” was not loaded correctly." msgid_plural "%i lines of file “%s” were not loaded correctly." msgstr[0] "%i vrstica datoteke »%s« ni pravilno naložena." msgstr[1] "%i vrstici datoteke »%s« nista pravilno naloženi." msgstr[2] "%i vrstice datoteke »%s« niso pravilno naložene." msgstr[3] "%i vrstic datoteke »%s« ni pravilno naloženih." #, c-format msgid "Line %d of file “%s” is corrupted (not valid %s data)." msgstr "" "Vrstica %d datoteke »%s« je okvarjena (ne vsebuje veljavnih podatkov %s)." #, c-format msgid "Malformed header: “%s”" msgstr "Nepravilno oblikovana glava: »%s«" msgid "" "Broken catalog file: singular form msgstr used together with msgid_plural" msgstr "" "Poškodovana datoteka kataloga: edninska oblika msgstr je uporabljena skupaj " "z msgid_plural" msgid "Broken catalog file: plural form msgstr used without msgid_plural" msgstr "" "Poškodovana datoteka kataloga: množinska oblika msgstr je uporabljena brez " "msgid_plural" msgid "" "There were errors when loading the catalog. Some data may be missing or " "corrupted as the result." msgstr "" "Med nalaganjem kataloga je prišlo do napak. Del podatkov morda manjka ali pa " "so kot rezultat nepravilni." #, c-format msgid "Couldn’t load file %s, it is probably corrupted." msgstr "Datoteke %s ni mogoče naložiti, najverjetneje je okvarjena." #, c-format msgid "" "File “%s” is read-only and cannot be saved.\n" "Please save it under different name." msgstr "" #, c-format msgid "Couldn’t save file %s." msgstr "Datoteke %s ni mogoče shraniti." msgid "" "There was a problem formatting the file nicely (but it was saved all right)." msgstr "" "Prišlo je do napake med zapisovanjem zgradbe kataloga (datoteka je bila " "sicer uspešno shranjena)." #, c-format msgid "" "The catalog couldn’t be saved in “%s” charset as specified in catalog " "settings.\n" "\n" "It was saved in UTF-8 instead and the setting was modified accordingly." msgstr "" msgid "Error saving catalog" msgstr "Napaka pri shranjevanju kataloga" msgid "PO Translation Files" msgstr "Prevodne datoteke PO" msgid "POT Translation Templates" msgstr "Prevodne predloge POT" msgid "All Translation Files" msgstr "Vse prevodne datoteke" msgid "(Use default language)" msgstr "(Uporabi privzeti jezik)" msgid "Select your preferred language" msgstr "Izberite želeni jezik" msgid "Language selection" msgstr "Izbor jezika" msgid "You must restart Poedit for this change to take effect." msgstr "Program Poedit je treba ponovno zagnati, da spremembe začnejo veljati." msgid "Syncing" msgstr "Poteka usklajevanje" #. TRANSLATORS: %s is a cloud destination, e.g. "Crowdin" or ftp.wordpress.com etc. #, c-format msgid "Syncing with %s…" msgstr "Usklajevanje s strežnikom %s ..." #. TRANSLATORS: %s is a cloud destination, e.g. "Crowdin" or ftp.wordpress.com etc. #, c-format msgid "Syncing with %s failed." msgstr "Usklajevanje s strežnikom %s je spodletelo." msgid "Syncing error" msgstr "Napaka usklajevanja" msgid "Downloading translations is disabled in this project." msgstr "Prenos prevodov je onemogočena v tem projektu." msgid "Not authorized, please sign in again." msgstr "Niste pooblaščeni, ponovno se prijavite." msgid "" "Crowdin is an online localization management platform and collaborative " "translation tool. Poedit can seamlessly sync PO files managed at Crowdin." msgstr "" "Crowdin je spletna platforma za jezikovno prilagajanje programske opreme in " "orodje za skupinsko prevajanje. Poedit lahko neopazno usklajuje datoteke PO, " "ki se upravljajo na Crowdin." msgid "Sign In" msgstr "Prijavi" msgid "Sign in" msgstr "Prijavi" msgid "Sign Out" msgstr "Odjavi" msgid "Sign out" msgstr "Odjavi" msgid "Waiting for authentication…" msgstr "Čakanje na preverjanje pristnosti ..." msgid "Updating user information…" msgstr "Posodabljanje podrobnosti o uporabniku ..." msgid "Signed in as:" msgstr "Prijavljeni kot:" msgid "Learn More About Crowdin" msgstr "Več o Crowdin" msgid "Learn more about Crowdin" msgstr "Več o Crowdin" msgid "Sign in to Crowdin" msgstr "Prijavi v Crowdin" msgid "Open Crowdin translation" msgstr "Odpri prevod Crowdin" msgid "Project:" msgstr "Projekt:" msgid "Language:" msgstr "Jezik:" msgid "File:" msgstr "Datoteka:" msgid "No translation projects listed in your Crowdin account." msgstr "Nobenega projekta prevoda ni v računu Crowdin." msgid "This project has no files that can be translated in Poedit." msgstr "" "Ta projekt ne vsebuje datotek, ki jih je mogoče prevesti s programom Poedit." msgid "This file can only be edited in Crowdin’s web interface." msgstr "" "To datoteko je mogoče urejati le v spletnem vmesniku prevajalskega orodja " "Crowdin." msgid "Downloading latest translations…" msgstr "Prenašanje najnovejših prevodov ..." msgid "Syncing with Crowdin failed." msgstr "Usklajevanje s Crowdin ni uspelo." msgid "Crowdin error" msgstr "Napaka Crowdin" msgid "Uploading translations…" msgstr "Nalaganje prevodov ..." msgid "&Copy" msgstr "&Kopiraj" msgid "Learn more" msgstr "Več podrobnosti" msgid "Learn More" msgstr "Več podrobnosti" msgid "&Help" msgstr "Pomo&č" msgid "MO files can’t be directly edited in Poedit." msgstr "Datotek MO ni mogoče neposredno urejati s programom Poedit." msgid "Error opening file" msgstr "Napaka pri odpiranju datoteke" msgid "" "Please open and edit the corresponding PO file instead. When you save it, " "the MO file will be updated as well." msgstr "" "Poskusite odpreti in urediti ustrezno datoteko PO. Ko jo shranite, bo " "posodobljena tudi kodno prevedena datoteka MO." msgid "don’t delete temporary files (for debugging)" msgstr "ne izbriši začasnih datotek (za razhroščevanje)" msgid "handle a poedit:// URI" msgstr "upravljaj z naslovom URI poedit://" msgid "go to item at given line number" msgstr "" msgid "Failed to communicate with Poedit process." msgstr "Povezovanje s programom Poedit je spodletelo." #, c-format msgid "Unhandled exception occurred: %s" msgstr "Neobravnavana izjema: %s" msgid "Open catalog" msgstr "Odpre katalog" #, c-format msgid "File “%s” doesn’t exist." msgstr "Datoteka »%s« ne obstaja." msgid "Poedit is an easy to use translations editor." msgstr "Poedit je enostaven in priročen urejevalnik prevodov." msgid "Catalogs Manager" msgstr "Upravljalnik katalogov" msgid "Check for Updates…" msgstr "Preveri obstoj posodobitev ..." msgid "&Edit" msgstr "&Uredi" msgid "Undo" msgstr "Razveljavi" msgid "Redo" msgstr "Ponovi" msgid "Paste and Match Style" msgstr "Prilepi in uskladi slog" msgid "Delete" msgstr "Izbriši" msgid "Spelling and Grammar" msgstr "Črkovanje in slovnica" msgid "Show Spelling and Grammar" msgstr "Pokaži črkovanje in slovnico" msgid "Check Document Now" msgstr "Preveri dokument zdaj" msgid "Check Spelling While Typing" msgstr "Preverjanje črkovanja med tipkanjem" msgid "Check Grammar With Spelling" msgstr "Ob preverjanju črkovanja preveri tudi slovnico" msgid "Correct Spelling Automatically" msgstr "Samodejno popravljaj napake v črkovanju" msgid "Substitutions" msgstr "Zamenjave" msgid "Show Substitutions" msgstr "Pokaži zamenjave" msgid "Smart Copy/Paste" msgstr "Pametno kopiranje/lepljenje" msgid "Smart Quotes" msgstr "Pametni narekovaji" msgid "Smart Dashes" msgstr "Pametni pomišljaji" msgid "Smart Links" msgstr "Pametne povezave" msgid "Text Replacement" msgstr "Nadomestno besedilo" msgid "Transformations" msgstr "Pretvorbe" msgid "Make Upper Case" msgstr "Izpiši z velikimi črkami" msgid "Make Lower Case" msgstr "Izpiši z malimi črkami" msgid "Capitalize" msgstr "Z velikimi začetnicami" msgid "Speech" msgstr "Govor" msgid "Start Speaking" msgstr "Začni govoriti" msgid "Stop Speaking" msgstr "Nehaj govoriti" msgid "&View" msgstr "&Pogled" msgid "Enter Full Screen" msgstr "Vstopi v celozaslonski način" msgid "Window" msgstr "Okno" msgid "Minimize" msgstr "Pomanjšaj" msgid "Zoom" msgstr "Povečava" msgid "Bring All to Front" msgstr "Postavi vse v ospredje" #. TRANSLATORS:File kind displayed in Finder/Explorer msgid "PO Translation" msgstr "Prevod PO" msgid "The file cannot be opened." msgstr "Datoteke ni mogoče odpreti." msgid "Invalid file" msgstr "Neveljavna datoteka" msgid "" "The file may be either corrupted or in a format not recognized by Poedit." msgstr "Datoteka je lahko poškodovana ali v neznanem zapisu za Poedit." msgid "You can’t drop more than one file on Poedit window." msgstr "Ni mogoče povleči več kot ene datoteke v okno Poedit." #, c-format msgid "File “%s” is not a message catalog." msgstr "Datoteka »%s« ni katalog sporočil." msgid "Poedit" msgstr "Poedit" msgid "&File" msgstr "&Datoteka" msgid "&Go" msgstr "&Pojdi" #. TRANSLATORS: %s is language name in its basic form (as you #. would see e.g. in a list of supported languages). You may need #. to rephrase it, e.g. to an equivalent of "for language %s". #, c-format msgid "" "Spellchecking is disabled, because the dictionary for %s isn’t installed." msgstr "Preverjanje črkovanja je onemogočeno, ker ni nameščen slovar za %s." msgid "Install" msgstr "Namesti" msgid "Catalog modified. Do you want to save changes?" msgstr "Katalog je spremenjen. Ali želite spremembe shraniti?" msgid "Save changes" msgstr "Shrani spremembe" msgid "Your changes will be lost if you don’t save them." msgstr "Če opravljenih sprememb ne shranite, bodo trajno izgubljene." msgid "Save" msgstr "Shrani" msgid "Don’t save" msgstr "Ne shrani" msgid "Don’t Save" msgstr "Ne shrani" msgid "Save as…" msgstr "Shrani kot …" msgid "Compile to…" msgstr "Prevedi v ..." msgid "Compiled Translation Files" msgstr "Prevedene prevodne datoteke" msgid "Export as…" msgstr "Izvozi kot ..." msgid "HTML Files" msgstr "Datoteke HTML" msgid "Open catalog template" msgstr "Odpri predlogo kataloga" msgid "Source code not available." msgstr "Izvorna koda ni na voljo." msgid "Updating failed" msgstr "Posodobitev ni uspela" msgid "" "Translations couldn’t be updated from the source code, because no code was " "found in the location specified in the catalog’s Properties." msgstr "" "Prevoda ni mogoče posodobiti prek povezave z izvorno kodo, ker te na " "navedenem mestu ni mogoče najti." msgid "Entries in the catalog are probably incorrect." msgstr "Vnosi v katalogu so najbrž napačni." msgid "Updating the catalog failed. Click on 'Details >>' for details." msgstr "" "Posodobitev kataloga ni uspela. Za več podrobnosti kliknite na »Več >>«." #, c-format msgid "%d issue with the translation found." msgid_plural "%d issues with the translation found." msgstr[0] "Najdena je %d napaka v prevodu." msgstr[1] "Najdeni sta %d napaki v prevodu." msgstr[2] "Najdene so %d napake v prevodu." msgstr[3] "Najdenih je %d napak v prevodu." msgid "Validation results" msgstr "Rezultati določanja ustreznosti prevoda" msgid "" "Entries with errors were marked in red in the list. Details of the error " "will be shown when you select such an entry." msgstr "" "Vnosi na seznamu z napakami so označeni z rdečo barvo. Podrobnosti napake so " "prikazane ob izboru." msgid "The file was saved safely." msgstr "Datoteka je bila shranjena varno." msgid "" "The file was saved safely and compiled into the MO format, but it will " "probably not work correctly." msgstr "" "Datoteka je shranjena in kodno pretvorjena v zapis MO, vendar najverjetneje " "ne bo pravilno delovala." msgid "" "The file was saved safely, but it cannot be compiled into the MO format and " "used." msgstr "" "Besedilna datoteka prevoda je uspešno shranjena, ni pa je mogoče pretvoriti " "v zapis MO za uporabo." msgid "" "The file was compiled into the MO format, but it will probably not work " "correctly." msgstr "" "Datoteka je kodno pretvorjena v zapis MO, vendar najverjetneje ne bo " "pravilno delovala." msgid "The file cannot be compiled into the MO format and used." msgstr "Datoteke ni mogoče kodno prevesti v zapis MO in uporabiti v programu." msgid "No problems with the translation found." msgstr "Ni zaznanih tehničnih napak v prevodu." #, c-format msgid "The translation is ready for use, but %d entry is not translated yet." msgid_plural "" "The translation is ready for use, but %d entries are not translated yet." msgstr[0] "Prevod je pripravljen za uporabo, vendar pa %d niz še ni preveden." msgstr[1] "" "Prevod je pripravljen za uporabo, vendar pa %d niza še nista prevedena." msgstr[2] "" "Prevod je pripravljen za uporabo, vendar pa %d nizi še niso prevedeni." msgstr[3] "" "Prevod je pripravljen za uporabo, vendar pa %d nizov še ni prevedenih." msgid "The translation is ready for use." msgstr "Prevod je pripravljen za uporabo." #, c-format msgid "Poedit automatically fixed invalid content in the file “%s”." msgstr "Program je samodejno popravil neveljavno vsebino v datoteki »%s«." msgid "" "The file contained duplicate items, which is not allowed in PO files and " "would prevent the file from being used. Poedit fixed the issue, but you " "should review translations of any items marked as needing work and correct " "them if necessary." msgstr "" "V datoteki so bili podvojeni predmeti, kar v zgradbi datoteke PO ni " "dovoljeno in datoteka ne bi mogla biti uporabljena. Napaka je bila " "odpravljena, vseeno pa je priporočeno pregledati prevode in predvsem " "razrešiti tiste, ki so označeni kot potrebni predelave." msgid "Language of the translation isn’t set." msgstr "Jezik prevoda ni nastavljen." msgid "Set Language" msgstr "Določi jezik" msgid "Set language" msgstr "Določi jezik" #. TRANSLATORS: This is shown underneath "Language of the translation isn't set (or ...is the same as source language)." msgid "" "Suggestions are not available if the translation language is not set " "correctly. Other features, such as plural forms, may be affected as well." msgstr "" "Predlogi niso na voljo, če jezik prevoda ni pravilno nastavljen. To lahko " "vpliva tudi na druge funkcije, kot so množinske oblike." msgid "Language of the translation is the same as source language." msgstr "Jezik prevoda je enak izvornemu jeziku." msgid "Fix Language" msgstr "Popravi jezik" msgid "Fix language" msgstr "Popravi jezik" msgid "" "This catalog has entries with plural forms, but doesn’t have Plural-Forms " "header configured." msgstr "" "V katalogu so vnosi z množinskimi oblikami, ki niso pravilno določeni v " "glavi kataloga." msgid "" "Entries in this catalog have different plural forms count from what " "catalog’s Plural-Forms header says" msgstr "" "Vnosi v katalogu uporabljajo druge množinske oblike, kot je to določeno v " "glavi kataloga." msgid "Required header Plural-Forms is missing." msgstr "V glavi manjka zahtevano določilo za množinske oblike." #, c-format msgid "Syntax error in Plural-Forms header (\"%s\")." msgstr "Napaka skladnje v glavi množinskih oblik (\"%s\")." msgid "Fix the Header" msgstr "Popravi glavo" msgid "Fix the header" msgstr "Popravi glavo" #. TRANSLATORS: %s is language name in its basic form (as you #. would see e.g. in a list of supported languages). You may need #. to rephrase it, e.g. to an equivalent of "for language %s". #, c-format msgid "Plural forms expression used by the catalog is unusual for %s." msgstr "" "Izraz množinskih oblik, ki je zaveden v katalogu, ni običajen za jezik %s." #. TRANSLATORS: A verb, shown as action button with ""Plural forms expression used by the catalog is unusual for %s.")" msgid "Review" msgstr "Preglej" #, c-format msgid "Error loading message catalog file “%s”." msgstr "Napaka med nalaganjem datoteke kataloga sporočil »%s«." #, c-format msgid "Translated: %d of %d (%d %%)" msgstr "Prevedeno: %d %d (%d %%)" #, c-format msgid "Remaining: %d" msgstr "Preostalo: %d" #, c-format msgid "%d error" msgid_plural "%d errors" msgstr[0] "%d napaka" msgstr[1] "%d napaki" msgstr[2] "%d napake" msgstr[3] "%d napak" #, c-format msgid "%d entry" msgid_plural "%d entries" msgstr[0] "%d vnos" msgstr[1] "%d vnosa" msgstr[2] "%d vnosi" msgstr[3] "%d vnosov" msgid " (unsaved)" msgstr " (neshranjeno)" msgid " (modified)" msgstr " (spremenjeno)" #, c-format msgid "Failed to update translation memory: %s" msgstr "Posodobitev prevodnega pomnilnika ni uspela: %s" msgid "Purge deleted translations" msgstr "Odstrani izbrisane prevode" msgid "Do you want to remove all translations that are no longer used?" msgstr "Ali res želite odstraniti vse prevode, ki niso več v uporabi?" msgid "" "If you continue with purging, all translations marked as deleted will be " "permanently removed. You will have to translate them again if they are added " "back in the future." msgstr "" "Če prevode počistite, bodo vsi, ki so označeni kot izbrisani, trajno " "izgubljeni. V kolikor se ti nizi v prihodnje znova pojavijo, jih bo treba " "ponovno prevesti." msgid "Keep" msgstr "Ohrani" msgid "Purge" msgstr "Počisti" msgid "Copy from source text" msgstr "Kopiraj iz izvornega besedila" msgid "Copy from Source Text" msgstr "Kopiraj iz izvornega besedila" #. TRANSLATORS: This is the key shortcut used in menus on Windows, some languages call them differently #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Ctrl+" msgstr "Krmilka+" msgid "Clear translation" msgstr "Počisti prevod" msgid "Clear Translation" msgstr "Počisti prevod" msgid "Edit comment" msgstr "Uredi opombo" msgid "Edit Comment" msgstr "Uredi opombo" msgid "References:" msgstr "Sklici:" msgid "&Bookmarks" msgstr "&Zaznamki" #. TRANSLATORS: This is the key shortcut used in menus on Windows, some languages call them differently #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Alt+" msgstr "Izmenjalka+" #, c-format msgid "Set bookmark %i" msgstr "Določi zaznamek %i" #, c-format msgid "Go to bookmark %i" msgstr "Pojdi na zaznamek %i" #, c-format msgid "Set Bookmark %i" msgstr "Določi zaznamek %i" #, c-format msgid "Go to Bookmark %i" msgstr "Pojdi na zaznamek %i" msgid "Hide Sidebar" msgstr "Skrij stransko vrstico" msgid "Show Sidebar" msgstr "Pokaži stransko vrstico" msgid "Hide Status Bar" msgstr "Skrij vrstico stanja" msgid "Show Status Bar" msgstr "Pokaži vrstico stanja" msgid "Source text:" msgstr "Izvorno besedilo:" msgid "Singular:" msgstr "Ednina:" msgid "Plural:" msgstr "Množina:" msgid "Translation:" msgstr "Prevod:" msgid "Pre-translated" msgstr "Vnaprej prevedeno" msgid "Needs Work" msgstr "Potrebno predelave" #. TRANSLATORS: This indicates that the string's translation isn't final #. and has known problems. For example, it might be machine translated or #. fuzzy matched from an older string. The translation should be short and #. convey this. If it's problematic to translate it, "Needs review" is #. acceptable substitute, but note that the meaning is subtly different: #. "needs review" implies that somebody else should review the string after #. I am done with it (i.e. consider it good), while "needs work" implies I #. need to return to it and finish the translation. msgid "Needs work" msgstr "Potrebno predelave" msgid "" "POT files are only templates and don’t contain any translations themselves.\n" "To make a translation, create a new PO file based on the template." msgstr "" "POT datoteke so samo predloge in ne vsebujejo prevodov.\n" "Za prevod ustvarite novo datoteko PO na osnovi predloge." msgid "Create New Translation" msgstr "Ustvari nov prevod" msgid "Create new translation" msgstr "Ustvari nov prevod" msgid "Everything" msgstr "Vse" #, c-format msgid "Form %i" msgstr "Oblika %i" msgid "Singular" msgstr "Ednina" msgid "Zero" msgstr "Nič" msgid "One" msgstr "Eden" msgid "Two" msgstr "Dva" msgid "Plural" msgstr "Množina" msgid "Other" msgstr "Drugo" #, c-format msgid "%s Format" msgstr "Oblika %s" #. TRANSLATORS: %s is replaced with language name, e.g. "PHP" or "C", so "PHP Format" etc." #, c-format msgid "%s format" msgstr "Oblika %s" msgid "Source text" msgstr "Izvorno besedilo" #, c-format msgid "Translation — %s" msgstr "Prevod — %s" msgid "ID" msgstr "ID" #, c-format msgid "Source text — %s" msgstr "Izvorno besedilo – %s" msgid "unknown language" msgstr "neznani jezik" #, c-format msgid "Failed command: %s" msgstr "Prišlo je do napake med izvajanjem ukaza: %s" msgid "Failed to merge gettext catalogs." msgstr "Prišlo je do napake med združevanjem katalogov sporočil gettext." msgid "Source file" msgstr "Izvorna datoteka" msgid "Source file occurrence:" msgstr "Pojavitev izvorne datoteke:" msgid "Open in Editor" msgstr "Odpri v urejevalniku" msgid "Open in editor" msgstr "Odpri v urejevalniku" msgid "No references for the selected item." msgstr "Ni referenc za izbrani element." #, c-format msgid "Error opening file %s!" msgstr "Napaka pri odpiranju datoteke %s!" msgid "Find" msgstr "Najdi" msgid "Replace" msgstr "Zamenjaj" #. TRANSLATORS: Expander in Find window for additional options (case sensitive etc.) msgid "Options" msgstr "Možnosti" msgid "Ignore case" msgstr "Prezri velikost črk" msgid "Wrap around" msgstr "Prelomi besedilo" msgid "Whole words only" msgstr "Le cele besede" msgid "Find in source texts" msgstr "Poišči med izvirniki" msgid "Find in translations" msgstr "Poišči med prevodi" msgid "Find in comments" msgstr "Najdi v opombah" msgid "Close" msgstr "Zapri" msgid "Replace &All" msgstr "Zamenjaj &vse" msgid "Replace &all" msgstr "Zamenjaj &vse" msgid "&Replace" msgstr "&Zamenjaj" msgid "< &Previous" msgstr "< &Predhodni" msgid "&Next >" msgstr "&Naslednji >" msgid "String to find" msgstr "Iskalni niz" msgid "Replacement string" msgstr "Nadomestni niz" #, c-format msgid "Cannot execute program: %s" msgstr "Ni mogoče izvesti programa: %s" msgid "Language Code or Name (e.g. en_GB)" msgstr "Šifra jezika ali ime (npr. sl_SI ali sl)" msgid "Translation Language" msgstr "Jezik prevoda" msgid "Language of the translation:" msgstr "Jezik prevoda:" msgid "Poedit - Catalogs manager" msgstr "Poedit – upravljalnik katalogov" msgid "Catalog" msgstr "Katalog" msgid "Total" msgstr "Skupno" msgid "Untrans" msgstr "Neprevedeno" msgid "Errors" msgstr "Napake" msgid "Last modified" msgstr "Zadnjič spremenjeno" msgid "Select directory" msgstr "Izbor mape" msgid "Directories:" msgstr "Mape:" msgid "" msgstr "" msgid "Do you want to delete the project?" msgstr "Ali želite izbrisati projekt?" msgid "Confirmation" msgstr "Potrditev" msgid "" "Do you really want to do mass update of\n" "all catalogs in this project?" msgstr "" "Ali res želite hkrati osvežiti vse\n" "kataloge projekta?" msgid "Information about the translator" msgstr "Podatki o prevajalcu" msgid "Name:" msgstr "Ime:" msgid "Your Name" msgstr "Ime" msgid "Email:" msgstr "E-naslov:" msgid "your_email@example.com" msgstr "vas_naslov@primer.si" msgid "" "Your name and email address are only used to set the Last-Translator header " "of GNU gettext files." msgstr "Ime in elektronski naslov se zavedeta v datotekah gettext GNU." msgid "Editing" msgstr "Urejanje" msgid "Automatically compile MO file when saving" msgstr "Med shranjevanjem samodejno ustvari datoteko MO" msgid "Show summary after catalog update" msgstr "Po uspešni posodobitvi kataloga pokaži povzetek" msgid "Check spelling" msgstr "Preveri črkovanje prevodov" msgid "Always change focus to text input field" msgstr "Vedno postavi v žarišče polje za vnos besedila" msgid "" "Never let the list of strings take focus. If enabled, you must use Ctrl-" "arrows for keyboard navigation but you can also type text immediately, " "without having to press Tab to change focus." msgstr "" "Ne dovoli postavitve seznama nizov v žarišče. Izbrana možnost omogoča " "uporabo tipk Ctrl+Smerne tipke za premikanje med vrsticami s tipkovnico in " "hkrati omogoča neposredni vnos besedila brez predhodno pritisnjene tipke Tab." msgid "Appearance" msgstr "Videz" msgid "Use custom list font:" msgstr "Uporabi pisavo seznama po meri:" msgid "Use custom text fields font:" msgstr "Uporabi pisavo besedilnih polj po meri:" msgid "Change UI language" msgstr "Spremeni jezik uporabniškega vmesnika" #. TRANSLATORS: This is a note appended to "Check spelling" when running on older Windows versions msgid "(requires Windows 8 or newer)" msgstr "(zahteva Windows 8 ali novejše)" msgid "General" msgstr "Splošno" msgid "Use translation memory" msgstr "Uporabi pomnilnik prevodov" msgid "Learn From Files…" msgstr "Nauči se iz datotek ..." msgid "Learn from files…" msgstr "Nauči se iz datotek ..." #. TRANSLATORS: This is a button that deletes everything in the translation memory (i.e. clears/resets it). msgid "Reset" msgstr "Ponastavi" #. TRANSLATORS: Followed by "match translations within the file" or "pre-translate from TM" msgid "When updating from sources" msgstr "Pri posodabljanju iz virov ..." #. TRANSLATORS: Preceded by "When updating from sources" msgid "fuzzy match within the file" msgstr "najdi približen zadetek iz datoteke" #. TRANSLATORS: Preceded by "When updating from sources" msgid "pre-translate from TM" msgstr "prevedi iz pomnilnika prevodov" msgid "" "Poedit can attempt to fill in new entries from only previous translations in " "the file or from your entire translation memory. Using the TM won’t be very " "effective if it’s near-empty, but it will get better as you add more " "translations to it." msgstr "" "Program lahko poskusi zapolniti na novo dodane nize zgolj iz prevodov, ki so " "že v datoteki ali pa iz celotnega pomnilnika prevodov. Uporaba pomnilnika ni " "učinkovita, če je ta prazen, se pa samodejno posodablja s prevedenimi nizi." msgid "Stored translations:" msgstr "Shranjeni prevodi:" msgid "Database size on disk:" msgstr "Velikost zbirke podatkov na disku:" msgid "Select translation files to import" msgstr "Izberite prevodne datoteke za uvoz" msgid "Translation Memory" msgstr "Pomnilnik prevodov" msgid "Importing translations…" msgstr "Uvažanje prevodov ..." msgid "Finalizing…" msgstr "Zaključevanje ..." msgid "Reset translation memory" msgstr "Ponastavi pomnilnik prevodov" msgid "Are you sure you want to reset the translation memory?" msgstr "Ali ste prepričani, da želite ponastaviti pomnilnik prevodov?" msgid "" "Resetting the translation memory will irrevocably delete all stored " "translations from it. You can’t undo this operation." msgstr "" "Ponastavitev prevodnega pomnilnika bo nepovratni izbrisala vse shranjene " "prevode. Te operacije ne morete povrniti." msgid "Cancel" msgstr "Prekliči" #. TRANSLATORS: This is abbreviation of "Translation Memory" used in Preferences on macOS. #. Long text looks weird there, too short (like TM) too, but less so. "General" is about ideal #. length there. msgid "TM" msgstr "PP" msgid "" "Source code extractors are used to find translatable strings in the source " "code files and extract them so that they can be translated." msgstr "" "Pretvorniki se uporabljajo za izločevanje prevedljivih nizov iz datotek " "izvorne kode. Po pretvarjanju so nizi zbrani v datoteke, ki jih je nato " "mogoče prevesti." msgid "Custom Extractors:" msgstr "Pretvorniki po meri:" msgid "Custom extractors:" msgstr "Pretvorniki po meri:" msgid "Edit…" msgstr "Uredi ..." msgid "GNU gettext" msgstr "gettext GNU" msgid "" "Supports all programming languages recognized by GNU gettext tools (PHP, C/C+" "+, C#, Perl, Python, Java, JavaScript and others)." msgstr "" "Podpira vse programskih jezikov, prepoznanih z orodji gettext GNU (PHP, C/C+" "+, C#, Perl, Python, Java, JavaScript in drugi)." msgid "Delete extractor" msgstr "Izbriši pretvornik" #, c-format msgid "Are you sure you want to delete the “%s” extractor?" msgstr "Ali ste prepričani, da želite izbrisati pretvornik »%s«?" msgid "Extractors" msgstr "Pretvorniki" msgid "Accounts" msgstr "Računi" msgid "Automatically check for updates" msgstr "Samodejno preveri za posodobitve" msgid "Include beta versions" msgstr "Vključi različice beta" msgid "" "Beta versions contain the latest new features and improvements, but may be a " "bit less stable." msgstr "" "Beta različice vsebujejo najnovejše izboljšave, vendar pa je lahko delovanje " "programa nestabilno." msgid "Updates" msgstr "Posodobitve" msgid "" "These settings affect internal formatting of PO files. Adjust them if you " "have specific requirements e.g. because of version control." msgstr "" "Nastavitve vplivajo na notranje oblikovanje datotek PO. Možnosti je " "priporočljivo prilagoditi, kadar so zahtevani posebne prilagoditve; na " "primer pri nadzoru različic." msgid "Line endings:" msgstr "Zaključki vrstic:" msgid "Unix (recommended)" msgstr "Unix (priporočeno)" msgid "Windows" msgstr "MS Windows" #. TRANSLATORS: Followed by text control for entering number; wraps text at given width msgid "Wrap at:" msgstr "Prelomi pri:" msgid "Preserve formatting of existing files" msgstr "Ohrani oblikovanje obstoječih datotek" msgid "Advanced" msgstr "Napredno" msgid "Pre-translating…" msgstr "Prevajanje vnaprej ..." #, c-format msgid "Pre-translated %u string" msgid_plural "Pre-translated %u strings" msgstr[0] "Zapolnjen je %u niz" msgstr[1] "Zapolnjena sta %u niza" msgstr[2] "Zapolnjeni so %u nizi" msgstr[3] "Zapolnjenih je %u nizov" #. TRANSLATORS: This is a somewhat common term describing the action where #. you apply the translation memory and/or machine translation to all of the #. strings you're translating as the first step, followed by correcting, #. improving etc., i.e. actually translating the strings. This may be tricky #. to express in other languages as simply as in English, but please try to #. keep it similarly concise. Please try to avoid, if possible, describing it #. as "auto-translation" and similar, because such terminology would mislead #. some users into thinking it's all that needs to be done (spoken from #. experience). "Pre-translate" nicely expresses that it's only the step done #. *before* actual translation. msgid "Pre-translate" msgstr "Vnaprej prevedi" msgid "Only fill in exact matches" msgstr "Izpolni le natančna ujemanja" msgid "" "By default, inaccurate results are filled in as well and marked as needing " "work. Check this option to only include accurate matches." msgstr "" "Privzeto se tudi nenatančni rezultati vstavijo in se označijo kot potrebni " "predelave. Potrdite to možnost, da bodo vključeni le natančna ujemanja." msgid "Don’t mark exact matches as needing work" msgstr "Natančnih zadetkov ne označi kot potrebnih predelave" msgid "" "Only enable if you trust the quality of your TM. By default, all matches " "from the TM are marked as needing work and should be reviewed before use." msgstr "" "Možnost je priporočljivo izbrati le, če ste prepričani v kakovost pomnilnika " "prevodov. Privzeto so vsi izpolnjeni prevodi (zadetki iz prevodnega " "pomnilnika) označeni kot potrebni predelave in jih je treba preveriti." msgid "" "Pre-translation automatically finds exact or fuzzy matches for untranslated " "strings in the translation memory and fills in their translations." msgstr "" "Vnaprejšnji prevod samodejno najde natančne ali približne zadetke za " "neprevedene nize v prevodnem pomnilniku in izpolni njihove prevode." #, c-format msgid "%d entry was pre-translated." msgid_plural "%d entries were pre-translated." msgstr[0] "%d vnos je bil vnaprej preveden." msgstr[1] "%d vnosa sta bila vnaprej prevedena." msgstr[2] "%d vnosi so bili vnaprej prevedeni." msgstr[3] "%d vnosov je bilo vnaprej prevedenih." msgid "" "The translations were marked as needing work, because they may be " "inaccurate. You should review them for correctness." msgstr "" "Prevodi, izpisani iz pomnilnika, so označeni kot potrebni predelave. " "Priporočljivo jih je natančno pregledati in ustrezno popraviti." msgid "No entries could be pre-translated." msgstr "Nobenega vnosa ni bilo mogoče prevesti vnaprej." msgid "" "The TM doesn’t contain any strings similar to the content of this file. It " "is only effective for semi-automatic translations after Poedit learns enough " "from files that you translated manually." msgstr "" "V pomnilniku prevodov ni nizov, ki so podobni vsebini v tej datoteki. " "Uporaba bo učinkovita šele po daljšem časovnem obdobju dela z orodjem " "Poedit, ko bo v pomnilniku več vsebine." msgid "" "Drag and Drop Folders Here\n" "\n" "or use the + button" msgstr "" "Na to mesto povlecite in spustite mape \n" "\n" "ali pa uporabite gumb +" msgid "" "Drag and drop folders here\n" "\n" "or use the + button" msgstr "" "Na to mesto povlecite in spustite mape \n" "\n" "ali pa uporabite gumb +" msgid "Add Folders…" msgstr "Dodaj mape ..." msgid "Add folders…" msgstr "Dodaj mape ..." msgid "Add Files…" msgstr "Dodaj datoteke ..." msgid "Add files…" msgstr "Dodaj datoteke ..." msgid "Add Wildcard…" msgstr "Dodaj nadomestni znak ..." msgid "Add wildcard…" msgstr "Dodaj nadomestni znak ..." msgid "Paths" msgstr "Poti" msgid "Excluded paths" msgstr "Izključene poti" msgid "Advanced extraction settings" msgstr "Napredne nastavitve izluščenja ..." msgid "Extract notes for translators from:" msgstr "Pretvori opombe prevajalcev iz:" msgid "Comments prefixed with:" msgstr "Pripombe s predpono:" msgid "All comments" msgstr "Vsi komentarji" msgid "Additional xgettext flags:" msgstr "Dodatne zastavice xgettext:" msgid "Additional keywords" msgstr "Dodatne ključne besede" msgid "Name of the project the translation is for" msgstr "Ime projekta, katerega prevod je to" msgid "Team name and email address or URL" msgstr "Ime ekipe ter e-poštni naslov ali URL" msgid "e.g. nplurals=2; plural=(n > 1);" msgstr "" "npr. nplurals=4; plural=(n%100==1 ? 1 : n%100==2 ? 2 : n%100==3 || n\"\n" "\"%100==4 ? 3 : 0);" msgid "UTF-8 (recommended)" msgstr "UTF-8 (priporočeno)" msgid "Please save the file first. This section cannot be edited until then." msgstr "" "Najprej je treba datoteko shraniti. Tega odseka do tedaj ni mogoče urejati." msgid "Not all plural forms are translated." msgstr "Vse množinske oblike še niso prevedene." msgid "The translation should start as a sentence." msgstr "Prevod se mora začeti kot poved." msgid "The translation should start with a lowercase character." msgstr "Prevod se mora začeti z malo črko." msgid "The translation doesn’t start with a space." msgstr "Niz prevoda se ne začne s preslednim znakom." msgid "The translation starts with a space, but the source text doesn’t." msgstr "Niz prevoda se začne s preslednim znakom, ki ga v izvornem nizu ni." msgid "The translation is missing a newline at the end." msgstr "Nizu prevoda manjka na koncu oznaka za novo vrstico." msgid "The translation ends with a newline, but the source text doesn’t." msgstr "" "Niz prevoda se konča z oznako za novo vrstico, ki je v izbornem nizu ni." msgid "The translation is missing a space at the end." msgstr "Nizu prevoda manjka presledek na koncu." msgid "The translation ends with a space, but the source text doesn’t." msgstr "Niz prevoda se konča s preslednim znakom, ki ga v izvornem nizu ni." #, c-format msgid "The translation should end with “%s”." msgstr "Prevod niza se mora končati z znakom »%s«." #, c-format msgid "The translation should not end with “%s”." msgstr "Prevod niza se ne sme končati z znakom »%s«." #, c-format msgid "The translation ends with “%s”, but the source text ends with “%s”." msgstr "Prevod niza se konča z znakom »%s«, izvorni niz pa z »%s«." msgid "Comment:" msgstr "Opomba:" msgid "OK" msgstr "V redu" msgid "C&lear" msgstr "Po&čisti" msgid "Clear the comment" msgstr "Počisti opombe" msgid "New" msgstr "Novo" msgid "Create new translations project" msgstr "Ustvari nov projekt prevajanja" msgid "Edit" msgstr "Uredi" msgid "Edit the project" msgstr "Uredi projekt" msgid "Delete the project" msgstr "Izbriši projekt" msgid "Update all" msgstr "Posodobi vse" msgid "Update all catalogs in the project" msgstr "Posodobi vse kataloge projekta" msgid "Edit project" msgstr "Uredi projekt" msgid "Project name:" msgstr "Ime projekta:" msgid "Browse" msgstr "Prebrskaj" msgid "Add directory to the list" msgstr "Dodaj mapo na seznam" msgid "&New…" msgstr "&Nov ..." msgid "New from &POT/PO file…" msgstr "Novo iz datoteke &POT/PO ..." msgid "New From &POT/PO File…" msgstr "Novo iz datoteke &POT/PO ..." msgid "&Open…" msgstr "&Odpri ..." msgid "Open Recent" msgstr "Odpri nedavne" msgid "Open from Crowdin…" msgstr "Odpri iz Crowdina ..." msgid "Open From Crowdin…" msgstr "Odpri iz Crowdina ..." msgid "&Close" msgstr "&Zapri" msgid "&Save" msgstr "&Shrani" msgid "Save &as…" msgstr "Shrani &kot …" msgid "Save &As…" msgstr "Shrani &kot …" msgid "Compile to MO…" msgstr "Prevedi v MO ..." msgid "E&xport as HTML…" msgstr "&Izvozi kot HTML ..." msgid "Check for updates…" msgstr "Preveri obstoj posodobitev ..." msgid "&Preferences…" msgstr "&Možnosti ..." msgid "Catalogs &manager" msgstr "&Upravljalnik katalogov" msgid "Catalogs &Manager" msgstr "&Upravljalnik katalogov" msgid "E&xit" msgstr "&Končaj" msgid "Quit" msgstr "Končaj" msgid "Copy from singular" msgstr "Kopiraj iz edninske oblike" msgid "Copy From Singular" msgstr "Kopiraj iz edninske oblike" msgid "Translation needs &work" msgstr "Prevo&d potrebuje predelavo" msgid "Translation Needs &Work" msgstr "Prevo&d potrebuje predelavo" msgid "Edit &comment" msgstr "Uredi &opombo" msgid "Edit &Comment" msgstr "Uredi &opombo" msgid "Suggestions" msgstr "Predlogi" msgid "&Find…" msgstr "&Najdi ..." msgid "Replace…" msgstr "Zamenjaj ..." msgid "Find next" msgstr "Poišči naslednjega" msgid "Find previous" msgstr "Poišči predhodnega" msgid "Find and Replace…" msgstr "Najdi in zamenjaj ..." msgid "Find Next" msgstr "Najdi naslednje" msgid "Find Previous" msgstr "Najdi predhodnega" msgid "&Preferences" msgstr "&Možnosti" msgid "Display entry &IDs" msgstr "Pokaži kode ID vnosov" msgid "Display Entry &IDs" msgstr "Pokaži kode ID vnosov" msgid "Sort by &file order" msgstr "Razvrsti po &imenu datotek" msgid "Sort by &File Order" msgstr "Razvrsti po &imenu datotek" msgid "Sort by &source" msgstr "Razvrsti po &viru" msgid "Sort by &Source" msgstr "Razvrsti po &viru" msgid "Sort by &translation" msgstr "Razvrsti po &prevodu" msgid "Sort by &Translation" msgstr "Razvrsti po &prevodu" msgid "&Group by context" msgstr "&Združi po vsebini" msgid "&Group By Context" msgstr "&Združi po vsebini" msgid "Entries with errors first" msgstr "Vnose z napakami postavi na vrh" msgid "Entries with Errors First" msgstr "Vnose z napakami postavi na vrh" msgid "&Untranslated entries first" msgstr "&Najprej razvrsti neprevedene nize" msgid "&Untranslated Entries First" msgstr "&Najprej razvrsti neprevedeno" msgid "&Show references" msgstr "&Pokaži sklice" msgid "&Show References" msgstr "&Pokaži sklice" msgid "Show sidebar" msgstr "Pokaži stransko vrstico" msgid "Show status bar" msgstr "Pokaži vrstico stanja" msgid "C&atalog" msgstr "K&atalog" msgid "&Update from sources" msgstr "&Posodobi iz izvorne kode" msgid "&Update from Sources" msgstr "&Posodobi iz izvorne kode" msgid "Update from &POT file…" msgstr "Posodobi z datoteko &POT ..." msgid "Update from &POT File…" msgstr "Posodobi z datoteko &POT ..." msgid "Sync with Crowdin" msgstr "Uskladi s Crowdin" msgid "Pre-&translate…" msgstr "Vnapre&j prevedi ..." msgid "&Purge deleted translations" msgstr "&Odstrani izbrisane prevode" msgid "&Purge Deleted Translations" msgstr "&Počisti izbrisane prevode" msgid "&Validate translations" msgstr "&Potrdi ustreznost prevoda" msgid "&Validate Translations" msgstr "&Potrdi ustreznost prevoda" msgid "&Properties…" msgstr "&Lastnosti ..." msgid "&Done and next" msgstr "&Končano in naprej" msgid "&Done and Next" msgstr "&Končano in naprej" msgid "&Previous translation" msgstr "&Predhoden prevod" msgid "&Previous Translation" msgstr "&Predhoden prevod" msgid "&Next translation" msgstr "&Naslednji prevod" msgid "&Next Translation" msgstr "&Naslednji prevod" msgid "P&revious unfinished" msgstr "&Predhodni neprevedeni" msgid "P&revious Unfinished" msgstr "&Predhodni neprevedeni" msgid "Ne&xt unfinished" msgstr "&Naslednji neprevedeni" msgid "Ne&xt Unfinished" msgstr "&Naslednji neprevedeni" msgid "Previous plural form" msgstr "Predhodna množinska oblika" msgid "Previous Plural Form" msgstr "Predhodna množinska oblika" msgid "Next plural form" msgstr "Naslednja množinska oblika" msgid "Next Plural Form" msgstr "Naslednja množinska oblika" msgid "&Online help" msgstr "Spletna pomo&č" msgid "&Online Help" msgstr "Spletna pomo&č" msgid "&GNU gettext manual" msgstr "Dokumentacija GNU &gettext" msgid "&GNU gettext Manual" msgstr "Dokumentacija GNU &gettext" msgid "&About Poedit" msgstr "&O programu" msgid "&About" msgstr "&O programu" msgid "Extractor setup" msgstr "Nastavitve pretvornikov" msgid "List of extensions separated by semicolons (e.g. *.cpp;*.h):" msgstr "Seznam pripon, ločenih s podpičjem (e.g. *.cpp;*.h):" msgid "Invocation:" msgstr "Priklic:" msgid "Command to extract translations:" msgstr "Ukaz za pretvarjanje prevodov:" msgid "" "This is the command used to launch the extractor.\n" "%o expands to the name of output file, %K to list\n" "of keywords, %F to list of input files,\n" "%C to charset flag (see below)." msgstr "" "Zgoraj je naveden ukaz, s katerim se zažene pretvornik.\n" "Parameter %o določa ime izhodne datoteke, %K seznam ključnih besed,\n" "%F seznam vhodnih datotek,\n" "%C pa zastavico kodnega nabora (spodaj)." msgid "An item in keywords list:" msgstr "Predmet v seznamu ključnih besed:" msgid "" "This will be attached to the command line once\n" "for each keyword. %k expands to the keyword." msgstr "" "Zastavica bo dodana ukazni vrstici za vsako ključno\n" "besedo. Parameter %k določa to ključno besedo." msgid "An item in input files list:" msgstr "Predmet v seznamu vhodnih datotek:" #, c-format msgid "" "This will be attached to the command line once\n" "for each input file. %f expands to the filename." msgstr "" "Zastavica bo dodana ukazni vrstici za vsako vhodno\n" "datoteko. Parameter %f določa to ime datoteke." msgid "Source code charset:" msgstr "Kodni nabor izvorne kode:" #, c-format msgid "" "This will be attached to the command line\n" "only if source code charset was given. %c expands to charset value." msgstr "" "Zastavica bo dodana ukazni vrstici le, če je podan nabor znakov.\n" " Parameter %c določa jezikovni nabor." msgid "Catalog properties" msgstr "Lastnosti kataloga" msgid "Project name and version:" msgstr "Ime in različica projekta:" msgid "Language team:" msgstr "Ekipa jezika:" msgid "Plural forms:" msgstr "Množinske oblike:" msgid "Use default rules for this language" msgstr "Uporabi privzeta pravila za ta jezik" msgid "Use custom expression" msgstr "Uporabi izraz po meri" msgid "Learn about plural forms" msgstr "Podrobnosti o množinskih oblikah" msgid "Charset:" msgstr "Kodni nabor:" msgid "Advanced Extraction Settings…" msgstr "Napredne nastavitve izluščenja ..." msgid "Advanced extraction settings…" msgstr "Napredne nastavitve izluščenja ..." msgid "Translation Properties" msgstr "Lastnosti prevoda" msgid "Translation properties" msgstr "Lastnosti prevoda" msgid "Sources Paths" msgstr "Poti vira" msgid "Sources paths" msgstr "Poti vira" msgid "Extract text from source files in the following directories:" msgstr "Pretvori prevedljive nize izvornih datotek v navedenih mapah:" msgid "Base path:" msgstr "Osnovna pot:" msgid "Sources Keywords" msgstr "Ključne besede vira" msgid "Sources keywords" msgstr "Ključne besede vira" msgid "" "Use these keywords (function names) to recognize translatable strings\n" "in source files:" msgstr "" "Uporabi ključne besede (imena funkcij) za prepoznavanje\n" "prevedljivih nizov v izvornih datotekah:" msgid "Also use default keywords for supported languages" msgstr "Uporabi tudi privzete ključne besede za podprte jezike" msgid "Learn About Gettext Keywords" msgstr "Preglejte ključne besede gettext" msgid "Learn about gettext keywords" msgstr "Preglejte ključne besede gettext" msgid "Update summary" msgstr "Posodobi povzetek" msgid "" "These strings were found in the sources but were not in the catalog.\n" "Poedit will add them to the catalog now." msgstr "" "Ti nizi so bili v izvornih datotekah, vendar niso v katalogu.\n" "Program jih bo samodejno dodal v katalog." msgid "New strings" msgstr "Nov niz" msgid "" "These strings are no longer in the sources.\n" "Poedit will remove them from the catalog now." msgstr "" "Ti nizi znakov se ne nahajajo več v izvornih\n" "datotekah. Program jih bo samodejno odstranil iz kataloga." msgid "Obsolete strings" msgstr "Zastareli nizi" msgid "(0 new, 0 obsolete)" msgstr "(novi: 0, zastareli: 0)" msgid "Open" msgstr "Odpri" msgid "Save catalog" msgstr "Shrani katalog" msgid "Validate" msgstr "Potrdi ustreznost" msgid "Check for errors in the translation" msgstr "Preveri za napake v prevodu" msgid "Update" msgstr "Posodobi" msgid "Update catalog - synchronize it with sources" msgstr "Posodobi katalog - uskladi z izvorno kodo" msgid "Sidebar" msgstr "Stranska vrstica" msgid "Show or hide the sidebar" msgstr "Pokaži oz. skrij stransko vrstico" #. TRANSLATORS: "Previous" as in used in the past, now replaced with newer. msgid "Previous source text:" msgstr "Predhodno besedilo vira:" msgid "" "The old source text (before it changed during an update) that the now-" "inaccurate translation corresponds to." msgstr "" "Staro izvorno besedilo (pred spreminjanjem med posodobitvijo), ki sovpada z " "zdaj ohlapnim prevodom." msgid "Notes for translators:" msgstr "Opomba prevajalcem:" msgid "Add comment" msgstr "Dodaj komentar" msgid "Add Comment" msgstr "Dodaj komentar" msgid "Translation suggestions:" msgstr "Predlogi prevoda:" #. TRANSLATORS: This is shown when no translation suggestions can be found in the TM (Windows). msgid "No matches found" msgstr "Ni zadetkov" #. TRANSLATORS: This is shown when no translation suggestions can be found in the TM (macOS, Linux). msgid "No Matches Found" msgstr "Ni zadetkov" msgid "This string was found in Poedit’s translation memory." msgstr "Niza v pomnilniku prevodov ni mogoče najti." msgid "Cannot create temporary directory." msgstr "Ni mogoče ustvariti začasne mape." msgid "Welcome to Poedit" msgstr "Dobrodošli v Poedit" #. TRANSLATORS: This is version information in about dialog, "%s" will be #. version number when used #, c-format msgid "Version %s" msgstr "Različica %s" msgid "Edit a Translation" msgstr "Uredi prevod" msgid "Edit a translation" msgstr "Uredi prevod" msgid "Open an existing PO file and edit the translation." msgstr "Odpre obstoječo datoteko PO za urejanje." msgid "" "Take an existing PO file or POT template and create a new translation from " "it." msgstr "Odpre obstoječo datoteko PO ali predlogo POT za začetek prevajanja." msgid "Collaborate on a Translation with Others" msgstr "Sodeluj pri prevodu z drugimi" msgid "Collaborate on a translation with others" msgstr "Sodeluj pri prevodu z drugimi" msgid "" "Download a file from Crowdin project, translate and sync your changes back." msgstr "" "Prevzame datoteko prek spletišča Crowdin in jo usklajuje s spletnim prevodom." msgid "What is Crowdin?" msgstr "Kaj je Crowdin?" msgid "There are no translations. That’s unusual." msgstr "Ni prevodov. To je nenavadno." msgid "" "Translatable entries aren’t added manually in the Gettext system, but are " "automatically extracted\n" "from source code. This way, they stay up to date and accurate.\n" "Translators typically use PO template files (POTs) prepared for them by the " "developer." msgstr "" msgid "(Learn more about GNU gettext)" msgstr "(Več o GNU gettext)" msgid "The simplest way to fill this catalog is to update it from a POT:" msgstr "" "Najenostavnejši način za nadgradnjo kataloga je posodobitev prek datoteke " "POT:" msgid "Update from POT" msgstr "Posodobi iz datoteke POT" msgid "Take translatable strings from an existing POT template." msgstr "Prevzame prevedljive nize iz obstoječe predloge POT." msgid "" "You can also extract translatable strings directly from the source code:" msgstr "Prevedljive nize je mogoče prevesti tudi neposredno iz izvorne kode:" msgid "Extract from sources" msgstr "Prevedi iz izvorne kode" msgid "Configure source code extraction in Properties." msgstr "Možnosti prevajanja iz izvorne kode so zbrane med nastavitvami." msgid "Sync" msgstr "Uskladi" msgid "Synchronize the translation with Crowdin" msgstr "Uskladi prevod s Crowdin" #. TRANSLATORS: This is titlebar of about dialog, "%s" is application name #. ("Poedit" here, but please use "%s") #, c-format msgid "About %s" msgstr "O %s" #. TRANSLATORS: Title of the preferences window on Windows and Linux. "%s" is replaced with "Poedit" when running. #, c-format msgid "%s Preferences" msgstr "Nastavitve %s" #. TRANSLATORS: macOS item in app menu msgid "Services" msgstr "Storitve" #. TRANSLATORS: macOS item in app menu, %s is replaced with "Poedit" #, c-format msgid "Hide %s" msgstr "Skrij %s" #. TRANSLATORS: macOS item in app menu msgid "Hide Others" msgstr "Skrij ostale" #. TRANSLATORS: macOS item in app menu msgid "Show All" msgstr "Pokaži vse" #. TRANSLATORS: macOS item in app menu, %s is replaced with "Poedit" #, c-format msgid "Quit %s" msgstr "Končaj %s" #. TRANSLATORS: macOS item in app menu msgid "Preferences…" msgstr "Možnosti ..." msgid "Preferences..." msgstr "Možnosti ..." #. TRANSLATORS: Title of a category in Windows task menu (right-click icon in taskbar) msgid "Recent" msgstr "Nedavno" #. TRANSLATORS: Title of a category in Windows task menu (right-click icon in taskbar) msgid "Frequent" msgstr "Pogosto" msgid "&Apply" msgstr "&Uporabi" msgid "Apply" msgstr "Uporabi" msgid "&Back" msgstr "Naza&j" msgid "Back" msgstr "Nazaj" msgid "&Cancel" msgstr "Pre&kliči" msgid "&Clear" msgstr "Po&čisti" msgid "Clear" msgstr "Počisti" msgid "Copy" msgstr "Kopiraj" msgid "Cu&t" msgstr "I&zreži" msgid "Cut" msgstr "Izreži" msgid "&Delete" msgstr "&Izbriši" msgid "&Quit" msgstr "I&zhod" msgid "File" msgstr "Datoteka" msgid "Help" msgstr "Pomoč" msgid "&New" msgstr "&Nov" msgid "&No" msgstr "&Ne" msgid "No" msgstr "Ne" msgid "&OK" msgstr "V &redu" msgid "Open…" msgstr "Odpri ..." msgid "&Open..." msgstr "&Odpri ..." msgid "Open..." msgstr "Odpri ..." msgid "&Paste" msgstr "&Prilepi" msgid "Paste" msgstr "Prilepi" msgid "Preferences" msgstr "Možnosti" msgid "&Redo" msgstr "&Uveljavi" msgid "Refresh" msgstr "Osveži" msgid "&Save as" msgstr "&Shrani kot" msgid "Save as" msgstr "Shrani kot" msgid "Select &All" msgstr "Izberi &vse" msgid "Select All" msgstr "Izberi vse" msgid "&Undo" msgstr "&Razveljavi" msgid "&Yes" msgstr "&Da" msgid "Yes" msgstr "Da" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Shift+" msgstr "Dvigalka+" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Enter" msgstr "Vnašalka" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Up" msgstr "Navzgor" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Down" msgstr "Navzdol" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Left" msgstr "Levo" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Right" msgstr "Desno" #. TRANSLATORS: Keyboard shortcut, must correspond to translation of "Ctrl+" msgid "ctrl" msgstr "krmilka" #. TRANSLATORS: Keyboard shortcut, must correspond to translation of "Alt+" msgid "alt" msgstr "izmenjalka" #. TRANSLATORS: Keyboard shortcut, must correspond to translation of "Shift+" msgid "shift" msgstr "dvigalka" poedit-2.0.6/locales/hu.mo0000664000372000037200000014414613230132076012326 00000000000000P%1 1 11<11J 2gW2 22 22 222 3333%3+333B3Q3W3]3f3z333333333333 3 44 4)4 04=4M4c4y44444444445 5(5D5Y5n55555555 6 '6:36:n6 666 6 666 6 7 #707?7O7c7~77777 71898'>8f88 8878689)=9g9 l9]w99A9I*:t:{:; ;;";:; U;`;.h;;;;;;;;<*<F<#[<<<<<<<<(<(=7= R=s=|== ==/= = >>#>9>L>b>2>>>>> ?)???????@@@ 2@?@R@Ee@"@?@ AA*.A YAfAyAK~A"A5A#B)BHAH HHI 'IHI PI ]IiI"nI;I(IIJ&J 5J ?JMJjJ ~JJJJJ JJK:K PK<^K.KKKKLL*%LPLVLgL xL LLJMNMgM MMMMM#MM'M$N7DN$|N%NNNNNNOOOO O2O P#P9PNP]PlPtP|PPPPPPPPQQQnQERZR>aR RRRR@RS-TH ٨ "8Pjܩ5T$ 5B_nիP Cdu ʬլv,0]n+,ή73c6?$گ ԰<ܱ Q_X[T%iiU(O@xHJ+M,y : [$|''ɷ<{.)QԸu&h@e+;ͻWK߼+c\rz#ɿۿ 'D^v  0!=_o~ .9 )Fd Z%>[&z-8|  ,J]ckP>H* s1o! '266; r!*&"CD}],6 9BW6tC3H>C'# )h?*Kq#-0^aG2zFYblx&2LADZ.EwPi=Ab[kv @4uh~ uL@|pnf.nTN? QI2:qOKcajd F!p ]U>T+rXi=J%Vxz51^s4 NH/F"8/XJ`om #UwQk :Gs$ 8jL!~I1,(<D-9B>|;$H(E?g<y!dYgIo \ <eN+rM5&cM5 :"K-A+EmZ7C"603B $%RfRVeyOG*S@ M,4}_{O%W91J)S[`' 7)v &;*{(l_.03=\7P8/t';P (modified) (unsaved)%d entry%d entries%d entry was pre-translated.%d entries were pre-translated.%d error%d errors%d issue with the translation found.%d issues with the translation found.%i line of file “%s” was not loaded correctly.%i lines of file “%s” were not loaded correctly.%s Format%s Preferences%s format&About&About Poedit&Apply&Back&Bookmarks&Cancel&Clear&Close&Copy&Delete&Done and Next&Done and next&Edit&File&Find…&GNU gettext Manual&GNU gettext manual&Go&Group By Context&Group by context&Help&New&New…&Next >&Next Translation&Next translation&No&OK&Online Help&Online help&Open...&Open…&Paste&Preferences&Preferences…&Previous Translation&Previous translation&Properties…&Purge Deleted Translations&Purge deleted translations&Quit&Redo&Replace&Save&Save as&Show References&Show references&Undo&Untranslated Entries First&Untranslated entries first&Update from Sources&Update from sources&Validate Translations&Validate translations&View&Yes(0 new, 0 obsolete)(Learn more about GNU gettext)(New: %i, obsolete: %i)(Use default language)(requires Windows 8 or newer)< &PreviousDrag and Drop Folders Here or use the + buttonDrag and drop folders here or use the + buttonAbout %sAccountsAdd CommentAdd Files…Add Folders…Add Wildcard…Add commentAdd directory to the listAdd files…Add folders…Add wildcard…Additional keywordsAdditional xgettext flags:AdvancedAdvanced Extraction Settings…Advanced extraction settingsAdvanced extraction settings…All Translation FilesAll commentsAlso use default keywords for supported languagesAlt+Always change focus to text input fieldAn item in input files list:An item in keywords list:AppearanceApplyAre you sure you want to delete the “%s” extractor?Are you sure you want to reset the translation memory?Automatically check for updatesAutomatically compile MO file when savingBackBase path:Beta versions contain the latest new features and improvements, but may be a bit less stable.Bring All to FrontBroken catalog file: plural form msgstr used without msgid_pluralBroken catalog file: singular form msgstr used together with msgid_pluralBrowseBy default, inaccurate results are filled in as well and marked as needing work. Check this option to only include accurate matches.C&atalogC&learCancelCannot create temporary directory.Cannot execute program: %sCapitalizeCatalogCatalog modified. Do you want to save changes?Catalog propertiesCatalogs &ManagerCatalogs &managerCatalogs ManagerChange UI languageCharset:Check Document NowCheck Grammar With SpellingCheck Spelling While TypingCheck for Updates…Check for errors in the translationCheck for updates…Check spellingClearClear TranslationClear the commentClear translationCloseCollaborate on a Translation with OthersCollaborate on a translation with othersCollecting source files…Command to extract translations:Comment:Comments prefixed with:Compile to MO…Compile to…Compiled Translation FilesConfigure source code extraction in Properties.ConfirmationCopyCopy From SingularCopy from Source TextCopy from singularCopy from source textCorrect Spelling AutomaticallyCouldn’t load file %s, it is probably corrupted.Couldn’t save file %s.Create New TranslationCreate new translationCreate new translations projectCrowdin errorCrowdin is an online localization management platform and collaborative translation tool. Poedit can seamlessly sync PO files managed at Crowdin.Ctrl+Cu&tCustom Extractors:Custom extractors:CutDatabase size on disk:DeleteDelete extractorDelete the projectDirectories:Display Entry &IDsDisplay entry &IDsDo you really want to do mass update of all catalogs in this project?Do you want to delete the project?Do you want to remove all translations that are no longer used?Don’t SaveDon’t Show AgainDon’t mark exact matches as needing workDon’t saveDon’t show againDownDownload a file from Crowdin project, translate and sync your changes back.Downloading latest translations…Downloading translations is disabled in this project.E&xitE&xport as HTML…EditEdit &CommentEdit &commentEdit CommentEdit a TranslationEdit a translationEdit commentEdit projectEdit the projectEditingEdit…Email:EnterEnter Full ScreenEntries in the catalog are probably incorrect.Entries in this catalog have different plural forms count from what catalog’s Plural-Forms header saysEntries with Errors FirstEntries with errors firstEntries with errors were marked in red in the list. Details of the error will be shown when you select such an entry.Error loading message catalog file “%s”.Error opening fileError opening file %s!Error saving catalogErrorsEverythingExcluded pathsExport as…Extract from sourcesExtract notes for translators from:Extract text from source files in the following directories:Extracting translatable strings…Extractor setupExtractorsFailed command: %sFailed to communicate with Poedit process.Failed to load extracted catalog.Failed to merge gettext catalogs.Failed to update translation memory: %sFileFile “%s” doesn’t exist.File “%s” is not a message catalog.File “%s” is read-only and cannot be saved. Please save it under different name.File:Finalizing…FindFind NextFind PreviousFind and Replace…Find in commentsFind in source textsFind in translationsFind nextFind previousFix LanguageFix languageFix the HeaderFix the headerForm %iFrequentGNU gettextGeneralGo to Bookmark %iGo to bookmark %iHTML FilesHelpHide %sHide OthersHide SidebarHide Status BarHide this notification messageIDIf you continue with purging, all translations marked as deleted will be permanently removed. You will have to translate them again if they are added back in the future.Ignore caseImporting translations…Include beta versionsInformation about the translatorInstallInvalid fileInvocation:KeepLanguage Code or Name (e.g. en_GB)Language of the translation is the same as source language.Language of the translation isn’t set.Language of the translation:Language selectionLanguage team:Language:Last modifiedLearn About Gettext KeywordsLearn From Files…Learn MoreLearn More About CrowdinLearn about gettext keywordsLearn about plural formsLearn from files…Learn moreLearn more about CrowdinLeftLine %d of file “%s” is corrupted (not valid %s data).Line endings:List of extensions separated by semicolons (e.g. *.cpp;*.h):MO files can’t be directly edited in Poedit.Make Lower CaseMake Upper CaseMalformed header: “%s”Merging differences…MinimizeName of the project the translation is forName:Ne&xt UnfinishedNe&xt unfinishedNeeds WorkNeeds workNever let the list of strings take focus. If enabled, you must use Ctrl-arrows for keyboard navigation but you can also type text immediately, without having to press Tab to change focus.NewNew From &POT/PO File…New from &POT/PO file…New stringsNext Plural FormNext plural formNoNo Matches FoundNo entries could be pre-translated.No matches foundNo problems with the translation found.No references for the selected item.No translation projects listed in your Crowdin account.Not all plural forms are translated.Not authorized, please sign in again.Notes for translators:OKObsolete stringsOneOnly enable if you trust the quality of your TM. By default, all matches from the TM are marked as needing work and should be reviewed before use.Only fill in exact matchesOpenOpen Crowdin translationOpen From Crowdin…Open RecentOpen an existing PO file and edit the translation.Open catalogOpen catalog templateOpen from Crowdin…Open in EditorOpen in editorOpen...Open…OptionsOtherP&revious UnfinishedP&revious unfinishedPO TranslationPO Translation FilesPOT Translation TemplatesPOT files are only templates and don’t contain any translations themselves. To make a translation, create a new PO file based on the template.PastePaste and Match StylePathsPlease open and edit the corresponding PO file instead. When you save it, the MO file will be updated as well.Please save the file first. This section cannot be edited until then.PluralPlural forms expression used by the catalog is unusual for %s.Plural forms:Plural:PoeditPoedit - Catalogs managerPoedit automatically fixed invalid content in the file “%s”.Poedit can attempt to fill in new entries from only previous translations in the file or from your entire translation memory. Using the TM won’t be very effective if it’s near-empty, but it will get better as you add more translations to it.Poedit is an easy to use translations editor.Pre-&translate…Pre-translatePre-translatedPre-translated %u stringPre-translated %u stringsPre-translating…Pre-translation automatically finds exact or fuzzy matches for untranslated strings in the translation memory and fills in their translations.PreferencesPreferences...Preferences…Preserve formatting of existing filesPrevious Plural FormPrevious plural formPrevious source text:Project name and version:Project name:Project:PurgePurge deleted translationsQuitQuit %sRecentRedoReferences:RefreshRemaining: %dReplaceReplace &AllReplace &allReplacement stringReplace…Required header Plural-Forms is missing.ResetReset translation memoryResetting the translation memory will irrevocably delete all stored translations from it. You can’t undo this operation.ReviewRightSaveSave &As…Save &as…Save asSave as…Save catalogSave changesSelect &AllSelect AllSelect directorySelect translation files to importSelect your preferred languageServicesSet Bookmark %iSet LanguageSet bookmark %iSet languageShift+Show AllShow SidebarShow Spelling and GrammarShow Status BarShow SubstitutionsShow or hide the sidebarShow sidebarShow status barShow summary after catalog updateSidebarSign InSign OutSign inSign in to CrowdinSign outSigned in as:SingularSingular:Smart Copy/PasteSmart DashesSmart LinksSmart QuotesSort by &File OrderSort by &SourceSort by &TranslationSort by &file orderSort by &sourceSort by &translationSource code charset:Source code extractors are used to find translatable strings in the source code files and extract them so that they can be translated.Source code not available.Source fileSource file occurrence:Source textSource text — %sSource text:Sources KeywordsSources PathsSources keywordsSources pathsSpeechSpellchecking is disabled, because the dictionary for %s isn’t installed.Spelling and GrammarStart SpeakingStop SpeakingStored translations:String to findSubstitutionsSuggestionsSuggestions are not available if the translation language is not set correctly. Other features, such as plural forms, may be affected as well.Supports all programming languages recognized by GNU gettext tools (PHP, C/C++, C#, Perl, Python, Java, JavaScript and others).SyncSync with CrowdinSynchronize the translation with CrowdinSyncingSyncing errorSyncing with %s failed.Syncing with %s…Syncing with Crowdin failed.Syntax error in Plural-Forms header ("%s").TMTake an existing PO file or POT template and create a new translation from it.Take translatable strings from an existing POT template.Team name and email address or URLText ReplacementThe TM doesn’t contain any strings similar to the content of this file. It is only effective for semi-automatic translations after Poedit learns enough from files that you translated manually.The catalog couldn’t be saved in “%s” charset as specified in catalog settings. It was saved in UTF-8 instead and the setting was modified accordingly.The file cannot be compiled into the MO format and used.The file cannot be opened.The file contained duplicate items, which is not allowed in PO files and would prevent the file from being used. Poedit fixed the issue, but you should review translations of any items marked as needing work and correct them if necessary.The file may be either corrupted or in a format not recognized by Poedit.The file was compiled into the MO format, but it will probably not work correctly.The file was saved safely and compiled into the MO format, but it will probably not work correctly.The file was saved safely, but it cannot be compiled into the MO format and used.The file was saved safely.The old source text (before it changed during an update) that the now-inaccurate translation corresponds to.The simplest way to fill this catalog is to update it from a POT:The translation doesn’t start with a space.The translation ends with a newline, but the source text doesn’t.The translation ends with a space, but the source text doesn’t.The translation ends with “%s”, but the source text ends with “%s”.The translation is missing a newline at the end.The translation is missing a space at the end.The translation is ready for use, but %d entry is not translated yet.The translation is ready for use, but %d entries are not translated yet.The translation is ready for use.The translation should end with “%s”.The translation should not end with “%s”.The translation should start as a sentence.The translation should start with a lowercase character.The translation starts with a space, but the source text doesn’t.The translations were marked as needing work, because they may be inaccurate. You should review them for correctness.There are no translations. That’s unusual.There was a problem formatting the file nicely (but it was saved all right).There were errors when loading the catalog. Some data may be missing or corrupted as the result.These settings affect internal formatting of PO files. Adjust them if you have specific requirements e.g. because of version control.These strings are no longer in the sources. Poedit will remove them from the catalog now.These strings were found in the sources but were not in the catalog. Poedit will add them to the catalog now.This catalog has entries with plural forms, but doesn’t have Plural-Forms header configured.This file can only be edited in Crowdin’s web interface.This is the command used to launch the extractor. %o expands to the name of output file, %K to list of keywords, %F to list of input files, %C to charset flag (see below).This project has no files that can be translated in Poedit.This string was found in Poedit’s translation memory.This will be attached to the command line only if source code charset was given. %c expands to charset value.This will be attached to the command line once for each input file. %f expands to the filename.This will be attached to the command line once for each keyword. %k expands to the keyword.TotalTransformationsTranslatable entries aren’t added manually in the Gettext system, but are automatically extracted from source code. This way, they stay up to date and accurate. Translators typically use PO template files (POTs) prepared for them by the developer.Translated: %d of %d (%d %%)Translation LanguageTranslation MemoryTranslation Needs &WorkTranslation PropertiesTranslation needs &workTranslation propertiesTranslation suggestions:Translation — %sTranslation:Translations couldn’t be updated from the source code, because no code was found in the location specified in the catalog’s Properties.TwoUTF-8 (recommended)UndoUnhandled exception occurred: %sUnix (recommended)UntransUpUpdateUpdate allUpdate all catalogs in the projectUpdate catalog - synchronize it with sourcesUpdate from &POT File…Update from &POT file…Update from POTUpdate summaryUpdatesUpdating catalogUpdating failedUpdating the catalog failed. Click on 'Details >>' for details.Updating user information…Uploading translations…Use custom expressionUse custom list font:Use custom text fields font:Use default rules for this languageUse these keywords (function names) to recognize translatable strings in source files:Use translation memoryValidateValidation resultsVersion %sWaiting for authentication…Welcome to PoeditWhat is Crowdin?When updating from sourcesWhole words onlyWindowWindowsWrap aroundWrap at:YesYou can also extract translatable strings directly from the source code:You can’t drop more than one file on Poedit window.You must restart Poedit for this change to take effect.Your NameYour changes will be lost if you don’t save them.Your name and email address are only used to set the Last-Translator header of GNU gettext files.ZeroZoomaltctrldon’t delete temporary files (for debugging)e.g. nplurals=2; plural=(n > 1);fuzzy match within the filego to item at given line numberhandle a poedit:// URIpre-translate from TMshiftunknown languageyour_email@example.com“%s” is not a valid POT file.Project-Id-Version: poedit Report-Msgid-Bugs-To: help@poedit.net POT-Creation-Date: 2017-12-05 15:52+0100 PO-Revision-Date: 2018-01-18 07:56-0500 Last-Translator: vslavik Language-Team: Hungarian Language: hu_HU MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=(n != 1); X-Generator: crowdin.com X-Crowdin-Project: poedit X-Crowdin-Language: hu X-Crowdin-File: /locales/poedit.pot (módosítva) (nincs mentve)%d bejegyzés%d bejegyzés%d elem előfordítva.%d elem előre lefordítva.%d hiba%d hiba%d probléma van a fordítással.%d probléma van a fordítással.%i sor „%s” fájlból nem lett megfelelően betöltve.%i sorok „%s” fájlból nem lettek megfelelően betöltve.%s formátum%s beállításai%s formátum&NévjegyPoedit &névjegyeAlkalmazVissza&KönyvjelzőkMégsemTörölBe&zárás&Másolás&TörlésK&ész és következőK&ész és következőSz&erkesztés&FájlKeresés…&GNU gettext kézikönyv&GNU gettext kézikönyv&UgrásSzövegkörnyezeti &csoportosításSzövegkörnyezeti &csoportosítás&SúgóÚjÚj…Következő >&Következő fordítás&Következő fordításNemOK&Online súgó&Online súgó&Megnyitás…Megnyitás…&Beillesztés&BeállításokTulajdonságok…&Előző fordítás&Előző fordításTulajdonságok…Törölt &fordítások végleges törlésTörölt &fordítások tisztításaKilépés&MégisCsereMenté&sMentés másként&Hivatkozások megjelenítése&Hivatkozások megjelenítése&Visszavonás&Lefordítatlan bejegyzések előre&Lefordítatlan bejegyzések előreFrissítés a &forrásokbólFrissítés a &forrásokbólFordítások ér&vényesítéseFordítások ér&vényesítése&NézetIgen(0 új, 0 elavult)(Tudjon meg többet a GNU gettextről)(Új: %i, elavult: %i)(Alapértelmezett nyelv használata)(Windows 8-as vagy újabb szükséges)< ElőzőHúzza ide a mappákat vagy használja a + gombotHúzza ide a mappákat vagy használja a + gombot%s névjegyeFiókokHozzászólásFájlok hozzáadása…Mappák hozzáadása…Helyettesítő karakter hozzáadása…HozzászólásKönyvtár hozzáadása a listáhozFájlok hozzáadása…Mappák hozzáadása…Helyettesítő karakter hozzáadása…Kiegészítő kulcsszavakKiegészítő xgettext jelzők:SpeciálisSpeciális kibontási beállítások…Speciális kibontási beállításokSpeciális kibontási beállítások…Minden fordítási fájlÖsszes megjegyzésA támogatott nyelvek alapértelmezett kulcsszavai is használhatókAlt+Mindig a beviteli mező legyen az aktívEgy elem a bemeneti fájlok listájában:Egy elem a kulcsszavak listájában:MegjelenésAlkalmazBiztosan törölni szeretné a "%s" kivonatolót?Biztos benne, hogy törölni akarja a fordítási memóriát?Frissítések automatikus kereséseMO fájl automatikus létrehozása mentéskorVisszaAlap útvonal:Béta verziók a legújabb funkciókat és fejlesztéseket tartalmazzák, de előfordulhat, hogy egy kicsit kevésbé stabilak.Összes előrehozásaSérült katalógus fájl: többes számú msgstr van használva msgid_plural nélkülSérült katalógus fájl: egyes számú msgstr van használva msgid_plural megadássalTallózásAlapesetben a pontatlan eredmények is - bizonytalanként jelölve - belekerülnek a fordításba. Bejelölve ezt az opciót, csak pontos egyezés esetén lesz kitöltve.&KatalógusTör&lésMégseAz ideiglenes fájlok könyvtárát nem lehet létrehozni.A programot nem lehet futtatni: %sNagy kezdőbetűKatalógusA katalógus módosult. Szeretné menteni a változásokat?Katalógus tulajdonságok&Katalóguskezelő&Katalóguskezelő&KatalóguskezelőFelület nyelvének változtatásaKarakterkódolás:Dokumentum ellenőrzéseNyelvhelyesség és helyesírás ellenőrzéseHelyesírás-ellenőrzés beíráskorFrissítések ellenőrzése…Hibák keresése a fordításbanFrissítések ellenőrzése…Helyesírás-ellenőrzésTörölFordítás törléseMegjegyzés törléseFordítás törléseBezárásEgyüttműködés egy fordításban másokkalEgyüttműködés egy fordításban másokkalForrás fájlok összegyűjtése…Fordítás kivonatoló parancs:Megjegyzés:Megjegyzések előtaggal:Fordítás MO-ra…Lefordítás…Lefordított fordítási fájlokForráskód extrakció konfigurálása a Tulajdonságok panelenMegerősítésMásolásMásolás az egyes számbólMásolás a forrásszövegbőlMásolás az egyes számbólMásolás a forrásszövegbőlAutomatikus helyesírás-javítás%s fájl betöltése nem sikerült, valószínűleg sérült.%s fájl mentése nem sikerült.Új fordítás létrehozásaÚj fordítási projekt létrehozásaÚj fordítási projekt létrehozásaCrowdin hibaA Crowdin egy online honosításkezelő platform és együttműködésen alapuló fordítási eszköz. A Poedit gond nélkül képes szinkronizálni a Crowdin-on kezelt PO fájlokat.Ctrl+&KivágásEgyéni kivonatolók:Egyéni kivonatolók:KivágásAdatbázis méret a lemezen:TörlésKivonatoló törléseProjekt törléseKönyvtárak:Bejegyzés &azonosítók megjelenítéseBejegyzés &azonosítók megjelenítéseTényleg szeretné frissíteni a projektben található összes katalógust?Tényleg törölni szeretné a projektet?Tényleg törölni szeretné a már nem használt fordításokat?Nincs mentésNe mutassa újraNe jelölje meg a pontos egyezést, mivel munkát igényelNincs mentésNe mutassa újraLeTöltsön le egy fájlt egy Crowdin projektből, fordítsa le, majd szinkronizálja Crowdin-en lévőkkel.A legújabb fordítások letöltése…A fordítások letöltése ebben a projektben le van tiltva.K&ilépésExportálás HTML-ként…Szerkesztés&Megjegyzés szerkesztése&Megjegyzés szerkesztéseMegjegyzés szerkesztéseFordítás szerkesztéseFordítás szerkesztéseMegjegyzés szerkesztéseProjekt szerkesztéseA projekt szerkesztéseSzerkesztésSzerkesztés…E-mail:EnterVáltás teljes képernyőreA katalógusban lévő bejegyzések valószínűleg hibásak.A katalógusban lévő egyes bejegyzéseknek eltérő darabszámú többes számuk van, mint amit a katalógus Plural-Forms fejléce mondHibás bejegyzések elölHibás bejegyzések elölA hibás bejegyzések pirossal meg lettek jelölve a listában. A hiba részletei megjelennek, ha egy ilyen bejegyzést választ ki.Hiba „%s” üzenetkatalógus fájl betöltése közben.Hiba a fájl megnyitása soránHiba a(z) %s fájl megnyitásakor!Hiba a katalógus mentésekorHibákMindenKizárt elérési utakExportálás másként…Kinyerés forrás fájlbólKibontás jegyzetek a következő fordítóktól:Szövegek kinyerése a következő könyvtárakban lévő forrásfájlokból:Lefordítható karakterláncok kinyerése…Kivonatoló beállításaKivonatolókSikertelen parancs: %sNem sikerült kommunikálni a Poedit folyamattal.A kinyert katalógus betöltése meghiúsult.A gettext katalógusok egyesítése meghiúsult.Nem sikerült frissíteni a fordítási memóriát: %sFájl"%s" fájl nem létezik.„%s” fájl nem üzenet katalógus.„%s” fájl csak olvasható és nem lehet menteni. Kérjük, mentse más néven.Fájl:Befejezés…Keresés…Következő kereséseElőző kereséseKeresés és csere…Keresés a megjegyzésekbenKeresés a forrásszövegbenKeresés a fordításbanKövetkező kereséseElőző kereséseBeállítás kijavításaBeállítás kijavításaA fejléc javításaFejléc javítása%i. alakGyakoriGNU-GettextÁltalánosUgrás a(z) %i könyvjelzőreUgrás a(z) %i könyvjelzőreHTML fájlokSúgó%s elrejtéseTöbbi elrejtéseOldalsáv elrejtéseÁllapotsor elrejtéseEzen értesítő üzenet elrejtéseAzonosítóHa folytatja a tisztítást, akkor a töröltként megjelölt fordítások végleg eltávolításra kerülnek. Újra kell fordítania őket, ha ezek a jövőben újra hozzá lesznek adva.Nem kis-nagybetű érzékenyFordítások importálása…Beleértve a béta verziókat is.Információk a fordítórólTelepítésÉrvénytelen fájlVégrehajtás:MegtartásNyelv kódja vagy neve (pl. hu_HU)A fordítás nyelve megegyezik a forrásnyelvvel.A fordítás nyelve nincs beállítva.A fordítás nyelve:NyelvválasztásNyelvi csoport:Nyelv:Utoljára módosítvaTudjon meg többet a Gettext kulcsszavakrólBeolvasás fájlból…Tudjon meg többetTudjon meg többet a CrowdinrólTudjon meg többet a gettext kulcsszavakrólTudjon meg többet a többes számú alakokrólBeolvasás fájlból…Tudjon meg többetTudjon meg többet a CrowdinrólBalra%d sor a “%s” fájlban sérült (nem érvényes %s adat).Sorvégek:Kiterjesztések listája pontosvesszővel elválasztva (pl. *.cpp;*.h):MO fájlok nem szerkeszthetők közvetlenül a Poeditben.KisbetűvelNagybetűvelHibás fejléc: "%s"Eltérések összefésülése…MinimalizálásA projekt megnevezése, és aminek a fordítása:Név:K&övetkező befejezetlenK&övetkező befejezetlenMunkát igényelMunkát igényelSoha ne legyen aktív a szöveglista. Ha be van kapcsolva, akkor a mozgáshoz a Ctrl+nyilakat kell használni, de a szöveg azonnal gépelhető anélkül, hogy előtte Tabot kellene nyomni a fókusz váltásához.ÚjÚj POT/PO fájlból…Új POT/PO fájlból…Új szövegekKövetkező többes számú alakKövetkező többes számú alakNemNincs találatA bejegyzést nem lehet előfordítani.Nincs találatA fordítással nincsenek problémák.A kiválasztott elemhez nincs referencia.Nem szerepel fordítási projekt az Ön Crowdin fiókjában.Nincs az összes többes szám lefordítva.Nem engedélyezett, kérjük jelentkezzen be újra.Megjegyzések a fordítóknak:OKElavult szövegekEgyCsak akkor engedélyezze, ha megbízik a TM minőségében. Alapértelmezés szerint a TM minden egyezését Munkát igényel kifejezéssel jelöltük meg, és használat előtt ellenőriznie kell.Csak pontos egyezés eseténMegnyitásCrowdin fordítás megnyitásaMegnyitás a Crowdin-ról…Legutóbbi megnyitásaEgy létező PO fájl megnyitása, és a fordítás szerkesztéseKatalógus megnyitásaKatalógus sablon megnyitásaMegnyitás a Crowdin-ról…Megnyitás a szerkesztőbenMegnyitás a szerkesztőbenMegnyitás...Megnyitás…BeállításokEgyébEl&őző befejezetlenEl&őző befejezetlenPO fordításPO fordítási fájlokPOT fordítási sablonokA POT fájl csak egy sablon és nem tartalmaz fordításokat. Fordítás készítéséhez hozzon létre egy új PO fájlt a sablon alapján.BeillesztésBeillesztés és stílus egyeztetésÚtvonalakKérjük, nyissa meg és szerkessze helyette a megfelelő PO fájlt. Amikor menti, a MO fájl is frissülni fog.Kérjük először mentse el fájlt. Ez a szakasz mindaddig nem lesz szerkeszthetőTöbbes számA katalógus által használt többes szám kifejezés a %s nyelvhez nem használatos.Többes számú alakok:Többes szám:PoeditPoedit – KatalóguskezelőA Poedit a(z) “%s” fájlban automatikusan kijavította a nem megfelelő tartalmat.A Poedit megpróbálhat újabb bejegyzéseket betölteni a korábbi fordításokból amik a fájlban vagy a teljes fordítási memóriájában vannak. A TM használata akkor még nem nagyon hatásos, ha majdnem üres, de amikor több fordítást ad hozzá, akkor egyre jobb lesz.A Poedit egy könnyen használható fordítás szerkesztő.Előfordítás…ElőfordításElőfordítottElőfordított %u sorElőfordított %u sorElőfordítás…Az előfordítás automatikusan megtalálja a fordítási memóriában a lefordítatlan karakterláncok pontos vagy fuzzy illeszkedését, és beírja a fordításokat.BeállításokBeállítások...Tulajdonságok…A meglévő fájlok formázásának megőrzéseElőző többes számú alakElőző többes számú alakElőző forrásszöveg:Projekt neve és verziószáma:Projekt neve:Projekt:TisztításTörölt fordítások tisztításaKilépésKilépés a %s-bőlLegutóbbiMégisHivatkozások:FrissítésMaradt: %dCsereÖsszes cseréjeÖsszes cseréjeBehelyettesítendő karakterláncCsere…A szükséges Plural-Forms fejléc hiányzik.TörlésFordítási memória törléseA fordítási memória törlésével visszavonhatatlanul töröl minden benne tárolt fordítást. Ez a művelet nem vonható vissza.FelülvizsgálatJobbraMentésMentés másként…Mentés másként…Mentés máskéntMentés másként…Katalógus mentéseVáltozások mentéseMin&den kijelöléseMinden kijelöléseVálassza ki a könyvtáratImportálandó fordítás fájlok kiválasztásaVálassza ki a kívánt nyelvetSzolgáltatások%i könyvjelző beállításaNyelv kiválasztása%i könyvjelző beállításaVálassza ki a nyelvetShift+Mindet mutatOldalsáv megjelenítéseHelyesírás és nyelvhelyesség megjelenítéseÁllapotsor megjelenítéseCserejavaslatok megjelenítéseOldalsáv megjelenítése/elrejtéseOldalsáv megjelenítéseÁllapotsor megjelenítéseÖsszefoglaló megjelenítése a katalógus frissítése utánOldalsávBejelentkezésKijelentkezésBejelentkezésBejelentkezés a CrowdinraKijelentkezésBejelentkezve mint:Egyes számEgyes szám:Intelligens másolás/beillesztésIntelligens kötőjelekIntelligens hivatkozásokIntelligens idézőjelekRendezés &fájlsorrend szerintRendezés f&orrás szerintRendezés for&dítás szerintRendezés &fájlsorrend szerintRendezés f&orrás szerintRendezés for&dítás szerintForráskód karakterkódolás:A forráskód kivonatoló szolgál a lefordítható karakterláncok forráskód fájlokban való megkeresésére és kivonatolására annak érdekében, hogy le lehessen őket fordítani.Nem áll rendelkezésre forráskód.ForrásfájlForrásfájli előfordulás:ForrásszövegForrásszöveg — %sForrásszöveg:Források kulcsszavaiForrások útvonalaiForrások kulcsszavaiForrások útvonalaiBeszédHelyesírás-ellenőrzés le van tiltva, mert a(z) %s szótár nincs telepítve.Helyesírás és nyelvhelyességBeszéd kezdéseBeszéd leállításaTárolt fordítások:Keresendő karakterláncCserejavaslatokJavaslatokA javaslatok nem érthetők el, ha a fordítás nyelve nincs pontosan beállítva. Ez más funkciókra, mint pl.: a többes számú alakokra is hatással lehet.GNU-gettext eszközök (PHP, C/C++, C#, Perl, Python, Java, JavaScript és mások) által elismert minden programozási nyelvet támogat.SzinkronizációSzinkronizáció a Crowdin-nelFordítások szinkronizálása a Crowdin-nelSzinkronizálásSzinkronizálás hibaA szinkronizálás ezzel: %s nem sikerült.Szinkronizálás ezzel: %s…Nem sikerült szinkronizálni a Crowdin-nel.Szintaktikai hiba a Plural-Forms fejlécben („%s”).FMEgy már meglévő PO fájl vagy POT sablon kiválasztása és új fordítás készítése belőle.Lefordítható karakterláncok egy már létező POT sablonbólCsapat neve és email címe vagy URLSzöveg csereA FM nem tartalmaz a fájl tartalmat hasonló karakterláncokat. A félautomata fordítás csak azután lesz hatékony miután Poedit eleget tanult a Ön által manuálisan lefordított fájlokból.A katalógust nem lehet a katalógus beállításainál megadott „%s” karakterkódolással menteni. Ehelyett a mentés UTF-8 kódolással történt, és a beállítás ennek megfelelően módosult.A fájlt nem lehet MO formátumra fordítani és használni.A fájlt nem lehet megnyitni.A fájl PO fájlokban nem engedélyezett és a fájl használatát megakadályozó ismétlődő elemeket tartalmaz. A Poedit kijavította ezt a problémát, de minden bizonytalannak jelölt fordítási bejegyzés felülvizsgálata és estleges javítása szükséges.A fájl lehet hogy sérült vagy olyan formátumú melyet a Poedit nem ismer fel.A fájl át lett fordítva MO formátumra, de lehetséges, hogy nem fog megfelelően működni.A fájl biztonságosan el lett mentve, de lehetséges, hogy nem fog megfelelően működni.A fájl mentése sikerült, de nem lehet MO formátumúra fordítani és használni.A fájl biztonságosan el lett mentveA régi forrásszöveg (a frissítést megelőző állapotú), ami bizonytalan fordításnak tekinthető.A legegyszerűbb módja a katalógus kitöltésének, ha frissíti egy POT fájlból:A fordítás nem kezdődhet szóközzel.A fordítás egy új sorral végződik, de a forrásszöveg nem.A fordítás végén hiányzik egy szóköz, de a forrásszövegben nem.A fordítás végére "%s" kell, de a forrásszöveg végén “%s” van.A fordítás végén hiányzik egy új sor.A fordítás végén hiányzik egy szóköz.A fordítás használatra kész, de %d bejegyzés még nincs lefordítva.A fordítás használatra kész, de %d bejegyzés még nincs lefordítva.A fordítás használatra kész.A fordítás végére "%s" kell.A fordítás végére nem kell "%s".A fordítást mondatként kell kezdeni.A fordítást kisbetűvel kell kezdeni.A fordítás szóközzel kezdődik, de a forrásszöveg nem.A fordítások bizonytalannak lettek jelölve, mert lehet, hogy pontatlanok. A pontosításukhoz át kellene nézni ezeket.Nem léteznek fordítások. Ez szokatlan.Probléma történt a fájl szépre formázása közben (de rendben mentve lett).Hibák történtek a katalógus betöltése közben. Eredményeként néhány adat hiányozhat vagy megsérülhetett.Ezek a beállítások befolyásolják a PO fájlokat belső formázását. Csak speciális követelmények - pl. verzió kezelés - esetén változtassa meg őket.Ezek a szövegek már nem találhatóak meg a forrásokban. A Poedit most törli őket a katalógusból.Ezek a katalógusból hiányzó szövegek voltak megtalálhatóak a forrásokban. A Poedit most hozzáadja őket a katalógushoz.Ebben a katalógusban többes számú bejegyzések vannak, de nincs Plural-Forms fejléc beállítva.Ez a fájl csak a Crowdin webes felületén szerkeszthető.Ezzel a paranccsal lesz indítva a kivonatoló. %o jelenti a kimeneti fájl nevét, %K a kulcsszavak listáját, %F a bemeneti fájlokat, %C pedig a karakterkódolást (lásd lejjebb).Ebben a fordítási projektben nincs olyan fájl, amit a Poedit-tel fordítani lehetne.Erre a karakterláncra a Poedit fordítási memóriájában találtunk rá.Ez csak akkor lesz a parancssorhoz fűzve, ha forráskód karakterkódolás meg lett adva. %c jelenti a karakterkódolás értékét.Ez minden bemeneti fájlnál egyszer a parancssor végéhez lesz fűzve. %f jelenti a fájl nevét.Ez minden kulcsszónál egyszer a parancssor végéhez lesz fűzve. %k jelenti a kulcsszót.ÖsszesÁtalakításokA Gettext rendszerben a fordítható bejegyzések nem adhatók hozzá kézzel, a kinyerésük a forráskódból automatikusan történik. Ily módon mindig naprakész és pontos lesz. A fordítók jellemzően a fejlesztők által számukra készített PO sablon fájlokat (POT) használják.Lefordítva: %d/%d (%d %%)Fordítás nyelveFordítási memóriaFordítási munkát igényelFordítás tulajdonságaiFordítási munkát igényelFordítás tulajdonságaiFordítási javaslatok:Fordítás — %sFordítás:A fordításokat nem lehet frissíteni a forráskódból, mert a katalógus tulajdonságaiban megadott helyen nem található kód.KettőUTF-8 (javasolt)VisszavonásNem kezelt kivétel történt: %sUnix (javasolt)LefordítatlanFelFrissítésÖsszes frissítéseA projekt összes katalógusának frissítéseKatalógus frissítése - szinkronizálás a forrásokhozFrissítés POT fájlból…Frissítés POT fájlból…Frissítés &POT fájlból…Frissítési összefoglalóFrissítésekKatalógus frissítéseSikertelen frissítésA katalógus frissítése meghiúsult. Részletekért kattintson a 'Részletek >>' gombra.Felhasználói adatok frissítése…Fordítások feltöltése…Egyéni kifejezés használataEgyéni lista betűtípus használata:Egyéni szövegmező betűtípus használata:Alapértelmezett szabályok használata ehhez a nyelvhezHasználja ezeket a kulcsszavakat (függvény neveket) a forrásfájlokban lévő lefordítható szövegek felismeréséhez:Fordítási memória használataÉrvényesítésÉrvényesítés eredménye%s verzióVárakozás a hitelesítésre…Üdvözöljük a PoeditnélMi az a Crowdin?Forrásokból frissítésekorCsak teljes szóraAblakWindowsKörkörös keresésSzöveg szélesség:IgenKözvetlenül a forráskódból is kinyerhet lefordítható karaktersorozatokat:A Poedit ablakára egyszerre több fájlt nem lehet ráhúzni.Újra kell indítania a Poeditet a módosítás életbe léptetéséhez.Az Ön neveA változtatások elvesznek, ha nem menti azokat.Az Ön neve és e-mail címe csak a GNU gettext fájlok Last-Translator fejlécének beállítására szolgál.NullaNagyításaltctrlne törölje az ideiglenes fájlokat (hibakereséshez)pl. nplurals=2; plural=(n != 1);fuzzy megfelelő a fájlon belülugrás a tételhez a megadott sorszámnálkezel egy poedit:// URIelőfordítás TM-bőlshiftismeretlen nyelvaz_Ön_emailcíme@példa.com"%s" nem egy érvényes POT fájl.poedit-2.0.6/locales/ar.po0000664000372000037200000017267313230132075012324 00000000000000msgid "" msgstr "" "Project-Id-Version: poedit\n" "Report-Msgid-Bugs-To: help@poedit.net\n" "POT-Creation-Date: 2017-12-05 15:52+0100\n" "PO-Revision-Date: 2017-12-05 09:48-0500\n" "Last-Translator: vslavik \n" "Language-Team: Arabic\n" "Language: ar_SA\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-Generator: crowdin.com\n" "X-Crowdin-Project: poedit\n" "X-Crowdin-Language: ar\n" "X-Crowdin-File: /locales/poedit.pot\n" msgid "Hide this notification message" msgstr "أخفِ رسالة الإخطار هذه" msgid "Don’t Show Again" msgstr "عدم العرض مجدّدًا" msgid "Don’t show again" msgstr "عدم العرض مجدّدًا" #, c-format msgid "(New: %i, obsolete: %i)" msgstr "(الجديدة: %i، البائدة: %i)" msgid "Updating catalog" msgstr "يحدّث الكتالوج" msgid "Collecting source files…" msgstr "جاري تجميع ملفّات المصدر…" msgid "Extracting translatable strings…" msgstr "جاري إستخراج مقاطع الترجمة…" msgid "Failed to load extracted catalog." msgstr "فشل تحميل الكتالوج المُستخرَج." msgid "Merging differences…" msgstr "جاري دمج الاختلافات…" #, c-format msgid "“%s” is not a valid POT file." msgstr "الملفّ ”%s“ ليس ملفّ POT صالح." #, c-format msgid "%i line of file “%s” was not loaded correctly." msgid_plural "%i lines of file “%s” were not loaded correctly." msgstr[0] "%i سطر ملف ““%s”” لم يتم تحميله بشكل صحيح." msgstr[1] "%i سطر الملف ““%s”” لم يتم تحميله بشكل صحيح." msgstr[2] "%i سطر الملف ““%s”” لم يتم تحميله بشكل صحيح." msgstr[3] "%i سطر الملف ““%s”” لم يتم تحميله بشكل صحيح." msgstr[4] "%i سطر الملف ““%s”” لم يتم تحميله بشكل صحيح." msgstr[5] "%i آسطر الملف ““%s”” لم يتم تحميله بشكل صحيح." #, c-format msgid "Line %d of file “%s” is corrupted (not valid %s data)." msgstr "السطر %d من الملف “%s” معطوب (بيانات %s غير صالحة)." #, c-format msgid "Malformed header: “%s”" msgstr "التّرويسة فاسدة: ”%s“" msgid "" "Broken catalog file: singular form msgstr used together with msgid_plural" msgstr "ملفّ الكتالوج معطوب: استُخدمت صيغة المفرد msgstr مع msgid_plural" msgid "Broken catalog file: plural form msgstr used without msgid_plural" msgstr "ملفّ الكتالوج معطوب: استُخدمت صيغة الجمع msgstr دون msgid_plural" msgid "" "There were errors when loading the catalog. Some data may be missing or " "corrupted as the result." msgstr "" "حدثت أخطاء عند تحميل الكتالوج. قد تكون بعض البيانات ناقصة أو تالفة نتيجة إلى " "ذلك." #, c-format msgid "Couldn’t load file %s, it is probably corrupted." msgstr "تعذّر تحميل الملفّ %s، قد يكون فاسدًا." #, c-format msgid "" "File “%s” is read-only and cannot be saved.\n" "Please save it under different name." msgstr "" "الملفّ ”%s“ للقراءة فقط ولا يمكن حفظه.\n" "رجاء احفظه باسم مختلف." #, c-format msgid "Couldn’t save file %s." msgstr "تعذّر حفظ الملفّ %s." msgid "" "There was a problem formatting the file nicely (but it was saved all right)." msgstr "حدثت مشكلة أثناء تنسيق الملفّ تنسيقًا جميلًا (لكنّه حُفِظ حفظًا صحيحًا)." #, c-format msgid "" "The catalog couldn’t be saved in “%s” charset as specified in catalog " "settings.\n" "\n" "It was saved in UTF-8 instead and the setting was modified accordingly." msgstr "" "تعذّر حفظ الكتالوج بطقم المحارف ”%s“ كما هو محدّد في إعدادات الكتالوج.\n" "\n" "حُفِظ الملفّ بترميز UTF-8 بدل ذلك وعُدّل الإعداد وفقًا لذلك." msgid "Error saving catalog" msgstr "خطأ عند حفظ الكتالوج" msgid "PO Translation Files" msgstr "ملفّات PO ترجميّة" msgid "POT Translation Templates" msgstr "ملفّات POT قالبيّة" msgid "All Translation Files" msgstr "كلّ ملفّات التّرجمة" msgid "(Use default language)" msgstr "(استخدم اللغة الافتراضيّة)" msgid "Select your preferred language" msgstr "اختر لغتك المفضّلة" msgid "Language selection" msgstr "حدّد اللّغة" msgid "You must restart Poedit for this change to take effect." msgstr "عليك إعادة تشغيل Poedit لتطبيق التّعديلات." msgid "Syncing" msgstr "يزامن" #. TRANSLATORS: %s is a cloud destination, e.g. "Crowdin" or ftp.wordpress.com etc. #, c-format msgid "Syncing with %s…" msgstr "يزامن مع %s…" #. TRANSLATORS: %s is a cloud destination, e.g. "Crowdin" or ftp.wordpress.com etc. #, c-format msgid "Syncing with %s failed." msgstr "فشلت المزامنة مع %s." msgid "Syncing error" msgstr "خطأ في المزامنة" msgid "Downloading translations is disabled in this project." msgstr "عُطِّل تنزيل التّرجمات لهذا المشروع." msgid "Not authorized, please sign in again." msgstr "غير مستوثق، رجاء لِج ثانية." msgid "" "Crowdin is an online localization management platform and collaborative " "translation tool. Poedit can seamlessly sync PO files managed at Crowdin." msgstr "" "«كراودِن» هي منصّة إلكترونيّة لإدارة التّرجمات وأداة ترجمة تعاونيّة. يمكن ل‍Poedit " "مزامنة ملفّات PO المُدارة في «كراودِن» بسهولة." msgid "Sign In" msgstr "لِج" msgid "Sign in" msgstr "لِج" msgid "Sign Out" msgstr "اخرج" msgid "Sign out" msgstr "اخرج" msgid "Waiting for authentication…" msgstr "ينتظر الاستيثاق…" msgid "Updating user information…" msgstr "يحدّث معلومات المستخدم…" msgid "Signed in as:" msgstr "والج كَ‍:" msgid "Learn More About Crowdin" msgstr "اطّلع على المزيد عن «كراودِن»" msgid "Learn more about Crowdin" msgstr "اطّلع على المزيد عن «كراودِن»" msgid "Sign in to Crowdin" msgstr "لِج إلى «كراودِن»" msgid "Open Crowdin translation" msgstr "افتح ترجمة «كراودِن»" msgid "Project:" msgstr "المشروع:" msgid "Language:" msgstr "اللّغة:" msgid "File:" msgstr "الملفّ:" msgid "No translation projects listed in your Crowdin account." msgstr "لا مشاريع ترجمة موجودة في حسابك على «كراودِن»." msgid "This project has no files that can be translated in Poedit." msgstr "ليس في هذا المشروع ملفّات يمكن ترجمتها في Poedit." msgid "This file can only be edited in Crowdin’s web interface." msgstr "يمكن تحرير هذا الملفّ فقط في واجهة «كراودِن» على الوبّ." msgid "Downloading latest translations…" msgstr "ينزّل أحدث التّرجمات…" msgid "Syncing with Crowdin failed." msgstr "فشلت المزامنة مع «كراودِن»." msgid "Crowdin error" msgstr "خطأ «كراودِن»" msgid "Uploading translations…" msgstr "يرفع التّرجمات…" msgid "&Copy" msgstr "ا&نسخ" msgid "Learn more" msgstr "اطّلع على المزيد" msgid "Learn More" msgstr "اطّلع على المزيد" msgid "&Help" msgstr "م&ساعدة" msgid "MO files can’t be directly edited in Poedit." msgstr "لا يمكن تحرير ملفّات MO مباشرةً في «محرِّر Po»." msgid "Error opening file" msgstr "خطأ في فتح الملفّ" msgid "" "Please open and edit the corresponding PO file instead. When you save it, " "the MO file will be updated as well." msgstr "" "رجاء افتح ملفّ PO المقابل وحرّره عوض ذلك. عندما تحفظه، سيُحدَّث ملفّ MO كذلك." msgid "don’t delete temporary files (for debugging)" msgstr "لا تحذف الملفّات المؤقّتة (للتّنقيح)" msgid "handle a poedit:// URI" msgstr "تعامل مع معرّف poedit://‎" msgid "go to item at given line number" msgstr "انتقل إلى العنصر في رقم السطر المعين" msgid "Failed to communicate with Poedit process." msgstr "فشل الاتّصال مع عمليّة Poedit." #, c-format msgid "Unhandled exception occurred: %s" msgstr "حدث خطأ لا يمكن التّعامل معه: %s" msgid "Open catalog" msgstr "افتح كتالوجًا" #, c-format msgid "File “%s” doesn’t exist." msgstr "الملفّ ”%s“ غير موجود." msgid "Poedit is an easy to use translations editor." msgstr "«محرِّر Po» هو محرّر ترجمات سهل الاستخدام." msgid "Catalogs Manager" msgstr "مدير الكتالوجات" msgid "Check for Updates…" msgstr "التمس التّحديثات…" msgid "&Edit" msgstr "ت&حرير" msgid "Undo" msgstr "تراجع" msgid "Redo" msgstr "أعد" msgid "Paste and Match Style" msgstr "ألصق النّمط وطابقه" msgid "Delete" msgstr "احذف" msgid "Spelling and Grammar" msgstr "الإملاء والنّحو" msgid "Show Spelling and Grammar" msgstr "أظهر الإملاء والنّحو" msgid "Check Document Now" msgstr "دقّق المستند الآن" msgid "Check Spelling While Typing" msgstr "دقّق الإملاء أثناء الكتابة" msgid "Check Grammar With Spelling" msgstr "دقّق النّحو مع الإملاء" msgid "Correct Spelling Automatically" msgstr "صحّح الإملاء آليًّا" msgid "Substitutions" msgstr "الاستبدالات" msgid "Show Substitutions" msgstr "أظهر الاستبدالات" msgid "Smart Copy/Paste" msgstr "نسخ/لصق ذكيّ" msgid "Smart Quotes" msgstr "علامات اقتباس ذكيّة" msgid "Smart Dashes" msgstr "شُرَط ذكيّة" msgid "Smart Links" msgstr "روابط ذكيّة" msgid "Text Replacement" msgstr "استبدال النّصّ" msgid "Transformations" msgstr "التّحويلات" msgid "Make Upper Case" msgstr "اجعلها بحالة أحرف كبيرة" msgid "Make Lower Case" msgstr "اجعلها بحالة أحرف صغيرة" msgid "Capitalize" msgstr "كبّر الحروف" msgid "Speech" msgstr "النّطق" msgid "Start Speaking" msgstr "ابدأ النّطق" msgid "Stop Speaking" msgstr "أوقف النّطق" msgid "&View" msgstr "من&ظور" msgid "Enter Full Screen" msgstr "ادخل ملء الشّاشة" msgid "Window" msgstr "نافذة" msgid "Minimize" msgstr "صغّر" msgid "Zoom" msgstr "قرّب" msgid "Bring All to Front" msgstr "اجلب الكلّ إلى الأمام" #. TRANSLATORS:File kind displayed in Finder/Explorer msgid "PO Translation" msgstr "ترجمة PO" msgid "The file cannot be opened." msgstr "تعذّر فتح الملفّ." msgid "Invalid file" msgstr "الملفّ غير صالح" msgid "" "The file may be either corrupted or in a format not recognized by Poedit." msgstr "لربّما يكون الملفّ تالفًا أو بنسق لا يفهمه Poedit." msgid "You can’t drop more than one file on Poedit window." msgstr "لا يمكنك إسقاط أكثر من ملف واحد في Poedit." #, c-format msgid "File “%s” is not a message catalog." msgstr "الملفّ ”%s“ ليس كتالوج رسائل." msgid "Poedit" msgstr "محرّر Po" msgid "&File" msgstr "&ملفّ" msgid "&Go" msgstr "انت&قال" #. TRANSLATORS: %s is language name in its basic form (as you #. would see e.g. in a list of supported languages). You may need #. to rephrase it, e.g. to an equivalent of "for language %s". #, c-format msgid "" "Spellchecking is disabled, because the dictionary for %s isn’t installed." msgstr "تدقيق الإملاء معطّل لأنّ قاموس %s غير مثبّت." msgid "Install" msgstr "ثبّت" msgid "Catalog modified. Do you want to save changes?" msgstr "عُدّل الكتالوج. أتريد حفظ التّعديلات؟" msgid "Save changes" msgstr "احفظ التّعديلات" msgid "Your changes will be lost if you don’t save them." msgstr "ستفقد تعديلاتك إن لم تحفظها." msgid "Save" msgstr "احفظ" msgid "Don’t save" msgstr "لا تحفظ" msgid "Don’t Save" msgstr "لا تحفظ" msgid "Save as…" msgstr "احفظ ك‍…" msgid "Compile to…" msgstr "صرّف إلى…" msgid "Compiled Translation Files" msgstr "ملفّات ترجمة مصرّفة" msgid "Export as…" msgstr "صدّر ك‍…" msgid "HTML Files" msgstr "ملفّات HTML" msgid "Open catalog template" msgstr "افتح قالب كتالوج" msgid "Source code not available." msgstr "الكود المصدريّ غير متوفّر." msgid "Updating failed" msgstr "فشل التّحديث" msgid "" "Translations couldn’t be updated from the source code, because no code was " "found in the location specified in the catalog’s Properties." msgstr "" "تعذّر تحديث التّرجمات من الكود المصدريّ بسبب عدم العثور على كود المكان المحدّد " "في تفضيلات الكتالوج." msgid "Entries in the catalog are probably incorrect." msgstr "قد تكون المدخلات في الكتالوج غير صالحة." msgid "Updating the catalog failed. Click on 'Details >>' for details." msgstr "فشل تحديث الكتالوج. انقر ’التّفاصيل >>‘ للتّفاصيل." #, c-format msgid "%d issue with the translation found." msgid_plural "%d issues with the translation found." msgstr[0] "لم يُعثر على مشاكل مع التّرجمات." msgstr[1] "عُثر على مشكلة واحدة مع التّرجمات." msgstr[2] "عُثر على مشكلتين مع التّرجمات." msgstr[3] "عُثر على %d مشاكل مع التّرجمات." msgstr[4] "عُثر على %d مشكلة مع التّرجمات." msgstr[5] "عُثر على %d مشكلة مع التّرجمات." msgid "Validation results" msgstr "نتائج الفحص" msgid "" "Entries with errors were marked in red in the list. Details of the error " "will be shown when you select such an entry." msgstr "" "المدخلات بأخطاء عُلّمت بالأحمر في القائمة. ستظهر تفاصيل الخطأ عندما تختار " "مدخلة ما." msgid "The file was saved safely." msgstr "حُفظ الملفّ حفظًا آمنًا." msgid "" "The file was saved safely and compiled into the MO format, but it will " "probably not work correctly." msgstr "حُفظ الملفّ حفظًا آمنًا وصُرّف إلى نسق MO، لكنّه قد لا يعمل عملًا صحيحًا." msgid "" "The file was saved safely, but it cannot be compiled into the MO format and " "used." msgstr "حُفظ الملفّ حفظًا آمنًا، لكن فشل تصريفه إلى نسق MO واستخدامه." msgid "" "The file was compiled into the MO format, but it will probably not work " "correctly." msgstr "صُرّف الملفّ إلى نسق MO لكنّ ربما لن يعمل عملًا صحيحًا." msgid "The file cannot be compiled into the MO format and used." msgstr "تعذّر تصريف الملفّ إلى نسق MO فلا يمكن استخدامه." msgid "No problems with the translation found." msgstr "لم يُعثر على مشاكل مع التّرجمة." #, c-format msgid "The translation is ready for use, but %d entry is not translated yet." msgid_plural "" "The translation is ready for use, but %d entries are not translated yet." msgstr[0] "التّرجمة جاهزة لاستخدامها، ولا توجد مدخلات بحاجة إلى ترجمة." msgstr[1] "التّرجمة جاهزة لاستخدامها، لكن توجد مدخلة واحدة بحاجة إلى ترجمة." msgstr[2] "التّرجمة جاهزة لاستخدامها، لكن توجد مدخلتين بحاجة إلى الترجمة." msgstr[3] "التّرجمة جاهزة لاستخدامها، لكن توجد %d مدخلات بحاجة إلى ترجمة." msgstr[4] "التّرجمة جاهزة لاستخدامها، لكن توجد %d مدخلة بحاجة إلى ترجمة." msgstr[5] "التّرجمة جاهزة لاستخدامها، لكن توجد %d مدخلة بحاجة إلى ترجمة." msgid "The translation is ready for use." msgstr "التّرجمة جاهزة لاستخدامها." #, c-format msgid "Poedit automatically fixed invalid content in the file “%s”." msgstr "لقد أصلح Poedit محتوى غير صالح تلقائيا في الملف ”%s“." msgid "" "The file contained duplicate items, which is not allowed in PO files and " "would prevent the file from being used. Poedit fixed the issue, but you " "should review translations of any items marked as needing work and correct " "them if necessary." msgstr "" "يحوي الملفّ عناصر مكرّرة وذلك غير مسموح في ملفّات PO وسيمنع استخدام الملفّ. أصلح " "Poedit المشكلة، ولكن عليك مراجعة ترجمات العناصر المعلّمة ك‍”تحتاج عملًا“ " "وتصحيحها إن لزم." msgid "Language of the translation isn’t set." msgstr "لغة التّرجمة لم تُضبط." msgid "Set Language" msgstr "اضبط اللغة" msgid "Set language" msgstr "اضبط اللغة" #. TRANSLATORS: This is shown underneath "Language of the translation isn't set (or ...is the same as source language)." msgid "" "Suggestions are not available if the translation language is not set " "correctly. Other features, such as plural forms, may be affected as well." msgstr "" "الاقتراحات لا تتوفّر إن لم تضبط لغة التّرجمة ضبطًا صحيحًا. الميزات الأخرى (كصيغ " "المعدود) قد تتأثّر أيضًا." msgid "Language of the translation is the same as source language." msgstr "لغة التّرجمة نفسها لغة المصدر." msgid "Fix Language" msgstr "أصلح اللغة" msgid "Fix language" msgstr "أصلح اللغة" msgid "" "This catalog has entries with plural forms, but doesn’t have Plural-Forms " "header configured." msgstr "يحوي هذا الكتالوج مدخلات بصيغ معدود، لكنّه لا يحوي ترويسة مضبوطة." msgid "" "Entries in this catalog have different plural forms count from what " "catalog’s Plural-Forms header says" msgstr "" "المدخلات في هذا الكتالوج لها صيغ معدود مختلفة عمّا تقوله ترويسة صيغ جموع " "الكتالوج" msgid "Required header Plural-Forms is missing." msgstr "ترويسة صيغ المعدود المطلوبة مفقودة." #, c-format msgid "Syntax error in Plural-Forms header (\"%s\")." msgstr "خطأ صياغيّ في ترويسة صيغ المعدود (”%s“)." msgid "Fix the Header" msgstr "أصلح التّرويسة" msgid "Fix the header" msgstr "أصلح التّرويسة" #. TRANSLATORS: %s is language name in its basic form (as you #. would see e.g. in a list of supported languages). You may need #. to rephrase it, e.g. to an equivalent of "for language %s". #, c-format msgid "Plural forms expression used by the catalog is unusual for %s." msgstr "تعبير صيغ المعدود الذي يستخدمه الكتالوج ليس هو الصّحيح للغة %s." #. TRANSLATORS: A verb, shown as action button with ""Plural forms expression used by the catalog is unusual for %s.")" msgid "Review" msgstr "راجع" #, c-format msgid "Error loading message catalog file “%s”." msgstr "خطأ في تحميل ملفّ كتالوج الرّسائل ”%s“." #, c-format msgid "Translated: %d of %d (%d %%)" msgstr "المُترجَمة: %d من %d ‏(%d %%)" #, c-format msgid "Remaining: %d" msgstr "المتبقّي: %d" #, c-format msgid "%d error" msgid_plural "%d errors" msgstr[0] "لا أخطاء" msgstr[1] "خطأ واحد" msgstr[2] "خطآن" msgstr[3] "%d أخطاء" msgstr[4] "%d خطأ" msgstr[5] "%d خطأ" #, c-format msgid "%d entry" msgid_plural "%d entries" msgstr[0] "لا مدخلات" msgstr[1] "مدخلة واحدة" msgstr[2] "مدخلتان" msgstr[3] "%d مدخلات" msgstr[4] "%d مدخلة" msgstr[5] "%d مدخلة" msgid " (unsaved)" msgstr " (غير محفوظ)" msgid " (modified)" msgstr "(معدّل)" #, c-format msgid "Failed to update translation memory: %s" msgstr "فشل تحديث ذاكرة التّرجمة: %s" msgid "Purge deleted translations" msgstr "نظّف التّرجمات المحذوفة" msgid "Do you want to remove all translations that are no longer used?" msgstr "أتريد إزالة كلّ التّرجمات غير المستخدمة؟" msgid "" "If you continue with purging, all translations marked as deleted will be " "permanently removed. You will have to translate them again if they are added " "back in the future." msgstr "" "إن تابعت مع التّنظيف، ستُزال كلّ التّرجمات المعلّمة بِ‍”محذوفة“ نهائيًّا. ستستطيع " "ترجمتها مجدّدًا إن أُضيفت في المستقبل." msgid "Keep" msgstr "أبقها" msgid "Purge" msgstr "نظّف" msgid "Copy from source text" msgstr "انسخ من النّصّ المصدر" msgid "Copy from Source Text" msgstr "انسخ من النّصّ المصدر" #. TRANSLATORS: This is the key shortcut used in menus on Windows, some languages call them differently #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Ctrl+" msgstr "Ctrl+" msgid "Clear translation" msgstr "امسح التّرجمة" msgid "Clear Translation" msgstr "امسح التّرجمة" msgid "Edit comment" msgstr "حرّر التّعليق" msgid "Edit Comment" msgstr "حرّر التّعليق" msgid "References:" msgstr "المراجع:" msgid "&Bookmarks" msgstr "ال&علامات" #. TRANSLATORS: This is the key shortcut used in menus on Windows, some languages call them differently #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Alt+" msgstr "Alt+" #, c-format msgid "Set bookmark %i" msgstr "اضبط العلامة %i" #, c-format msgid "Go to bookmark %i" msgstr "انتقل إلى العلامة %i" #, c-format msgid "Set Bookmark %i" msgstr "اضبط العلامة %i" #, c-format msgid "Go to Bookmark %i" msgstr "انتقل إلى العلامة %i" msgid "Hide Sidebar" msgstr "أخفِ الشّريط الجانبيّ" msgid "Show Sidebar" msgstr "أظهر الشّريط الجانبيّ" msgid "Hide Status Bar" msgstr "أخفِ شريط الحالة" msgid "Show Status Bar" msgstr "أظهر شريط الحالة" msgid "Source text:" msgstr "النّصّ المصدر:" msgid "Singular:" msgstr "المفرد:" msgid "Plural:" msgstr "الجمع:" msgid "Translation:" msgstr "التّرجمة:" msgid "Pre-translated" msgstr "تُرجمت مسبقًا" msgid "Needs Work" msgstr "تحتاج عملًا" #. TRANSLATORS: This indicates that the string's translation isn't final #. and has known problems. For example, it might be machine translated or #. fuzzy matched from an older string. The translation should be short and #. convey this. If it's problematic to translate it, "Needs review" is #. acceptable substitute, but note that the meaning is subtly different: #. "needs review" implies that somebody else should review the string after #. I am done with it (i.e. consider it good), while "needs work" implies I #. need to return to it and finish the translation. msgid "Needs work" msgstr "تحتاج عملًا" msgid "" "POT files are only templates and don’t contain any translations themselves.\n" "To make a translation, create a new PO file based on the template." msgstr "" "ملفّات POT ما هي إلّا قوالب لا تحوي ترجمات.\n" "لبدء بترجمة، أنشئ ملفّ PO مبنيّ على القالب." msgid "Create New Translation" msgstr "أنشئ ترجمة جديدة" msgid "Create new translation" msgstr "أنشئ ترجمة جديدة" msgid "Everything" msgstr "كلّ شيء" #, c-format msgid "Form %i" msgstr "الصّيغة %i" msgid "Singular" msgstr "المفرد" msgid "Zero" msgstr "صفر" msgid "One" msgstr "واحد" msgid "Two" msgstr "إثنان" msgid "Plural" msgstr "الجمع" msgid "Other" msgstr "أخرى" #, c-format msgid "%s Format" msgstr "نسق %s" #. TRANSLATORS: %s is replaced with language name, e.g. "PHP" or "C", so "PHP Format" etc." #, c-format msgid "%s format" msgstr "نسق %s" msgid "Source text" msgstr "النصّ المصدر" #, c-format msgid "Translation — %s" msgstr "التّرجمة — %s" msgid "ID" msgstr "المعرّف" #, c-format msgid "Source text — %s" msgstr "النّصّ المصدر — %s" msgid "unknown language" msgstr "لغة مجهولة" #, c-format msgid "Failed command: %s" msgstr "فشل الأمر: %s" msgid "Failed to merge gettext catalogs." msgstr "فشل دمج كاتالوجات «غِت‌تكست»." msgid "Source file" msgstr "الملفّ المصدر" msgid "Source file occurrence:" msgstr "حدوثات الملفّ المصدر:" msgid "Open in Editor" msgstr "افتح في المحرّر" msgid "Open in editor" msgstr "افتح في المحرّر" msgid "No references for the selected item." msgstr "لا مراجع للعنصر المحدّد." #, c-format msgid "Error opening file %s!" msgstr "خطأ في فتح الملفّ %s!" msgid "Find" msgstr "ابحث" msgid "Replace" msgstr "استبدل" #. TRANSLATORS: Expander in Find window for additional options (case sensitive etc.) msgid "Options" msgstr "خيارات" msgid "Ignore case" msgstr "تجاهل حالة الأحرف" msgid "Wrap around" msgstr "لفّ حول" msgid "Whole words only" msgstr "كامل الكلمات فقط" msgid "Find in source texts" msgstr "ابحث في نصوص المصدر" msgid "Find in translations" msgstr "ابحث في التّرجمات" msgid "Find in comments" msgstr "ابحث في التّعليقات" msgid "Close" msgstr "أغلق" msgid "Replace &All" msgstr "استبدل ال&كلّ" msgid "Replace &all" msgstr "استبدل ال&كلّ" msgid "&Replace" msgstr "ا&ستبدل" msgid "< &Previous" msgstr "< ال&سّابقة" msgid "&Next >" msgstr "ال&تّالية >" msgid "String to find" msgstr "النّص للبحث عنه" msgid "Replacement string" msgstr "نصّ الاستبدال" #, c-format msgid "Cannot execute program: %s" msgstr "تعذّر تنفيذ البرنامج: %s" msgid "Language Code or Name (e.g. en_GB)" msgstr "رمز اللغة أو اسمها (مثلًا en_GB)" msgid "Translation Language" msgstr "لغة التّرجمة" msgid "Language of the translation:" msgstr "لغة التّرجمة:" msgid "Poedit - Catalogs manager" msgstr "«محرِّر Po» - مدير الكتالوجات" msgid "Catalog" msgstr "الكتالوج" msgid "Total" msgstr "المجموع" msgid "Untrans" msgstr "غير المترجمة" msgid "Errors" msgstr "أخطاء" msgid "Last modified" msgstr "آخر تعديل" msgid "Select directory" msgstr "اختر دليلًا" msgid "Directories:" msgstr "الأدلّة:" msgid "" msgstr "<غير معنون>" msgid "Do you want to delete the project?" msgstr "أتريد حذف المشروع؟" msgid "Confirmation" msgstr "أكّد" msgid "" "Do you really want to do mass update of\n" "all catalogs in this project?" msgstr "" "أمتأكّد من عمل تحديث شامل\n" "لكلّ الكتالوجات في هذا المشروع؟" msgid "Information about the translator" msgstr "معلومات حول المترجم" msgid "Name:" msgstr "الاسم:" msgid "Your Name" msgstr "اسمك" msgid "Email:" msgstr "البريد الإلكترونيّ:" msgid "your_email@example.com" msgstr "your_email@example.com" msgid "" "Your name and email address are only used to set the Last-Translator header " "of GNU gettext files." msgstr "" "يُستخدم اسمك وبريدك الإلكترونيّ فقط لضبط ترويسة ”آخر مترجم“ لملفّات «غنو " "غِت‌تكست»." msgid "Editing" msgstr "التّحرير" msgid "Automatically compile MO file when saving" msgstr "صرّف آليًّا ملف ‎.mo عند الحفظ" msgid "Show summary after catalog update" msgstr "أظهر ملخّصًا بعد تحديث الكتالوج" msgid "Check spelling" msgstr "دقّق الإملاء" msgid "Always change focus to text input field" msgstr "غيّر دائمًا التّركيز إلى حقل إدخال النصّ" msgid "" "Never let the list of strings take focus. If enabled, you must use Ctrl-" "arrows for keyboard navigation but you can also type text immediately, " "without having to press Tab to change focus." msgstr "" "لا تدع قائمة السلاسل تأخذ التّركيز أبدًا. إن فُعّل، عليك استخدام مفتاح Ctrl مع " "الأسهم للتّنقّل عبر لوحة المفاتيح. يمكنك هكذا طباعة النصّ مباشرةً دون الحاجة إلى " "ضغط مفتاح Tab لتغيير التّركيز." msgid "Appearance" msgstr "المظهر" msgid "Use custom list font:" msgstr "استخدم خطّ قوائم مخصّص:" msgid "Use custom text fields font:" msgstr "استخدم خطّ حقول النّصوص مخصّص:" msgid "Change UI language" msgstr "غيّر لغة الواجهة" #. TRANSLATORS: This is a note appended to "Check spelling" when running on older Windows versions msgid "(requires Windows 8 or newer)" msgstr "(يتطلّب «وندوز» 8 وأحدث)" msgid "General" msgstr "عامّ" msgid "Use translation memory" msgstr "استخدم ذاكرة التّرجمة" msgid "Learn From Files…" msgstr "تعلّم من الملفّات…" msgid "Learn from files…" msgstr "تعلّم من الملفّات…" #. TRANSLATORS: This is a button that deletes everything in the translation memory (i.e. clears/resets it). msgid "Reset" msgstr "صفّر" #. TRANSLATORS: Followed by "match translations within the file" or "pre-translate from TM" msgid "When updating from sources" msgstr "عند التّحديث من المصادر" #. TRANSLATORS: Preceded by "When updating from sources" msgid "fuzzy match within the file" msgstr "مطابقة غبشة داخل الملفّ" #. TRANSLATORS: Preceded by "When updating from sources" msgid "pre-translate from TM" msgstr "ترجم مسبقًا من ذاكرة التّرجمة" msgid "" "Poedit can attempt to fill in new entries from only previous translations in " "the file or from your entire translation memory. Using the TM won’t be very " "effective if it’s near-empty, but it will get better as you add more " "translations to it." msgstr "" "يمكن ل‍«محرِّر Po» محاولة ملء المدخلات الجديدة فقط من التّرجمات السّابقة في الملفّ " "أو من ذاكرة التّرجمة كلّها. استخدام ذاكرة التّرجمة لن يكون فعّالًا جديًّا إن كانت " "شبه فارغة، ولكنّها ستصبح أفضل متى ما أضف ترجمات أخرى إليها." msgid "Stored translations:" msgstr "التّرجمات المخزّنة:" msgid "Database size on disk:" msgstr "حجم قاعدة البيانات في القرص:" msgid "Select translation files to import" msgstr "اختر ملفات التّرجمة لاستيرادها" msgid "Translation Memory" msgstr "ذاكرة التّرجمة" msgid "Importing translations…" msgstr "يستورد التّرجمات…" msgid "Finalizing…" msgstr "جاري الإنهاء…" msgid "Reset translation memory" msgstr "صفّر ذاكرة الترجمة" msgid "Are you sure you want to reset the translation memory?" msgstr "أمتأكّد من تصفير ذاكرة التّرجمة؟" msgid "" "Resetting the translation memory will irrevocably delete all stored " "translations from it. You can’t undo this operation." msgstr "" "تصفير ذاكرة الترجمة سيحذف كلّ التّرجمات المخزّنة منها إلى الأبد. لا عودة عن هذه " "العمليّة." msgid "Cancel" msgstr "ألغِ" #. TRANSLATORS: This is abbreviation of "Translation Memory" used in Preferences on macOS. #. Long text looks weird there, too short (like TM) too, but less so. "General" is about ideal #. length there. msgid "TM" msgstr "TM" msgid "" "Source code extractors are used to find translatable strings in the source " "code files and extract them so that they can be translated." msgstr "" "تُستخدم مستخرجات الكود المصدريّ للبحث عن السّلاسل القابلة للتّرجمة في ملفّات " "الكود المصدريّ واستخراجها ليمكن ترجمتها." msgid "Custom Extractors:" msgstr "مستخرجات مخصّصة:" msgid "Custom extractors:" msgstr "مستخرجات مخصّصة:" msgid "Edit…" msgstr "تحرير…" msgid "GNU gettext" msgstr "غنو غِت‌‌تكست" msgid "" "Supports all programming languages recognized by GNU gettext tools (PHP, C/C+" "+, C#, Perl, Python, Java, JavaScript and others)." msgstr "" "يدعم كلّ لغات البرمجة التي تتعرّف عليها أدوات غنو ‌غِت‌‌تكست (PHP، وسي/سي++، وسي#، " "وبيرل، وبايثون، وجافا، وجافاسكربت وغيرها)." msgid "Delete extractor" msgstr "احذف المستخرج" #, c-format msgid "Are you sure you want to delete the “%s” extractor?" msgstr "أمتأكّد من حذف مستخرج «%s»؟" msgid "Extractors" msgstr "المستخرجات" msgid "Accounts" msgstr "الحسابات" msgid "Automatically check for updates" msgstr "التمس آليًّا عن التّحديثات" msgid "Include beta versions" msgstr "ضمّن نسخ بيتا" msgid "" "Beta versions contain the latest new features and improvements, but may be a " "bit less stable." msgstr "" "نسخ بيتا تحوي المزايا الجديدة الأخيرة مع التّحسينات، لكن قد تكون أقلّ استقرارًا." msgid "Updates" msgstr "التّحديثات" msgid "" "These settings affect internal formatting of PO files. Adjust them if you " "have specific requirements e.g. because of version control." msgstr "" "تؤثّر هذه الإعدادات على تنسيق ملفّات PO الدّاخليّ. عدّلها إن أردت متطلّبات محدّدة " "كالتّحكّم بالإصدارات." msgid "Line endings:" msgstr "نهايات الأسطر:" msgid "Unix (recommended)" msgstr "يُنِكس (مستحسن)" msgid "Windows" msgstr "وندوز" #. TRANSLATORS: Followed by text control for entering number; wraps text at given width msgid "Wrap at:" msgstr "لفّ عند:" msgid "Preserve formatting of existing files" msgstr "حافظ على تنسيق الملفّات الموجودة" msgid "Advanced" msgstr "متقدّم" msgid "Pre-translating…" msgstr "يترجم مسبقًا…" #, c-format msgid "Pre-translated %u string" msgid_plural "Pre-translated %u strings" msgstr[0] "لم يُترجم أيّ مقطع مسبقًا" msgstr[1] "تُرجم مقطع واحد مسبقًا" msgstr[2] "تُرجم مقطعين مسبقًا" msgstr[3] "تُرجمت %u مقاطع مسبقًا" msgstr[4] "تُرجمت %u مقطعًا مسبقًا" msgstr[5] "تُرجمت %u مقطع مسبقًا" #. TRANSLATORS: This is a somewhat common term describing the action where #. you apply the translation memory and/or machine translation to all of the #. strings you're translating as the first step, followed by correcting, #. improving etc., i.e. actually translating the strings. This may be tricky #. to express in other languages as simply as in English, but please try to #. keep it similarly concise. Please try to avoid, if possible, describing it #. as "auto-translation" and similar, because such terminology would mislead #. some users into thinking it's all that needs to be done (spoken from #. experience). "Pre-translate" nicely expresses that it's only the step done #. *before* actual translation. msgid "Pre-translate" msgstr "ترجم مسبقًا" msgid "Only fill in exact matches" msgstr "املأ فقط المطابقات التّامّة" msgid "" "By default, inaccurate results are filled in as well and marked as needing " "work. Check this option to only include accurate matches." msgstr "" "افتراضيًّا، تُملأ النّتائج غير الدّقيقة أيضًا وتُعلّم بِ‍”تحتاج عملًا“. أشّر على هذا " "الخيار لتضمين المطابقات الدّقيقة فقط." msgid "Don’t mark exact matches as needing work" msgstr "لا تعلّم المطابقات التّامّة بِ‍”تحتاج عملًا“" msgid "" "Only enable if you trust the quality of your TM. By default, all matches " "from the TM are marked as needing work and should be reviewed before use." msgstr "" "فعّله فقط إن كنت تثق بجودة TM. افتراضيًّا، كلّ المطابقات من TM تُعلّم بِ‍”تحتاج " "عملًا“ ويجب مراجعتها قبل استخدامها." msgid "" "Pre-translation automatically finds exact or fuzzy matches for untranslated " "strings in the translation memory and fills in their translations." msgstr "" "التّرجمة مسبقًا تبحث آليًّا عن المطابقات التّامّة أو الغبشة للسّلاسل غير المترجمة، " "وذلك في ذاكرة التّرجمة لملء التّرجمات." #, c-format msgid "%d entry was pre-translated." msgid_plural "%d entries were pre-translated." msgstr[0] "لا مدخلات تُرجمت مسبقًا." msgstr[1] "تُرجمت مدخلة واحدة مسبقًا." msgstr[2] "تُرجمت مدخلتين مسبقًا." msgstr[3] "تُرجمت %d مدخلات مسبقًا." msgstr[4] "تُرجمت %d مدخلة مسبقًا." msgstr[5] "تُرجمت %d مدخلة مسبقًا." msgid "" "The translations were marked as needing work, because they may be " "inaccurate. You should review them for correctness." msgstr "" "عُلّمت التّرجمات ب‍”تحتاج عملًا“، لأنّها قد تكون غير دقيقة. عليك مراجعتها لتصحيحها." msgid "No entries could be pre-translated." msgstr "لا مدخلات يمكن ترجمتها مسبقًا." msgid "" "The TM doesn’t contain any strings similar to the content of this file. It " "is only effective for semi-automatic translations after Poedit learns enough " "from files that you translated manually." msgstr "" "لا تحوي TM أيّة سلاسة مشابهة لمحتوى الملفّ. هي فعّالة فقط للتّرجمات شبه الآليّة " "بعد أن يتعلّم Poedit كفايةً من الملفّات التي تترجمها يدويًّا." msgid "" "Drag and Drop Folders Here\n" "\n" "or use the + button" msgstr "" "اسحب وأسقط المجلّدات هنا \n" "\n" " أو استخدم زر +" msgid "" "Drag and drop folders here\n" "\n" "or use the + button" msgstr "" "اسحب وأسقط المجلّدات هنا \n" "\n" " أو استخدم زر +" msgid "Add Folders…" msgstr "أضف مجلّدات…" msgid "Add folders…" msgstr "أضف مجلّدات…" msgid "Add Files…" msgstr "أضف ملفّات…" msgid "Add files…" msgstr "أضف ملفّات…" msgid "Add Wildcard…" msgstr "أضف حرف بدل…" msgid "Add wildcard…" msgstr "أضف حرف بدل…" msgid "Paths" msgstr "المسارات" msgid "Excluded paths" msgstr "المسارات المستثناة" msgid "Advanced extraction settings" msgstr "إعدادات استخراج متقدّمة" msgid "Extract notes for translators from:" msgstr "استخرج ملاحظات المترجمين من:" msgid "Comments prefixed with:" msgstr "التعليقات المُبتدأة ب‍:" msgid "All comments" msgstr "كل التّعليقات" msgid "Additional xgettext flags:" msgstr "رايات xgettext إضافيّة:" msgid "Additional keywords" msgstr "الكلمات المفتاحيّة الإضافيّة" msgid "Name of the project the translation is for" msgstr "اسم المشروع الذي تكون التّرجمات له" msgid "Team name and email address or URL" msgstr "" msgid "e.g. nplurals=2; plural=(n > 1);" msgstr "مثلًا nplurals=2; plural=(n > 1);‎" msgid "UTF-8 (recommended)" msgstr "UTF-8 (مستحسن)" msgid "Please save the file first. This section cannot be edited until then." msgstr "رجاء احفظ الملفّ أوّلًا. لا يمكن تحرير هذا القسم حتّى ذلك الحين." msgid "Not all plural forms are translated." msgstr "لم تُترجم كلّ صيغ الجموع." msgid "The translation should start as a sentence." msgstr "يجب أن تبدأ التّرجمة كجملة." msgid "The translation should start with a lowercase character." msgstr "يجب أن تبدأ التّرجمة بحرف صغير." msgid "The translation doesn’t start with a space." msgstr "يجب ألّا تبدأ التّرجمة بمسافة." msgid "The translation starts with a space, but the source text doesn’t." msgstr "بدأت التّرجمة بمسافة، ولكنّ النّصّ المصدر لم يبدأ بها." msgid "The translation is missing a newline at the end." msgstr "ينقص التّرجمة سطرًا جديدًا في نهايتها." msgid "The translation ends with a newline, but the source text doesn’t." msgstr "انتهت التّرجمة بمسافة، ولكنّ النّصّ المصدر لم ينتهِ بها." msgid "The translation is missing a space at the end." msgstr "ينقص التّرجمة مسافة في نهايتها." msgid "The translation ends with a space, but the source text doesn’t." msgstr "انتهت التّرجمة بسطر جديد، ولكنّ النّصّ المصدر لم ينتهِ بها." #, c-format msgid "The translation should end with “%s”." msgstr "يجب أن تنتهي التّرجمة ب‍”%s“." #, c-format msgid "The translation should not end with “%s”." msgstr "يجب ألّا تنتهي التّرجمة ب‍”%s“." #, c-format msgid "The translation ends with “%s”, but the source text ends with “%s”." msgstr "" msgid "Comment:" msgstr "التّعليق:" msgid "OK" msgstr "حسنًا" msgid "C&lear" msgstr "ام&سح" msgid "Clear the comment" msgstr "امسح التّعليق" msgid "New" msgstr "جديد" msgid "Create new translations project" msgstr "أنشئ مشروع ترجمات جديد" msgid "Edit" msgstr "حرّر" msgid "Edit the project" msgstr "حرّر المشروع" msgid "Delete the project" msgstr "احذف المشروع" msgid "Update all" msgstr "حدّث الكلّ" msgid "Update all catalogs in the project" msgstr "حدّث كلّ الكتالوجات في المشروع" msgid "Edit project" msgstr "حرّر المشروع" msgid "Project name:" msgstr "اسم المشروع:" msgid "Browse" msgstr "تصفّح" msgid "Add directory to the list" msgstr "أضف الدّليل إلى القائمة" msgid "&New…" msgstr "&جديد…" msgid "New from &POT/PO file…" msgstr "ملف جديد من &POT/PO…" msgid "New From &POT/PO File…" msgstr "ملف جديد من &POT/PO…" msgid "&Open…" msgstr "&فتح…" msgid "Open Recent" msgstr "افتح الأخيرة" msgid "Open from Crowdin…" msgstr "فتح من Crowdin…" msgid "Open From Crowdin…" msgstr "فتح من Crowdin…" msgid "&Close" msgstr "أ&غلق" msgid "&Save" msgstr "ا&حفظ" msgid "Save &as…" msgstr "حفظ &باسم…" msgid "Save &As…" msgstr "حفظ &باسم…" msgid "Compile to MO…" msgstr "جمع الى MO…" msgid "E&xport as HTML…" msgstr "ت&صدير كـHTML…" msgid "Check for updates…" msgstr "تحقق من التحديثات…" msgid "&Preferences…" msgstr "&التفضيلات…" msgid "Catalogs &manager" msgstr "م&دير الكتالوجات" msgid "Catalogs &Manager" msgstr "م&دير الكتالوجات" msgid "E&xit" msgstr "أ&نهِ" msgid "Quit" msgstr "أنهِ" msgid "Copy from singular" msgstr "انسخ من الصّيغة المفردة" msgid "Copy From Singular" msgstr "انسخ من الصّيغة المفردة" msgid "Translation needs &work" msgstr "تحتاج التّرجمة &عملًا" msgid "Translation Needs &Work" msgstr "تحتاج التّرجمة &عملًا" msgid "Edit &comment" msgstr "حرّر التّ&عليق" msgid "Edit &Comment" msgstr "حرّر التّ&عليق" msgid "Suggestions" msgstr "الاقتراحات" msgid "&Find…" msgstr "&إيجاد…" msgid "Replace…" msgstr "استبدال…" msgid "Find next" msgstr "ابحث عن التّالي" msgid "Find previous" msgstr "ابحث عن السّابق" msgid "Find and Replace…" msgstr "إيجاد والاستبدال…" msgid "Find Next" msgstr "ابحث عن التّالي" msgid "Find Previous" msgstr "ابحث عن السّابق" msgid "&Preferences" msgstr "ت&فضيلات" msgid "Display entry &IDs" msgstr "اعرض م&عرّفات المدخلات" msgid "Display Entry &IDs" msgstr "اعرض م&عرّفات المدخلات" msgid "Sort by &file order" msgstr "افرز بترتيب ال&ملفّ" msgid "Sort by &File Order" msgstr "افرز بترتيب ال&ملفّ" msgid "Sort by &source" msgstr "افرز بالم&صدر" msgid "Sort by &Source" msgstr "افرز بالم&صدر" msgid "Sort by &translation" msgstr "افرز بال&تّرجمة" msgid "Sort by &Translation" msgstr "افرز بال&تّرجمة" msgid "&Group by context" msgstr "&جمّع بالسّياق" msgid "&Group By Context" msgstr "&جمّع بالسّياق" msgid "Entries with errors first" msgstr "المدخلات مع أخطاء أولا" msgid "Entries with Errors First" msgstr "المدخلات مع أخطاء أولا" msgid "&Untranslated entries first" msgstr "المدخلات &غير المترجمة أوّلًا" msgid "&Untranslated Entries First" msgstr "المدخلات &غير المترجمة أوّلًا" msgid "&Show references" msgstr "أ&ظهر المراجع" msgid "&Show References" msgstr "أ&ظهر المراجع" msgid "Show sidebar" msgstr "أظهر الشّريط الجانبيّ" msgid "Show status bar" msgstr "أظهر شريط الحالة" msgid "C&atalog" msgstr "&كتالوج" msgid "&Update from sources" msgstr "&حدّث من المصادر" msgid "&Update from Sources" msgstr "&حدّث من المصادر" msgid "Update from &POT file…" msgstr "تحديث من ملف &POT…" msgid "Update from &POT File…" msgstr "تحديث من ملف &POT…" msgid "Sync with Crowdin" msgstr "زامن مع كراودِن" msgid "Pre-&translate…" msgstr "الترجمة &المسبقة…" msgid "&Purge deleted translations" msgstr "ن&ظّف التّرجمات المحذوفة" msgid "&Purge Deleted Translations" msgstr "ن&ظّف التّرجمات المحذوفة" msgid "&Validate translations" msgstr "ت&حقّق من سلامة التّرجمات" msgid "&Validate Translations" msgstr "ت&حقّق من سلامة التّرجمات" msgid "&Properties…" msgstr "&خصائص…" msgid "&Done and next" msgstr "&تمّت وإلى التّالية" msgid "&Done and Next" msgstr "&تمّت وإلى التّالية" msgid "&Previous translation" msgstr "التّرجمة ال&سّابقة" msgid "&Previous Translation" msgstr "التّرجمة ال&سّابقة" msgid "&Next translation" msgstr "التّرجمة ال&تّالية" msgid "&Next Translation" msgstr "التّرجمة ال&تّالية" msgid "P&revious unfinished" msgstr "غير المنتهية ال&سّابقة" msgid "P&revious Unfinished" msgstr "غير المنتهية ال&سّابقة" msgid "Ne&xt unfinished" msgstr "غير المنتهية ال&تّالية" msgid "Ne&xt Unfinished" msgstr "غير المنتهية ال&تّالية" msgid "Previous plural form" msgstr "صيغة المعدود السّابقة" msgid "Previous Plural Form" msgstr "صيغة المعدود السّابقة" msgid "Next plural form" msgstr "صيغة المعدود التّالية" msgid "Next Plural Form" msgstr "صيغة المعدود التّالية" msgid "&Online help" msgstr "مساعدة &شبكيّة" msgid "&Online Help" msgstr "مساعدة &شبكيّة" msgid "&GNU gettext manual" msgstr "كتيّب &غنو غِت​تكست" msgid "&GNU gettext Manual" msgstr "كتيّب &غنو غِت​تكست" msgid "&About Poedit" msgstr "&عنْ Poedit" msgid "&About" msgstr "&عنْ" msgid "Extractor setup" msgstr "إعداد المستخرج" msgid "List of extensions separated by semicolons (e.g. *.cpp;*.h):" msgstr "قائمة الامتدادات مفصولة بفواصل منقوطة (مثلًا ‎*.cpp;*.h):" msgid "Invocation:" msgstr "الاستدعاء:" msgid "Command to extract translations:" msgstr "أمر استخراج التّرجمات:" msgid "" "This is the command used to launch the extractor.\n" "%o expands to the name of output file, %K to list\n" "of keywords, %F to list of input files,\n" "%C to charset flag (see below)." msgstr "" "يُستخدم هذا الأمر لإطلاق المستخرج.\n" "يُوسّع ‎%o إلى اسم ملفّ الخرج، و‎%K إلى\n" "قائمة الكلمات المفتاحيّة، و‎%F إلى قائمة ملفّات الدّخل،\n" "و‎%C إلى راية طقم المحارف (طالع أدناه)." msgid "An item in keywords list:" msgstr "عنصر في قائمة الكلمات المفتاحيّة:" msgid "" "This will be attached to the command line once\n" "for each keyword. %k expands to the keyword." msgstr "" "سيُرفق هذا بسطر الأمر مرّة لكلّ ملفّ دخل.\n" "يُوسّع ‎%K إلى الكلمة المفتاحيّة." msgid "An item in input files list:" msgstr "عنصر في قائمة ملفّات الدّخل:" #, c-format msgid "" "This will be attached to the command line once\n" "for each input file. %f expands to the filename." msgstr "" "سيُرفق هذا بسطر الأمر مرّة لكلّ ملفّ دخل.\n" "يُوسّع ‎%f إلى اسم الملفّ." msgid "Source code charset:" msgstr "طقم محارف الكود المصدريّ:" #, c-format msgid "" "This will be attached to the command line\n" "only if source code charset was given. %c expands to charset value." msgstr "" "سيُرفق هذا بسطر الأمر فقط إن أُعطي طقم المحارف.\n" "يُوسّع ‎%c إلى قيمة طقم المحارف." msgid "Catalog properties" msgstr "خصائص الكتالوج" msgid "Project name and version:" msgstr "اسم المشروع وإصداره:" msgid "Language team:" msgstr "فريق التّرجمة:" msgid "Plural forms:" msgstr "صيغ المعدود:" msgid "Use default rules for this language" msgstr "استخدم قواعد اللغة الافتراضيّة" msgid "Use custom expression" msgstr "استخدم تعبيرًا مخصّصًا" msgid "Learn about plural forms" msgstr "تعلّم حول صيغ المعدود" msgid "Charset:" msgstr "طقم المحارف:" msgid "Advanced Extraction Settings…" msgstr "إعدادات استخراج متقدّمة…" msgid "Advanced extraction settings…" msgstr "إعدادات استخراج متقدّمة…" msgid "Translation Properties" msgstr "خصائص التّرجمة" msgid "Translation properties" msgstr "خصائص التّرجمة" msgid "Sources Paths" msgstr "مسارات المصادر" msgid "Sources paths" msgstr "مسارات المصادر" msgid "Extract text from source files in the following directories:" msgstr "استخرج النّصوص من الملفّات المصدريّة في الأدلّة التّالية:" msgid "Base path:" msgstr "المسار الأساس:" msgid "Sources Keywords" msgstr "كلمات المصادر المفتاحيّة" msgid "Sources keywords" msgstr "كلمات المصادر المفتاحيّة" msgid "" "Use these keywords (function names) to recognize translatable strings\n" "in source files:" msgstr "" "استخدم الكلمات المفتاحيّة هذه (أسماء الدّوال) للتعرّف على\n" "السلاسل القابلة للتّرجمة في الملفات المصدريّة:" msgid "Also use default keywords for supported languages" msgstr "استخدم أيضًا الكلمات المفتاحيّة الافتراضيّة للّغات المدعومة" msgid "Learn About Gettext Keywords" msgstr "تعلّم المزيد عن كلمات «غِت‌​تكست» المفتاحيّة" msgid "Learn about gettext keywords" msgstr "تعلّم المزيد عن كلمات «غِت‌​تكست» المفتاحيّة" msgid "Update summary" msgstr "ملخص التّحديث" msgid "" "These strings were found in the sources but were not in the catalog.\n" "Poedit will add them to the catalog now." msgstr "" "عُثر على هذه السلاسل في المصادر لكنّها غير موجودة في الكتالوج.\n" "سيُضيفها «محرِّر Po» الآن إلى الكتالوج." msgid "New strings" msgstr "السلاسل الجديدة" msgid "" "These strings are no longer in the sources.\n" "Poedit will remove them from the catalog now." msgstr "" "السّلاسل لم تعد موجودة في المصادر.\n" "سيحذفها «محرِّر Po» من الكتالوج الآن." msgid "Obsolete strings" msgstr "السّلاسل البائدة" msgid "(0 new, 0 obsolete)" msgstr "(لا جديدة، لا بائدة)" msgid "Open" msgstr "افتح" msgid "Save catalog" msgstr "احفظ الكتالوج" msgid "Validate" msgstr "تحقّق من السّلامة" msgid "Check for errors in the translation" msgstr "تحقّق الأخطاء في التّرجمة" msgid "Update" msgstr "حدّث" msgid "Update catalog - synchronize it with sources" msgstr "تحديث الكتالوج - زامِنه مع المصادر" msgid "Sidebar" msgstr "الشّريط الجانبيّ" msgid "Show or hide the sidebar" msgstr "أظهر الشّريط الجانبيّ أو أخفه" #. TRANSLATORS: "Previous" as in used in the past, now replaced with newer. msgid "Previous source text:" msgstr "نصّ المصدر السابق:" msgid "" "The old source text (before it changed during an update) that the now-" "inaccurate translation corresponds to." msgstr "" "نصّ المصدر القديم (قبل أن يتغيّر أثناء التحديث) الذي تقابله التّرجمة غير " "الدّقيقة الحاليّة." msgid "Notes for translators:" msgstr "ملاحظات للمترجمين:" msgid "Add comment" msgstr "أضف تعليقًا" msgid "Add Comment" msgstr "أضف تعليقًا" msgid "Translation suggestions:" msgstr "اقتراحات التّرجمة:" #. TRANSLATORS: This is shown when no translation suggestions can be found in the TM (Windows). msgid "No matches found" msgstr "لا مطابقات" #. TRANSLATORS: This is shown when no translation suggestions can be found in the TM (macOS, Linux). msgid "No Matches Found" msgstr "لا مطابقات" msgid "This string was found in Poedit’s translation memory." msgstr "عُثر على السّلسلة في ذاكرة ترجمة «محرِّر Po»." msgid "Cannot create temporary directory." msgstr "تعذّر إنشاء الدّليل المؤقّت." msgid "Welcome to Poedit" msgstr "مرحبًا في Poedit" #. TRANSLATORS: This is version information in about dialog, "%s" will be #. version number when used #, c-format msgid "Version %s" msgstr "النّسخة %s" msgid "Edit a Translation" msgstr "حرّر ترجمة" msgid "Edit a translation" msgstr "حرّر ترجمة" msgid "Open an existing PO file and edit the translation." msgstr "افتح ملفّ PO موجود وحرّر التّرجمة." msgid "" "Take an existing PO file or POT template and create a new translation from " "it." msgstr "خُذ ملفّ PO أو قالب POT موجودين وأنشئ ترجمة منهما." msgid "Collaborate on a Translation with Others" msgstr "تعاون على التّرجمة مع الغير" msgid "Collaborate on a translation with others" msgstr "تعاون على التّرجمة مع الغير" msgid "" "Download a file from Crowdin project, translate and sync your changes back." msgstr "نزّل ملفًّا من مشروع «كراودِن»، ترجمه وزامن تعديلاتك." msgid "What is Crowdin?" msgstr "ما «كراودِن»؟" msgid "There are no translations. That’s unusual." msgstr "ليست هناك ترجمات. هذا غير طبيعيّ." msgid "" "Translatable entries aren’t added manually in the Gettext system, but are " "automatically extracted\n" "from source code. This way, they stay up to date and accurate.\n" "Translators typically use PO template files (POTs) prepared for them by the " "developer." msgstr "" "لا تتم إضافة الإدخالات القابلة للترجمة يدويا في نظام Gettext، ولكن يتم " "استخراجها تلقائيا\n" "من شفرة المصدر. وبهذه الطريقة، فإنها تبقى محدثة ودقيقة.\n" "يستخدم المترجمون عادة ملفات نماذج PO (POTs) المعدة لهم بواسطة المطور." msgid "(Learn more about GNU gettext)" msgstr "(اطّلع على المزيد عن «غنو غِت‌تكست»)" msgid "The simplest way to fill this catalog is to update it from a POT:" msgstr "الطريقة الأسهل لملء هذا الكتالوج هي بتحديثه من POT:" msgid "Update from POT" msgstr "حدّث من POT" msgid "Take translatable strings from an existing POT template." msgstr "خُذ السّلاسل التّرجميّة من قالب POT موجود." msgid "" "You can also extract translatable strings directly from the source code:" msgstr "يمكنك أيضًا استخراج السّلاسل التّرجميّة مباشرةً من الكود المصدريّ:" msgid "Extract from sources" msgstr "استخرج من المصادر" msgid "Configure source code extraction in Properties." msgstr "اضبط استخراج الكود المصدريّ في الخصائص." msgid "Sync" msgstr "زامن" msgid "Synchronize the translation with Crowdin" msgstr "زامن التّرجمة مع «كراودِن»" #. TRANSLATORS: This is titlebar of about dialog, "%s" is application name #. ("Poedit" here, but please use "%s") #, c-format msgid "About %s" msgstr "عنْ %s" #. TRANSLATORS: Title of the preferences window on Windows and Linux. "%s" is replaced with "Poedit" when running. #, c-format msgid "%s Preferences" msgstr "تفضيلات %s" #. TRANSLATORS: macOS item in app menu msgid "Services" msgstr "الخدمات" #. TRANSLATORS: macOS item in app menu, %s is replaced with "Poedit" #, c-format msgid "Hide %s" msgstr "أخفِ «%s»" #. TRANSLATORS: macOS item in app menu msgid "Hide Others" msgstr "أخفِ البقية" #. TRANSLATORS: macOS item in app menu msgid "Show All" msgstr "أظهر الكل" #. TRANSLATORS: macOS item in app menu, %s is replaced with "Poedit" #, c-format msgid "Quit %s" msgstr "أنهِ %s" #. TRANSLATORS: macOS item in app menu msgid "Preferences…" msgstr "التّفضيلات…" msgid "Preferences..." msgstr "تفضيلات..." #. TRANSLATORS: Title of a category in Windows task menu (right-click icon in taskbar) msgid "Recent" msgstr "الأخيرة" #. TRANSLATORS: Title of a category in Windows task menu (right-click icon in taskbar) msgid "Frequent" msgstr "المتكرّرة" msgid "&Apply" msgstr "&طبّق" msgid "Apply" msgstr "طبّق" msgid "&Back" msgstr "&عُد" msgid "Back" msgstr "عُد" msgid "&Cancel" msgstr "أل&غِ" msgid "&Clear" msgstr "ام&سح" msgid "Clear" msgstr "امسح" msgid "Copy" msgstr "انسخ" msgid "Cu&t" msgstr "&قصّ" msgid "Cut" msgstr "قصّ" msgid "&Delete" msgstr "ا&حذف" msgid "&Quit" msgstr "أ&نهِ" msgid "File" msgstr "ملفّ" msgid "Help" msgstr "مساعدة" msgid "&New" msgstr "&جديد" msgid "&No" msgstr "&لا" msgid "No" msgstr "لا" msgid "&OK" msgstr "&حسنًا" msgid "Open…" msgstr "افتح…" msgid "&Open..." msgstr "ا&فتح..." msgid "Open..." msgstr "افتح..." msgid "&Paste" msgstr "أ&لصق" msgid "Paste" msgstr "ألصق" msgid "Preferences" msgstr "تفضيلات" msgid "&Redo" msgstr "أ&عد" msgid "Refresh" msgstr "أنعش" msgid "&Save as" msgstr "ا&حفظ ك‍" msgid "Save as" msgstr "احفظ ك‍" msgid "Select &All" msgstr "حدّد الك&لّ" msgid "Select All" msgstr "حدّد الكلّ" msgid "&Undo" msgstr "ترا&جع" msgid "&Yes" msgstr "ن&عم" msgid "Yes" msgstr "نعم" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Shift+" msgstr "Shift+" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Enter" msgstr "Enter" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Up" msgstr "أعلى" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Down" msgstr "أسفل" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Left" msgstr "شمال" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Right" msgstr "يمين" #. TRANSLATORS: Keyboard shortcut, must correspond to translation of "Ctrl+" msgid "ctrl" msgstr "ctrl" #. TRANSLATORS: Keyboard shortcut, must correspond to translation of "Alt+" msgid "alt" msgstr "alt" #. TRANSLATORS: Keyboard shortcut, must correspond to translation of "Shift+" msgid "shift" msgstr "shift" poedit-2.0.6/locales/pt_PT.po0000664000372000037200000015274013230131554012742 00000000000000msgid "" msgstr "" "Project-Id-Version: poedit\n" "Report-Msgid-Bugs-To: help@poedit.net\n" "POT-Creation-Date: 2017-12-05 15:52+0100\n" "PO-Revision-Date: 2017-12-05 09:49-0500\n" "Last-Translator: vslavik \n" "Language-Team: Portuguese\n" "Language: pt_PT\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: crowdin.com\n" "X-Crowdin-Project: poedit\n" "X-Crowdin-Language: pt-PT\n" "X-Crowdin-File: /locales/poedit.pot\n" msgid "Hide this notification message" msgstr "Ocultar esta mensagem de notificação" msgid "Don’t Show Again" msgstr "Não mostrar novamente" msgid "Don’t show again" msgstr "Não mostrar novamente" #, c-format msgid "(New: %i, obsolete: %i)" msgstr "(Novas: %i, obsoletas: %i)" msgid "Updating catalog" msgstr "A atualizar o catálogo" msgid "Collecting source files…" msgstr "A obter os ficheiros fonte…" msgid "Extracting translatable strings…" msgstr "A extrair entradas traduzíveis…" msgid "Failed to load extracted catalog." msgstr "Não foi possível carregar o catálogo extraído." msgid "Merging differences…" msgstr "A incorporar diferenças…" #, c-format msgid "“%s” is not a valid POT file." msgstr "“%s“ não é um ficheiro POT válido." #, c-format msgid "%i line of file “%s” was not loaded correctly." msgid_plural "%i lines of file “%s” were not loaded correctly." msgstr[0] "%i linha do ficheiro “%s“ não foi carregada corretamente." msgstr[1] "%i linhas do ficheiro \"%s\" não foram carregadas corretamente." #, c-format msgid "Line %d of file “%s” is corrupted (not valid %s data)." msgstr "A linha %d do ficheiro “%s“ está danificada (dados %s inválidos)." #, c-format msgid "Malformed header: “%s”" msgstr "Cabeçalho mal formado: “%s“" msgid "" "Broken catalog file: singular form msgstr used together with msgid_plural" msgstr "" "Ficheiro danificado: usada a forma singular msgstr em conjunto com " "msgid_plural" msgid "Broken catalog file: plural form msgstr used without msgid_plural" msgstr "Ficheiro danificado: usadas formas plurais msgstr sem msgid_plural" msgid "" "There were errors when loading the catalog. Some data may be missing or " "corrupted as the result." msgstr "" "Ocorreram erros ao carregar o catálogo. Como resultado, alguns dados podem " "estar em falta ou danificados." #, c-format msgid "Couldn’t load file %s, it is probably corrupted." msgstr "" "Não foi possível carregar o ficheiro %s, provavelmente está danificado." #, c-format msgid "" "File “%s” is read-only and cannot be saved.\n" "Please save it under different name." msgstr "" "O ficheiro “%s“ é de leitura e não pode ser guardado.\n" "Por favor, guarde-o com um nome diferente." #, c-format msgid "Couldn’t save file %s." msgstr "Não foi possível guardar o ficheiro %s." msgid "" "There was a problem formatting the file nicely (but it was saved all right)." msgstr "" "Ocorreu um problema ao formatar o ficheiro (mas este foi guardado com " "sucesso)." #, c-format msgid "" "The catalog couldn’t be saved in “%s” charset as specified in catalog " "settings.\n" "\n" "It was saved in UTF-8 instead and the setting was modified accordingly." msgstr "" "Não foi possível guardar o catálogo no formato “%s“, como especificado nas " "definições do catálogo.\n" "\n" "Este foi guardado no formato UTF-8 e a definição foi alterada em " "concordância." msgid "Error saving catalog" msgstr "Erro ao guardar o catálogo" msgid "PO Translation Files" msgstr "Ficheiros de tradução PO" msgid "POT Translation Templates" msgstr "Modelos de tradução POT" msgid "All Translation Files" msgstr "Todos os ficheiros de tradução" msgid "(Use default language)" msgstr "(Utilizar idioma predefinido)" msgid "Select your preferred language" msgstr "Selecione o seu idioma preferido" msgid "Language selection" msgstr "Seleção de idioma" msgid "You must restart Poedit for this change to take effect." msgstr "Tem que reiniciar o Poedit para aplicar a alteração." msgid "Syncing" msgstr "Sincronização" #. TRANSLATORS: %s is a cloud destination, e.g. "Crowdin" or ftp.wordpress.com etc. #, c-format msgid "Syncing with %s…" msgstr "A sincronizar com %s…" #. TRANSLATORS: %s is a cloud destination, e.g. "Crowdin" or ftp.wordpress.com etc. #, c-format msgid "Syncing with %s failed." msgstr "Erro ao sincronizar com %s." msgid "Syncing error" msgstr "Erro de sincronização" msgid "Downloading translations is disabled in this project." msgstr "Este projeto desativou a descarga de traduções." msgid "Not authorized, please sign in again." msgstr "Não autorizado. Inicie novamente a sessão." msgid "" "Crowdin is an online localization management platform and collaborative " "translation tool. Poedit can seamlessly sync PO files managed at Crowdin." msgstr "" "O serviço Crowdin é uma plataforma de gestão de traduções e uma ferramenta " "de colaboração. O Poedit pode sincronizar os ficheiros PO existentes nos " "projetos Crowdin." msgid "Sign In" msgstr "Iniciar sessão" msgid "Sign in" msgstr "Iniciar sessão" msgid "Sign Out" msgstr "Terminar sessão" msgid "Sign out" msgstr "Terminar sessão" msgid "Waiting for authentication…" msgstr "A aguardar autenticação…" msgid "Updating user information…" msgstr "A atualizar informações do utilizador…" msgid "Signed in as:" msgstr "Sessão iniciada como:" msgid "Learn More About Crowdin" msgstr "Saber mais sobre o Crowdin" msgid "Learn more about Crowdin" msgstr "Saber mais sobre o Crowdin" msgid "Sign in to Crowdin" msgstr "Iniciar sessão no Crowdin" msgid "Open Crowdin translation" msgstr "Abrir tradução Crowdin" msgid "Project:" msgstr "Projeto:" msgid "Language:" msgstr "Idioma:" msgid "File:" msgstr "Ficheiro:" msgid "No translation projects listed in your Crowdin account." msgstr "Não existem projetos de tradução associados à sua conta Crowdin." msgid "This project has no files that can be translated in Poedit." msgstr "Este projeto não tem ficheiros que possam ser traduzidos com o Poedit." msgid "This file can only be edited in Crowdin’s web interface." msgstr "Este ficheiro só pode ser editado na interface web do Crowdin." msgid "Downloading latest translations…" msgstr "A descarregar traduções mais recentes..." msgid "Syncing with Crowdin failed." msgstr "Falha ao sincronizar com o Crowdin." msgid "Crowdin error" msgstr "Erro do Crowdin" msgid "Uploading translations…" msgstr "A enviar traduções…" msgid "&Copy" msgstr "&Copiar" msgid "Learn more" msgstr "Saber mais" msgid "Learn More" msgstr "Saber mais" msgid "&Help" msgstr "Aj&uda" msgid "MO files can’t be directly edited in Poedit." msgstr "Os ficheiros MO não podem ser editados com o Poedit." msgid "Error opening file" msgstr "Erro ao abrir ficheiro" msgid "" "Please open and edit the corresponding PO file instead. When you save it, " "the MO file will be updated as well." msgstr "" "Por favor abra e edite o ficheiro PO correspondente. Quando guardar o " "ficheiro PO, o ficheiro MO também será atualizado." msgid "don’t delete temporary files (for debugging)" msgstr "não apagar ficheiros temporários (depuração)" msgid "handle a poedit:// URI" msgstr "gerir um URI poedit://" msgid "go to item at given line number" msgstr "ir para o item indicado pelo número de linha" msgid "Failed to communicate with Poedit process." msgstr "Falha ao comunicar com o processo do Poedit." #, c-format msgid "Unhandled exception occurred: %s" msgstr "Ocorreu uma exceção não tratada: %s" msgid "Open catalog" msgstr "Abrir catálogo" #, c-format msgid "File “%s” doesn’t exist." msgstr "O ficheiro “%s“ não existe." msgid "Poedit is an easy to use translations editor." msgstr "O Poedit é um editor de traduções fácil de usar." msgid "Catalogs Manager" msgstr "Gestor de catálogos" msgid "Check for Updates…" msgstr "Procurar atualizações…" msgid "&Edit" msgstr "&Editar" msgid "Undo" msgstr "Desfazer" msgid "Redo" msgstr "Refazer" msgid "Paste and Match Style" msgstr "Colar com a formatação do documento" msgid "Delete" msgstr "Apagar" msgid "Spelling and Grammar" msgstr "Ortografia e gramática" msgid "Show Spelling and Grammar" msgstr "Mostrar ortografia e gramática" msgid "Check Document Now" msgstr "Analisar documento agora" msgid "Check Spelling While Typing" msgstr "Verificar ortografia ao escrever" msgid "Check Grammar With Spelling" msgstr "Verificar gramática com ortografia" msgid "Correct Spelling Automatically" msgstr "Corrigir ortografia automaticamente" msgid "Substitutions" msgstr "Substituições" msgid "Show Substitutions" msgstr "Mostrar substituições" msgid "Smart Copy/Paste" msgstr "Colar/Colar inteligente" msgid "Smart Quotes" msgstr "Aspas inteligentes" msgid "Smart Dashes" msgstr "Travessões inteligentes" msgid "Smart Links" msgstr "Ligações inteligentes" msgid "Text Replacement" msgstr "Substituição de texto" msgid "Transformations" msgstr "Transformações" msgid "Make Upper Case" msgstr "Converter em maiúsculas" msgid "Make Lower Case" msgstr "Converter em minúsculas" msgid "Capitalize" msgstr "Capitalizar" msgid "Speech" msgstr "Fala" msgid "Start Speaking" msgstr "Iniciar fala" msgid "Stop Speaking" msgstr "Parar fala" msgid "&View" msgstr "&Ver" msgid "Enter Full Screen" msgstr "Entrar no modo de ecrã completo" msgid "Window" msgstr "Janela" msgid "Minimize" msgstr "Minimizar" msgid "Zoom" msgstr "Ampliação" msgid "Bring All to Front" msgstr "Trazer para primeiro plano" #. TRANSLATORS:File kind displayed in Finder/Explorer msgid "PO Translation" msgstr "Tradução PO" msgid "The file cannot be opened." msgstr "O ficheiro não foi aberto." msgid "Invalid file" msgstr "Ficheiro inválido" msgid "" "The file may be either corrupted or in a format not recognized by Poedit." msgstr "" "O ficheiro pode estar danificado ou num formato não reconhecido pelo Poedit." msgid "You can’t drop more than one file on Poedit window." msgstr "Não pode largar mais do que um ficheiro na janela do Poedit." #, c-format msgid "File “%s” is not a message catalog." msgstr "O ficheiro “%s“ não é um catálogo." msgid "Poedit" msgstr "Poedit" msgid "&File" msgstr "&Ficheiro" msgid "&Go" msgstr "&Ir" #. TRANSLATORS: %s is language name in its basic form (as you #. would see e.g. in a list of supported languages). You may need #. to rephrase it, e.g. to an equivalent of "for language %s". #, c-format msgid "" "Spellchecking is disabled, because the dictionary for %s isn’t installed." msgstr "" "A verificação ortográfica está inativa porque o dicionário para o idioma %s " "não está instalado." msgid "Install" msgstr "Instalar" msgid "Catalog modified. Do you want to save changes?" msgstr "O catálogo foi modificado. Deseja guardar as alterações?" msgid "Save changes" msgstr "Guardar alterações" msgid "Your changes will be lost if you don’t save them." msgstr "Se não guardar as alterações, estas serão perdidas." msgid "Save" msgstr "Guardar" msgid "Don’t save" msgstr "Não guardar" msgid "Don’t Save" msgstr "Não guardar" msgid "Save as…" msgstr "Guardar como…" msgid "Compile to…" msgstr "Compilar para…" msgid "Compiled Translation Files" msgstr "Ficheiros de tradução compilados" msgid "Export as…" msgstr "Exportar como…" msgid "HTML Files" msgstr "Ficheiros HTML" msgid "Open catalog template" msgstr "Abrir modelo de catálogo" msgid "Source code not available." msgstr "O código fonte não está disponível." msgid "Updating failed" msgstr "Falha ao atualizar" msgid "" "Translations couldn’t be updated from the source code, because no code was " "found in the location specified in the catalog’s Properties." msgstr "" "As traduções não foram atualizadas a partir do código fonte porque o código " "não foi encontrado na localização definida nas propriedades do catálogo." msgid "Entries in the catalog are probably incorrect." msgstr "É possível que as entradas do catálogo estejam incorretas." msgid "Updating the catalog failed. Click on 'Details >>' for details." msgstr "" "Falha ao atualizar o catálogo. Clique em 'Detalhes >>' para saber mais." #, c-format msgid "%d issue with the translation found." msgid_plural "%d issues with the translation found." msgstr[0] "Foi encontrado %d erro na tradução." msgstr[1] "Foram encontrados %d erros na tradução." msgid "Validation results" msgstr "Resultados da validação" msgid "" "Entries with errors were marked in red in the list. Details of the error " "will be shown when you select such an entry." msgstr "" "As entradas com erros estão marcadas a vermelho. Os detalhes do erro serão " "mostrados ao selecionar a entrada correspondente." msgid "The file was saved safely." msgstr "O ficheiro foi guardado com sucesso." msgid "" "The file was saved safely and compiled into the MO format, but it will " "probably not work correctly." msgstr "" "O ficheiro foi guardado com sucesso e o ficheiro MO foi compilado. No " "entanto, é possível que não funcione corretamente." msgid "" "The file was saved safely, but it cannot be compiled into the MO format and " "used." msgstr "O ficheiro foi guardado mas o ficheiro MO não foi criado." msgid "" "The file was compiled into the MO format, but it will probably not work " "correctly." msgstr "" "O ficheiro foi compilado para o formato MO mas é provável que não funcione " "corretamente." msgid "The file cannot be compiled into the MO format and used." msgstr "O ficheiro não pode ser compilado para o formato MO." msgid "No problems with the translation found." msgstr "Não foram encontrados erros na tradução." #, c-format msgid "The translation is ready for use, but %d entry is not translated yet." msgid_plural "" "The translation is ready for use, but %d entries are not translated yet." msgstr[0] "" "A tradução pode ser utilizada mas %d entrada ainda não está traduzida." msgstr[1] "" "A tradução pode ser utilizada mas %d entradas ainda não estão traduzidas." msgid "The translation is ready for use." msgstr "A tradução está pronta para utilização." #, c-format msgid "Poedit automatically fixed invalid content in the file “%s”." msgstr "" "O Poedit corrigiu automaticamente o conteúdo inválido do ficheiro “%s“." msgid "" "The file contained duplicate items, which is not allowed in PO files and " "would prevent the file from being used. Poedit fixed the issue, but you " "should review translations of any items marked as needing work and correct " "them if necessary." msgstr "" "O ficheiro contém itens duplicados, o que não é permitido em ficheiros PO e " "que impede a utilização do ficheiro. O Poedit corrigiu este problema, mas " "você deve rever a traduções dos itens marcados como imprecisos e efetuar as " "correções necessárias." msgid "Language of the translation isn’t set." msgstr "O idioma da tradução não está definido." msgid "Set Language" msgstr "Definir idioma" msgid "Set language" msgstr "Definir idioma" #. TRANSLATORS: This is shown underneath "Language of the translation isn't set (or ...is the same as source language)." msgid "" "Suggestions are not available if the translation language is not set " "correctly. Other features, such as plural forms, may be affected as well." msgstr "" "As sugestões de tradução não estarão disponíveis se o idioma do projeto não " "estiver definido corretamente. Outras funcionalidades, como as formas " "plurais, também poderão ser afetadas." msgid "Language of the translation is the same as source language." msgstr "O idioma da tradução é igual ao idioma do texto fonte." msgid "Fix Language" msgstr "Corrigir idioma" msgid "Fix language" msgstr "Corrigir idioma" msgid "" "This catalog has entries with plural forms, but doesn’t have Plural-Forms " "header configured." msgstr "" "Este catálogo tem entradas com formas plurais, mas não tem o cabeçalho " "Plural-Forms definido." msgid "" "Entries in this catalog have different plural forms count from what " "catalog’s Plural-Forms header says" msgstr "" "As entradas deste catálogo possuem formas plurais que diferem das que estão " "definidas no cabeçalho Plural-Forms" msgid "Required header Plural-Forms is missing." msgstr "O cabeçalho Plural-Forms não existe." #, c-format msgid "Syntax error in Plural-Forms header (\"%s\")." msgstr "Erro de sintaxe no cabeçalho Plural-Forms (\"%s\")." msgid "Fix the Header" msgstr "Corrigir cabeçalho" msgid "Fix the header" msgstr "Corrigir cabeçalho" #. TRANSLATORS: %s is language name in its basic form (as you #. would see e.g. in a list of supported languages). You may need #. to rephrase it, e.g. to an equivalent of "for language %s". #, c-format msgid "Plural forms expression used by the catalog is unusual for %s." msgstr "" "A expressão de formas plurais utilizadas neste catálogo não são as que devem " "ser utilizadas pelo idioma %s." #. TRANSLATORS: A verb, shown as action button with ""Plural forms expression used by the catalog is unusual for %s.")" msgid "Review" msgstr "Rever" #, c-format msgid "Error loading message catalog file “%s”." msgstr "Erro ao carregar o ficheiro de catálogo “%s“." #, c-format msgid "Translated: %d of %d (%d %%)" msgstr "Traduzido: %d de %d (%d %%)" #, c-format msgid "Remaining: %d" msgstr "Faltam: %d" #, c-format msgid "%d error" msgid_plural "%d errors" msgstr[0] "%d erro" msgstr[1] "%d erros" #, c-format msgid "%d entry" msgid_plural "%d entries" msgstr[0] "%d entrada" msgstr[1] "%d entradas" msgid " (unsaved)" msgstr " (não guardado)" msgid " (modified)" msgstr " (modificado)" #, c-format msgid "Failed to update translation memory: %s" msgstr "Falha ao atualizar a memória de traduções: %s" msgid "Purge deleted translations" msgstr "Remover traduções eliminadas" msgid "Do you want to remove all translations that are no longer used?" msgstr "Pretende remover todas as traduções que já não são utilizadas?" msgid "" "If you continue with purging, all translations marked as deleted will be " "permanently removed. You will have to translate them again if they are added " "back in the future." msgstr "" "Se continuar, todas as traduções marcadas como apagadas serão removidas " "permanentemente. Se as entradas forem respostas, terá que as traduzir " "novamente." msgid "Keep" msgstr "Manter" msgid "Purge" msgstr "Remover" msgid "Copy from source text" msgstr "Copiar entrada original" msgid "Copy from Source Text" msgstr "Copiar entrada original" #. TRANSLATORS: This is the key shortcut used in menus on Windows, some languages call them differently #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Ctrl+" msgstr "Ctrl+" msgid "Clear translation" msgstr "Limpar tradução" msgid "Clear Translation" msgstr "Limpar tradução" msgid "Edit comment" msgstr "Editar comentário" msgid "Edit Comment" msgstr "Editar comentário" msgid "References:" msgstr "Referências:" msgid "&Bookmarks" msgstr "&Marcadores" #. TRANSLATORS: This is the key shortcut used in menus on Windows, some languages call them differently #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Alt+" msgstr "Alt+" #, c-format msgid "Set bookmark %i" msgstr "Definir marcador %i" #, c-format msgid "Go to bookmark %i" msgstr "Ir para o marcador %i" #, c-format msgid "Set Bookmark %i" msgstr "Definir marcador %i" #, c-format msgid "Go to Bookmark %i" msgstr "Ir para o marcador %i" msgid "Hide Sidebar" msgstr "Ocultar barra lateral" msgid "Show Sidebar" msgstr "Mostrar barra lateral" msgid "Hide Status Bar" msgstr "Ocultar barra de estado" msgid "Show Status Bar" msgstr "Mostrar barra de estado" msgid "Source text:" msgstr "Texto fonte:" msgid "Singular:" msgstr "Singular:" msgid "Plural:" msgstr "Plurais:" msgid "Translation:" msgstr "Tradução:" msgid "Pre-translated" msgstr "Pré-traduzida" msgid "Needs Work" msgstr "Por rever" #. TRANSLATORS: This indicates that the string's translation isn't final #. and has known problems. For example, it might be machine translated or #. fuzzy matched from an older string. The translation should be short and #. convey this. If it's problematic to translate it, "Needs review" is #. acceptable substitute, but note that the meaning is subtly different: #. "needs review" implies that somebody else should review the string after #. I am done with it (i.e. consider it good), while "needs work" implies I #. need to return to it and finish the translation. msgid "Needs work" msgstr "Por rever" msgid "" "POT files are only templates and don’t contain any translations themselves.\n" "To make a translation, create a new PO file based on the template." msgstr "" "Os ficheiros POT são apenas modelos e não possuem quaisquer traduções.\n" "Para efetuar uma tradução, crie um novo ficheiro PO baseado no modelo." msgid "Create New Translation" msgstr "Criar nova tradução" msgid "Create new translation" msgstr "Criar nova tradução" msgid "Everything" msgstr "Tudo" #, c-format msgid "Form %i" msgstr "Forma %i" msgid "Singular" msgstr "Singular" msgid "Zero" msgstr "Zero" msgid "One" msgstr "Uma" msgid "Two" msgstr "Duas" msgid "Plural" msgstr "Plurais" msgid "Other" msgstr "Outra" #, c-format msgid "%s Format" msgstr "Formato %s" #. TRANSLATORS: %s is replaced with language name, e.g. "PHP" or "C", so "PHP Format" etc." #, c-format msgid "%s format" msgstr "Formato %s" msgid "Source text" msgstr "Texto fonte" #, c-format msgid "Translation — %s" msgstr "Tradução — %s" msgid "ID" msgstr "ID" #, c-format msgid "Source text — %s" msgstr "Texto fonte - %s" msgid "unknown language" msgstr "idioma desconhecido" #, c-format msgid "Failed command: %s" msgstr "Falha do comando: %s" msgid "Failed to merge gettext catalogs." msgstr "Erro ao unir os catálogos gettex." msgid "Source file" msgstr "Ficheiro fonte" msgid "Source file occurrence:" msgstr "Ocorrência no ficheiro fonte:" msgid "Open in Editor" msgstr "Abrir no editor" msgid "Open in editor" msgstr "Abrir no editor" msgid "No references for the selected item." msgstr "Não existem referências para o item selecionado." #, c-format msgid "Error opening file %s!" msgstr "Erro ao abrir o ficheiro %s!" msgid "Find" msgstr "Localizar" msgid "Replace" msgstr "Substituir" #. TRANSLATORS: Expander in Find window for additional options (case sensitive etc.) msgid "Options" msgstr "Opções" msgid "Ignore case" msgstr "Ignorar maiúsculas/minúsculas" msgid "Wrap around" msgstr "Moldar texto" msgid "Whole words only" msgstr "Só palavras inteiras" msgid "Find in source texts" msgstr "Localizar nos textos fonte" msgid "Find in translations" msgstr "Localizar nas traduções" msgid "Find in comments" msgstr "Localizar nos comentários" msgid "Close" msgstr "Fechar" msgid "Replace &All" msgstr "Substituir t&udo" msgid "Replace &all" msgstr "Substituir t&udo" msgid "&Replace" msgstr "Substitui&r" msgid "< &Previous" msgstr "< An&terior" msgid "&Next >" msgstr "Segui&nte >" msgid "String to find" msgstr "Texto a procurar" msgid "Replacement string" msgstr "Texto de substituição" #, c-format msgid "Cannot execute program: %s" msgstr "Não foi possível executar o programa: %s" msgid "Language Code or Name (e.g. en_GB)" msgstr "Código ou nome do idioma (ex: pt)" msgid "Translation Language" msgstr "Idioma da tradução" msgid "Language of the translation:" msgstr "Idioma da tradução:" msgid "Poedit - Catalogs manager" msgstr "Poedit - Gestor de catálogos" msgid "Catalog" msgstr "Catálogo" msgid "Total" msgstr "Total" msgid "Untrans" msgstr "Por traduzir" msgid "Errors" msgstr "Erros" msgid "Last modified" msgstr "Última modificação" msgid "Select directory" msgstr "Escolha o diretório" msgid "Directories:" msgstr "Diretórios:" msgid "" msgstr "" msgid "Do you want to delete the project?" msgstr "Pretende apagar o projeto?" msgid "Confirmation" msgstr "Confirmação" msgid "" "Do you really want to do mass update of\n" "all catalogs in this project?" msgstr "" "Tem a certeza que quer mesmo atualizar\n" "todos os catálogos deste projeto?" msgid "Information about the translator" msgstr "Informações do tradutor" msgid "Name:" msgstr "Nome:" msgid "Your Name" msgstr "O seu nome" msgid "Email:" msgstr "E-mail:" msgid "your_email@example.com" msgstr "o_seu_email@exemplo.com" msgid "" "Your name and email address are only used to set the Last-Translator header " "of GNU gettext files." msgstr "" "O seu nome e endereço eletrónico só serão utilizados para definir o " "cabeçalho Last-Translator dos ficheiros GNU gettext." msgid "Editing" msgstr "Edição" msgid "Automatically compile MO file when saving" msgstr "Compilar ficheiro MO ao guardar" msgid "Show summary after catalog update" msgstr "Mostrar resumo após atualizar o catálogo" msgid "Check spelling" msgstr "Verificação ortográfica" msgid "Always change focus to text input field" msgstr "Focar sempre o campo da entrada de texto" msgid "" "Never let the list of strings take focus. If enabled, you must use Ctrl-" "arrows for keyboard navigation but you can also type text immediately, " "without having to press Tab to change focus." msgstr "" "Nunca deixar que a lista de entradas obtenha o foco. Se ativa, tem que usar " "Control+Teclas do cursor para mudar de linhas com o teclado, mas também pode " "digitar o texto imediatamente, sem ter que premir a tecla Tab para mudar de " "campo." msgid "Appearance" msgstr "Aspeto" msgid "Use custom list font:" msgstr "Utilizar tipo de letra personalizada:" msgid "Use custom text fields font:" msgstr "Utilizar tipo de letra personalizada nos campos de texto:" msgid "Change UI language" msgstr "Mudar idioma da aplicação" #. TRANSLATORS: This is a note appended to "Check spelling" when running on older Windows versions msgid "(requires Windows 8 or newer)" msgstr "(requer Windows 8 ou mais recente)" msgid "General" msgstr "Geral" msgid "Use translation memory" msgstr "Utilizar memória de tradução" msgid "Learn From Files…" msgstr "Aprender dos ficheiros…" msgid "Learn from files…" msgstr "Aprender dos ficheiros…" #. TRANSLATORS: This is a button that deletes everything in the translation memory (i.e. clears/resets it). msgid "Reset" msgstr "Repor" #. TRANSLATORS: Followed by "match translations within the file" or "pre-translate from TM" msgid "When updating from sources" msgstr "Ao atualizar das fontes" #. TRANSLATORS: Preceded by "When updating from sources" msgid "fuzzy match within the file" msgstr "preencher com ocorrências do ficheiro" #. TRANSLATORS: Preceded by "When updating from sources" msgid "pre-translate from TM" msgstr "pré-traduzir com a MT" msgid "" "Poedit can attempt to fill in new entries from only previous translations in " "the file or from your entire translation memory. Using the TM won’t be very " "effective if it’s near-empty, but it will get better as you add more " "translations to it." msgstr "" "O Poedit pode tentar preencher as novas entradas a partir das traduções " "antigas do ficheiro ou a partir da memória de traduções. A memória de " "traduções será ineficaz se estiver quase vazia, mas à medida que lhe for " "adicionando as suas traduções irá melhorar." msgid "Stored translations:" msgstr "Traduções guardadas:" msgid "Database size on disk:" msgstr "Tamanho da base de dados no disco:" msgid "Select translation files to import" msgstr "Selecione os ficheiros de tradução a importar" msgid "Translation Memory" msgstr "Memória de traduções" msgid "Importing translations…" msgstr "A importar traduções…" msgid "Finalizing…" msgstr "A finalizar…" msgid "Reset translation memory" msgstr "Reiniciar memória de traduções" msgid "Are you sure you want to reset the translation memory?" msgstr "Tem a certeza que pretende reiniciar a memória de traduções?" msgid "" "Resetting the translation memory will irrevocably delete all stored " "translations from it. You can’t undo this operation." msgstr "" "Se reiniciar a memória de traduções, apagará todas as traduções guardadas. " "Esta operação não pode ser desfeita." msgid "Cancel" msgstr "Cancelar" #. TRANSLATORS: This is abbreviation of "Translation Memory" used in Preferences on macOS. #. Long text looks weird there, too short (like TM) too, but less so. "General" is about ideal #. length there. msgid "TM" msgstr "MT" msgid "" "Source code extractors are used to find translatable strings in the source " "code files and extract them so that they can be translated." msgstr "" "Os extratores de código fonte são utilizados para localizar as entradas, nos " "ficheiros fonte, que podem ser traduzidas e extraem-nas para que possam ser " "editadas." msgid "Custom Extractors:" msgstr "Extratores personalizados:" msgid "Custom extractors:" msgstr "Extratores personalizados:" msgid "Edit…" msgstr "Editar…" msgid "GNU gettext" msgstr "GNU gettext" msgid "" "Supports all programming languages recognized by GNU gettext tools (PHP, C/C+" "+, C#, Perl, Python, Java, JavaScript and others)." msgstr "" "Ativa o suporte a todas as linguagens de programação reconhecidas pelas " "ferramentas GNU gettext (PHP, C/C++, C#, Perl, Python, Java, JavaScript e " "mais)." msgid "Delete extractor" msgstr "Remover extrator" #, c-format msgid "Are you sure you want to delete the “%s” extractor?" msgstr "Tem a certeza de que deseja remover o extrator “%s“?" msgid "Extractors" msgstr "Extratores" msgid "Accounts" msgstr "Contas" msgid "Automatically check for updates" msgstr "Procurar atualizações automaticamente" msgid "Include beta versions" msgstr "Incluir versões beta" msgid "" "Beta versions contain the latest new features and improvements, but may be a " "bit less stable." msgstr "" "As versões Beta possuem novas funcionalidades e melhorias mas podem ser " "instáveis." msgid "Updates" msgstr "Atualizações" msgid "" "These settings affect internal formatting of PO files. Adjust them if you " "have specific requirements e.g. because of version control." msgstr "" "Estas definições afetam a formatação interna dos ficheiros PO. Deve ajustar " "as definições caso necessite de requisitos especiais." msgid "Line endings:" msgstr "Final de linha:" msgid "Unix (recommended)" msgstr "Unix (recomendado)" msgid "Windows" msgstr "Windows" #. TRANSLATORS: Followed by text control for entering number; wraps text at given width msgid "Wrap at:" msgstr "Quebra em:" msgid "Preserve formatting of existing files" msgstr "Manter formatação dos ficheiros existentes" msgid "Advanced" msgstr "Avançado" msgid "Pre-translating…" msgstr "A pré-traduzir…" #, c-format msgid "Pre-translated %u string" msgid_plural "Pre-translated %u strings" msgstr[0] "%u entrada pré-traduzida" msgstr[1] "%u entradas pré-traduzidas" #. TRANSLATORS: This is a somewhat common term describing the action where #. you apply the translation memory and/or machine translation to all of the #. strings you're translating as the first step, followed by correcting, #. improving etc., i.e. actually translating the strings. This may be tricky #. to express in other languages as simply as in English, but please try to #. keep it similarly concise. Please try to avoid, if possible, describing it #. as "auto-translation" and similar, because such terminology would mislead #. some users into thinking it's all that needs to be done (spoken from #. experience). "Pre-translate" nicely expresses that it's only the step done #. *before* actual translation. msgid "Pre-translate" msgstr "Pré-traduzir" msgid "Only fill in exact matches" msgstr "Preencher apenas as ocorrências exatas" msgid "" "By default, inaccurate results are filled in as well and marked as needing " "work. Check this option to only include accurate matches." msgstr "" "Por predefinição, os resultados inexatos também serão preenchidos e marcados " "como imprecisos. Ative esta opção se apenas quiser incluir ocorrências " "exatas." msgid "Don’t mark exact matches as needing work" msgstr "Não marcar ocorrências exatas como imprecisas" msgid "" "Only enable if you trust the quality of your TM. By default, all matches " "from the TM are marked as needing work and should be reviewed before use." msgstr "" "Apenas deve ativar esta opção se confiar plenamente na MT. Por definição, " "todas as ocorrências obtidas a partir da MT serão marcadas como imprecisas." msgid "" "Pre-translation automatically finds exact or fuzzy matches for untranslated " "strings in the translation memory and fills in their translations." msgstr "" "A pré-tradução localiza automaticamente as correspondências exatas ou " "similares para as entradas não traduzidas, a partir da memória de tradução, " "e preenche as suas traduções." #, c-format msgid "%d entry was pre-translated." msgid_plural "%d entries were pre-translated." msgstr[0] "%d entrada foi pré-traduzida." msgstr[1] "%d entradas foram pré-traduzidas." msgid "" "The translations were marked as needing work, because they may be " "inaccurate. You should review them for correctness." msgstr "" "As traduções foram marcadas como imprecisas porque podem não ser exatamente " "iguais. Deve rever estas traduções." msgid "No entries could be pre-translated." msgstr "Não foi possível pré-traduzir quaisquer entradas." msgid "" "The TM doesn’t contain any strings similar to the content of this file. It " "is only effective for semi-automatic translations after Poedit learns enough " "from files that you translated manually." msgstr "" "A memória de traduções não contém quaisquer entradas similares às deste " "ficheiro. Só será útil para traduções semi-automáticas e após o Poedit " "aprender os dados dos ficheiros que traduziu manualmente." msgid "" "Drag and Drop Folders Here\n" "\n" "or use the + button" msgstr "" "Arraste e largue aqui os ficheiros\n" "\n" "\\ou utilize o botão +" msgid "" "Drag and drop folders here\n" "\n" "or use the + button" msgstr "" "Arraste e largue aqui as pastas\n" "\n" "\\ou utilize o botão +" msgid "Add Folders…" msgstr "Adicionar pastas…" msgid "Add folders…" msgstr "Adicionar pastas…" msgid "Add Files…" msgstr "Adicionar ficheiros…" msgid "Add files…" msgstr "Adicionar ficheiros…" msgid "Add Wildcard…" msgstr "Adicionar \"wildcard\"…" msgid "Add wildcard…" msgstr "Adicionar \"wildcard\"…" msgid "Paths" msgstr "Caminhos" msgid "Excluded paths" msgstr "Caminhos excluídos" msgid "Advanced extraction settings" msgstr "Definições avançadas de extração" msgid "Extract notes for translators from:" msgstr "Extrair notas de tradução em:" msgid "Comments prefixed with:" msgstr "Comentários prefixados com:" msgid "All comments" msgstr "Todos os comentários" msgid "Additional xgettext flags:" msgstr "Marcas xgettext adicionais:" msgid "Additional keywords" msgstr "Palavras-chave adicionais" msgid "Name of the project the translation is for" msgstr "Nome do projeto de tradução" msgid "Team name and email address or URL" msgstr "Nome da equipa e endereço de e-mail ou URL" msgid "e.g. nplurals=2; plural=(n > 1);" msgstr "ex.: nplurals=2; plural=(n > 1);" msgid "UTF-8 (recommended)" msgstr "UTF-8 (recomendado)" msgid "Please save the file first. This section cannot be edited until then." msgstr "" "Por favor guarde o ficheiro. Esta secção não pode ser editada até que o faça." msgid "Not all plural forms are translated." msgstr "Nem todas as formas plurais estão traduzidas." msgid "The translation should start as a sentence." msgstr "A tradução deve começar como uma frase." msgid "The translation should start with a lowercase character." msgstr "A tradução deve começar com uma letra minúscula." msgid "The translation doesn’t start with a space." msgstr "A tradução não começa com um espaço." msgid "The translation starts with a space, but the source text doesn’t." msgstr "A tradução começa com um espaço, mas o texto fonte não." msgid "The translation is missing a newline at the end." msgstr "A tradução não tem uma nova linha no fim." msgid "The translation ends with a newline, but the source text doesn’t." msgstr "A tradução termina com uma nova linha, mas o texto fonte não." msgid "The translation is missing a space at the end." msgstr "A tradução não tem um espaço no fim." msgid "The translation ends with a space, but the source text doesn’t." msgstr "A tradução termina com um espaço, mas o texto fonte não." #, c-format msgid "The translation should end with “%s”." msgstr "A tradução deve terminar com “%s”." #, c-format msgid "The translation should not end with “%s”." msgstr "A tradução não deve terminar com “%s”." #, c-format msgid "The translation ends with “%s”, but the source text ends with “%s”." msgstr "A tradução termina com “%s”, mas o texto fonte termina com “%s”." msgid "Comment:" msgstr "Comentário:" msgid "OK" msgstr "Aceitar" msgid "C&lear" msgstr "&Limpar" msgid "Clear the comment" msgstr "Remover o comentário" msgid "New" msgstr "Novo" msgid "Create new translations project" msgstr "Criar novo projeto de traduções" msgid "Edit" msgstr "Editar" msgid "Edit the project" msgstr "Editar projeto" msgid "Delete the project" msgstr "Apagar projeto" msgid "Update all" msgstr "Atualizar tudo" msgid "Update all catalogs in the project" msgstr "Atualizar todos os catálogos do projeto" msgid "Edit project" msgstr "Editar projeto" msgid "Project name:" msgstr "Nome do projeto:" msgid "Browse" msgstr "Explorar" msgid "Add directory to the list" msgstr "Adicionar diretório à lista" msgid "&New…" msgstr "&Novo…" msgid "New from &POT/PO file…" msgstr "Novo a partir de ficheiro &POT/PO…" msgid "New From &POT/PO File…" msgstr "Novo a partir de ficheiro &POT/PO…" msgid "&Open…" msgstr "&Abrir…" msgid "Open Recent" msgstr "Abrir recentes" msgid "Open from Crowdin…" msgstr "Abrir do Crowdin…" msgid "Open From Crowdin…" msgstr "Abrir do Crowdin…" msgid "&Close" msgstr "Fe&char" msgid "&Save" msgstr "&Guardar" msgid "Save &as…" msgstr "Guardar &como…" msgid "Save &As…" msgstr "Guardar &como…" msgid "Compile to MO…" msgstr "Compilar para MO…" msgid "E&xport as HTML…" msgstr "E&xportar como HTML…" msgid "Check for updates…" msgstr "Procurar atualizações…" msgid "&Preferences…" msgstr "&Preferências…" msgid "Catalogs &manager" msgstr "Gest&or de catálogos" msgid "Catalogs &Manager" msgstr "Gest&or de catálogos" msgid "E&xit" msgstr "&Sair" msgid "Quit" msgstr "Sair" msgid "Copy from singular" msgstr "Copiar da forma singular" msgid "Copy From Singular" msgstr "Copiar da forma singular" msgid "Translation needs &work" msgstr "Tradução por re&ver" msgid "Translation Needs &Work" msgstr "Tradução por re&ver" msgid "Edit &comment" msgstr "Editar &comentário" msgid "Edit &Comment" msgstr "Editar &comentário" msgid "Suggestions" msgstr "Sugestões" msgid "&Find…" msgstr "Locali&zar…" msgid "Replace…" msgstr "Substituir…" msgid "Find next" msgstr "Localizar seguinte" msgid "Find previous" msgstr "Localizar anterior" msgid "Find and Replace…" msgstr "Localizar e substituir…" msgid "Find Next" msgstr "Localizar seguinte" msgid "Find Previous" msgstr "Localizar anterior" msgid "&Preferences" msgstr "&Preferências" msgid "Display entry &IDs" msgstr "Mostrar &ID das entradas" msgid "Display Entry &IDs" msgstr "Mostrar &ID das entradas" msgid "Sort by &file order" msgstr "Ordenar pela ordem do &ficheiro" msgid "Sort by &File Order" msgstr "Ordenar pela ordem do &ficheiro" msgid "Sort by &source" msgstr "&Ordenar por fonte" msgid "Sort by &Source" msgstr "&Ordenar por fonte" msgid "Sort by &translation" msgstr "Ordenar por &tradução" msgid "Sort by &Translation" msgstr "Ordenar por &tradução" msgid "&Group by context" msgstr "A&grupar por contexto" msgid "&Group By Context" msgstr "A&grupar por contexto" msgid "Entries with errors first" msgstr "Entradas com erros primeiro" msgid "Entries with Errors First" msgstr "Entradas com erros primeiro" msgid "&Untranslated entries first" msgstr "Não trad&uzidas primeiro" msgid "&Untranslated Entries First" msgstr "Não trad&uzidas primeiro" msgid "&Show references" msgstr "Mo&strar referências" msgid "&Show References" msgstr "Mo&strar referências" msgid "Show sidebar" msgstr "Mostrar barra lateral" msgid "Show status bar" msgstr "Mostrar barra de estado" msgid "C&atalog" msgstr "C&atálogo" msgid "&Update from sources" msgstr "At&ualizar com base nas fontes" msgid "&Update from Sources" msgstr "At&ualizar com base nas fontes" msgid "Update from &POT file…" msgstr "Atualizar a partir de ficheiro &POT…" msgid "Update from &POT File…" msgstr "Atualizar a partir de ficheiro &POT…" msgid "Sync with Crowdin" msgstr "Sincronizar com o Crowdin" msgid "Pre-&translate…" msgstr "Pré-&tradução…" msgid "&Purge deleted translations" msgstr "&Remover traduções eliminadas" msgid "&Purge Deleted Translations" msgstr "&Remover traduções eliminadas" msgid "&Validate translations" msgstr "&Validar traduções" msgid "&Validate Translations" msgstr "&Validar traduções" msgid "&Properties…" msgstr "&Propriedades…" msgid "&Done and next" msgstr "&Pronta e avançar" msgid "&Done and Next" msgstr "&Pronta e avançar" msgid "&Previous translation" msgstr "Tradução &anterior" msgid "&Previous Translation" msgstr "Tradução &anterior" msgid "&Next translation" msgstr "Tradução &seguinte" msgid "&Next Translation" msgstr "Tradução &seguinte" msgid "P&revious unfinished" msgstr "An&terior não terminada" msgid "P&revious Unfinished" msgstr "An&terior não terminada" msgid "Ne&xt unfinished" msgstr "Seguinte &não terminada" msgid "Ne&xt Unfinished" msgstr "Seguinte &não terminada" msgid "Previous plural form" msgstr "Forma plural anterior" msgid "Previous Plural Form" msgstr "Forma plural anterior" msgid "Next plural form" msgstr "Forma plural seguinte" msgid "Next Plural Form" msgstr "Forma plural seguinte" msgid "&Online help" msgstr "Ajuda na &web" msgid "&Online Help" msgstr "Ajuda na &web" msgid "&GNU gettext manual" msgstr "Manual &GNU gettext" msgid "&GNU gettext Manual" msgstr "Manual &GNU gettext" msgid "&About Poedit" msgstr "&Sobre o Poedit" msgid "&About" msgstr "&Acerca" msgid "Extractor setup" msgstr "Configurar extrator" msgid "List of extensions separated by semicolons (e.g. *.cpp;*.h):" msgstr "Lista de extensões separadas por ponto e vírgula (ex. *.cpp;*.h):" msgid "Invocation:" msgstr "Invocação:" msgid "Command to extract translations:" msgstr "Comando para extrair traduções:" msgid "" "This is the command used to launch the extractor.\n" "%o expands to the name of output file, %K to list\n" "of keywords, %F to list of input files,\n" "%C to charset flag (see below)." msgstr "" "Este é o comando utilizado para iniciar o extrator.\n" "%o será substituído pelo nome do ficheiro de destino,\n" "%K pela lista de palavras chave, %F pela lista de ficheiros\n" "de entrada e %C pelo tipo de codificação (veja abaixo)." msgid "An item in keywords list:" msgstr "Um item na lista de palavras-chave:" msgid "" "This will be attached to the command line once\n" "for each keyword. %k expands to the keyword." msgstr "" "Isto será anexado à linha de comandos uma vez para cada\n" "palavra-chave. %k será substituído pela palavra-chave." msgid "An item in input files list:" msgstr "Um item na lista de ficheiros de entrada:" #, c-format msgid "" "This will be attached to the command line once\n" "for each input file. %f expands to the filename." msgstr "" "Isto será anexado à linha de comandos uma vez para cada\n" "ficheiro de entrada. %f será substituído pelo nome do ficheiro." msgid "Source code charset:" msgstr "Codificação do código fonte:" #, c-format msgid "" "This will be attached to the command line\n" "only if source code charset was given. %c expands to charset value." msgstr "" "Isto será anexado à linha de comandos se a codificação\n" "do código fonte tiver sido fornecida. %c será substituído pela codificação." msgid "Catalog properties" msgstr "Propriedades do catálogo" msgid "Project name and version:" msgstr "Nome e versão do projeto:" msgid "Language team:" msgstr "Equipa de tradução:" msgid "Plural forms:" msgstr "Formas plurais:" msgid "Use default rules for this language" msgstr "Utilizar regras pré-definidas para este idioma" msgid "Use custom expression" msgstr "Utilizar expressão personalizada" msgid "Learn about plural forms" msgstr "Saber mais sobre formas plurais" msgid "Charset:" msgstr "Codificação:" msgid "Advanced Extraction Settings…" msgstr "Definições avançadas de extração…" msgid "Advanced extraction settings…" msgstr "Definições avançadas de extração…" msgid "Translation Properties" msgstr "Propriedades da tradução" msgid "Translation properties" msgstr "Propriedades da tradução" msgid "Sources Paths" msgstr "Caminho das fontes" msgid "Sources paths" msgstr "Caminho das fontes" msgid "Extract text from source files in the following directories:" msgstr "Extrair texto dos ficheiros fonte nestes diretórios:" msgid "Base path:" msgstr "Caminho base:" msgid "Sources Keywords" msgstr "Palavras-chave das fontes" msgid "Sources keywords" msgstr "Palavras-chave das fontes" msgid "" "Use these keywords (function names) to recognize translatable strings\n" "in source files:" msgstr "" "Utilizar estas palavras-chave (nomes de funções) para reconhecer as " "entradas\n" "passíveis de tradução nos ficheiros fonte:" msgid "Also use default keywords for supported languages" msgstr "Utilizar também palavras-chave para os idiomas suportados" msgid "Learn About Gettext Keywords" msgstr "Saber mais sobre as palavras-chave Gettext" msgid "Learn about gettext keywords" msgstr "Saber mais sobre palavras-chaves gettext" msgid "Update summary" msgstr "Resumo da atualização" msgid "" "These strings were found in the sources but were not in the catalog.\n" "Poedit will add them to the catalog now." msgstr "" "Estas entradas foram encontradas no código fonte mas não estão\n" "no catálogo. Serão adicionadas ao catálogo." msgid "New strings" msgstr "Novas entradas" msgid "" "These strings are no longer in the sources.\n" "Poedit will remove them from the catalog now." msgstr "" "Estas entradas já não estão no código fonte\n" "e serão removidas do catálogo." msgid "Obsolete strings" msgstr "Entradas obsoletas" msgid "(0 new, 0 obsolete)" msgstr "(0 novas, 0 obsoletas)" msgid "Open" msgstr "Abrir" msgid "Save catalog" msgstr "Guardar catálogo" msgid "Validate" msgstr "Validar" msgid "Check for errors in the translation" msgstr "Procurar erros na tradução" msgid "Update" msgstr "Atualizar" msgid "Update catalog - synchronize it with sources" msgstr "Atualizar catálogo e sincronizar com o código fonte" msgid "Sidebar" msgstr "Barra lateral" msgid "Show or hide the sidebar" msgstr "Mostrar ou ocultar a barra lateral" #. TRANSLATORS: "Previous" as in used in the past, now replaced with newer. msgid "Previous source text:" msgstr "Texto fonte anterior:" msgid "" "The old source text (before it changed during an update) that the now-" "inaccurate translation corresponds to." msgstr "" "O texto fonte anterior (antes de uma atualização) a que as traduções " "inexatas agora correspondem." msgid "Notes for translators:" msgstr "Notas para tradutores:" msgid "Add comment" msgstr "Adicionar comentário" msgid "Add Comment" msgstr "Adicionar comentário" msgid "Translation suggestions:" msgstr "Sugestões de tradução:" #. TRANSLATORS: This is shown when no translation suggestions can be found in the TM (Windows). msgid "No matches found" msgstr "Nenhuma ocorrência" #. TRANSLATORS: This is shown when no translation suggestions can be found in the TM (macOS, Linux). msgid "No Matches Found" msgstr "Nenhuma ocorrência" msgid "This string was found in Poedit’s translation memory." msgstr "Esta linha foi encontrada na memória de traduções do Poedit." msgid "Cannot create temporary directory." msgstr "Não foi possível criar o diretório temporário." msgid "Welcome to Poedit" msgstr "Bem-vindo ao Poedit" #. TRANSLATORS: This is version information in about dialog, "%s" will be #. version number when used #, c-format msgid "Version %s" msgstr "Versão %s" msgid "Edit a Translation" msgstr "Editar tradução" msgid "Edit a translation" msgstr "Editar tradução" msgid "Open an existing PO file and edit the translation." msgstr "Abrir um ficheiro PO e editar a tradução." msgid "" "Take an existing PO file or POT template and create a new translation from " "it." msgstr "" "Criar uma nova tradução e obter as linhas a traduzir a partir de um ficheiro " "PO ou POT." msgid "Collaborate on a Translation with Others" msgstr "Participar na tradução com outros" msgid "Collaborate on a translation with others" msgstr "Participar na tradução com outros" msgid "" "Download a file from Crowdin project, translate and sync your changes back." msgstr "" "Descarregue um ficheiro do Crowdin, traduza-o e sincronize as suas " "alterações." msgid "What is Crowdin?" msgstr "O que é o Crowdin?" msgid "There are no translations. That’s unusual." msgstr "Não existem traduções. Isto é estranho." msgid "" "Translatable entries aren’t added manually in the Gettext system, but are " "automatically extracted\n" "from source code. This way, they stay up to date and accurate.\n" "Translators typically use PO template files (POTs) prepared for them by the " "developer." msgstr "" "As entradas para tradução não são adicionadas manualmente ao sistema Gettext " "mas sim extraídas automaticamente\n" "do código fonte. Desta forma, estão sempre atualizadas.\n" "Normalmente, os tradutores utilizam os ficheiros POT disponibilizados pelos " "programadores." msgid "(Learn more about GNU gettext)" msgstr "(Saber mais sobre o GNU gettext)" msgid "The simplest way to fill this catalog is to update it from a POT:" msgstr "" "O método mais fácil para preencher este catálogo é utilizar um ficheiro POT:" msgid "Update from POT" msgstr "Atualizar com base em ficheiro POT..." msgid "Take translatable strings from an existing POT template." msgstr "Obter entradas a traduzir a partir de um modelo POT." msgid "" "You can also extract translatable strings directly from the source code:" msgstr "" "Também pode extrair as entradas a traduzir diretamente do código fonte:" msgid "Extract from sources" msgstr "Extrair das fontes" msgid "Configure source code extraction in Properties." msgstr "Configure a extração do código fonte nas propriedades." msgid "Sync" msgstr "Sincronização" msgid "Synchronize the translation with Crowdin" msgstr "Sincronizar tradução com o Crowdin" #. TRANSLATORS: This is titlebar of about dialog, "%s" is application name #. ("Poedit" here, but please use "%s") #, c-format msgid "About %s" msgstr "Acerca do %s" #. TRANSLATORS: Title of the preferences window on Windows and Linux. "%s" is replaced with "Poedit" when running. #, c-format msgid "%s Preferences" msgstr "Preferências do %s" #. TRANSLATORS: macOS item in app menu msgid "Services" msgstr "Serviços" #. TRANSLATORS: macOS item in app menu, %s is replaced with "Poedit" #, c-format msgid "Hide %s" msgstr "Ocultar %s" #. TRANSLATORS: macOS item in app menu msgid "Hide Others" msgstr "Ocultar outros" #. TRANSLATORS: macOS item in app menu msgid "Show All" msgstr "Mostrar tudo" #. TRANSLATORS: macOS item in app menu, %s is replaced with "Poedit" #, c-format msgid "Quit %s" msgstr "Sair do %s" #. TRANSLATORS: macOS item in app menu msgid "Preferences…" msgstr "Preferências…" msgid "Preferences..." msgstr "Preferências..." #. TRANSLATORS: Title of a category in Windows task menu (right-click icon in taskbar) msgid "Recent" msgstr "Recentes" #. TRANSLATORS: Title of a category in Windows task menu (right-click icon in taskbar) msgid "Frequent" msgstr "Frequentes" msgid "&Apply" msgstr "&Aplicar" msgid "Apply" msgstr "Aplicar" msgid "&Back" msgstr "&Recuar" msgid "Back" msgstr "Recuar" msgid "&Cancel" msgstr "&Cancelar" msgid "&Clear" msgstr "&Limpar" msgid "Clear" msgstr "Limpar" msgid "Copy" msgstr "Copiar" msgid "Cu&t" msgstr "Cor&tar" msgid "Cut" msgstr "Cortar" msgid "&Delete" msgstr "&Apagar" msgid "&Quit" msgstr "&Sair" msgid "File" msgstr "Ficheiro" msgid "Help" msgstr "Ajuda" msgid "&New" msgstr "&Novo" msgid "&No" msgstr "&Não" msgid "No" msgstr "Não" msgid "&OK" msgstr "&OK" msgid "Open…" msgstr "Abrir…" msgid "&Open..." msgstr "&Abrir..." msgid "Open..." msgstr "Abrir..." msgid "&Paste" msgstr "Co&lar" msgid "Paste" msgstr "Colar" msgid "Preferences" msgstr "Preferências" msgid "&Redo" msgstr "&Refazer" msgid "Refresh" msgstr "Recarregar" msgid "&Save as" msgstr "Guardar &como" msgid "Save as" msgstr "Guardar como" msgid "Select &All" msgstr "Selecion&ar tudo" msgid "Select All" msgstr "Selecionar tudo" msgid "&Undo" msgstr "&Desfazer" msgid "&Yes" msgstr "&Sim" msgid "Yes" msgstr "Sim" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Shift+" msgstr "Shift+" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Enter" msgstr "Enter" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Up" msgstr "Up" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Down" msgstr "Down" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Left" msgstr "Esquerda" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Right" msgstr "Direita" #. TRANSLATORS: Keyboard shortcut, must correspond to translation of "Ctrl+" msgid "ctrl" msgstr "ctrl" #. TRANSLATORS: Keyboard shortcut, must correspond to translation of "Alt+" msgid "alt" msgstr "alt" #. TRANSLATORS: Keyboard shortcut, must correspond to translation of "Shift+" msgid "shift" msgstr "shift" poedit-2.0.6/locales/lt.mo0000664000372000037200000011416313230132077012326 00000000000000  + + ++< ,I,J\,g, -- (-2- 9-G-N- T-_-g-n-u-{-----------. ...!.3.E.I. M. Z.g.p.y. .......///%/+/4/E/V/\/x//////// 0*0B0Y0 w0 000 0 00 00 00 11&1 <11I1{1'111 1161'2)G2q2 v2A2I2 333$3"+3N3 i3t3.|33333344"4>4Z4#o4444444445 5+5/F5 v555555525,6E6\6s6 663797>7Q7d7h7777 777E7"#8?F8 88 888K8"95:9p9v99 9 9 999 9 99::::%:.7:f::u:;#;:;O; V; a;n;<;";; ;;*<!<<!^<'<<<'<T<I= O=]= b= l=z==== = = = == >>!> *>6>>>P> b>m>r> z> >>>>> o?{?? ?? ? ??"?(@>@[@n@ }@ @@@ @@@A A 4A?AXA:]A A<A.AB"B2BMBdB*mBBBB B BBC CCCCC#CC' D75D$mD%DDDDDDDE E2&E YEfE|EEEEEEEEEEFF5F;FQFnWFEF G>G RG`GhGoG-GG GG2GH ,H8HGHVHkHHH HHHHHHHH I I I#I +I 8I EI(PIyIIzIJJ J %J 1J=J EJ PJ ]J jJ vJJ"JJJJ JJ KKK 'K4KNK^KqK KK!KKKKKKK LL L'L 8L EL QL^LrLLLLLLL M M $M0M CMPM aMoMvMM MMM M MMM(M&N .NTmT:U;AU7}UmU_#V[VVVVW'W:WQWhWW WWWW WWWWW X"X,2X_XoX~XXX?XXYY4YJY#gYVYYYZ Z Z>ZPZaZ|ZZZ ZZHZ7Z -[37[ak[[[[[.[ \0\P\g\}\\\!\\ ^^#_o(__S_ ` ` ` `` ``` ` ` a a a +a6aIa\aca kauaaaaa aa a bb"b2b6b=bPb cb ob}b bbbb bbbc 'c 2c qZqbqiqzqHq%qr r+rAr&`r*r*rrr+rd*ssss ssssst )t7tJt[tltttttttt tu u u$u=uVupusuv2vHv`v{vv vv1vvvww/w6w5Lwww"w5w$x(x>x"Pxsx@zxxCx@yTyjyyy y'yyyzz,zBz {{!{9{Q{T{7h{{{1{({0(|Y|n|t||||||7|}1}L}i}~} } } }}}} }}~ ~!'~I~lP~Y~ ?#c x3 l$ Àр +L b mw  Ɂ Ӂ݁ #1/ ak~  %8KZl.΃ &<Mcs zՄ" "':b r ~   ̅ ؅.A^xȆ ,M_xÇɇއ  # .:I"c ҈$7IAL1҉=QHiU[VdL׌$ߍDb]Uz9Eˏ7oIoq) ёߑ ' 5?B Yc  #ƒ?%*P fsX$2 K'l,&B iu ͕ޕ3H87 6ǖzy $ ٗ )/?#OC>kQ6A5v:5K .9 1T|U<l( -R+W)Fw4:  ,fN@ aej~m0k_T 8f t1IE<0oy{ LJiU{-ZnQZ*.XpHcji[shM c\_Ge$b+WP}=!H)S^"OtrA bX=%YFsu]>"vd*JVL(?  D@M% h\RguaKl2EqVm4`|&,^y';Bx [&?7DIw}/zN;9zp ~S8x#7C']$B3Oo#d6Yq32Pg/`rGn! (modified) (unsaved)%d entry%d entries%d entry was pre-translated.%d entries were pre-translated.%d error%d errors%d issue with the translation found.%d issues with the translation found.%i line of file “%s” was not loaded correctly.%i lines of file “%s” were not loaded correctly.%s Format%s Preferences%s format&About&About Poedit&Apply&Back&Bookmarks&Cancel&Clear&Close&Copy&Delete&Done and Next&Done and next&Edit&File&Find…&GNU gettext Manual&GNU gettext manual&Go&Group By Context&Group by context&Help&New&New…&Next >&Next Translation&Next translation&No&OK&Online Help&Online help&Open...&Open…&Paste&Preferences&Preferences…&Previous Translation&Previous translation&Properties…&Purge Deleted Translations&Purge deleted translations&Quit&Redo&Replace&Save&Save as&Show References&Show references&Undo&Untranslated Entries First&Untranslated entries first&Update from Sources&Update from sources&Validate Translations&Validate translations&View&Yes(0 new, 0 obsolete)(Learn more about GNU gettext)(New: %i, obsolete: %i)(Use default language)(requires Windows 8 or newer)< &PreviousAbout %sAccountsAdd CommentAdd Files…Add Folders…Add commentAdd directory to the listAdd files…Add folders…Additional keywordsAdvancedAll Translation FilesAll commentsAlso use default keywords for supported languagesAlt+Always change focus to text input fieldAn item in input files list:An item in keywords list:AppearanceApplyAre you sure you want to reset the translation memory?Automatically check for updatesAutomatically compile MO file when savingBackBase path:Broken catalog file: plural form msgstr used without msgid_pluralBroken catalog file: singular form msgstr used together with msgid_pluralBrowseC&atalogC&learCancelCannot create temporary directory.Cannot execute program: %sCapitalizeCatalogCatalog modified. Do you want to save changes?Catalog propertiesCatalogs &ManagerCatalogs &managerCatalogs ManagerChange UI languageCharset:Check Document NowCheck Grammar With SpellingCheck Spelling While TypingCheck for Updates…Check for errors in the translationCheck for updates…Check spellingClearClear TranslationClear the commentClear translationCloseCollecting source files…Comment:Compile to…Compiled Translation FilesConfigure source code extraction in Properties.ConfirmationCopyCopy From SingularCopy from Source TextCopy from singularCopy from source textCorrect Spelling AutomaticallyCouldn’t load file %s, it is probably corrupted.Couldn’t save file %s.Create New TranslationCreate new translationCreate new translations projectCrowdin errorCrowdin is an online localization management platform and collaborative translation tool. Poedit can seamlessly sync PO files managed at Crowdin.Ctrl+Cu&tCustom Extractors:Custom extractors:CutDatabase size on disk:DeleteDelete extractorDelete the projectDirectories:Display Entry &IDsDisplay entry &IDsDo you really want to do mass update of all catalogs in this project?Do you want to delete the project?Do you want to remove all translations that are no longer used?Don’t SaveDon’t Show AgainDon’t saveDon’t show againDownDownload a file from Crowdin project, translate and sync your changes back.Downloading latest translations…Downloading translations is disabled in this project.E&xitE&xport as HTML…EditEdit &CommentEdit &commentEdit CommentEdit a TranslationEdit a translationEdit commentEdit projectEdit the projectEditingEdit…Email:EnterEnter Full ScreenEntries in the catalog are probably incorrect.Entries with Errors FirstEntries with errors firstEntries with errors were marked in red in the list. Details of the error will be shown when you select such an entry.Error opening fileError opening file %s!Error saving catalogErrorsEverythingExport as…Extract from sourcesExtract text from source files in the following directories:Extracting translatable strings…Extractor setupExtractorsFailed command: %sFailed to communicate with Poedit process.Failed to load extracted catalog.Failed to merge gettext catalogs.Failed to update translation memory: %sFileFile “%s” doesn’t exist.File “%s” is not a message catalog.File “%s” is read-only and cannot be saved. Please save it under different name.File:Finalizing…FindFind NextFind PreviousFind and Replace…Find in commentsFind in source textsFind in translationsFind nextFind previousFix LanguageFix languageFix the HeaderFix the headerForm %iFrequentGNU gettextGeneralGo to Bookmark %iGo to bookmark %iHTML FilesHelpHide %sHide OthersHide SidebarHide Status BarHide this notification messageIDIf you continue with purging, all translations marked as deleted will be permanently removed. You will have to translate them again if they are added back in the future.Ignore caseImporting translations…Include beta versionsInformation about the translatorInstallInvalid fileInvocation:KeepLanguage Code or Name (e.g. en_GB)Language of the translation isn’t set.Language of the translation:Language selectionLanguage team:Language:Last modifiedLearn About Gettext KeywordsLearn From Files…Learn MoreLearn More About CrowdinLearn about gettext keywordsLearn about plural formsLearn from files…Learn moreLearn more about CrowdinLeftLine %d of file “%s” is corrupted (not valid %s data).Line endings:List of extensions separated by semicolons (e.g. *.cpp;*.h):MO files can’t be directly edited in Poedit.Make Lower CaseMake Upper CaseMalformed header: “%s”Merging differences…MinimizeName of the project the translation is forName:Ne&xt UnfinishedNe&xt unfinishedNeeds WorkNeeds workNever let the list of strings take focus. If enabled, you must use Ctrl-arrows for keyboard navigation but you can also type text immediately, without having to press Tab to change focus.NewNew stringsNext Plural FormNext plural formNoNo Matches FoundNo entries could be pre-translated.No matches foundNo problems with the translation found.No translation projects listed in your Crowdin account.Not all plural forms are translated.Not authorized, please sign in again.Notes for translators:OKObsolete stringsOneOpenOpen Crowdin translationOpen From Crowdin…Open RecentOpen an existing PO file and edit the translation.Open catalogOpen catalog templateOpen from Crowdin…Open in EditorOpen in editorOpen...Open…OptionsOtherP&revious UnfinishedP&revious unfinishedPO TranslationPO Translation FilesPOT Translation TemplatesPastePaste and Match StylePathsPlease open and edit the corresponding PO file instead. When you save it, the MO file will be updated as well.Please save the file first. This section cannot be edited until then.PluralPlural forms expression used by the catalog is unusual for %s.Plural forms:Plural:PoeditPoedit - Catalogs managerPoedit is an easy to use translations editor.Pre-&translate…Pre-translatePre-translatedPre-translated %u stringPre-translated %u stringsPre-translating…PreferencesPreferences...Preferences…Previous Plural FormPrevious plural formPrevious source text:Project name and version:Project name:Project:PurgePurge deleted translationsQuitQuit %sRecentRedoReferences:RefreshRemaining: %dReplaceReplace &AllReplace &allReplace…Required header Plural-Forms is missing.ResetReset translation memoryResetting the translation memory will irrevocably delete all stored translations from it. You can’t undo this operation.ReviewRightSaveSave &As…Save &as…Save asSave as…Save catalogSave changesSelect &AllSelect AllSelect directorySelect translation files to importSelect your preferred languageServicesSet Bookmark %iSet LanguageSet bookmark %iSet languageShift+Show AllShow SidebarShow Spelling and GrammarShow Status BarShow SubstitutionsShow or hide the sidebarShow sidebarShow status barShow summary after catalog updateSidebarSign InSign OutSign inSign in to CrowdinSign outSigned in as:SingularSingular:Smart Copy/PasteSmart DashesSmart LinksSmart QuotesSort by &File OrderSort by &SourceSort by &TranslationSort by &file orderSort by &sourceSort by &translationSource code charset:Source code not available.Source fileSource file occurrence:Source textSource text — %sSource text:Sources keywordsSources pathsSpeechSpelling and GrammarStart SpeakingStop SpeakingStored translations:String to findSubstitutionsSuggestionsSyncSync with CrowdinSynchronize the translation with CrowdinSyncingSyncing errorSyncing with %s failed.Syncing with %s…Syncing with Crowdin failed.Syntax error in Plural-Forms header ("%s").TMTake an existing PO file or POT template and create a new translation from it.Take translatable strings from an existing POT template.Text ReplacementThe TM doesn’t contain any strings similar to the content of this file. It is only effective for semi-automatic translations after Poedit learns enough from files that you translated manually.The catalog couldn’t be saved in “%s” charset as specified in catalog settings. It was saved in UTF-8 instead and the setting was modified accordingly.The file cannot be compiled into the MO format and used.The file cannot be opened.The file may be either corrupted or in a format not recognized by Poedit.The file was compiled into the MO format, but it will probably not work correctly.The file was saved safely and compiled into the MO format, but it will probably not work correctly.The file was saved safely, but it cannot be compiled into the MO format and used.The file was saved safely.The simplest way to fill this catalog is to update it from a POT:The translation is ready for use, but %d entry is not translated yet.The translation is ready for use, but %d entries are not translated yet.The translation is ready for use.There are no translations. That’s unusual.There was a problem formatting the file nicely (but it was saved all right).There were errors when loading the catalog. Some data may be missing or corrupted as the result.These strings are no longer in the sources. Poedit will remove them from the catalog now.These strings were found in the sources but were not in the catalog. Poedit will add them to the catalog now.This file can only be edited in Crowdin’s web interface.This project has no files that can be translated in Poedit.This string was found in Poedit’s translation memory.This will be attached to the command line only if source code charset was given. %c expands to charset value.This will be attached to the command line once for each input file. %f expands to the filename.This will be attached to the command line once for each keyword. %k expands to the keyword.TotalTransformationsTranslated: %d of %d (%d %%)Translation LanguageTranslation MemoryTranslation PropertiesTranslation propertiesTranslation suggestions:Translation — %sTranslation:TwoUTF-8 (recommended)UndoUnhandled exception occurred: %sUnix (recommended)UntransUpUpdateUpdate allUpdate all catalogs in the projectUpdate catalog - synchronize it with sourcesUpdate from POTUpdate summaryUpdatesUpdating catalogUpdating failedUpdating the catalog failed. Click on 'Details >>' for details.Updating user information…Uploading translations…Use custom expressionUse custom list font:Use custom text fields font:Use default rules for this languageUse these keywords (function names) to recognize translatable strings in source files:Use translation memoryValidateValidation resultsVersion %sWaiting for authentication…Welcome to PoeditWhat is Crowdin?When updating from sourcesWhole words onlyWindowWindowsWrap aroundYesYou can also extract translatable strings directly from the source code:You must restart Poedit for this change to take effect.Your NameYour changes will be lost if you don’t save them.Your name and email address are only used to set the Last-Translator header of GNU gettext files.ZeroZoomaltctrldon’t delete temporary files (for debugging)e.g. nplurals=2; plural=(n > 1);go to item at given line numberhandle a poedit:// URIpre-translate from TMshiftunknown languageyour_email@example.com“%s” is not a valid POT file.Project-Id-Version: poedit Report-Msgid-Bugs-To: help@poedit.net POT-Creation-Date: 2017-12-05 15:52+0100 PO-Revision-Date: 2018-01-18 07:56-0500 Last-Translator: vslavik Language-Team: Lithuanian Language: lt_LT MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%100<10 || n%100>=20) ? 1 : 2); X-Generator: crowdin.com X-Crowdin-Project: poedit X-Crowdin-Language: lt X-Crowdin-File: /locales/poedit.pot (pakeista) (neišsaugota)%d įrašas%d įrašų%d įrašai%d eilutė preliminariai išversta.%d eilutės preliminariai išverstos.%d eilučių preliminariai išversta.%d klaida%d klaida%d klaidosRasta %d vertimo problema.Rastos %d vertimo problemos.Rasta %d vertimo problemų.Nepavyko perskaityti %i eilutės iš failo „%s“.Nepavyko perskaityti %i eilučių iš failo „%s“.Nepavyko perskaityti %i eilučių iš failo „%s“.%s Formatas%s nuostatos%s formatas&Apie&Apie Poedit&Taikyti&AtgalŽ&ymelės&Atsisakyti&Išvalyti&Užverti&Kopijuoti&Ištrinti&Atlikta ir Toliau&Atlikta ir toliau&Taisa&Failas&Rasti…„&GNU gettext“ žinynas„&GNU gettext“ žinynas&Eiti&Grupuoti pagal kontekstą&Grupuoti pagal kontekstą&Žinynas&Naujas&Naujas…&Sekantis >&Kitas vertimas&Kitas vertimas&Ne&Gerai&Pagalba internete&Pagalba internete&Atverti...&Atidaryti…Į&dėti&Nustatymai&Nustatymai…&Ankstesnis vertimas&Ankstesnis vertimas&Savybės…&Pašalinti ištrintus vertimus&Pašalinti ištrintus vertimus&Baigti darbą&Pakartoti&Pakeisti&IšsaugotiĮ&rašyti kaip&Rodyti nuorodas&Rodyti nuorodas&Atšaukti&Pirmiausia neišversti įrašai&Pirmiausia neišversti įrašai&Atnaujinti iš išeities tekstų&Atnaujinti iš išeities tekstų&Tvirtinti vertimą&Tvirtinti vertimą&Rodymas&Taip(0 naujų, 0 senų)(Sužinokite daugiau apie „GNU gettext“)(Naujas: %i, senasis: %i)(Naudoti numatytąją kalbą)(būtina Windows 8 arba naujesnė versija)< &AnsktesnisApie %sPaskyrosPridėti komentarąPridėti failus…Pridėti aplankus…Pridėti komentarąĮ sąrašą pridėti aplankąPridėti failus…Pridėti aplankus…Papildomi raktažodžiaiPapildomaiVisi vertimų failaiVisi komentaraiTaip pat palaikomoms kalboms naudoti numatytuosius raktažodžiusAlt+Visada aktyvuoti teksto įvedimo laukąElementas įvedimo failų sąraše:Elementas raktažodžių sąraše:IšvaizdaTaikytiAr tikrai norite atkurti vertimų atmintį?Automatiškai tikrinti, ar yra naujiniųAutomatiškai kompiliuoti MO failą išsaugantAtgalPagrindinis kelias:Sugadintas katalogo failas: daugiskaitos forma msgstr neturi msgid_pluralSugadintas katalogo failas: vienaskaitos forma msgstr turi msgid_pluralNaršytiK&atalogasIš&valytiAtsisakytiSukurti laikino aplanko nepavyko.Įvykdyti programos nepavyko: %sIš didžiosios raidėsKatalogasKatalogas pakeistas. Ar norite išsaugoti pakeitimus?Katalogo savybėsKatalogų &tvarkyklėKatalogų &tvarkyklėKatalogų tvarkyklėKeisti programos kalbąKoduotė:Patikrinti dokumentąTikrinti rašybą ir gramatikąTikrinti rašybą rašantTikrinti, ar yra atnaujinimų…Tikrinti ar nėra vertimo klaidųTikrinti, ar yra atnaujinimų…Tikrinti _rašybąIšvalytiValyti vertimąIšvalyti komentarąValyti vertimąUžvertiRenkami failai…Komentaras:Kompiliuoti į…Kompiliuoti vertimo failaiPradinio kodo ištraukimą galite sukonfigūruoti savybėse.PatvirtinimasKopijuotiKopijuoti iš vienaskaitosKopijuoti iš išeities tekstųKopijuoti iš vienaskaitosKopijuoti iš išeities tekstųRašybą tikrinti automatiškaiNepavyko įkrauti failo %s, jis greičiausiai sugadintas.Nepavyko įrašyti failo %s.Sukurti naują vertimąSukurti naują vertimąSukurti naują vertimų projektąCrowdin klaidaCrowdin yra internetinė lokalizavimo valdymo platforma ir vertimų bendradarbiavimo priemonė. Poedit gali sklandžiai sinchronizuoti PO failus esančius Crowdin sistemoje.Ctrl+Iškirp&tiSavo ekstraktoriai:Savo ekstraktoriai:IškirptiDuomenų bazės dydis diske:PašalintiPašalinti ekstraktoriųPašalinti projektąAplankai:Rodyti įrašų &identifikatoriusRodyti įrašų &identifikatoriusAr tikrai norite masiškai atnaujinti visus šio projekto katalogus?Ar norite pašalinti projektą?Ar tikrai norite pašalinti visus nebenaudojamus vertimus?NeįrašytiDaugiau NeberodytiNeįrašytiDaugiau neberodytiŽemynAtsisiųsti failą iš Crowdin projekto, versti ir sinchronizuoti pakeitimus atgal.Atsiunčiami naujausi vertimai…Vertimų atsiuntimas šiame projekte yra išjungtas.&IšeitiE&ksportuoti kaip HTML…TaisytiKeisti &komentarą&Keisti komentarąKeisti komentarąRedaguoti vertimąKeisti vertimąKeisti komentarąKeisti projektąKeisti projektąTaisymasRedaguoti…El. paštas:EnterVisas ekranasKatalogo įrašai gali būti neteisingi.Iš pradžių, įrašai su klaidomisIš pradžių, įrašai su klaidomisĮrašai su klaidom pažymėti raudonai. Išsamiau apie klaidą bus parodyta pasirinkus įrašą.Klaida atidarant failąKlaida atveriant failą %s!Klaida išsaugant katalogąKlaidosViskasIškelti kaip…Išskleisti iš šaltiniųEksportuoti tekstą iš išeities failų esančių šiuose aplankaluose:Išskleidžiami vertimo kintamieji…Ekstraktoriaus nuostatosEkstraktoriaiNepavykus komanda: %sNepavyko susisiekti su Poedit.Nepavyko įkelti ištrauktų katalogųNepavyko sujungti „gettext“ katalogų.Nepavyko atnaujinti vertimų atminties: %sFailasFailas "%s" neegzistuoja.„%s“ nėra pranešimų katalogo failas.Failas „%s“ skirtas tik skaitymui ir negali būti išsaugotas. Išsaugokite duomenis kitu vardu.Failas:Užbaigiama…IeškotiSurasti kitąSurasti ankstesnįRasti ir pakeisti…Ieškoti komentaruoseIeškoti šaltinio tekstuoseIeškoti vertimeSurasti kitąSurasti ankstesnįPataisyti kalbąPataisyti kalbąPataisyti antraštęPataisyti antraštęForma %iDažnai naudoti„GNU gettext“BendraPereiti į žymelę %iPereiti į žymelę %iHTML failaiŽinynasSlėpti %sSlėpti kitusSlėpti šoninę juostąSlėpti būsenos juostąSlėpti šį perspėjimąIDJei tęsite šalinimą, visi vertimai pažymėti kaip „pašalinta“ bus visam laikui pašalinti. Jei ateityje jie bus pridėti turėsite juos versti iš naujo.Nepaisyti raidžių dydžioĮkeliami vertimai…Įtraukti beta versijasInformacija apie vertėjąĮdiegtiNetinkamas failasIškvietimas:PaliktiKalbos kodas arba pavadinimas (pvz., „lt-LT“)Nenustatyta vertimo kalba.Vertimo kalba:Kalbos pasirinkimasVertėjų komanda:Kalba:Paskutinis pakeitimasSužinokite daugiau apie „Gettext“ raktažodžiusMokytis iš failų…Sužinoti daugiauSužinokite daugiau apie "Crowdin"Sužinokite daugiau apie „gettext“ raktažodžiusSužinokite apie daugiskaitos formasMokytis iš failų…Sužinoti daugiauSužinokite daugiau apie "Crowdin"KairėEilutė %d iš failo „%s“ sugadinta (netinkami %s duomenys).Eilučių pabaigos:Plėtinių, atskirtų kabliataškiais, sąrašas (pvz., *.cpp;*.h):MO failai negali būti tiesiogiai redaguojami programoje Poedit.Mažosiomis raidėmisDidžiosiomis raidėmisNetinkama antraštė: „%s“Suliejami skirtumai…MinimizuotiProjekto vardas kuriam skirtas vertimasVardas:&Kitas nebaigtas&Kitas nebaigtasBūtina peržiūrėtiBūtina peržiūrėtiNiekada nefokusuoti eilučių sąrašo. Jei įjungta, turėsite naudoti Ctrl+rodyklės klaviatūros navigacijai, taip pat galėsite įvedinėti tekstą iš karto be TAB paspaudimo nekeičiant fokuso.NaujasNaujos eilutėsKita daugiskaitos formaKita daugiskaitos formaNeAtitikmenų nerastaNėra eilučių, kurias galima preliminariai išversti.Atitikmenų nerastaNerasta vertimo klaidų.Jūsų Crowdin paskyroje nėra vertimo projektų.Ne visos daugiskaitos formos išverstos.Nesankcionuota, prašome prisijungti dar kartą.Pastabos vertėjams:GeraiSeni žodžiaiVienasAtvertiAtidaryti Crowdin vertimąAtverti naudojant Crowdin…Atverti paskiausiai naudotąAtverti egzistuojantį PO failą ir redaguoti vertimą.Atverti katalogąAtverti katalogo šablonąAtverti naudojant Crowdin…Atverti redaktoriujeAtverti redaktoriujeAtverti...Atidaryti…ParinktysKita&Ankstesnis nebaigtas&Ankstesnis nebaigtasPO vertimasPO vertimų failaiPOT vertimų šablonaiĮklijuotiĮklijuoti ir sutapatinti stiliųKeliaiPrašome atidaryti ir redaguoti atitinkamą PO failą. Jei jį įrašysite, MO failas taip pat atnaujinamas.Prašom pirma išsaugoti failą. Kol neišsaugosite šio skyriaus bus negalima redaguoti.DaugiskaitaDaugiskaitos forma naudojama kataloge nėra įprasta %s kalbai.Daugiskaitos formos:Daugiskaita:PoeditPoedit - katalogų tvarkyklėPoedit yra lengvai naudojamas vertimų redaktorius.Vers&ti preliminariai…Versti preliminariaiIšversta preliminariaiPreliminariai išversta %u eilutėPreliminariai išverstos %u eilutėsPreliminariai išversta %u eilučiųVerčiama preliminariai…NuostatosNuostatos...Nustatymai…Ankstesnė daugiskaitos formaAnkstesnė daugiskaitos formaAnkstesnis šaltinio tekstas:Projekto pavadinimas ir versija:Projekto pavadinimas:Projektas:IšvalytiPašalinti ištrintus vertimusBaigti darbąBaigti %s darbąPaskiausiai naudotiPakartotiNuorodos:Įkelti iš naujoLiko: %dPakeistiPakeisti &viskąPakeisti &viskąSukeisti…Trūksta būtinos „Plurar-Forms“ antraštės.Iš naujoAtkurti vertimų atmintįVertimų atminties atkūrimas negrįžtamai panaikins visus saugomus vertimus iš jos. Negalėsite atšaukti šios operacijos.PeržiūrėtiDešinėĮrašytiĮrašyti &Kaip…Įrašyti &kaip…Įrašyti kaipĮrašyti kaip…Išsaugoti katalogąĮrašyti pakeitimusŽymėti &viskąPažymėti viskąPasirinkite aplankąPasirinkite kokius vertimo failus importuositePasirinkite pagrindinę kalbąPaslaugosNustatyti žymelę %iNustatyti kalbąNustatyti žymelę %iNurodyti kalbąShift+Rodyti visusRodyti šoninę juostąRodyti rašybą ir gramatikąRodyti būsenos juostąRodyti pakeitimusRodyti ar slėpti šoninę juostąRodyti šoninę juostąRodyti būsenos juostąAtnaujinus katalogą, rodyti suvestinęŠoninė juostaPrisijungtiAtsijungtiPrisijungtiPrisijungti prie CrowdinAtsijungtiPrisijungęs kaip:VienaskaitaVienaskaita:Išmanus kopijavimas/įdėjimasIšmanūs brūkšniaiIšmonios nuorodosIšmanios kabutėsRikiuoti pagal &Failų eilęRikiuoti pagal &ŠaltinįRikiuoti pagal &vertimąRikiuoti pagal &failų eilęRikiuoti pagal &šaltinįRikiuoti pagal &vertimąIšeities tekstų koduotė:Šaltinio kodas neprieinamas.Išeities failasIšeities failas pasikartojimai:Išeities tekstasŠaltinio tekstas — %sIšeities tekstas:Išeities failų raktažodžiaiIšeities failų keliaiKalbaRašyba ir gramatikaPradėti kalbėtiNebeskaitytiIšsaugoti vertimai:Ieškoma eilutėPakeitimaiPasiūlymaiSinchronizuotiSinchronizuoti su CrowdinSinchronizuoti vertimą su CrowdinSinchronizuojamaSusinchronizuoti nepavykoSinchronizavimas su %s nepavyko.Sinchronizuojama su %s…Sinchronizacija su Crowdin nepavyko.Sintaksės klaida Plural-Forms antraštėje („%s“).VAPaimti esamą PO ar POT failą ir sukurti iš jo naują vertimą.Paimti verčiamas eilutes iš esamo POT šablono.Teksto pakeitimasVertimų atmintyje nėra eilučių panašių į šio failo turinį. Tai efektyvu tik pusiau automatiniam vertimui, kai Poedit pakankamai išmoks iš jūsų rankiniu būdu verstų failų.Išsaugoti katalogo „%s“ su pasirinkta koduote nepavyko. Jis buvo išsaugotas UTF-8 koduote ir nustatymas atitinkamai pakeistas.Failas negali būti sukompiliuotas į MO formatą naudojimui.Atverti failo nepavyko.Failas gali būti sugadintas arba tokio formato kurio Poedit nesupranta.Failas buvo sukompiliuotas į MO formatą, tačiau jis tikriausiai neveiks teisingai.Failas saugiai išsaugotas ir sukompiliuotas į MO formatą, bet jis greičiausiai neveiks.Failas saugiai išsaugotas, bet jo neįmanoma sukompiliuoti į MO formatą ir naudoti.Failas saugiai išsaugotas.Paprasčiausias būdas užpildyti šį katalogą yra atnaujinti jį iš POT:Vertimas paruoštas naudoti, bet %d įrašas dar neišverstas.Vertimas paruoštas naudoti, bet %d įrašai dar neišversti.Vertimas paruoštas naudoti, bet %d įrašų dar neišversta.Vertimas paruoštas naudoti.Nėra vertimų. Neįprasta.Kilo bėdų gražiai formatuojant failą (bet jis buvo išsaugotas).Skaitant katalogą įvyko klaidų. Kai kurių įrašų gali trūkti arba jie gali būti sugadinti.Šių eilučių išeities tekstuose nebeliko. Dabar Poedit jas ištrins iš katalogo.Šios eilutės buvo rastos išeities tekstuose, tačiau neįtrauktos į katalogą. Dabar Poedit jas įtrauks į katalogą.Šį failą galima redaguoti tik per Crowdin tinklalapį.Projektas neturi jokių failų, kurie gali būti išversti su Poedit.Ši eilutė buvo rasta „Poedit“ vertimų atmintyje.Tai bus pridėta komandinėje eilutėje po kartą kiekvienam duomenų failui. %c išplės į failo pavadinimą.Tai bus pridėta komandinėje eilutėje po kartą kiekvienam duomenų failui. %f išplės į failo pavadinimą.Tai bus pridėta komandinėje eilutėje po kartą kiekvienam raktiniam žodžiui. %k išplės į raktinį žodį.Iš visoTransformacijosIšversta: %d iš %d (%d %%)Vertimo kalbaVertimų atmintisVertimo savybėsVertimo savybėsVertimų siūlymai:Vertimas - %sVertimas:DuUTF-8 (rekomenduojama)AtšauktiĮvyko išimtinė klaida: %sUnix (rekomenduojama)NeverstosAukštynAtnaujintiAtnaujinti viskąAtnaujinti visus projekto katalogusAtnaujinti katalogą - sinchronizuoti jį su išeities tekstaisAtnaujinti failą pagal POT šablonąAtnaujinti santraukąAtnaujinimaiAtnaujinamas katalogasAtnaujinti nepavykoKatalogo atnaujinimas nepavyko. Norėdami sužinoti daugiau, spauskite „Daugiau >>“.Atnaujinama naudotojo informacija…Įkeliami vertimai...Naudoti savo išraiškąSąrašui naudoti savo šriftą:Įvedimo laukams naudoti savo šriftą:Šiai kalbai naudoti numatytąsias taisyklesBe standartinių, naudokite šiuos raktažodžius (funkcijų pavadinimus), verstinų išeities tekstuose eilučių atpažinimui:Naudoti vertimų atminties pasiūlymusPatvirtintiPatvirtinimo rezultataiVersija %sLaukiama tapatybės nustatymo…Jus sveikina PoeditKas yra Crowdin?Atnaujinant iš šaltiniųTik pilnus žodžiusLangasWindowsNekelti teksto aplinkTaipTaipogi galite ištraukti veričiamas eilutes tiesiai iš pradinio kodo:Šis pakeitimas įsigalios paleidus "Poedit" iš naujo.Jūsų vardasPrarasite atliktus pakeitimus, jei jų neišsaugosite.Jūsų el. pašto adresas ir vardas bus naudojami tik paskutinio vertėjo nurodymui „GNU gettext“ failų antraštėse.NulisPriartintialtctrlnetrinti laikinų failų (derinimui)pvz. nplurals=2; plural=(n > 1);pereiti prie eilutės numeriuvykdyti poedit:// URIversti preliminariai iš VAshiftnežinoma kalbamano@adresas.lt„%s“ nėra tinkamas POT failas.poedit-2.0.6/locales/co.mo0000664000372000037200000012167013230132075012307 000000000000008) 9) E)P)<d))J) ) * *"* )*7*>* D*O*W*^*e*k*s************++$+(+ ,+ 9+F+O+ V+c+y+++++++++, ,&,B,W,l,,,,,,,,- %-:1-:l- --- - --- ..1(.Z.'_... ..7.6/>/)^// /]//A 0IK000!1*111"81[1 v11.11111222/2K2#g2222222(2(3 .3O3X3/s3 3333334&4=4T4 t44555#5:5A5R5 e5r55E5"5?6*A6l6Kq6"65677 !7 /7 =7J7]7 p7 }777777.77 8u%8888 888< 9F9 V9a9*t9!9!9'9 ::: : %:3:D:Y: n: x: : :::::::: :; ; ; ;,;<;[;^; << *<K< S< `<l<"q<;<<< = == 5=@=Y=v= == =<=.=->=>M>*V>>>> > >>{? ?????#??'?$@7C@%{@@@@@@cA~AA A2A AAA BB$B,B2BGB\BkBBB+C1CGCnMCECD> DHDPDWD@qDD-E EEEF FF%FFFGG 0G>GGGMGhGmGuG|G GG GGG(GGGzHHHH H H H HH"HHI"I 2I?I OI\IcI lIyIIII II!IJJJ'J/JBJ KJYJ bJlJ }J J JJJJJJKK*KK KK KK LL -L;L LLZLKaLLL LLL M MMMM(MM+ N5NN8N8NNN8OOOIPR!QctQQQ*RlERARR!SuS,TLHT`TTY|UmU:DVV;+W7gWmW_ X[mXXXXXY$YsUs]s+sssss$^t+t*tttt8u)Ku uuu,u'u&u2v Dv NvZvavqvvvvvvvvw"w4w =wGwPwfw|ww wwww&wxx+xx(x y!y 9y Gy(Qy=zyyyy y,y(z;z,Zz#zzzz@z90{ j{ x{4{%{{{{ | |&|| ||}%}+}*C}n}'}-}H}%%~K~j~ m~{~~<X] z<&,CZi;#D hsrfMTU $P12 ˄؄ .܅ -N c p z † ͆ ؆1-4T߇  !;N`2x%шڈ.6E _#։4 ?N ]jy  Ɋ %!5W%u!)ۋ,#Ռ  !2T!h \6Id t 3?%W(}6ݏU:7rF`&ΑKV6de'XgN7&ѕw3pVa]WvMGĘ I@Ful~5LcϜ + -$:RƞI3?*s#/Ÿ/,"tO!Ġ  7K%^ BšC LZߢ "=Xx$'3U^:tAud)x1Z]0n cg_ ?n!52yEe6hIQ XrUe~B-1 t H}XvS*{=)ufL=Vw O#D8*R$@L%~V\xl|MA"4E%,F<rsy aN5/]D>BgNY.&d{,K/  c(&@T4(PG0j!'2SPam[F69.mCqfb<Jli\Y }>q:[oCs+kW$kJphR#_OMp7zZ| zWo` 8v3b"^QK;wjH-?G7;T9+i`I (modified) (unsaved)%d entry%d entries%d entry was pre-translated.%d entries were pre-translated.%d error%d errors%d issue with the translation found.%d issues with the translation found.%s Format%s Preferences%s format&About&About Poedit&Apply&Back&Bookmarks&Cancel&Clear&Close&Copy&Delete&Done and Next&Done and next&Edit&File&GNU gettext Manual&GNU gettext manual&Go&Group By Context&Group by context&Help&New&Next >&Next Translation&Next translation&No&OK&Online Help&Online help&Open...&Paste&Preferences&Previous Translation&Previous translation&Purge Deleted Translations&Purge deleted translations&Quit&Redo&Save&Save as&Show References&Show references&Undo&Untranslated Entries First&Untranslated entries first&Update from Sources&Update from sources&Validate Translations&Validate translations&View&Yes(0 new, 0 obsolete)(Learn more about GNU gettext)(New: %i, obsolete: %i)(Use default language)(requires Windows 8 or newer)< &PreviousDrag and Drop Folders Here or use the + buttonDrag and drop folders here or use the + buttonAbout %sAccountsAdd CommentAdd commentAdd directory to the listAdditional keywordsAdvancedAll Translation FilesAlso use default keywords for supported languagesAlt+Always change focus to text input fieldAn item in input files list:An item in keywords list:AppearanceApplyAre you sure you want to delete the “%s” extractor?Are you sure you want to reset the translation memory?Automatically check for updatesAutomatically compile MO file when savingBackBase path:Beta versions contain the latest new features and improvements, but may be a bit less stable.Bring All to FrontBroken catalog file: plural form msgstr used without msgid_pluralBroken catalog file: singular form msgstr used together with msgid_pluralBrowseBy default, inaccurate results are filled in as well and marked as needing work. Check this option to only include accurate matches.C&atalogC&learCancelCannot create temporary directory.Cannot execute program: %sCapitalizeCatalogCatalog modified. Do you want to save changes?Catalog propertiesCatalogs &ManagerCatalogs &managerCatalogs ManagerChange UI languageCharset:Check Document NowCheck Grammar With SpellingCheck Spelling While TypingCheck for errors in the translationCheck spellingClearClear TranslationClear the commentClear translationCloseCollaborate on a Translation with OthersCollaborate on a translation with othersCommand to extract translations:Comment:Compiled Translation FilesConfigure source code extraction in Properties.ConfirmationCopyCopy From SingularCopy from Source TextCopy from singularCopy from source textCorrect Spelling AutomaticallyCreate New TranslationCreate new translationCreate new translations projectCrowdin errorCrowdin is an online localization management platform and collaborative translation tool. Poedit can seamlessly sync PO files managed at Crowdin.Ctrl+Cu&tCutDatabase size on disk:DeleteDelete extractorDelete the projectDirectories:Display Entry &IDsDisplay entry &IDsDo you really want to do mass update of all catalogs in this project?Do you want to delete the project?Do you want to remove all translations that are no longer used?Don’t mark exact matches as needing workDownDownload a file from Crowdin project, translate and sync your changes back.Downloading latest translations…Downloading translations is disabled in this project.E&xitEditEdit &CommentEdit &commentEdit CommentEdit a TranslationEdit a translationEdit commentEdit projectEdit the projectEditingEmail:EnterEnter Full ScreenEntries in the catalog are probably incorrect.Entries with Errors FirstEntries with errors firstEntries with errors were marked in red in the list. Details of the error will be shown when you select such an entry.Error opening fileError opening file %s!Error saving catalogEverythingExcluded pathsExtract from sourcesExtract text from source files in the following directories:Extractor setupExtractorsFailed command: %sFailed to communicate with Poedit process.Failed to load extracted catalog.Failed to merge gettext catalogs.Failed to update translation memory: %sFileFile:FindFind NextFind PreviousFind in commentsFind in source textsFind in translationsFind nextFind previousFix LanguageFix languageFix the HeaderFix the headerForm %iFrequentGeneralGo to Bookmark %iGo to bookmark %iHTML FilesHelpHide %sHide OthersHide SidebarHide Status BarHide this notification messageIDIf you continue with purging, all translations marked as deleted will be permanently removed. You will have to translate them again if they are added back in the future.Ignore caseInclude beta versionsInformation about the translatorInstallInvalid fileInvocation:KeepLanguage Code or Name (e.g. en_GB)Language of the translation is the same as source language.Language of the translation:Language selectionLanguage:Last modifiedLearn About Gettext KeywordsLearn MoreLearn More About CrowdinLearn about gettext keywordsLearn about plural formsLearn moreLearn more about CrowdinLine endings:List of extensions separated by semicolons (e.g. *.cpp;*.h):MO files can’t be directly edited in Poedit.Make Lower CaseMake Upper CaseMinimizeName of the project the translation is forName:Ne&xt UnfinishedNe&xt unfinishedNeeds WorkNeeds workNever let the list of strings take focus. If enabled, you must use Ctrl-arrows for keyboard navigation but you can also type text immediately, without having to press Tab to change focus.NewNew stringsNext Plural FormNext plural formNoNo Matches FoundNo entries could be pre-translated.No matches foundNo problems with the translation found.No references for the selected item.No translation projects listed in your Crowdin account.Not authorized, please sign in again.Notes for translators:OKObsolete stringsOneOnly enable if you trust the quality of your TM. By default, all matches from the TM are marked as needing work and should be reviewed before use.Only fill in exact matchesOpenOpen Crowdin translationOpen RecentOpen an existing PO file and edit the translation.Open catalogOpen catalog templateOpen in EditorOpen in editorOpen...OptionsOtherP&revious UnfinishedP&revious unfinishedPO TranslationPO Translation FilesPOT Translation TemplatesPOT files are only templates and don’t contain any translations themselves. To make a translation, create a new PO file based on the template.PastePaste and Match StylePathsPlease open and edit the corresponding PO file instead. When you save it, the MO file will be updated as well.Please save the file first. This section cannot be edited until then.PluralPlural forms expression used by the catalog is unusual for %s.Plural:PoeditPoedit - Catalogs managerPoedit automatically fixed invalid content in the file “%s”.Poedit can attempt to fill in new entries from only previous translations in the file or from your entire translation memory. Using the TM won’t be very effective if it’s near-empty, but it will get better as you add more translations to it.Poedit is an easy to use translations editor.Pre-translatePre-translatedPre-translating…Pre-translation automatically finds exact or fuzzy matches for untranslated strings in the translation memory and fills in their translations.PreferencesPreferences...Preserve formatting of existing filesPrevious Plural FormPrevious plural formPrevious source text:Project name and version:Project name:Project:PurgePurge deleted translationsQuitQuit %sRecentRedoReferences:RefreshRemaining: %dReplaceReplacement stringRequired header Plural-Forms is missing.ResetReset translation memoryResetting the translation memory will irrevocably delete all stored translations from it. You can’t undo this operation.ReviewSaveSave asSave catalogSave changesSelect &AllSelect AllSelect directorySelect translation files to importSelect your preferred languageServicesSet Bookmark %iSet LanguageSet bookmark %iSet languageShift+Show AllShow SidebarShow Spelling and GrammarShow Status BarShow SubstitutionsShow or hide the sidebarShow sidebarShow status barShow summary after catalog updateSidebarSign InSign OutSign inSign in to CrowdinSign outSigned in as:SingularSingular:Smart Copy/PasteSmart DashesSmart LinksSmart QuotesSort by &File OrderSort by &SourceSort by &TranslationSort by &file orderSort by &sourceSort by &translationSource code charset:Source code extractors are used to find translatable strings in the source code files and extract them so that they can be translated.Source code not available.Source fileSource file occurrence:Source textSource text — %sSource text:Sources KeywordsSources PathsSources keywordsSources pathsSpeechSpellchecking is disabled, because the dictionary for %s isn’t installed.Spelling and GrammarStart SpeakingStop SpeakingStored translations:String to findSubstitutionsSuggestionsSuggestions are not available if the translation language is not set correctly. Other features, such as plural forms, may be affected as well.SyncSync with CrowdinSynchronize the translation with CrowdinSyncing with Crowdin failed.Syntax error in Plural-Forms header ("%s").TMTake an existing PO file or POT template and create a new translation from it.Take translatable strings from an existing POT template.Text ReplacementThe TM doesn’t contain any strings similar to the content of this file. It is only effective for semi-automatic translations after Poedit learns enough from files that you translated manually.The file cannot be compiled into the MO format and used.The file cannot be opened.The file contained duplicate items, which is not allowed in PO files and would prevent the file from being used. Poedit fixed the issue, but you should review translations of any items marked as needing work and correct them if necessary.The file may be either corrupted or in a format not recognized by Poedit.The file was compiled into the MO format, but it will probably not work correctly.The file was saved safely and compiled into the MO format, but it will probably not work correctly.The file was saved safely, but it cannot be compiled into the MO format and used.The file was saved safely.The old source text (before it changed during an update) that the now-inaccurate translation corresponds to.The simplest way to fill this catalog is to update it from a POT:The translation is ready for use, but %d entry is not translated yet.The translation is ready for use, but %d entries are not translated yet.The translation is ready for use.The translations were marked as needing work, because they may be inaccurate. You should review them for correctness.There are no translations. That’s unusual.There was a problem formatting the file nicely (but it was saved all right).There were errors when loading the catalog. Some data may be missing or corrupted as the result.These settings affect internal formatting of PO files. Adjust them if you have specific requirements e.g. because of version control.These strings are no longer in the sources. Poedit will remove them from the catalog now.These strings were found in the sources but were not in the catalog. Poedit will add them to the catalog now.This file can only be edited in Crowdin’s web interface.This is the command used to launch the extractor. %o expands to the name of output file, %K to list of keywords, %F to list of input files, %C to charset flag (see below).This project has no files that can be translated in Poedit.This string was found in Poedit’s translation memory.This will be attached to the command line only if source code charset was given. %c expands to charset value.This will be attached to the command line once for each input file. %f expands to the filename.This will be attached to the command line once for each keyword. %k expands to the keyword.TotalTransformationsTranslated: %d of %d (%d %%)Translation LanguageTranslation MemoryTranslation Needs &WorkTranslation PropertiesTranslation needs &workTranslation propertiesTranslation suggestions:Translation — %sTranslation:Translations couldn’t be updated from the source code, because no code was found in the location specified in the catalog’s Properties.TwoUTF-8 (recommended)UndoUnhandled exception occurred: %sUnix (recommended)UntransUpUpdateUpdate allUpdate all catalogs in the projectUpdate catalog - synchronize it with sourcesUpdate from POTUpdate summaryUpdatesUpdating catalogUpdating failedUpdating the catalog failed. Click on 'Details >>' for details.Updating user information…Uploading translations…Use custom expressionUse custom list font:Use custom text fields font:Use default rules for this languageUse these keywords (function names) to recognize translatable strings in source files:Use translation memoryValidateValidation resultsVersion %sWaiting for authentication…Welcome to PoeditWhat is Crowdin?When updating from sourcesWhole words onlyWindowWindowsWrap aroundWrap at:YesYou can also extract translatable strings directly from the source code:You must restart Poedit for this change to take effect.Your NameYour name and email address are only used to set the Last-Translator header of GNU gettext files.ZeroZoomaltctrle.g. nplurals=2; plural=(n > 1);fuzzy match within the filehandle a poedit:// URIpre-translate from TMshiftunknown languageyour_email@example.comProject-Id-Version: poedit Report-Msgid-Bugs-To: help@poedit.net POT-Creation-Date: 2017-12-05 15:52+0100 PO-Revision-Date: 2017-07-27 03:14-0400 Last-Translator: vslavik Language-Team: Corsican Language: co_FR MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=(n > 1); X-Generator: crowdin.com X-Crowdin-Project: poedit X-Crowdin-Language: co X-Crowdin-File: /locales/poedit.pot (mudificatu) (micca arregistratu)%d entrata%d entrate%d entrata hè stata pre-tradutta.%d entrate sò state pre-tradutte.%d sbagliu%d sbaglii%d penseru trovu in a traduzzione.%d penseri trovi in a traduzzione.Forma %sPreferenze di %sForma %s&Apprupositu&Apprupositu di Poedit&Affettà&Precedente&Indette&Abbandunà&Spurgulà&ChjodeCu&piàCaccià&Fattu eppò Seguente&Fattu eppò seguente&Mudificà&Schedariu&Ducumentazione GNU gettext&Ducumentazione GNU gettext&Và&Gruppu da Contestu&Gruppu da contestuAi&utu&Novu&Seguente >Traduzzione &SeguenteTraduzzione &seguenteI&nnò&VaiAiutu &InlineaAiutu &inlinea&Apre...&Incullà&PreferenzeTraduzzione &PrecedenteTraduzzione &precedenteSpur&gulà e Traduzzioni CacciateSpur&gulà e traduzzioni cacciate&Esce&RifàA&rregistrà&Arregistrà cù u nome&Affissà e Referenze&Affissà e referenze&Disfà&Elementi Micca Tradutti in Primu&Elementi micca tradutti in primu&Mudificà da i Testi d'Urigine&Mudificà da i testi d'urigine&Validazione di e Traduzzione&Validazione di e traduzzione&Affissà&Iè(0 nova, 0 anziana)(Sapene di più nant'à GNU gettext)(Nove : %i, anziane : %i)(Impiegà a lingua predefinita)(richiede Windows 8 o più recente)< &PrecedenteSguillà é Depone i Cartulari Quì o impiegate u buttone +Sguillà é depone i cartulari quì o impiegate u buttone +Apprupositu di %sContiAghjunghje un CummentuAghjunghje un cummentuAghjunghje u cartulare à a listaParolle chjave addiziunaleEspertuTutti Schedarii di TraduzzioneImpiegà dinù parolle chjave predefinite per e lingue accettateAlt+Dà a primura à u testu piuttostu chì à a listaUn elementu in a lista di schedarii d'entrata :Un elementu in a lista di e parolle chjave :AspettuAffettàSite sicuru di vulè squassà l'attrezzu d'estrazzione “%s” ?Site sicuru di vulè viutà a memoria di traduzzione ?Cuntrollà autumaticamente i rinnoviPruduce autumaticamente u schedariu MO à l'arregistramentuPrecedentePasseghju di basa :E versioni 'beta' cuntenenu l'ultimi funzioni è migliuramenti ma ponu esse un pocu menu stabule.Mette Tuttu di FronteSchedariu di catalogu alteratu : forma plurale msgstr impiegata senza msgid_pluralSchedariu di catalogu alteratu : forma singulare msgstr impiegata inseme cù msgid_pluralSfugliàDi bona regula, i resulti chì s'assumiglianu sò riempiuti dinù è annutati cum'è dubbitosi. Attivà st'ozzione per riempie solu e frase uguale.&Catalogu&ViutàAbbandunàÙn pò micca creà u cartulare timpurariu.Ùn pò micca eseguisce u prugramma : %sTuttu in MaiusculeCataloguCatalogu mudificatu. Vulete arregistrà i cambiamenti ?Pruprietà di u cataloguA&mministratore di CataloghiA&mministratore di cataloghiAmministratore di CataloghiCambià a lingua di l'interfacciaMazzu di caratteri :Verificà u ducumentu avàVerificà a gramatica cù l'ortugrafiaVerificà l'ortugrafia scrivenduCircà i sbaglii in a traduzzioneVerificà l'ortugrafiaSquassà&Viutà a TraduzzioneViutà u cummentu&Viutà a traduzzioneChjodeCullaburà cù d'Altri nant'à una TraduzzioneCullaburà cù d'altri nant'à una traduzzioneCumanda per estrae e traduzzioni :Cummentu :Schedarii di Traduzzione Trasfurmati da una CumpilazioneSceglie l'ozzioni di l'estrazzione da i schedarii d'urigine in Pruprietà.CunfirmazioneCupiàCupià da SingulareCupià da u Testu d'&UrigineCupià da singulareCupià da u testu d'&urigineCurrege l'ortugrafia autumaticamenteCreà una Nova TraduzzioneCreà una nova traduzzioneCreà un novu prughjettu di traduzzioniSbagliu da CrowdinCrowdin hè una piattaforma inlinea di ghjestione di lucalizazione è un attrezzu di traduzzione in collaborazione. Poedit pò dinù sincrunizà i schedarii PO amministrati da Crowdin.Ctrl+&TagliàTagliàDimensione di a banca di dati nant'à u dischettu :CacciàSquassà l'attrezzu d'estrazzioneCaccià u prughjettuCartulari :Affissà l'&ID di l'EntrateAffissà l'&ID di l'entrateSite sicuru di vulè mudificà in massa tutti i cataloghi di stu prughjettu ?Vulete caccià u prughjettu ?Vulete toglie tutte e traduzzioni ch'ùn sò più impiegate ?Ùn marcate micca e frase uguale cum'è dubbitoseGhjòScaricà un schedariu à partesi di un prughjettu Crowdin, traduce è sincrunizà e vostre mudificazioni dopu.Scaricamentu in corsu di l'ultime traduzzioni…Scaricà e traduzzioni ùn hè micca pussibule cù stu prughjettu.&EsceMudificà&Mudificà u Cummentu&Mudificà u cummentuMudificà u CummentuMudificà una TraduzzioneMudificà una traduzzioneMudificà u cummentuMudificà u prughjettuMudificà u prughjettuMudificazioneIndirizzu elettronicu:EntréePassà in Screnu SanuQualchì entrata in u catalogu hè gattiva.Elementi cù Sbaglii in PrimuElementi cù &sbaglii in primuEntrate cù sbaglii sò marcate di rossu in a lista. I detaglii di u sbagliu seranu videvule quandu l'entrata serà selezziunata.Sbagliu à l'apertura di u schedariuSbagliu à l'apertura di u schedariu '%s' !Sbagliu à l'arregistramentu di u cataloguTuttuPasseghji escludiEstrae da i schedarii d'urigineEstrae testu da i schedarii d'urigine in sti cartulari :Installazione di l'attrezzu d'estrazzioneEstrazzioneCumanda fiasca : %sFiascu per cummunicà cù u prucessu Poedit.Fiascu per caricà u catalogu estrattu.Fiascu per unisce i cataloghi gettext.Fiascu per rinnovà a memoria di a traduzzione: %sSchedariuSchedariu :CircàCircà SeguenteCircà PrecedenteCircà in i cummentiCircà in i testi d'urigineCircà in e traduzzioniCircà seguenteCircà precedenteCurrege a LinguaCurrege a linguaCurrege a RubricaCurrege a rubricaForma %iFrequenteGeneraleAndà à l'Indetta %iAndà à l'indetta %iSchedarii HTMLAiutuPiattà %sPiattà l'AltriPiantà a Barra LateralePiattà a Barra di StatuPiattà stu messaghju di nutificazioneIDS'è voi cuntinuate cusì, tutte e traduzzioni marchate cum'è cacciate seranu tolte per sempre. Ci vulerà à traducele torna s'elle sò aghjunte à l'avvene.Ùn sfarenzià micca maiuscule è minusculeInclude e versioni 'beta'Infurmazione apprupositu di u traduttoreInstallàSchedariu inaccettevuleInvucazione :CunservàCodice o Nome di a Lingua (i.e. : en_GB)A lingua di a traduzzione hè listessa chì quella d'urigine.Lingua di a traduzzione :Scelta di a linguaLingua :Mudificatu uPer Amparà nant'à e Parolle Chjave GettextPer Sapene di PiùSapene di Più Nant'à CrowdinPer amparà nant'à e parolle chjave gettextPer amparà nant'à e forme pluralePer sapene di piùSapene di più nant'à CrowdinFine di a linea :Lista di i stinzioni separati da punti-virgule (i.e. *.cpp;*.h):I schedarii MO ùn ponu micca esse mudificati cù Poedit.Fà MinusculeFà MaiusculeImpuculì in lu spaziu di nutificazione di u sistemaNome di prughjettu di sta traduzzioneNome :Incumpletu S&eguenteIncumpletu s&eguenteDubbitosuDubbitosaÙn dà mai a primura à a lista di frase. Osinnò, ci vole à impiegà e Ctrl-fleccie per navigà, ma hè ancu pussibule di scrive u testu cusì, senza pone nant'à Tab per cambià a primura.NovuFrase noveForma Plurale SeguenteForma plurale seguenteInnòAlcuna Occurrenza TrovaAlcuna entrata ùn hè stata pre-tradutta.Alcuna occurrenza trovaÙn ci hè penseri cù sta traduzzione.Alcuna referenza per l'elementu selezziunatu.Ùn ci hè micca di prughjettu di traduzzione in u vostru contu Crowdin.Micca auturizatu, autenticassi torna.Annutazioni per i traduttori :OKFrase anzianeUnuAttivà st'ozzione solu s'è voi site sicuru di a vostra MdT. Osinnò tutte e suggestioni chì venenu di a MdT sò annutate cum'è dubbitose è deveranu esse verificate nanzu d'impiegalle.Riempie solu e frase ugualeApreApre una traduzzione CrowdinApre RecenteApre un schedariu PO chì esiste è mudificà a traduzzione.Apre un cataloguApre u mudellu di cataloguApre cù l'EditoreApre cù l'editoreApre...OzzioniAltruIncumpletu P&recedenteIncumpletu p&recedenteTraduzzione POSchedarii di Traduzzione POMudelli di Traduzzione POTI schedarii POT sò solu mudelli è ùn cuntenenu micca di traduzzione. Per fà una traduzzione, create un novu schedariu PO appughjatu nant'à u mudellu.IncullàIncullà è fà Currisponde u StiluPasseghjiAprite è mudificate u schedariu PO currispondente. Quandu l'arregistrarete, u schedariu MO serà mudificatu dinù.In primu locu, ci vole à arregistrà u schedariu. Osinnò sta sezzione ùn pò micca esse mudificata.PluraleL'espressione di e forme plurale impiegata da u catalogu hè strana per a lingua %s.Plurale :PoeditPoedit - Amministratore di cataloghiPoedit hà currettu autumaticamente u cuntenutu gattivu in u schedariu “%s”.Poedit pò pruvà di riempie e nove frase solu da e vostre traduzzioni di stu schedariu osinnò da a memoria di traduzzione sana. L'impiegu di a MdT ùn serà micca efficiente s'ella hè guasi viota, ma serà più bona quandu ci serà parechje traduzzioni.Poedit hè un editore di traduzzione faciule à aduprà. A traduzzione in lingua corsa hè statu fatta da Patriccollu di Santa Maria Sichè.Pre-traducePre-traduttaPre-traduzzione in corsu...A pre-traduzzione trova autumaticamente in a memoria di traduzzione e frase uguale o dubbitose di e frase micca tradutte è riempielle cù a traduzzione trova.PreferenzePreferenze...Cunservà a forma di i schedarii chì esistenuForma Plurale PrecedenteForma plurale precedenteU precedente testu d'urigine :Nome è versione di prughjettu :Nome di prughjettu :Prughjettu :SpurgulàSpurgulà e traduzzioni cacciateEsceEsce %sRecenteRifàReferenze :AttualizàRestu : %dRimpiazzàFrasa di rimpiazzamentuManca a rubrica Forme-Plurale chì hè richiesta.ViutàViutà a memoria di traduzzioneA viotatura di a memoria di traduzzione caccierà tutte e traduzzioni chì sò arregistrate dentru. Ùn pudete micca disfà st'operazione.RevistaArregistràArregistrà cù u nomeArregistrà u cataloguArregistrà i cambiamenti&Selezziunà TuttuSelezziunà TuttuSelezziunà u cartulareSelezziunà i schedarii di traduzzione à impurtàSelezziunà a vostra lingua preferitaServiziiDefinisce l'Indetta %iDefinisce a LinguaDefinisce l'indetta %iDefinisce a linguaMaiusc+Affissà TuttuAffissà a Barra LateraleAffissà Ortugrafia è GramaticaAffissà a Barra di StatuAffissà i SustituzioniAffissà o piantà a barra lateraleAffissà a barra lateraleAffissà a barra di statuAffissà u riassuntu dopu à u rinnovu di u cataloguBarra LateraleAutenticazioneScunnettassiAutenticazioneAutenticassi à CrowdinScunnettassiAutenticatu cum'è :SingulareSingulare :Cupià/Incullà AstutuLineette AstuteLiami AstutiVirgulette AstuteClassificà da l'&Ordine di SchedariuClassificà da u Testu d'&UrigineClassificà da a &TraduzzioneClassificà da l'&ordine di schedariuClassificà da u testu d'&urigineClassificà da a &traduzzioneMazzu di caratteri di u testu d'urigine :I prugrammi d'estrazzione sò fatti per truvà e frase traducevule in i schedarii di testu d'urigine, è estraelle per ch'elle sianu tradutte.U testu d'urigine ùn hè micca dispunibule.Schedariu d'urigineOccurrenza di schedariu d'urigine :Testu d'urigineTestu d'urigine — %sTestu d'urigine :Parolle Chjave di Testi d'UriginePasseghji d'UrigineParolle chjave di testi d'uriginePasseghji d'urigineDiscussioneU cuntrollu d'ortugrafia hè disattivatu, perchè u dizziunariu %s ùn hè micca installatu.Ortugrafia è GramaticaPrincipià un DiscorsuPiantà u DiscorsuTraduzzioni ammanugliate :Frasa à circàSustituzioniSuggestioniE suggestioni ùn sò micca dispunibule s'è a lingua di traduzzione ùn hè micca definita bè. D'altre funzioni, cum'è e forme plurale, ponu esse affettate dinù.SincrunizàSincrunizà cù CrowdinSincrunizà a traduzzione cù CrowdinFiascu di a sincrunisazione cù Crowdin.Sbagliu di sintassa in a rubrica Forme-Plurale ("%s").MdTParte da un schedariu PO o un mudellu POT chì esiste per creà una nova traduzzione.Piglià e frase traducevule da un mudellu POT chì esiste.Rimpiazzamentu di TestuA MdT ùn cuntene alcuna frasa simile à u cuntenutu di stu schedariu. Quessu funziona bè per traduzzioni mezu-autumatiche dopu chì Poedit abbia amparatu abbastanza da i schedarii tradutti da una manera manuale.U schedariu ùn pò micca esse trasfurmatu in a forma MO è impiegatu.U schedariu ùn pò micca esse apertu.U schedariu cuntinia elementi in doppiu, ciò ch'ùn hè micca permessu in i schedarii PO è puderia impedisce u schedariu d'esse impiegatu. Poedit hà currettu u penseru, ma ci vole à verificà e traduzzioni di l'elementi chì sò marcati cum'è dubbitosi è podasse à curregelli.U schedariu pò esse alteratu o in una forma micca ricunnisciuta da Poedit.U schedariu hè statu trasfurmatu in a forma MO, ma podasse ùn funziunerà micca bè.U schedariu hè statu arregistratu è trasfurmatu in a forma MO, ma ùn puderà micca funziunà bè.U schedariu hè statu arregistratu bè, ma ùn pò micca esse trasfurmatu in a forma MO è impiegatu.U schedariu hè statu arregistratu bè.U vechju testu d'urigine (nanzu ch'ellu sia cambiatu) chì curresponde à a traduzzione imprecise avà.A manera a più simplice di riempie stu catalogu hè di rinnuvallu da un POT :A traduzzione hè pronta à l'approdu, ma %d entrata ùn hè micca tradutta.A traduzzione hè pronta à l'approdu, ma %d entrate ùn sò micca tradutte.A traduzzione hè pronta à l'approdu.E traduzzioni sò state marcate cum'è dubbitose, perchè sò podasse imprecise. Ci vole à verificà a so accuratezza.Ùn ci hè mancuna traduzzione. Quessa pare stranu.Ci era un penseru durante a creazione di u schedariu (ma hè statu creatu quantunque).Ci eranu sbaglii durante u caricamentu di u catalogu. Podasse qualchì datu manca o hè alteratu.Ste preferenze affettanu a forma interna di i schedarii PO. Accunciatele s'è voi avete una dumanda particulare, per indettu, un cuntrollu di versione.Ste frase ùn sò più in i testi d'urigine. Poedit hà da togliele da u catalogu avà.Ste frase sò state trove in i testi d'urigine ma micca in u catalogu. Poedit hà da aghjunghjelle à u catalogu avà.Stu schedariu pò esse mudificatu solu in l'interfaccia web di Crowdin.Ghjè a cumanda impiegata per lancià l'attrezzu d'estrazzione. %o hè u nome di schedariu in esciuta, %K per a lista di e parolle chjave, %F per a lista di schedarii in entrata, %C per l'ozzione di u mazzu di caratteri (fighjate inghjò).Stu prughjettu ùn hà alcunu schedariu chì pò esse traduttu in Poedit.Sta frasa hè statu trova in a memoria di traduzzione di Poedit.Quessu serà ligatu à a linea di cumanda solu s'è ci hè un mazzu di caratteri di u testu d'urigine. %c estende à stu valore.Quessu serà ligatu à a linea di cumanda una volta per ogni schedariu in entrata. %f estende à u nome di schedariu.Quessu serà ligatu à a linea di cumanda una volta per ogni parolla chjave. %k estende à a parolla chjave.TutaleTrasfurmazioniTraduttu : %d frà %d (%d %%)Lingua di TraduzzioneMemoria di TraduzzioneTraduzzione &DubbitosaPruprietà di a TraduzzioneTraduzzione &dubbitosaPruprietà di a traduzzioneSuggestioni di traduzzione :Traduzzione — %sTraduzzione :E traduzzioni ùn ponu micca esse mudificate à partesi di u testu d'urigine, perchè alcunu testu ùn hè statu trovu in u locu indicatu in e Pruprietà di u catalogu.DuiUTF-8 (ricumandatu)DisfàUn anumalia imprevista s'hè affaccata : %sUnix (ricumandatu)Micca traduttuSùMudificàMudificà tuttuMudificà tutti i cataloghi di stu prughjettuMudificà u catalogu - Sincrunizallu cù i testi d'urigineMudificà da un POTRiassuntu di e mudificazioniRinnoviMudificazione di cataloguMudificazione fiascaMudificazione di u catalogu falsa. Sceglie 'Detaglii >>' per sapene più.Mudificazione di l'infurmazioni di l'utilizatore...Incaricamentu in corsu di e traduzzioni...Impiegà un espressione predefinitaImpiegà una grafia persunalizata per a lista :Impiegà una grafia persunalizata per i testi :Impiegà e regule predefinite per sta linguaAduprate ste parolle chjave (nomi di funzioni) per ricunnosce e frase chì sò à traduce in i schedarii d'urigine :Impiegà a memoria di traduzzioneValidazioneRisultati di a validazioneVersione %sIn attesa d'autenticazione…Benvenuta in PoeditCosa hè Crowdin ?S'è mudificazione da testi d'urigineSolu e parolle saneFinestraWindowsCircunvoglieGirà à :IèPudete dinù estrae e frase traducevule da i schedarii d'urigine :Ci vole à rilancià Poedit per piglià stu cambiamentu in effettu.U vostru NomeI vostri nome è indirizzu elettronicu sò solu impiegati per definisce a rubrica di l'Ultimu Traduttore in i schedarii gettext GNU.ZeruIngrandamentualtctrli.e. : nplurals=2; plural=(n > 1);frase dubbitose di u schedariuManighjà un poedit:// URIpre-traduce à partesi di a MdTmaiusclingua scunnisciutau_vostru_indirizzu_email@esempiu.compoedit-2.0.6/locales/tg.mo0000664000372000037200000015453013230132042012313 00000000000000 * * **<*1+JD+g+ +, ,, !,/,6, <,G,O,V,],c,k,z,,,,,,,,,,,,--%-)- -- :-G-P-Y- `-m-}--------- ..$.@.\.q........ /!/ ?/:K/:/ /// / //0#0,01B0t0'y000 00706!1X1)x11 1]12A#2Ie222;3D3K3"R3u3 33.3333 44-464I4e4#44444445( 5(45]5 x5555/5 5 66#696L6b6666 66o7u7z7~7777 777E7"98?\88*888K8">95a9999 9 9 999 : ::/:7:>:D:.V:::u:/;B;Y; n;y;;<;";; <<*+<!V<!x<'<<<< < <<<=$= 9= C= Q= ^=k=z====== === = ==>&>)> >> >? ? +?7?"ESEhEwEEE7F=FSFnYFEFG>GTG\GcG@}GG-H HHHI II%III J"J OKO \OjO {OOKOOO PP#P 2P @PLPPP(PQ+8QdQNgQ8QQR8RRSITRPTcTQUYUltUAU#V!VuV,JWLwW`W%XYXmY:sYY;ZZ7ZmZ_<[[[[[\+\@\S\k\\\\\ \\v]z]] ]]]]] ]"],^4^D^S^[^l^?|^^^^ __#<_V`____ __`%`6`Q`b`i` q`}``H`7` aaawa|aaa aaaaaa b!"bDbd2dNdujdd{dte(f:fTfffffffff gg8gOOgOg g ghh0hJh.\h.h hhh h i"i(i,iGibiuiiiiii<j<Ejj#jj'j"j"k?k5Xk5k9k9k8lWl ull lCll, mH8m mymy n nnn"n"n@n';oco(roopg#p?pRpq8q|Rqq0Qrcrrrs'sstuK6uvvvIv9wPwjww0x+5x+ax*x7xxy("y1Ky5}y(yyy&z /z&Pzwz8z8z1zB*{ m{*w{6{a{ ;|H|<f|A|<|A"}4d}"}'}<}!~ 4~U[kAz5"+->-lS@'(mP'Iq[-' U%b%$*ӄ*$)&Nu Ņ-˅IOCO$Շ7:2m'v(hLjE0,v#6YUv;̊ *J0f"-(1"M"p**  ) )5_ s~,5ʍ7@8 yI:Ώ( 32f|hP)z &C*9JRIג!9A{k%))0 /7g,o, ɕ  ((1Z-_L-ژBRK{F agBW.f,iלA&[&& **<g&{)̞*'6({ΡJ_"w^Zi0֥ȦݦP$B$g#&ק ;CR f"q' !9B|J *۪*&1$X,})(ԫ77U$ì$ݬ$%3JE~5ĭ#P3o5Nٮ(BXk"ׯ?%H#n#($߰($$Mr/±4Ѳ' ,K)k!$(ܳx6 ߴ()H]r*6ɶ:U;u=ϸrS)ƺGɽAOn7=RU,|fqUa CM (.J2h%2%&AWgJ#Os@" "L@]$.A"aC6Y.1eMW4h E"B3T(~",0+5>a% 7 FU!;-nZ_@5.-H87RSDv~h`SK/p[<sq::p6Eix4QJD.0U0&em$Abe>N%>|4dT |,j% =mCcYX`B3)37V')ROO}H~6Y=BT9a(M2X_oL#Jw^['$tghl laLdVC9Nq&M+] tr!(oIQG r8# " k2gxz"]cfk@1Fun{vjbfW*yPy??{Pu/s Kz^ I;w1GW, A*E <\5i\ }Z+ (modified) (unsaved)%d entry%d entries%d entry was pre-translated.%d entries were pre-translated.%d error%d errors%d issue with the translation found.%d issues with the translation found.%i line of file “%s” was not loaded correctly.%i lines of file “%s” were not loaded correctly.%s Format%s Preferences%s format&About&About Poedit&Apply&Back&Bookmarks&Cancel&Clear&Close&Copy&Delete&Done and Next&Done and next&Edit&File&Find…&GNU gettext Manual&GNU gettext manual&Go&Group By Context&Group by context&Help&New&Next >&Next Translation&Next translation&No&OK&Online Help&Online help&Open...&Open…&Paste&Preferences&Preferences…&Previous Translation&Previous translation&Purge Deleted Translations&Purge deleted translations&Quit&Redo&Save&Save as&Show References&Show references&Undo&Untranslated Entries First&Untranslated entries first&Update from Sources&Update from sources&Validate Translations&Validate translations&View&Yes(0 new, 0 obsolete)(Learn more about GNU gettext)(New: %i, obsolete: %i)(Use default language)(requires Windows 8 or newer)< &PreviousDrag and Drop Folders Here or use the + buttonDrag and drop folders here or use the + buttonAbout %sAccountsAdd CommentAdd commentAdd directory to the listAdditional keywordsAdvancedAll Translation FilesAlso use default keywords for supported languagesAlt+Always change focus to text input fieldAn item in input files list:An item in keywords list:AppearanceApplyAre you sure you want to delete the “%s” extractor?Are you sure you want to reset the translation memory?Automatically check for updatesAutomatically compile MO file when savingBackBase path:Beta versions contain the latest new features and improvements, but may be a bit less stable.Bring All to FrontBroken catalog file: plural form msgstr used without msgid_pluralBroken catalog file: singular form msgstr used together with msgid_pluralBrowseBy default, inaccurate results are filled in as well and marked as needing work. Check this option to only include accurate matches.C&atalogC&learCancelCannot create temporary directory.Cannot execute program: %sCapitalizeCatalogCatalog modified. Do you want to save changes?Catalog propertiesCatalogs &ManagerCatalogs &managerCatalogs ManagerChange UI languageCharset:Check Document NowCheck Grammar With SpellingCheck Spelling While TypingCheck for errors in the translationCheck for updates…Check spellingClearClear TranslationClear the commentClear translationCloseCollaborate on a Translation with OthersCollaborate on a translation with othersCollecting source files…Command to extract translations:Comment:Compile to MO…Compiled Translation FilesConfigure source code extraction in Properties.ConfirmationCopyCopy From SingularCopy from Source TextCopy from singularCopy from source textCorrect Spelling AutomaticallyCreate New TranslationCreate new translationCreate new translations projectCrowdin errorCrowdin is an online localization management platform and collaborative translation tool. Poedit can seamlessly sync PO files managed at Crowdin.Ctrl+Cu&tCutDatabase size on disk:DeleteDelete extractorDelete the projectDirectories:Display Entry &IDsDisplay entry &IDsDo you really want to do mass update of all catalogs in this project?Do you want to delete the project?Do you want to remove all translations that are no longer used?Don’t Show AgainDon’t mark exact matches as needing workDon’t show againDownDownload a file from Crowdin project, translate and sync your changes back.Downloading latest translations…Downloading translations is disabled in this project.E&xitE&xport as HTML…EditEdit &CommentEdit &commentEdit CommentEdit a TranslationEdit a translationEdit commentEdit projectEdit the projectEditingEmail:EnterEnter Full ScreenEntries in the catalog are probably incorrect.Entries with Errors FirstEntries with errors firstEntries with errors were marked in red in the list. Details of the error will be shown when you select such an entry.Error opening fileError opening file %s!Error saving catalogEverythingExcluded pathsExtract from sourcesExtract text from source files in the following directories:Extracting translatable strings…Extractor setupExtractorsFailed command: %sFailed to communicate with Poedit process.Failed to load extracted catalog.Failed to merge gettext catalogs.Failed to update translation memory: %sFileFile:FindFind NextFind PreviousFind and Replace…Find in commentsFind in source textsFind in translationsFind nextFind previousFix LanguageFix languageFix the HeaderFix the headerForm %iFrequentGeneralGo to Bookmark %iGo to bookmark %iHTML FilesHelpHide %sHide OthersHide SidebarHide Status BarHide this notification messageIDIf you continue with purging, all translations marked as deleted will be permanently removed. You will have to translate them again if they are added back in the future.Ignore caseInclude beta versionsInformation about the translatorInstallInvalid fileInvocation:KeepLanguage Code or Name (e.g. en_GB)Language of the translation is the same as source language.Language of the translation:Language selectionLanguage:Last modifiedLearn About Gettext KeywordsLearn MoreLearn More About CrowdinLearn about gettext keywordsLearn about plural formsLearn moreLearn more about CrowdinLine endings:List of extensions separated by semicolons (e.g. *.cpp;*.h):MO files can’t be directly edited in Poedit.Make Lower CaseMake Upper CaseMerging differences…MinimizeName of the project the translation is forName:Ne&xt UnfinishedNe&xt unfinishedNeeds WorkNeeds workNever let the list of strings take focus. If enabled, you must use Ctrl-arrows for keyboard navigation but you can also type text immediately, without having to press Tab to change focus.NewNew stringsNext Plural FormNext plural formNoNo Matches FoundNo entries could be pre-translated.No matches foundNo problems with the translation found.No references for the selected item.No translation projects listed in your Crowdin account.Not authorized, please sign in again.Notes for translators:OKObsolete stringsOneOnly enable if you trust the quality of your TM. By default, all matches from the TM are marked as needing work and should be reviewed before use.Only fill in exact matchesOpenOpen Crowdin translationOpen From Crowdin…Open RecentOpen an existing PO file and edit the translation.Open catalogOpen catalog templateOpen from Crowdin…Open in EditorOpen in editorOpen...OptionsOtherP&revious UnfinishedP&revious unfinishedPO TranslationPO Translation FilesPOT Translation TemplatesPOT files are only templates and don’t contain any translations themselves. To make a translation, create a new PO file based on the template.PastePaste and Match StylePathsPlease open and edit the corresponding PO file instead. When you save it, the MO file will be updated as well.Please save the file first. This section cannot be edited until then.PluralPlural forms expression used by the catalog is unusual for %s.Plural:PoeditPoedit - Catalogs managerPoedit automatically fixed invalid content in the file “%s”.Poedit can attempt to fill in new entries from only previous translations in the file or from your entire translation memory. Using the TM won’t be very effective if it’s near-empty, but it will get better as you add more translations to it.Poedit is an easy to use translations editor.Pre-translatePre-translatedPre-translating…Pre-translation automatically finds exact or fuzzy matches for untranslated strings in the translation memory and fills in their translations.PreferencesPreferences...Preserve formatting of existing filesPrevious Plural FormPrevious plural formPrevious source text:Project name and version:Project name:Project:PurgePurge deleted translationsQuitQuit %sRecentRedoReferences:RefreshRemaining: %dReplaceReplacement stringReplace…Required header Plural-Forms is missing.ResetReset translation memoryResetting the translation memory will irrevocably delete all stored translations from it. You can’t undo this operation.ReviewSaveSave &As…Save &as…Save asSave catalogSave changesSelect &AllSelect AllSelect directorySelect translation files to importSelect your preferred languageServicesSet Bookmark %iSet LanguageSet bookmark %iSet languageShift+Show AllShow SidebarShow Spelling and GrammarShow Status BarShow SubstitutionsShow or hide the sidebarShow sidebarShow status barShow summary after catalog updateSidebarSign InSign OutSign inSign in to CrowdinSign outSigned in as:SingularSingular:Smart Copy/PasteSmart DashesSmart LinksSmart QuotesSort by &File OrderSort by &SourceSort by &TranslationSort by &file orderSort by &sourceSort by &translationSource code charset:Source code extractors are used to find translatable strings in the source code files and extract them so that they can be translated.Source code not available.Source fileSource file occurrence:Source textSource text — %sSource text:Sources KeywordsSources PathsSources keywordsSources pathsSpeechSpellchecking is disabled, because the dictionary for %s isn’t installed.Spelling and GrammarStart SpeakingStop SpeakingStored translations:String to findSubstitutionsSuggestionsSuggestions are not available if the translation language is not set correctly. Other features, such as plural forms, may be affected as well.SyncSync with CrowdinSynchronize the translation with CrowdinSyncing with Crowdin failed.Syntax error in Plural-Forms header ("%s").TMTake an existing PO file or POT template and create a new translation from it.Take translatable strings from an existing POT template.Text ReplacementThe TM doesn’t contain any strings similar to the content of this file. It is only effective for semi-automatic translations after Poedit learns enough from files that you translated manually.The file cannot be compiled into the MO format and used.The file cannot be opened.The file contained duplicate items, which is not allowed in PO files and would prevent the file from being used. Poedit fixed the issue, but you should review translations of any items marked as needing work and correct them if necessary.The file may be either corrupted or in a format not recognized by Poedit.The file was compiled into the MO format, but it will probably not work correctly.The file was saved safely and compiled into the MO format, but it will probably not work correctly.The file was saved safely, but it cannot be compiled into the MO format and used.The file was saved safely.The old source text (before it changed during an update) that the now-inaccurate translation corresponds to.The simplest way to fill this catalog is to update it from a POT:The translation is ready for use, but %d entry is not translated yet.The translation is ready for use, but %d entries are not translated yet.The translation is ready for use.The translations were marked as needing work, because they may be inaccurate. You should review them for correctness.There are no translations. That’s unusual.There was a problem formatting the file nicely (but it was saved all right).There were errors when loading the catalog. Some data may be missing or corrupted as the result.These settings affect internal formatting of PO files. Adjust them if you have specific requirements e.g. because of version control.These strings are no longer in the sources. Poedit will remove them from the catalog now.These strings were found in the sources but were not in the catalog. Poedit will add them to the catalog now.This file can only be edited in Crowdin’s web interface.This is the command used to launch the extractor. %o expands to the name of output file, %K to list of keywords, %F to list of input files, %C to charset flag (see below).This project has no files that can be translated in Poedit.This string was found in Poedit’s translation memory.This will be attached to the command line only if source code charset was given. %c expands to charset value.This will be attached to the command line once for each input file. %f expands to the filename.This will be attached to the command line once for each keyword. %k expands to the keyword.TotalTransformationsTranslated: %d of %d (%d %%)Translation LanguageTranslation MemoryTranslation Needs &WorkTranslation PropertiesTranslation needs &workTranslation propertiesTranslation suggestions:Translation — %sTranslation:Translations couldn’t be updated from the source code, because no code was found in the location specified in the catalog’s Properties.TwoUTF-8 (recommended)UndoUnhandled exception occurred: %sUnix (recommended)UntransUpUpdateUpdate allUpdate all catalogs in the projectUpdate catalog - synchronize it with sourcesUpdate from POTUpdate summaryUpdatesUpdating catalogUpdating failedUpdating the catalog failed. Click on 'Details >>' for details.Updating user information…Uploading translations…Use custom expressionUse custom list font:Use custom text fields font:Use default rules for this languageUse these keywords (function names) to recognize translatable strings in source files:Use translation memoryValidateValidation resultsVersion %sWaiting for authentication…Welcome to PoeditWhat is Crowdin?When updating from sourcesWhole words onlyWindowWindowsWrap aroundWrap at:YesYou can also extract translatable strings directly from the source code:You must restart Poedit for this change to take effect.Your NameYour name and email address are only used to set the Last-Translator header of GNU gettext files.ZeroZoomaltctrle.g. nplurals=2; plural=(n > 1);fuzzy match within the filehandle a poedit:// URIpre-translate from TMshiftunknown languageyour_email@example.com“%s” is not a valid POT file.Project-Id-Version: poedit Report-Msgid-Bugs-To: help@poedit.net POT-Creation-Date: 2017-12-05 15:52+0100 PO-Revision-Date: 2017-07-27 03:15-0400 Last-Translator: vslavik Language-Team: Tajik Language: tg_TJ MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=(n > 1); X-Generator: crowdin.com X-Crowdin-Project: poedit X-Crowdin-Language: tg X-Crowdin-File: /locales/poedit.pot (тағйирёфта) (захиранашуда)%d вуруд%d вуруд%d сатр пешакӣ тарҷума карда шуд.%d сатр пешакӣ тарҷума карда шуд.%d хато%d хато%d масъалаи тарҷума пайдо шудааст.%d масъалаи тарҷума пайдо шудааст.%i сатри файли “%s” ба таври дуруст бор нашудааст.%i сатри файли “%s” ба таври дуруст бор нашудааст.Формати %sХусусиятҳои %sФормати %s&Дар бораи PoEdit&Дар бораи Poedit&Татбиқ кардан&Бозгашт&Хатбаракҳо&Бекор кардан&Пок кардан&Пӯшидан&Нусха бардоштан&Нест кардан&Татбиқ кардан ва ба сатри дигар гузарондан&Татбиқ кардан ва ба сатри дигар гузарондан&Таҳрир&Файл&Ёфтан…&Кумаки GNU gettext&Кумаки GNU gettext&Гузаштан&Гурӯҳбандӣ аз рӯи қарина&Гурӯҳбандӣ аз рӯи қарина&Кумак&Нав&Навбатӣ >&Тарҷумаи навбатӣ&Тарҷумаи навбатӣ&Не&OK&Кумаки онлайн&Кумаки онлайн&Кушодан...&Кушодан…&Гузоштан&Танзими барнома&Танзимот…&Тарҷумаи қаблӣ&Тарҷумаи қаблӣ&Пок кардани тарҷумаҳои нестшуда&Пок кардани тарҷумаҳои нестшуда&Баромад&Дубора анҷом додан&Захира кардан&Захира кардан ҳамчун&Намоиши бартариҳо&Намоиши бартариҳо&Ботил сохтан&Аввал сатрҳои тарҷуманашуда&Аввал сатрҳои тарҷуманашуда&Навсозӣ кардан аз сатрҳои аслӣ&Навсозӣ кардан аз сатрҳои аслӣ&Санҷиши тарҷумаСанҷиши тарҷума&Намоиш&Ҳа(0 нав, 0 кӯҳнашуда)(Маълумоти муфассал дар бораи GNU gettext)(Нав: %i, куҳна: %i)(Истифодаи забони асосӣ)(Windows 8 ё версияи навтарро талаб мекунад)< &ҚаблӣҶузвдонҳоро ба ин ҷо кашида гузоред ё тугмаи "+" -ро зер кунедҶузвдонҳоро ба ин ҷо кашида гузоред ё тугмаи "+" -ро зер кунед<беном>Дар бораи %sҲисобҳоИлова кардани шарҳИлова кардани шарҳИлова кардани директория ба рӯйхатКалидвожаҳои иловагӣИловагӣҲамаи файлҳои тарҷумаИнчунин аз калидвожаҳои пешфарз барои забонҳои дастрас истифода баредAlt+Доимо тағйир додани маркази диққат ба ҳошияи матнгузорӣОбъект дар рӯйхати файлҳои вурудӣ:Илова кардани объект ба рӯйхати калидвожаҳо:Намуди зоҳирӣТатбиқ карданШумо мутмаин ҳастед, ки мехоҳед василаи барориши “%s”-ро нест кунед?Шумо мутмаин ҳастед, ки мехоҳед ҳофизаи тарҷумаро дубора танзим кунед?Санҷиши худкори навсозиҳоОмодасозии файли MO ба таври худкор ҳангоми захиракунӣБозгаштМасири асосӣ:Версияҳои бета хусусиятҳои нав ва такмилҳоро дар бар мегиранд, вале метавонанд каме ноустувор бошанд.Ҳамаро ба пеш гузоредФайли тарҷума вайрон шудааст: шакли ҷамъи msgstr бе шакли ҷамъи msgid истифода шудаастФайли тарҷума вайрон шудааст: шакли ҷамъи msgstr бо шакли ҷамъи msgid истифода шудаастТамошо карданБа сурати пешфарз, натиҷаҳои нодуруст ворид карда мешаванд ва ҳамчун "Бозбинӣ лозим аст" ишора карда мешаванд. Барои ворид кардани танҳо мутобиқати дуруст, ин имконро интихоб кунед.&Файли тарҷума&Тоза карданБекор карданДиректорияи муваққатӣ эҷод карда нашуд.Барнома иҷро карда намешавад: %sҲарфҳои калонФайли тарҷумаФайли тарҷума тағйир ёфт. Оё шумо мехоҳед, ки тағйиротро захира кунед?Хусусиятҳои файли тарҷумаМудири &файлҳои тарҷумаМудири &файлҳои тарҷумаМудири файлҳои тарҷумаИваз кардани забони интерфейсРамзгузорӣ:Санҷиши ҳуҷҷатСанҷиши имлои тарҷумаСанҷиши имло ҳангоми нависСанҷиши хатогиҳо дар тарҷумаСанҷидани навсозиҳо…Санҷиши имлоПок карданТоза кардани тарҷумаТоза кардани шарҳТоза кардани тарҷумаПӯшиданБо дигарон якҷоя тарҷума кунедБо дигарон якҷоя тарҷума кунедҶамъкунии файлҳои манбаъ…Фармон барои баровардани тарҷумаҳо:Шарҳ:Таҳия кардани файли MO…Файлҳои тарҷумавии таҳияшудаБаровардани рамзи манбаро дар Танзимот танзим кунед.ТасдиқНусха бардоштанНусха бардоштан аз Шумораи танҳоНусха бардоштан аз матни сатри аслӣНусха бардоштан аз шумораи танҳоНусха бардоштан аз матни сатри аслӣСанҷиши имло ба таври худкорЭҷоди тарҷумаи навАз нав тарҷума карданЭҷод кардани лоиҳаи тарҷумаи навХатои CrowdinCrowdin абзори тарҷумаҳои онлайни муштрак ва платформаи идоракунии маҳаллисозӣ мебошад. Poedit метавонад файлҳои PO-и идорашавандаро бо Crowdin ҳамвор ҳамоҳанг кунад.Ctrl+&БуриданБуриданАндозаи пойгоҳи иттилоотӣ дар диск:Нест карданНест кардани василаи бароришНест кардани лоиҳаФеҳристҳоНамоиши рақамҳои &сартҳоНамоиши рақамҳои &сартҳоШумо дар ҳақиқат мехоҳед, ки ҳама файлҳои тарҷумаи лоиҳаи зеринро ба якбора навсозӣ кунед?Оё шумо мехоҳед, ки лоиҳаи зеринро нест кунед?Оё шумо мехоҳед, ки ҳамаи тарҷумаҳоеро, ки дигар истифода намешаванд, нест кунед?Аз нав намоиш надоданМутобиқатҳои аниқро ҳамчун "Бозбинӣ лозим аст" қайд накунедАз нав намоиш надоданПоёнФайлеро аз лоиҳаи Crowdin боргирӣ кунед, тарҷума намоед ва ҳамоҳанг созед.Дар ҳоли боргирии тарҷумаҳои навтарин…Боргирии тарҷумаҳо барои ин лоиҳа ғайрифаъол шуд.&Баромад&Содир кардан ҳамчун HTML…Таҳрир&Таҳрир кардани шарҳ&Таҳрир кардани шарҳТаҳрир кардани шарҳТаҳрир кардани тарҷумаТаҳрир кардани тарҷумаТаҳрир кардани шарҳТаҳрир кардани лоиҳаТаҳрири лоиҳаТаҳриркунӣПочтаи электронӣ:EnterКушодан дар экрани пурраВурудҳои файл эҳтимол нодуруст ҳастанд.Пеш аз ҳама сабтҳоро бо хатоҳо намоиш диҳедПеш аз ҳама сабтҳоро бо хатоҳо намоиш диҳедТарҷумаҳои хато бо ранги сурх дар рӯйхат қайд карда шудаанд. Тафсилоти хатоҳо бо интихоби сатри тарҷумаи хато намоиш дода мешаванд.Хатои кушодани файлХато ҳангоми кушодани файли %s!Захиракунии файл қатъ карда шудҲамаМасирҳои истисношудаБаровардан аз манбаҳоБаровардани матн аз файлҳои манбаъ дар ҷузвдонҳои зерин:Баровардани сатрҳои тарҷумашаванда…Танзими василаи бароришВасилаи бароришФармони қатъшуда: %sАлоқа бо раванди Poedit қатъ шуд.Боркунии файлҳои баровардашуда баргузор нагашт.Муттаҳид кардани файлҳои gettext баргузор нагашт.Ҳофизаи тарҷума навсозӣ нашуд: %sФайлФайл:ҶустуҷӯҶустуҷӯи навбатӣҶустуҷӯи қаблӣЁфтан ва ҷойгузин кардан…Ҷустуҷӯ дар шарҳҳоЁфтан дар матнҳои манбаъҶустуҷӯ дар тарҷумаҳоҶустуҷӯи навбатӣҶустуҷӯи қаблӣИслоҳ кадани забонИслоҳ кадани забонСарварақро ислоҳ кунедСарварақро ислоҳ кунедШакли %iРоиҷУмумӣГузариш ба хатбараки %iГузариш ба хатбараки %iФайлҳои HTMLКумакПинҳон кардани %sДигаронро пинҳон карданПинҳон кардани навори ҷонибӣПинҳон кардани навори вазъиятХабари огоҳии зеринро пинҳон кунедРақамАгар тоза карданро идома диҳед, ҳама тарҷумаҳои ҳамчун нест карда, бе бозгашт нест мешаванд. Агар онҳо дар оянда баргашта илова шаванд, шумо онҳоро дигар тарҷума карда наметавонед.Рад кардани ҳарфҳои хурду калонИловаи версияҳои бетаМаълумот дар бораи тарҷумонНасб карданФайли нодурустДархост:Нигоҳ доштанРамзи забон ё номи забон (масалан, "tg" барои забони тоҷикӣ)Забони тарҷума ва забони манбаъ баробаранд.Забони тарҷума:Интихоби забонЗабон:Санаи тағйири охиринМаълумот дар бораи калидвожаҳои GettextМаълумоти бештарМаълумоти бештар дар бораи CrowdinМаълумоти бештар дар бораи калидвожаҳои gettextМаълумоти бештар дар бораи шаклҳои ҷамъМаълумоти бештарМаълумоти бештар дар бораи CrowdinАнҷоми сатрҳо:Рӯйхати дарозкунии муддат бо нуқта-вергулҳо ҷудо карда мешаванд (мисол *.cpp;*.h):Файлҳои MO метавонанд дар Poedit бевосита таҳрир карда шаванд.Табдил ба ҳарфҳои хурдТабдил ба ҳарфҳои хурдМуттаҳидшавии фарқиятҳо…Ҳадди ақал сохтанНоми лоиҳаи тарҷума бароиНом:&Тарҷуманашудаи навбатӣ&Тарҷуманашудаи навбатӣБозбинӣ лозим астБозбинӣ лозим астБа рӯйхати сатр ҳаргиз нагузоред, ки маркази диққатро ишғол кунад. Агар фаъол бошад, шумо бояд Ctrl-ақрабаки идора кардан аз клавиатура истифода баред, аммо шумо инчунин имкони ворид кардани матнро бе зарурияти пахш кардани Tab барои тағйироти маркази диққат доред.НавСатрҳои навШумораи ҷамъи навбатӣШумораи ҷамъи навбатӣНеЯгон мутобиқат ёфт нашудЯгон сатр пешакӣ тарҷума карда намешавад.Ягон мутобиқат ёфт нашудЯгон хато дар тарҷума ёфт нашудааст.Ягон иқтибос барои объекти интихобшуда нест.Дар ҳисоби Crowdin-и шумо ягон лоиҳаи тарҷума дар рӯйхат вуҷуд надорад.Ворид нашуд, лутфан аз нав ворид шавед.Қайдҳои тарҷумон:ХубСатри кӯҳнашудаЯкФаъол кунед, танҳо агар ба ТМ-и худ эътимод дошта бошед. Ба сутари пешфарз, ҳамаи мутобиқатҳо аз ТМ ҳамчун "Бозбинӣ лозим аст" ишора карда мешаванд ва бояд пеш аз истифода аз назар гузаронида шаванд.Ворид кардани танҳо мутобиқати аниқКушоданКушодани тарҷума дар CrowdinOpen from Crowdin…Кушодани файлҳои охиринФайли PO-и мавҷудбударо кушоед ва тарҷумаро таҳрир намоед.Кушодани файлКушодани қолиби файлOpen from Crowdin…Кушодан дар муҳаррирКушодан дар муҳаррирКушодан...ИмконотДигар&Тарҷуманашудаи пешина&Тарҷуманашудаи пешинаТарҷумаи POФайлҳои тарҷумавии POҚолибҳои тарҷумавии POTФайлҳои POT танҳо ҳамчун қолибҳо истифода мешаванд ва худаш тарҷумаҳоро дар бар намегиранд. Барои тарҷума кардан, файли PO-и наверо дар асоси қолиб эҷод кунед.ГузоштанГузоштан мувофиқи сабкМасирҳоЛутфан, ба ҷояш ягон файли PO-и мувофиқро кушоед ва таҳрир кунед. Вақте ки шумо онро захира мекунед, файли MO низ навсозӣ карда мешавад.Лутфан, аввал файлро захира кунед. То он гоҳ ин қисмат таҳрир карда намешавад.Шумораи ҷамъШакли ҷамъ барои ибораи истифодашуда бо файл барои %s ғайриоддӣ аст.Шакли ҷамъ:Барномаи PoeditМудири файлҳо - PoeditPoedit муҳтавои беэътиборро дар файли “%s” ислоҳ кард.Poedit метавонад тарҷумаҳои навро танҳо аз тарҷумаҳои пешакӣ аз дохили файл ё ин ки аз ҳофизаи тарҷумаҳо пешниҳод кунад. Истифодаи TM (ҳофизаи тарҷумаҳо) бефоида аст, агар он холӣ бошад, вале агар шумо ба TM тарҷумаҳои зиёдро илова кунед, ҳофизаи тарҷумаҳо ба шумо бисёр самаранокии ҳақиқӣ меорад.Барномаи Poedit барои тарҷумаи файлҳо хеле осон аст.Тарҷумаи пешакӣТарҷумаи пешакӣДар ҳоли тарҷумаи пешакӣ…Тарҷумаи пешакӣ мувофиқатҳои аниқ ё монандро аз ҳофизаи тарҷума барои сатрҳои тарҷуманашуда ҷустуҷӯ мекунад ва пешниҳод менамояд.ХусусиятҳоТанзимот...Истифодаи қолаббандӣ аз файлҳои мавҷудбудаШумораи ҷамъи қаблӣШумораи ҷамъи қаблӣМатни манбаи қаблӣ:Номи лоиҳа ва версия:Номи лоиҳа:Лоиҳа:ПоксозӣПок кардани тарҷумаҳои нестшудаБаромадПӯшидани %sҚаблӣДубора анҷом доданМаълумотнома:НавсозӣДар ҳоли ивази номи: %dҶойгузин карданСатри ҷойгузорӣҶойгузин кардан…Сарлавҳаи шакли ҷамъ лозим аст.Танзими дубораДубора танзим кардани ҳофизаи тарҷумаҳоПоксозии тарҷумаҳо аз ҳофизаи тарҷумаҳо ҳамаи тарҷумаҳоро бебозгашт нест мекунад. Ин амал ботил сохта намешавад.ТафтишЗахира кардан&Захира кардан ҳамчун…&Захира кардан ҳамчун…Захира кардан ҳамчунЗахира кардани файлЗахира кардани тағйирот&Ҳамаро интихоб карданҲамаро интихоб карданИнтихоби ҷузвдонИнтихоби файлҳо барои тарҷумаЗабони дилхоҳро интихоб кунедХидматҳоТанзими хатбараки %iТанзими забонТанзими хатбараки %iИнтихоби забонShift+Ҳамаро намоиш доданНамоиш додани навори ҷонибӣНамоиши санҷиши имло ва дастури забонНамоиш додани навори вазъиятНамоиши ивазкуниҳоНамоиш додан ё пинҳон кардани навори ҷонибӣНамоиш додани навори ҷонибӣНамоиш додани навори вазъиятНамоиш додани хулоса баъд аз навсозии файлНавори ҷонибӣВорид шуданБаромаданВорид шуданВорид шудан ба CrowdinБаромаданВорид шуд ҳамчун:Шумораи танҳоШакли танҳо:Нусха бардоштан/гузоштани ҳушмандТирегузории ҳушмандПайвандҳои ҳушмандНохунакҳои ҳушмандАз рӯи &тартиби файлҳоАз рӯи &сатрҳои аслӣАз рӯи &тарҷумаҳоАз рӯи &тартиби файлҳоАз рӯи &сатрҳои аслӣАз рӯи &тарҷумаҳоРамзгузории сатрҳои аслӣ:Василаи барориши манбаи рамз барои ёфтани сатрҳои тарҷумашаванда ва баровардани онҳо барои тарҷума истифода мешавад.Рамзи барнома дастнорас аст.Файли аслӣРӯйдодҳои файли аслӣ:Матни сатри аслӣМатни манбаъ — %sМатни сатри аслӣ:Калидвожаҳои манбаъҳоМасирҳои манбаъҳоЛуғати сатрҳои аслӣМасирҳои сатрҳои аслӣНутқТафтиши имло ғайрифаъол аст, зеро ки луғат барои %s насб нашудааст.Санҷиши имло ва дастури забонОғоз кардани нутқМанъ кардани нутқТарҷумаҳои захрашуда:Сатр барои ёфтанИвазкуниҳоПешниҳодҳоАгар забони тарҷумаҳо нодуруст танзим карда бошад, пешниҳодҳо дастнорас мешаванд. Хусусиятҳои дигар, монанди шакли ҷамъ, метавонанд таъсир расонанд.ҲамоҳангсозӣҲамоҳанг кардан бо CrowdinҲамоҳангсозии тарҷума бо CrowdinҲамоҳангсозӣ бо Crowdin иҷро нашуд.Хатои синтаксисӣ дар шакли ҷамъи сарлавҳа ("%s").TMФайли PO ё қолиби POT-и мавҷудбударо истифода баред ва тарҷумаи навро дар асоси он таҳия кунед.Сатрҳоро барои тарҷума аз қолиби POT-и мавҷудбуда истифода баред.Ивазкунии матнҲофизаи тарҷумаҳо (TM) ягон пешниҳоди мувофиқро барои сатрҳои ин файл дар бар намегирад. TM-и ҷорӣ танҳо тарҷумаҳои ҷузъӣ ба таври худкор пешниҳод мекунад, баъд аз оне ки Poedit тарҷумаҳоро аз файлҳои қаблӣ ҷамъ кунад.Файл ба формати MO табдил дода намешавад ва истифода намешавад.Файл кушода намешавад.Файл дорои объктҳои якхела мебошад, ки барои файлҳои PO мутобиқат намекунанд ва истифодабарии файлро қатъ мекунанд. Poedit мушкилиро ислоҳ кард, вале шумо бояд тарҷумаҳои қайдшударо аз назар гузаронед ва дар ҳолати лозимӣ онҳоро ислоҳ намоед.Эҳтимол аст, ки файл вайрон шудааст ё дар формате мебошад, ки бо Poedit дастгирӣ намешавад.Ин файл ба формати MO табдил шудааст, вале метавонад дуруст кор накунад.Файли тарҷумашуда бо муваффақият захира шудаааст ва ба формати МО табдил дода шудааст, вале эҳтимолан он дуруст кор намекунад.Файли шумо бехатар захира шудааст, аммо ба формати МО барои истифода сохта намешавад.Файл бо муваффақият захира шудааст.Матни манбаи куҳна (пеш аз тағйир ҳангоми навсозӣ), ки ба тарҷумаҳои носаҳеҳ тааллуқ дорад.Осонтар аст, ки агар шумо ин файлро аз файли POT навсозӣ кунед:Тарҷума барои истифода тайёр аст, вале %d сатр то ҳол тарҷума нашудааст.Тарҷума барои истифода тайёр аст, вале %d сатр то ҳол тарҷума нашудаанд.Тарҷума барои истифода тайёр аст.Тарҷумаҳо ҳамчун "Бозбини лозим аст" қайд карда шудаанд, зеро ки онҳо метавонанд носаҳеҳ бошанд. Шумо бояд онҳоро барои санҷиши хатоҳо аз назар гузаронед.Ягон тарҷума вуҷуд надорад. Ин ғайриоддӣ аст.Барои шаклсозии хуби файли зерин мушкилиҳо пайдо шудаанд (аммо он хуб захира карда шуд).Ҳангоми боркунии каталог хато пайдо шуд. Эҳтимол баъзе маълумотҳо гум шудаанд ё ҳамчун натиҷа вайрон шудаанд.Танзимоти мазкур ба форматгузории дохирии файлҳои PO таъсир мерасонад. Агар шумо талаботи махсус дошта бошед, масалан ба сабаби идоракунии версия, онҳоро мос кунед.Сатрҳои зерин дигар дар сатрҳои асосӣ мавҷуд нестанд. Poedit онҳоро ҳоло аз файл нест мекунад.Сатрҳои зерин дар сатрҳои аслӣ дарёфт шудаанд, аммо дар файл вуҷуд надоранд. Poedit онҳоро ҳоло ба файл илова мекунад.Ин файл метавонад танҳо дар интерфейси веби Crowdin таҳрир карда шавад.Ин фармон барои оғози василаи барориш истифода мешавад. %o бо номи файли барориш, %K бо рӯйхати калимаҳои калидӣ, %F бо рӯйхати файлҳои вуруд, %C бо байрақи маҷмӯаи ҳарфҳо (поёнтар бинед) васеъ карда мешавад.Ин лоиҳа ягон файле, ки матавонад дар Poedit тарҷума карда шавад, вуҷуд надорад.Ин тарҷума аз ҳофизаи тарҷумаҳои Poedit ворид карда шуд.Мазкур ба сатри фармонӣ замима карда мешавад. бо шарте, ки агар рамзгузории сатри аслӣ дода шуда бошад. %c бо воҳиди рамзгузорӣ иваз карда мешавад.Мазкур ба сатри фармонӣ як бор барои ҳар як файли вурудӣ замима карда мешавад. %f ба номи файл васеъ мекунад.Мазкур ба сатри фармонӣ як бор барои ҳар як калимаи калидӣ замима карда мешавад. %k ба калимаи калидӣ васеъ мекунад.ҲамагӣТабдилдиҳӣ%d аз %d (%d %%) тарҷума шудЗабони тарҷумаҲофизаи тарҷумаБозбинии тарҷума &лозим астХусусиятҳои тарҷумаБозбинии тарҷума &лозим астХусусиятҳои тарҷумаПешниҳодҳои тарҷума:Тарҷума — %sТарҷума:Тарҷумаҳо аз рамзи манбаъ навсозӣ карда намешаванд, зеро ки ягон рамз дар макони муайяншуда дар хусусиятҳои файл ёфт нашуд.ДуUTF-8 (тавсия мешавад)Ботил сохтанИстиснои иҷронашуда ба амал омад: %sUnix (тавсия мешавад)ТарҷуманашудаБолоНавсозӣҶадидсозии ҳамаҲамаи файлҳоро дар ин лоиҳа навсозӣ кунедФайлро навсозӣ кунед - бо файли аслӣ ҳамоҳанг созедНавсозӣ кардан аз POTХулосаи навсозӣНавсозиҳоНавсозии каталогНавсозӣ иҷро нашудНавсозии файл қатъ карда шуд. Барои маълумот, тугмаи 'Тафсилот >>' -ро пашх кунед.Дар ҳоли навсозии маълумоти корбар…Дар ҳоли боркунии тарҷумаҳо…Истифодаи ибораҳои шахсӣИстифодаи шрифти фармоишӣ:Истифодаи шрифти фармоишӣ барои майдонҳои вуруди матн:Истифодаи қоидаҳои пешфарз барои ин забонИстифодаи калидвожаҳои зерин (номҳои супориш) барои шинохтани сатрҳои тарҷумашаванда дар файлҳои манбаъ:Истифодаи ҳофизаи тарҷумаҳоСанҷишНатиҷаҳои санҷишВерсияи %sДар ҳоли интизори санҷиши ҳаққоният…Хуш омадед ба PoeditCrowdin чист?Ҳангоми навсозӣ аз манбаъҳоТанҳо калимаҳои пурраРавзанаWindowsҶустуҷӯи даврӣГузарондан:ҲаШумо инчунин метавонед сатрҳоро барои тарҷума аз рамзи манбъ бевосита бароред:Барои татбиқ кардани тағйирот, шумо бояд барномаро аз нав оғоз кунед.Номи шумоНом ва почтаи электронии шумо танҳо барои намоиш додани тарҷумони охирин дар сарлавҳаҳои файлҳои GNU gettext истифода мешаванд.СифрИнтихоби андозаaltctrlмасалан, nplurals=2; plural=(n > 1);мувофиқати монанд дар дохили файлкоркарди poedit:// URIтарҷумаи пешакӣ аз TMshiftзабони номаълумyour_email@example.com“%s” файли POT-и боэътимод нест.poedit-2.0.6/locales/he.po0000664000372000037200000016427313230132076012314 00000000000000msgid "" msgstr "" "Project-Id-Version: poedit\n" "Report-Msgid-Bugs-To: help@poedit.net\n" "POT-Creation-Date: 2017-12-05 15:52+0100\n" "PO-Revision-Date: 2017-12-05 09:48-0500\n" "Last-Translator: vslavik \n" "Language-Team: Hebrew\n" "Language: he_IL\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 ? 0 : n%100==2 ? 1 : n%100==3 || n" "%100==4 ? 2 : 3;\n" "X-Generator: crowdin.com\n" "X-Crowdin-Project: poedit\n" "X-Crowdin-Language: he\n" "X-Crowdin-File: /locales/poedit.pot\n" msgid "Hide this notification message" msgstr "הסתר התראה זו" msgid "Don’t Show Again" msgstr "אל תציג שוב" msgid "Don’t show again" msgstr "אל תציג שוב" #, c-format msgid "(New: %i, obsolete: %i)" msgstr "(חדש: %i, מיושן: %i)" msgid "Updating catalog" msgstr "מעדכן קטלוג" msgid "Collecting source files…" msgstr "אוסף קבצי מקור…" msgid "Extracting translatable strings…" msgstr "מחלץ מחרוזות הניתנות לתרגום…" msgid "Failed to load extracted catalog." msgstr "טעינת הקטלוג שחולץ נכשלה." msgid "Merging differences…" msgstr "ממזג בין ההבדלים…" #, c-format msgid "“%s” is not a valid POT file." msgstr "“%s” אינו קובץ POT חוקי." #, c-format msgid "%i line of file “%s” was not loaded correctly." msgid_plural "%i lines of file “%s” were not loaded correctly." msgstr[0] "שורה %i בקובץ “%s” לא נטענה כראוי." msgstr[1] "%i שורות בקובץ “%s” לא נטענו כראוי." msgstr[2] "%i שורות בקובץ “%s” לא נטענו כראוי." msgstr[3] "%i שורות בקובץ “%s” לא נטענו כראוי." #, c-format msgid "Line %d of file “%s” is corrupted (not valid %s data)." msgstr "שורה %d בקובץ “%s” הינה פגומה (נתוני %s לא חוקיים)." #, c-format msgid "Malformed header: “%s”" msgstr "כותרת שגויה: “%s”" msgid "" "Broken catalog file: singular form msgstr used together with msgid_plural" msgstr "קובץ קטלוג פגום: לשון יחיד של msgstr בשימוש עם msgid_plural" msgid "Broken catalog file: plural form msgstr used without msgid_plural" msgstr "קובץ קטלוג פגום: לשון רבים של msgstr בשימוש בלי mdgid_plural" msgid "" "There were errors when loading the catalog. Some data may be missing or " "corrupted as the result." msgstr "" "אירעו שגיאות בעת טעינת הקטלוג. כתוצאה מכך, ייתכן שחלק מהמידע חסר או פגום." #, c-format msgid "Couldn’t load file %s, it is probably corrupted." msgstr "לא ניתן לטעון קובץ %s, הוא ככל הנראה פגום." #, c-format msgid "" "File “%s” is read-only and cannot be saved.\n" "Please save it under different name." msgstr "" "הקובץ “%s” הינו לקריאה בלבד ולא ניתן לשמור אותו.\n" "יש לשמור אותו תחת שם אחר." #, c-format msgid "Couldn’t save file %s." msgstr "לא ניתן לשמור את הקובץ %s." msgid "" "There was a problem formatting the file nicely (but it was saved all right)." msgstr "הייתה בעיה בעת עיצוב הקובץ בצורה נקייה (אך הוא נשמר כראוי)." #, c-format msgid "" "The catalog couldn’t be saved in “%s” charset as specified in catalog " "settings.\n" "\n" "It was saved in UTF-8 instead and the setting was modified accordingly." msgstr "" "לא ניתן לשמור את הקטלוג בקידוד “%s” כפי שצוין בהגדרות הקטלוג.\n" "\n" "במקום זאת, הוא נשמר בקידוד UTF-8 וההגדרה שונתה בהתאם." msgid "Error saving catalog" msgstr "שגיאה בשמירת הקטלוג" msgid "PO Translation Files" msgstr "קבצי תרגום PO" msgid "POT Translation Templates" msgstr "תבניות תרגום POT" msgid "All Translation Files" msgstr "כל קבצי התרגום" msgid "(Use default language)" msgstr "(שימוש בשפת ברירת המחדל)" msgid "Select your preferred language" msgstr "בחר בשפה המועדפת עליך" msgid "Language selection" msgstr "בחירת שפה" msgid "You must restart Poedit for this change to take effect." msgstr "יש להפעיל מחדש את Poedit כדי שהשינויים ייכנסו לתוקף." msgid "Syncing" msgstr "מסנכרן" #. TRANSLATORS: %s is a cloud destination, e.g. "Crowdin" or ftp.wordpress.com etc. #, c-format msgid "Syncing with %s…" msgstr "מסנכרן עם %s…" #. TRANSLATORS: %s is a cloud destination, e.g. "Crowdin" or ftp.wordpress.com etc. #, c-format msgid "Syncing with %s failed." msgstr "הסנכרון עם %s נכשל." msgid "Syncing error" msgstr "שגיאת סנכרון" msgid "Downloading translations is disabled in this project." msgstr "הורדת תרגומים מושבתת עבור פרויקט זה." msgid "Not authorized, please sign in again." msgstr "לא מורשה, נא להתחבר שנית." msgid "" "Crowdin is an online localization management platform and collaborative " "translation tool. Poedit can seamlessly sync PO files managed at Crowdin." msgstr "" "Crowdin היא מערכת ניהול לוקליזציה מקוונת וכלי תרגום שיתופי. Poedit יכול " "לסנכרן קבצי PO המנוהלים ב-Crowdin בצורה חלקה." msgid "Sign In" msgstr "התחברות" msgid "Sign in" msgstr "התחברות" msgid "Sign Out" msgstr "התנתקות" msgid "Sign out" msgstr "התנתקות" msgid "Waiting for authentication…" msgstr "מחכה לאימות…" msgid "Updating user information…" msgstr "מעדכן נתוני משתמש…" msgid "Signed in as:" msgstr "מחובר בשם:" msgid "Learn More About Crowdin" msgstr "מידע נוסף אודות Crowdin" msgid "Learn more about Crowdin" msgstr "מידע נוסף אודות Crowdin" msgid "Sign in to Crowdin" msgstr "התחברות אל Crowdin" msgid "Open Crowdin translation" msgstr "פתיחת תרגום Crowdin" msgid "Project:" msgstr "פרוייקט:" msgid "Language:" msgstr "שפה:" msgid "File:" msgstr "קובץ:" msgid "No translation projects listed in your Crowdin account." msgstr "אין פרוייקטי תרגום הרשומים בחשבון Crowdin שלך." msgid "This project has no files that can be translated in Poedit." msgstr "לפרויקט זה אין קבצים הניתנים לתרגום ב-Poedit." msgid "This file can only be edited in Crowdin’s web interface." msgstr "קובץ זה ניתן לעריכה רק בממשק האינטרנט של Crowdin." msgid "Downloading latest translations…" msgstr "מוריד תרגומים עדכניים…" msgid "Syncing with Crowdin failed." msgstr "הסנכרון עם Crowdin נכשל." msgid "Crowdin error" msgstr "שגיאת Crowdin" msgid "Uploading translations…" msgstr "מעלה תרגומים…" msgid "&Copy" msgstr "ה&עתק" msgid "Learn more" msgstr "מידע נוסף" msgid "Learn More" msgstr "מידע נוסף" msgid "&Help" msgstr "ע&זרה" msgid "MO files can’t be directly edited in Poedit." msgstr "לא ניתן לערוך קבצי MO ישירות ב-Poedit." msgid "Error opening file" msgstr "שגיאה בפתיחת הקובץ" msgid "" "Please open and edit the corresponding PO file instead. When you save it, " "the MO file will be updated as well." msgstr "" "אנא פתח וערוך את קובץ ה-PO המקביל במקום. כשתשמור אותו, קובץ ה-MO יתעדכן " "בהתאם." msgid "don’t delete temporary files (for debugging)" msgstr "אל תמחק קבצים זמניים (לצורך ניפוי שגיאות)" msgid "handle a poedit:// URI" msgstr "טפל ב-poedit:// URI" msgid "go to item at given line number" msgstr "" msgid "Failed to communicate with Poedit process." msgstr "התקשורת עם תהליך Poedit נכשל." #, c-format msgid "Unhandled exception occurred: %s" msgstr "אירעה חריגה: %s" msgid "Open catalog" msgstr "פתיחת קטלוג" #, c-format msgid "File “%s” doesn’t exist." msgstr "הקובץ “%s” אינו קיים." msgid "Poedit is an easy to use translations editor." msgstr "Poedit הינו עורך תרגומים פשוט לתפעול." msgid "Catalogs Manager" msgstr "מנהל הקטלוגים" msgid "Check for Updates…" msgstr "בדיקה אחר עדכונים…" msgid "&Edit" msgstr "&עריכה" msgid "Undo" msgstr "בטל" msgid "Redo" msgstr "בצע שוב" msgid "Paste and Match Style" msgstr "הדבק והתאם לסגנון" msgid "Delete" msgstr "מחק" msgid "Spelling and Grammar" msgstr "איות ודקדוק" msgid "Show Spelling and Grammar" msgstr "הצג איות ודקדוק" msgid "Check Document Now" msgstr "בדוק את המסמך כעת" msgid "Check Spelling While Typing" msgstr "בדוק איות במהלך ההקלדה" msgid "Check Grammar With Spelling" msgstr "בדוק דקדוק ביחד עם איות" msgid "Correct Spelling Automatically" msgstr "תקן איות באופן אוטומטי" msgid "Substitutions" msgstr "החלפות" msgid "Show Substitutions" msgstr "הצג החלפות" msgid "Smart Copy/Paste" msgstr "העתקה והדבקה חכמות" msgid "Smart Quotes" msgstr "מרכאות חכמות" msgid "Smart Dashes" msgstr "מיקוף חכם" msgid "Smart Links" msgstr "קישורים חכמים" msgid "Text Replacement" msgstr "מלל חלופי" msgid "Transformations" msgstr "המרות" msgid "Make Upper Case" msgstr "הפוך לאותיות גדולות" msgid "Make Lower Case" msgstr "הפוך לאותיות קטנות" msgid "Capitalize" msgstr "הפוך לאותיות רישיות" msgid "Speech" msgstr "דיבור" msgid "Start Speaking" msgstr "הקרא" msgid "Stop Speaking" msgstr "הפסק הקראה" msgid "&View" msgstr "ת&צוגה" msgid "Enter Full Screen" msgstr "עבור למסך מלא" msgid "Window" msgstr "חלון" msgid "Minimize" msgstr "מזעור" msgid "Zoom" msgstr "הגדל/הקטן" msgid "Bring All to Front" msgstr "הבא הכל קדימה" #. TRANSLATORS:File kind displayed in Finder/Explorer msgid "PO Translation" msgstr "תרגום PO" msgid "The file cannot be opened." msgstr "לא ניתן לפתוח את הקובץ." msgid "Invalid file" msgstr "קובץ שגוי" msgid "" "The file may be either corrupted or in a format not recognized by Poedit." msgstr "יתכן שהקובץ פגום או מכיל פורמט שלא מזוהה ע\"י Poedit." msgid "You can’t drop more than one file on Poedit window." msgstr "לא ניתן לשחרר יותר מקובץ אחד בחלון של Poedit." #, c-format msgid "File “%s” is not a message catalog." msgstr "הקובץ “%s” אינו קטלוג הודעות." msgid "Poedit" msgstr "Poedit" msgid "&File" msgstr "&קובץ" msgid "&Go" msgstr "מע&בר אל" #. TRANSLATORS: %s is language name in its basic form (as you #. would see e.g. in a list of supported languages). You may need #. to rephrase it, e.g. to an equivalent of "for language %s". #, c-format msgid "" "Spellchecking is disabled, because the dictionary for %s isn’t installed." msgstr "בדיקת איות מושבתת, מכיוון שהמילון לשפה %s אינו מותקן." msgid "Install" msgstr "התקנה" msgid "Catalog modified. Do you want to save changes?" msgstr "הקטלוג שונה. האם ברצונך לשמור את השינויים?" msgid "Save changes" msgstr "שמירת שינויים" msgid "Your changes will be lost if you don’t save them." msgstr "השינויים שביצעת יאבדו אם לא תשמור אותם." msgid "Save" msgstr "שמור" msgid "Don’t save" msgstr "אל תשמור" msgid "Don’t Save" msgstr "אל תשמור" msgid "Save as…" msgstr "שמירה בשם…" msgid "Compile to…" msgstr "ביצוע הידור ל…" msgid "Compiled Translation Files" msgstr "קבצי תרגום מהודרים" msgid "Export as…" msgstr "ייצוא בשם…" msgid "HTML Files" msgstr "קבצי HTML" msgid "Open catalog template" msgstr "פתח תבנית קטלוג" msgid "Source code not available." msgstr "קוד המקור אינו זמין." msgid "Updating failed" msgstr "העדכון נכשל" msgid "" "Translations couldn’t be updated from the source code, because no code was " "found in the location specified in the catalog’s Properties." msgstr "" "לא ניתן לעדכן תרגומים מקוד המקור, מכיוון שלא נמצא קוד במיקום שצויין במאפייני " "הקטלוג." msgid "Entries in the catalog are probably incorrect." msgstr "קיימות רשומות בקטלוג שככל הנראה אינן נכונות." msgid "Updating the catalog failed. Click on 'Details >>' for details." msgstr "עדכון הקטלוג נכשל. יש ללחוץ על 'עוד >>' לקבלת פרטים נוספים." #, c-format msgid "%d issue with the translation found." msgid_plural "%d issues with the translation found." msgstr[0] "נמצאו %d בעיות עם התרגום." msgstr[1] "נמצאו %d בעיות עם התרגום." msgstr[2] "נמצאו %d בעיות עם התרגום." msgstr[3] "נמצאו %d בעיות עם התרגום." msgid "Validation results" msgstr "תוצאות האימות" msgid "" "Entries with errors were marked in red in the list. Details of the error " "will be shown when you select such an entry." msgstr "" "רשומות עם שגיאות סומנו באדום ברשימה. פרטי השגיאה יופיעו בעת בחירת רשומה " "שכזאת." msgid "The file was saved safely." msgstr "הקובץ נשמר בבטחה." msgid "" "The file was saved safely and compiled into the MO format, but it will " "probably not work correctly." msgstr "הקובץ נשמר בבטחה והודר לפורמט ה-MO, אך יתכן שהוא לא יעבוד כראוי." msgid "" "The file was saved safely, but it cannot be compiled into the MO format and " "used." msgstr "הקובץ נשמר בבטחה, אך לא ניתן להדר אותו לפורמט ה-MO לצורך שימוש." msgid "" "The file was compiled into the MO format, but it will probably not work " "correctly." msgstr "הקובץ הודר לפורמט ה-MO, אך יתכן שהוא לא יעבוד כראוי." msgid "The file cannot be compiled into the MO format and used." msgstr "לא ניתן להדר קובץ זה לפורמט ה-MO לצורך שימוש." msgid "No problems with the translation found." msgstr "לא נמצאו בעיות בתרגום." #, c-format msgid "The translation is ready for use, but %d entry is not translated yet." msgid_plural "" "The translation is ready for use, but %d entries are not translated yet." msgstr[0] "התרגום מוכן לשימוש, אבל %d רשומות לא תורגמו עדיין." msgstr[1] "התרגום מוכן לשימוש, אבל %d רשומות לא תורגמו עדיין." msgstr[2] "התרגום מוכן לשימוש, אבל %d רשומות לא תורגמו עדיין." msgstr[3] "התרגום מוכן לשימוש, אבל %d רשומות לא תורגמו עדיין." msgid "The translation is ready for use." msgstr "התרגום מוכן לשימוש." #, c-format msgid "Poedit automatically fixed invalid content in the file “%s”." msgstr "Poedit תיקן באופן אוטומטי תוכן שגוי בקובץ \"%s\"." msgid "" "The file contained duplicate items, which is not allowed in PO files and " "would prevent the file from being used. Poedit fixed the issue, but you " "should review translations of any items marked as needing work and correct " "them if necessary." msgstr "" "הקובץ הכיל פריטים כפולים, מה שלא מורשה בקבצי PO, ובסופו של דבר ימנע שימוש " "בקובץ. Poedit תיקן את הבעיה, אך יש לסקור את התרגומים של כל הפריטים המסומנים " "כדורשים סקירה, ולתקן אותם במידת הצורך." msgid "Language of the translation isn’t set." msgstr "שפת התרגום אינה מוגדרת." msgid "Set Language" msgstr "הגדרת שפה" msgid "Set language" msgstr "הגדרת שפה" #. TRANSLATORS: This is shown underneath "Language of the translation isn't set (or ...is the same as source language)." msgid "" "Suggestions are not available if the translation language is not set " "correctly. Other features, such as plural forms, may be affected as well." msgstr "" "הצעות אינן זמינות אם שפת התרגום לא מוגדרת כראוי. יתכן שמאפיינים אחרים, כמו " "לשון רבים, יושפעו גם כן." msgid "Language of the translation is the same as source language." msgstr "שפת התרגום זהה לשפת המקור." msgid "Fix Language" msgstr "תיקון שפה" msgid "Fix language" msgstr "תיקון שפה" msgid "" "This catalog has entries with plural forms, but doesn’t have Plural-Forms " "header configured." msgstr "" "לקטלוג זה יש רשומות עם צורות רבים, אך אינם מוגדרים עם כותרת Plural-Forms." msgid "" "Entries in this catalog have different plural forms count from what " "catalog’s Plural-Forms header says" msgstr "" "לרשומות בקטלוג זה ישנן צורות רבים שונות ממה שכתוב בכותרת Plural-Forms של " "הקטלוג" msgid "Required header Plural-Forms is missing." msgstr "הכותרת ההכרחית Plural-Forms חסרה." #, c-format msgid "Syntax error in Plural-Forms header (\"%s\")." msgstr "שגיאת תחביר בכותרת ה-Plural-Forms‏ (\"%s\")." msgid "Fix the Header" msgstr "תיקון הכותרת" msgid "Fix the header" msgstr "תיקון הכותרת" #. TRANSLATORS: %s is language name in its basic form (as you #. would see e.g. in a list of supported languages). You may need #. to rephrase it, e.g. to an equivalent of "for language %s". #, c-format msgid "Plural forms expression used by the catalog is unusual for %s." msgstr "שימוש בביטויי לשון רבים שבקטלוג אינו שגרתי עבור השפה %s." #. TRANSLATORS: A verb, shown as action button with ""Plural forms expression used by the catalog is unusual for %s.")" msgid "Review" msgstr "סקירה" #, c-format msgid "Error loading message catalog file “%s”." msgstr "שגיאה בטעינת קובץ קטלוג ההודעות “%s”." #, c-format msgid "Translated: %d of %d (%d %%)" msgstr "תורגמו: %d מתוך %d (%d%%)" #, c-format msgid "Remaining: %d" msgstr "נותרו: %d" #, c-format msgid "%d error" msgid_plural "%d errors" msgstr[0] "שגיאה %d" msgstr[1] "%d שגיאות" msgstr[2] "%d שגיאות" msgstr[3] "%d שגיאות" #, c-format msgid "%d entry" msgid_plural "%d entries" msgstr[0] "רשומה %d" msgstr[1] "%d רשומות" msgstr[2] "%d רשומות" msgstr[3] "%d רשומות" msgid " (unsaved)" msgstr " (לא נשמר)" msgid " (modified)" msgstr " (שונה)" #, c-format msgid "Failed to update translation memory: %s" msgstr "עדכון זיכרון התרגום נכשל: %s" msgid "Purge deleted translations" msgstr "פינוי תרגומים שנמחקו" msgid "Do you want to remove all translations that are no longer used?" msgstr "האם ברצונך להסיר את כל התרגומים שאינם עוד בשימוש?" msgid "" "If you continue with purging, all translations marked as deleted will be " "permanently removed. You will have to translate them again if they are added " "back in the future." msgstr "" "אם הליך הפינוי יימשך, כל התרגומים שסומנו כמחוקים יוסרו לצמיתות. יהיה עליך " "לתרגם אותם מחדש אם הם יתווספו שוב בעתיד." msgid "Keep" msgstr "שמירה" msgid "Purge" msgstr "פינוי" msgid "Copy from source text" msgstr "העתקה מטקסט המקור" msgid "Copy from Source Text" msgstr "העתקה מטקסט המקור" #. TRANSLATORS: This is the key shortcut used in menus on Windows, some languages call them differently #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Ctrl+" msgstr "Ctrl+" msgid "Clear translation" msgstr "מחיקת התרגום" msgid "Clear Translation" msgstr "מחיקת התרגום" msgid "Edit comment" msgstr "עריכת הערה" msgid "Edit Comment" msgstr "עריכת הערה" msgid "References:" msgstr "הפניות:" msgid "&Bookmarks" msgstr "&סימניות" #. TRANSLATORS: This is the key shortcut used in menus on Windows, some languages call them differently #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Alt+" msgstr "Alt+" #, c-format msgid "Set bookmark %i" msgstr "הגדרה כסימניה %i" #, c-format msgid "Go to bookmark %i" msgstr "מעבר לסימניה %i" #, c-format msgid "Set Bookmark %i" msgstr "הגדרה כסימניה %i" #, c-format msgid "Go to Bookmark %i" msgstr "מעבר לסימניה %i" msgid "Hide Sidebar" msgstr "הסתרת סרגל הצד" msgid "Show Sidebar" msgstr "הצגת סרגל הצד" msgid "Hide Status Bar" msgstr "הסתרת שורת המצב" msgid "Show Status Bar" msgstr "הצגת שורת המצב" msgid "Source text:" msgstr "טקסט המקור:" msgid "Singular:" msgstr "לשון יחיד:" msgid "Plural:" msgstr "לשון רבים:" msgid "Translation:" msgstr "תרגום:" msgid "Pre-translated" msgstr "תורגם מראש" msgid "Needs Work" msgstr "דורש סקירה" #. TRANSLATORS: This indicates that the string's translation isn't final #. and has known problems. For example, it might be machine translated or #. fuzzy matched from an older string. The translation should be short and #. convey this. If it's problematic to translate it, "Needs review" is #. acceptable substitute, but note that the meaning is subtly different: #. "needs review" implies that somebody else should review the string after #. I am done with it (i.e. consider it good), while "needs work" implies I #. need to return to it and finish the translation. msgid "Needs work" msgstr "דורש סקירה" msgid "" "POT files are only templates and don’t contain any translations themselves.\n" "To make a translation, create a new PO file based on the template." msgstr "" "קבצי POT הינם תבניות בלבד ולא מכילים תרגומים.\n" "על מנת ליצור תרגום, יש ליצור קובץ PO חדש המבוסס על התבנית." msgid "Create New Translation" msgstr "יצירת תרגום חדש" msgid "Create new translation" msgstr "יצירת תרגום חדש" msgid "Everything" msgstr "הכל" #, c-format msgid "Form %i" msgstr "צורה %i" msgid "Singular" msgstr "יחיד" msgid "Zero" msgstr "אפס" msgid "One" msgstr "אחד" msgid "Two" msgstr "שתיים" msgid "Plural" msgstr "רבים" msgid "Other" msgstr "אחר" #, c-format msgid "%s Format" msgstr "פורמט %s" #. TRANSLATORS: %s is replaced with language name, e.g. "PHP" or "C", so "PHP Format" etc." #, c-format msgid "%s format" msgstr "פורמט %s" msgid "Source text" msgstr "טקסט המקור" #, c-format msgid "Translation — %s" msgstr "תרגום — %s" msgid "ID" msgstr "מזהה" #, c-format msgid "Source text — %s" msgstr "טקסט המקור — %s" msgid "unknown language" msgstr "שפה לא ידועה" #, c-format msgid "Failed command: %s" msgstr "הפקודה נכשלה: %s" msgid "Failed to merge gettext catalogs." msgstr "מיזוג קטלוגים של gettext נכשל." msgid "Source file" msgstr "קובץ מקור" msgid "Source file occurrence:" msgstr "מופע בקובץ המקור:" msgid "Open in Editor" msgstr "פתיחה בעורך" msgid "Open in editor" msgstr "פתיחה בעורך" msgid "No references for the selected item." msgstr "אין הפניות עבור הפריט הנבחר." #, c-format msgid "Error opening file %s!" msgstr "שגיאה בפתיחת הקובץ %s!" msgid "Find" msgstr "חיפוש" msgid "Replace" msgstr "החלפה" #. TRANSLATORS: Expander in Find window for additional options (case sensitive etc.) msgid "Options" msgstr "אפשרויות" msgid "Ignore case" msgstr "התעלמות מרישיות" msgid "Wrap around" msgstr "חזרה להתחלה בסיום" msgid "Whole words only" msgstr "מילים שלמות בלבד" msgid "Find in source texts" msgstr "חיפוש בטקסט המקור" msgid "Find in translations" msgstr "חיפוש בתרגומים" msgid "Find in comments" msgstr "חיפוש בהערות" msgid "Close" msgstr "סגירה" msgid "Replace &All" msgstr "החלפת ה&כל" msgid "Replace &all" msgstr "החלפת ה&כל" msgid "&Replace" msgstr "ה&חלפה" msgid "< &Previous" msgstr "< ה&קודם" msgid "&Next >" msgstr "ה&בא >" msgid "String to find" msgstr "מחרוזת לחיפוש" msgid "Replacement string" msgstr "מחרוזת להחלפה" #, c-format msgid "Cannot execute program: %s" msgstr "לא ניתן להריץ את היישום: %s" msgid "Language Code or Name (e.g. en_GB)" msgstr "השם או הקוד של השפה (לדוגמה: he_IL או he)" msgid "Translation Language" msgstr "שפת התרגום" msgid "Language of the translation:" msgstr "שפת התרגום:" msgid "Poedit - Catalogs manager" msgstr "Poedit - מנהל הקטלוגים" msgid "Catalog" msgstr "קטלוג" msgid "Total" msgstr "סה\"כ" msgid "Untrans" msgstr "לא מתורגמים" msgid "Errors" msgstr "שגיאות" msgid "Last modified" msgstr "שונה לאחרונה" msgid "Select directory" msgstr "בחירת ספרייה" msgid "Directories:" msgstr "ספריות:" msgid "" msgstr "<ללא שם>" msgid "Do you want to delete the project?" msgstr "האם ברצונך למחוק את הפרוייקט?" msgid "Confirmation" msgstr "אימות" msgid "" "Do you really want to do mass update of\n" "all catalogs in this project?" msgstr "האם אתה בטוח שברצונך לבצע עדכון קבוצתי של כל הקטלוגים בפרוייקט?" msgid "Information about the translator" msgstr "מידע על המתרגם" msgid "Name:" msgstr "שם:" msgid "Your Name" msgstr "השם שלך" msgid "Email:" msgstr "אימייל:" msgid "your_email@example.com" msgstr "your_email@example.com" msgid "" "Your name and email address are only used to set the Last-Translator header " "of GNU gettext files." msgstr "" "שמך וכתובת הדוא\"ל שלך ישמשו אך ורק כדי להגדיר את כותרת ה-Last-Translator " "בקבצי gettext של GNU." msgid "Editing" msgstr "עריכה" msgid "Automatically compile MO file when saving" msgstr "ביצוע הידור קובץ MO באופן אוטומטי בעת שמירה" msgid "Show summary after catalog update" msgstr "הצגת תקציר לאחר עדכון קטלוג" msgid "Check spelling" msgstr "בדיקת איות" msgid "Always change focus to text input field" msgstr "שנה תמיד את המיקוד לשדה הקלט של הטקסט" msgid "" "Never let the list of strings take focus. If enabled, you must use Ctrl-" "arrows for keyboard navigation but you can also type text immediately, " "without having to press Tab to change focus." msgstr "" "לא מאפשר לרשימת המחרוזות לקבל מיקוד. אם מופעל, עליך להשתמש במקשי החיצים " "בצירוף מקש ה-Ctrl לניווט, אבל גם ניתן לכתוב טקסט מיידית, ללא צורך בלחיצה על " "Tab לשינוי המיקוד." msgid "Appearance" msgstr "תצוגה" msgid "Use custom list font:" msgstr "שימוש בגופן מותאם אישית לרשימה:" msgid "Use custom text fields font:" msgstr "שימוש בגופן מותאם אישית לשדות טקסט:" msgid "Change UI language" msgstr "החלפת שפת הממשק" #. TRANSLATORS: This is a note appended to "Check spelling" when running on older Windows versions msgid "(requires Windows 8 or newer)" msgstr "(דורש Windows 8 ומעלה)" msgid "General" msgstr "כללי" msgid "Use translation memory" msgstr "שימוש בזיכרון תרגום" msgid "Learn From Files…" msgstr "למידה מקבצים…" msgid "Learn from files…" msgstr "למידה מקבצים…" #. TRANSLATORS: This is a button that deletes everything in the translation memory (i.e. clears/resets it). msgid "Reset" msgstr "איפוס" #. TRANSLATORS: Followed by "match translations within the file" or "pre-translate from TM" msgid "When updating from sources" msgstr "בעת עדכון ממקורות" #. TRANSLATORS: Preceded by "When updating from sources" msgid "fuzzy match within the file" msgstr "התאם תרגומים דומים מתוך הקובץ" #. TRANSLATORS: Preceded by "When updating from sources" msgid "pre-translate from TM" msgstr "בצע תרגום מראש מזיכרון התרגום" msgid "" "Poedit can attempt to fill in new entries from only previous translations in " "the file or from your entire translation memory. Using the TM won’t be very " "effective if it’s near-empty, but it will get better as you add more " "translations to it." msgstr "" "Poedit יכול לנסות להשלים רשומות חדשות מהתרגומים הקודמים שלך בקובץ או מזיכרון " "התרגום כולו. שימוש בזיכרון התרגום לא יהיה אפקטיבי אם הוא כמעט ריק, אבל הוא " "ישתפר ככל שתרגומים חדשים יתווספו אליו." msgid "Stored translations:" msgstr "תרגומים מאוחסנים:" msgid "Database size on disk:" msgstr "גודל מסד הנתונים בכונן:" msgid "Select translation files to import" msgstr "בחירת קבצי תרגום לייבוא" msgid "Translation Memory" msgstr "זיכרון תרגום" msgid "Importing translations…" msgstr "מייבא תרגומים…" msgid "Finalizing…" msgstr "מתבצעת סגירה…" msgid "Reset translation memory" msgstr "איפוס זיכרון התרגום" msgid "Are you sure you want to reset the translation memory?" msgstr "האם אתה בטוח שברצונך לאפס את זיכרון התרגום?" msgid "" "Resetting the translation memory will irrevocably delete all stored " "translations from it. You can’t undo this operation." msgstr "" "איפוס זיכרון התרגום ימחק את כל התרגומים המאוחסנים בו. לא ניתן לבטל פעולה זו." msgid "Cancel" msgstr "ביטול" #. TRANSLATORS: This is abbreviation of "Translation Memory" used in Preferences on macOS. #. Long text looks weird there, too short (like TM) too, but less so. "General" is about ideal #. length there. msgid "TM" msgstr "TM" msgid "" "Source code extractors are used to find translatable strings in the source " "code files and extract them so that they can be translated." msgstr "" "מחלצי קוד המקור משמשים לאיתור מחרוזות הניתנים לתרגום בקבצי קוד המקור ולחלצם " "כדי שיוכלו להיות מתורגמים." msgid "Custom Extractors:" msgstr "מחלצים מותאמים אישית:" msgid "Custom extractors:" msgstr "מחלצים מותאמים אישית:" msgid "Edit…" msgstr "עריכה…" msgid "GNU gettext" msgstr "GNU gettext" msgid "" "Supports all programming languages recognized by GNU gettext tools (PHP, C/C+" "+, C#, Perl, Python, Java, JavaScript and others)." msgstr "" "תומך בכל שפות התכנות המזוהות ע\"י כלי GNU gettext (למשל PHP, C/C++, C#, " "Perl, Python, Java, JavaScript ואחרים)." msgid "Delete extractor" msgstr "מחיקת מחלץ" #, c-format msgid "Are you sure you want to delete the “%s” extractor?" msgstr "האם אתה בטוח שברצונך למחוק את המחלץ \"%s\"?" msgid "Extractors" msgstr "מחלצים" msgid "Accounts" msgstr "חשבונות" msgid "Automatically check for updates" msgstr "בדיקה אחר עדכונים באופן אוטומטי" msgid "Include beta versions" msgstr "הכלל גרסאות בטא" msgid "" "Beta versions contain the latest new features and improvements, but may be a " "bit less stable." msgstr "" "גרסאות בטא מכילות את התכונות והעדכונים החדשים ביותר, אך עשויות להיות פחות " "יציבות." msgid "Updates" msgstr "עדכונים" msgid "" "These settings affect internal formatting of PO files. Adjust them if you " "have specific requirements e.g. because of version control." msgstr "" "הגדרות אלו משפיעות על הפורמט הפנימי של קבצי PO. שנה אותן אם יש לך דרישות " "מסוימות, למשל בגלל שליטה על גרסה." msgid "Line endings:" msgstr "סיומות שורה:" msgid "Unix (recommended)" msgstr "Unix (מומלץ)" msgid "Windows" msgstr "Windows" #. TRANSLATORS: Followed by text control for entering number; wraps text at given width msgid "Wrap at:" msgstr "גלישת שורה ב:" msgid "Preserve formatting of existing files" msgstr "שמירה על פורמט של קבצים קיימים" msgid "Advanced" msgstr "מתקדם" msgid "Pre-translating…" msgstr "מבצע תרגום מראש…" #, c-format msgid "Pre-translated %u string" msgid_plural "Pre-translated %u strings" msgstr[0] "%u מחרוזות מתורגמים מראש" msgstr[1] "%u מחרוזות מתורגמים מראש" msgstr[2] "%u מחרוזות מתורגמים מראש" msgstr[3] "%u מחרוזות מתורגמים מראש" #. TRANSLATORS: This is a somewhat common term describing the action where #. you apply the translation memory and/or machine translation to all of the #. strings you're translating as the first step, followed by correcting, #. improving etc., i.e. actually translating the strings. This may be tricky #. to express in other languages as simply as in English, but please try to #. keep it similarly concise. Please try to avoid, if possible, describing it #. as "auto-translation" and similar, because such terminology would mislead #. some users into thinking it's all that needs to be done (spoken from #. experience). "Pre-translate" nicely expresses that it's only the step done #. *before* actual translation. msgid "Pre-translate" msgstr "תרגום מראש" msgid "Only fill in exact matches" msgstr "השלם רק התאמות מדויקות" msgid "" "By default, inaccurate results are filled in as well and marked as needing " "work. Check this option to only include accurate matches." msgstr "" "כברירת מחדל, תוצאות שאינן מדויקות ממולאות גם כן ומסומנות ככאלו הדורשות " "סקירה. יש לבחור באפשרות זו כדי לכלול רק התאמות מדויקות." msgid "Don’t mark exact matches as needing work" msgstr "אל תסמן התאמות מדויקות ככאלו הדורשות סקירה" msgid "" "Only enable if you trust the quality of your TM. By default, all matches " "from the TM are marked as needing work and should be reviewed before use." msgstr "" "הפעל אפשרות זו רק אם אתה בוטח באיכות של זיכרון התרגום שלך. כברירת מחדל, כל " "ההתאמות מזיכרון התרגום מסומנות ככאלו הדורשות סקירה, ויש לעבור עליהם." msgid "" "Pre-translation automatically finds exact or fuzzy matches for untranslated " "strings in the translation memory and fills in their translations." msgstr "" "'תרגום מראש' מאתר באופן אוטומטי בזיכרון התרגום התאמות מדויקות או מעורפלות " "עבור מחרוזות שאינן מתורגמות, ומשלים את התרגומים שלהן." #, c-format msgid "%d entry was pre-translated." msgid_plural "%d entries were pre-translated." msgstr[0] "%d רשומות תורגמו מראש." msgstr[1] "%d רשומות תורגמו מראש." msgstr[2] "%d רשומות תורגמו מראש." msgstr[3] "%d רשומות תורגמו מראש." msgid "" "The translations were marked as needing work, because they may be " "inaccurate. You should review them for correctness." msgstr "" "התרגומים סומנו ככאלו הדורשים סקירה, מכיוון שיתכן שאינם מדויקים. כדאי לסקור " "אותם ולתקנם במידת הצורך." msgid "No entries could be pre-translated." msgstr "לא ניתן לתרגם מראש שום רשומה." msgid "" "The TM doesn’t contain any strings similar to the content of this file. It " "is only effective for semi-automatic translations after Poedit learns enough " "from files that you translated manually." msgstr "" "זיכרון התרגום לא מכיל מחרוזות הדומות לתוכן של קובץ זה. הוא יעיל לתרגומים חצי " "אוטומטיים רק לאחר ש-Poedit ילמד מספיק מקבצים שתתרגם באופן ידני." msgid "" "Drag and Drop Folders Here\n" "\n" "or use the + button" msgstr "" "גרור ושחרר תיקיות לכאן\n" "\n" "או השתמש בכפתור הפלוס (+)" msgid "" "Drag and drop folders here\n" "\n" "or use the + button" msgstr "" "גרור ושחרר תיקיות לכאן\n" "\n" "או השתמש בכפתור הפלוס (+)" msgid "Add Folders…" msgstr "הוספת תיקיות…" msgid "Add folders…" msgstr "הוספת תיקיות…" msgid "Add Files…" msgstr "הוספת קבצים…" msgid "Add files…" msgstr "הוספת קבצים…" msgid "Add Wildcard…" msgstr "הוספת Wildcard…" msgid "Add wildcard…" msgstr "הוספת Wildcard…" msgid "Paths" msgstr "נתיבים" msgid "Excluded paths" msgstr "נתיבים לא כלולים" msgid "Advanced extraction settings" msgstr "הגדרות חילוץ מתקדמות" msgid "Extract notes for translators from:" msgstr "חילוץ הערות למתרגמים מתוך:" msgid "Comments prefixed with:" msgstr "הערות המתחילות ב:" msgid "All comments" msgstr "כל ההערות" msgid "Additional xgettext flags:" msgstr "דגלי xgettext נוספים:" msgid "Additional keywords" msgstr "מילות מפתח נוספות" msgid "Name of the project the translation is for" msgstr "שם הפרוייקט עבורו מיועד התרגום" msgid "Team name and email address or URL" msgstr "שם הצוות וכתובת הדוא\"ל או כתובת האתר" msgid "e.g. nplurals=2; plural=(n > 1);" msgstr "לדוגמה ‪nplurals=2; plural=(n > 1);‬" msgid "UTF-8 (recommended)" msgstr "UTF-8 (מומלץ)" msgid "Please save the file first. This section cannot be edited until then." msgstr "נא לשמור את הקובץ תחילה. לא ניתן לערוך סעיף זה עד אז." msgid "Not all plural forms are translated." msgstr "לא כל צורות הרבים מתורגמות." msgid "The translation should start as a sentence." msgstr "התרגום אמור להתחיל כמשפט." msgid "The translation should start with a lowercase character." msgstr "התרגום אמור להתחיל באות לטינית קטנה." msgid "The translation doesn’t start with a space." msgstr "התרגום לא מתחיל ברווח." msgid "The translation starts with a space, but the source text doesn’t." msgstr "התרגום מתחיל ברווח, בניגוד לטקסט המקור." msgid "The translation is missing a newline at the end." msgstr "בסוף התרגום חסרה שורה חדשה." msgid "The translation ends with a newline, but the source text doesn’t." msgstr "התרגום מסתיים בשורה חדשה, בניגוד לטקסט המקור." msgid "The translation is missing a space at the end." msgstr "בסוף התרגום חסר רווח." msgid "The translation ends with a space, but the source text doesn’t." msgstr "התרגום מסתיים ברווח, בניגוד לטקסט המקור." #, c-format msgid "The translation should end with “%s”." msgstr "התרגום אמור להסתיים ב-“%s”." #, c-format msgid "The translation should not end with “%s”." msgstr "התרגום לא אמור להסתיים ב-“%s”." #, c-format msgid "The translation ends with “%s”, but the source text ends with “%s”." msgstr "התרגום מסתיים ב-“%s”, אבל טקסט המקור מסתיים ב-“%s”." msgid "Comment:" msgstr "הערה:" msgid "OK" msgstr "אישור" msgid "C&lear" msgstr "&מחיקה" msgid "Clear the comment" msgstr "מחיקת ההערה" msgid "New" msgstr "חדש" msgid "Create new translations project" msgstr "יצירת פרוייקט תרגומים חדש" msgid "Edit" msgstr "עריכה" msgid "Edit the project" msgstr "עריכת הפרוייקט" msgid "Delete the project" msgstr "מחיקת הפרוייקט" msgid "Update all" msgstr "עדכון הכל" msgid "Update all catalogs in the project" msgstr "עדכון כל הקטלוגים בפרוייקט" msgid "Edit project" msgstr "עריכת פרוייקט" msgid "Project name:" msgstr "שם הפרוייקט:" msgid "Browse" msgstr "עיון" msgid "Add directory to the list" msgstr "הוספת ספרייה לרשימה" msgid "&New…" msgstr "&חדש…" msgid "New from &POT/PO file…" msgstr "חדש מקובץ &POT/PO…" msgid "New From &POT/PO File…" msgstr "חדש מקובץ &POT/PO…" msgid "&Open…" msgstr "&פתיחה…" msgid "Open Recent" msgstr "פתח אחרונים" msgid "Open from Crowdin…" msgstr "פתיחה מ-Crowdin…" msgid "Open From Crowdin…" msgstr "פתיחה מ-Crowdin…" msgid "&Close" msgstr "&סגירה" msgid "&Save" msgstr "ש&מירה" msgid "Save &as…" msgstr "שמירה &בשם…" msgid "Save &As…" msgstr "שמירה &בשם…" msgid "Compile to MO…" msgstr "ביצוע הידור ל-MO…" msgid "E&xport as HTML…" msgstr "ייצוא כ-&HTML…" msgid "Check for updates…" msgstr "בדיקה אחר עדכונים…" msgid "&Preferences…" msgstr "&העדפות…" msgid "Catalogs &manager" msgstr "מ&נהל הקטלוגים" msgid "Catalogs &Manager" msgstr "מ&נהל הקטלוגים" msgid "E&xit" msgstr "י&ציאה" msgid "Quit" msgstr "יציאה" msgid "Copy from singular" msgstr "העתקה מ'לשון יחיד'" msgid "Copy From Singular" msgstr "העתקה מ'לשון יחיד'" msgid "Translation needs &work" msgstr "סימון כתרגום הדורש &סקירה" msgid "Translation Needs &Work" msgstr "סימון כתרגום הדורש &סקירה" msgid "Edit &comment" msgstr "עריכת &הערה" msgid "Edit &Comment" msgstr "עריכת &הערה" msgid "Suggestions" msgstr "הצעות" msgid "&Find…" msgstr "&חיפוש…" msgid "Replace…" msgstr "החלפה…" msgid "Find next" msgstr "חיפוש הבא" msgid "Find previous" msgstr "חיפוש הקודם" msgid "Find and Replace…" msgstr "חיפוש והחלפה…" msgid "Find Next" msgstr "חיפוש הבא" msgid "Find Previous" msgstr "חיפוש הקודם" msgid "&Preferences" msgstr "ה&עדפות" msgid "Display entry &IDs" msgstr "הצגת מ&זהים של רשומות" msgid "Display Entry &IDs" msgstr "הצגת מ&זהים של רשומות" msgid "Sort by &file order" msgstr "מיון לפי ה&סדר שבקובץ" msgid "Sort by &File Order" msgstr "מיון לפי ה&סדר שבקובץ" msgid "Sort by &source" msgstr "מיון לפי המ&קור" msgid "Sort by &Source" msgstr "מיון לפי המ&קור" msgid "Sort by &translation" msgstr "מיון לפי ה&תרגום" msgid "Sort by &Translation" msgstr "מיון לפי ה&תרגום" msgid "&Group by context" msgstr "קיבו&ץ לפי הקשר" msgid "&Group By Context" msgstr "קיבו&ץ לפי הקשר" msgid "Entries with errors first" msgstr "רשומות עם שגיאות תחילה" msgid "Entries with Errors First" msgstr "רשומות עם שגיאות תחילה" msgid "&Untranslated entries first" msgstr "רשומות ש&אינן מתורגמות תחילה" msgid "&Untranslated Entries First" msgstr "רשומות ש&אינן מתורגמות תחילה" msgid "&Show references" msgstr "הצגת ה&פניות" msgid "&Show References" msgstr "הצגת ה&פניות" msgid "Show sidebar" msgstr "הצגת סרגל הצד" msgid "Show status bar" msgstr "הצגת שורת המצב" msgid "C&atalog" msgstr "ק&טלוג" msgid "&Update from sources" msgstr "עדכון מ&מקורות" msgid "&Update from Sources" msgstr "עדכון מ&מקורות" msgid "Update from &POT file…" msgstr "עדכון מקובץ &POT…" msgid "Update from &POT File…" msgstr "עדכון מקובץ &POT…" msgid "Sync with Crowdin" msgstr "סנכרון עם Crowdin" msgid "Pre-&translate…" msgstr "&תרגום מראש…" msgid "&Purge deleted translations" msgstr "פינוי תרגומים ש&נמחקו" msgid "&Purge Deleted Translations" msgstr "פינוי תרגומים ש&נמחקו" msgid "&Validate translations" msgstr "&אימות התרגומים" msgid "&Validate Translations" msgstr "&אימות התרגומים" msgid "&Properties…" msgstr "מא&פיינים…" msgid "&Done and next" msgstr "ב&צע והמשך" msgid "&Done and Next" msgstr "ב&צע והמשך" msgid "&Previous translation" msgstr "התרגום ה&קודם" msgid "&Previous Translation" msgstr "התרגום ה&קודם" msgid "&Next translation" msgstr "התרגום ה&בא" msgid "&Next Translation" msgstr "התרגום ה&בא" msgid "P&revious unfinished" msgstr "הקו&דם שלא הושלם" msgid "P&revious Unfinished" msgstr "הקו&דם שלא הושלם" msgid "Ne&xt unfinished" msgstr "&הבא שלא הושלם" msgid "Ne&xt Unfinished" msgstr "&הבא שלא הושלם" msgid "Previous plural form" msgstr "לשון רבים הקודם" msgid "Previous Plural Form" msgstr "לשון רבים הקודם" msgid "Next plural form" msgstr "לשון רבים הבא" msgid "Next Plural Form" msgstr "לשון רבים הבא" msgid "&Online help" msgstr "עזרה מ&קוונת" msgid "&Online Help" msgstr "עזרה מ&קוונת" msgid "&GNU gettext manual" msgstr "הדרכה ל-&GNU gettext" msgid "&GNU gettext Manual" msgstr "הדרכה ל-&GNU gettext" msgid "&About Poedit" msgstr "&אודות Poedit" msgid "&About" msgstr "&אודות" msgid "Extractor setup" msgstr "הגדרת מחלץ" msgid "List of extensions separated by semicolons (e.g. *.cpp;*.h):" msgstr "רשימה של הרחבות המופרדות בנקודה פסיק (לדוגמה: ‎*.cpp;*.h):" msgid "Invocation:" msgstr "קריאה:" msgid "Command to extract translations:" msgstr "פקודה לחילוץ תרגומים:" msgid "" "This is the command used to launch the extractor.\n" "%o expands to the name of output file, %K to list\n" "of keywords, %F to list of input files,\n" "%C to charset flag (see below)." msgstr "" "זו הפקודה המשמשת לפתיחת המחלץ.\n" "%o יוחלף בשם של קובץ הפלט, %K ברשימת מילות המפתח, %F ברשימת קבצי הקלט,\n" "%C בדגל הקידוד (ראה למטה)." msgid "An item in keywords list:" msgstr "פריט ברשימת מילות המפתח:" msgid "" "This will be attached to the command line once\n" "for each keyword. %k expands to the keyword." msgstr "" "משתנה זה יתווסף לשורת הפקודה פעם אחת\n" "עבור כל מילת מפתח. %k יוחלף במילת המפתח." msgid "An item in input files list:" msgstr "פריט ברשימת קובצי הקלט:" #, c-format msgid "" "This will be attached to the command line once\n" "for each input file. %f expands to the filename." msgstr "" "משתנה זה יתווסף לשורת הפקודה פעם אחת\n" "עבור כל קובץ קלט. %f יוחלף בשם הקובץ." msgid "Source code charset:" msgstr "קידוד קוד המקור:" #, c-format msgid "" "This will be attached to the command line\n" "only if source code charset was given. %c expands to charset value." msgstr "" "משתנה זה יתווסף לשורת הפקודה\n" "רק אם הקידוד של קוד המקור סופק. %c יוחלף בערך הקידוד." msgid "Catalog properties" msgstr "מאפייני הקטלוג" msgid "Project name and version:" msgstr "שם הפרוייקט וגרסה:" msgid "Language team:" msgstr "צוות המתרגמים:" msgid "Plural forms:" msgstr "צורות רבים:" msgid "Use default rules for this language" msgstr "שימוש בכללי בררת המחדל לשפה זו" msgid "Use custom expression" msgstr "שימוש בביטוי מותאם אישית" msgid "Learn about plural forms" msgstr "מידע על לשון רבים" msgid "Charset:" msgstr "קידוד:" msgid "Advanced Extraction Settings…" msgstr "הגדרות חילוץ מתקדמות…" msgid "Advanced extraction settings…" msgstr "הגדרות חילוץ מתקדמות…" msgid "Translation Properties" msgstr "מאפייני התרגום" msgid "Translation properties" msgstr "מאפייני התרגום" msgid "Sources Paths" msgstr "נתיבי המקורות" msgid "Sources paths" msgstr "נתיבי המקורות" msgid "Extract text from source files in the following directories:" msgstr "חלץ טקסט מקבצי המקור בספריות הבאות:" msgid "Base path:" msgstr "נתיב הבסיס:" msgid "Sources Keywords" msgstr "מילות מפתח המקורות" msgid "Sources keywords" msgstr "מילות מפתח המקורות" msgid "" "Use these keywords (function names) to recognize translatable strings\n" "in source files:" msgstr "" "השתמש במילות מפתח אלה (שמות פונקציות) על מנת לזהות מחרוזות הניתנות לתרגום\n" "בקבצי המקור:" msgid "Also use default keywords for supported languages" msgstr "השתמש בנוסף במילות מפתח ברירת מחדל עבור שפות נתמכות" msgid "Learn About Gettext Keywords" msgstr "מידע נוסף אודות מילות מפתח של gettext" msgid "Learn about gettext keywords" msgstr "מידע נוסף אודות מילות מפתח של gettext" msgid "Update summary" msgstr "תקציר העדכון" msgid "" "These strings were found in the sources but were not in the catalog.\n" "Poedit will add them to the catalog now." msgstr "" "מחרוזות אלו נמצאו במקורות אבל לא בקטלוג.\n" "Poedit יוסיף אותן לקטלוג כעת." msgid "New strings" msgstr "מחרוזות חדשות" msgid "" "These strings are no longer in the sources.\n" "Poedit will remove them from the catalog now." msgstr "" "מחרוזות אלו אינן נמצאות עוד במקורות.\n" "Poedit יסיר אותן כעת מהקטלוג." msgid "Obsolete strings" msgstr "מחרוזות מיושנות" msgid "(0 new, 0 obsolete)" msgstr "(0 חדשות, 0 מיושנות)" msgid "Open" msgstr "פתיחה" msgid "Save catalog" msgstr "שמירת הקטלוג" msgid "Validate" msgstr "אימות" msgid "Check for errors in the translation" msgstr "בדיקת שגיאות בתרגום" msgid "Update" msgstr "עדכון" msgid "Update catalog - synchronize it with sources" msgstr "עדכון קטלוג - מסנכרן אותו עם המקורות" msgid "Sidebar" msgstr "סרגל הצד" msgid "Show or hide the sidebar" msgstr "הצגה או הסתרה של סרגל הצד" #. TRANSLATORS: "Previous" as in used in the past, now replaced with newer. msgid "Previous source text:" msgstr "טקסט המקור הקודם:" msgid "" "The old source text (before it changed during an update) that the now-" "inaccurate translation corresponds to." msgstr "" "טקסט המקור הקודם (לפני ששונה במהלך עדכון) אליו תואם התרגום שכעת אינו מדויק." msgid "Notes for translators:" msgstr "הערות למתרגמים:" msgid "Add comment" msgstr "הוספת הערה" msgid "Add Comment" msgstr "הוספת הערה" msgid "Translation suggestions:" msgstr "הצעות תרגום:" #. TRANSLATORS: This is shown when no translation suggestions can be found in the TM (Windows). msgid "No matches found" msgstr "לא נמצאו התאמות" #. TRANSLATORS: This is shown when no translation suggestions can be found in the TM (macOS, Linux). msgid "No Matches Found" msgstr "לא נמצאו התאמות" msgid "This string was found in Poedit’s translation memory." msgstr "מחרוזת זו אותרה בזיכרון התרגום של Poedit." msgid "Cannot create temporary directory." msgstr "לא ניתן ליצור ספרייה זמנית." msgid "Welcome to Poedit" msgstr "ברוכים הבאים ל-Poedit" #. TRANSLATORS: This is version information in about dialog, "%s" will be #. version number when used #, c-format msgid "Version %s" msgstr "גרסה %s" msgid "Edit a Translation" msgstr "עריכת תרגום" msgid "Edit a translation" msgstr "עריכת תרגום" msgid "Open an existing PO file and edit the translation." msgstr "פתיחת קובץ PO קיים ועריכת התרגום." msgid "" "Take an existing PO file or POT template and create a new translation from " "it." msgstr "שימוש בקובץ PO קיים או תבנית POT ויצירת תרגום חדש ממנו." msgid "Collaborate on a Translation with Others" msgstr "שיתוף פעולה עם אחרים על תרגום" msgid "Collaborate on a translation with others" msgstr "שיתוף פעולה עם אחרים על תרגום" msgid "" "Download a file from Crowdin project, translate and sync your changes back." msgstr "הורדת קובץ מפרויקט Crowdin, תרגום וסנכרון השינויים בחזרה." msgid "What is Crowdin?" msgstr "מה זה Crowdin?" msgid "There are no translations. That’s unusual." msgstr "אין תרגומים. זה מצב חריג." msgid "" "Translatable entries aren’t added manually in the Gettext system, but are " "automatically extracted\n" "from source code. This way, they stay up to date and accurate.\n" "Translators typically use PO template files (POTs) prepared for them by the " "developer." msgstr "" "רשומות הניתנות לתרגום אינן מתווספות באופן ידני למערכת ה-Gettext, אבל מחולצות " "באופן אוטומטי מקוד המקור.\n" "בצורה הזו, הן נשארות מעודכנות ומדויקות.\n" "מתרגמים משתמשים בדרך כלל בקבצי תבנית PO (ובקיצור POTs) המוכנים עבורם ע\"י " "המפתח." msgid "(Learn more about GNU gettext)" msgstr "(מידע נוסף אודות GNU gettext)" msgid "The simplest way to fill this catalog is to update it from a POT:" msgstr "הדרך הפשוטה ביותר להשלמת קטלוג זה היא לעדכן אותו מ-POT:" msgid "Update from POT" msgstr "עדכון מ-POT" msgid "Take translatable strings from an existing POT template." msgstr "שימוש במחרוזות הניתנות לתרגום מתבנית POT קיימת." msgid "" "You can also extract translatable strings directly from the source code:" msgstr "ניתן גם לחלץ את המחרוזות הניתנות לתרגום ישירות מקוד המקור:" msgid "Extract from sources" msgstr "חילוץ ממקורות" msgid "Configure source code extraction in Properties." msgstr "ניתן להגדיר את חילוץ קוד המקור במאפיינים." msgid "Sync" msgstr "סנכרון" msgid "Synchronize the translation with Crowdin" msgstr "סנכרון התרגום עם Crowdin" #. TRANSLATORS: This is titlebar of about dialog, "%s" is application name #. ("Poedit" here, but please use "%s") #, c-format msgid "About %s" msgstr "אודות %s" #. TRANSLATORS: Title of the preferences window on Windows and Linux. "%s" is replaced with "Poedit" when running. #, c-format msgid "%s Preferences" msgstr "העדפות של %s" #. TRANSLATORS: macOS item in app menu msgid "Services" msgstr "שירותים" #. TRANSLATORS: macOS item in app menu, %s is replaced with "Poedit" #, c-format msgid "Hide %s" msgstr "הסתר את %s" #. TRANSLATORS: macOS item in app menu msgid "Hide Others" msgstr "הסתר אחרים" #. TRANSLATORS: macOS item in app menu msgid "Show All" msgstr "הצג הכל" #. TRANSLATORS: macOS item in app menu, %s is replaced with "Poedit" #, c-format msgid "Quit %s" msgstr "סיים את %s" #. TRANSLATORS: macOS item in app menu msgid "Preferences…" msgstr "העדפות…" msgid "Preferences..." msgstr "העדפות..." #. TRANSLATORS: Title of a category in Windows task menu (right-click icon in taskbar) msgid "Recent" msgstr "אחרונים" #. TRANSLATORS: Title of a category in Windows task menu (right-click icon in taskbar) msgid "Frequent" msgstr "תכוף" msgid "&Apply" msgstr "ה&חל" msgid "Apply" msgstr "החל" msgid "&Back" msgstr "ה&קודם" msgid "Back" msgstr "הקודם" msgid "&Cancel" msgstr "בי&טול" msgid "&Clear" msgstr "&נקה" msgid "Clear" msgstr "נקה" msgid "Copy" msgstr "העתק" msgid "Cu&t" msgstr "ג&זור" msgid "Cut" msgstr "גזור" msgid "&Delete" msgstr "&מחק" msgid "&Quit" msgstr "י&ציאה" msgid "File" msgstr "קובץ" msgid "Help" msgstr "עזרה" msgid "&New" msgstr "ח&דש" msgid "&No" msgstr "&לא" msgid "No" msgstr "לא" msgid "&OK" msgstr "&אישור" msgid "Open…" msgstr "פתיחה…" msgid "&Open..." msgstr "&פתיחה..." msgid "Open..." msgstr "פתיחה..." msgid "&Paste" msgstr "ה&דבק" msgid "Paste" msgstr "הדבק" msgid "Preferences" msgstr "העדפות" msgid "&Redo" msgstr "בצע &שוב" msgid "Refresh" msgstr "רענון" msgid "&Save as" msgstr "שמירה &בשם" msgid "Save as" msgstr "שמירה בשם" msgid "Select &All" msgstr "בחר ה&כל" msgid "Select All" msgstr "בחר הכל" msgid "&Undo" msgstr "&בטל" msgid "&Yes" msgstr "&כן" msgid "Yes" msgstr "כן" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Shift+" msgstr "Shift+" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Enter" msgstr "Enter" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Up" msgstr "Up" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Down" msgstr "Down" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Left" msgstr "Left" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Right" msgstr "Right" #. TRANSLATORS: Keyboard shortcut, must correspond to translation of "Ctrl+" msgid "ctrl" msgstr "ctrl" #. TRANSLATORS: Keyboard shortcut, must correspond to translation of "Alt+" msgid "alt" msgstr "alt" #. TRANSLATORS: Keyboard shortcut, must correspond to translation of "Shift+" msgid "shift" msgstr "shift" poedit-2.0.6/locales/uz.po0000664000372000037200000014050413230131554012345 00000000000000msgid "" msgstr "" "Project-Id-Version: poedit\n" "Report-Msgid-Bugs-To: help@poedit.net\n" "POT-Creation-Date: 2017-12-05 15:52+0100\n" "PO-Revision-Date: 2017-07-27 03:15-0400\n" "Last-Translator: vslavik \n" "Language-Team: Uzbek\n" "Language: uz_UZ\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" "X-Generator: crowdin.com\n" "X-Crowdin-Project: poedit\n" "X-Crowdin-Language: uz\n" "X-Crowdin-File: /locales/poedit.pot\n" msgid "Hide this notification message" msgstr "Ushbu ogohlantirish xabarini yashirish" msgid "Don’t Show Again" msgstr "" msgid "Don’t show again" msgstr "" #, c-format msgid "(New: %i, obsolete: %i)" msgstr "(Yangi: %i, eskirgan: %i)" msgid "Updating catalog" msgstr "Katalogni yangilash" msgid "Collecting source files…" msgstr "" msgid "Extracting translatable strings…" msgstr "" msgid "Failed to load extracted catalog." msgstr "Ajratilgan katalog yuklanmadi." msgid "Merging differences…" msgstr "" #, c-format msgid "“%s” is not a valid POT file." msgstr "" #, c-format msgid "%i line of file “%s” was not loaded correctly." msgid_plural "%i lines of file “%s” were not loaded correctly." msgstr[0] "" msgstr[1] "" #, c-format msgid "Line %d of file “%s” is corrupted (not valid %s data)." msgstr "" #, c-format msgid "Malformed header: “%s”" msgstr "" msgid "" "Broken catalog file: singular form msgstr used together with msgid_plural" msgstr "" "Buzilgan katalog fayli: msgstr’ning birlik shakli msgid_plural bilan birga " "ishlatilgan" msgid "Broken catalog file: plural form msgstr used without msgid_plural" msgstr "" "Katalog faylida xatolik: msgstr ning ko'plik shakli msgid_plural siz " "ishlatilgan" msgid "" "There were errors when loading the catalog. Some data may be missing or " "corrupted as the result." msgstr "" "Katalogni yuklashda xatolik ro‘y berdi. Ba’zi ma’lumotlar bo'lmasligi yoki " "natija sifatida buzilgan bo‘lishi mumkin." #, c-format msgid "Couldn’t load file %s, it is probably corrupted." msgstr "" #, c-format msgid "" "File “%s” is read-only and cannot be saved.\n" "Please save it under different name." msgstr "" #, c-format msgid "Couldn’t save file %s." msgstr "" msgid "" "There was a problem formatting the file nicely (but it was saved all right)." msgstr "Faylni formatlashda muammo yuz berdi (ammo u yaxshi saqlangandi)." #, c-format msgid "" "The catalog couldn’t be saved in “%s” charset as specified in catalog " "settings.\n" "\n" "It was saved in UTF-8 instead and the setting was modified accordingly." msgstr "" msgid "Error saving catalog" msgstr "Katalogni saqlashda xatolik" msgid "PO Translation Files" msgstr "PO tarjima fayllari" msgid "POT Translation Templates" msgstr "POT tarjima namunalari" msgid "All Translation Files" msgstr "Barcha tarjima fayllari" msgid "(Use default language)" msgstr "(Standart tildan foydalanish)" msgid "Select your preferred language" msgstr "Siznig avfzal tilingizni tanlash" msgid "Language selection" msgstr "Tilni tanlash" msgid "You must restart Poedit for this change to take effect." msgstr "" "O‘zgartirish amalga oshishi uchun Poedit’ni qayta ishga tushirishingiz kerak." msgid "Syncing" msgstr "" #. TRANSLATORS: %s is a cloud destination, e.g. "Crowdin" or ftp.wordpress.com etc. #, c-format msgid "Syncing with %s…" msgstr "" #. TRANSLATORS: %s is a cloud destination, e.g. "Crowdin" or ftp.wordpress.com etc. #, c-format msgid "Syncing with %s failed." msgstr "" msgid "Syncing error" msgstr "" msgid "Downloading translations is disabled in this project." msgstr "Tarjimalarni yuklab olish ushbu loyihada o‘chirib qo‘yilgan." msgid "Not authorized, please sign in again." msgstr "Tasdiqdan o‘tmagan, yana kiring." msgid "" "Crowdin is an online localization management platform and collaborative " "translation tool. Poedit can seamlessly sync PO files managed at Crowdin." msgstr "" "Crowdin onlayn tarjimalarni boshqarish platformasi va hamkorlikda tarjima " "qilish vositasi hisoblanadi. Poedit PO fayllar bilan ishlash uchun Crowdin " "tarmog‘i bilan muammosiz sinxronlay oladi." msgid "Sign In" msgstr "Kirish" msgid "Sign in" msgstr "Kirish" msgid "Sign Out" msgstr "Chiqish" msgid "Sign out" msgstr "Chiqish" msgid "Waiting for authentication…" msgstr "Tasdiqdan o‘tkazilmoqda…" msgid "Updating user information…" msgstr "Foydalanuvchi ma’lumoti yangilanmoqda…" msgid "Signed in as:" msgstr "Foydalanuvchi:" msgid "Learn More About Crowdin" msgstr "Crowdin haqida ko‘proq ma’lumot olish" msgid "Learn more about Crowdin" msgstr "Crowdin haqida ko‘proq ma’lumot olish" msgid "Sign in to Crowdin" msgstr "Crowdin saytiga kiring" msgid "Open Crowdin translation" msgstr "Crowdin tarjimasini ochish" msgid "Project:" msgstr "Loyiha:" msgid "Language:" msgstr "Til:" msgid "File:" msgstr "Fayl:" msgid "No translation projects listed in your Crowdin account." msgstr "Crowdin hisobingizda birorta ham tarjima loyihalari keltirilmagan." msgid "This project has no files that can be translated in Poedit." msgstr "Loyihada Poedit orqali tarjima qilish uchun fayllar yo‘q." msgid "This file can only be edited in Crowdin’s web interface." msgstr "Ushbu faylni faqat Crowdin veb interfeysida tahrirlash mumkin." msgid "Downloading latest translations…" msgstr "So‘nggi tarjimalar yuklab olinmoqda…" msgid "Syncing with Crowdin failed." msgstr "Crowdin bilan sinxronlash amalga oshmadi." msgid "Crowdin error" msgstr "Crowdin’da xatolik" msgid "Uploading translations…" msgstr "Tarjimalar yuklab qo‘yilmoqda…" msgid "&Copy" msgstr "&Nusxa olish" msgid "Learn more" msgstr "Batafsil ma’lumot" msgid "Learn More" msgstr "Batafsil ma’lumot" msgid "&Help" msgstr "&Yordam" msgid "MO files can’t be directly edited in Poedit." msgstr "Poedit’da MO fayllarni to‘g‘ridan-to‘g‘ri tahrirlab bo‘lmaydi." msgid "Error opening file" msgstr "Faylni ochishda xato yuz berdi" msgid "" "Please open and edit the corresponding PO file instead. When you save it, " "the MO file will be updated as well." msgstr "" "O‘rniga mavjud PO faylini oching va tahrirlang. Uni saqlaganingizda, MO fayl " "ham yangilanadi." msgid "don’t delete temporary files (for debugging)" msgstr "" msgid "handle a poedit:// URI" msgstr "poedit:// URI bilan ishlash" msgid "go to item at given line number" msgstr "" msgid "Failed to communicate with Poedit process." msgstr "Poedit jarayoni bilan bog‘lab bo‘lmadi." #, c-format msgid "Unhandled exception occurred: %s" msgstr "Qayta ishlab bo‘lmaydigan istisno yuz berdi: %s" msgid "Open catalog" msgstr "Katalogni ochish" #, c-format msgid "File “%s” doesn’t exist." msgstr "" msgid "Poedit is an easy to use translations editor." msgstr "Poedit qulay va oson tarjimalar tahrirlagichidir." msgid "Catalogs Manager" msgstr "Kataloglar menejeri" msgid "Check for Updates…" msgstr "" msgid "&Edit" msgstr "&Tahrirlash" msgid "Undo" msgstr "Orqaga qaytarish" msgid "Redo" msgstr "Qayta bajarish" msgid "Paste and Match Style" msgstr "Nusxa olish va joylash uslubi" msgid "Delete" msgstr "O‘chirish" msgid "Spelling and Grammar" msgstr "Imlo va grammatika" msgid "Show Spelling and Grammar" msgstr "Imlo va grammatikani ko‘rsatish" msgid "Check Document Now" msgstr "Hujjatni hozir tekshirish" msgid "Check Spelling While Typing" msgstr "Yozayotganda imlo xatolari tekshirilsin" msgid "Check Grammar With Spelling" msgstr "Grammatik xatolar imlo xatolar bilan birga tekshirilsin" msgid "Correct Spelling Automatically" msgstr "Imlo xatolar avtomatik to‘g‘rilansin" msgid "Substitutions" msgstr "Almashishlar" msgid "Show Substitutions" msgstr "Almashishlarni ko‘rsatish" msgid "Smart Copy/Paste" msgstr "Qulay nusxa olish/Qo‘yish" msgid "Smart Quotes" msgstr "Qulay qo‘shtirnoqlar" msgid "Smart Dashes" msgstr "Qulay tirelar" msgid "Smart Links" msgstr "Qulay linklar" msgid "Text Replacement" msgstr "Matnni almashtirish" msgid "Transformations" msgstr "Transformatsiya" msgid "Make Upper Case" msgstr "Katta harf qilish" msgid "Make Lower Case" msgstr "Kichik harf qilish" msgid "Capitalize" msgstr "Katta harf qilish" msgid "Speech" msgstr "Nutq" msgid "Start Speaking" msgstr "Gapirishni boshlash" msgid "Stop Speaking" msgstr "Gapirishni to‘xtatish" msgid "&View" msgstr "&Ko‘rinishi" msgid "Enter Full Screen" msgstr "\"Butun ekranda\" usuliga o‘tish" msgid "Window" msgstr "Oyna" msgid "Minimize" msgstr "Yig‘ish" msgid "Zoom" msgstr "Kattalashtirish/Kichiklashtirish" msgid "Bring All to Front" msgstr "Hammasini oldga o‘tkazish" #. TRANSLATORS:File kind displayed in Finder/Explorer msgid "PO Translation" msgstr "PO tarjima" msgid "The file cannot be opened." msgstr "Faylni ochib bo‘lmaydi." msgid "Invalid file" msgstr "Noto‘g‘ri fayl" msgid "" "The file may be either corrupted or in a format not recognized by Poedit." msgstr "" "Fayl buzilgan bo‘lishi mumkin yoki ushbu formatni Poedit aniqlay olmadi." msgid "You can’t drop more than one file on Poedit window." msgstr "" #, c-format msgid "File “%s” is not a message catalog." msgstr "" msgid "Poedit" msgstr "Poedit" msgid "&File" msgstr "&Fayl" msgid "&Go" msgstr "&O‘tish" #. TRANSLATORS: %s is language name in its basic form (as you #. would see e.g. in a list of supported languages). You may need #. to rephrase it, e.g. to an equivalent of "for language %s". #, c-format msgid "" "Spellchecking is disabled, because the dictionary for %s isn’t installed." msgstr "" "Imloni tekshirish o‘chirib qo‘yildi, chunki %s uchun lug‘at o‘rnatilmagan." msgid "Install" msgstr "O‘rnatish" msgid "Catalog modified. Do you want to save changes?" msgstr "Katalog o‘zgartirildi. O‘zgarishlarni saqlashni xohlaysizmi?" msgid "Save changes" msgstr "O‘zgarishlarni saqlash" msgid "Your changes will be lost if you don’t save them." msgstr "" msgid "Save" msgstr "Saqlash" msgid "Don’t save" msgstr "" msgid "Don’t Save" msgstr "" msgid "Save as…" msgstr "" msgid "Compile to…" msgstr "" msgid "Compiled Translation Files" msgstr "Kompilyatsiya qilingan tarjima fayllari" msgid "Export as…" msgstr "" msgid "HTML Files" msgstr "HTML fayllar" msgid "Open catalog template" msgstr "Andoza namunasini ochish" msgid "Source code not available." msgstr "Manba kodi mavjud emas." msgid "Updating failed" msgstr "Yuklash amalga oshmadi" msgid "" "Translations couldn’t be updated from the source code, because no code was " "found in the location specified in the catalog’s Properties." msgstr "" "Tarjimalarni manba kodidan yuklab bo‘lmaydi, chunki katalogning xossalarida " "ko‘rsatilgan manzildan hech qanday kod topilmadi." msgid "Entries in the catalog are probably incorrect." msgstr "Katalogga kiritilganlar noto‘g‘ri bo‘lishi mumkin." msgid "Updating the catalog failed. Click on 'Details >>' for details." msgstr "" "Katalogni yangilab bo‘lmadi. Batafsil ma’lumotlar uchun 'Tafsilotlar >>'ga " "bosing." #, c-format msgid "%d issue with the translation found." msgid_plural "%d issues with the translation found." msgstr[0] "Tarjima bilan %d ta muammo topildi." msgstr[1] "Tarjima bilan %d ta muammo topildi." msgid "Validation results" msgstr "To‘g‘rilash natijalari" msgid "" "Entries with errors were marked in red in the list. Details of the error " "will be shown when you select such an entry." msgstr "" "Xato kiritilganlar ro‘yxatda qizil bilan belgilangan. Xatolik tafsilotlari " "kiritilganni tanlasangiz ko‘rinadi." msgid "The file was saved safely." msgstr "Fayl xavfsiz saqlandi." msgid "" "The file was saved safely and compiled into the MO format, but it will " "probably not work correctly." msgstr "" "Fayl xavfsiz saqlandi va MO formatga o‘zgartirildi, ammo u to‘g‘ri " "ishlamasligi mumkin." msgid "" "The file was saved safely, but it cannot be compiled into the MO format and " "used." msgstr "" "Fayl xavfsiz saqlandi, ammo MO formatga o‘zgartirilmadi va undan foydalanib " "bo‘lmaydi." msgid "" "The file was compiled into the MO format, but it will probably not work " "correctly." msgstr "" "Fayl MO formatga kompilyatsiya qilindi, ammo u to‘g‘ri ishlamasligi mumkin." msgid "The file cannot be compiled into the MO format and used." msgstr "" "Faylni MO formatga kompilyatsiya qilib bo‘lmaydi va undan foydalanib ham " "bo‘lmaydi." msgid "No problems with the translation found." msgstr "Tarjima bilan bog‘liq hech qanday muammo topilmadi." #, c-format msgid "The translation is ready for use, but %d entry is not translated yet." msgid_plural "" "The translation is ready for use, but %d entries are not translated yet." msgstr[0] "" "Tarjima foydalanish uchun tayyor, ammo %d ta kiritilgan tarjima qilinmagan." msgstr[1] "" "Tarjima foydalanish uchun tayyor, ammo %d ta kiritilgan tarjima qilinmagan." msgid "The translation is ready for use." msgstr "Tarjima foydalanish uchun tayyor." #, c-format msgid "Poedit automatically fixed invalid content in the file “%s”." msgstr "" "Poedit avtomatik tarzda “%s” nomli fayl ichidagi xato tarkibni to‘g‘riladi." msgid "" "The file contained duplicate items, which is not allowed in PO files and " "would prevent the file from being used. Poedit fixed the issue, but you " "should review translations of any items marked as needing work and correct " "them if necessary." msgstr "" msgid "Language of the translation isn’t set." msgstr "" msgid "Set Language" msgstr "Tilni o‘rnatish" msgid "Set language" msgstr "Tilni o‘rnatish" #. TRANSLATORS: This is shown underneath "Language of the translation isn't set (or ...is the same as source language)." msgid "" "Suggestions are not available if the translation language is not set " "correctly. Other features, such as plural forms, may be affected as well." msgstr "" "Tarjima tili noto‘g‘ri bo‘lsa, tavsiyalar ko‘rsatilmaydi. Boshqa " "xususiyatlar, masalan, ko‘plik shahkli yaxshi bo‘lishi mumkin." msgid "Language of the translation is the same as source language." msgstr "Til nomi manba tildagi bilan bir xil." msgid "Fix Language" msgstr "Tilni to‘g‘rilash" msgid "Fix language" msgstr "Tilni to‘g‘rilash" msgid "" "This catalog has entries with plural forms, but doesn’t have Plural-Forms " "header configured." msgstr "" msgid "" "Entries in this catalog have different plural forms count from what " "catalog’s Plural-Forms header says" msgstr "" msgid "Required header Plural-Forms is missing." msgstr "Ko‘plik shakllari yo‘q bosh qatori talab qilinmoqda." #, c-format msgid "Syntax error in Plural-Forms header (\"%s\")." msgstr "Ko‘plik shakllari (\"%s\") bosh qatorida sintaktik xato." msgid "Fix the Header" msgstr "Boshlang‘ich qatorni to‘g‘rilash" msgid "Fix the header" msgstr "Bosh qatorni to‘g‘rilash" #. TRANSLATORS: %s is language name in its basic form (as you #. would see e.g. in a list of supported languages). You may need #. to rephrase it, e.g. to an equivalent of "for language %s". #, c-format msgid "Plural forms expression used by the catalog is unusual for %s." msgstr "Katalogda foydalanilgan ko‘plik shakllari ifodasi %s uchun noodatiy." #. TRANSLATORS: A verb, shown as action button with ""Plural forms expression used by the catalog is unusual for %s.")" msgid "Review" msgstr "Ko‘rib chiqish" #, c-format msgid "Error loading message catalog file “%s”." msgstr "" #, c-format msgid "Translated: %d of %d (%d %%)" msgstr "Tarjima qilindi: %d / %d (%d %%)" #, c-format msgid "Remaining: %d" msgstr "Qolmoqda: %d" #, c-format msgid "%d error" msgid_plural "%d errors" msgstr[0] "%d ta xato" msgstr[1] "%d ta xato" #, c-format msgid "%d entry" msgid_plural "%d entries" msgstr[0] "%d ta kiritilgan" msgstr[1] "%d ta kiritilgan" msgid " (unsaved)" msgstr " (saqlanmagan)" msgid " (modified)" msgstr " (o‘zgartirilgan)" #, c-format msgid "Failed to update translation memory: %s" msgstr "Tarjima xotirasi yangilanmadi: %s" msgid "Purge deleted translations" msgstr "O‘chirilgan tarjimalarni tozalash" msgid "Do you want to remove all translations that are no longer used?" msgstr "Uzoq vaqt foydalanilmagan barcha tarjimalarni o‘chirishni xohlaysizmi?" msgid "" "If you continue with purging, all translations marked as deleted will be " "permanently removed. You will have to translate them again if they are added " "back in the future." msgstr "" "Agar tozalashda davom etsangiz, barcha o‘chirish uchun belgilangan " "tarjimalar butunlay o‘chiriladi. Agar ular keyinchalik kerak bo‘lib qolsa, " "yana tarjima qilishingiz kerak bo‘ladi." msgid "Keep" msgstr "Saqlab qo‘yish" msgid "Purge" msgstr "Tozalash" msgid "Copy from source text" msgstr "Manba matnidan nusxa ko‘chirish" msgid "Copy from Source Text" msgstr "Manba matnidan nusxa ko‘chirish" #. TRANSLATORS: This is the key shortcut used in menus on Windows, some languages call them differently #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Ctrl+" msgstr "Ctrl+" msgid "Clear translation" msgstr "Tarjimani tozalash" msgid "Clear Translation" msgstr "Tarjimani tozalash" msgid "Edit comment" msgstr "Sharhni tahrirlash" msgid "Edit Comment" msgstr "Sharhni tahrirlash" msgid "References:" msgstr "Bog‘lanishlar:" msgid "&Bookmarks" msgstr "&Xatcho‘plar" #. TRANSLATORS: This is the key shortcut used in menus on Windows, some languages call them differently #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Alt+" msgstr "Alt+" #, c-format msgid "Set bookmark %i" msgstr "%i xatcho‘pni o‘rnatish" #, c-format msgid "Go to bookmark %i" msgstr "%i xatcho‘pga o‘tish" #, c-format msgid "Set Bookmark %i" msgstr "%i xatcho‘pni o‘rnatish" #, c-format msgid "Go to Bookmark %i" msgstr "%i xatcho‘pga o‘tish" msgid "Hide Sidebar" msgstr "Yon panelni yashirish" msgid "Show Sidebar" msgstr "Yon panelni ko‘rsatish" msgid "Hide Status Bar" msgstr "Holat qatorini yashirish" msgid "Show Status Bar" msgstr "Holat qatorini ko‘rsatish" msgid "Source text:" msgstr "Manba matn:" msgid "Singular:" msgstr "Birlik:" msgid "Plural:" msgstr "Ko‘plik:" msgid "Translation:" msgstr "Tarjima:" msgid "Pre-translated" msgstr "" msgid "Needs Work" msgstr "" #. TRANSLATORS: This indicates that the string's translation isn't final #. and has known problems. For example, it might be machine translated or #. fuzzy matched from an older string. The translation should be short and #. convey this. If it's problematic to translate it, "Needs review" is #. acceptable substitute, but note that the meaning is subtly different: #. "needs review" implies that somebody else should review the string after #. I am done with it (i.e. consider it good), while "needs work" implies I #. need to return to it and finish the translation. msgid "Needs work" msgstr "" msgid "" "POT files are only templates and don’t contain any translations themselves.\n" "To make a translation, create a new PO file based on the template." msgstr "" "POT fayllar aslida faqat shablonlar hisoblanadi va ularning tarkibida hech " "qanday tarjima bo‘lmaydi.\n" "Tarjima qilish uchun shablonga asoslangan yangi PO fayl yarating." msgid "Create New Translation" msgstr "Yangi tarjima yaratish" msgid "Create new translation" msgstr "Yangi tarjima yaratish" msgid "Everything" msgstr "Hammasi" #, c-format msgid "Form %i" msgstr "%i shakli " msgid "Singular" msgstr "Birlik" msgid "Zero" msgstr "Nol" msgid "One" msgstr "Bir" msgid "Two" msgstr "Ikki" msgid "Plural" msgstr "Ko‘plik" msgid "Other" msgstr "Boshqa" #, c-format msgid "%s Format" msgstr "%s format" #. TRANSLATORS: %s is replaced with language name, e.g. "PHP" or "C", so "PHP Format" etc." #, c-format msgid "%s format" msgstr "" msgid "Source text" msgstr "Manba matni" #, c-format msgid "Translation — %s" msgstr "Tarjima — %s" msgid "ID" msgstr "ID" #, c-format msgid "Source text — %s" msgstr "Manba matn — %s" msgid "unknown language" msgstr "noma’lum til" #, c-format msgid "Failed command: %s" msgstr "Xato buyruq: %s" msgid "Failed to merge gettext catalogs." msgstr "Gettext kataloglarini birlashtirishda xatolik." msgid "Source file" msgstr "Manba fayl" msgid "Source file occurrence:" msgstr "Manba fayli hodisalari:" msgid "Open in Editor" msgstr "Tahrirlagichda ochish" msgid "Open in editor" msgstr "Tahrirlagichda ochish" msgid "No references for the selected item." msgstr "Tanlangan band uchun ma’lumotlar yo‘q." #, c-format msgid "Error opening file %s!" msgstr "%s faylini ochishda xatolik!" msgid "Find" msgstr "Topish" msgid "Replace" msgstr "Almashtirish" #. TRANSLATORS: Expander in Find window for additional options (case sensitive etc.) msgid "Options" msgstr "Tanlamalar" msgid "Ignore case" msgstr "Katta-kichiklikni rad qilish" msgid "Wrap around" msgstr "Uzun qidiruv" msgid "Whole words only" msgstr "Faqat to‘liq so‘zlar" msgid "Find in source texts" msgstr "Manba matnlaridan topish" msgid "Find in translations" msgstr "Tarjimalardan topish" msgid "Find in comments" msgstr "Sharhlardan qidirish" msgid "Close" msgstr "Yopish" msgid "Replace &All" msgstr "" msgid "Replace &all" msgstr "" msgid "&Replace" msgstr "" msgid "< &Previous" msgstr "< &Oldingi" msgid "&Next >" msgstr "&Keyingi >" msgid "String to find" msgstr "Topish uchun qator" msgid "Replacement string" msgstr "Almashadigan qator" #, c-format msgid "Cannot execute program: %s" msgstr "Dastur ishga tushirilmadi: %s" msgid "Language Code or Name (e.g. en_GB)" msgstr "Til kodi yoki nomi (masalan: en_GB)" msgid "Translation Language" msgstr "Tarjima tili" msgid "Language of the translation:" msgstr "Tarjima tili:" msgid "Poedit - Catalogs manager" msgstr "Poedit - kataloglar boshqaruvchisi" msgid "Catalog" msgstr "Katalog" msgid "Total" msgstr "Jami" msgid "Untrans" msgstr "Tarjima qilinmagan" msgid "Errors" msgstr "" msgid "Last modified" msgstr "So‘nggi o‘zgartirish" msgid "Select directory" msgstr "Direktoriyani tanlash" msgid "Directories:" msgstr "Direktoriyalar:" msgid "" msgstr "" msgid "Do you want to delete the project?" msgstr "Loyihani o‘chirishni xohlaysizmi?" msgid "Confirmation" msgstr "Tasdiqlash" msgid "" "Do you really want to do mass update of\n" "all catalogs in this project?" msgstr "" "Siz rostdan ushbu loyihadagi barcha\n" "kataloglarni yangilamoqchimisiz?" msgid "Information about the translator" msgstr "Tarjimon haqida ma’lumot" msgid "Name:" msgstr "Nomi:" msgid "Your Name" msgstr "Ismingiz" msgid "Email:" msgstr "E-pochtangiz:" msgid "your_email@example.com" msgstr "e-pochtangiz@masalan.com" msgid "" "Your name and email address are only used to set the Last-Translator header " "of GNU gettext files." msgstr "" "Ismingiz va e-pochtangiz manzilidan faqat GNU gettext fayllaridagi \"Last-" "Translator\" bosh qatorida foydalaniladi." msgid "Editing" msgstr "Tahrirlanmoqda" msgid "Automatically compile MO file when saving" msgstr "Saylayotganda avtomatik tarzda MO fayl yaratilsin" msgid "Show summary after catalog update" msgstr "Katalog yangilangandan so‘ng natijani ko‘rsatish" msgid "Check spelling" msgstr "Imloni tekshirish" msgid "Always change focus to text input field" msgstr "Fokusni doimo matnni kiritish maydoniga o‘zgartirish" msgid "" "Never let the list of strings take focus. If enabled, you must use Ctrl-" "arrows for keyboard navigation but you can also type text immediately, " "without having to press Tab to change focus." msgstr "" "Hech qachon qatorlar ro‘yxatiga fokusni olishiga yo‘l qo‘yilmasin. Agar u " "yoqib qo‘yilsa, klaviaturadan boshqarish uchun Ctrl-ko‘rsatkichlar’dan " "foydalanishingiz kerak, ammo siz, shuningdek, fokusni o‘zgartirish uchun Tab " "tugmasini bosmasdan ham matnni tez yozishingiz mumkin." msgid "Appearance" msgstr "Ko‘rinishi" msgid "Use custom list font:" msgstr "Boshqa shrift ro‘yxatidan foydalanish:" msgid "Use custom text fields font:" msgstr "Matn maydonlari shriftini o‘zgartirish:" msgid "Change UI language" msgstr "Grafik interfeys tilini o‘zgartirish" #. TRANSLATORS: This is a note appended to "Check spelling" when running on older Windows versions msgid "(requires Windows 8 or newer)" msgstr "(Windows 8 yoki yangirog‘i talab qilinadi)" msgid "General" msgstr "Umumiy" msgid "Use translation memory" msgstr "Tarjima xotirasidan foydalanish" msgid "Learn From Files…" msgstr "" msgid "Learn from files…" msgstr "" #. TRANSLATORS: This is a button that deletes everything in the translation memory (i.e. clears/resets it). msgid "Reset" msgstr "Tiklash" #. TRANSLATORS: Followed by "match translations within the file" or "pre-translate from TM" msgid "When updating from sources" msgstr "" #. TRANSLATORS: Preceded by "When updating from sources" msgid "fuzzy match within the file" msgstr "" #. TRANSLATORS: Preceded by "When updating from sources" msgid "pre-translate from TM" msgstr "" msgid "" "Poedit can attempt to fill in new entries from only previous translations in " "the file or from your entire translation memory. Using the TM won’t be very " "effective if it’s near-empty, but it will get better as you add more " "translations to it." msgstr "" msgid "Stored translations:" msgstr "Saqlangan tarjimalar:" msgid "Database size on disk:" msgstr "Diskdagi ma’lumotlar bazasi hajmi:" msgid "Select translation files to import" msgstr "Import qilish uchun tarjimalarni tanlang" msgid "Translation Memory" msgstr "Tarjima xotirasi" msgid "Importing translations…" msgstr "" msgid "Finalizing…" msgstr "" msgid "Reset translation memory" msgstr "Tarjima xotirasini tiklash" msgid "Are you sure you want to reset the translation memory?" msgstr "Tarjima xotirasini tiklamoqchi ekanligingizga ishonchingiz komilmi?" msgid "" "Resetting the translation memory will irrevocably delete all stored " "translations from it. You can’t undo this operation." msgstr "" "Tarjima xotirasini tiklash barcha joylashgan tarjimalarni xotiradan butunlay " "o‘chiradi. Siz bu jarayonni iziga qaytara olmaysiz." msgid "Cancel" msgstr "Bekor qilish" #. TRANSLATORS: This is abbreviation of "Translation Memory" used in Preferences on macOS. #. Long text looks weird there, too short (like TM) too, but less so. "General" is about ideal #. length there. msgid "TM" msgstr "TX" msgid "" "Source code extractors are used to find translatable strings in the source " "code files and extract them so that they can be translated." msgstr "" "Manba kodi ajratgichlari manba kodi fayllaridagi tarjima qilinadigan " "qatorlarni topishda foydalaniladi va ularni tarjima qilish uchun ajratadi." msgid "Custom Extractors:" msgstr "" msgid "Custom extractors:" msgstr "" msgid "Edit…" msgstr "" msgid "GNU gettext" msgstr "" msgid "" "Supports all programming languages recognized by GNU gettext tools (PHP, C/C+" "+, C#, Perl, Python, Java, JavaScript and others)." msgstr "" msgid "Delete extractor" msgstr "Ajratkichni o‘chirish" #, c-format msgid "Are you sure you want to delete the “%s” extractor?" msgstr "“%s” ajratkichni o‘chirmoqchimisiz?" msgid "Extractors" msgstr "Ajratgichlar" msgid "Accounts" msgstr "Hisoblar" msgid "Automatically check for updates" msgstr "Yangilanishlar avtomatik tekshirilsin" msgid "Include beta versions" msgstr "Beta versiyalari ham" msgid "" "Beta versions contain the latest new features and improvements, but may be a " "bit less stable." msgstr "" "Beta versiyalarda so‘nggi yangi xususiyatlar va yaxshilanishlar bo‘ladi, " "ammo biroz barqaror bo‘lmasligi mumkin." msgid "Updates" msgstr "Yangilanishlar" msgid "" "These settings affect internal formatting of PO files. Adjust them if you " "have specific requirements e.g. because of version control." msgstr "" "Ushbu sozlamalar PO fayllarni ichki formatlashga ta’sir qiladi. Agar " "versiyani boshgarishga o‘xshagan maxsus talablaringiz bo‘lsa, uni " "to‘g‘rilang." msgid "Line endings:" msgstr "Qator tugashi:" msgid "Unix (recommended)" msgstr "Unix (tavsiya qilingan)" msgid "Windows" msgstr "Oynalar" #. TRANSLATORS: Followed by text control for entering number; wraps text at given width msgid "Wrap at:" msgstr "Ushbuda joylashtirish:" msgid "Preserve formatting of existing files" msgstr "Mavjud fayllarni formatlashni saqlash" msgid "Advanced" msgstr "Qo‘shimcha" msgid "Pre-translating…" msgstr "" #, c-format msgid "Pre-translated %u string" msgid_plural "Pre-translated %u strings" msgstr[0] "" msgstr[1] "" #. TRANSLATORS: This is a somewhat common term describing the action where #. you apply the translation memory and/or machine translation to all of the #. strings you're translating as the first step, followed by correcting, #. improving etc., i.e. actually translating the strings. This may be tricky #. to express in other languages as simply as in English, but please try to #. keep it similarly concise. Please try to avoid, if possible, describing it #. as "auto-translation" and similar, because such terminology would mislead #. some users into thinking it's all that needs to be done (spoken from #. experience). "Pre-translate" nicely expresses that it's only the step done #. *before* actual translation. msgid "Pre-translate" msgstr "Avtomatik tarjima" msgid "Only fill in exact matches" msgstr "Faqat to‘liq mos kelganlar bilan to‘ldirilsin" msgid "" "By default, inaccurate results are filled in as well and marked as needing " "work. Check this option to only include accurate matches." msgstr "" msgid "Don’t mark exact matches as needing work" msgstr "" msgid "" "Only enable if you trust the quality of your TM. By default, all matches " "from the TM are marked as needing work and should be reviewed before use." msgstr "" msgid "" "Pre-translation automatically finds exact or fuzzy matches for untranslated " "strings in the translation memory and fills in their translations." msgstr "" #, c-format msgid "%d entry was pre-translated." msgid_plural "%d entries were pre-translated." msgstr[0] "" msgstr[1] "" msgid "" "The translations were marked as needing work, because they may be " "inaccurate. You should review them for correctness." msgstr "" msgid "No entries could be pre-translated." msgstr "" msgid "" "The TM doesn’t contain any strings similar to the content of this file. It " "is only effective for semi-automatic translations after Poedit learns enough " "from files that you translated manually." msgstr "" "TXda ushbu fayl tarkibi bilan bir xil qatorlar mavjud emas. U faqat Poedit " "siz tarjima qilgan fayllardan yetarlicha o‘rgangandan so‘ng avtomatik " "tarjima qilishida samaralidir." msgid "" "Drag and Drop Folders Here\n" "\n" "or use the + button" msgstr "" "Jildlarni kursor yordamida bu yerga tashlang\n" "\n" "yoki + tugmasidan foydalaning" msgid "" "Drag and drop folders here\n" "\n" "or use the + button" msgstr "" "Jildlarni kursor yordamida bu yerga tashlang\n" "\n" "yoki + tugmasidan foydalaning" msgid "Add Folders…" msgstr "" msgid "Add folders…" msgstr "" msgid "Add Files…" msgstr "" msgid "Add files…" msgstr "" msgid "Add Wildcard…" msgstr "" msgid "Add wildcard…" msgstr "" msgid "Paths" msgstr "Yo‘llar" msgid "Excluded paths" msgstr "Qo‘shilmagan yo‘llar" msgid "Advanced extraction settings" msgstr "" msgid "Extract notes for translators from:" msgstr "" msgid "Comments prefixed with:" msgstr "" msgid "All comments" msgstr "" msgid "Additional xgettext flags:" msgstr "" msgid "Additional keywords" msgstr "Qo‘shimcha kalit so‘zlar" msgid "Name of the project the translation is for" msgstr "Tarjima loyihasi nomi" msgid "Team name and email address or URL" msgstr "" msgid "e.g. nplurals=2; plural=(n > 1);" msgstr "masalan: nplurals=2; plural=(n > 1);" msgid "UTF-8 (recommended)" msgstr "UTF-8 (tavsiya qilinadi)" msgid "Please save the file first. This section cannot be edited until then." msgstr "Avval faylni saqlang, Saqlamasangiz uchbu qismni tahrirlay olmaysiz." msgid "Not all plural forms are translated." msgstr "" msgid "The translation should start as a sentence." msgstr "" msgid "The translation should start with a lowercase character." msgstr "" msgid "The translation doesn’t start with a space." msgstr "" msgid "The translation starts with a space, but the source text doesn’t." msgstr "" msgid "The translation is missing a newline at the end." msgstr "" msgid "The translation ends with a newline, but the source text doesn’t." msgstr "" msgid "The translation is missing a space at the end." msgstr "" msgid "The translation ends with a space, but the source text doesn’t." msgstr "" #, c-format msgid "The translation should end with “%s”." msgstr "" #, c-format msgid "The translation should not end with “%s”." msgstr "" #, c-format msgid "The translation ends with “%s”, but the source text ends with “%s”." msgstr "" msgid "Comment:" msgstr "Sharh:" msgid "OK" msgstr "OK" msgid "C&lear" msgstr "Toza&lash" msgid "Clear the comment" msgstr "Sharhni tozalash" msgid "New" msgstr "Yangi" msgid "Create new translations project" msgstr "Yangi tarjimalar loyihasini yaratish" msgid "Edit" msgstr "Tahrirlash" msgid "Edit the project" msgstr "Loyihani tahrirlash" msgid "Delete the project" msgstr "Loyihani o‘chirish" msgid "Update all" msgstr "Barchasini yangilash" msgid "Update all catalogs in the project" msgstr "Loyihadagi barcha kataloglarni yangilash" msgid "Edit project" msgstr "Loyihani tahrirlash" msgid "Project name:" msgstr "Loyiha nomi:" msgid "Browse" msgstr "Ko‘rish" msgid "Add directory to the list" msgstr "Ro‘yxatga direktoriyani qo‘shish" msgid "&New…" msgstr "&Yangi" msgid "New from &POT/PO file…" msgstr "" msgid "New From &POT/PO File…" msgstr "" msgid "&Open…" msgstr "" msgid "Open Recent" msgstr "So‘nggisini ochish" msgid "Open from Crowdin…" msgstr "" msgid "Open From Crowdin…" msgstr "" msgid "&Close" msgstr "&Yopish" msgid "&Save" msgstr "&Saqlash" msgid "Save &as…" msgstr "" msgid "Save &As…" msgstr "" msgid "Compile to MO…" msgstr "" msgid "E&xport as HTML…" msgstr "" msgid "Check for updates…" msgstr "" msgid "&Preferences…" msgstr "" msgid "Catalogs &manager" msgstr "Kataloglar &menejeri" msgid "Catalogs &Manager" msgstr "Kataloglar &menejeri" msgid "E&xit" msgstr "Chi&qish" msgid "Quit" msgstr "Chiqish" msgid "Copy from singular" msgstr "Birlik shaklidan nusxa ko‘chirish" msgid "Copy From Singular" msgstr "Birlik shaklidan nusxa ko‘chirish" msgid "Translation needs &work" msgstr "" msgid "Translation Needs &Work" msgstr "" msgid "Edit &comment" msgstr "&Sharhni tahrirlash" msgid "Edit &Comment" msgstr "&Sharhni tahrirlash" msgid "Suggestions" msgstr "Tavsiyalar" msgid "&Find…" msgstr "" msgid "Replace…" msgstr "" msgid "Find next" msgstr "Keyingisini topish" msgid "Find previous" msgstr "Oldingisini topish" msgid "Find and Replace…" msgstr "" msgid "Find Next" msgstr "Keyingisini topish" msgid "Find Previous" msgstr "Oldingisini topish" msgid "&Preferences" msgstr "&Parametrlar" msgid "Display entry &IDs" msgstr "Kiritilganlarning ID’sini ko‘rsatish" msgid "Display Entry &IDs" msgstr "Kiritilganlarning ID’sini ko‘rsatish" msgid "Sort by &file order" msgstr "&Fayl tartibi bo‘yicha saralash" msgid "Sort by &File Order" msgstr "&Fayl tartibi bo‘yicha saralash" msgid "Sort by &source" msgstr "&Manba bo‘yicha saralash" msgid "Sort by &Source" msgstr "&Manba bo‘yicha saralash" msgid "Sort by &translation" msgstr "&Tarjima bo‘yicha saralash" msgid "Sort by &Translation" msgstr "&Tarjima bo‘yicha saralash" msgid "&Group by context" msgstr "Matn bo‘yicha &guruhlash" msgid "&Group By Context" msgstr "Matn bo‘yicha &guruhlash" msgid "Entries with errors first" msgstr "Xato kiritilganlar birinchi" msgid "Entries with Errors First" msgstr "Xato kiritilganlar birinchi" msgid "&Untranslated entries first" msgstr "Avval &tarjima qilinmaganlar" msgid "&Untranslated Entries First" msgstr "Avval &tarjima qilinmaganlar" msgid "&Show references" msgstr "&Bog‘lanishlarni ko‘rsatish" msgid "&Show References" msgstr "Linklarni ko‘rsati&sh" msgid "Show sidebar" msgstr "Yon panelni ko‘rsatish" msgid "Show status bar" msgstr "Holat qatorini ko‘rsatish" msgid "C&atalog" msgstr "K&atalog" msgid "&Update from sources" msgstr "&Manbalardan yangilash" msgid "&Update from Sources" msgstr "&Manbalardan yangilash" msgid "Update from &POT file…" msgstr "" msgid "Update from &POT File…" msgstr "" msgid "Sync with Crowdin" msgstr "Crowdin bilan sinxronlash" msgid "Pre-&translate…" msgstr "" msgid "&Purge deleted translations" msgstr "&O‘chirilgan tarjimalarni tozalash" msgid "&Purge Deleted Translations" msgstr "&O‘chirilgan tarjimalarni tozalash" msgid "&Validate translations" msgstr "Tarjimalarni to‘g‘rilash" msgid "&Validate Translations" msgstr "Tarjimalarni &to‘g‘rilash" msgid "&Properties…" msgstr "" msgid "&Done and next" msgstr "&Tayyor va keyingisi" msgid "&Done and Next" msgstr "&Tayyor va keyingisi" msgid "&Previous translation" msgstr "&Oldingi tarjima" msgid "&Previous Translation" msgstr "&Oldingi tarjima" msgid "&Next translation" msgstr "&Keyingi tarjima" msgid "&Next Translation" msgstr "&Keyingi tarjima" msgid "P&revious unfinished" msgstr "O&ldingi tugatilmagan" msgid "P&revious Unfinished" msgstr "O&ldingi tugatilmagan" msgid "Ne&xt unfinished" msgstr "Ke&yingi tugatilmagan" msgid "Ne&xt Unfinished" msgstr "Ke&yingi tugatilmagan" msgid "Previous plural form" msgstr "Oldingi ko‘plik shakli" msgid "Previous Plural Form" msgstr "Oldingi ko‘plik shakli" msgid "Next plural form" msgstr "Keyingi ko‘plik shakli" msgid "Next Plural Form" msgstr "Keyingi ko‘plik shakli" msgid "&Online help" msgstr "&Onlayn yordam" msgid "&Online Help" msgstr "&Onlayn yordam" msgid "&GNU gettext manual" msgstr "&GNU gettext yo‘riqnomasi" msgid "&GNU gettext Manual" msgstr "&GNU gettext yo‘riqnomasi" msgid "&About Poedit" msgstr "Poedit h&aqida" msgid "&About" msgstr "H&aqida" msgid "Extractor setup" msgstr "Ajratgichni o‘rnatish" msgid "List of extensions separated by semicolons (e.g. *.cpp;*.h):" msgstr "" "Nuqtali vergul bilan ajratilgan kengaytmalar ro‘yxati (masalan: *.cpp;*.h):" msgid "Invocation:" msgstr "Chaqirish:" msgid "Command to extract translations:" msgstr "Tarjimalarni ajratish buyrug‘i:" msgid "" "This is the command used to launch the extractor.\n" "%o expands to the name of output file, %K to list\n" "of keywords, %F to list of input files,\n" "%C to charset flag (see below)." msgstr "" "Ushbu buyruqdan ajratgichni ishga tushirish uchun foydalaniladi.\n" "%o chiquvchi fayl nomiga, %K kalit so‘zlar ro‘yxatiga\n" "%F kiruvchi fayllar ro‘yxatiga,\n" "%C kodlash bayrog‘iga (quyidagini ko‘ring) ajratiladi." msgid "An item in keywords list:" msgstr "Kalit so‘zlar ro‘yxatidagi band:" msgid "" "This will be attached to the command line once\n" "for each keyword. %k expands to the keyword." msgstr "" "Har bir kalit so'zi uchun bir marta buyruq\n" "satriga ilova qilinadi. %k kalit so'z." msgid "An item in input files list:" msgstr "Kirish fayllari ro'yxatida element:" #, c-format msgid "" "This will be attached to the command line once\n" "for each input file. %f expands to the filename." msgstr "" "U har bir kiruvchi fayl uchun buyruq satriga qo‘shiladi. %f fayl nomini " "anglatadi." msgid "Source code charset:" msgstr "Manba kodi kodlash usuli:" #, c-format msgid "" "This will be attached to the command line\n" "only if source code charset was given. %c expands to charset value." msgstr "" "Agar manba kodlash usuli berilgan bo‘lsa, u buyruq satriga\n" "ilova qilinadi. %c kodlash usuli qiymatini anglatadi." msgid "Catalog properties" msgstr "Katalog xossalari" msgid "Project name and version:" msgstr "Loyiha nomi va versiyasi:" msgid "Language team:" msgstr "" msgid "Plural forms:" msgstr "" msgid "Use default rules for this language" msgstr "Ushbu til uchun standart qoidalardan foydalanish" msgid "Use custom expression" msgstr "Boshqa ifodadan foydalanish" msgid "Learn about plural forms" msgstr "Ko‘plik shakllari haqida o‘rganish" msgid "Charset:" msgstr "Kodlash usuli:" msgid "Advanced Extraction Settings…" msgstr "" msgid "Advanced extraction settings…" msgstr "" msgid "Translation Properties" msgstr "" msgid "Translation properties" msgstr "Tarjima xossalari" msgid "Sources Paths" msgstr "" msgid "Sources paths" msgstr "Manbalar yo‘llari" msgid "Extract text from source files in the following directories:" msgstr "Quyidagi direktoriyalardagi manba fayllaridan matnni ajratish:" msgid "Base path:" msgstr "Asosiy yo‘l:" msgid "Sources Keywords" msgstr "" msgid "Sources keywords" msgstr "Manbalar kalit so‘zlari" msgid "" "Use these keywords (function names) to recognize translatable strings\n" "in source files:" msgstr "" "Ushbu kalit so‘zlar (funksiya nomlari)dan manba fayllaridagi\n" "tarjima qilinadigan qatorlarni tanish uchun foydalaning:" msgid "Also use default keywords for supported languages" msgstr "" msgid "Learn About Gettext Keywords" msgstr "" msgid "Learn about gettext keywords" msgstr "gettext kalit so‘lari haqida o‘rganish" msgid "Update summary" msgstr "Yangilash hisoboti" msgid "" "These strings were found in the sources but were not in the catalog.\n" "Poedit will add them to the catalog now." msgstr "" "Ushbu qatorlar manbalardan topildi, ammo katalogdan topilmadi.\n" "Poedit katalogka qo'shib qo'yadi." msgid "New strings" msgstr "Yangi qatorlar" msgid "" "These strings are no longer in the sources.\n" "Poedit will remove them from the catalog now." msgstr "" "Ushbu qatorlar endi manbalarda mavjud emas.\n" "Poedit ularni hozir katalogdan o‘chiradi." msgid "Obsolete strings" msgstr "Eski qatorlar" msgid "(0 new, 0 obsolete)" msgstr "(0 ta yangi, 0 ta eski)" msgid "Open" msgstr "Ochish" msgid "Save catalog" msgstr "Katalogni saqlash" msgid "Validate" msgstr "To‘g‘rilash" msgid "Check for errors in the translation" msgstr "Tarjimadagi xatolarni tekshirish" msgid "Update" msgstr "Yangilash" msgid "Update catalog - synchronize it with sources" msgstr "Katalogni yangilash - uni manbalar bilan sinxronlash" msgid "Sidebar" msgstr "Yon panel" msgid "Show or hide the sidebar" msgstr "Yon panelni ko‘rsatish yoki yashirish" #. TRANSLATORS: "Previous" as in used in the past, now replaced with newer. msgid "Previous source text:" msgstr "Oldingi manba matni:" msgid "" "The old source text (before it changed during an update) that the now-" "inaccurate translation corresponds to." msgstr "" msgid "Notes for translators:" msgstr "Tarjimonlar uchun eslatmalar:" msgid "Add comment" msgstr "Sharh qo‘shish" msgid "Add Comment" msgstr "Sharh qo‘shish" msgid "Translation suggestions:" msgstr "Tarjima takliflari:" #. TRANSLATORS: This is shown when no translation suggestions can be found in the TM (Windows). msgid "No matches found" msgstr "Topilmadi" #. TRANSLATORS: This is shown when no translation suggestions can be found in the TM (macOS, Linux). msgid "No Matches Found" msgstr "Topilmadi" msgid "This string was found in Poedit’s translation memory." msgstr "Ushbu qator Poedit’ning tarjima xotirasida topildi." msgid "Cannot create temporary directory." msgstr "Vaqtinchalik direktoriya yaratilmadi." msgid "Welcome to Poedit" msgstr "Poedit’ga xush kelibsiz" #. TRANSLATORS: This is version information in about dialog, "%s" will be #. version number when used #, c-format msgid "Version %s" msgstr "%s versiya" msgid "Edit a Translation" msgstr "" msgid "Edit a translation" msgstr "Tarjimani tahrirlash" msgid "Open an existing PO file and edit the translation." msgstr "Mavjud PO faylni oching va tarjimani tahrirlang." msgid "" "Take an existing PO file or POT template and create a new translation from " "it." msgstr "" "Mavjud PO fayl yoki POT namunani oling va undan yangi tarjima yarating." msgid "Collaborate on a Translation with Others" msgstr "" msgid "Collaborate on a translation with others" msgstr "Tarjimalar bo‘yicha boshqalar bilan hamkorlik qilish" msgid "" "Download a file from Crowdin project, translate and sync your changes back." msgstr "" "Crowdin loyihasidan fayl import qilish, uni tarjima qilish va o‘zgarishlarni " "sinxronlash." msgid "What is Crowdin?" msgstr "Crowdin nima?" msgid "There are no translations. That’s unusual." msgstr "Tarjimalar yo‘q. Bu noodatiy." msgid "" "Translatable entries aren’t added manually in the Gettext system, but are " "automatically extracted\n" "from source code. This way, they stay up to date and accurate.\n" "Translators typically use PO template files (POTs) prepared for them by the " "developer." msgstr "" msgid "(Learn more about GNU gettext)" msgstr "(GNU gettext haqida ko‘proq o‘rganing)" msgid "The simplest way to fill this catalog is to update it from a POT:" msgstr "" "Ushbu katalogni eng oson to‘ldirish yo‘li - uni POT fayldan yangilashdir:" msgid "Update from POT" msgstr "POT fayldan yangilash" msgid "Take translatable strings from an existing POT template." msgstr "Mavjud POT namunasidan tarjima qilinadigan qatorlarni oling." msgid "" "You can also extract translatable strings directly from the source code:" msgstr "" "Shuningdek, siz tarjima qilinadigan qatorlarni to‘g‘ridan to‘g‘ri manba " "kodidan ajratishingiz mumkin:" msgid "Extract from sources" msgstr "Manbalardan ajratish" msgid "Configure source code extraction in Properties." msgstr "Xossalardan manba kodini ajratishni moslang." msgid "Sync" msgstr "Sinxronlash" msgid "Synchronize the translation with Crowdin" msgstr "Tarjimani Crowdin bilan sinxronlash" #. TRANSLATORS: This is titlebar of about dialog, "%s" is application name #. ("Poedit" here, but please use "%s") #, c-format msgid "About %s" msgstr "%s haqida" #. TRANSLATORS: Title of the preferences window on Windows and Linux. "%s" is replaced with "Poedit" when running. #, c-format msgid "%s Preferences" msgstr "%s sozlamalar" #. TRANSLATORS: macOS item in app menu msgid "Services" msgstr "Xizmatlar" #. TRANSLATORS: macOS item in app menu, %s is replaced with "Poedit" #, c-format msgid "Hide %s" msgstr "%sni yashirish" #. TRANSLATORS: macOS item in app menu msgid "Hide Others" msgstr "Boshqalarini yashirish" #. TRANSLATORS: macOS item in app menu msgid "Show All" msgstr "Barchasini ko‘rsatish" #. TRANSLATORS: macOS item in app menu, %s is replaced with "Poedit" #, c-format msgid "Quit %s" msgstr "%sdan chiqish" #. TRANSLATORS: macOS item in app menu msgid "Preferences…" msgstr "" msgid "Preferences..." msgstr "Sozlamalar..." #. TRANSLATORS: Title of a category in Windows task menu (right-click icon in taskbar) msgid "Recent" msgstr "So‘nggi" #. TRANSLATORS: Title of a category in Windows task menu (right-click icon in taskbar) msgid "Frequent" msgstr "Muntazam" msgid "&Apply" msgstr "&Qo‘llash" msgid "Apply" msgstr "Qo‘llash" msgid "&Back" msgstr "&Orqaga" msgid "Back" msgstr "Orqaga" msgid "&Cancel" msgstr "&Bekor qilish" msgid "&Clear" msgstr "&Tozalash" msgid "Clear" msgstr "Tozalash" msgid "Copy" msgstr "Nusxa olish" msgid "Cu&t" msgstr "Kes&ish" msgid "Cut" msgstr "Kesib olish" msgid "&Delete" msgstr "&O‘chirish" msgid "&Quit" msgstr "Chi&qish" msgid "File" msgstr "Fayl" msgid "Help" msgstr "Yordam" msgid "&New" msgstr "&Yangi" msgid "&No" msgstr "&Yo‘q" msgid "No" msgstr "Yo‘q" msgid "&OK" msgstr "" msgid "Open…" msgstr "" msgid "&Open..." msgstr "&Ochish..." msgid "Open..." msgstr "Ochish..." msgid "&Paste" msgstr "&Qo‘yish" msgid "Paste" msgstr "Qo‘yish" msgid "Preferences" msgstr "Shaxsiy sozlamalar" msgid "&Redo" msgstr "&Qayta bajarish" msgid "Refresh" msgstr "Yangilash" msgid "&Save as" msgstr "&Boshqacha saqlash" msgid "Save as" msgstr "Boshqacha saqlash" msgid "Select &All" msgstr "B&archasini belgilash" msgid "Select All" msgstr "Barchasini belgilash" msgid "&Undo" msgstr "&Qaytarish" msgid "&Yes" msgstr "&Ha" msgid "Yes" msgstr "Ha" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Shift+" msgstr "Shift+" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Enter" msgstr "Enter" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Up" msgstr "Tepaga" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Down" msgstr "Pastga" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Left" msgstr "" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Right" msgstr "" #. TRANSLATORS: Keyboard shortcut, must correspond to translation of "Ctrl+" msgid "ctrl" msgstr "ctrl" #. TRANSLATORS: Keyboard shortcut, must correspond to translation of "Alt+" msgid "alt" msgstr "alt" #. TRANSLATORS: Keyboard shortcut, must correspond to translation of "Shift+" msgid "shift" msgstr "shift" poedit-2.0.6/locales/uz.mo0000664000372000037200000011050613230132042012332 00000000000000w<' ' %'0'D'JW' ''' ''' '''''( ((*(0(6(J(^(b(t(((((((( ( ((( ()),)H)d)j)p)v)))))))) * *7*=*B*V*u*** *:*: + D+N+W+ `+ l+x+++++'++, ),4,7:,6r,,),, ,]-a-At-I-....".A. \.g..o.......//1/#M/q//////(/ / 00/00 `0m0r00000001 11?11111112 "2/2B2EU2"2?22K3"O35r333 3 3 33 3 3 44"4)4/4.A4p44u45-5D5 Y5d5s5<55 55*5!6!@6'b6666 6 6666 6 6 7 77.7=7E7N7V7h7 z777 7 77777 88 88 8 88"8;9O9l9 9 9 9999 99 :<#:.`::::*:::: ;; ;;;;; <'<$F<7k<%<<<<<<== 1=2== p=}=========>>/>>>>n>EQ??>????@@-G@ u@ @@%@@@@A A,A5A;AVA[AcAjA oA{A AAA(AAAzAoBvB{B B B B BB"BBCC C-C =CJCQC ZCgCCCC CC!CCD DDD0D 9DGD PDZD kD xD DDDDDDDEEE EE EE E F F)FK0F|FF FFF F FF{GG(GG+GHNH8VHHH8cIIIIRJcTJQJ KA%KgK!K,LLEL`LLYyMmM:AN|N;(O7dOmO_ P[jPPPPPQ!Q8QQQ dQqQQRR R;RNRVRYR `R"kR,RRRRRR?SCS`SzSSS#SVS>TUT^T qT|TTTTTT TTTHT7?U wUaUUUUU UV.V4VEV\V2XFX!UXwXGX X XXX YYY 'Y 5Y?Y GY TYaYvY YYYY YYYZZ$Z +Z6ZGZXZ`ZoZ ~Z Z ZZZ$Z$Z [[&[/[B[Z[ z[[[[[[ \ (\6\:\*R\}\\,\ \V\VD] ] ]]]]$]^ ^-^E^6J^#^$^ ^ ^)^C _%P_1v___v_5`PQ`X` `a a a%%aKaia{a@aaaab&b;bJb7db'b bbbcc$c7c6>c!ucc'c,c c c# d!.d#Pd!td(ddd$de'eee e$f (f4fLfaf(qf(fDf#gH,gug[|g(g@hBh KhVhjh~hhhhhh hh i8%i^iziri j(jEjajijj>jj jj+ k7k.Vk!kkkkkkkk l"l5lHl^l&tll lllll mmm(m?mUm&nmmmVnsnn nn nn#n%o (o 6oDoIobo)vo*o&oo)p0pM?pJppp pqq#q9q"Oqrrxrrrr r r5r* sB5s"xsss ss1stt"t07thtyttt t tttt uu%u>އ;5r(TQBG W xˊԊV[t1ϋ (41f|VɌ* "Kn()0ݍw ю܎ !:? GTkmnQ܏.q7 ΐҐ$א-GDzT & Z!9@{ W(z Gwn<jTQ^]=isogE$t H>BW+5!8kP0YHCf@Rm6OlQp.Dfs/wrFJo/3Upe'xY45y';67C SlnVt&a; ~9g>x-dahA`:} N)Ny "I~mB3v**}|7cS[($UdqL ?- `%1_\K1M%EcMLX0,?22+Ovq<e"Z4Ab#|b#^K ur\hP_=VX][JkFIR:{.)8jui, (modified) (unsaved)%d entry%d entries%d error%d errors%d issue with the translation found.%d issues with the translation found.%s Format%s Preferences&About&About Poedit&Apply&Back&Bookmarks&Cancel&Clear&Close&Copy&Delete&Done and Next&Done and next&Edit&File&GNU gettext Manual&GNU gettext manual&Go&Group By Context&Group by context&Help&New&New…&Next >&Next Translation&Next translation&No&Online Help&Online help&Open...&Paste&Preferences&Previous Translation&Previous translation&Purge Deleted Translations&Purge deleted translations&Quit&Redo&Save&Save as&Show References&Show references&Undo&Untranslated Entries First&Untranslated entries first&Update from Sources&Update from sources&Validate Translations&Validate translations&View&Yes(0 new, 0 obsolete)(Learn more about GNU gettext)(New: %i, obsolete: %i)(Use default language)(requires Windows 8 or newer)< &PreviousDrag and Drop Folders Here or use the + buttonDrag and drop folders here or use the + buttonAbout %sAccountsAdd CommentAdd commentAdd directory to the listAdditional keywordsAdvancedAll Translation FilesAlt+Always change focus to text input fieldAn item in input files list:An item in keywords list:AppearanceApplyAre you sure you want to delete the “%s” extractor?Are you sure you want to reset the translation memory?Automatically check for updatesAutomatically compile MO file when savingBackBase path:Beta versions contain the latest new features and improvements, but may be a bit less stable.Bring All to FrontBroken catalog file: plural form msgstr used without msgid_pluralBroken catalog file: singular form msgstr used together with msgid_pluralBrowseC&atalogC&learCancelCannot create temporary directory.Cannot execute program: %sCapitalizeCatalogCatalog modified. Do you want to save changes?Catalog propertiesCatalogs &ManagerCatalogs &managerCatalogs ManagerChange UI languageCharset:Check Document NowCheck Grammar With SpellingCheck Spelling While TypingCheck for errors in the translationCheck spellingClearClear TranslationClear the commentClear translationCloseCollaborate on a translation with othersCommand to extract translations:Comment:Compiled Translation FilesConfigure source code extraction in Properties.ConfirmationCopyCopy From SingularCopy from Source TextCopy from singularCopy from source textCorrect Spelling AutomaticallyCreate New TranslationCreate new translationCreate new translations projectCrowdin errorCrowdin is an online localization management platform and collaborative translation tool. Poedit can seamlessly sync PO files managed at Crowdin.Ctrl+Cu&tCutDatabase size on disk:DeleteDelete extractorDelete the projectDirectories:Display Entry &IDsDisplay entry &IDsDo you really want to do mass update of all catalogs in this project?Do you want to delete the project?Do you want to remove all translations that are no longer used?DownDownload a file from Crowdin project, translate and sync your changes back.Downloading latest translations…Downloading translations is disabled in this project.E&xitEditEdit &CommentEdit &commentEdit CommentEdit a translationEdit commentEdit projectEdit the projectEditingEmail:EnterEnter Full ScreenEntries in the catalog are probably incorrect.Entries with Errors FirstEntries with errors firstEntries with errors were marked in red in the list. Details of the error will be shown when you select such an entry.Error opening fileError opening file %s!Error saving catalogEverythingExcluded pathsExtract from sourcesExtract text from source files in the following directories:Extractor setupExtractorsFailed command: %sFailed to communicate with Poedit process.Failed to load extracted catalog.Failed to merge gettext catalogs.Failed to update translation memory: %sFileFile:FindFind NextFind PreviousFind in commentsFind in source textsFind in translationsFind nextFind previousFix LanguageFix languageFix the HeaderFix the headerForm %iFrequentGeneralGo to Bookmark %iGo to bookmark %iHTML FilesHelpHide %sHide OthersHide SidebarHide Status BarHide this notification messageIDIf you continue with purging, all translations marked as deleted will be permanently removed. You will have to translate them again if they are added back in the future.Ignore caseInclude beta versionsInformation about the translatorInstallInvalid fileInvocation:KeepLanguage Code or Name (e.g. en_GB)Language of the translation is the same as source language.Language of the translation:Language selectionLanguage:Last modifiedLearn MoreLearn More About CrowdinLearn about gettext keywordsLearn about plural formsLearn moreLearn more about CrowdinLine endings:List of extensions separated by semicolons (e.g. *.cpp;*.h):MO files can’t be directly edited in Poedit.Make Lower CaseMake Upper CaseMinimizeName of the project the translation is forName:Ne&xt UnfinishedNe&xt unfinishedNever let the list of strings take focus. If enabled, you must use Ctrl-arrows for keyboard navigation but you can also type text immediately, without having to press Tab to change focus.NewNew stringsNext Plural FormNext plural formNoNo Matches FoundNo matches foundNo problems with the translation found.No references for the selected item.No translation projects listed in your Crowdin account.Not authorized, please sign in again.Notes for translators:OKObsolete stringsOneOnly fill in exact matchesOpenOpen Crowdin translationOpen RecentOpen an existing PO file and edit the translation.Open catalogOpen catalog templateOpen in EditorOpen in editorOpen...OptionsOtherP&revious UnfinishedP&revious unfinishedPO TranslationPO Translation FilesPOT Translation TemplatesPOT files are only templates and don’t contain any translations themselves. To make a translation, create a new PO file based on the template.PastePaste and Match StylePathsPlease open and edit the corresponding PO file instead. When you save it, the MO file will be updated as well.Please save the file first. This section cannot be edited until then.PluralPlural forms expression used by the catalog is unusual for %s.Plural:PoeditPoedit - Catalogs managerPoedit automatically fixed invalid content in the file “%s”.Poedit is an easy to use translations editor.Pre-translatePreferencesPreferences...Preserve formatting of existing filesPrevious Plural FormPrevious plural formPrevious source text:Project name and version:Project name:Project:PurgePurge deleted translationsQuitQuit %sRecentRedoReferences:RefreshRemaining: %dReplaceReplacement stringRequired header Plural-Forms is missing.ResetReset translation memoryResetting the translation memory will irrevocably delete all stored translations from it. You can’t undo this operation.ReviewSaveSave asSave catalogSave changesSelect &AllSelect AllSelect directorySelect translation files to importSelect your preferred languageServicesSet Bookmark %iSet LanguageSet bookmark %iSet languageShift+Show AllShow SidebarShow Spelling and GrammarShow Status BarShow SubstitutionsShow or hide the sidebarShow sidebarShow status barShow summary after catalog updateSidebarSign InSign OutSign inSign in to CrowdinSign outSigned in as:SingularSingular:Smart Copy/PasteSmart DashesSmart LinksSmart QuotesSort by &File OrderSort by &SourceSort by &TranslationSort by &file orderSort by &sourceSort by &translationSource code charset:Source code extractors are used to find translatable strings in the source code files and extract them so that they can be translated.Source code not available.Source fileSource file occurrence:Source textSource text — %sSource text:Sources keywordsSources pathsSpeechSpellchecking is disabled, because the dictionary for %s isn’t installed.Spelling and GrammarStart SpeakingStop SpeakingStored translations:String to findSubstitutionsSuggestionsSuggestions are not available if the translation language is not set correctly. Other features, such as plural forms, may be affected as well.SyncSync with CrowdinSynchronize the translation with CrowdinSyncing with Crowdin failed.Syntax error in Plural-Forms header ("%s").TMTake an existing PO file or POT template and create a new translation from it.Take translatable strings from an existing POT template.Text ReplacementThe TM doesn’t contain any strings similar to the content of this file. It is only effective for semi-automatic translations after Poedit learns enough from files that you translated manually.The file cannot be compiled into the MO format and used.The file cannot be opened.The file may be either corrupted or in a format not recognized by Poedit.The file was compiled into the MO format, but it will probably not work correctly.The file was saved safely and compiled into the MO format, but it will probably not work correctly.The file was saved safely, but it cannot be compiled into the MO format and used.The file was saved safely.The simplest way to fill this catalog is to update it from a POT:The translation is ready for use, but %d entry is not translated yet.The translation is ready for use, but %d entries are not translated yet.The translation is ready for use.There are no translations. That’s unusual.There was a problem formatting the file nicely (but it was saved all right).There were errors when loading the catalog. Some data may be missing or corrupted as the result.These settings affect internal formatting of PO files. Adjust them if you have specific requirements e.g. because of version control.These strings are no longer in the sources. Poedit will remove them from the catalog now.These strings were found in the sources but were not in the catalog. Poedit will add them to the catalog now.This file can only be edited in Crowdin’s web interface.This is the command used to launch the extractor. %o expands to the name of output file, %K to list of keywords, %F to list of input files, %C to charset flag (see below).This project has no files that can be translated in Poedit.This string was found in Poedit’s translation memory.This will be attached to the command line only if source code charset was given. %c expands to charset value.This will be attached to the command line once for each input file. %f expands to the filename.This will be attached to the command line once for each keyword. %k expands to the keyword.TotalTransformationsTranslated: %d of %d (%d %%)Translation LanguageTranslation MemoryTranslation propertiesTranslation suggestions:Translation — %sTranslation:Translations couldn’t be updated from the source code, because no code was found in the location specified in the catalog’s Properties.TwoUTF-8 (recommended)UndoUnhandled exception occurred: %sUnix (recommended)UntransUpUpdateUpdate allUpdate all catalogs in the projectUpdate catalog - synchronize it with sourcesUpdate from POTUpdate summaryUpdatesUpdating catalogUpdating failedUpdating the catalog failed. Click on 'Details >>' for details.Updating user information…Uploading translations…Use custom expressionUse custom list font:Use custom text fields font:Use default rules for this languageUse these keywords (function names) to recognize translatable strings in source files:Use translation memoryValidateValidation resultsVersion %sWaiting for authentication…Welcome to PoeditWhat is Crowdin?Whole words onlyWindowWindowsWrap aroundWrap at:YesYou can also extract translatable strings directly from the source code:You must restart Poedit for this change to take effect.Your NameYour name and email address are only used to set the Last-Translator header of GNU gettext files.ZeroZoomaltctrle.g. nplurals=2; plural=(n > 1);handle a poedit:// URIshiftunknown languageyour_email@example.comProject-Id-Version: poedit Report-Msgid-Bugs-To: help@poedit.net POT-Creation-Date: 2017-12-05 15:52+0100 PO-Revision-Date: 2017-07-27 03:15-0400 Last-Translator: vslavik Language-Team: Uzbek Language: uz_UZ MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=(n > 1); X-Generator: crowdin.com X-Crowdin-Project: poedit X-Crowdin-Language: uz X-Crowdin-File: /locales/poedit.pot (o‘zgartirilgan) (saqlanmagan)%d ta kiritilgan%d ta kiritilgan%d ta xato%d ta xatoTarjima bilan %d ta muammo topildi.Tarjima bilan %d ta muammo topildi.%s format%s sozlamalarH&aqidaPoedit h&aqida&Qo‘llash&Orqaga&Xatcho‘plar&Bekor qilish&Tozalash&Yopish&Nusxa olish&O‘chirish&Tayyor va keyingisi&Tayyor va keyingisi&Tahrirlash&Fayl&GNU gettext yo‘riqnomasi&GNU gettext yo‘riqnomasi&O‘tishMatn bo‘yicha &guruhlashMatn bo‘yicha &guruhlash&Yordam&Yangi&Yangi&Keyingi >&Keyingi tarjima&Keyingi tarjima&Yo‘q&Onlayn yordam&Onlayn yordam&Ochish...&Qo‘yish&Parametrlar&Oldingi tarjima&Oldingi tarjima&O‘chirilgan tarjimalarni tozalash&O‘chirilgan tarjimalarni tozalashChi&qish&Qayta bajarish&Saqlash&Boshqacha saqlashLinklarni ko‘rsati&sh&Bog‘lanishlarni ko‘rsatish&QaytarishAvval &tarjima qilinmaganlarAvval &tarjima qilinmaganlar&Manbalardan yangilash&Manbalardan yangilashTarjimalarni &to‘g‘rilashTarjimalarni to‘g‘rilash&Ko‘rinishi&Ha(0 ta yangi, 0 ta eski)(GNU gettext haqida ko‘proq o‘rganing)(Yangi: %i, eskirgan: %i)(Standart tildan foydalanish)(Windows 8 yoki yangirog‘i talab qilinadi)< &OldingiJildlarni kursor yordamida bu yerga tashlang yoki + tugmasidan foydalaningJildlarni kursor yordamida bu yerga tashlang yoki + tugmasidan foydalaning%s haqidaHisoblarSharh qo‘shishSharh qo‘shishRo‘yxatga direktoriyani qo‘shishQo‘shimcha kalit so‘zlarQo‘shimchaBarcha tarjima fayllariAlt+Fokusni doimo matnni kiritish maydoniga o‘zgartirishKirish fayllari ro'yxatida element:Kalit so‘zlar ro‘yxatidagi band:Ko‘rinishiQo‘llash“%s” ajratkichni o‘chirmoqchimisiz?Tarjima xotirasini tiklamoqchi ekanligingizga ishonchingiz komilmi?Yangilanishlar avtomatik tekshirilsinSaylayotganda avtomatik tarzda MO fayl yaratilsinOrqagaAsosiy yo‘l:Beta versiyalarda so‘nggi yangi xususiyatlar va yaxshilanishlar bo‘ladi, ammo biroz barqaror bo‘lmasligi mumkin.Hammasini oldga o‘tkazishKatalog faylida xatolik: msgstr ning ko'plik shakli msgid_plural siz ishlatilganBuzilgan katalog fayli: msgstr’ning birlik shakli msgid_plural bilan birga ishlatilganKo‘rishK&atalogToza&lashBekor qilishVaqtinchalik direktoriya yaratilmadi.Dastur ishga tushirilmadi: %sKatta harf qilishKatalogKatalog o‘zgartirildi. O‘zgarishlarni saqlashni xohlaysizmi?Katalog xossalariKataloglar &menejeriKataloglar &menejeriKataloglar menejeriGrafik interfeys tilini o‘zgartirishKodlash usuli:Hujjatni hozir tekshirishGrammatik xatolar imlo xatolar bilan birga tekshirilsinYozayotganda imlo xatolari tekshirilsinTarjimadagi xatolarni tekshirishImloni tekshirishTozalashTarjimani tozalashSharhni tozalashTarjimani tozalashYopishTarjimalar bo‘yicha boshqalar bilan hamkorlik qilishTarjimalarni ajratish buyrug‘i:Sharh:Kompilyatsiya qilingan tarjima fayllariXossalardan manba kodini ajratishni moslang.TasdiqlashNusxa olishBirlik shaklidan nusxa ko‘chirishManba matnidan nusxa ko‘chirishBirlik shaklidan nusxa ko‘chirishManba matnidan nusxa ko‘chirishImlo xatolar avtomatik to‘g‘rilansinYangi tarjima yaratishYangi tarjima yaratishYangi tarjimalar loyihasini yaratishCrowdin’da xatolikCrowdin onlayn tarjimalarni boshqarish platformasi va hamkorlikda tarjima qilish vositasi hisoblanadi. Poedit PO fayllar bilan ishlash uchun Crowdin tarmog‘i bilan muammosiz sinxronlay oladi.Ctrl+Kes&ishKesib olishDiskdagi ma’lumotlar bazasi hajmi:O‘chirishAjratkichni o‘chirishLoyihani o‘chirishDirektoriyalar:Kiritilganlarning ID’sini ko‘rsatishKiritilganlarning ID’sini ko‘rsatishSiz rostdan ushbu loyihadagi barcha kataloglarni yangilamoqchimisiz?Loyihani o‘chirishni xohlaysizmi?Uzoq vaqt foydalanilmagan barcha tarjimalarni o‘chirishni xohlaysizmi?PastgaCrowdin loyihasidan fayl import qilish, uni tarjima qilish va o‘zgarishlarni sinxronlash.So‘nggi tarjimalar yuklab olinmoqda…Tarjimalarni yuklab olish ushbu loyihada o‘chirib qo‘yilgan.Chi&qishTahrirlash&Sharhni tahrirlash&Sharhni tahrirlashSharhni tahrirlashTarjimani tahrirlashSharhni tahrirlashLoyihani tahrirlashLoyihani tahrirlashTahrirlanmoqdaE-pochtangiz:Enter"Butun ekranda" usuliga o‘tishKatalogga kiritilganlar noto‘g‘ri bo‘lishi mumkin.Xato kiritilganlar birinchiXato kiritilganlar birinchiXato kiritilganlar ro‘yxatda qizil bilan belgilangan. Xatolik tafsilotlari kiritilganni tanlasangiz ko‘rinadi.Faylni ochishda xato yuz berdi%s faylini ochishda xatolik!Katalogni saqlashda xatolikHammasiQo‘shilmagan yo‘llarManbalardan ajratishQuyidagi direktoriyalardagi manba fayllaridan matnni ajratish:Ajratgichni o‘rnatishAjratgichlarXato buyruq: %sPoedit jarayoni bilan bog‘lab bo‘lmadi.Ajratilgan katalog yuklanmadi.Gettext kataloglarini birlashtirishda xatolik.Tarjima xotirasi yangilanmadi: %sFaylFayl:TopishKeyingisini topishOldingisini topishSharhlardan qidirishManba matnlaridan topishTarjimalardan topishKeyingisini topishOldingisini topishTilni to‘g‘rilashTilni to‘g‘rilashBoshlang‘ich qatorni to‘g‘rilashBosh qatorni to‘g‘rilash%i shakli MuntazamUmumiy%i xatcho‘pga o‘tish%i xatcho‘pga o‘tishHTML fayllarYordam%sni yashirishBoshqalarini yashirishYon panelni yashirishHolat qatorini yashirishUshbu ogohlantirish xabarini yashirishIDAgar tozalashda davom etsangiz, barcha o‘chirish uchun belgilangan tarjimalar butunlay o‘chiriladi. Agar ular keyinchalik kerak bo‘lib qolsa, yana tarjima qilishingiz kerak bo‘ladi.Katta-kichiklikni rad qilishBeta versiyalari hamTarjimon haqida ma’lumotO‘rnatishNoto‘g‘ri faylChaqirish:Saqlab qo‘yishTil kodi yoki nomi (masalan: en_GB)Til nomi manba tildagi bilan bir xil.Tarjima tili:Tilni tanlashTil:So‘nggi o‘zgartirishBatafsil ma’lumotCrowdin haqida ko‘proq ma’lumot olishgettext kalit so‘lari haqida o‘rganishKo‘plik shakllari haqida o‘rganishBatafsil ma’lumotCrowdin haqida ko‘proq ma’lumot olishQator tugashi:Nuqtali vergul bilan ajratilgan kengaytmalar ro‘yxati (masalan: *.cpp;*.h):Poedit’da MO fayllarni to‘g‘ridan-to‘g‘ri tahrirlab bo‘lmaydi.Kichik harf qilishKatta harf qilishYig‘ishTarjima loyihasi nomiNomi:Ke&yingi tugatilmaganKe&yingi tugatilmaganHech qachon qatorlar ro‘yxatiga fokusni olishiga yo‘l qo‘yilmasin. Agar u yoqib qo‘yilsa, klaviaturadan boshqarish uchun Ctrl-ko‘rsatkichlar’dan foydalanishingiz kerak, ammo siz, shuningdek, fokusni o‘zgartirish uchun Tab tugmasini bosmasdan ham matnni tez yozishingiz mumkin.YangiYangi qatorlarKeyingi ko‘plik shakliKeyingi ko‘plik shakliYo‘qTopilmadiTopilmadiTarjima bilan bog‘liq hech qanday muammo topilmadi.Tanlangan band uchun ma’lumotlar yo‘q.Crowdin hisobingizda birorta ham tarjima loyihalari keltirilmagan.Tasdiqdan o‘tmagan, yana kiring.Tarjimonlar uchun eslatmalar:OKEski qatorlarBirFaqat to‘liq mos kelganlar bilan to‘ldirilsinOchishCrowdin tarjimasini ochishSo‘nggisini ochishMavjud PO faylni oching va tarjimani tahrirlang.Katalogni ochishAndoza namunasini ochishTahrirlagichda ochishTahrirlagichda ochishOchish...TanlamalarBoshqaO&ldingi tugatilmaganO&ldingi tugatilmaganPO tarjimaPO tarjima fayllariPOT tarjima namunalariPOT fayllar aslida faqat shablonlar hisoblanadi va ularning tarkibida hech qanday tarjima bo‘lmaydi. Tarjima qilish uchun shablonga asoslangan yangi PO fayl yarating.Qo‘yishNusxa olish va joylash uslubiYo‘llarO‘rniga mavjud PO faylini oching va tahrirlang. Uni saqlaganingizda, MO fayl ham yangilanadi.Avval faylni saqlang, Saqlamasangiz uchbu qismni tahrirlay olmaysiz.Ko‘plikKatalogda foydalanilgan ko‘plik shakllari ifodasi %s uchun noodatiy.Ko‘plik:PoeditPoedit - kataloglar boshqaruvchisiPoedit avtomatik tarzda “%s” nomli fayl ichidagi xato tarkibni to‘g‘riladi.Poedit qulay va oson tarjimalar tahrirlagichidir.Avtomatik tarjimaShaxsiy sozlamalarSozlamalar...Mavjud fayllarni formatlashni saqlashOldingi ko‘plik shakliOldingi ko‘plik shakliOldingi manba matni:Loyiha nomi va versiyasi:Loyiha nomi:Loyiha:TozalashO‘chirilgan tarjimalarni tozalashChiqish%sdan chiqishSo‘nggiQayta bajarishBog‘lanishlar:YangilashQolmoqda: %dAlmashtirishAlmashadigan qatorKo‘plik shakllari yo‘q bosh qatori talab qilinmoqda.TiklashTarjima xotirasini tiklashTarjima xotirasini tiklash barcha joylashgan tarjimalarni xotiradan butunlay o‘chiradi. Siz bu jarayonni iziga qaytara olmaysiz.Ko‘rib chiqishSaqlashBoshqacha saqlashKatalogni saqlashO‘zgarishlarni saqlashB&archasini belgilashBarchasini belgilashDirektoriyani tanlashImport qilish uchun tarjimalarni tanlangSiznig avfzal tilingizni tanlashXizmatlar%i xatcho‘pni o‘rnatishTilni o‘rnatish%i xatcho‘pni o‘rnatishTilni o‘rnatishShift+Barchasini ko‘rsatishYon panelni ko‘rsatishImlo va grammatikani ko‘rsatishHolat qatorini ko‘rsatishAlmashishlarni ko‘rsatishYon panelni ko‘rsatish yoki yashirishYon panelni ko‘rsatishHolat qatorini ko‘rsatishKatalog yangilangandan so‘ng natijani ko‘rsatishYon panelKirishChiqishKirishCrowdin saytiga kiringChiqishFoydalanuvchi:BirlikBirlik:Qulay nusxa olish/Qo‘yishQulay tirelarQulay linklarQulay qo‘shtirnoqlar&Fayl tartibi bo‘yicha saralash&Manba bo‘yicha saralash&Tarjima bo‘yicha saralash&Fayl tartibi bo‘yicha saralash&Manba bo‘yicha saralash&Tarjima bo‘yicha saralashManba kodi kodlash usuli:Manba kodi ajratgichlari manba kodi fayllaridagi tarjima qilinadigan qatorlarni topishda foydalaniladi va ularni tarjima qilish uchun ajratadi.Manba kodi mavjud emas.Manba faylManba fayli hodisalari:Manba matniManba matn — %sManba matn:Manbalar kalit so‘zlariManbalar yo‘llariNutqImloni tekshirish o‘chirib qo‘yildi, chunki %s uchun lug‘at o‘rnatilmagan.Imlo va grammatikaGapirishni boshlashGapirishni to‘xtatishSaqlangan tarjimalar:Topish uchun qatorAlmashishlarTavsiyalarTarjima tili noto‘g‘ri bo‘lsa, tavsiyalar ko‘rsatilmaydi. Boshqa xususiyatlar, masalan, ko‘plik shahkli yaxshi bo‘lishi mumkin.SinxronlashCrowdin bilan sinxronlashTarjimani Crowdin bilan sinxronlashCrowdin bilan sinxronlash amalga oshmadi.Ko‘plik shakllari ("%s") bosh qatorida sintaktik xato.TXMavjud PO fayl yoki POT namunani oling va undan yangi tarjima yarating.Mavjud POT namunasidan tarjima qilinadigan qatorlarni oling.Matnni almashtirishTXda ushbu fayl tarkibi bilan bir xil qatorlar mavjud emas. U faqat Poedit siz tarjima qilgan fayllardan yetarlicha o‘rgangandan so‘ng avtomatik tarjima qilishida samaralidir.Faylni MO formatga kompilyatsiya qilib bo‘lmaydi va undan foydalanib ham bo‘lmaydi.Faylni ochib bo‘lmaydi.Fayl buzilgan bo‘lishi mumkin yoki ushbu formatni Poedit aniqlay olmadi.Fayl MO formatga kompilyatsiya qilindi, ammo u to‘g‘ri ishlamasligi mumkin.Fayl xavfsiz saqlandi va MO formatga o‘zgartirildi, ammo u to‘g‘ri ishlamasligi mumkin.Fayl xavfsiz saqlandi, ammo MO formatga o‘zgartirilmadi va undan foydalanib bo‘lmaydi.Fayl xavfsiz saqlandi.Ushbu katalogni eng oson to‘ldirish yo‘li - uni POT fayldan yangilashdir:Tarjima foydalanish uchun tayyor, ammo %d ta kiritilgan tarjima qilinmagan.Tarjima foydalanish uchun tayyor, ammo %d ta kiritilgan tarjima qilinmagan.Tarjima foydalanish uchun tayyor.Tarjimalar yo‘q. Bu noodatiy.Faylni formatlashda muammo yuz berdi (ammo u yaxshi saqlangandi).Katalogni yuklashda xatolik ro‘y berdi. Ba’zi ma’lumotlar bo'lmasligi yoki natija sifatida buzilgan bo‘lishi mumkin.Ushbu sozlamalar PO fayllarni ichki formatlashga ta’sir qiladi. Agar versiyani boshgarishga o‘xshagan maxsus talablaringiz bo‘lsa, uni to‘g‘rilang.Ushbu qatorlar endi manbalarda mavjud emas. Poedit ularni hozir katalogdan o‘chiradi.Ushbu qatorlar manbalardan topildi, ammo katalogdan topilmadi. Poedit katalogka qo'shib qo'yadi.Ushbu faylni faqat Crowdin veb interfeysida tahrirlash mumkin.Ushbu buyruqdan ajratgichni ishga tushirish uchun foydalaniladi. %o chiquvchi fayl nomiga, %K kalit so‘zlar ro‘yxatiga %F kiruvchi fayllar ro‘yxatiga, %C kodlash bayrog‘iga (quyidagini ko‘ring) ajratiladi.Loyihada Poedit orqali tarjima qilish uchun fayllar yo‘q.Ushbu qator Poedit’ning tarjima xotirasida topildi.Agar manba kodlash usuli berilgan bo‘lsa, u buyruq satriga ilova qilinadi. %c kodlash usuli qiymatini anglatadi.U har bir kiruvchi fayl uchun buyruq satriga qo‘shiladi. %f fayl nomini anglatadi.Har bir kalit so'zi uchun bir marta buyruq satriga ilova qilinadi. %k kalit so'z.JamiTransformatsiyaTarjima qilindi: %d / %d (%d %%)Tarjima tiliTarjima xotirasiTarjima xossalariTarjima takliflari:Tarjima — %sTarjima:Tarjimalarni manba kodidan yuklab bo‘lmaydi, chunki katalogning xossalarida ko‘rsatilgan manzildan hech qanday kod topilmadi.IkkiUTF-8 (tavsiya qilinadi)Orqaga qaytarishQayta ishlab bo‘lmaydigan istisno yuz berdi: %sUnix (tavsiya qilingan)Tarjima qilinmaganTepagaYangilashBarchasini yangilashLoyihadagi barcha kataloglarni yangilashKatalogni yangilash - uni manbalar bilan sinxronlashPOT fayldan yangilashYangilash hisobotiYangilanishlarKatalogni yangilashYuklash amalga oshmadiKatalogni yangilab bo‘lmadi. Batafsil ma’lumotlar uchun 'Tafsilotlar >>'ga bosing.Foydalanuvchi ma’lumoti yangilanmoqda…Tarjimalar yuklab qo‘yilmoqda…Boshqa ifodadan foydalanishBoshqa shrift ro‘yxatidan foydalanish:Matn maydonlari shriftini o‘zgartirish:Ushbu til uchun standart qoidalardan foydalanishUshbu kalit so‘zlar (funksiya nomlari)dan manba fayllaridagi tarjima qilinadigan qatorlarni tanish uchun foydalaning:Tarjima xotirasidan foydalanishTo‘g‘rilashTo‘g‘rilash natijalari%s versiyaTasdiqdan o‘tkazilmoqda…Poedit’ga xush kelibsizCrowdin nima?Faqat to‘liq so‘zlarOynaOynalarUzun qidiruvUshbuda joylashtirish:HaShuningdek, siz tarjima qilinadigan qatorlarni to‘g‘ridan to‘g‘ri manba kodidan ajratishingiz mumkin:O‘zgartirish amalga oshishi uchun Poedit’ni qayta ishga tushirishingiz kerak.IsmingizIsmingiz va e-pochtangiz manzilidan faqat GNU gettext fayllaridagi "Last-Translator" bosh qatorida foydalaniladi.NolKattalashtirish/Kichiklashtirishaltctrlmasalan: nplurals=2; plural=(n > 1);poedit:// URI bilan ishlashshiftnoma’lum tile-pochtangiz@masalan.compoedit-2.0.6/locales/nl.mo0000664000372000037200000014154013230132042012307 00000000000000P%1 1 11<11J 2gW2 22 22 222 3333%3+333B3Q3W3]3f3z333333333333 3 44 4)4 04=4M4c4y44444444445 5(5D5Y5n55555555 6 '6:36:n6 666 6 666 6 7 #707?7O7c7~77777 71898'>8f88 8878689)=9g9 l9]w99A9I*:t:{:; ;;";:; U;`;.h;;;;;;;;<*<F<#[<<<<<<<<(<(=7= R=s=|== ==/= = >>#>9>L>b>2>>>>> ?)???????@@@ 2@?@R@Ee@"@?@ AA*.A YAfAyAK~A"A5A#B)BHAH HHI 'IHI PI ]IiI"nI;I(IIJ&J 5J ?JMJjJ ~JJJJJ JJK:K PK<^K.KKKKLL*%LPLVLgL xL LLJMNMgM MMMMM#MM'M$N7DN$|N%NNNNNNOOOO O2O P#P9PNP]PlPtP|PPPPPPPPQQQnQERZR>aR RRRR@RS-TOvvNvhv Xw cw qw|w w ww w www w www xx x&x?x Xxcx{xxx x xxxxx x x y yy y+y;yMy_y+qy+y y y yy yzz3zCz]z wz zzzzzz& {0{K{f{ {6{6{ {|||+|B|V|n||||||| }& }#G}&k}}}8}}'})~ I~j~ s~3}~4~"~5 ? EcORVpy  &#0(T} 9݁/ IS"k""˂$5FW)_)&σ  >Q2p "܄"59UÅڅ ӆ /GOfF}ćD )60J {`*?/ ozÉ։,A J Vci1w+C}[8ً#.%Rx*;!(J ^i+~+%֍)&.,I_v֎ ߎ '=Si y̏ ԏ ޏ #2 7BQcxWu Ñϑ3+Fr ( (,$Uz Ɠ@̓ D9_!ɔ .CI_uٖ*7b).=ؗ(#?c#Nry8 %>O ` jt{ ɚޚy}J$oPxɜ ڜKQ8c4О Ο'ܟ.@ Xen+ ʠҠ ڠ  - >(Kt}&-5E U am ( !0HW ^ i w!ģ )/7 @JS h r  ʤ)GYp /; Xb s~  ŦY̦&=Rf~ |@̨'!1S#l*Q8Ihx[R6$UZsnx![x}h(_D<Ͱ: :E2#F$j('1;yN0ȳVuPƴ[Wzk.AܶFƷ> Ll̸f9 ĺ%Dc EJ]4l  żϼ&߼3 : [|нR!5Wo*0(]q  Ͽ$*2 :FZG]BD-:5yp :"@8c+(# ?D}],6 9BW6tC3H>C'# )h?*Kq#-0^aG2zFYblx&2LADZ.EwPi=Ab[kv @4uh~ uL@|pnf.nTN? QI2:qOKcajd F!p ]U>T+rXi=J%Vxz51^s4 NH/F"8/XJ`om #UwQk :Gs$ 8jL!~I1,(<D-9B>|;$H(E?g<y!dYgIo \ <eN+rM5&cM5 :"K-A+EmZ7C"603B $%RfRVeyOG*S@ M,4}_{O%W91J)S[`' 7)v &;*{(l_.03=\7P8/t';P (modified) (unsaved)%d entry%d entries%d entry was pre-translated.%d entries were pre-translated.%d error%d errors%d issue with the translation found.%d issues with the translation found.%i line of file “%s” was not loaded correctly.%i lines of file “%s” were not loaded correctly.%s Format%s Preferences%s format&About&About Poedit&Apply&Back&Bookmarks&Cancel&Clear&Close&Copy&Delete&Done and Next&Done and next&Edit&File&Find…&GNU gettext Manual&GNU gettext manual&Go&Group By Context&Group by context&Help&New&New…&Next >&Next Translation&Next translation&No&OK&Online Help&Online help&Open...&Open…&Paste&Preferences&Preferences…&Previous Translation&Previous translation&Properties…&Purge Deleted Translations&Purge deleted translations&Quit&Redo&Replace&Save&Save as&Show References&Show references&Undo&Untranslated Entries First&Untranslated entries first&Update from Sources&Update from sources&Validate Translations&Validate translations&View&Yes(0 new, 0 obsolete)(Learn more about GNU gettext)(New: %i, obsolete: %i)(Use default language)(requires Windows 8 or newer)< &PreviousDrag and Drop Folders Here or use the + buttonDrag and drop folders here or use the + buttonAbout %sAccountsAdd CommentAdd Files…Add Folders…Add Wildcard…Add commentAdd directory to the listAdd files…Add folders…Add wildcard…Additional keywordsAdditional xgettext flags:AdvancedAdvanced Extraction Settings…Advanced extraction settingsAdvanced extraction settings…All Translation FilesAll commentsAlso use default keywords for supported languagesAlt+Always change focus to text input fieldAn item in input files list:An item in keywords list:AppearanceApplyAre you sure you want to delete the “%s” extractor?Are you sure you want to reset the translation memory?Automatically check for updatesAutomatically compile MO file when savingBackBase path:Beta versions contain the latest new features and improvements, but may be a bit less stable.Bring All to FrontBroken catalog file: plural form msgstr used without msgid_pluralBroken catalog file: singular form msgstr used together with msgid_pluralBrowseBy default, inaccurate results are filled in as well and marked as needing work. Check this option to only include accurate matches.C&atalogC&learCancelCannot create temporary directory.Cannot execute program: %sCapitalizeCatalogCatalog modified. Do you want to save changes?Catalog propertiesCatalogs &ManagerCatalogs &managerCatalogs ManagerChange UI languageCharset:Check Document NowCheck Grammar With SpellingCheck Spelling While TypingCheck for Updates…Check for errors in the translationCheck for updates…Check spellingClearClear TranslationClear the commentClear translationCloseCollaborate on a Translation with OthersCollaborate on a translation with othersCollecting source files…Command to extract translations:Comment:Comments prefixed with:Compile to MO…Compile to…Compiled Translation FilesConfigure source code extraction in Properties.ConfirmationCopyCopy From SingularCopy from Source TextCopy from singularCopy from source textCorrect Spelling AutomaticallyCouldn’t load file %s, it is probably corrupted.Couldn’t save file %s.Create New TranslationCreate new translationCreate new translations projectCrowdin errorCrowdin is an online localization management platform and collaborative translation tool. Poedit can seamlessly sync PO files managed at Crowdin.Ctrl+Cu&tCustom Extractors:Custom extractors:CutDatabase size on disk:DeleteDelete extractorDelete the projectDirectories:Display Entry &IDsDisplay entry &IDsDo you really want to do mass update of all catalogs in this project?Do you want to delete the project?Do you want to remove all translations that are no longer used?Don’t SaveDon’t Show AgainDon’t mark exact matches as needing workDon’t saveDon’t show againDownDownload a file from Crowdin project, translate and sync your changes back.Downloading latest translations…Downloading translations is disabled in this project.E&xitE&xport as HTML…EditEdit &CommentEdit &commentEdit CommentEdit a TranslationEdit a translationEdit commentEdit projectEdit the projectEditingEdit…Email:EnterEnter Full ScreenEntries in the catalog are probably incorrect.Entries in this catalog have different plural forms count from what catalog’s Plural-Forms header saysEntries with Errors FirstEntries with errors firstEntries with errors were marked in red in the list. Details of the error will be shown when you select such an entry.Error loading message catalog file “%s”.Error opening fileError opening file %s!Error saving catalogErrorsEverythingExcluded pathsExport as…Extract from sourcesExtract notes for translators from:Extract text from source files in the following directories:Extracting translatable strings…Extractor setupExtractorsFailed command: %sFailed to communicate with Poedit process.Failed to load extracted catalog.Failed to merge gettext catalogs.Failed to update translation memory: %sFileFile “%s” doesn’t exist.File “%s” is not a message catalog.File “%s” is read-only and cannot be saved. Please save it under different name.File:Finalizing…FindFind NextFind PreviousFind and Replace…Find in commentsFind in source textsFind in translationsFind nextFind previousFix LanguageFix languageFix the HeaderFix the headerForm %iFrequentGNU gettextGeneralGo to Bookmark %iGo to bookmark %iHTML FilesHelpHide %sHide OthersHide SidebarHide Status BarHide this notification messageIDIf you continue with purging, all translations marked as deleted will be permanently removed. You will have to translate them again if they are added back in the future.Ignore caseImporting translations…Include beta versionsInformation about the translatorInstallInvalid fileInvocation:KeepLanguage Code or Name (e.g. en_GB)Language of the translation is the same as source language.Language of the translation isn’t set.Language of the translation:Language selectionLanguage team:Language:Last modifiedLearn About Gettext KeywordsLearn From Files…Learn MoreLearn More About CrowdinLearn about gettext keywordsLearn about plural formsLearn from files…Learn moreLearn more about CrowdinLeftLine %d of file “%s” is corrupted (not valid %s data).Line endings:List of extensions separated by semicolons (e.g. *.cpp;*.h):MO files can’t be directly edited in Poedit.Make Lower CaseMake Upper CaseMalformed header: “%s”Merging differences…MinimizeName of the project the translation is forName:Ne&xt UnfinishedNe&xt unfinishedNeeds WorkNeeds workNever let the list of strings take focus. If enabled, you must use Ctrl-arrows for keyboard navigation but you can also type text immediately, without having to press Tab to change focus.NewNew From &POT/PO File…New from &POT/PO file…New stringsNext Plural FormNext plural formNoNo Matches FoundNo entries could be pre-translated.No matches foundNo problems with the translation found.No references for the selected item.No translation projects listed in your Crowdin account.Not all plural forms are translated.Not authorized, please sign in again.Notes for translators:OKObsolete stringsOneOnly enable if you trust the quality of your TM. By default, all matches from the TM are marked as needing work and should be reviewed before use.Only fill in exact matchesOpenOpen Crowdin translationOpen From Crowdin…Open RecentOpen an existing PO file and edit the translation.Open catalogOpen catalog templateOpen from Crowdin…Open in EditorOpen in editorOpen...Open…OptionsOtherP&revious UnfinishedP&revious unfinishedPO TranslationPO Translation FilesPOT Translation TemplatesPOT files are only templates and don’t contain any translations themselves. To make a translation, create a new PO file based on the template.PastePaste and Match StylePathsPlease open and edit the corresponding PO file instead. When you save it, the MO file will be updated as well.Please save the file first. This section cannot be edited until then.PluralPlural forms expression used by the catalog is unusual for %s.Plural forms:Plural:PoeditPoedit - Catalogs managerPoedit automatically fixed invalid content in the file “%s”.Poedit can attempt to fill in new entries from only previous translations in the file or from your entire translation memory. Using the TM won’t be very effective if it’s near-empty, but it will get better as you add more translations to it.Poedit is an easy to use translations editor.Pre-&translate…Pre-translatePre-translatedPre-translated %u stringPre-translated %u stringsPre-translating…Pre-translation automatically finds exact or fuzzy matches for untranslated strings in the translation memory and fills in their translations.PreferencesPreferences...Preferences…Preserve formatting of existing filesPrevious Plural FormPrevious plural formPrevious source text:Project name and version:Project name:Project:PurgePurge deleted translationsQuitQuit %sRecentRedoReferences:RefreshRemaining: %dReplaceReplace &AllReplace &allReplacement stringReplace…Required header Plural-Forms is missing.ResetReset translation memoryResetting the translation memory will irrevocably delete all stored translations from it. You can’t undo this operation.ReviewRightSaveSave &As…Save &as…Save asSave as…Save catalogSave changesSelect &AllSelect AllSelect directorySelect translation files to importSelect your preferred languageServicesSet Bookmark %iSet LanguageSet bookmark %iSet languageShift+Show AllShow SidebarShow Spelling and GrammarShow Status BarShow SubstitutionsShow or hide the sidebarShow sidebarShow status barShow summary after catalog updateSidebarSign InSign OutSign inSign in to CrowdinSign outSigned in as:SingularSingular:Smart Copy/PasteSmart DashesSmart LinksSmart QuotesSort by &File OrderSort by &SourceSort by &TranslationSort by &file orderSort by &sourceSort by &translationSource code charset:Source code extractors are used to find translatable strings in the source code files and extract them so that they can be translated.Source code not available.Source fileSource file occurrence:Source textSource text — %sSource text:Sources KeywordsSources PathsSources keywordsSources pathsSpeechSpellchecking is disabled, because the dictionary for %s isn’t installed.Spelling and GrammarStart SpeakingStop SpeakingStored translations:String to findSubstitutionsSuggestionsSuggestions are not available if the translation language is not set correctly. Other features, such as plural forms, may be affected as well.Supports all programming languages recognized by GNU gettext tools (PHP, C/C++, C#, Perl, Python, Java, JavaScript and others).SyncSync with CrowdinSynchronize the translation with CrowdinSyncingSyncing errorSyncing with %s failed.Syncing with %s…Syncing with Crowdin failed.Syntax error in Plural-Forms header ("%s").TMTake an existing PO file or POT template and create a new translation from it.Take translatable strings from an existing POT template.Team name and email address or URLText ReplacementThe TM doesn’t contain any strings similar to the content of this file. It is only effective for semi-automatic translations after Poedit learns enough from files that you translated manually.The catalog couldn’t be saved in “%s” charset as specified in catalog settings. It was saved in UTF-8 instead and the setting was modified accordingly.The file cannot be compiled into the MO format and used.The file cannot be opened.The file contained duplicate items, which is not allowed in PO files and would prevent the file from being used. Poedit fixed the issue, but you should review translations of any items marked as needing work and correct them if necessary.The file may be either corrupted or in a format not recognized by Poedit.The file was compiled into the MO format, but it will probably not work correctly.The file was saved safely and compiled into the MO format, but it will probably not work correctly.The file was saved safely, but it cannot be compiled into the MO format and used.The file was saved safely.The old source text (before it changed during an update) that the now-inaccurate translation corresponds to.The simplest way to fill this catalog is to update it from a POT:The translation doesn’t start with a space.The translation ends with a newline, but the source text doesn’t.The translation ends with a space, but the source text doesn’t.The translation ends with “%s”, but the source text ends with “%s”.The translation is missing a newline at the end.The translation is missing a space at the end.The translation is ready for use, but %d entry is not translated yet.The translation is ready for use, but %d entries are not translated yet.The translation is ready for use.The translation should end with “%s”.The translation should not end with “%s”.The translation should start as a sentence.The translation should start with a lowercase character.The translation starts with a space, but the source text doesn’t.The translations were marked as needing work, because they may be inaccurate. You should review them for correctness.There are no translations. That’s unusual.There was a problem formatting the file nicely (but it was saved all right).There were errors when loading the catalog. Some data may be missing or corrupted as the result.These settings affect internal formatting of PO files. Adjust them if you have specific requirements e.g. because of version control.These strings are no longer in the sources. Poedit will remove them from the catalog now.These strings were found in the sources but were not in the catalog. Poedit will add them to the catalog now.This catalog has entries with plural forms, but doesn’t have Plural-Forms header configured.This file can only be edited in Crowdin’s web interface.This is the command used to launch the extractor. %o expands to the name of output file, %K to list of keywords, %F to list of input files, %C to charset flag (see below).This project has no files that can be translated in Poedit.This string was found in Poedit’s translation memory.This will be attached to the command line only if source code charset was given. %c expands to charset value.This will be attached to the command line once for each input file. %f expands to the filename.This will be attached to the command line once for each keyword. %k expands to the keyword.TotalTransformationsTranslatable entries aren’t added manually in the Gettext system, but are automatically extracted from source code. This way, they stay up to date and accurate. Translators typically use PO template files (POTs) prepared for them by the developer.Translated: %d of %d (%d %%)Translation LanguageTranslation MemoryTranslation Needs &WorkTranslation PropertiesTranslation needs &workTranslation propertiesTranslation suggestions:Translation — %sTranslation:Translations couldn’t be updated from the source code, because no code was found in the location specified in the catalog’s Properties.TwoUTF-8 (recommended)UndoUnhandled exception occurred: %sUnix (recommended)UntransUpUpdateUpdate allUpdate all catalogs in the projectUpdate catalog - synchronize it with sourcesUpdate from &POT File…Update from &POT file…Update from POTUpdate summaryUpdatesUpdating catalogUpdating failedUpdating the catalog failed. Click on 'Details >>' for details.Updating user information…Uploading translations…Use custom expressionUse custom list font:Use custom text fields font:Use default rules for this languageUse these keywords (function names) to recognize translatable strings in source files:Use translation memoryValidateValidation resultsVersion %sWaiting for authentication…Welcome to PoeditWhat is Crowdin?When updating from sourcesWhole words onlyWindowWindowsWrap aroundWrap at:YesYou can also extract translatable strings directly from the source code:You can’t drop more than one file on Poedit window.You must restart Poedit for this change to take effect.Your NameYour changes will be lost if you don’t save them.Your name and email address are only used to set the Last-Translator header of GNU gettext files.ZeroZoomaltctrldon’t delete temporary files (for debugging)e.g. nplurals=2; plural=(n > 1);fuzzy match within the filego to item at given line numberhandle a poedit:// URIpre-translate from TMshiftunknown languageyour_email@example.com“%s” is not a valid POT file.Project-Id-Version: poedit Report-Msgid-Bugs-To: help@poedit.net POT-Creation-Date: 2017-12-05 15:52+0100 PO-Revision-Date: 2017-12-05 09:49-0500 Last-Translator: vslavik Language-Team: Dutch Language: nl_NL MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=(n != 1); X-Generator: crowdin.com X-Crowdin-Project: poedit X-Crowdin-Language: nl X-Crowdin-File: /locales/poedit.pot (gewijzigd)(niet-opgeslagen)%d woord%d woorden%d invoer is vooraf-vertaald.%d woorden zijn vooraf-vertaald.%d fout%d fouten%d probleem gevonden met de vertaling.%d problemen gevonden met de vertaling.%i regel van bestand "%s" is niet correct geladen.%i regels van bestand "%s" zijn niet correct geladen.%s-Formaat%s-voorkeuren%s-formaat&Over&Over Poedit&Toepassen&Terug&Bladwijzers&Annuleren&Wissen&Sluiten&Kopiëren&Verwijderen&Klaar en volgende&Klaar en volgendeB&ewerken&Bestand&Zoeken...&GNU-gettext-handleiding&GNU-gettext-handleiding&Navigeren&Groeperen naar context&Groeperen naar context&Hulp&Nieuw&Nieuw...&Volgende >&Volgende vertaling&Volgende vertaling&Nee&OkOnline-hulpOnline-&hulp&Openen...&Openen...&Plakken&Voorkeuren&Voorkeuren ...&Vorige vertaling&Vorige vertalingEigenscha&ppen...&Gewiste vertalingen definitief verwijderen&Gewiste vertalingen definitief verwijderen&AfsluitenOpnie&uw doenVe&rvangenOp&slaan&Opslaan als&Verwijzingen weergeven&Verwijzingen weergeven&Ongedaan maken&Onvertaalde invoer eerst&Onvertaalde invoer eerstBij&werken vanuit de brontekstenBij&werken vanuit de brontekstenVertalingen &validerenVertalingen &validerenB&eeld&Ja(0 nieuw, 0 verouderd)(Meer te weten komen over GNU-gettext)(Nieuw: %i, verouderd: %i)(Gebruik de standaardtaal)(vereist Windows 8 of hoger)< &VorigeSleep mappen hierheen of gebruik de knop +Sleep mappen hierheen of gebruik de knop +Over %sAccountsOpmerking toevoegenBestanden toevoegen...Mappen toevoegen...Jokerteken toevoegen...Opmerking toevoegenMap aan de lijst toevoegenBestanden toevoegen...Mappen toevoegen...Jokerteken toevoegen...Aanvullende zoekwoordenAanvullende xgettext-flags:GeavanceerdGeavanceerde extractie-instellingen...Geavanceerde extractie-instellingenGeavanceerde extractie-instellingen...Alle vertaalbestandenAlle opmerkingenGebruik ook standaardtrefwoorden voor ondersteunde talenAlt+Altijd cursor in tekstinvoerveld zettenEen item in de lijst van invoerbestanden:Een item in de trefwoordenlijst:WeergaveToepassenWeet u zeker dat u extractor '%s' wilt verwijderen?Bent u er zeker van het vertaalgeheugen te resetten?Automatisch op updates controlerenAutomatisch het MO-bestand compileren bij het opslaanTerugRoot-pad:Bèta-versies bevatten de nieuwste functies en verbeteringen, maar kunnen iets minder stabiel zijn.Alles op voorgrondBeschadigd catalogusbestand: meervoudsvorm 'msgstr' gebruikt zonder 'msgid_plural'Beschadigd catalogusbestand: enkelvoudsvorm 'msgstr' samen met 'msgid_plural' gebruiktBladerenStandaard worden onduidelijke resultaten ook ingevuld en voor controle gemarkeerd. Vink deze optie aan om alleen nauwkeurige overeenkomsten te gebruiken.C&atalogus&WissenAnnulerenTijdelijke map maken niet mogelijk.Programma kan niet uitgevoerd worden: %sZet om in beginhoofdlettersCatalogusDe catalogus is gewijzigd. Wilt u de wijzigingen opslaan?CataloguseigenschappenCatalogus&beheerderCatalogus&beheerderCatalogusbeheerderInterface-taal veranderenTekenset:Document nu controlerenGrammatica en spelling controlerenSpelling controleren tijdens typenOp updates controleren...De vertaling op fouten controlerenOp updates controleren...Spelling controlerenWissenVertaling wissenOpmerking wissenVertaling wissenSluitenSamenwerken met anderen aan een vertalingSamenwerken met anderen aan een vertalingBronbestanden verzamelen...Commando om vertalingen te extraheren:Opmerking:Opmerkingen voorafgegaan door:Naar MO-formaat compileren...Compileren naar...Gecompileerde vertaalbestandenConfigureer broncode-extractie in 'Eigenschappen'.BevestigingKopiërenKopiëren vanuit de enkelvoudsvormKopiëren vanuit brontekstKopiëren vanuit de enkelvoudsvormKopiëren vanuit brontekstSpelling automatisch corrigerenKon bestand %s niet laden, het is waarschijnlijk corrupt.Kon bestand %s niet opslaan.Nieuwe vertaling makenNieuwe vertaling makenNieuw vertaalproject makenCrowdin-foutCrowdin is een online vertaalplatform voor het beheren van en het samenwerken aan vertalingen. Poedit kan naadloos synchroniseren met de op Crowdin beheerde PO-bestanden.Ctrl+Kni&ppenAangepaste extractors:Aangepaste extractors:KnippenDatabasegrootte op schijf:VerwijderenExtractor verwijderenHet project verwijderenMappen:Invoer-&ID's weergevenInvoer-&ID's weergevenWilt u werkelijk alle catalogi in dit project in één keer bijwerken?Wilt u het project verwijderen?Wilt u alle vertalingen verwijderen die niet langer worden gebruikt?Niet opslaanNiet meer weergevenExacte overeenkomsten niet markeren ter controleNiet opslaanNiet meer weergevenOmlaagDownload een bestand van een Crowdin-project, vertaal het en synchroniseer de wijzigingen terug.De meest recente vertalingen downloaden…Het downloaden van vertalingen is uitgeschakeld in dit project.&AfsluitenE&xporteren als html...Bewerken&Opmerking bewerken&Opmerking bewerkenOpmerking bewerkenEen vertaling bewerkenEen vertaling bewerkenOpmerking bewerkenHet project bewerkenHet project bewerkenBewerkenBewerken...E-mailadres:EnterGa naar volledig schermInvoer in de catalogus is waarschijnlijk onjuist.De invoer in deze catalogus heeft een andere meervoudsvorm dan wat er staat in de meervoudsvorm-header van de catalogusInvoer met fouten eerstInvoer met fouten eerstInvoer met fouten is rood gemarkeerd in de lijst. Details van de fout zullen weergegeven worden als u zo'n invoer selecteert.Fout bij het laden van het berichtcatalogusbestand "%s".Fout bij openen van bestandFout bij het openen van bestand %s.Fout bij het opslaan van de catalogusFoutenAllesUitgesloten padenExporteren als...Extraheren uit broncodeOpmerkingen voor vertalers extraheren uit:Extraheer tekst uit de bronbestanden in de volgende mappen:Vertaalbare strings extraheren...Instellen extractorExtractorsOpdracht mislukt: %sCommunicatie met het Poedit-proces mislukt.Laden van geëxtraheerde catalogus mislukt.Gettext-catalogi samenvoegen mislukt.Bijwerken van vertaalgeheugen mislukt: %sBestandBestand "%s" bestaat niet.Het bestand "%s" is geen berichtencatalogus.Bestand '%s' is 'alleen-lezen' en kan niet worden opgeslagen. Sla het op onder een andere naam.Bestand:Afronden...ZoekenVolgende zoekenVorige zoekenZoeken en vervangen...In opmerkingen zoekenIn bronteksten zoekenIn vertalingen zoekenVolgende zoekenVorige zoekenTaal reparerenTaal reparerenDe header reparerenRepareer de headerVorm %iFrequenteGNU-gettextAlgemeenNaar bladwijzer %i gaanNaar bladwijzer %i gaanHTML-bestandenHulpVerberg %sVerberg andereZijbalk verbergenStatusbalk verbergenDeze melding verbergenIDAls u doorgaat met verwijderen zullen alle vertalingen die gemarkeerd staan als 'gewist', definitief worden verwijderd. U zult ze dan opnieuw moeten vertalen als u ze in de toekomst weer toevoegt.Hoofd-/kleine letters negerenVertalingen importeren...Inclusief bèta-versiesInformatie over de vertalerInstallerenOngeldig bestandAanroep:BehoudenTaalcode of -naam (bijv. nl_NL)Taal van de vertaling is hetzelfde als de brontaal.De taal van de vertaling is niet ingesteld.Taal van de vertaling:TaalselectieTaalteam:Taal:Laatst gewijzigdMeer informatie over Gettext-trefwoordenLeren van bestanden...Meer te weten komenMeer te weten komen over CrowdinMeer informatie over gettext-trefwoordenMeer informatie over meervoudsvormenLeren van bestanden...Meer te weten komenMeer te weten komen over CrowdinLinksRegel %d van bestand "%s" is beschadigd (ongeldige %s-gegevens).Regeleindes:Lijst met extensies, gescheiden door puntkomma's (bijv. *.cpp; *.h):MO-bestanden kunnen niet direct bewerkt worden in Poedit.Zet om in kleine lettersZet om in hoofdlettersVerkeerd vormgegeven header: "%s"Verschillen samenvoegen...MinimaliserenNaam van het project waar de vertaling voor isNaam:&Volgende onvoltooide&Volgende onvoltooideBehoeft controleBehoeft controleNooit de lijst met strings als actief venster instellen. Als deze optie aanstaat, moet u Ctrl-pijltjestoetsen gebruiken voor de toetsenbord-navigatie, maar u kunt ook meteen tekst typen, zonder met de tabtoets het actieve venster te hoeven veranderen.NieuwNieuw vanuit &POT/PO-bestand...Nieuw vanuit &POT/PO-bestand...Nieuwe stringsVolgende meervoudsvormVolgende meervoudsvormNeeGeen overeenkomsten gevondenEr kon geen invoer vooraf vertaald worden.Geen overeenkomsten gevondenGeen problemen met de vertaling gevonden.Geen verwijzingen voor het geselecteerde item.Er zijn geen vertaalprojecten aanwezig in uw Crowdin-account.Niet alle meervoudsvormen zijn vertaald.Niet geautoriseerd; log opnieuw in.Opmerkingen voor vertalers:OkVerouderde stringsÉénAlleen inschakelen als u de kwaliteit van het TM vertrouwt. Standaard worden alle overeenkomsten uit het TM gemarkeerd voor controle en moeten ze vóór gebruik nagekeken worden.Vul alleen exacte overeenkomsten inOpenenCrowdin-vertaling openenOpenen vanuit Crowdin...Recent bestand openenEen bestaand PO-bestand openen en de vertaling bewerken.Catalogus openenCatalogus-sjabloon openenOpenen vanuit Crowdin...Openen in editorOpenen in editorOpenen...Openen...OptiesMeerVo&rige onvoltooideVo&rige onvoltooidePO-vertalingPO-vertaalbestandenPOT-vertaalsjablonenPOT-bestanden zijn slechts sjablonen en bevatten zelf geen vertalingen. Maak een nieuw PO-bestand aan op basis van dit sjabloon om een vertaling te maken.PlakkenPlakken en aan stijl aanpassenPadenOpen en bewerk in plaats daarvan het corresponderende PO-bestand. Als u dat opslaat zal het MO-bestand ook bijgewerkt worden.Sla het bestand eerst op. Deze sectie kan tot dan toe niet bewerkt worden.MeervoudDe meervoudsvorm-expressie gebruikt door de catalogus is ongebruikelijk voor %s.Meervoudsvormen:Meervoud:PoeditPoedit-catalogusbeheerderPoedit heeft automatisch ongeldige content gerepareerd in het bestand '%s'.Poedit kan proberen nieuwe invoer alleen vanuit eerdere vertalingen in het bestand in te vullen of vanuit het gehele vertaalgeheugen. Het gebruik van het TM zal niet erg effectief zijn als het bijna leeg is, maar het zal beter worden als u er meer vertalingen aan toevoegt.Poedit is een eenvoudig te gebruiken vertalingsbewerker.Vooraf-ver&talen...Vooraf vertalenVooraf vertaald%u string vooraf vertaald%u strings vooraf vertaaldVooraf vertalen…Vooraf-vertaling zoekt automatisch exacte of onduidelijke overeenkomsten voor niet-vertaalde tekenreeksen in het vertaalgeheugen en vult hun vertalingen in.VoorkeurenVoorkeuren...Voorkeuren...Opmaak van bestaande bestanden behoudenVorige meervoudsvormVorige meervoudsvormVorige brontekst:Projectnaam en -versie:Projectnaam:Project:Definitief verwijderen&Gewiste vertalingen definitief verwijderenAfsluitenStoppen met %sRecenteOpnieuwVerwijzingen:VernieuwenResterend: %dVervangen&Alles vervangen&Alles vervangenVervangende termVervangen...Vereiste meervoudsvorm-header ontbreekt.ResettenVertaalgeheugen resettenHet resetten van het vertaalgeheugen zal onherroepelijk alle opgeslagen vertalingen eruit wissen. U kunt deze actie niet terugdraaien.NakijkenRechtsOpslaanOpslaan &als...Opslaan &als...Opslaan alsOpslaan alsCatalogus opslaanWijzigingen opslaan&Alles selecterenAlles selecterenMap kiezenSelecteer de te importeren taalbestandenKies uw voorkeurstaalServicesBladwijzer %i instellenTaal instellenBladwijzer %i instellenTaal instellenShift+Toon allesZijbalk tonenSpelling en grammatica weergevenStatusbalk weergevenVervangingen weergevenDe zijbalk weergeven of verbergenZijbalk tonenStatusbalk tonenSamenvatting tonen na bijwerken catalogusZijbalkInloggenUitloggenInloggenInloggen bij CrowdinUitloggenIngelogd als:EnkelvoudEnkelvoud:Slim kopiëren/plakkenSlimme streepjesSlimme linksSlimme aanhalingstekensSorteren op bestands&volgordeSorteren op &bronSorteren op ver&talingSorteren op bestands&volgordeSorteren op &bronSorteren op ver&talingBroncode-tekenset:Er worden broncode-extractors gebruikt om vertaalbare strings in de broncode-bestanden te vinden en extraheren, zodat ze vertaald kunnen worden.Broncode niet beschikbaar.BronbestandVóórkomen van bronbestand:BrontekstBrontekst — %sBrontekst:Trefwoorden van de bronnenBronpadenTrefwoorden van bronnenBronpadenSpraakSpellingscontrole is uitgeschakeld, omdat het woordenboek voor %s niet geïnstalleerd is.Spelling en grammaticaBeginnen met sprekenStoppen met sprekenOpgeslagen vertalingen:Te zoeken termVervangingSuggestiesSuggesties zijn niet beschikbaar als de taal van de vertaling niet juist is ingesteld. Dit kan ook invloed hebben op andere functies, zoals meervoudsvormen.Ondersteunt alle programmeertalen herkend door GNU-gettext-tools (PHP, C/C++, C#, Perl, Python, Java, JavaScript en andere).SynchroniserenSynchroniseren met CrowdinDe vertaling met Crowdin synchroniserenSynchroniserenSynchronisatiefoutSynchroniseren met %s is mislukt.Synchroniseren met %s…Synchronisatie met Crowdin mislukt.Syntaxfout in meervoudsvorm-header ('%s').TMNeem een bestaand PO-bestand of POT-sjabloon en maak er een nieuwe vertaling van.Vertaalbare strings uit een bestaand POT-sjabloon halen.Teamnaam en e-mailadres of URLTekstvervangingHet vertaalgeheugen bevat geen strings die gelijk zijn aan de inhoud van dit bestand. Het is alleen geschikt voor semi-automatische vertalingen, nadat Poedit voldoende geleerd heeft van bestanden die u handmatig vertaald hebt.De catalogus kon niet opgeslagen worden met de '%s'-tekenset die opgegeven is in de catalogus-instellingen. Hij werd in plaats daarvan opgeslagen in UTF8-formaat en de instelling werd overeenkomstig daarmee aangepast.Het bestand kan niet gecompileerd worden naar het MO-formaat en dus niet gebruikt.Het bestand kan niet geopend worden.Het bestand bevat dubbele items; dat is niet toegestaan in PO-bestanden, omdat dit het gebruik van het bestand zou belemmeren. Poedit heeft de fout hersteld, maar je moet vertalingen van alle items die als onduidelijk gemarkeerd zijn, nakijken en ze zo nodig corrigeren.Het bestand kan corrupt zijn of een opmaak hebben die niet herkend wordt door Poedit.Het bestand is gecompileerd naar het MO-formaat, maar zal waarschijnlijk niet goed werken.Het bestand is veilig opgeslagen en gecompileerd naar het mo-formaat, maar het zal waarschijnlijk niet goed werken.Het bestand is veilig opgeslagen maar het kan niet gecompileerd worden naar het mo-formaat, en dus niet gebruikt worden.Het bestand is veilig opgeslagen.De oude brontekst (voordat hij gewijzigd werd tijdens een update) waar de nu onnauwkeurige vertaling mee correspondeert.De eenvoudigste manier om deze catalogus aan te vullen is door hem bij te werken vanuit een POT-bestand:De vertaling begint niet met een spatie.De vertaling eindigt met een regelafbreking, maar de brontekst niet.De vertaling eindigt met een spatie, maar de brontekst niet.De vertaling eindigt met "%s", maar de brontekst met "%s".In de vertaling ontbreekt een regelafbreking aan het eind.In de vertaling ontbreekt een spatie aan het eind.De vertaling is klaar voor gebruik, maar regel %d is nog niet vertaald.De vertaling is klaar voor gebruik, maar regels %d zijn nog niet vertaald.De vertaling is klaar voor gebruik.De vertaling moet eindigen met "%s".De vertaling mag niet eindigen met "%s".De vertaling moet beginnen als een zin.De vertaling moet beginnen met een kleine letter.De vertaling begint met een spatie, maar de brontekst niet.De vertalingen zijn gemarkeerd voor controle omdat ze mogelijk onnauwkeurig zijn. U dient ze te controleren op juistheid.Er zijn geen vertalingen. Dat is ongebruikelijk.Er ging iets fout bij het netjes opmaken van het bestand (maar het is wel opgeslagen).Er zijn fouten opgetreden bij het laden van de catalogus. Sommige gegevens kunnen hierdoor ontbreken of corrupt zijn.Deze instellingen hebben invloed op de interne opmaak van de PO-bestanden. Pas ze aan als u specifieke eisen hebt, bijv. vanwege versiecontrole.Deze strings staan niet meer in de broncode. Poedit zal ze nu uit de catalogus verwijderen.Deze strings zijn in de broncode gevonden, maar stonden niet in de catalogus. Poedit zal ze nu aan de catalogus toevoegen.Deze catalogus bevat vermeldingen met meervoudsvormen, maar er is geen meervoudsvorm-header voor ingesteld.Dit bestand kan alleen bewerkt worden in de Crowdin-webinterface.Dit is het commando dat gebruikt wordt om de extractor te starten. %o pakt uit naar de naam van het uitvoerbestand, %K naar de lijst van sleutelwoorden, %F naar de lijst van invoervelden, %C naar de karakterset-vlag (zie hieronder).Dit project bevat geen bestanden die vertaald kunnen worden in Poedit.Deze tekenreeks is gevonden in het vertaalgeheugen van Poedit.Dit wordt alleen aan de opdrachtregel toegevoegd als de bron-tekenset is opgegeven. %c wordt uitgebreid tot de tekensetwaarde.Dit wordt voor elk invoerbestand aan de opdrachtregel toegevoegd. %f wordt vervangen door de bestandsnaam.Dit wordt voor elk trefwoord aan de opdrachtregel toegevoegd. %k wordt vervangen door het trefwoord.TotaalOmzettingVertaalbare invoer wordt niet handmatig aan het Gettext-systeem toegevoegd, maar automatisch geëxtraheerd uit de broncode. Op deze manier blijven ze up-to-date en accuraat. Vertalers gebruiken meestal PO-sjabloonbestanden (POT's) die de ontwikkelaar voor hen gemaakt heeft.Vertaald: %d van %d (%d %%)Taal van de vertalingVertaalgeheugenDe vertaling behoeft &controleEigenschappen van de vertalingDe vertaling behoeft &controleEigenschappen van vertalingVertaalsuggesties:Vertaling — %sVertaling:De vertalingen konden niet bijgewerkt worden vanuit de broncode, omdat er geen code gevonden is op de locatie, opgegeven in de cataloguseigenschappen.TweeUTF-8 (aanbevolen)Ongedaan makenEr is een niet-verwerkte uitzondering opgetreden: %sUnix (aanbevolen)OnvertaaldOmhoogBijwerkenAlles bijwerkenAlle catalogi in het project bijwerkenCatalogus bijwerken - synchroniseren met de bronnenBijwerken vanuit &POT-bestand...Bijwerken vanuit &POT-bestand...Bijwerken vanuit POT-bestandSamenvatting van de updateUpdatesCatalogus bijwerkenBijwerken misluktBijwerken van de catalogus is mislukt. Klik op ' Details >>' voor meer informatie.Gebruikersinformatie bijwerken…Vertalingen uploaden…Aangepaste expressie gebruikenAangepast lettertype voor lijst gebruiken:Aangepast lettertype voor tekstvelden gebruiken:Standaardregels voor deze taal gebruikenGebruik deze trefwoorden (functienamen) om vertaalbare strings in bronbestanden te herkennen:Vertaalgeheugen gebruikenValiderenValideringsresultatenVersie %sWachten op autorisatie…Welkom bij PoeditWat is Crowdin?Tijdens het bijwerken vanuit bronnenAlleen hele woordenVensterWindowsTekstomloopTekstterugloop bij:JaU kunt ook vertaalbare strings rechtstreeks extraheren uit de broncode:U kunt niet meer dan één bestand in het Poedit-venster plaatsen.U moet Poedit opnieuw starten voordat deze verandering effect heeft.Uw naamUw wijzigingen zullen verloren gaan als u ze niet opslaat.Uw naam en e-mailadres worden alleen gebruikt om de header 'Laatste-Vertaler' van de GNU-gettext-bestanden in te stellen.NulIn-/uitzoomenaltctrltijdelijke bestanden niet verwijderen (voor foutopsporing)bijv. nplurals=2; plural=(n != 1);onduidelijke overeenkomsten binnen het bestand gebruikenga naar het item op het gegeven regelnummeromgaan met een poedit://-URIvooraf-vertaling vanuit het TM gebruikenshiftonbekende taaluw_e-mailadres@voorbeeld.nl"%s" is geen geldig POT-bestand.poedit-2.0.6/locales/pt_PT.mo0000664000372000037200000014171513230132042012730 00000000000000P%1 1 11<11J 2gW2 22 22 222 3333%3+333B3Q3W3]3f3z333333333333 3 44 4)4 04=4M4c4y44444444445 5(5D5Y5n55555555 6 '6:36:n6 666 6 666 6 7 #707?7O7c7~77777 71898'>8f88 8878689)=9g9 l9]w99A9I*:t:{:; ;;";:; U;`;.h;;;;;;;;<*<F<#[<<<<<<<<(<(=7= R=s=|== ==/= = >>#>9>L>b>2>>>>> ?)???????@@@ 2@?@R@Ee@"@?@ AA*.A YAfAyAK~A"A5A#B)BHAH HHI 'IHI PI ]IiI"nI;I(IIJ&J 5J ?JMJjJ ~JJJJJ JJK:K PK<^K.KKKKLL*%LPLVLgL xL LLJMNMgM MMMMM#MM'M$N7DN$|N%NNNNNNOOOO O2O P#P9PNP]PlPtP|PPPPPPPPQQQnQERZR>aR RRRR@RS-TyPyeyzyyyyy yy yyz )z3zMzgzzzzzzz z{,{"J{ m{Ey{B{ | ||!|7|N|b|z|||||| } '}(1}%Z}(} }}:}~( ~)I~#s~~~8~?~'Gg nT|BO/ +6>2G*z ;'=Rn}# ۂ.IPbx##ك! &CW"h9 ńӄڄ $#<J`)Յ!#3 $"+NUf uIC ]j/ ՈPڈ*+1Vԉ -< EOW ]=~r/K~g20Miot5̌"% 9D,Y2"0܍ )7fa ȎҎ +Fa{Տ  %;J P[j&_ɑґ "9+V’ʒ* %0(Kt ԓGݓ%C55yȔ  (FLe ~ $$Ζݖ 4"W+k2Dʗ.,>k'=ek+ә!1:CLRk ǚ[%azR ^of֜Mb4r ɞ5؞! ۟, 8Ndz֠ ۠   &7H `&n!x6<DL] n{âӢ/  9CWfz ӣ"&<*T ٤ ,E]pۥ&'˦ !- >Kexf ) 6AXi yE$ /?Ws#2Y4?+t5NM[{N:ʯ$e*P)@ <LJ,Ա(*,ò(-*G4r<t+YOjմ@Pȵp`?+G?V{"r(1Mbzܻ ˼&Լ  ((75`&&% "1IH\*о!% 90/j|7? Yd I=L6 7} 0 &-CZqw)D}],6 9BW6tC3H>C'# )h?*Kq#-0^aG2zFYblx&2LADZ.EwPi=Ab[kv @4uh~ uL@|pnf.nTN? QI2:qOKcajd F!p ]U>T+rXi=J%Vxz51^s4 NH/F"8/XJ`om #UwQk :Gs$ 8jL!~I1,(<D-9B>|;$H(E?g<y!dYgIo \ <eN+rM5&cM5 :"K-A+EmZ7C"603B $%RfRVeyOG*S@ M,4}_{O%W91J)S[`' 7)v &;*{(l_.03=\7P8/t';P (modified) (unsaved)%d entry%d entries%d entry was pre-translated.%d entries were pre-translated.%d error%d errors%d issue with the translation found.%d issues with the translation found.%i line of file “%s” was not loaded correctly.%i lines of file “%s” were not loaded correctly.%s Format%s Preferences%s format&About&About Poedit&Apply&Back&Bookmarks&Cancel&Clear&Close&Copy&Delete&Done and Next&Done and next&Edit&File&Find…&GNU gettext Manual&GNU gettext manual&Go&Group By Context&Group by context&Help&New&New…&Next >&Next Translation&Next translation&No&OK&Online Help&Online help&Open...&Open…&Paste&Preferences&Preferences…&Previous Translation&Previous translation&Properties…&Purge Deleted Translations&Purge deleted translations&Quit&Redo&Replace&Save&Save as&Show References&Show references&Undo&Untranslated Entries First&Untranslated entries first&Update from Sources&Update from sources&Validate Translations&Validate translations&View&Yes(0 new, 0 obsolete)(Learn more about GNU gettext)(New: %i, obsolete: %i)(Use default language)(requires Windows 8 or newer)< &PreviousDrag and Drop Folders Here or use the + buttonDrag and drop folders here or use the + buttonAbout %sAccountsAdd CommentAdd Files…Add Folders…Add Wildcard…Add commentAdd directory to the listAdd files…Add folders…Add wildcard…Additional keywordsAdditional xgettext flags:AdvancedAdvanced Extraction Settings…Advanced extraction settingsAdvanced extraction settings…All Translation FilesAll commentsAlso use default keywords for supported languagesAlt+Always change focus to text input fieldAn item in input files list:An item in keywords list:AppearanceApplyAre you sure you want to delete the “%s” extractor?Are you sure you want to reset the translation memory?Automatically check for updatesAutomatically compile MO file when savingBackBase path:Beta versions contain the latest new features and improvements, but may be a bit less stable.Bring All to FrontBroken catalog file: plural form msgstr used without msgid_pluralBroken catalog file: singular form msgstr used together with msgid_pluralBrowseBy default, inaccurate results are filled in as well and marked as needing work. Check this option to only include accurate matches.C&atalogC&learCancelCannot create temporary directory.Cannot execute program: %sCapitalizeCatalogCatalog modified. Do you want to save changes?Catalog propertiesCatalogs &ManagerCatalogs &managerCatalogs ManagerChange UI languageCharset:Check Document NowCheck Grammar With SpellingCheck Spelling While TypingCheck for Updates…Check for errors in the translationCheck for updates…Check spellingClearClear TranslationClear the commentClear translationCloseCollaborate on a Translation with OthersCollaborate on a translation with othersCollecting source files…Command to extract translations:Comment:Comments prefixed with:Compile to MO…Compile to…Compiled Translation FilesConfigure source code extraction in Properties.ConfirmationCopyCopy From SingularCopy from Source TextCopy from singularCopy from source textCorrect Spelling AutomaticallyCouldn’t load file %s, it is probably corrupted.Couldn’t save file %s.Create New TranslationCreate new translationCreate new translations projectCrowdin errorCrowdin is an online localization management platform and collaborative translation tool. Poedit can seamlessly sync PO files managed at Crowdin.Ctrl+Cu&tCustom Extractors:Custom extractors:CutDatabase size on disk:DeleteDelete extractorDelete the projectDirectories:Display Entry &IDsDisplay entry &IDsDo you really want to do mass update of all catalogs in this project?Do you want to delete the project?Do you want to remove all translations that are no longer used?Don’t SaveDon’t Show AgainDon’t mark exact matches as needing workDon’t saveDon’t show againDownDownload a file from Crowdin project, translate and sync your changes back.Downloading latest translations…Downloading translations is disabled in this project.E&xitE&xport as HTML…EditEdit &CommentEdit &commentEdit CommentEdit a TranslationEdit a translationEdit commentEdit projectEdit the projectEditingEdit…Email:EnterEnter Full ScreenEntries in the catalog are probably incorrect.Entries in this catalog have different plural forms count from what catalog’s Plural-Forms header saysEntries with Errors FirstEntries with errors firstEntries with errors were marked in red in the list. Details of the error will be shown when you select such an entry.Error loading message catalog file “%s”.Error opening fileError opening file %s!Error saving catalogErrorsEverythingExcluded pathsExport as…Extract from sourcesExtract notes for translators from:Extract text from source files in the following directories:Extracting translatable strings…Extractor setupExtractorsFailed command: %sFailed to communicate with Poedit process.Failed to load extracted catalog.Failed to merge gettext catalogs.Failed to update translation memory: %sFileFile “%s” doesn’t exist.File “%s” is not a message catalog.File “%s” is read-only and cannot be saved. Please save it under different name.File:Finalizing…FindFind NextFind PreviousFind and Replace…Find in commentsFind in source textsFind in translationsFind nextFind previousFix LanguageFix languageFix the HeaderFix the headerForm %iFrequentGNU gettextGeneralGo to Bookmark %iGo to bookmark %iHTML FilesHelpHide %sHide OthersHide SidebarHide Status BarHide this notification messageIDIf you continue with purging, all translations marked as deleted will be permanently removed. You will have to translate them again if they are added back in the future.Ignore caseImporting translations…Include beta versionsInformation about the translatorInstallInvalid fileInvocation:KeepLanguage Code or Name (e.g. en_GB)Language of the translation is the same as source language.Language of the translation isn’t set.Language of the translation:Language selectionLanguage team:Language:Last modifiedLearn About Gettext KeywordsLearn From Files…Learn MoreLearn More About CrowdinLearn about gettext keywordsLearn about plural formsLearn from files…Learn moreLearn more about CrowdinLeftLine %d of file “%s” is corrupted (not valid %s data).Line endings:List of extensions separated by semicolons (e.g. *.cpp;*.h):MO files can’t be directly edited in Poedit.Make Lower CaseMake Upper CaseMalformed header: “%s”Merging differences…MinimizeName of the project the translation is forName:Ne&xt UnfinishedNe&xt unfinishedNeeds WorkNeeds workNever let the list of strings take focus. If enabled, you must use Ctrl-arrows for keyboard navigation but you can also type text immediately, without having to press Tab to change focus.NewNew From &POT/PO File…New from &POT/PO file…New stringsNext Plural FormNext plural formNoNo Matches FoundNo entries could be pre-translated.No matches foundNo problems with the translation found.No references for the selected item.No translation projects listed in your Crowdin account.Not all plural forms are translated.Not authorized, please sign in again.Notes for translators:OKObsolete stringsOneOnly enable if you trust the quality of your TM. By default, all matches from the TM are marked as needing work and should be reviewed before use.Only fill in exact matchesOpenOpen Crowdin translationOpen From Crowdin…Open RecentOpen an existing PO file and edit the translation.Open catalogOpen catalog templateOpen from Crowdin…Open in EditorOpen in editorOpen...Open…OptionsOtherP&revious UnfinishedP&revious unfinishedPO TranslationPO Translation FilesPOT Translation TemplatesPOT files are only templates and don’t contain any translations themselves. To make a translation, create a new PO file based on the template.PastePaste and Match StylePathsPlease open and edit the corresponding PO file instead. When you save it, the MO file will be updated as well.Please save the file first. This section cannot be edited until then.PluralPlural forms expression used by the catalog is unusual for %s.Plural forms:Plural:PoeditPoedit - Catalogs managerPoedit automatically fixed invalid content in the file “%s”.Poedit can attempt to fill in new entries from only previous translations in the file or from your entire translation memory. Using the TM won’t be very effective if it’s near-empty, but it will get better as you add more translations to it.Poedit is an easy to use translations editor.Pre-&translate…Pre-translatePre-translatedPre-translated %u stringPre-translated %u stringsPre-translating…Pre-translation automatically finds exact or fuzzy matches for untranslated strings in the translation memory and fills in their translations.PreferencesPreferences...Preferences…Preserve formatting of existing filesPrevious Plural FormPrevious plural formPrevious source text:Project name and version:Project name:Project:PurgePurge deleted translationsQuitQuit %sRecentRedoReferences:RefreshRemaining: %dReplaceReplace &AllReplace &allReplacement stringReplace…Required header Plural-Forms is missing.ResetReset translation memoryResetting the translation memory will irrevocably delete all stored translations from it. You can’t undo this operation.ReviewRightSaveSave &As…Save &as…Save asSave as…Save catalogSave changesSelect &AllSelect AllSelect directorySelect translation files to importSelect your preferred languageServicesSet Bookmark %iSet LanguageSet bookmark %iSet languageShift+Show AllShow SidebarShow Spelling and GrammarShow Status BarShow SubstitutionsShow or hide the sidebarShow sidebarShow status barShow summary after catalog updateSidebarSign InSign OutSign inSign in to CrowdinSign outSigned in as:SingularSingular:Smart Copy/PasteSmart DashesSmart LinksSmart QuotesSort by &File OrderSort by &SourceSort by &TranslationSort by &file orderSort by &sourceSort by &translationSource code charset:Source code extractors are used to find translatable strings in the source code files and extract them so that they can be translated.Source code not available.Source fileSource file occurrence:Source textSource text — %sSource text:Sources KeywordsSources PathsSources keywordsSources pathsSpeechSpellchecking is disabled, because the dictionary for %s isn’t installed.Spelling and GrammarStart SpeakingStop SpeakingStored translations:String to findSubstitutionsSuggestionsSuggestions are not available if the translation language is not set correctly. Other features, such as plural forms, may be affected as well.Supports all programming languages recognized by GNU gettext tools (PHP, C/C++, C#, Perl, Python, Java, JavaScript and others).SyncSync with CrowdinSynchronize the translation with CrowdinSyncingSyncing errorSyncing with %s failed.Syncing with %s…Syncing with Crowdin failed.Syntax error in Plural-Forms header ("%s").TMTake an existing PO file or POT template and create a new translation from it.Take translatable strings from an existing POT template.Team name and email address or URLText ReplacementThe TM doesn’t contain any strings similar to the content of this file. It is only effective for semi-automatic translations after Poedit learns enough from files that you translated manually.The catalog couldn’t be saved in “%s” charset as specified in catalog settings. It was saved in UTF-8 instead and the setting was modified accordingly.The file cannot be compiled into the MO format and used.The file cannot be opened.The file contained duplicate items, which is not allowed in PO files and would prevent the file from being used. Poedit fixed the issue, but you should review translations of any items marked as needing work and correct them if necessary.The file may be either corrupted or in a format not recognized by Poedit.The file was compiled into the MO format, but it will probably not work correctly.The file was saved safely and compiled into the MO format, but it will probably not work correctly.The file was saved safely, but it cannot be compiled into the MO format and used.The file was saved safely.The old source text (before it changed during an update) that the now-inaccurate translation corresponds to.The simplest way to fill this catalog is to update it from a POT:The translation doesn’t start with a space.The translation ends with a newline, but the source text doesn’t.The translation ends with a space, but the source text doesn’t.The translation ends with “%s”, but the source text ends with “%s”.The translation is missing a newline at the end.The translation is missing a space at the end.The translation is ready for use, but %d entry is not translated yet.The translation is ready for use, but %d entries are not translated yet.The translation is ready for use.The translation should end with “%s”.The translation should not end with “%s”.The translation should start as a sentence.The translation should start with a lowercase character.The translation starts with a space, but the source text doesn’t.The translations were marked as needing work, because they may be inaccurate. You should review them for correctness.There are no translations. That’s unusual.There was a problem formatting the file nicely (but it was saved all right).There were errors when loading the catalog. Some data may be missing or corrupted as the result.These settings affect internal formatting of PO files. Adjust them if you have specific requirements e.g. because of version control.These strings are no longer in the sources. Poedit will remove them from the catalog now.These strings were found in the sources but were not in the catalog. Poedit will add them to the catalog now.This catalog has entries with plural forms, but doesn’t have Plural-Forms header configured.This file can only be edited in Crowdin’s web interface.This is the command used to launch the extractor. %o expands to the name of output file, %K to list of keywords, %F to list of input files, %C to charset flag (see below).This project has no files that can be translated in Poedit.This string was found in Poedit’s translation memory.This will be attached to the command line only if source code charset was given. %c expands to charset value.This will be attached to the command line once for each input file. %f expands to the filename.This will be attached to the command line once for each keyword. %k expands to the keyword.TotalTransformationsTranslatable entries aren’t added manually in the Gettext system, but are automatically extracted from source code. This way, they stay up to date and accurate. Translators typically use PO template files (POTs) prepared for them by the developer.Translated: %d of %d (%d %%)Translation LanguageTranslation MemoryTranslation Needs &WorkTranslation PropertiesTranslation needs &workTranslation propertiesTranslation suggestions:Translation — %sTranslation:Translations couldn’t be updated from the source code, because no code was found in the location specified in the catalog’s Properties.TwoUTF-8 (recommended)UndoUnhandled exception occurred: %sUnix (recommended)UntransUpUpdateUpdate allUpdate all catalogs in the projectUpdate catalog - synchronize it with sourcesUpdate from &POT File…Update from &POT file…Update from POTUpdate summaryUpdatesUpdating catalogUpdating failedUpdating the catalog failed. Click on 'Details >>' for details.Updating user information…Uploading translations…Use custom expressionUse custom list font:Use custom text fields font:Use default rules for this languageUse these keywords (function names) to recognize translatable strings in source files:Use translation memoryValidateValidation resultsVersion %sWaiting for authentication…Welcome to PoeditWhat is Crowdin?When updating from sourcesWhole words onlyWindowWindowsWrap aroundWrap at:YesYou can also extract translatable strings directly from the source code:You can’t drop more than one file on Poedit window.You must restart Poedit for this change to take effect.Your NameYour changes will be lost if you don’t save them.Your name and email address are only used to set the Last-Translator header of GNU gettext files.ZeroZoomaltctrldon’t delete temporary files (for debugging)e.g. nplurals=2; plural=(n > 1);fuzzy match within the filego to item at given line numberhandle a poedit:// URIpre-translate from TMshiftunknown languageyour_email@example.com“%s” is not a valid POT file.Project-Id-Version: poedit Report-Msgid-Bugs-To: help@poedit.net POT-Creation-Date: 2017-12-05 15:52+0100 PO-Revision-Date: 2017-12-05 09:49-0500 Last-Translator: vslavik Language-Team: Portuguese Language: pt_PT MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=(n != 1); X-Generator: crowdin.com X-Crowdin-Project: poedit X-Crowdin-Language: pt-PT X-Crowdin-File: /locales/poedit.pot (modificado) (não guardado)%d entrada%d entradas%d entrada foi pré-traduzida.%d entradas foram pré-traduzidas.%d erro%d errosFoi encontrado %d erro na tradução.Foram encontrados %d erros na tradução.%i linha do ficheiro “%s“ não foi carregada corretamente.%i linhas do ficheiro "%s" não foram carregadas corretamente.Formato %sPreferências do %sFormato %s&Acerca&Sobre o Poedit&Aplicar&Recuar&Marcadores&Cancelar&LimparFe&char&Copiar&Apagar&Pronta e avançar&Pronta e avançar&Editar&FicheiroLocali&zar…Manual &GNU gettextManual &GNU gettext&IrA&grupar por contextoA&grupar por contextoAj&uda&Novo&Novo…Segui&nte >Tradução &seguinteTradução &seguinte&Não&OKAjuda na &webAjuda na &web&Abrir...&Abrir…Co&lar&Preferências&Preferências…Tradução &anteriorTradução &anterior&Propriedades…&Remover traduções eliminadas&Remover traduções eliminadas&Sair&RefazerSubstitui&r&GuardarGuardar &comoMo&strar referênciasMo&strar referências&DesfazerNão trad&uzidas primeiroNão trad&uzidas primeiroAt&ualizar com base nas fontesAt&ualizar com base nas fontes&Validar traduções&Validar traduções&Ver&Sim(0 novas, 0 obsoletas)(Saber mais sobre o GNU gettext)(Novas: %i, obsoletas: %i)(Utilizar idioma predefinido)(requer Windows 8 ou mais recente)< An&teriorArraste e largue aqui os ficheiros \ou utilize o botão +Arraste e largue aqui as pastas \ou utilize o botão +Acerca do %sContasAdicionar comentárioAdicionar ficheiros…Adicionar pastas…Adicionar "wildcard"…Adicionar comentárioAdicionar diretório à listaAdicionar ficheiros…Adicionar pastas…Adicionar "wildcard"…Palavras-chave adicionaisMarcas xgettext adicionais:AvançadoDefinições avançadas de extração…Definições avançadas de extraçãoDefinições avançadas de extração…Todos os ficheiros de traduçãoTodos os comentáriosUtilizar também palavras-chave para os idiomas suportadosAlt+Focar sempre o campo da entrada de textoUm item na lista de ficheiros de entrada:Um item na lista de palavras-chave:AspetoAplicarTem a certeza de que deseja remover o extrator “%s“?Tem a certeza que pretende reiniciar a memória de traduções?Procurar atualizações automaticamenteCompilar ficheiro MO ao guardarRecuarCaminho base:As versões Beta possuem novas funcionalidades e melhorias mas podem ser instáveis.Trazer para primeiro planoFicheiro danificado: usadas formas plurais msgstr sem msgid_pluralFicheiro danificado: usada a forma singular msgstr em conjunto com msgid_pluralExplorarPor predefinição, os resultados inexatos também serão preenchidos e marcados como imprecisos. Ative esta opção se apenas quiser incluir ocorrências exatas.C&atálogo&LimparCancelarNão foi possível criar o diretório temporário.Não foi possível executar o programa: %sCapitalizarCatálogoO catálogo foi modificado. Deseja guardar as alterações?Propriedades do catálogoGest&or de catálogosGest&or de catálogosGestor de catálogosMudar idioma da aplicaçãoCodificação:Analisar documento agoraVerificar gramática com ortografiaVerificar ortografia ao escreverProcurar atualizações…Procurar erros na traduçãoProcurar atualizações…Verificação ortográficaLimparLimpar traduçãoRemover o comentárioLimpar traduçãoFecharParticipar na tradução com outrosParticipar na tradução com outrosA obter os ficheiros fonte…Comando para extrair traduções:Comentário:Comentários prefixados com:Compilar para MO…Compilar para…Ficheiros de tradução compiladosConfigure a extração do código fonte nas propriedades.ConfirmaçãoCopiarCopiar da forma singularCopiar entrada originalCopiar da forma singularCopiar entrada originalCorrigir ortografia automaticamenteNão foi possível carregar o ficheiro %s, provavelmente está danificado.Não foi possível guardar o ficheiro %s.Criar nova traduçãoCriar nova traduçãoCriar novo projeto de traduçõesErro do CrowdinO serviço Crowdin é uma plataforma de gestão de traduções e uma ferramenta de colaboração. O Poedit pode sincronizar os ficheiros PO existentes nos projetos Crowdin.Ctrl+Cor&tarExtratores personalizados:Extratores personalizados:CortarTamanho da base de dados no disco:ApagarRemover extratorApagar projetoDiretórios:Mostrar &ID das entradasMostrar &ID das entradasTem a certeza que quer mesmo atualizar todos os catálogos deste projeto?Pretende apagar o projeto?Pretende remover todas as traduções que já não são utilizadas?Não guardarNão mostrar novamenteNão marcar ocorrências exatas como imprecisasNão guardarNão mostrar novamenteDownDescarregue um ficheiro do Crowdin, traduza-o e sincronize as suas alterações.A descarregar traduções mais recentes...Este projeto desativou a descarga de traduções.&SairE&xportar como HTML…EditarEditar &comentárioEditar &comentárioEditar comentárioEditar traduçãoEditar traduçãoEditar comentárioEditar projetoEditar projetoEdiçãoEditar…E-mail:EnterEntrar no modo de ecrã completoÉ possível que as entradas do catálogo estejam incorretas.As entradas deste catálogo possuem formas plurais que diferem das que estão definidas no cabeçalho Plural-FormsEntradas com erros primeiroEntradas com erros primeiroAs entradas com erros estão marcadas a vermelho. Os detalhes do erro serão mostrados ao selecionar a entrada correspondente.Erro ao carregar o ficheiro de catálogo “%s“.Erro ao abrir ficheiroErro ao abrir o ficheiro %s!Erro ao guardar o catálogoErrosTudoCaminhos excluídosExportar como…Extrair das fontesExtrair notas de tradução em:Extrair texto dos ficheiros fonte nestes diretórios:A extrair entradas traduzíveis…Configurar extratorExtratoresFalha do comando: %sFalha ao comunicar com o processo do Poedit.Não foi possível carregar o catálogo extraído.Erro ao unir os catálogos gettex.Falha ao atualizar a memória de traduções: %sFicheiroO ficheiro “%s“ não existe.O ficheiro “%s“ não é um catálogo.O ficheiro “%s“ é de leitura e não pode ser guardado. Por favor, guarde-o com um nome diferente.Ficheiro:A finalizar…LocalizarLocalizar seguinteLocalizar anteriorLocalizar e substituir…Localizar nos comentáriosLocalizar nos textos fonteLocalizar nas traduçõesLocalizar seguinteLocalizar anteriorCorrigir idiomaCorrigir idiomaCorrigir cabeçalhoCorrigir cabeçalhoForma %iFrequentesGNU gettextGeralIr para o marcador %iIr para o marcador %iFicheiros HTMLAjudaOcultar %sOcultar outrosOcultar barra lateralOcultar barra de estadoOcultar esta mensagem de notificaçãoIDSe continuar, todas as traduções marcadas como apagadas serão removidas permanentemente. Se as entradas forem respostas, terá que as traduzir novamente.Ignorar maiúsculas/minúsculasA importar traduções…Incluir versões betaInformações do tradutorInstalarFicheiro inválidoInvocação:ManterCódigo ou nome do idioma (ex: pt)O idioma da tradução é igual ao idioma do texto fonte.O idioma da tradução não está definido.Idioma da tradução:Seleção de idiomaEquipa de tradução:Idioma:Última modificaçãoSaber mais sobre as palavras-chave GettextAprender dos ficheiros…Saber maisSaber mais sobre o CrowdinSaber mais sobre palavras-chaves gettextSaber mais sobre formas pluraisAprender dos ficheiros…Saber maisSaber mais sobre o CrowdinEsquerdaA linha %d do ficheiro “%s“ está danificada (dados %s inválidos).Final de linha:Lista de extensões separadas por ponto e vírgula (ex. *.cpp;*.h):Os ficheiros MO não podem ser editados com o Poedit.Converter em minúsculasConverter em maiúsculasCabeçalho mal formado: “%s“A incorporar diferenças…MinimizarNome do projeto de traduçãoNome:Seguinte &não terminadaSeguinte &não terminadaPor reverPor reverNunca deixar que a lista de entradas obtenha o foco. Se ativa, tem que usar Control+Teclas do cursor para mudar de linhas com o teclado, mas também pode digitar o texto imediatamente, sem ter que premir a tecla Tab para mudar de campo.NovoNovo a partir de ficheiro &POT/PO…Novo a partir de ficheiro &POT/PO…Novas entradasForma plural seguinteForma plural seguinteNãoNenhuma ocorrênciaNão foi possível pré-traduzir quaisquer entradas.Nenhuma ocorrênciaNão foram encontrados erros na tradução.Não existem referências para o item selecionado.Não existem projetos de tradução associados à sua conta Crowdin.Nem todas as formas plurais estão traduzidas.Não autorizado. Inicie novamente a sessão.Notas para tradutores:AceitarEntradas obsoletasUmaApenas deve ativar esta opção se confiar plenamente na MT. Por definição, todas as ocorrências obtidas a partir da MT serão marcadas como imprecisas.Preencher apenas as ocorrências exatasAbrirAbrir tradução CrowdinAbrir do Crowdin…Abrir recentesAbrir um ficheiro PO e editar a tradução.Abrir catálogoAbrir modelo de catálogoAbrir do Crowdin…Abrir no editorAbrir no editorAbrir...Abrir…OpçõesOutraAn&terior não terminadaAn&terior não terminadaTradução POFicheiros de tradução POModelos de tradução POTOs ficheiros POT são apenas modelos e não possuem quaisquer traduções. Para efetuar uma tradução, crie um novo ficheiro PO baseado no modelo.ColarColar com a formatação do documentoCaminhosPor favor abra e edite o ficheiro PO correspondente. Quando guardar o ficheiro PO, o ficheiro MO também será atualizado.Por favor guarde o ficheiro. Esta secção não pode ser editada até que o faça.PluraisA expressão de formas plurais utilizadas neste catálogo não são as que devem ser utilizadas pelo idioma %s.Formas plurais:Plurais:PoeditPoedit - Gestor de catálogosO Poedit corrigiu automaticamente o conteúdo inválido do ficheiro “%s“.O Poedit pode tentar preencher as novas entradas a partir das traduções antigas do ficheiro ou a partir da memória de traduções. A memória de traduções será ineficaz se estiver quase vazia, mas à medida que lhe for adicionando as suas traduções irá melhorar.O Poedit é um editor de traduções fácil de usar.Pré-&tradução…Pré-traduzirPré-traduzida%u entrada pré-traduzida%u entradas pré-traduzidasA pré-traduzir…A pré-tradução localiza automaticamente as correspondências exatas ou similares para as entradas não traduzidas, a partir da memória de tradução, e preenche as suas traduções.PreferênciasPreferências...Preferências…Manter formatação dos ficheiros existentesForma plural anteriorForma plural anteriorTexto fonte anterior:Nome e versão do projeto:Nome do projeto:Projeto:RemoverRemover traduções eliminadasSairSair do %sRecentesRefazerReferências:RecarregarFaltam: %dSubstituirSubstituir t&udoSubstituir t&udoTexto de substituiçãoSubstituir…O cabeçalho Plural-Forms não existe.ReporReiniciar memória de traduçõesSe reiniciar a memória de traduções, apagará todas as traduções guardadas. Esta operação não pode ser desfeita.ReverDireitaGuardarGuardar &como…Guardar &como…Guardar comoGuardar como…Guardar catálogoGuardar alteraçõesSelecion&ar tudoSelecionar tudoEscolha o diretórioSelecione os ficheiros de tradução a importarSelecione o seu idioma preferidoServiçosDefinir marcador %iDefinir idiomaDefinir marcador %iDefinir idiomaShift+Mostrar tudoMostrar barra lateralMostrar ortografia e gramáticaMostrar barra de estadoMostrar substituiçõesMostrar ou ocultar a barra lateralMostrar barra lateralMostrar barra de estadoMostrar resumo após atualizar o catálogoBarra lateralIniciar sessãoTerminar sessãoIniciar sessãoIniciar sessão no CrowdinTerminar sessãoSessão iniciada como:SingularSingular:Colar/Colar inteligenteTravessões inteligentesLigações inteligentesAspas inteligentesOrdenar pela ordem do &ficheiro&Ordenar por fonteOrdenar por &traduçãoOrdenar pela ordem do &ficheiro&Ordenar por fonteOrdenar por &traduçãoCodificação do código fonte:Os extratores de código fonte são utilizados para localizar as entradas, nos ficheiros fonte, que podem ser traduzidas e extraem-nas para que possam ser editadas.O código fonte não está disponível.Ficheiro fonteOcorrência no ficheiro fonte:Texto fonteTexto fonte - %sTexto fonte:Palavras-chave das fontesCaminho das fontesPalavras-chave das fontesCaminho das fontesFalaA verificação ortográfica está inativa porque o dicionário para o idioma %s não está instalado.Ortografia e gramáticaIniciar falaParar falaTraduções guardadas:Texto a procurarSubstituiçõesSugestõesAs sugestões de tradução não estarão disponíveis se o idioma do projeto não estiver definido corretamente. Outras funcionalidades, como as formas plurais, também poderão ser afetadas.Ativa o suporte a todas as linguagens de programação reconhecidas pelas ferramentas GNU gettext (PHP, C/C++, C#, Perl, Python, Java, JavaScript e mais).SincronizaçãoSincronizar com o CrowdinSincronizar tradução com o CrowdinSincronizaçãoErro de sincronizaçãoErro ao sincronizar com %s.A sincronizar com %s…Falha ao sincronizar com o Crowdin.Erro de sintaxe no cabeçalho Plural-Forms ("%s").MTCriar uma nova tradução e obter as linhas a traduzir a partir de um ficheiro PO ou POT.Obter entradas a traduzir a partir de um modelo POT.Nome da equipa e endereço de e-mail ou URLSubstituição de textoA memória de traduções não contém quaisquer entradas similares às deste ficheiro. Só será útil para traduções semi-automáticas e após o Poedit aprender os dados dos ficheiros que traduziu manualmente.Não foi possível guardar o catálogo no formato “%s“, como especificado nas definições do catálogo. Este foi guardado no formato UTF-8 e a definição foi alterada em concordância.O ficheiro não pode ser compilado para o formato MO.O ficheiro não foi aberto.O ficheiro contém itens duplicados, o que não é permitido em ficheiros PO e que impede a utilização do ficheiro. O Poedit corrigiu este problema, mas você deve rever a traduções dos itens marcados como imprecisos e efetuar as correções necessárias.O ficheiro pode estar danificado ou num formato não reconhecido pelo Poedit.O ficheiro foi compilado para o formato MO mas é provável que não funcione corretamente.O ficheiro foi guardado com sucesso e o ficheiro MO foi compilado. No entanto, é possível que não funcione corretamente.O ficheiro foi guardado mas o ficheiro MO não foi criado.O ficheiro foi guardado com sucesso.O texto fonte anterior (antes de uma atualização) a que as traduções inexatas agora correspondem.O método mais fácil para preencher este catálogo é utilizar um ficheiro POT:A tradução não começa com um espaço.A tradução termina com uma nova linha, mas o texto fonte não.A tradução termina com um espaço, mas o texto fonte não.A tradução termina com “%s”, mas o texto fonte termina com “%s”.A tradução não tem uma nova linha no fim.A tradução não tem um espaço no fim.A tradução pode ser utilizada mas %d entrada ainda não está traduzida.A tradução pode ser utilizada mas %d entradas ainda não estão traduzidas.A tradução está pronta para utilização.A tradução deve terminar com “%s”.A tradução não deve terminar com “%s”.A tradução deve começar como uma frase.A tradução deve começar com uma letra minúscula.A tradução começa com um espaço, mas o texto fonte não.As traduções foram marcadas como imprecisas porque podem não ser exatamente iguais. Deve rever estas traduções.Não existem traduções. Isto é estranho.Ocorreu um problema ao formatar o ficheiro (mas este foi guardado com sucesso).Ocorreram erros ao carregar o catálogo. Como resultado, alguns dados podem estar em falta ou danificados.Estas definições afetam a formatação interna dos ficheiros PO. Deve ajustar as definições caso necessite de requisitos especiais.Estas entradas já não estão no código fonte e serão removidas do catálogo.Estas entradas foram encontradas no código fonte mas não estão no catálogo. Serão adicionadas ao catálogo.Este catálogo tem entradas com formas plurais, mas não tem o cabeçalho Plural-Forms definido.Este ficheiro só pode ser editado na interface web do Crowdin.Este é o comando utilizado para iniciar o extrator. %o será substituído pelo nome do ficheiro de destino, %K pela lista de palavras chave, %F pela lista de ficheiros de entrada e %C pelo tipo de codificação (veja abaixo).Este projeto não tem ficheiros que possam ser traduzidos com o Poedit.Esta linha foi encontrada na memória de traduções do Poedit.Isto será anexado à linha de comandos se a codificação do código fonte tiver sido fornecida. %c será substituído pela codificação.Isto será anexado à linha de comandos uma vez para cada ficheiro de entrada. %f será substituído pelo nome do ficheiro.Isto será anexado à linha de comandos uma vez para cada palavra-chave. %k será substituído pela palavra-chave.TotalTransformaçõesAs entradas para tradução não são adicionadas manualmente ao sistema Gettext mas sim extraídas automaticamente do código fonte. Desta forma, estão sempre atualizadas. Normalmente, os tradutores utilizam os ficheiros POT disponibilizados pelos programadores.Traduzido: %d de %d (%d %%)Idioma da traduçãoMemória de traduçõesTradução por re&verPropriedades da traduçãoTradução por re&verPropriedades da traduçãoSugestões de tradução:Tradução — %sTradução:As traduções não foram atualizadas a partir do código fonte porque o código não foi encontrado na localização definida nas propriedades do catálogo.DuasUTF-8 (recomendado)DesfazerOcorreu uma exceção não tratada: %sUnix (recomendado)Por traduzirUpAtualizarAtualizar tudoAtualizar todos os catálogos do projetoAtualizar catálogo e sincronizar com o código fonteAtualizar a partir de ficheiro &POT…Atualizar a partir de ficheiro &POT…Atualizar com base em ficheiro POT...Resumo da atualizaçãoAtualizaçõesA atualizar o catálogoFalha ao atualizarFalha ao atualizar o catálogo. Clique em 'Detalhes >>' para saber mais.A atualizar informações do utilizador…A enviar traduções…Utilizar expressão personalizadaUtilizar tipo de letra personalizada:Utilizar tipo de letra personalizada nos campos de texto:Utilizar regras pré-definidas para este idiomaUtilizar estas palavras-chave (nomes de funções) para reconhecer as entradas passíveis de tradução nos ficheiros fonte:Utilizar memória de traduçãoValidarResultados da validaçãoVersão %sA aguardar autenticação…Bem-vindo ao PoeditO que é o Crowdin?Ao atualizar das fontesSó palavras inteirasJanelaWindowsMoldar textoQuebra em:SimTambém pode extrair as entradas a traduzir diretamente do código fonte:Não pode largar mais do que um ficheiro na janela do Poedit.Tem que reiniciar o Poedit para aplicar a alteração.O seu nomeSe não guardar as alterações, estas serão perdidas.O seu nome e endereço eletrónico só serão utilizados para definir o cabeçalho Last-Translator dos ficheiros GNU gettext.ZeroAmpliaçãoaltctrlnão apagar ficheiros temporários (depuração)ex.: nplurals=2; plural=(n > 1);preencher com ocorrências do ficheiroir para o item indicado pelo número de linhagerir um URI poedit://pré-traduzir com a MTshiftidioma desconhecidoo_seu_email@exemplo.com“%s“ não é um ficheiro POT válido.poedit-2.0.6/locales/Makefile.in0000664000372000037200000003657313230132040013415 00000000000000# 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 = : build_triplet = @build@ host_triplet = @host@ subdir = locales DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am README ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/admin/ax_boost_base.m4 \ $(top_srcdir)/admin/ax_boost_iostreams.m4 \ $(top_srcdir)/admin/ax_boost_regex.m4 \ $(top_srcdir)/admin/ax_boost_system.m4 \ $(top_srcdir)/admin/ax_boost_thread.m4 \ $(top_srcdir)/admin/ax_cxx_check_flag.m4 \ $(top_srcdir)/admin/ax_cxx_compile_stdcxx.m4 \ $(top_srcdir)/admin/wxwin.m4 $(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__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BOOST_CPPFLAGS = @BOOST_CPPFLAGS@ BOOST_IOSTREAMS_LIB = @BOOST_IOSTREAMS_LIB@ BOOST_LDFLAGS = @BOOST_LDFLAGS@ BOOST_REGEX_LIB = @BOOST_REGEX_LIB@ BOOST_SYSTEM_LIB = @BOOST_SYSTEM_LIB@ BOOST_THREAD_LIB = @BOOST_THREAD_LIB@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CLD2_LIBS = @CLD2_LIBS@ CPPFLAGS = @CPPFLAGS@ CPPREST_LIBS = @CPPREST_LIBS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GREP = @GREP@ GTKSPELL_CFLAGS = @GTKSPELL_CFLAGS@ GTKSPELL_LIBS = @GTKSPELL_LIBS@ HAVE_CXX14 = @HAVE_CXX14@ ICU_CFLAGS = @ICU_CFLAGS@ ICU_LIBS = @ICU_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBSECRET_CFLAGS = @LIBSECRET_CFLAGS@ LIBSECRET_LIBS = @LIBSECRET_LIBS@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ LUCENE_CFLAGS = @LUCENE_CFLAGS@ LUCENE_LIBS = @LUCENE_LIBS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_SHORT_VERSION = @PACKAGE_SHORT_VERSION@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ WXRC = @WXRC@ WX_CFLAGS = @WX_CFLAGS@ WX_CFLAGS_ONLY = @WX_CFLAGS_ONLY@ WX_CONFIG_PATH = @WX_CONFIG_PATH@ WX_CONFIG_WITH_ARGS = @WX_CONFIG_WITH_ARGS@ WX_CPPFLAGS = @WX_CPPFLAGS@ WX_CXXFLAGS = @WX_CXXFLAGS@ WX_CXXFLAGS_ONLY = @WX_CXXFLAGS_ONLY@ WX_LIBS = @WX_LIBS@ WX_LIBS_STATIC = @WX_LIBS_STATIC@ WX_RESCOMP = @WX_RESCOMP@ WX_VERSION = @WX_VERSION@ WX_VERSION_MAJOR = @WX_VERSION_MAJOR@ WX_VERSION_MICRO = @WX_VERSION_MICRO@ WX_VERSION_MINOR = @WX_VERSION_MINOR@ 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@ ac_ct_CXX = @ac_ct_CXX@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = $(datadir)/locale localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ POEDIT_LINGUAS = an ar az be be@latin bg bs ca ckb co cs da de el en_GB es et eu fa fi fr ga gl he hr hu hy id is it ja ka kab kk ko lt lv ms nb nl oc pa pl pt_BR pt_PT ro ru sk sl sq sr sv tg th tr uk uz vi zh_CN zh_TW # ---------------------------------------------------------------------------- # Logic for catalogs updating follows # (shamelessly stolen from wxWidgets makefile): # ---------------------------------------------------------------------------- # the programs we use (TODO: use configure to detect them) MSGFMT = msgfmt --verbose --check MSGMERGE = msgmerge XGETTEXT = xgettext XARGS = xargs # common xgettext args: C++ syntax, use the specified macro names as markers XGETTEXT_ARGS = -C -k_ -kwxGetTranslation -kwxTRANSLATE -kwxPLURAL:1,2 -F -j \ --add-comments=TRANSLATORS \ --from-code=UTF-8 \ --package-name=Poedit --package-version=$(PACKAGE_SHORT_VERSION) \ --msgid-bugs-address=help@poedit.net all: all-am .SUFFIXES: $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign locales/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign locales/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: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): 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 $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$(top_distdir)" distdir="$(distdir)" \ dist-hook check-am: all-am check: check-am all-am: Makefile installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-data-local install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-local .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic cscopelist-am \ ctags-am dist-hook distclean distclean-generic distdir dvi \ dvi-am html html-am info info-am install install-am \ install-data install-data-am install-data-local install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-generic pdf pdf-am ps ps-am tags-am uninstall \ uninstall-am uninstall-local install-data-local: install-poedit-catalogs install-poedit-catalogs: for i in $(POEDIT_LINGUAS) ; do \ $(mkinstalldirs) $(DESTDIR)$(localedir)/$$i/LC_MESSAGES ; \ $(INSTALL_DATA) $(srcdir)/$$i.mo $(DESTDIR)$(localedir)/$$i/LC_MESSAGES/poedit.mo ; \ done uninstall-local: rm -rf $(DESTDIR)$(localedir)/*/LC_MESSAGES/poedit.mo # implicit rules %.mo: %.po $(MSGFMT) -o $@ $< # a PO file must be updated from poedit.pot include new translations %.po: $(srcdir)/poedit.pot if [ -f $@ ]; then $(MSGMERGE) --previous $@ $(srcdir)/poedit.pot > $@.new && mv $@.new $@; else cp $(srcdir)/poedit.pot $@; fi $(srcdir)/sr_RS@latin.po: $(srcdir)/sr.po recode-sr-latin <$< >$@ $(srcdir)/poedit.pot: touch $@ (cd $(srcdir) ; find ../src -name "*.h" | $(XARGS) $(XGETTEXT) $(XGETTEXT_ARGS) -o poedit.pot) (cd $(srcdir) ; find ../src -name "*.cpp" | $(XARGS) $(XGETTEXT) $(XGETTEXT_ARGS) -o poedit.pot) (cd $(srcdir) ; $(WXRC) --gettext ../src/resources/*.xrc | $(XGETTEXT) $(XGETTEXT_ARGS) -o poedit.pot -) allpo: force-update @-for t in $(POEDIT_LINGUAS); do $(MAKE) $(srcdir)/$$t.po; done allmo: @for t in $(POEDIT_LINGUAS); do $(MAKE) $(srcdir)/$$t.mo; done force-update: $(RM) $(srcdir)/poedit.pot # print out the percentage of the translated strings stats: @for i in $(POEDIT_LINGUAS); do \ x=`$(MSGFMT) -o /dev/null "$(srcdir)/$$i.po" 2>&1 | sed -e 's/[,\.]//g' \ -e 's/\([0-9]\+\) translated messages\?/TR=\1/' \ -e 's/\([0-9]\+\) fuzzy translations\?/FZ=\1/' \ -e 's/\([0-9]\+\) untranslated messages\?/UT=\1/'`; \ TR=0 FZ=0 UT=0; \ eval $$x; \ TOTAL=`expr $$TR + $$FZ + $$UT`; \ echo "\"$$i\" => \"`expr 100 "*" $$TR / $$TOTAL`\", /* $$TOTAL strings */"; \ done #echo "$$i.po `expr 100 "*" $$TR / $$TOTAL`% of $$TOTAL strings"; dist-hook: allmo cp -a $(srcdir)/*.pot $(srcdir)/*.po $(srcdir)/*.mo $(distdir) .PHONY: allpo allmo force-update stats FORCE # 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: poedit-2.0.6/locales/ru.mo0000664000372000037200000017574613230132042012343 00000000000000P%1 1 11<11J 2gW2 22 22 222 3333%3+333B3Q3W3]3f3z333333333333 3 44 4)4 04=4M4c4y44444444445 5(5D5Y5n55555555 6 '6:36:n6 666 6 666 6 7 #707?7O7c7~77777 71898'>8f88 8878689)=9g9 l9]w99A9I*:t:{:; ;;";:; U;`;.h;;;;;;;;<*<F<#[<<<<<<<<(<(=7= R=s=|== ==/= = >>#>9>L>b>2>>>>> ?)???????@@@ 2@?@R@Ee@"@?@ AA*.A YAfAyAK~A"A5A#B)BHAH HHI 'IHI PI ]IiI"nI;I(IIJ&J 5J ?JMJjJ ~JJJJJ JJK:K PK<^K.KKKKLL*%LPLVLgL xL LLJMNMgM MMMMM#MM'M$N7DN$|N%NNNNNNOOOO O2O P#P9PNP]PlPtP|PPPPPPPPQQQnQERZR>aR RRRR@RS-T~R~d~x~~~~O~O222"" .6&;#b*;,Y2Y'/Wv''+0'O8w1A>?A~$M7߅5McTrZdžQ"]t ҇݇A҈f > K[ mUz=Ћ /E>!&&͌%.I#]5F9B89{+%.LT[T9<?|;0А <"k_ˑE0AEr0U^?3(ғ(9$^s6<8N83ѕ#8 T-`-_7_T&̗dX&p=7Ru ș,ԙ&&7%^)%̚*G"e7Dƛ E՜B^TJ/3Ϟ5 9FM&m/Bğd9l)РHMLBHݡ&*/LZ S] u !(/" 6 ALh%% Фޤ %%;a q~(,ץ7<+C&o"$.ާ !" DP+aN,ܨ $(: c%m?#ө;/Dk#Ԫ }x_&@"7W._.%mq))ԯEE2x((<9eI[TEN5!$FjO5%%,DOq,ߵ $+$Pu 008#W{63G {Cù޹3ݺ0nd:"½;ؾU,GGB0U 0 & 5CTizN )04e2 ERe!'"9ODk6$$1Vls,:02$@W,0RIe  IJN-/,<$-a,<-/'W-Dr1"9/T9/)#+*' CPgU++F:r';#,:PNm`M[ $),dx\f0wJDohwMd@Q8EE~JOX_c=jA6x`_gV:W (8!J8l!;* "5HF!CqR(($&;b%w$Hz&3S!r^8%0)Cm<$(-Rz _I-)HWR)HflCD}],6 9BW6tC3H>C'# )h?*Kq#-0^aG2zFYblx&2LADZ.EwPi=Ab[kv @4uh~ uL@|pnf.nTN? QI2:qOKcajd F!p ]U>T+rXi=J%Vxz51^s4 NH/F"8/XJ`om #UwQk :Gs$ 8jL!~I1,(<D-9B>|;$H(E?g<y!dYgIo \ <eN+rM5&cM5 :"K-A+EmZ7C"603B $%RfRVeyOG*S@ M,4}_{O%W91J)S[`' 7)v &;*{(l_.03=\7P8/t';P (modified) (unsaved)%d entry%d entries%d entry was pre-translated.%d entries were pre-translated.%d error%d errors%d issue with the translation found.%d issues with the translation found.%i line of file “%s” was not loaded correctly.%i lines of file “%s” were not loaded correctly.%s Format%s Preferences%s format&About&About Poedit&Apply&Back&Bookmarks&Cancel&Clear&Close&Copy&Delete&Done and Next&Done and next&Edit&File&Find…&GNU gettext Manual&GNU gettext manual&Go&Group By Context&Group by context&Help&New&New…&Next >&Next Translation&Next translation&No&OK&Online Help&Online help&Open...&Open…&Paste&Preferences&Preferences…&Previous Translation&Previous translation&Properties…&Purge Deleted Translations&Purge deleted translations&Quit&Redo&Replace&Save&Save as&Show References&Show references&Undo&Untranslated Entries First&Untranslated entries first&Update from Sources&Update from sources&Validate Translations&Validate translations&View&Yes(0 new, 0 obsolete)(Learn more about GNU gettext)(New: %i, obsolete: %i)(Use default language)(requires Windows 8 or newer)< &PreviousDrag and Drop Folders Here or use the + buttonDrag and drop folders here or use the + buttonAbout %sAccountsAdd CommentAdd Files…Add Folders…Add Wildcard…Add commentAdd directory to the listAdd files…Add folders…Add wildcard…Additional keywordsAdditional xgettext flags:AdvancedAdvanced Extraction Settings…Advanced extraction settingsAdvanced extraction settings…All Translation FilesAll commentsAlso use default keywords for supported languagesAlt+Always change focus to text input fieldAn item in input files list:An item in keywords list:AppearanceApplyAre you sure you want to delete the “%s” extractor?Are you sure you want to reset the translation memory?Automatically check for updatesAutomatically compile MO file when savingBackBase path:Beta versions contain the latest new features and improvements, but may be a bit less stable.Bring All to FrontBroken catalog file: plural form msgstr used without msgid_pluralBroken catalog file: singular form msgstr used together with msgid_pluralBrowseBy default, inaccurate results are filled in as well and marked as needing work. Check this option to only include accurate matches.C&atalogC&learCancelCannot create temporary directory.Cannot execute program: %sCapitalizeCatalogCatalog modified. Do you want to save changes?Catalog propertiesCatalogs &ManagerCatalogs &managerCatalogs ManagerChange UI languageCharset:Check Document NowCheck Grammar With SpellingCheck Spelling While TypingCheck for Updates…Check for errors in the translationCheck for updates…Check spellingClearClear TranslationClear the commentClear translationCloseCollaborate on a Translation with OthersCollaborate on a translation with othersCollecting source files…Command to extract translations:Comment:Comments prefixed with:Compile to MO…Compile to…Compiled Translation FilesConfigure source code extraction in Properties.ConfirmationCopyCopy From SingularCopy from Source TextCopy from singularCopy from source textCorrect Spelling AutomaticallyCouldn’t load file %s, it is probably corrupted.Couldn’t save file %s.Create New TranslationCreate new translationCreate new translations projectCrowdin errorCrowdin is an online localization management platform and collaborative translation tool. Poedit can seamlessly sync PO files managed at Crowdin.Ctrl+Cu&tCustom Extractors:Custom extractors:CutDatabase size on disk:DeleteDelete extractorDelete the projectDirectories:Display Entry &IDsDisplay entry &IDsDo you really want to do mass update of all catalogs in this project?Do you want to delete the project?Do you want to remove all translations that are no longer used?Don’t SaveDon’t Show AgainDon’t mark exact matches as needing workDon’t saveDon’t show againDownDownload a file from Crowdin project, translate and sync your changes back.Downloading latest translations…Downloading translations is disabled in this project.E&xitE&xport as HTML…EditEdit &CommentEdit &commentEdit CommentEdit a TranslationEdit a translationEdit commentEdit projectEdit the projectEditingEdit…Email:EnterEnter Full ScreenEntries in the catalog are probably incorrect.Entries in this catalog have different plural forms count from what catalog’s Plural-Forms header saysEntries with Errors FirstEntries with errors firstEntries with errors were marked in red in the list. Details of the error will be shown when you select such an entry.Error loading message catalog file “%s”.Error opening fileError opening file %s!Error saving catalogErrorsEverythingExcluded pathsExport as…Extract from sourcesExtract notes for translators from:Extract text from source files in the following directories:Extracting translatable strings…Extractor setupExtractorsFailed command: %sFailed to communicate with Poedit process.Failed to load extracted catalog.Failed to merge gettext catalogs.Failed to update translation memory: %sFileFile “%s” doesn’t exist.File “%s” is not a message catalog.File “%s” is read-only and cannot be saved. Please save it under different name.File:Finalizing…FindFind NextFind PreviousFind and Replace…Find in commentsFind in source textsFind in translationsFind nextFind previousFix LanguageFix languageFix the HeaderFix the headerForm %iFrequentGNU gettextGeneralGo to Bookmark %iGo to bookmark %iHTML FilesHelpHide %sHide OthersHide SidebarHide Status BarHide this notification messageIDIf you continue with purging, all translations marked as deleted will be permanently removed. You will have to translate them again if they are added back in the future.Ignore caseImporting translations…Include beta versionsInformation about the translatorInstallInvalid fileInvocation:KeepLanguage Code or Name (e.g. en_GB)Language of the translation is the same as source language.Language of the translation isn’t set.Language of the translation:Language selectionLanguage team:Language:Last modifiedLearn About Gettext KeywordsLearn From Files…Learn MoreLearn More About CrowdinLearn about gettext keywordsLearn about plural formsLearn from files…Learn moreLearn more about CrowdinLeftLine %d of file “%s” is corrupted (not valid %s data).Line endings:List of extensions separated by semicolons (e.g. *.cpp;*.h):MO files can’t be directly edited in Poedit.Make Lower CaseMake Upper CaseMalformed header: “%s”Merging differences…MinimizeName of the project the translation is forName:Ne&xt UnfinishedNe&xt unfinishedNeeds WorkNeeds workNever let the list of strings take focus. If enabled, you must use Ctrl-arrows for keyboard navigation but you can also type text immediately, without having to press Tab to change focus.NewNew From &POT/PO File…New from &POT/PO file…New stringsNext Plural FormNext plural formNoNo Matches FoundNo entries could be pre-translated.No matches foundNo problems with the translation found.No references for the selected item.No translation projects listed in your Crowdin account.Not all plural forms are translated.Not authorized, please sign in again.Notes for translators:OKObsolete stringsOneOnly enable if you trust the quality of your TM. By default, all matches from the TM are marked as needing work and should be reviewed before use.Only fill in exact matchesOpenOpen Crowdin translationOpen From Crowdin…Open RecentOpen an existing PO file and edit the translation.Open catalogOpen catalog templateOpen from Crowdin…Open in EditorOpen in editorOpen...Open…OptionsOtherP&revious UnfinishedP&revious unfinishedPO TranslationPO Translation FilesPOT Translation TemplatesPOT files are only templates and don’t contain any translations themselves. To make a translation, create a new PO file based on the template.PastePaste and Match StylePathsPlease open and edit the corresponding PO file instead. When you save it, the MO file will be updated as well.Please save the file first. This section cannot be edited until then.PluralPlural forms expression used by the catalog is unusual for %s.Plural forms:Plural:PoeditPoedit - Catalogs managerPoedit automatically fixed invalid content in the file “%s”.Poedit can attempt to fill in new entries from only previous translations in the file or from your entire translation memory. Using the TM won’t be very effective if it’s near-empty, but it will get better as you add more translations to it.Poedit is an easy to use translations editor.Pre-&translate…Pre-translatePre-translatedPre-translated %u stringPre-translated %u stringsPre-translating…Pre-translation automatically finds exact or fuzzy matches for untranslated strings in the translation memory and fills in their translations.PreferencesPreferences...Preferences…Preserve formatting of existing filesPrevious Plural FormPrevious plural formPrevious source text:Project name and version:Project name:Project:PurgePurge deleted translationsQuitQuit %sRecentRedoReferences:RefreshRemaining: %dReplaceReplace &AllReplace &allReplacement stringReplace…Required header Plural-Forms is missing.ResetReset translation memoryResetting the translation memory will irrevocably delete all stored translations from it. You can’t undo this operation.ReviewRightSaveSave &As…Save &as…Save asSave as…Save catalogSave changesSelect &AllSelect AllSelect directorySelect translation files to importSelect your preferred languageServicesSet Bookmark %iSet LanguageSet bookmark %iSet languageShift+Show AllShow SidebarShow Spelling and GrammarShow Status BarShow SubstitutionsShow or hide the sidebarShow sidebarShow status barShow summary after catalog updateSidebarSign InSign OutSign inSign in to CrowdinSign outSigned in as:SingularSingular:Smart Copy/PasteSmart DashesSmart LinksSmart QuotesSort by &File OrderSort by &SourceSort by &TranslationSort by &file orderSort by &sourceSort by &translationSource code charset:Source code extractors are used to find translatable strings in the source code files and extract them so that they can be translated.Source code not available.Source fileSource file occurrence:Source textSource text — %sSource text:Sources KeywordsSources PathsSources keywordsSources pathsSpeechSpellchecking is disabled, because the dictionary for %s isn’t installed.Spelling and GrammarStart SpeakingStop SpeakingStored translations:String to findSubstitutionsSuggestionsSuggestions are not available if the translation language is not set correctly. Other features, such as plural forms, may be affected as well.Supports all programming languages recognized by GNU gettext tools (PHP, C/C++, C#, Perl, Python, Java, JavaScript and others).SyncSync with CrowdinSynchronize the translation with CrowdinSyncingSyncing errorSyncing with %s failed.Syncing with %s…Syncing with Crowdin failed.Syntax error in Plural-Forms header ("%s").TMTake an existing PO file or POT template and create a new translation from it.Take translatable strings from an existing POT template.Team name and email address or URLText ReplacementThe TM doesn’t contain any strings similar to the content of this file. It is only effective for semi-automatic translations after Poedit learns enough from files that you translated manually.The catalog couldn’t be saved in “%s” charset as specified in catalog settings. It was saved in UTF-8 instead and the setting was modified accordingly.The file cannot be compiled into the MO format and used.The file cannot be opened.The file contained duplicate items, which is not allowed in PO files and would prevent the file from being used. Poedit fixed the issue, but you should review translations of any items marked as needing work and correct them if necessary.The file may be either corrupted or in a format not recognized by Poedit.The file was compiled into the MO format, but it will probably not work correctly.The file was saved safely and compiled into the MO format, but it will probably not work correctly.The file was saved safely, but it cannot be compiled into the MO format and used.The file was saved safely.The old source text (before it changed during an update) that the now-inaccurate translation corresponds to.The simplest way to fill this catalog is to update it from a POT:The translation doesn’t start with a space.The translation ends with a newline, but the source text doesn’t.The translation ends with a space, but the source text doesn’t.The translation ends with “%s”, but the source text ends with “%s”.The translation is missing a newline at the end.The translation is missing a space at the end.The translation is ready for use, but %d entry is not translated yet.The translation is ready for use, but %d entries are not translated yet.The translation is ready for use.The translation should end with “%s”.The translation should not end with “%s”.The translation should start as a sentence.The translation should start with a lowercase character.The translation starts with a space, but the source text doesn’t.The translations were marked as needing work, because they may be inaccurate. You should review them for correctness.There are no translations. That’s unusual.There was a problem formatting the file nicely (but it was saved all right).There were errors when loading the catalog. Some data may be missing or corrupted as the result.These settings affect internal formatting of PO files. Adjust them if you have specific requirements e.g. because of version control.These strings are no longer in the sources. Poedit will remove them from the catalog now.These strings were found in the sources but were not in the catalog. Poedit will add them to the catalog now.This catalog has entries with plural forms, but doesn’t have Plural-Forms header configured.This file can only be edited in Crowdin’s web interface.This is the command used to launch the extractor. %o expands to the name of output file, %K to list of keywords, %F to list of input files, %C to charset flag (see below).This project has no files that can be translated in Poedit.This string was found in Poedit’s translation memory.This will be attached to the command line only if source code charset was given. %c expands to charset value.This will be attached to the command line once for each input file. %f expands to the filename.This will be attached to the command line once for each keyword. %k expands to the keyword.TotalTransformationsTranslatable entries aren’t added manually in the Gettext system, but are automatically extracted from source code. This way, they stay up to date and accurate. Translators typically use PO template files (POTs) prepared for them by the developer.Translated: %d of %d (%d %%)Translation LanguageTranslation MemoryTranslation Needs &WorkTranslation PropertiesTranslation needs &workTranslation propertiesTranslation suggestions:Translation — %sTranslation:Translations couldn’t be updated from the source code, because no code was found in the location specified in the catalog’s Properties.TwoUTF-8 (recommended)UndoUnhandled exception occurred: %sUnix (recommended)UntransUpUpdateUpdate allUpdate all catalogs in the projectUpdate catalog - synchronize it with sourcesUpdate from &POT File…Update from &POT file…Update from POTUpdate summaryUpdatesUpdating catalogUpdating failedUpdating the catalog failed. Click on 'Details >>' for details.Updating user information…Uploading translations…Use custom expressionUse custom list font:Use custom text fields font:Use default rules for this languageUse these keywords (function names) to recognize translatable strings in source files:Use translation memoryValidateValidation resultsVersion %sWaiting for authentication…Welcome to PoeditWhat is Crowdin?When updating from sourcesWhole words onlyWindowWindowsWrap aroundWrap at:YesYou can also extract translatable strings directly from the source code:You can’t drop more than one file on Poedit window.You must restart Poedit for this change to take effect.Your NameYour changes will be lost if you don’t save them.Your name and email address are only used to set the Last-Translator header of GNU gettext files.ZeroZoomaltctrldon’t delete temporary files (for debugging)e.g. nplurals=2; plural=(n > 1);fuzzy match within the filego to item at given line numberhandle a poedit:// URIpre-translate from TMshiftunknown languageyour_email@example.com“%s” is not a valid POT file.Project-Id-Version: poedit Report-Msgid-Bugs-To: help@poedit.net POT-Creation-Date: 2017-12-05 15:52+0100 PO-Revision-Date: 2017-12-05 09:49-0500 Last-Translator: vslavik Language-Team: Russian Language: ru_RU MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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); X-Generator: crowdin.com X-Crowdin-Project: poedit X-Crowdin-Language: ru X-Crowdin-File: /locales/poedit.pot (изменён) (не сохранён)%d запись%d записи%d записей%d строка была заполнена предварительным переводом.%d строки были заполнены предварительным переводом.%d строк были заполнены предварительным переводом.%d ошибка%d ошибки%d ошибокВ переводе найдена %d проблема.В переводе найдены %d проблемы.В переводе найдено %d проблем.%i строка файла "%s" не была корректно загружена.%i строк файла "%s" не была корректно загружено.%i строк файла "%s" не было корректно загружено.%s форматПараметры %s%s формат&О программе&Сведения о программе PoeditПрименитьНазадЗак&ладкиОтменаОчистить&Закрыть&Копировать&Удалить&Закончить и перейти к следующему&Закончить и перейти к следующему&Правка&Файл&Найти…&Руководство по GNU gettext&Руководство по GNU gettext&Перейти&Группировать по контексту&Группировать по контексту&Справка&СоздатьСоздать…&Следующий >Следующий переводСледующий переводНет&ОК&Справка в интернете&Справка в интернете&Открыть...&Открыть…&Вставить&Параметры&Параметры…Предыдущий переводПредыдущий перевод&Свойства…&Уничтожить удалённые переводы&Уничтожить удалённые переводыВыход&Повторить&Заменить&СохранитьСохранить как&Показать ссылки&Показать ссылки&ОтменитьПоказывать &непереведённые записи в началеПоказывать &непереведённые записи в начале&Обновить из исходного кода&Обновить из исходного кода&Проверить перевод&Проверить перевод&ВидДа(0 новых, 0 устаревших)(Подробнее о GNU gettext)(Новых: %i, устаревших: %i)(Использовать язык по умолчанию)(требует Windows 8 или новее)< &ПредыдущийПеретащите папки сюда или нажмите кнопку +Перетащите папки сюда или нажмите кнопку +<без имени>О программе %sУчетные записиДобавить комментарийДобавить файлы…Добавить папки…Добавить по шаблону…Добавить комментарийДобавить папку в списокДобавить файлы…Добавить папки…Добавить по шаблону…Дополнительные ключевые словаДополнительные флаги xgettext:ДополнительноРасширенные настройки извлечения…Расширенные настройки извлеченияРасширенные настройки извлечения…Все файлы переводовВсе комментарииТакже использовать ключевые слова по умолчанию для поддерживаемых языковAlt+Всегда переключаться на поле ввода текстаПункт в списке входных файлов:Пункт в списке ключевых слов:Внешний видПринятьВы уверены, что хотите удалить экстрактор «%s»?Вы уверены, что хотите очистить память переводов?Автоматически проверять наличие обновленийАвтоматически компилировать файл MO при сохраненииНазадБазовый путь:Бета-версии содержат новейшие функции и улучшения, но могут быть менее стабильными.Поместить все окна на передний планОшибка в файле каталога: форма множественного числа msgstr использована без msgid_pluralОшибка в файле каталога: форма единственного числа msgstr использована вместе с msgid_pluralОбзорПо умолчанию не полностью совпадающие результаты также будут заполнены и помечены как требующие доработки. Отметьте этот вариант, чтобы заполнять только полные совпадения.&КаталогО&чиститьОтменаНе удаётся создать папку для временных файлов.Не удаётся выполнить программу: %sС заглавной буквыКаталогКаталог изменён. Сохранить изменения?Свойства каталога&Диспетчер каталогов&Диспетчер каталоговДиспетчер каталоговИзменить язык интерфейсаКодировка:Проверить документПроверять также и грамматикуПроверять правописание во время вводаПроверить наличие обновлений…Проверить наличие ошибок в переводеПроверить наличие обновлений…Проверять правописаниеЯсноУдалить переводУдалить комментарийУдалить переводЗакрытьПереводить совместно с другими переводчикамиПереводить совместно с другими переводчикамиСбор данных в исходных файлах…Команда для извлечения перевода:Комментарий:Из комментариев, начинающихся с:Компилировать в формат MO…Компилировать в…Скомпилированные файлы переводаНастройте извлечение исходного кода в разделе «Свойства».ПодтверждениеКопироватьКопировать форму единственного числаКопировать исходный текстКопировать форму единственного числаКопировать исходный текстАвтоматически исправлять ошибки правописанияНе удалось загрузить файл %s. Возможно, он повреждён.Не удалось сохранить файл %s.Создать новый переводСоздать новый переводСоздать новый проект переводовОшибка CrowdinCrowdin — это онлайн-платформа локализации и совместного перевода. Poedit может синхронизировать PO-файлы с Crowdin.Ctrl+Выреза&тьПользовательские экстракторы:Пользовательские экстракторы:ВырезатьРазмер базы данных на диске:УдалитьУдалить экстракторУдалить проектПапки:Показывать &номера строкПоказывать &номера строкДействительно обновить все каталоги в этом проекте?Действительно удалить проект?Действительно удалить все неиспользуемые переводы?Не сохранятьБольше не показыватьНе помечать полные совпадения как требующие доработкиНе сохранятьБольше не показыватьСтрелка внизСкачать файл из проекта Crowdin, перевести его и выгрузить изменения обратно.Загружаются последние переводы…Загрузка переводов отключена в этом проекте.В&ыходЭ&кспортировать как HTML…ПравитьПравить &комментарийПравить &комментарийПравить комментарийРедактировать переводПравка переводаПравить комментарийПравка проектаПравить проектРедактированиеРедактировать…Электронная почта:EnterПерейти в полноэкранный режимЭлементы каталога, возможно, неверны.Записи в этом каталоге имеют количество форм множественного числа, отличное от указанного в заголовке Plural-FormsПоказывать записи с ошибками в началеСперва отображать записи с ошибкамиЗаписи с ошибками были выделены в списке красным цветом. Если выбрать такую запись, будут показаны подробные сведения об ошибке.Ошибка загрузки файла каталога сообщений «%s».Ошибка при открытии файлаНе удалось открыть файл «%s»!Не удалось сохранить каталогОшибкиВсёИсключенные путиЭкспортировать как…Извлечь из исходного кодаИзвлекать пометки для переводчиков:Извлекать текст из исходных файлов в следующих папках:Извлечение переводимых строк…Настройка экстрактораЭкстракторыСбой команды: %sНе удалось подключиться к процессу Poedit.Не удалось загрузить извлечённый каталог.Не удалось объединить каталоги gettext.Не удалось обновить память переводов: %sФайлФайл «%s» не существует.Файл «%s» не является каталогом сообщений.Файл «%s» доступен только для чтения, и его нельзя сохранить. Сохраните файл под другим именем.Файл:Завершение…ИскатьДалееНазадНайти и заменить…Искать в комментарияхИскать в исходных текстахИскать в переводахДалееНазадИсправить языкИсправить языкИсправить заголовокИсправить заголовокФорма %iЧасто вызываемыеGNU gettextОбщееПерейти к закладке %iПерейти к закладке %iФайлы HTMLПомощьСкрыть %sСкрыть остальноеСкрыть боковую панельСкрыть строку состоянияНе показывать это уведомлениеКодЕсли продолжить, то все переводы, помеченные как удалённые, будут безвозвратно удалены. Если они будут повторно добавлены в будущем, их придётся заново переводить.Не учитывать регистрИмпорт переводов…Включая бета-версииИнформация о переводчикеУстановитьНедопустимый файлВызов:ОставитьКод языка (например, ru_RU)Язык перевода совпадает с исходным языком.Язык перевода не указан.Язык перевода:Выбор языкаКоманда переводчиков:Язык:Последнее изменениеПодробности о ключевых словах GettextСобрать из файлов…Узнать большеПодробнее о CrowdinПодробнее о ключевых словах gettextУзнать о формах множественного числаСобрать из файлов…ПодробнееПодробнее о CrowdinВлевоСтрока %d файла «%s» повреждена (недопустимая последовательность в %s).Окончания строк:Список расширений, разделённых точкой с запятой (например, *.cpp; *.h):Файлы MO нельзя редактировать непосредственно в Poedit.СтрочныеПрописныеНедопустимый формат заголовка: «%s»Слияние различий…СвернутьНазвание проекта перевода дляИмя:С&ледующий незаконченныйС&ледующий незаконченныйТребуется доработкаТребует проверкиНе фокусироваться на списке строк. Если включено, для перемещения с помощью клавиатуры необходимо нажимать Ctrl+стрелки, но при этом можно вводить текст немедленно, без переключения фокуса клавишей Tab.СоздатьСоздать из файла &POT/PO…Создать из &POT/PO файла…Новые строкиСледующая форма множественного числаСледующая форма множественного числаНетСовпадений не найденоСтроки, которые можно было бы заполнить предварительным переводом, отсутствуют.Совпадений не найденоНе найдено проблем с переводом.Нет упоминаний для выбранного элемента.В вашей учетной записи Crowdin нет проектов перевода.Не все формы множественного числа переведены.Не авторизовано, пожалуйста войдите снова.Примечания для переводчиков:ОКУстаревшие строкиОдинВключите это только если вы уверены в качестве вашей памяти переводов. По умолчанию все совпадения из памяти переводов отмечаются как требующие доработки и подлежат проверке перед использованием.Только при точном совпаденииОткрытьОткрыть перевод CrowdinОткрыть из Crowdin…Открыть последние файлыОткрыть имеющийся файл PO и править перевод.Открыть каталогОткрыть шаблон каталогаОткрыть из Crowdin…Открыть в редактореОткрыть в редактореОткрыть...Открыть…НастройкиДругоеПр&едыдущий незаконченныйПр&едыдущий незаконченныйФайл перевода POФайлы перевода POШаблоны перевода POTФайлы POT являются шаблонами и не содержат переводов. Чтобы сделать перевод создайте файл PO из шаблона.ВставитьСтиль копирования и вставкиПапкиВместо этого откройте и измените соответствующий файл PO. Когда вы сохраните его, файл MO тоже обновится.Сначала нужно сохранить файл. До этого данный раздел нельзя изменить.МножественноеВыражение формы множественного числа, используемое в каталоге, является необычным для языка %s.Формы множественного числа:Множественное:PoeditPoedit — диспетчер каталоговPoedit автоматически исправил неверное содержимое в файле «%s».Poedit может попытаться заполнить новые строки только предыдущими переводами из этого файла либо из вашей памяти переводов. Использование ПП будет не очень эффективным, если она почти пуста, но будет улучшаться по мере добавления переводов.Poedit — это простой в использовании редактор переводов.Черновой перевод…Черновой переводЧерновой переводНачерно переведена %u строкаНачерно переведены %u строкиНачерно переведено %u строкВыполнение чернового перевода…Предварительный перевод автоматически находит в памяти переводов точные или неточные совпадения для непереведенных строк и заполняет их переводами.НастройкиНастройки...Настройки…Сохранять форматирование существующих файловПредыдущая форма множественного числаПредыдущая форма множественного числаПредыдущая версия исходного текста:Название и версия проекта:Название проекта:Проект:ОчиститьУбрать удалённые переводыВыходВыйти из %sНедавниеВернутьСсылки:ОбновитьОсталось: %dЗаменитьЗаменить &всеЗаменить &всеСтрока заменыЗаменить…Необходимый заголовок Plural-Forms отсутствует.СбросОчистить память переводовОчистка памяти переводов необратимо удалит все переводы, хранящиеся в ней. Вы не сможете отменить эту операцию.ПроверитьВправоСохранитьСохранить &как…Сохранить &как…Сохранить какСохранить как…Сохранить каталогСохранение измененийВыбрать &всеВыбрать всеВыберите папкуВыберите файлы переводов для импортаВыберите предпочитаемый языкСервисыДобавить закладку %iВыбор языкаДобавить закладку %iЗадать языкShift+Показать всёПоказать боковую панельПоказывать ошибки правописанияПоказать строку состоянияПоказывать варианты заменыПоказать или скрыть боковую панельПоказать боковую панельПоказать строку состоянияПоказывать сводку после обновления каталогаБоковая панельВойти в системуВыйтиВойтиВойти в CrowdinВыйтиВы вошли как:ЕдинственноеЕдинственное:Интеллектуальное копирование и вставкаИнтеллектуальная расстановка переносовИнтеллектуальные ссылкиИнтеллектуальные кавычкиСортировать как в &файлеСортировать по &исходному текстуСортировать по &переводуСортировать как в &файлеСортировать по &исходному текстуСортировать по &переводуКодировка исходного кода:Экстракторы используются для поиска переводимых строк в файлах исходного кода и извлекают их так, чтобы их можно было перевести.Исходный код недоступен.Исходный файлВхождение исходного файла:Исходный текстИсходный текст — %sИсходный текст:Ключевые слова исходных файловПапки с исходными файламиКлючевые слова исходных файловПапки с исходными файламиРечьПроверка правописания отключена, так как словарь для языка %s не установлен.Проверка правописанияНачать озвучиваниеОстановить озвучиваниеСохраненных переводов:Искомая строкаЗаменыПредложенияПредложения недоступны, пока не выбран язык перевода. Также не будут поддерживаться формы множественного числа и другие функции.Поддерживает все языки программирования, которые распознают инструменты GNU gettext (PHP, C/C++, C#, Perl, Python, Java, JavaScript и другие).СинхронизацияСинхронизировать с CrowdinСинхронизировать перевод с CrowdinСинхронизацияОшибка синхронизацииНе удалось синхронизировать с %s.Синхронизация с %s…Синхронизация с Crowdin не удалась.Ошибка синтаксиса в заголовке Plural-Forms («%s»).ППСоздать перевод на основе имеющегося файла PO или шаблона POT.Извлечь переводимые строки из имеющегося шаблона POT.Имя команды и адрес электронной почты или URL-адресЗамена текстаПамять переводов не содержит строк, похожих на содержимое этого файла. Она подходит только для полуавтоматического перевода после того, как Poedit соберёт достаточно данных из файлов, которые вы перевели вручную.Каталог не удалось сохранить в кодировке «%s», как указано в его настройках. Вместо этого он был сохранён в кодировке UTF-8 и настройки были соответственно изменены.Не удаётся скомпилировать данный файл в формат MO для дальнейшего использования.Не удается открыть файл.Этот файл содержал в себе повторяющиеся элементы, которые недопустимы в файлах PO и могли бы помешать его использованию. Poedit исправил проблему, но следует просмотреть все переводы, помеченные как требующие доработки, и исправить их при необходимости.Файл, возможно, повреждён или имеет формат, не поддерживаемый Poedit.Файл был скомпилирован в формат MO, но скорее всего не будет правильно работать.Файл был сохранён и скомпилирован в формат MO. Но он может работать некорректно.Файл был сохранён, но его не удалось скомпилировать в формат MO и использовать.Файл был успешно сохранён.Старый исходный текст (до обновления), которому соответствует неточный перевод.Самый простой способ заполнить этот каталог — обновить его из POT:Этот перевод не начинается с пробела.Перевод заканчивается новой строкой, но исходный текст - нет.Перевод заканчивается пробелом, но исходная строка - нет.Перевод заканчивается на “%s”, но исходный текст заканчивается на “%s”.В переводе пропущена новая строка в конце.В переводе пропущен пробел в конце.Перевод готов к использованию, но %d запись ещё не переведена.Перевод готов к использованию, но %d записи ещё не переведено.Перевод готов к использованию, но %d записей ещё не переведено.Перевод готов к использованию.Перевод должен заканчиваться на “%s”.Перевод не должен заканчиваться на “%s”.Перевод должен начинаться как предложение.Перевод должен начинаться со строчного символа.Перевод начинается с пробела, но исходная строка - нет.Переводы были отмечены как требующие доработки. Проверьте их правильность.Перевод отсутствует. Это странно.Возникла проблема при форматировании файла (но он был успешно сохранён).При загрузке каталога возникли ошибки. В результате некоторые данные могут быть повреждены или отсутствовать.Эти параметры влияют на внутреннее форматирование файлов PO. Скорректируйте их, если у вас есть специальные требования, например, если вы пользуетесь системой контроля версий.Этих строк больше нет в исходных файлах. Poedit сейчас удалит их из каталога.Эти строки были найдены в исходных файлах, но они отсутствуют в каталоге. Poedit сейчас добавит их в каталог.В данном каталоге есть записи с формами множественного числа, но нет заголовка Plural-Forms.Этот файл можно править только в веб-интерфейсе Crowdin.Эта команда запускает экстрактор. %o означает название выходного файла, %K — список ключевых слов, %F — список входных файлов, %C — кодировку (см. ниже).В этом проекте нет файлов, которые можно перевести в Poedit.Эта строка была найдена в памяти переводов Poedit.Это будет добавлено в командную строку, только если была указана кодировка оригинала. %c означает кодировку.Это будет добавлено в командную строку для каждого входного файла. %f означает название файла.Это будет добавлено в командную строку для каждого ключевого слова. %k означает ключевое слово.ВсегоПреобразованияПереводимые записи не добавляются вручную в систему Gettext, а автоматически извлекаются из исходного кода. Таким образом обеспечивается их актуальность и точность. Переводчики обычно работают с PO-файлами (POT-шаблоны), которые подготовил для них разработчик.Переведено: %d из %d (%d %%)Язык переводаПамять переводовПереводы, требующие &доработкиСвойства переводаПереводы, требующие &доработкиСвойства переводаПредлагаемые варианты перевода:Перевод — %sПеревод:Переводы не могут быть обновлены из исходного кода, т.к. исходный код не был найден в папке, указанной в свойствах каталога.ДваUTF-8 (рекомендуется)ОтменитьПроизошло непредвиденное исключение: %sUnix (рекомендуется)Не переведеноСтрелка вверхОбновитьОбновить всёОбновить все каталоги в этом проектеОбновить каталог — синхронизировать его с исходными файламиОбновить из файла &POT…Обновить из файла &POT…Обновить из POT-файлаСводка об обновленииОбновленияОбновление каталогаНе удалось обновитьНе удалось обновить каталог. Нажмите кнопку «Подробности >>» для получения дополнительных сведений.Обновление информации о пользователе…Выгрузка переводов…Пользовательское выражениеИспользовать настраиваемый шрифт для списка:Шрифт полей ввода:Использование правила по умолчанию для этого языкаИскать переводимые строки в исходных файлах по этим ключевым словам (именам функций):Использовать память переводовПроверитьРезультаты проверкиВерсия %sОжидание аутентификации…Добро пожаловать в PoeditЧто такое Crowdin?При обновлении из исходного кодаТолько полные словаОкноWindowsИскать по кругуПеренос:ДаПереводимые строки можно также извлечь непосредственно из исходного кода:В окно Poedit можно перетащить только один файл.Чтобы это изменение вступило в силу, необходимо перезапустить Poedit.Ваше имяВаши изменения будут потеряны, если не сохранить их.Ваше имя и почта будут использоваться только при указании последнего переводчика в заголовках файлов GNU gettext.НольМасштабaltctrlне удалять временные файлы (для отладки)например, nplurals=2; plural=(n > 1);подбирать похожий перевод внутри файлаперейти к элементу с заданным номером строкиоткрывать адреса poedit://переводить начерно из памяти переводовshiftнеизвестный языкvash_email@domain.com«%s» не является корректным POT-файлом.poedit-2.0.6/locales/tg.po0000664000372000037200000017665313230131554012337 00000000000000msgid "" msgstr "" "Project-Id-Version: poedit\n" "Report-Msgid-Bugs-To: help@poedit.net\n" "POT-Creation-Date: 2017-12-05 15:52+0100\n" "PO-Revision-Date: 2017-07-27 03:15-0400\n" "Last-Translator: vslavik \n" "Language-Team: Tajik\n" "Language: tg_TJ\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" "X-Generator: crowdin.com\n" "X-Crowdin-Project: poedit\n" "X-Crowdin-Language: tg\n" "X-Crowdin-File: /locales/poedit.pot\n" msgid "Hide this notification message" msgstr "Хабари огоҳии зеринро пинҳон кунед" msgid "Don’t Show Again" msgstr "Аз нав намоиш надодан" msgid "Don’t show again" msgstr "Аз нав намоиш надодан" #, c-format msgid "(New: %i, obsolete: %i)" msgstr "(Нав: %i, куҳна: %i)" msgid "Updating catalog" msgstr "Навсозии каталог" msgid "Collecting source files…" msgstr "Ҷамъкунии файлҳои манбаъ…" msgid "Extracting translatable strings…" msgstr "Баровардани сатрҳои тарҷумашаванда…" msgid "Failed to load extracted catalog." msgstr "Боркунии файлҳои баровардашуда баргузор нагашт." msgid "Merging differences…" msgstr "Муттаҳидшавии фарқиятҳо…" #, c-format msgid "“%s” is not a valid POT file." msgstr "“%s” файли POT-и боэътимод нест." #, c-format msgid "%i line of file “%s” was not loaded correctly." msgid_plural "%i lines of file “%s” were not loaded correctly." msgstr[0] "%i сатри файли “%s” ба таври дуруст бор нашудааст." msgstr[1] "%i сатри файли “%s” ба таври дуруст бор нашудааст." #, c-format msgid "Line %d of file “%s” is corrupted (not valid %s data)." msgstr "" #, c-format msgid "Malformed header: “%s”" msgstr "" msgid "" "Broken catalog file: singular form msgstr used together with msgid_plural" msgstr "" "Файли тарҷума вайрон шудааст: шакли ҷамъи msgstr бо шакли ҷамъи msgid " "истифода шудааст" msgid "Broken catalog file: plural form msgstr used without msgid_plural" msgstr "" "Файли тарҷума вайрон шудааст: шакли ҷамъи msgstr бе шакли ҷамъи msgid " "истифода шудааст" msgid "" "There were errors when loading the catalog. Some data may be missing or " "corrupted as the result." msgstr "" "Ҳангоми боркунии каталог хато пайдо шуд. Эҳтимол баъзе маълумотҳо гум " "шудаанд ё ҳамчун натиҷа вайрон шудаанд." #, c-format msgid "Couldn’t load file %s, it is probably corrupted." msgstr "" #, c-format msgid "" "File “%s” is read-only and cannot be saved.\n" "Please save it under different name." msgstr "" #, c-format msgid "Couldn’t save file %s." msgstr "" msgid "" "There was a problem formatting the file nicely (but it was saved all right)." msgstr "" "Барои шаклсозии хуби файли зерин мушкилиҳо пайдо шудаанд (аммо он хуб захира " "карда шуд)." #, c-format msgid "" "The catalog couldn’t be saved in “%s” charset as specified in catalog " "settings.\n" "\n" "It was saved in UTF-8 instead and the setting was modified accordingly." msgstr "" msgid "Error saving catalog" msgstr "Захиракунии файл қатъ карда шуд" msgid "PO Translation Files" msgstr "Файлҳои тарҷумавии PO" msgid "POT Translation Templates" msgstr "Қолибҳои тарҷумавии POT" msgid "All Translation Files" msgstr "Ҳамаи файлҳои тарҷума" msgid "(Use default language)" msgstr "(Истифодаи забони асосӣ)" msgid "Select your preferred language" msgstr "Забони дилхоҳро интихоб кунед" msgid "Language selection" msgstr "Интихоби забон" msgid "You must restart Poedit for this change to take effect." msgstr "Барои татбиқ кардани тағйирот, шумо бояд барномаро аз нав оғоз кунед." msgid "Syncing" msgstr "" #. TRANSLATORS: %s is a cloud destination, e.g. "Crowdin" or ftp.wordpress.com etc. #, c-format msgid "Syncing with %s…" msgstr "" #. TRANSLATORS: %s is a cloud destination, e.g. "Crowdin" or ftp.wordpress.com etc. #, c-format msgid "Syncing with %s failed." msgstr "" msgid "Syncing error" msgstr "" msgid "Downloading translations is disabled in this project." msgstr "Боргирии тарҷумаҳо барои ин лоиҳа ғайрифаъол шуд." msgid "Not authorized, please sign in again." msgstr "Ворид нашуд, лутфан аз нав ворид шавед." msgid "" "Crowdin is an online localization management platform and collaborative " "translation tool. Poedit can seamlessly sync PO files managed at Crowdin." msgstr "" "Crowdin абзори тарҷумаҳои онлайни муштрак ва платформаи идоракунии " "маҳаллисозӣ мебошад. Poedit метавонад файлҳои PO-и идорашавандаро бо Crowdin " "ҳамвор ҳамоҳанг кунад." msgid "Sign In" msgstr "Ворид шудан" msgid "Sign in" msgstr "Ворид шудан" msgid "Sign Out" msgstr "Баромадан" msgid "Sign out" msgstr "Баромадан" msgid "Waiting for authentication…" msgstr "Дар ҳоли интизори санҷиши ҳаққоният…" msgid "Updating user information…" msgstr "Дар ҳоли навсозии маълумоти корбар…" msgid "Signed in as:" msgstr "Ворид шуд ҳамчун:" msgid "Learn More About Crowdin" msgstr "Маълумоти бештар дар бораи Crowdin" msgid "Learn more about Crowdin" msgstr "Маълумоти бештар дар бораи Crowdin" msgid "Sign in to Crowdin" msgstr "Ворид шудан ба Crowdin" msgid "Open Crowdin translation" msgstr "Кушодани тарҷума дар Crowdin" msgid "Project:" msgstr "Лоиҳа:" msgid "Language:" msgstr "Забон:" msgid "File:" msgstr "Файл:" msgid "No translation projects listed in your Crowdin account." msgstr "" "Дар ҳисоби Crowdin-и шумо ягон лоиҳаи тарҷума дар рӯйхат вуҷуд надорад." msgid "This project has no files that can be translated in Poedit." msgstr "" "Ин лоиҳа ягон файле, ки матавонад дар Poedit тарҷума карда шавад, вуҷуд " "надорад." msgid "This file can only be edited in Crowdin’s web interface." msgstr "" "Ин файл метавонад танҳо дар интерфейси веби Crowdin таҳрир карда шавад." msgid "Downloading latest translations…" msgstr "Дар ҳоли боргирии тарҷумаҳои навтарин…" msgid "Syncing with Crowdin failed." msgstr "Ҳамоҳангсозӣ бо Crowdin иҷро нашуд." msgid "Crowdin error" msgstr "Хатои Crowdin" msgid "Uploading translations…" msgstr "Дар ҳоли боркунии тарҷумаҳо…" msgid "&Copy" msgstr "&Нусха бардоштан" msgid "Learn more" msgstr "Маълумоти бештар" msgid "Learn More" msgstr "Маълумоти бештар" msgid "&Help" msgstr "&Кумак" msgid "MO files can’t be directly edited in Poedit." msgstr "Файлҳои MO метавонанд дар Poedit бевосита таҳрир карда шаванд." msgid "Error opening file" msgstr "Хатои кушодани файл" msgid "" "Please open and edit the corresponding PO file instead. When you save it, " "the MO file will be updated as well." msgstr "" "Лутфан, ба ҷояш ягон файли PO-и мувофиқро кушоед ва таҳрир кунед. Вақте ки " "шумо онро захира мекунед, файли MO низ навсозӣ карда мешавад." msgid "don’t delete temporary files (for debugging)" msgstr "" msgid "handle a poedit:// URI" msgstr "коркарди poedit:// URI" msgid "go to item at given line number" msgstr "" msgid "Failed to communicate with Poedit process." msgstr "Алоқа бо раванди Poedit қатъ шуд." #, c-format msgid "Unhandled exception occurred: %s" msgstr "Истиснои иҷронашуда ба амал омад: %s" msgid "Open catalog" msgstr "Кушодани файл" #, c-format msgid "File “%s” doesn’t exist." msgstr "" msgid "Poedit is an easy to use translations editor." msgstr "Барномаи Poedit барои тарҷумаи файлҳо хеле осон аст." msgid "Catalogs Manager" msgstr "Мудири файлҳои тарҷума" msgid "Check for Updates…" msgstr "" msgid "&Edit" msgstr "&Таҳрир" msgid "Undo" msgstr "Ботил сохтан" msgid "Redo" msgstr "Дубора анҷом додан" msgid "Paste and Match Style" msgstr "Гузоштан мувофиқи сабк" msgid "Delete" msgstr "Нест кардан" msgid "Spelling and Grammar" msgstr "Санҷиши имло ва дастури забон" msgid "Show Spelling and Grammar" msgstr "Намоиши санҷиши имло ва дастури забон" msgid "Check Document Now" msgstr "Санҷиши ҳуҷҷат" msgid "Check Spelling While Typing" msgstr "Санҷиши имло ҳангоми навис" msgid "Check Grammar With Spelling" msgstr "Санҷиши имлои тарҷума" msgid "Correct Spelling Automatically" msgstr "Санҷиши имло ба таври худкор" msgid "Substitutions" msgstr "Ивазкуниҳо" msgid "Show Substitutions" msgstr "Намоиши ивазкуниҳо" msgid "Smart Copy/Paste" msgstr "Нусха бардоштан/гузоштани ҳушманд" msgid "Smart Quotes" msgstr "Нохунакҳои ҳушманд" msgid "Smart Dashes" msgstr "Тирегузории ҳушманд" msgid "Smart Links" msgstr "Пайвандҳои ҳушманд" msgid "Text Replacement" msgstr "Ивазкунии матн" msgid "Transformations" msgstr "Табдилдиҳӣ" msgid "Make Upper Case" msgstr "Табдил ба ҳарфҳои хурд" msgid "Make Lower Case" msgstr "Табдил ба ҳарфҳои хурд" msgid "Capitalize" msgstr "Ҳарфҳои калон" msgid "Speech" msgstr "Нутқ" msgid "Start Speaking" msgstr "Оғоз кардани нутқ" msgid "Stop Speaking" msgstr "Манъ кардани нутқ" msgid "&View" msgstr "&Намоиш" msgid "Enter Full Screen" msgstr "Кушодан дар экрани пурра" msgid "Window" msgstr "Равзана" msgid "Minimize" msgstr "Ҳадди ақал сохтан" msgid "Zoom" msgstr "Интихоби андоза" msgid "Bring All to Front" msgstr "Ҳамаро ба пеш гузоред" #. TRANSLATORS:File kind displayed in Finder/Explorer msgid "PO Translation" msgstr "Тарҷумаи PO" msgid "The file cannot be opened." msgstr "Файл кушода намешавад." msgid "Invalid file" msgstr "Файли нодуруст" msgid "" "The file may be either corrupted or in a format not recognized by Poedit." msgstr "" "Эҳтимол аст, ки файл вайрон шудааст ё дар формате мебошад, ки бо Poedit " "дастгирӣ намешавад." msgid "You can’t drop more than one file on Poedit window." msgstr "" #, c-format msgid "File “%s” is not a message catalog." msgstr "" msgid "Poedit" msgstr "Барномаи Poedit" msgid "&File" msgstr "&Файл" msgid "&Go" msgstr "&Гузаштан" #. TRANSLATORS: %s is language name in its basic form (as you #. would see e.g. in a list of supported languages). You may need #. to rephrase it, e.g. to an equivalent of "for language %s". #, c-format msgid "" "Spellchecking is disabled, because the dictionary for %s isn’t installed." msgstr "Тафтиши имло ғайрифаъол аст, зеро ки луғат барои %s насб нашудааст." msgid "Install" msgstr "Насб кардан" msgid "Catalog modified. Do you want to save changes?" msgstr "Файли тарҷума тағйир ёфт. Оё шумо мехоҳед, ки тағйиротро захира кунед?" msgid "Save changes" msgstr "Захира кардани тағйирот" msgid "Your changes will be lost if you don’t save them." msgstr "" msgid "Save" msgstr "Захира кардан" msgid "Don’t save" msgstr "" msgid "Don’t Save" msgstr "" msgid "Save as…" msgstr "" msgid "Compile to…" msgstr "" msgid "Compiled Translation Files" msgstr "Файлҳои тарҷумавии таҳияшуда" msgid "Export as…" msgstr "" msgid "HTML Files" msgstr "Файлҳои HTML" msgid "Open catalog template" msgstr "Кушодани қолиби файл" msgid "Source code not available." msgstr "Рамзи барнома дастнорас аст." msgid "Updating failed" msgstr "Навсозӣ иҷро нашуд" msgid "" "Translations couldn’t be updated from the source code, because no code was " "found in the location specified in the catalog’s Properties." msgstr "" "Тарҷумаҳо аз рамзи манбаъ навсозӣ карда намешаванд, зеро ки ягон рамз дар " "макони муайяншуда дар хусусиятҳои файл ёфт нашуд." msgid "Entries in the catalog are probably incorrect." msgstr "Вурудҳои файл эҳтимол нодуруст ҳастанд." msgid "Updating the catalog failed. Click on 'Details >>' for details." msgstr "" "Навсозии файл қатъ карда шуд. Барои маълумот, тугмаи 'Тафсилот >>' -ро пашх " "кунед." #, c-format msgid "%d issue with the translation found." msgid_plural "%d issues with the translation found." msgstr[0] "%d масъалаи тарҷума пайдо шудааст." msgstr[1] "%d масъалаи тарҷума пайдо шудааст." msgid "Validation results" msgstr "Натиҷаҳои санҷиш" msgid "" "Entries with errors were marked in red in the list. Details of the error " "will be shown when you select such an entry." msgstr "" "Тарҷумаҳои хато бо ранги сурх дар рӯйхат қайд карда шудаанд. Тафсилоти " "хатоҳо бо интихоби сатри тарҷумаи хато намоиш дода мешаванд." msgid "The file was saved safely." msgstr "Файл бо муваффақият захира шудааст." msgid "" "The file was saved safely and compiled into the MO format, but it will " "probably not work correctly." msgstr "" "Файли тарҷумашуда бо муваффақият захира шудаааст ва ба формати МО табдил " "дода шудааст, вале эҳтимолан он дуруст кор намекунад." msgid "" "The file was saved safely, but it cannot be compiled into the MO format and " "used." msgstr "" "Файли шумо бехатар захира шудааст, аммо ба формати МО барои истифода сохта " "намешавад." msgid "" "The file was compiled into the MO format, but it will probably not work " "correctly." msgstr "" "Ин файл ба формати MO табдил шудааст, вале метавонад дуруст кор накунад." msgid "The file cannot be compiled into the MO format and used." msgstr "Файл ба формати MO табдил дода намешавад ва истифода намешавад." msgid "No problems with the translation found." msgstr "Ягон хато дар тарҷума ёфт нашудааст." #, c-format msgid "The translation is ready for use, but %d entry is not translated yet." msgid_plural "" "The translation is ready for use, but %d entries are not translated yet." msgstr[0] "" "Тарҷума барои истифода тайёр аст, вале %d сатр то ҳол тарҷума нашудааст." msgstr[1] "" "Тарҷума барои истифода тайёр аст, вале %d сатр то ҳол тарҷума нашудаанд." msgid "The translation is ready for use." msgstr "Тарҷума барои истифода тайёр аст." #, c-format msgid "Poedit automatically fixed invalid content in the file “%s”." msgstr "Poedit муҳтавои беэътиборро дар файли “%s” ислоҳ кард." msgid "" "The file contained duplicate items, which is not allowed in PO files and " "would prevent the file from being used. Poedit fixed the issue, but you " "should review translations of any items marked as needing work and correct " "them if necessary." msgstr "" "Файл дорои объктҳои якхела мебошад, ки барои файлҳои PO мутобиқат намекунанд " "ва истифодабарии файлро қатъ мекунанд. Poedit мушкилиро ислоҳ кард, вале " "шумо бояд тарҷумаҳои қайдшударо аз назар гузаронед ва дар ҳолати лозимӣ " "онҳоро ислоҳ намоед." msgid "Language of the translation isn’t set." msgstr "" msgid "Set Language" msgstr "Танзими забон" msgid "Set language" msgstr "Интихоби забон" #. TRANSLATORS: This is shown underneath "Language of the translation isn't set (or ...is the same as source language)." msgid "" "Suggestions are not available if the translation language is not set " "correctly. Other features, such as plural forms, may be affected as well." msgstr "" "Агар забони тарҷумаҳо нодуруст танзим карда бошад, пешниҳодҳо дастнорас " "мешаванд. Хусусиятҳои дигар, монанди шакли ҷамъ, метавонанд таъсир расонанд." msgid "Language of the translation is the same as source language." msgstr "Забони тарҷума ва забони манбаъ баробаранд." msgid "Fix Language" msgstr "Ислоҳ кадани забон" msgid "Fix language" msgstr "Ислоҳ кадани забон" msgid "" "This catalog has entries with plural forms, but doesn’t have Plural-Forms " "header configured." msgstr "" msgid "" "Entries in this catalog have different plural forms count from what " "catalog’s Plural-Forms header says" msgstr "" msgid "Required header Plural-Forms is missing." msgstr "Сарлавҳаи шакли ҷамъ лозим аст." #, c-format msgid "Syntax error in Plural-Forms header (\"%s\")." msgstr "Хатои синтаксисӣ дар шакли ҷамъи сарлавҳа (\"%s\")." msgid "Fix the Header" msgstr "Сарварақро ислоҳ кунед" msgid "Fix the header" msgstr "Сарварақро ислоҳ кунед" #. TRANSLATORS: %s is language name in its basic form (as you #. would see e.g. in a list of supported languages). You may need #. to rephrase it, e.g. to an equivalent of "for language %s". #, c-format msgid "Plural forms expression used by the catalog is unusual for %s." msgstr "Шакли ҷамъ барои ибораи истифодашуда бо файл барои %s ғайриоддӣ аст." #. TRANSLATORS: A verb, shown as action button with ""Plural forms expression used by the catalog is unusual for %s.")" msgid "Review" msgstr "Тафтиш" #, c-format msgid "Error loading message catalog file “%s”." msgstr "" #, c-format msgid "Translated: %d of %d (%d %%)" msgstr "%d аз %d (%d %%) тарҷума шуд" #, c-format msgid "Remaining: %d" msgstr "Дар ҳоли ивази номи: %d" #, c-format msgid "%d error" msgid_plural "%d errors" msgstr[0] "%d хато" msgstr[1] "%d хато" #, c-format msgid "%d entry" msgid_plural "%d entries" msgstr[0] "%d вуруд" msgstr[1] "%d вуруд" msgid " (unsaved)" msgstr " (захиранашуда)" msgid " (modified)" msgstr " (тағйирёфта)" #, c-format msgid "Failed to update translation memory: %s" msgstr "Ҳофизаи тарҷума навсозӣ нашуд: %s" msgid "Purge deleted translations" msgstr "Пок кардани тарҷумаҳои нестшуда" msgid "Do you want to remove all translations that are no longer used?" msgstr "" "Оё шумо мехоҳед, ки ҳамаи тарҷумаҳоеро, ки дигар истифода намешаванд, нест " "кунед?" msgid "" "If you continue with purging, all translations marked as deleted will be " "permanently removed. You will have to translate them again if they are added " "back in the future." msgstr "" "Агар тоза карданро идома диҳед, ҳама тарҷумаҳои ҳамчун нест карда, бе " "бозгашт нест мешаванд. Агар онҳо дар оянда баргашта илова шаванд, шумо " "онҳоро дигар тарҷума карда наметавонед." msgid "Keep" msgstr "Нигоҳ доштан" msgid "Purge" msgstr "Поксозӣ" msgid "Copy from source text" msgstr "Нусха бардоштан аз матни сатри аслӣ" msgid "Copy from Source Text" msgstr "Нусха бардоштан аз матни сатри аслӣ" #. TRANSLATORS: This is the key shortcut used in menus on Windows, some languages call them differently #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Ctrl+" msgstr "Ctrl+" msgid "Clear translation" msgstr "Тоза кардани тарҷума" msgid "Clear Translation" msgstr "Тоза кардани тарҷума" msgid "Edit comment" msgstr "Таҳрир кардани шарҳ" msgid "Edit Comment" msgstr "Таҳрир кардани шарҳ" msgid "References:" msgstr "Маълумотнома:" msgid "&Bookmarks" msgstr "&Хатбаракҳо" #. TRANSLATORS: This is the key shortcut used in menus on Windows, some languages call them differently #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Alt+" msgstr "Alt+" #, c-format msgid "Set bookmark %i" msgstr "Танзими хатбараки %i" #, c-format msgid "Go to bookmark %i" msgstr "Гузариш ба хатбараки %i" #, c-format msgid "Set Bookmark %i" msgstr "Танзими хатбараки %i" #, c-format msgid "Go to Bookmark %i" msgstr "Гузариш ба хатбараки %i" msgid "Hide Sidebar" msgstr "Пинҳон кардани навори ҷонибӣ" msgid "Show Sidebar" msgstr "Намоиш додани навори ҷонибӣ" msgid "Hide Status Bar" msgstr "Пинҳон кардани навори вазъият" msgid "Show Status Bar" msgstr "Намоиш додани навори вазъият" msgid "Source text:" msgstr "Матни сатри аслӣ:" msgid "Singular:" msgstr "Шакли танҳо:" msgid "Plural:" msgstr "Шакли ҷамъ:" msgid "Translation:" msgstr "Тарҷума:" msgid "Pre-translated" msgstr "Тарҷумаи пешакӣ" msgid "Needs Work" msgstr "Бозбинӣ лозим аст" #. TRANSLATORS: This indicates that the string's translation isn't final #. and has known problems. For example, it might be machine translated or #. fuzzy matched from an older string. The translation should be short and #. convey this. If it's problematic to translate it, "Needs review" is #. acceptable substitute, but note that the meaning is subtly different: #. "needs review" implies that somebody else should review the string after #. I am done with it (i.e. consider it good), while "needs work" implies I #. need to return to it and finish the translation. msgid "Needs work" msgstr "Бозбинӣ лозим аст" msgid "" "POT files are only templates and don’t contain any translations themselves.\n" "To make a translation, create a new PO file based on the template." msgstr "" "Файлҳои POT танҳо ҳамчун қолибҳо истифода мешаванд ва худаш тарҷумаҳоро дар " "бар намегиранд.\n" "Барои тарҷума кардан, файли PO-и наверо дар асоси қолиб эҷод кунед." msgid "Create New Translation" msgstr "Эҷоди тарҷумаи нав" msgid "Create new translation" msgstr "Аз нав тарҷума кардан" msgid "Everything" msgstr "Ҳама" #, c-format msgid "Form %i" msgstr "Шакли %i" msgid "Singular" msgstr "Шумораи танҳо" msgid "Zero" msgstr "Сифр" msgid "One" msgstr "Як" msgid "Two" msgstr "Ду" msgid "Plural" msgstr "Шумораи ҷамъ" msgid "Other" msgstr "Дигар" #, c-format msgid "%s Format" msgstr "Формати %s" #. TRANSLATORS: %s is replaced with language name, e.g. "PHP" or "C", so "PHP Format" etc." #, c-format msgid "%s format" msgstr "Формати %s" msgid "Source text" msgstr "Матни сатри аслӣ" #, c-format msgid "Translation — %s" msgstr "Тарҷума — %s" msgid "ID" msgstr "Рақам" #, c-format msgid "Source text — %s" msgstr "Матни манбаъ — %s" msgid "unknown language" msgstr "забони номаълум" #, c-format msgid "Failed command: %s" msgstr "Фармони қатъшуда: %s" msgid "Failed to merge gettext catalogs." msgstr "Муттаҳид кардани файлҳои gettext баргузор нагашт." msgid "Source file" msgstr "Файли аслӣ" msgid "Source file occurrence:" msgstr "Рӯйдодҳои файли аслӣ:" msgid "Open in Editor" msgstr "Кушодан дар муҳаррир" msgid "Open in editor" msgstr "Кушодан дар муҳаррир" msgid "No references for the selected item." msgstr "Ягон иқтибос барои объекти интихобшуда нест." #, c-format msgid "Error opening file %s!" msgstr "Хато ҳангоми кушодани файли %s!" msgid "Find" msgstr "Ҷустуҷӯ" msgid "Replace" msgstr "Ҷойгузин кардан" #. TRANSLATORS: Expander in Find window for additional options (case sensitive etc.) msgid "Options" msgstr "Имконот" msgid "Ignore case" msgstr "Рад кардани ҳарфҳои хурду калон" msgid "Wrap around" msgstr "Ҷустуҷӯи даврӣ" msgid "Whole words only" msgstr "Танҳо калимаҳои пурра" msgid "Find in source texts" msgstr "Ёфтан дар матнҳои манбаъ" msgid "Find in translations" msgstr "Ҷустуҷӯ дар тарҷумаҳо" msgid "Find in comments" msgstr "Ҷустуҷӯ дар шарҳҳо" msgid "Close" msgstr "Пӯшидан" msgid "Replace &All" msgstr "" msgid "Replace &all" msgstr "" msgid "&Replace" msgstr "" msgid "< &Previous" msgstr "< &Қаблӣ" msgid "&Next >" msgstr "&Навбатӣ >" msgid "String to find" msgstr "Сатр барои ёфтан" msgid "Replacement string" msgstr "Сатри ҷойгузорӣ" #, c-format msgid "Cannot execute program: %s" msgstr "Барнома иҷро карда намешавад: %s" msgid "Language Code or Name (e.g. en_GB)" msgstr "Рамзи забон ё номи забон (масалан, \"tg\" барои забони тоҷикӣ)" msgid "Translation Language" msgstr "Забони тарҷума" msgid "Language of the translation:" msgstr "Забони тарҷума:" msgid "Poedit - Catalogs manager" msgstr "Мудири файлҳо - Poedit" msgid "Catalog" msgstr "Файли тарҷума" msgid "Total" msgstr "Ҳамагӣ" msgid "Untrans" msgstr "Тарҷуманашуда" msgid "Errors" msgstr "" msgid "Last modified" msgstr "Санаи тағйири охирин" msgid "Select directory" msgstr "Интихоби ҷузвдон" msgid "Directories:" msgstr "Феҳристҳо" msgid "" msgstr "<беном>" msgid "Do you want to delete the project?" msgstr "Оё шумо мехоҳед, ки лоиҳаи зеринро нест кунед?" msgid "Confirmation" msgstr "Тасдиқ" msgid "" "Do you really want to do mass update of\n" "all catalogs in this project?" msgstr "" "Шумо дар ҳақиқат мехоҳед, ки ҳама файлҳои тарҷумаи лоиҳаи зеринро ба якбора " "навсозӣ кунед?" msgid "Information about the translator" msgstr "Маълумот дар бораи тарҷумон" msgid "Name:" msgstr "Ном:" msgid "Your Name" msgstr "Номи шумо" msgid "Email:" msgstr "Почтаи электронӣ:" msgid "your_email@example.com" msgstr "your_email@example.com" msgid "" "Your name and email address are only used to set the Last-Translator header " "of GNU gettext files." msgstr "" "Ном ва почтаи электронии шумо танҳо барои намоиш додани тарҷумони охирин дар " "сарлавҳаҳои файлҳои GNU gettext истифода мешаванд." msgid "Editing" msgstr "Таҳриркунӣ" msgid "Automatically compile MO file when saving" msgstr "Омодасозии файли MO ба таври худкор ҳангоми захиракунӣ" msgid "Show summary after catalog update" msgstr "Намоиш додани хулоса баъд аз навсозии файл" msgid "Check spelling" msgstr "Санҷиши имло" msgid "Always change focus to text input field" msgstr "Доимо тағйир додани маркази диққат ба ҳошияи матнгузорӣ" msgid "" "Never let the list of strings take focus. If enabled, you must use Ctrl-" "arrows for keyboard navigation but you can also type text immediately, " "without having to press Tab to change focus." msgstr "" "Ба рӯйхати сатр ҳаргиз нагузоред, ки маркази диққатро ишғол кунад. Агар " "фаъол бошад, шумо бояд Ctrl-ақрабаки идора кардан аз клавиатура истифода " "баред, аммо шумо инчунин имкони ворид кардани матнро бе зарурияти пахш " "кардани Tab барои тағйироти маркази диққат доред." msgid "Appearance" msgstr "Намуди зоҳирӣ" msgid "Use custom list font:" msgstr "Истифодаи шрифти фармоишӣ:" msgid "Use custom text fields font:" msgstr "Истифодаи шрифти фармоишӣ барои майдонҳои вуруди матн:" msgid "Change UI language" msgstr "Иваз кардани забони интерфейс" #. TRANSLATORS: This is a note appended to "Check spelling" when running on older Windows versions msgid "(requires Windows 8 or newer)" msgstr "(Windows 8 ё версияи навтарро талаб мекунад)" msgid "General" msgstr "Умумӣ" msgid "Use translation memory" msgstr "Истифодаи ҳофизаи тарҷумаҳо" msgid "Learn From Files…" msgstr "" msgid "Learn from files…" msgstr "" #. TRANSLATORS: This is a button that deletes everything in the translation memory (i.e. clears/resets it). msgid "Reset" msgstr "Танзими дубора" #. TRANSLATORS: Followed by "match translations within the file" or "pre-translate from TM" msgid "When updating from sources" msgstr "Ҳангоми навсозӣ аз манбаъҳо" #. TRANSLATORS: Preceded by "When updating from sources" msgid "fuzzy match within the file" msgstr "мувофиқати монанд дар дохили файл" #. TRANSLATORS: Preceded by "When updating from sources" msgid "pre-translate from TM" msgstr "тарҷумаи пешакӣ аз TM" msgid "" "Poedit can attempt to fill in new entries from only previous translations in " "the file or from your entire translation memory. Using the TM won’t be very " "effective if it’s near-empty, but it will get better as you add more " "translations to it." msgstr "" "Poedit метавонад тарҷумаҳои навро танҳо аз тарҷумаҳои пешакӣ аз дохили файл " "ё ин ки аз ҳофизаи тарҷумаҳо пешниҳод кунад. Истифодаи TM (ҳофизаи " "тарҷумаҳо) бефоида аст, агар он холӣ бошад, вале агар шумо ба TM тарҷумаҳои " "зиёдро илова кунед, ҳофизаи тарҷумаҳо ба шумо бисёр самаранокии ҳақиқӣ " "меорад." msgid "Stored translations:" msgstr "Тарҷумаҳои захрашуда:" msgid "Database size on disk:" msgstr "Андозаи пойгоҳи иттилоотӣ дар диск:" msgid "Select translation files to import" msgstr "Интихоби файлҳо барои тарҷума" msgid "Translation Memory" msgstr "Ҳофизаи тарҷума" msgid "Importing translations…" msgstr "" msgid "Finalizing…" msgstr "" msgid "Reset translation memory" msgstr "Дубора танзим кардани ҳофизаи тарҷумаҳо" msgid "Are you sure you want to reset the translation memory?" msgstr "Шумо мутмаин ҳастед, ки мехоҳед ҳофизаи тарҷумаро дубора танзим кунед?" msgid "" "Resetting the translation memory will irrevocably delete all stored " "translations from it. You can’t undo this operation." msgstr "" "Поксозии тарҷумаҳо аз ҳофизаи тарҷумаҳо ҳамаи тарҷумаҳоро бебозгашт нест " "мекунад. Ин амал ботил сохта намешавад." msgid "Cancel" msgstr "Бекор кардан" #. TRANSLATORS: This is abbreviation of "Translation Memory" used in Preferences on macOS. #. Long text looks weird there, too short (like TM) too, but less so. "General" is about ideal #. length there. msgid "TM" msgstr "TM" msgid "" "Source code extractors are used to find translatable strings in the source " "code files and extract them so that they can be translated." msgstr "" "Василаи барориши манбаи рамз барои ёфтани сатрҳои тарҷумашаванда ва " "баровардани онҳо барои тарҷума истифода мешавад." msgid "Custom Extractors:" msgstr "" msgid "Custom extractors:" msgstr "" msgid "Edit…" msgstr "" msgid "GNU gettext" msgstr "" msgid "" "Supports all programming languages recognized by GNU gettext tools (PHP, C/C+" "+, C#, Perl, Python, Java, JavaScript and others)." msgstr "" msgid "Delete extractor" msgstr "Нест кардани василаи барориш" #, c-format msgid "Are you sure you want to delete the “%s” extractor?" msgstr "Шумо мутмаин ҳастед, ки мехоҳед василаи барориши “%s”-ро нест кунед?" msgid "Extractors" msgstr "Василаи барориш" msgid "Accounts" msgstr "Ҳисобҳо" msgid "Automatically check for updates" msgstr "Санҷиши худкори навсозиҳо" msgid "Include beta versions" msgstr "Иловаи версияҳои бета" msgid "" "Beta versions contain the latest new features and improvements, but may be a " "bit less stable." msgstr "" "Версияҳои бета хусусиятҳои нав ва такмилҳоро дар бар мегиранд, вале " "метавонанд каме ноустувор бошанд." msgid "Updates" msgstr "Навсозиҳо" msgid "" "These settings affect internal formatting of PO files. Adjust them if you " "have specific requirements e.g. because of version control." msgstr "" "Танзимоти мазкур ба форматгузории дохирии файлҳои PO таъсир мерасонад. Агар " "шумо талаботи махсус дошта бошед, масалан ба сабаби идоракунии версия, " "онҳоро мос кунед." msgid "Line endings:" msgstr "Анҷоми сатрҳо:" msgid "Unix (recommended)" msgstr "Unix (тавсия мешавад)" msgid "Windows" msgstr "Windows" #. TRANSLATORS: Followed by text control for entering number; wraps text at given width msgid "Wrap at:" msgstr "Гузарондан:" msgid "Preserve formatting of existing files" msgstr "Истифодаи қолаббандӣ аз файлҳои мавҷудбуда" msgid "Advanced" msgstr "Иловагӣ" msgid "Pre-translating…" msgstr "Дар ҳоли тарҷумаи пешакӣ…" #, c-format msgid "Pre-translated %u string" msgid_plural "Pre-translated %u strings" msgstr[0] "" msgstr[1] "" #. TRANSLATORS: This is a somewhat common term describing the action where #. you apply the translation memory and/or machine translation to all of the #. strings you're translating as the first step, followed by correcting, #. improving etc., i.e. actually translating the strings. This may be tricky #. to express in other languages as simply as in English, but please try to #. keep it similarly concise. Please try to avoid, if possible, describing it #. as "auto-translation" and similar, because such terminology would mislead #. some users into thinking it's all that needs to be done (spoken from #. experience). "Pre-translate" nicely expresses that it's only the step done #. *before* actual translation. msgid "Pre-translate" msgstr "Тарҷумаи пешакӣ" msgid "Only fill in exact matches" msgstr "Ворид кардани танҳо мутобиқати аниқ" msgid "" "By default, inaccurate results are filled in as well and marked as needing " "work. Check this option to only include accurate matches." msgstr "" "Ба сурати пешфарз, натиҷаҳои нодуруст ворид карда мешаванд ва ҳамчун " "\"Бозбинӣ лозим аст\" ишора карда мешаванд. Барои ворид кардани танҳо " "мутобиқати дуруст, ин имконро интихоб кунед." msgid "Don’t mark exact matches as needing work" msgstr "Мутобиқатҳои аниқро ҳамчун \"Бозбинӣ лозим аст\" қайд накунед" msgid "" "Only enable if you trust the quality of your TM. By default, all matches " "from the TM are marked as needing work and should be reviewed before use." msgstr "" "Фаъол кунед, танҳо агар ба ТМ-и худ эътимод дошта бошед. Ба сутари пешфарз, " "ҳамаи мутобиқатҳо аз ТМ ҳамчун \"Бозбинӣ лозим аст\" ишора карда мешаванд ва " "бояд пеш аз истифода аз назар гузаронида шаванд." msgid "" "Pre-translation automatically finds exact or fuzzy matches for untranslated " "strings in the translation memory and fills in their translations." msgstr "" "Тарҷумаи пешакӣ мувофиқатҳои аниқ ё монандро аз ҳофизаи тарҷума барои " "сатрҳои тарҷуманашуда ҷустуҷӯ мекунад ва пешниҳод менамояд." #, c-format msgid "%d entry was pre-translated." msgid_plural "%d entries were pre-translated." msgstr[0] "%d сатр пешакӣ тарҷума карда шуд." msgstr[1] "%d сатр пешакӣ тарҷума карда шуд." msgid "" "The translations were marked as needing work, because they may be " "inaccurate. You should review them for correctness." msgstr "" "Тарҷумаҳо ҳамчун \"Бозбини лозим аст\" қайд карда шудаанд, зеро ки онҳо " "метавонанд носаҳеҳ бошанд. Шумо бояд онҳоро барои санҷиши хатоҳо аз назар " "гузаронед." msgid "No entries could be pre-translated." msgstr "Ягон сатр пешакӣ тарҷума карда намешавад." msgid "" "The TM doesn’t contain any strings similar to the content of this file. It " "is only effective for semi-automatic translations after Poedit learns enough " "from files that you translated manually." msgstr "" "Ҳофизаи тарҷумаҳо (TM) ягон пешниҳоди мувофиқро барои сатрҳои ин файл дар " "бар намегирад. TM-и ҷорӣ танҳо тарҷумаҳои ҷузъӣ ба таври худкор пешниҳод " "мекунад, баъд аз оне ки Poedit тарҷумаҳоро аз файлҳои қаблӣ ҷамъ кунад." msgid "" "Drag and Drop Folders Here\n" "\n" "or use the + button" msgstr "" "Ҷузвдонҳоро ба ин ҷо кашида гузоред\n" "\n" "ё тугмаи \"+\" -ро зер кунед" msgid "" "Drag and drop folders here\n" "\n" "or use the + button" msgstr "" "Ҷузвдонҳоро ба ин ҷо кашида гузоред\n" "\n" "ё тугмаи \"+\" -ро зер кунед" msgid "Add Folders…" msgstr "" msgid "Add folders…" msgstr "" msgid "Add Files…" msgstr "" msgid "Add files…" msgstr "" msgid "Add Wildcard…" msgstr "" msgid "Add wildcard…" msgstr "" msgid "Paths" msgstr "Масирҳо" msgid "Excluded paths" msgstr "Масирҳои истисношуда" msgid "Advanced extraction settings" msgstr "" msgid "Extract notes for translators from:" msgstr "" msgid "Comments prefixed with:" msgstr "" msgid "All comments" msgstr "" msgid "Additional xgettext flags:" msgstr "" msgid "Additional keywords" msgstr "Калидвожаҳои иловагӣ" msgid "Name of the project the translation is for" msgstr "Номи лоиҳаи тарҷума барои" msgid "Team name and email address or URL" msgstr "" msgid "e.g. nplurals=2; plural=(n > 1);" msgstr "масалан, nplurals=2; plural=(n > 1);" msgid "UTF-8 (recommended)" msgstr "UTF-8 (тавсия мешавад)" msgid "Please save the file first. This section cannot be edited until then." msgstr "" "Лутфан, аввал файлро захира кунед. То он гоҳ ин қисмат таҳрир карда " "намешавад." msgid "Not all plural forms are translated." msgstr "" msgid "The translation should start as a sentence." msgstr "" msgid "The translation should start with a lowercase character." msgstr "" msgid "The translation doesn’t start with a space." msgstr "" msgid "The translation starts with a space, but the source text doesn’t." msgstr "" msgid "The translation is missing a newline at the end." msgstr "" msgid "The translation ends with a newline, but the source text doesn’t." msgstr "" msgid "The translation is missing a space at the end." msgstr "" msgid "The translation ends with a space, but the source text doesn’t." msgstr "" #, c-format msgid "The translation should end with “%s”." msgstr "" #, c-format msgid "The translation should not end with “%s”." msgstr "" #, c-format msgid "The translation ends with “%s”, but the source text ends with “%s”." msgstr "" msgid "Comment:" msgstr "Шарҳ:" msgid "OK" msgstr "Хуб" msgid "C&lear" msgstr "&Тоза кардан" msgid "Clear the comment" msgstr "Тоза кардани шарҳ" msgid "New" msgstr "Нав" msgid "Create new translations project" msgstr "Эҷод кардани лоиҳаи тарҷумаи нав" msgid "Edit" msgstr "Таҳрир" msgid "Edit the project" msgstr "Таҳрири лоиҳа" msgid "Delete the project" msgstr "Нест кардани лоиҳа" msgid "Update all" msgstr "Ҷадидсозии ҳама" msgid "Update all catalogs in the project" msgstr "Ҳамаи файлҳоро дар ин лоиҳа навсозӣ кунед" msgid "Edit project" msgstr "Таҳрир кардани лоиҳа" msgid "Project name:" msgstr "Номи лоиҳа:" msgid "Browse" msgstr "Тамошо кардан" msgid "Add directory to the list" msgstr "Илова кардани директория ба рӯйхат" msgid "&New…" msgstr "" msgid "New from &POT/PO file…" msgstr "" msgid "New From &POT/PO File…" msgstr "" msgid "&Open…" msgstr "&Кушодан…" msgid "Open Recent" msgstr "Кушодани файлҳои охирин" msgid "Open from Crowdin…" msgstr "Open from Crowdin…" msgid "Open From Crowdin…" msgstr "Open from Crowdin…" msgid "&Close" msgstr "&Пӯшидан" msgid "&Save" msgstr "&Захира кардан" msgid "Save &as…" msgstr "&Захира кардан ҳамчун…" msgid "Save &As…" msgstr "&Захира кардан ҳамчун…" msgid "Compile to MO…" msgstr "Таҳия кардани файли MO…" msgid "E&xport as HTML…" msgstr "&Содир кардан ҳамчун HTML…" msgid "Check for updates…" msgstr "Санҷидани навсозиҳо…" msgid "&Preferences…" msgstr "&Танзимот…" msgid "Catalogs &manager" msgstr "Мудири &файлҳои тарҷума" msgid "Catalogs &Manager" msgstr "Мудири &файлҳои тарҷума" msgid "E&xit" msgstr "&Баромад" msgid "Quit" msgstr "Баромад" msgid "Copy from singular" msgstr "Нусха бардоштан аз шумораи танҳо" msgid "Copy From Singular" msgstr "Нусха бардоштан аз Шумораи танҳо" msgid "Translation needs &work" msgstr "Бозбинии тарҷума &лозим аст" msgid "Translation Needs &Work" msgstr "Бозбинии тарҷума &лозим аст" msgid "Edit &comment" msgstr "&Таҳрир кардани шарҳ" msgid "Edit &Comment" msgstr "&Таҳрир кардани шарҳ" msgid "Suggestions" msgstr "Пешниҳодҳо" msgid "&Find…" msgstr "&Ёфтан…" msgid "Replace…" msgstr "Ҷойгузин кардан…" msgid "Find next" msgstr "Ҷустуҷӯи навбатӣ" msgid "Find previous" msgstr "Ҷустуҷӯи қаблӣ" msgid "Find and Replace…" msgstr "Ёфтан ва ҷойгузин кардан…" msgid "Find Next" msgstr "Ҷустуҷӯи навбатӣ" msgid "Find Previous" msgstr "Ҷустуҷӯи қаблӣ" msgid "&Preferences" msgstr "&Танзими барнома" msgid "Display entry &IDs" msgstr "Намоиши рақамҳои &сартҳо" msgid "Display Entry &IDs" msgstr "Намоиши рақамҳои &сартҳо" msgid "Sort by &file order" msgstr "Аз рӯи &тартиби файлҳо" msgid "Sort by &File Order" msgstr "Аз рӯи &тартиби файлҳо" msgid "Sort by &source" msgstr "Аз рӯи &сатрҳои аслӣ" msgid "Sort by &Source" msgstr "Аз рӯи &сатрҳои аслӣ" msgid "Sort by &translation" msgstr "Аз рӯи &тарҷумаҳо" msgid "Sort by &Translation" msgstr "Аз рӯи &тарҷумаҳо" msgid "&Group by context" msgstr "&Гурӯҳбандӣ аз рӯи қарина" msgid "&Group By Context" msgstr "&Гурӯҳбандӣ аз рӯи қарина" msgid "Entries with errors first" msgstr "Пеш аз ҳама сабтҳоро бо хатоҳо намоиш диҳед" msgid "Entries with Errors First" msgstr "Пеш аз ҳама сабтҳоро бо хатоҳо намоиш диҳед" msgid "&Untranslated entries first" msgstr "&Аввал сатрҳои тарҷуманашуда" msgid "&Untranslated Entries First" msgstr "&Аввал сатрҳои тарҷуманашуда" msgid "&Show references" msgstr "&Намоиши бартариҳо" msgid "&Show References" msgstr "&Намоиши бартариҳо" msgid "Show sidebar" msgstr "Намоиш додани навори ҷонибӣ" msgid "Show status bar" msgstr "Намоиш додани навори вазъият" msgid "C&atalog" msgstr "&Файли тарҷума" msgid "&Update from sources" msgstr "&Навсозӣ кардан аз сатрҳои аслӣ" msgid "&Update from Sources" msgstr "&Навсозӣ кардан аз сатрҳои аслӣ" msgid "Update from &POT file…" msgstr "" msgid "Update from &POT File…" msgstr "" msgid "Sync with Crowdin" msgstr "Ҳамоҳанг кардан бо Crowdin" msgid "Pre-&translate…" msgstr "" msgid "&Purge deleted translations" msgstr "&Пок кардани тарҷумаҳои нестшуда" msgid "&Purge Deleted Translations" msgstr "&Пок кардани тарҷумаҳои нестшуда" msgid "&Validate translations" msgstr "Санҷиши тарҷума" msgid "&Validate Translations" msgstr "&Санҷиши тарҷума" msgid "&Properties…" msgstr "" msgid "&Done and next" msgstr "&Татбиқ кардан ва ба сатри дигар гузарондан" msgid "&Done and Next" msgstr "&Татбиқ кардан ва ба сатри дигар гузарондан" msgid "&Previous translation" msgstr "&Тарҷумаи қаблӣ" msgid "&Previous Translation" msgstr "&Тарҷумаи қаблӣ" msgid "&Next translation" msgstr "&Тарҷумаи навбатӣ" msgid "&Next Translation" msgstr "&Тарҷумаи навбатӣ" msgid "P&revious unfinished" msgstr "&Тарҷуманашудаи пешина" msgid "P&revious Unfinished" msgstr "&Тарҷуманашудаи пешина" msgid "Ne&xt unfinished" msgstr "&Тарҷуманашудаи навбатӣ" msgid "Ne&xt Unfinished" msgstr "&Тарҷуманашудаи навбатӣ" msgid "Previous plural form" msgstr "Шумораи ҷамъи қаблӣ" msgid "Previous Plural Form" msgstr "Шумораи ҷамъи қаблӣ" msgid "Next plural form" msgstr "Шумораи ҷамъи навбатӣ" msgid "Next Plural Form" msgstr "Шумораи ҷамъи навбатӣ" msgid "&Online help" msgstr "&Кумаки онлайн" msgid "&Online Help" msgstr "&Кумаки онлайн" msgid "&GNU gettext manual" msgstr "&Кумаки GNU gettext" msgid "&GNU gettext Manual" msgstr "&Кумаки GNU gettext" msgid "&About Poedit" msgstr "&Дар бораи Poedit" msgid "&About" msgstr "&Дар бораи PoEdit" msgid "Extractor setup" msgstr "Танзими василаи барориш" msgid "List of extensions separated by semicolons (e.g. *.cpp;*.h):" msgstr "" "Рӯйхати дарозкунии муддат бо нуқта-вергулҳо ҷудо карда мешаванд (мисол *.cpp;" "*.h):" msgid "Invocation:" msgstr "Дархост:" msgid "Command to extract translations:" msgstr "Фармон барои баровардани тарҷумаҳо:" msgid "" "This is the command used to launch the extractor.\n" "%o expands to the name of output file, %K to list\n" "of keywords, %F to list of input files,\n" "%C to charset flag (see below)." msgstr "" "Ин фармон барои оғози василаи барориш истифода мешавад.\n" "%o бо номи файли барориш, %K бо рӯйхати калимаҳои\n" "калидӣ, %F бо рӯйхати файлҳои вуруд,\n" "%C бо байрақи маҷмӯаи ҳарфҳо (поёнтар бинед) васеъ карда мешавад." msgid "An item in keywords list:" msgstr "Илова кардани объект ба рӯйхати калидвожаҳо:" msgid "" "This will be attached to the command line once\n" "for each keyword. %k expands to the keyword." msgstr "" "Мазкур ба сатри фармонӣ як бор барои ҳар як\n" "калимаи калидӣ замима карда мешавад.\n" "%k ба калимаи калидӣ васеъ мекунад." msgid "An item in input files list:" msgstr "Объект дар рӯйхати файлҳои вурудӣ:" #, c-format msgid "" "This will be attached to the command line once\n" "for each input file. %f expands to the filename." msgstr "" "Мазкур ба сатри фармонӣ як бор барои ҳар як\n" "файли вурудӣ замима карда мешавад.\n" "%f ба номи файл васеъ мекунад." msgid "Source code charset:" msgstr "Рамзгузории сатрҳои аслӣ:" #, c-format msgid "" "This will be attached to the command line\n" "only if source code charset was given. %c expands to charset value." msgstr "" "Мазкур ба сатри фармонӣ замима карда мешавад.\n" "бо шарте, ки агар рамзгузории сатри аслӣ дода шуда бошад.\n" "%c бо воҳиди рамзгузорӣ иваз карда мешавад." msgid "Catalog properties" msgstr "Хусусиятҳои файли тарҷума" msgid "Project name and version:" msgstr "Номи лоиҳа ва версия:" msgid "Language team:" msgstr "" msgid "Plural forms:" msgstr "" msgid "Use default rules for this language" msgstr "Истифодаи қоидаҳои пешфарз барои ин забон" msgid "Use custom expression" msgstr "Истифодаи ибораҳои шахсӣ" msgid "Learn about plural forms" msgstr "Маълумоти бештар дар бораи шаклҳои ҷамъ" msgid "Charset:" msgstr "Рамзгузорӣ:" msgid "Advanced Extraction Settings…" msgstr "" msgid "Advanced extraction settings…" msgstr "" msgid "Translation Properties" msgstr "Хусусиятҳои тарҷума" msgid "Translation properties" msgstr "Хусусиятҳои тарҷума" msgid "Sources Paths" msgstr "Масирҳои манбаъҳо" msgid "Sources paths" msgstr "Масирҳои сатрҳои аслӣ" msgid "Extract text from source files in the following directories:" msgstr "Баровардани матн аз файлҳои манбаъ дар ҷузвдонҳои зерин:" msgid "Base path:" msgstr "Масири асосӣ:" msgid "Sources Keywords" msgstr "Калидвожаҳои манбаъҳо" msgid "Sources keywords" msgstr "Луғати сатрҳои аслӣ" msgid "" "Use these keywords (function names) to recognize translatable strings\n" "in source files:" msgstr "" "Истифодаи калидвожаҳои зерин (номҳои супориш) барои шинохтани\n" "сатрҳои тарҷумашаванда дар файлҳои манбаъ:" msgid "Also use default keywords for supported languages" msgstr "Инчунин аз калидвожаҳои пешфарз барои забонҳои дастрас истифода баред" msgid "Learn About Gettext Keywords" msgstr "Маълумот дар бораи калидвожаҳои Gettext" msgid "Learn about gettext keywords" msgstr "Маълумоти бештар дар бораи калидвожаҳои gettext" msgid "Update summary" msgstr "Хулосаи навсозӣ" msgid "" "These strings were found in the sources but were not in the catalog.\n" "Poedit will add them to the catalog now." msgstr "" "Сатрҳои зерин дар сатрҳои аслӣ дарёфт шудаанд, аммо дар файл вуҷуд " "надоранд.\n" "Poedit онҳоро ҳоло ба файл илова мекунад." msgid "New strings" msgstr "Сатрҳои нав" msgid "" "These strings are no longer in the sources.\n" "Poedit will remove them from the catalog now." msgstr "" "Сатрҳои зерин дигар дар сатрҳои асосӣ мавҷуд нестанд.\n" "Poedit онҳоро ҳоло аз файл нест мекунад." msgid "Obsolete strings" msgstr "Сатри кӯҳнашуда" msgid "(0 new, 0 obsolete)" msgstr "(0 нав, 0 кӯҳнашуда)" msgid "Open" msgstr "Кушодан" msgid "Save catalog" msgstr "Захира кардани файл" msgid "Validate" msgstr "Санҷиш" msgid "Check for errors in the translation" msgstr "Санҷиши хатогиҳо дар тарҷума" msgid "Update" msgstr "Навсозӣ" msgid "Update catalog - synchronize it with sources" msgstr "Файлро навсозӣ кунед - бо файли аслӣ ҳамоҳанг созед" msgid "Sidebar" msgstr "Навори ҷонибӣ" msgid "Show or hide the sidebar" msgstr "Намоиш додан ё пинҳон кардани навори ҷонибӣ" #. TRANSLATORS: "Previous" as in used in the past, now replaced with newer. msgid "Previous source text:" msgstr "Матни манбаи қаблӣ:" msgid "" "The old source text (before it changed during an update) that the now-" "inaccurate translation corresponds to." msgstr "" "Матни манбаи куҳна (пеш аз тағйир ҳангоми навсозӣ), ки ба тарҷумаҳои носаҳеҳ " "тааллуқ дорад." msgid "Notes for translators:" msgstr "Қайдҳои тарҷумон:" msgid "Add comment" msgstr "Илова кардани шарҳ" msgid "Add Comment" msgstr "Илова кардани шарҳ" msgid "Translation suggestions:" msgstr "Пешниҳодҳои тарҷума:" #. TRANSLATORS: This is shown when no translation suggestions can be found in the TM (Windows). msgid "No matches found" msgstr "Ягон мутобиқат ёфт нашуд" #. TRANSLATORS: This is shown when no translation suggestions can be found in the TM (macOS, Linux). msgid "No Matches Found" msgstr "Ягон мутобиқат ёфт нашуд" msgid "This string was found in Poedit’s translation memory." msgstr "Ин тарҷума аз ҳофизаи тарҷумаҳои Poedit ворид карда шуд." msgid "Cannot create temporary directory." msgstr "Директорияи муваққатӣ эҷод карда нашуд." msgid "Welcome to Poedit" msgstr "Хуш омадед ба Poedit" #. TRANSLATORS: This is version information in about dialog, "%s" will be #. version number when used #, c-format msgid "Version %s" msgstr "Версияи %s" msgid "Edit a Translation" msgstr "Таҳрир кардани тарҷума" msgid "Edit a translation" msgstr "Таҳрир кардани тарҷума" msgid "Open an existing PO file and edit the translation." msgstr "Файли PO-и мавҷудбударо кушоед ва тарҷумаро таҳрир намоед." msgid "" "Take an existing PO file or POT template and create a new translation from " "it." msgstr "" "Файли PO ё қолиби POT-и мавҷудбударо истифода баред ва тарҷумаи навро дар " "асоси он таҳия кунед." msgid "Collaborate on a Translation with Others" msgstr "Бо дигарон якҷоя тарҷума кунед" msgid "Collaborate on a translation with others" msgstr "Бо дигарон якҷоя тарҷума кунед" msgid "" "Download a file from Crowdin project, translate and sync your changes back." msgstr "" "Файлеро аз лоиҳаи Crowdin боргирӣ кунед, тарҷума намоед ва ҳамоҳанг созед." msgid "What is Crowdin?" msgstr "Crowdin чист?" msgid "There are no translations. That’s unusual." msgstr "Ягон тарҷума вуҷуд надорад. Ин ғайриоддӣ аст." msgid "" "Translatable entries aren’t added manually in the Gettext system, but are " "automatically extracted\n" "from source code. This way, they stay up to date and accurate.\n" "Translators typically use PO template files (POTs) prepared for them by the " "developer." msgstr "" msgid "(Learn more about GNU gettext)" msgstr "(Маълумоти муфассал дар бораи GNU gettext)" msgid "The simplest way to fill this catalog is to update it from a POT:" msgstr "Осонтар аст, ки агар шумо ин файлро аз файли POT навсозӣ кунед:" msgid "Update from POT" msgstr "Навсозӣ кардан аз POT" msgid "Take translatable strings from an existing POT template." msgstr "Сатрҳоро барои тарҷума аз қолиби POT-и мавҷудбуда истифода баред." msgid "" "You can also extract translatable strings directly from the source code:" msgstr "" "Шумо инчунин метавонед сатрҳоро барои тарҷума аз рамзи манбъ бевосита " "бароред:" msgid "Extract from sources" msgstr "Баровардан аз манбаҳо" msgid "Configure source code extraction in Properties." msgstr "Баровардани рамзи манбаро дар Танзимот танзим кунед." msgid "Sync" msgstr "Ҳамоҳангсозӣ" msgid "Synchronize the translation with Crowdin" msgstr "Ҳамоҳангсозии тарҷума бо Crowdin" #. TRANSLATORS: This is titlebar of about dialog, "%s" is application name #. ("Poedit" here, but please use "%s") #, c-format msgid "About %s" msgstr "Дар бораи %s" #. TRANSLATORS: Title of the preferences window on Windows and Linux. "%s" is replaced with "Poedit" when running. #, c-format msgid "%s Preferences" msgstr "Хусусиятҳои %s" #. TRANSLATORS: macOS item in app menu msgid "Services" msgstr "Хидматҳо" #. TRANSLATORS: macOS item in app menu, %s is replaced with "Poedit" #, c-format msgid "Hide %s" msgstr "Пинҳон кардани %s" #. TRANSLATORS: macOS item in app menu msgid "Hide Others" msgstr "Дигаронро пинҳон кардан" #. TRANSLATORS: macOS item in app menu msgid "Show All" msgstr "Ҳамаро намоиш додан" #. TRANSLATORS: macOS item in app menu, %s is replaced with "Poedit" #, c-format msgid "Quit %s" msgstr "Пӯшидани %s" #. TRANSLATORS: macOS item in app menu msgid "Preferences…" msgstr "" msgid "Preferences..." msgstr "Танзимот..." #. TRANSLATORS: Title of a category in Windows task menu (right-click icon in taskbar) msgid "Recent" msgstr "Қаблӣ" #. TRANSLATORS: Title of a category in Windows task menu (right-click icon in taskbar) msgid "Frequent" msgstr "Роиҷ" msgid "&Apply" msgstr "&Татбиқ кардан" msgid "Apply" msgstr "Татбиқ кардан" msgid "&Back" msgstr "&Бозгашт" msgid "Back" msgstr "Бозгашт" msgid "&Cancel" msgstr "&Бекор кардан" msgid "&Clear" msgstr "&Пок кардан" msgid "Clear" msgstr "Пок кардан" msgid "Copy" msgstr "Нусха бардоштан" msgid "Cu&t" msgstr "&Буридан" msgid "Cut" msgstr "Буридан" msgid "&Delete" msgstr "&Нест кардан" msgid "&Quit" msgstr "&Баромад" msgid "File" msgstr "Файл" msgid "Help" msgstr "Кумак" msgid "&New" msgstr "&Нав" msgid "&No" msgstr "&Не" msgid "No" msgstr "Не" msgid "&OK" msgstr "&OK" msgid "Open…" msgstr "" msgid "&Open..." msgstr "&Кушодан..." msgid "Open..." msgstr "Кушодан..." msgid "&Paste" msgstr "&Гузоштан" msgid "Paste" msgstr "Гузоштан" msgid "Preferences" msgstr "Хусусиятҳо" msgid "&Redo" msgstr "&Дубора анҷом додан" msgid "Refresh" msgstr "Навсозӣ" msgid "&Save as" msgstr "&Захира кардан ҳамчун" msgid "Save as" msgstr "Захира кардан ҳамчун" msgid "Select &All" msgstr "&Ҳамаро интихоб кардан" msgid "Select All" msgstr "Ҳамаро интихоб кардан" msgid "&Undo" msgstr "&Ботил сохтан" msgid "&Yes" msgstr "&Ҳа" msgid "Yes" msgstr "Ҳа" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Shift+" msgstr "Shift+" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Enter" msgstr "Enter" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Up" msgstr "Боло" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Down" msgstr "Поён" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Left" msgstr "" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Right" msgstr "" #. TRANSLATORS: Keyboard shortcut, must correspond to translation of "Ctrl+" msgid "ctrl" msgstr "ctrl" #. TRANSLATORS: Keyboard shortcut, must correspond to translation of "Alt+" msgid "alt" msgstr "alt" #. TRANSLATORS: Keyboard shortcut, must correspond to translation of "Shift+" msgid "shift" msgstr "shift" poedit-2.0.6/locales/ro.po0000664000372000037200000015337513230131554012341 00000000000000msgid "" msgstr "" "Project-Id-Version: poedit\n" "Report-Msgid-Bugs-To: help@poedit.net\n" "POT-Creation-Date: 2017-12-05 15:52+0100\n" "PO-Revision-Date: 2017-09-21 11:18-0400\n" "Last-Translator: vslavik \n" "Language-Team: Romanian\n" "Language: ro_RO\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n==1 ? 0 : (n==0 || (n%100>0 && n" "%100<20)) ? 1 : 2);\n" "X-Generator: crowdin.com\n" "X-Crowdin-Project: poedit\n" "X-Crowdin-Language: ro\n" "X-Crowdin-File: /locales/poedit.pot\n" msgid "Hide this notification message" msgstr "Ascunde acest mesaj de informare" msgid "Don’t Show Again" msgstr "Nu mai afișa" msgid "Don’t show again" msgstr "Nu mai afișa" #, c-format msgid "(New: %i, obsolete: %i)" msgstr "(Noi: %i, vechi: %i)" msgid "Updating catalog" msgstr "Actualizare catalog" msgid "Collecting source files…" msgstr "Colectare fișierele sursă…" msgid "Extracting translatable strings…" msgstr "Extrag șirurile de tradus…" msgid "Failed to load extracted catalog." msgstr "Încărcarea catalogului extras a eșuat." msgid "Merging differences…" msgstr "Fuzionarea diferențele…" #, c-format msgid "“%s” is not a valid POT file." msgstr "\"%s\" nu este un fișier POT valid." #, c-format msgid "%i line of file “%s” was not loaded correctly." msgid_plural "%i lines of file “%s” were not loaded correctly." msgstr[0] "%i linia de fișier \"%s\" nu a fost încărcată corect." msgstr[1] "%i liniile de fișier \"%s\" nu au fost încărcate corect." msgstr[2] "%i liniile de fișier \"%s\" nu au fost încărcate corect." #, c-format msgid "Line %d of file “%s” is corrupted (not valid %s data)." msgstr "Linia %d de fișier \"%s\" este corupa (data %s invalida)." #, c-format msgid "Malformed header: “%s”" msgstr "Antetului incorect format: \"%s\"" msgid "" "Broken catalog file: singular form msgstr used together with msgid_plural" msgstr "" "Fișier catalog stricat: forma de singular msgtr a fost folosită împreună cu " "msgid_plural" msgid "Broken catalog file: plural form msgstr used without msgid_plural" msgstr "" "Fișier catalog deteriorat: forma de plural msgtr a fost folosită fără " "msgid_plural" msgid "" "There were errors when loading the catalog. Some data may be missing or " "corrupted as the result." msgstr "" "Au apărut unele erori la încărcarea catalogului. E posibil ca unele date să " "lipseasca sau să fie deteriorate." #, c-format msgid "Couldn’t load file %s, it is probably corrupted." msgstr "Nu se poate încărca fișierul %s, probabil este corupt." #, c-format msgid "" "File “%s” is read-only and cannot be saved.\n" "Please save it under different name." msgstr "" "Файл «%s» доступен только для чтения, поэтому его невозможно сохранить.\n" "Сохраните этот файл под другим именем." #, c-format msgid "Couldn’t save file %s." msgstr "Nu sa putut salva fișierul %s." msgid "" "There was a problem formatting the file nicely (but it was saved all right)." msgstr "" "A fost o problemă la formatarea fișierului (dar a fost salvat în regulă)." #, c-format msgid "" "The catalog couldn’t be saved in “%s” charset as specified in catalog " "settings.\n" "\n" "It was saved in UTF-8 instead and the setting was modified accordingly." msgstr "" "Catalogul nu a putut fi salvat cu setul de caractere \"%s\", specificat în " "setările de catalog.\n" "\n" "Acesta a fost salvat în UTF-8 și această schimbare a fost actualizată în mod " "corespunzător în setările de catalog." msgid "Error saving catalog" msgstr "Eroare la salvarea catalogului" msgid "PO Translation Files" msgstr "Dosar de traducere PO" msgid "POT Translation Templates" msgstr "Şabloane de traducere" msgid "All Translation Files" msgstr "Toate fișierele pentru traducere" msgid "(Use default language)" msgstr "(Folosește limba implicită)" msgid "Select your preferred language" msgstr "Selectați limba preferată" msgid "Language selection" msgstr "Selectare limbă" msgid "You must restart Poedit for this change to take effect." msgstr "Redeschideți Poedit pentru ca această schimbare să intre în vigoare." msgid "Syncing" msgstr "Sincronizare" #. TRANSLATORS: %s is a cloud destination, e.g. "Crowdin" or ftp.wordpress.com etc. #, c-format msgid "Syncing with %s…" msgstr "Sincronizare cu %s…" #. TRANSLATORS: %s is a cloud destination, e.g. "Crowdin" or ftp.wordpress.com etc. #, c-format msgid "Syncing with %s failed." msgstr "Sincronizarea cu %s a eșuat." msgid "Syncing error" msgstr "Eroare sincronizare" msgid "Downloading translations is disabled in this project." msgstr "Descărcare traduceri este dezactivată în acest proiect." msgid "Not authorized, please sign in again." msgstr "Neautorizat, vă rugăm să faceţi \"sign in\" din nou." msgid "" "Crowdin is an online localization management platform and collaborative " "translation tool. Poedit can seamlessly sync PO files managed at Crowdin." msgstr "" "Crowdin este o platformă online de management a localizării şi un instrument " "de traducere colaborativ. Poedit se poate sincroniza perfect cu fişierele PO " "gestionate de Crowdin." msgid "Sign In" msgstr "Autentificare" msgid "Sign in" msgstr "Autentificare" msgid "Sign Out" msgstr "Deconectare" msgid "Sign out" msgstr "Deconectare" msgid "Waiting for authentication…" msgstr "Autentificare în așteptare…" msgid "Updating user information…" msgstr "Actualizarea informațiilor de utilizator..." msgid "Signed in as:" msgstr "Autentificat ca:" msgid "Learn More About Crowdin" msgstr "Află mai multe despre Crowdin" msgid "Learn more about Crowdin" msgstr "Află mai multe despre Crowdin" msgid "Sign in to Crowdin" msgstr "Autentificare pe Crowdin" msgid "Open Crowdin translation" msgstr "Deschide traducere Crowdin" msgid "Project:" msgstr "Proiect:" msgid "Language:" msgstr "Limba:" msgid "File:" msgstr "Fişier:" msgid "No translation projects listed in your Crowdin account." msgstr "Nu sunt proiecte de traducere în contul tau Crowdin." msgid "This project has no files that can be translated in Poedit." msgstr "Acest proiect nu are dosare care pot fi traduse în Poedit." msgid "This file can only be edited in Crowdin’s web interface." msgstr "Acest fișier poate fi editat doar în interfața web Crowdin." msgid "Downloading latest translations…" msgstr "Descărcare ultimele traduceri..." msgid "Syncing with Crowdin failed." msgstr "Sincronizarea cu Crowdin nu a reușit." msgid "Crowdin error" msgstr "Crowdin eroare" msgid "Uploading translations…" msgstr "Încărcarea traduceri..." msgid "&Copy" msgstr "&Copie" msgid "Learn more" msgstr "Află mai multe" msgid "Learn More" msgstr "Află mai multe" msgid "&Help" msgstr "&Ajutor" msgid "MO files can’t be directly edited in Poedit." msgstr "MO fişiere nu pot fi editate direct în Poedit." msgid "Error opening file" msgstr "Eroare de deschidere fişier" msgid "" "Please open and edit the corresponding PO file instead. When you save it, " "the MO file will be updated as well." msgstr "" "Vă rugăm să deschideţi şi editaţi fişierul PO corespunzător. Atunci când îl " "salvaţi, fişierul MO va fi actualizat, de asemenea." msgid "don’t delete temporary files (for debugging)" msgstr "nu șterge fișierele temporare (pentru depanare)" msgid "handle a poedit:// URI" msgstr "folosirea unui URI poedit://" msgid "go to item at given line number" msgstr "sari la elementul de pe linia cu numărul specificat" msgid "Failed to communicate with Poedit process." msgstr "Am eșuat în a comunica cu procesul Poedit." #, c-format msgid "Unhandled exception occurred: %s" msgstr "Excepție netratată s-a produs: %s" msgid "Open catalog" msgstr "Deschide catalog" #, c-format msgid "File “%s” doesn’t exist." msgstr "Fișierul \"%s\" nu există." msgid "Poedit is an easy to use translations editor." msgstr "Podit este un editor de traduceri ușor de folosit." msgid "Catalogs Manager" msgstr "Manager de cataloage" msgid "Check for Updates…" msgstr "Verificare actualizări…" msgid "&Edit" msgstr "&Editare" msgid "Undo" msgstr "Desface" msgid "Redo" msgstr "Refacere" msgid "Paste and Match Style" msgstr "Lipește și potrivește stilului existent" msgid "Delete" msgstr "Șterge" msgid "Spelling and Grammar" msgstr "Corectare ortografică și gramaticală" msgid "Show Spelling and Grammar" msgstr "Arată corectare ortografică și gramaticală" msgid "Check Document Now" msgstr "Verifică documentul acum" msgid "Check Spelling While Typing" msgstr "Verificarea ortografiei în timpul tastării" msgid "Check Grammar With Spelling" msgstr "Verifica gramatica cu ortografie" msgid "Correct Spelling Automatically" msgstr "Corectează ortografia automat" msgid "Substitutions" msgstr "Substituiri" msgid "Show Substitutions" msgstr "Arată substituiri" msgid "Smart Copy/Paste" msgstr "Copiere/lipire inteligentă" msgid "Smart Quotes" msgstr "Ghilimele inteligente" msgid "Smart Dashes" msgstr "Cratime inteligente" msgid "Smart Links" msgstr "Smart link-uri" msgid "Text Replacement" msgstr "Înlocuire text" msgid "Transformations" msgstr "Transformări" msgid "Make Upper Case" msgstr "Majuscule" msgid "Make Lower Case" msgstr "Minuscule" msgid "Capitalize" msgstr "Valorifica" msgid "Speech" msgstr "Discurs" msgid "Start Speaking" msgstr "Începeți să vorbiţi" msgid "Stop Speaking" msgstr "Oprire vorbire" msgid "&View" msgstr "&Vizualizare" msgid "Enter Full Screen" msgstr "Intrati in ecran complet" msgid "Window" msgstr "Fereastră" msgid "Minimize" msgstr "Minimizează" msgid "Zoom" msgstr "Zoom" msgid "Bring All to Front" msgstr "Aduce tot in fata" #. TRANSLATORS:File kind displayed in Finder/Explorer msgid "PO Translation" msgstr "Traducere PO" msgid "The file cannot be opened." msgstr "Imposibil de deschis fișierul." msgid "Invalid file" msgstr "Fişier nevalid" msgid "" "The file may be either corrupted or in a format not recognized by Poedit." msgstr "" "Fişierul poate sa fie corupt sau într-un format nerecunoscut de Poedit." msgid "You can’t drop more than one file on Poedit window." msgstr "Nu puteți să lăsați mai mult de un fișier în fereastra Poedit." #, c-format msgid "File “%s” is not a message catalog." msgstr "Fișierul \"%s\" nu este un mesaj de catalog." msgid "Poedit" msgstr "Poedit" msgid "&File" msgstr "&Fișier" msgid "&Go" msgstr "&Du-te" #. TRANSLATORS: %s is language name in its basic form (as you #. would see e.g. in a list of supported languages). You may need #. to rephrase it, e.g. to an equivalent of "for language %s". #, c-format msgid "" "Spellchecking is disabled, because the dictionary for %s isn’t installed." msgstr "" "Spellchecking este dezactivat, pentru că dicţionarul pentru %s nu este " "instalat." msgid "Install" msgstr "Instalaţi" msgid "Catalog modified. Do you want to save changes?" msgstr "Catalog modificat. Doriți să salvați schimbările?" msgid "Save changes" msgstr "Salvează modificările" msgid "Your changes will be lost if you don’t save them." msgstr "Modificările vor fi pierdute dacă nu le salvați." msgid "Save" msgstr "Salvează" msgid "Don’t save" msgstr "Nu salva" msgid "Don’t Save" msgstr "Nu Salva" msgid "Save as…" msgstr "Salvare ca…" msgid "Compile to…" msgstr "Compila pentru…" msgid "Compiled Translation Files" msgstr "Compilate traducere fişiere" msgid "Export as…" msgstr "Export ca…" msgid "HTML Files" msgstr "Fişierele HTML" msgid "Open catalog template" msgstr "Deschide model catalog" msgid "Source code not available." msgstr "Codul sursă nu este disponibil." msgid "Updating failed" msgstr "Actualizarea nu a reușit" msgid "" "Translations couldn’t be updated from the source code, because no code was " "found in the location specified in the catalog’s Properties." msgstr "" "Versiunea nu a putut fi actualizata la codul sursă, deoarece codul nu a fost " "găsit în locaţia specificată în catalog pe proprietăţi." msgid "Entries in the catalog are probably incorrect." msgstr "Intrările din catalog sînt probabil incorecte." msgid "Updating the catalog failed. Click on 'Details >>' for details." msgstr "" "A eșuat actualizarea catalogului. Apăsați pe 'Detalii >>' pentru detalii." #, c-format msgid "%d issue with the translation found." msgid_plural "%d issues with the translation found." msgstr[0] "%d problemă cu traducerea a fost găsită." msgstr[1] "%d probleme cu traducerea au fost găsite." msgstr[2] "%d de probleme cu traducerea au fost găsite." msgid "Validation results" msgstr "Validarea rezultatelor" msgid "" "Entries with errors were marked in red in the list. Details of the error " "will be shown when you select such an entry." msgstr "" "Intrările cu erori au fost marcate cu roșu în listă. Detaliile erorii va fi " "arătate când selectați o astfel de intrare." msgid "The file was saved safely." msgstr "Fişierul a fost salvat în condiţii de siguranţă." msgid "" "The file was saved safely and compiled into the MO format, but it will " "probably not work correctly." msgstr "" "Fişierul a fost salvat în condiţii de siguranţă şi compilate în formatul MO, " "dar, probabil, nu va funcţiona corect." msgid "" "The file was saved safely, but it cannot be compiled into the MO format and " "used." msgstr "" "Fișierul a fost salvat în siguranță, dar nu poate fi compilat in format MO " "și folosit." msgid "" "The file was compiled into the MO format, but it will probably not work " "correctly." msgstr "" "Fişierul a fost compilat în formatul MO, dar, probabil, nu va funcţiona " "corect." msgid "The file cannot be compiled into the MO format and used." msgstr "Fişierul nu poate fi compilat în formatul MO şi utilizat." msgid "No problems with the translation found." msgstr "Nu au fost găsite probleme cu traducerea." #, c-format msgid "The translation is ready for use, but %d entry is not translated yet." msgid_plural "" "The translation is ready for use, but %d entries are not translated yet." msgstr[0] "" "Traducerea este gata pentru utilizare, dar %d intrare nu este tradus încă." msgstr[1] "" "Traducerea este gata pentru utilizare, dar %d intrările nu sunt traduse încă." msgstr[2] "" "Traducerea este gata pentru utilizare, dar %d intrările nu sunt traduse încă." msgid "The translation is ready for use." msgstr "Traducerea este gata de folosit." #, c-format msgid "Poedit automatically fixed invalid content in the file “%s”." msgstr "Poedit corectează automat conținutul invalid în fișierul “%s”." msgid "" "The file contained duplicate items, which is not allowed in PO files and " "would prevent the file from being used. Poedit fixed the issue, but you " "should review translations of any items marked as needing work and correct " "them if necessary." msgstr "" "Fișierul conținea elemente duplicate, care nu este permis în fișiere PO și " "ar împiedica utilizarea fișierului. Poedit a rezolvat problema, dar ar " "trebui să revizuiești traducerile din orice elemente marcat ca necesită " "muncă și corecteazale dacă este necesar." msgid "Language of the translation isn’t set." msgstr "Limba de traducere nu este setată." msgid "Set Language" msgstr "Setare limbă" msgid "Set language" msgstr "Setare limbă" #. TRANSLATORS: This is shown underneath "Language of the translation isn't set (or ...is the same as source language)." msgid "" "Suggestions are not available if the translation language is not set " "correctly. Other features, such as plural forms, may be affected as well." msgstr "" "Sugestiile nu sunt disponibile în cazul în care limba de traducere nu este " "setata corect. Alte caracteristici, cum ar fi forme de plural, pot fi " "afectate." msgid "Language of the translation is the same as source language." msgstr "Limbaj traducerii este la fel ca limba sursă." msgid "Fix Language" msgstr "Repara Limba" msgid "Fix language" msgstr "Repara limba" msgid "" "This catalog has entries with plural forms, but doesn’t have Plural-Forms " "header configured." msgstr "" "Acest catalog are intrări cu forme de plural, dar nu are antetul Plural-" "Forms configurat." msgid "" "Entries in this catalog have different plural forms count from what " "catalog’s Plural-Forms header says" msgstr "" "Intrările din acest catalog au diferite forme de plural conta din ce catalog " "forme de Plural antet spune" msgid "Required header Plural-Forms is missing." msgstr "Lipsește antetul formelor de plural solicitat." #, c-format msgid "Syntax error in Plural-Forms header (\"%s\")." msgstr "Eroare de sintaxă în cadrul formelor de plural (\"%s\")." msgid "Fix the Header" msgstr "Repară antetul" msgid "Fix the header" msgstr "Repară antetul" #. TRANSLATORS: %s is language name in its basic form (as you #. would see e.g. in a list of supported languages). You may need #. to rephrase it, e.g. to an equivalent of "for language %s". #, c-format msgid "Plural forms expression used by the catalog is unusual for %s." msgstr "" "Expresia formelor de plural folosită de catalog este neobișnuit pentru %s." #. TRANSLATORS: A verb, shown as action button with ""Plural forms expression used by the catalog is unusual for %s.")" msgid "Review" msgstr "Revizuire" #, c-format msgid "Error loading message catalog file “%s”." msgstr "Eroare la încărcarea mesaj catalog fișier \"%s\"." #, c-format msgid "Translated: %d of %d (%d %%)" msgstr "Tradus: %d în %d (%d %%)" #, c-format msgid "Remaining: %d" msgstr "Rămase: %d" #, c-format msgid "%d error" msgid_plural "%d errors" msgstr[0] "%d eroare" msgstr[1] "%d erori" msgstr[2] "%d erori" #, c-format msgid "%d entry" msgid_plural "%d entries" msgstr[0] "intrarea %d" msgstr[1] "%d intrări" msgstr[2] "%d intrări" msgid " (unsaved)" msgstr " (nesalvat)" msgid " (modified)" msgstr " (modificat)" #, c-format msgid "Failed to update translation memory: %s" msgstr "Imposibil de actualizat memorie de traducere: %s" msgid "Purge deleted translations" msgstr "Curăță traducerile șterse" msgid "Do you want to remove all translations that are no longer used?" msgstr "Doriți să eliminați toate traducerile care nu mai sunt folosite?" msgid "" "If you continue with purging, all translations marked as deleted will be " "permanently removed. You will have to translate them again if they are added " "back in the future." msgstr "" "Dacă veți continua cu curățarea, toate traducerile marcate ca șterse vor fi " "definitiv eliminate. Va trebui să le traduceți din nou dacă vor fi adăugate " "înapoi în viitor." msgid "Keep" msgstr "Păstrează" msgid "Purge" msgstr "Curăță" msgid "Copy from source text" msgstr "Copiază din textul sursă" msgid "Copy from Source Text" msgstr "Copiază din textul sursă" #. TRANSLATORS: This is the key shortcut used in menus on Windows, some languages call them differently #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Ctrl+" msgstr "Ctrl+" msgid "Clear translation" msgstr "Curăță traducerea" msgid "Clear Translation" msgstr "Curăță traducerea" msgid "Edit comment" msgstr "Editare comentariu" msgid "Edit Comment" msgstr "Editare comentariu" msgid "References:" msgstr "Referințe:" msgid "&Bookmarks" msgstr "&Semne de carte" #. TRANSLATORS: This is the key shortcut used in menus on Windows, some languages call them differently #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Alt+" msgstr "Alt+" #, c-format msgid "Set bookmark %i" msgstr "Setare marcaj %i" #, c-format msgid "Go to bookmark %i" msgstr "Mergi la marcaj %i" #, c-format msgid "Set Bookmark %i" msgstr "Setează marcaj %i" #, c-format msgid "Go to Bookmark %i" msgstr "Mergi la Marcaj %i" msgid "Hide Sidebar" msgstr "Ascunde Bara Laterală" msgid "Show Sidebar" msgstr "Arată Bara Laterală" msgid "Hide Status Bar" msgstr "Ascundere Bară de Stare" msgid "Show Status Bar" msgstr "Arată Bara de Stare" msgid "Source text:" msgstr "Text sursă:" msgid "Singular:" msgstr "Singular:" msgid "Plural:" msgstr "Plural:" msgid "Translation:" msgstr "Traducere:" msgid "Pre-translated" msgstr "Pre-tradus" msgid "Needs Work" msgstr "Necesita lucru" #. TRANSLATORS: This indicates that the string's translation isn't final #. and has known problems. For example, it might be machine translated or #. fuzzy matched from an older string. The translation should be short and #. convey this. If it's problematic to translate it, "Needs review" is #. acceptable substitute, but note that the meaning is subtly different: #. "needs review" implies that somebody else should review the string after #. I am done with it (i.e. consider it good), while "needs work" implies I #. need to return to it and finish the translation. msgid "Needs work" msgstr "Necesita lucru" msgid "" "POT files are only templates and don’t contain any translations themselves.\n" "To make a translation, create a new PO file based on the template." msgstr "" "Dosarele POT sunt doar template-uri și nu conțin traduceri. \n" "To fa o traducere, crează un fișier PO nou bazat pe șablon." msgid "Create New Translation" msgstr "Creați Traducere Nouă" msgid "Create new translation" msgstr "Creați traducere nouă" msgid "Everything" msgstr "Totul" #, c-format msgid "Form %i" msgstr "Forma %i" msgid "Singular" msgstr "Singular" msgid "Zero" msgstr "Zero" msgid "One" msgstr "Unu" msgid "Two" msgstr "Doi" msgid "Plural" msgstr "Plural" msgid "Other" msgstr "Altul" #, c-format msgid "%s Format" msgstr "%s Format" #. TRANSLATORS: %s is replaced with language name, e.g. "PHP" or "C", so "PHP Format" etc." #, c-format msgid "%s format" msgstr "%s format" msgid "Source text" msgstr "Text sursă" #, c-format msgid "Translation — %s" msgstr "Traducere-%s" msgid "ID" msgstr "ID" #, c-format msgid "Source text — %s" msgstr "Sursa text — %s" msgid "unknown language" msgstr "limbă necunoscută" #, c-format msgid "Failed command: %s" msgstr "Comandă eșuată: %s" msgid "Failed to merge gettext catalogs." msgstr "Unirea cataloagelor gettext a eșuat." msgid "Source file" msgstr "Fișier sursă" msgid "Source file occurrence:" msgstr "Apariția fișierului sursă:" msgid "Open in Editor" msgstr "Deschide în Editor" msgid "Open in editor" msgstr "Deschide în editor" msgid "No references for the selected item." msgstr "Nici o referință pentru elementul selectat." #, c-format msgid "Error opening file %s!" msgstr "Eroare la deschiderea fișierului %s!" msgid "Find" msgstr "Caută" msgid "Replace" msgstr "Înlocuiește" #. TRANSLATORS: Expander in Find window for additional options (case sensitive etc.) msgid "Options" msgstr "Opţiuni" msgid "Ignore case" msgstr "Ignora caseta" msgid "Wrap around" msgstr "Căutare similară" msgid "Whole words only" msgstr "Doar cuvinte întregi" msgid "Find in source texts" msgstr "Găsește în textele sursă" msgid "Find in translations" msgstr "Găseşte în traduceri" msgid "Find in comments" msgstr "Găsește în comentarii" msgid "Close" msgstr "Închide" msgid "Replace &All" msgstr "Înlocuire &Tot" msgid "Replace &all" msgstr "Înlocuire &tot" msgid "&Replace" msgstr "&Înlocuiește" msgid "< &Previous" msgstr "< &Anterior" msgid "&Next >" msgstr "&Următoarea >" msgid "String to find" msgstr "Șir de găsit" msgid "Replacement string" msgstr "Şir de înlocuit" #, c-format msgid "Cannot execute program: %s" msgstr "Nu se poate executa programul: %s" msgid "Language Code or Name (e.g. en_GB)" msgstr "Cod limbă sau nume (ex. en_GB)" msgid "Translation Language" msgstr "Limba Traducere" msgid "Language of the translation:" msgstr "Limba traducerii:" msgid "Poedit - Catalogs manager" msgstr "Poedit - Administrator de cataloage" msgid "Catalog" msgstr "Catalog" msgid "Total" msgstr "Total" msgid "Untrans" msgstr "Netrad" msgid "Errors" msgstr "Erori" msgid "Last modified" msgstr "Ultima modificare" msgid "Select directory" msgstr "Selectează directorul" msgid "Directories:" msgstr "Directoare:" msgid "" msgstr "" msgid "Do you want to delete the project?" msgstr "Doriți să ștergeți proiectul?" msgid "Confirmation" msgstr "Confirmare" msgid "" "Do you really want to do mass update of\n" "all catalogs in this project?" msgstr "" "Sigur doriți să actualizați în ansamblu\n" "toate cataloagele din acest proiect?" msgid "Information about the translator" msgstr "Informații despre traducător" msgid "Name:" msgstr "Nume:" msgid "Your Name" msgstr "Numele tău" msgid "Email:" msgstr "E-mail:" msgid "your_email@example.com" msgstr "e-mailul_tau@exemplu.com" msgid "" "Your name and email address are only used to set the Last-Translator header " "of GNU gettext files." msgstr "" "Numele și adresa de e-mail sunt folosite doar pentru a configura antetul " "Last-Translator din fișierele GNU gettext." msgid "Editing" msgstr "In editare" msgid "Automatically compile MO file when saving" msgstr "Compilează automat fișierul MO la salvare" msgid "Show summary after catalog update" msgstr "Arată rezumatul după actualizarea catalogului" msgid "Check spelling" msgstr "Verificarea ortografică" msgid "Always change focus to text input field" msgstr "Pune mereu focalizarea pe cîmpul de introducere a textului" msgid "" "Never let the list of strings take focus. If enabled, you must use Ctrl-" "arrows for keyboard navigation but you can also type text immediately, " "without having to press Tab to change focus." msgstr "" "Nu lasă niciodată lista de șiruri să preia focalizarea. Dacă este activată, " "trebuie să folosiți Ctrl-săgeți pentru navigarea cu tastatura dar puteți de " "asemenea să scrieți textul imediat, fără a trebui să apăsați Tab pentru a " "schimba focalizarea." msgid "Appearance" msgstr "Aspect" msgid "Use custom list font:" msgstr "Utilizare listă de font particularizată:" msgid "Use custom text fields font:" msgstr "Utilizați fontul câmpurilor text personalizate:" msgid "Change UI language" msgstr "Schimbă limba Interfeței" #. TRANSLATORS: This is a note appended to "Check spelling" when running on older Windows versions msgid "(requires Windows 8 or newer)" msgstr "(necesită Windows 8 sau mai nou)" msgid "General" msgstr "General" msgid "Use translation memory" msgstr "Memorie de traducere" msgid "Learn From Files…" msgstr "Învață de la Fișier…" msgid "Learn from files…" msgstr "Învață de la fișier…" #. TRANSLATORS: This is a button that deletes everything in the translation memory (i.e. clears/resets it). msgid "Reset" msgstr "Resetare" #. TRANSLATORS: Followed by "match translations within the file" or "pre-translate from TM" msgid "When updating from sources" msgstr "Atunci când se actualizeaza din surse" #. TRANSLATORS: Preceded by "When updating from sources" msgid "fuzzy match within the file" msgstr "potrivirea în cadrul fișierului" #. TRANSLATORS: Preceded by "When updating from sources" msgid "pre-translate from TM" msgstr "pre-traduce din MT" msgid "" "Poedit can attempt to fill in new entries from only previous translations in " "the file or from your entire translation memory. Using the TM won’t be very " "effective if it’s near-empty, but it will get better as you add more " "translations to it." msgstr "" "Poedit poate încerca să completeze intrări noi doar de la traducerile " "anterioare din fișier sau din întreaga ta memorie de traducere. Folosind MT " "nu va fi foarte eficienta în cazul în care este aproape goala, dar acesta va " "fi mai buna pe măsură adaugi mai multe traduceri." msgid "Stored translations:" msgstr "Traduceri stocate:" msgid "Database size on disk:" msgstr "Baza de date pe disk:" msgid "Select translation files to import" msgstr "Selectați fișierele de traducere pentru a le importa" msgid "Translation Memory" msgstr "Memorie de traducere" msgid "Importing translations…" msgstr "Importare traduceri…" msgid "Finalizing…" msgstr "Finalizare…" msgid "Reset translation memory" msgstr "Resetare memorie de traducere" msgid "Are you sure you want to reset the translation memory?" msgstr "Ești sigur că vrei să resetezi memoria de traducere?" msgid "" "Resetting the translation memory will irrevocably delete all stored " "translations from it. You can’t undo this operation." msgstr "" "Resetarea memoriei de traducere va șterge definitiv toate traducerile " "stocate în ea. Nu poți anula operația." msgid "Cancel" msgstr "Anulează" #. TRANSLATORS: This is abbreviation of "Translation Memory" used in Preferences on macOS. #. Long text looks weird there, too short (like TM) too, but less so. "General" is about ideal #. length there. msgid "TM" msgstr "MT" msgid "" "Source code extractors are used to find translatable strings in the source " "code files and extract them so that they can be translated." msgstr "" "Extractoarele de cod sursa sunt folosite sa găsească șiruri de cod sursa și " "le extrag ca sa poate fi traduse." msgid "Custom Extractors:" msgstr "Extractoare personalizate:" msgid "Custom extractors:" msgstr "Extractoare personalizate:" msgid "Edit…" msgstr "Editare…" msgid "GNU gettext" msgstr "GNU gettext" msgid "" "Supports all programming languages recognized by GNU gettext tools (PHP, C/C+" "+, C#, Perl, Python, Java, JavaScript and others)." msgstr "" "Suportă toate limbajele de programare, recunoscut de instrumentele de GNU " "gettext (PHP, C/C++, C#, Perl, Python, Java, JavaScript și altele)." msgid "Delete extractor" msgstr "Ştergeţi extractor" #, c-format msgid "Are you sure you want to delete the “%s” extractor?" msgstr "Ești sigur că dorești să ștergi extractor \"%s\"?" msgid "Extractors" msgstr "Extractori" msgid "Accounts" msgstr "Conturi" msgid "Automatically check for updates" msgstr "Căutare automata de actualizări" msgid "Include beta versions" msgstr "Include versiunile beta" msgid "" "Beta versions contain the latest new features and improvements, but may be a " "bit less stable." msgstr "" "Versiunile beta conține ultimele noi caracteristici și îmbunatățiri, dar " "poate fi putin mai instabil." msgid "Updates" msgstr "Actualizări" msgid "" "These settings affect internal formatting of PO files. Adjust them if you " "have specific requirements e.g. because of version control." msgstr "" "Aceste setări afectează formatarea interne de fișiere PO. Ajusteazale dacă " "ai cerințe specifice ex. din cauza controlului versiunilor." msgid "Line endings:" msgstr "Sfârșit de linii:" msgid "Unix (recommended)" msgstr "Unix (recomandat)" msgid "Windows" msgstr "Windows" #. TRANSLATORS: Followed by text control for entering number; wraps text at given width msgid "Wrap at:" msgstr "Încadrare la:" msgid "Preserve formatting of existing files" msgstr "Păstrează formatarea fișierelor existente" msgid "Advanced" msgstr "Avansat" msgid "Pre-translating…" msgstr "Pre-traducere…" #, c-format msgid "Pre-translated %u string" msgid_plural "Pre-translated %u strings" msgstr[0] "Pre-tras %u sir" msgstr[1] "Pre-tradus %u siruri" msgstr[2] "Pre-tradus %u siruri" #. TRANSLATORS: This is a somewhat common term describing the action where #. you apply the translation memory and/or machine translation to all of the #. strings you're translating as the first step, followed by correcting, #. improving etc., i.e. actually translating the strings. This may be tricky #. to express in other languages as simply as in English, but please try to #. keep it similarly concise. Please try to avoid, if possible, describing it #. as "auto-translation" and similar, because such terminology would mislead #. some users into thinking it's all that needs to be done (spoken from #. experience). "Pre-translate" nicely expresses that it's only the step done #. *before* actual translation. msgid "Pre-translate" msgstr "Pre-traducere" msgid "Only fill in exact matches" msgstr "Completați doar potriviri exacte" msgid "" "By default, inaccurate results are filled in as well and marked as needing " "work. Check this option to only include accurate matches." msgstr "" "În mod implicit, rezultate inexacte sunt completate, precum și marcate ca " "necesitând munca. Bifează aceasta opțiune pentru a include numai potriviri " "exacte." msgid "Don’t mark exact matches as needing work" msgstr "Nu marca potriviri exacte ca nevoie de muncă" msgid "" "Only enable if you trust the quality of your TM. By default, all matches " "from the TM are marked as needing work and should be reviewed before use." msgstr "" "Permite numai dacă ai încredere în MT. Implicit, toate potrivirile din MT " "sunt marcate ca necesita munca și ar trebui reexaminată înainte de utilizare." msgid "" "Pre-translation automatically finds exact or fuzzy matches for untranslated " "strings in the translation memory and fills in their translations." msgstr "" "Pre-traducerea găsește automat potrivirile exacte sau neclare pentru șiruri " "netraduse de caractere din memoria de traducere completându-le automat." #, c-format msgid "%d entry was pre-translated." msgid_plural "%d entries were pre-translated." msgstr[0] "%d intrarea a fost pre-tradusa." msgstr[1] "%d intrările au fost pre-traduse." msgstr[2] "%d intrările au fost pre-traduse." msgid "" "The translations were marked as needing work, because they may be " "inaccurate. You should review them for correctness." msgstr "" "Traducerile au fost marcate ca necesita munca, deoarece acestea pot fi " "inexacte. Ar trebui revizuite pentru corectitudine." msgid "No entries could be pre-translated." msgstr "Nici o intrare nu a putut fi pre-tradusa." msgid "" "The TM doesn’t contain any strings similar to the content of this file. It " "is only effective for semi-automatic translations after Poedit learns enough " "from files that you translated manually." msgstr "" "MT nu conține niciun sir de caractere similare cu conținutul acestui acest " "fișier. Este eficient doar pentru traducerile semi-automat pe care Poedit le-" "a învățat din fișierele traduse manual." msgid "" "Drag and Drop Folders Here\n" "\n" "or use the + button" msgstr "" "Adu și pune dosar aici \n" "\n" "sau folosește butonul +" msgid "" "Drag and drop folders here\n" "\n" "or use the + button" msgstr "" "Adu și pune dosar aici \n" "\n" "sau folosește butonul +" msgid "Add Folders…" msgstr "Adaugă Dosare…" msgid "Add folders…" msgstr "Adaugă dosare…" msgid "Add Files…" msgstr "Adaugă Fișiere…" msgid "Add files…" msgstr "Adaugă fișiere…" msgid "Add Wildcard…" msgstr "Adaugă Wildcard…" msgid "Add wildcard…" msgstr "Adauga wildcard…" msgid "Paths" msgstr "Căi" msgid "Excluded paths" msgstr "Căi excluse" msgid "Advanced extraction settings" msgstr "Setări avansate de extragere" msgid "Extract notes for translators from:" msgstr "Extrage comentarii de la traducători:" msgid "Comments prefixed with:" msgstr "Comentarii începute cu:" msgid "All comments" msgstr "Toate comentariile" msgid "Additional xgettext flags:" msgstr "Flaguri xgettext adiționale:" msgid "Additional keywords" msgstr "Cuvinte cheie suplimentare" msgid "Name of the project the translation is for" msgstr "Numele proiectului de unde vine traducerea" msgid "Team name and email address or URL" msgstr "Numele echipei și adresa de E-mail sau url" msgid "e.g. nplurals=2; plural=(n > 1);" msgstr "e.g. nplurals=2; plural=(n > 1);" msgid "UTF-8 (recommended)" msgstr "UTF-8 (recomandat)" msgid "Please save the file first. This section cannot be edited until then." msgstr "Salvează fișierul. Această secțiune nu poate fi editată până atunci." msgid "Not all plural forms are translated." msgstr "Nu toate formele de plural sunt traduse." msgid "The translation should start as a sentence." msgstr "Traducerea ar trebui să înceapă ca o propoziție." msgid "The translation should start with a lowercase character." msgstr "Traducerea ar trebui să înceapă cu un caracter mic." msgid "The translation doesn’t start with a space." msgstr "Traducerea nu începe cu un spațiu." msgid "The translation starts with a space, but the source text doesn’t." msgstr "Traducerea începe cu un spațiu, dar nu și textul sursă." msgid "The translation is missing a newline at the end." msgstr "Traducerea îi lipsește un newline la sfârșit." msgid "The translation ends with a newline, but the source text doesn’t." msgstr "Traducerea începe cu un newline, dar nu și textul sursă." msgid "The translation is missing a space at the end." msgstr "Traducerii îi lipsește un spațiu la final." msgid "The translation ends with a space, but the source text doesn’t." msgstr "Traducerea se termină cu un spațiu, dar nu și textul sursă." #, c-format msgid "The translation should end with “%s”." msgstr "Traducerea trebuie să se termine cu \"%s\"." #, c-format msgid "The translation should not end with “%s”." msgstr "Traducerea nu trebuie să se termine cu \"%s\"." #, c-format msgid "The translation ends with “%s”, but the source text ends with “%s”." msgstr "" "Traducerea se termină cu \"%s\", dar textul-sursă se termină cu \"%s\"." msgid "Comment:" msgstr "Comentariu:" msgid "OK" msgstr "OK" msgid "C&lear" msgstr "Curăță" msgid "Clear the comment" msgstr "Curăță comentariul" msgid "New" msgstr "Nou" msgid "Create new translations project" msgstr "Creează un nou proiect de traduceri" msgid "Edit" msgstr "Editare" msgid "Edit the project" msgstr "Editează proiectul" msgid "Delete the project" msgstr "Șterge proiect" msgid "Update all" msgstr "Actualizează tot" msgid "Update all catalogs in the project" msgstr "Actualizează toate cataloagele din proiect" msgid "Edit project" msgstr "Editare proiect" msgid "Project name:" msgstr "Nume proiect:" msgid "Browse" msgstr "Răscolește" msgid "Add directory to the list" msgstr "Adaugă directorul la listă" msgid "&New…" msgstr "&Nou…" msgid "New from &POT/PO file…" msgstr "Nou din &POT/PO fișier…" msgid "New From &POT/PO File…" msgstr "Nou Din &POT/PO Fișier…" msgid "&Open…" msgstr "&Deschide…" msgid "Open Recent" msgstr "Deschide Recent" msgid "Open from Crowdin…" msgstr "Deschide din Crowdin…" msgid "Open From Crowdin…" msgstr "Deschide Din Crowdin…" msgid "&Close" msgstr "&Închide" msgid "&Save" msgstr "&Salvează" msgid "Save &as…" msgstr "Salvare &ca…" msgid "Save &As…" msgstr "Salvare &Ca…" msgid "Compile to MO…" msgstr "Compila pentru MO…" msgid "E&xport as HTML…" msgstr "E&xport ca HTML…" msgid "Check for updates…" msgstr "Verifica actualizări…" msgid "&Preferences…" msgstr "&Preferințe…" msgid "Catalogs &manager" msgstr "Administrator &cataloage" msgid "Catalogs &Manager" msgstr "Administrator &cataloage" msgid "E&xit" msgstr "Ieșire" msgid "Quit" msgstr "Termină" msgid "Copy from singular" msgstr "Copie la singular" msgid "Copy From Singular" msgstr "Copie la singular" msgid "Translation needs &work" msgstr "Traducere necesita &muncă" msgid "Translation Needs &Work" msgstr "Traducere necesita &muncă" msgid "Edit &comment" msgstr "Editare &comentariu" msgid "Edit &Comment" msgstr "Editare &comentariu" msgid "Suggestions" msgstr "Sugestii" msgid "&Find…" msgstr "&Găsește…" msgid "Replace…" msgstr "Înlocuiește…" msgid "Find next" msgstr "Găsește următorul" msgid "Find previous" msgstr "Găsește anterior" msgid "Find and Replace…" msgstr "Caută și Înlocuiește…" msgid "Find Next" msgstr "Găsește următorul" msgid "Find Previous" msgstr "Găsește anteriorul" msgid "&Preferences" msgstr "&Preferințe" msgid "Display entry &IDs" msgstr "Afișare intrare &ID" msgid "Display Entry &IDs" msgstr "Afișare Intrare &ID" msgid "Sort by &file order" msgstr "Sortează după &ordine fișier" msgid "Sort by &File Order" msgstr "Sortează după &ordine fișier" msgid "Sort by &source" msgstr "Sortează după &sursă" msgid "Sort by &Source" msgstr "Sortează după &sursă" msgid "Sort by &translation" msgstr "Sortează după &traducere" msgid "Sort by &Translation" msgstr "Sortează după &traducere" msgid "&Group by context" msgstr "&Grupează după context" msgid "&Group By Context" msgstr "&Grupează după context" msgid "Entries with errors first" msgstr "Mai întâi intrările cu erori" msgid "Entries with Errors First" msgstr "Mai întâi intrările cu erori" msgid "&Untranslated entries first" msgstr "&Întâi intrările netraduse" msgid "&Untranslated Entries First" msgstr "&Întâi intrările netraduse" msgid "&Show references" msgstr "&Arată referințe" msgid "&Show References" msgstr "&Arată referințe" msgid "Show sidebar" msgstr "Arată bara laterală" msgid "Show status bar" msgstr "Arată bara de stare" msgid "C&atalog" msgstr "C&atalog" msgid "&Update from sources" msgstr "&Actualizare din surse" msgid "&Update from Sources" msgstr "&Actualizare din surse" msgid "Update from &POT file…" msgstr "Actualizează din fișier &POT…" msgid "Update from &POT File…" msgstr "Actualizează din Fișier &POT…" msgid "Sync with Crowdin" msgstr "Sincronizare cu Crowdin" msgid "Pre-&translate…" msgstr "Pre-&traduce…" msgid "&Purge deleted translations" msgstr "&Curăță traducerile șterse" msgid "&Purge Deleted Translations" msgstr "&Curăță traducerile șterse" msgid "&Validate translations" msgstr "&Validează traducerile" msgid "&Validate Translations" msgstr "&Validează traducerile" msgid "&Properties…" msgstr "&Proprietăți…" msgid "&Done and next" msgstr "&Gata și următorul" msgid "&Done and Next" msgstr "&Gata și următorul" msgid "&Previous translation" msgstr "&Traducerea anterioară" msgid "&Previous Translation" msgstr "&Traducerea anterioară" msgid "&Next translation" msgstr "&Următoarea traducere" msgid "&Next Translation" msgstr "&Următoarea traducere" msgid "P&revious unfinished" msgstr "Anteriorul neterminat" msgid "P&revious Unfinished" msgstr "Anteriorul neterminat" msgid "Ne&xt unfinished" msgstr "Următorul neterminat" msgid "Ne&xt Unfinished" msgstr "Următorul neterminat" msgid "Previous plural form" msgstr "Forma de plural anterioara" msgid "Previous Plural Form" msgstr "Forma de plural anterioara" msgid "Next plural form" msgstr "Forma de plural viitoare" msgid "Next Plural Form" msgstr "Forma de plural viitoare" msgid "&Online help" msgstr "&Ajutor online" msgid "&Online Help" msgstr "&Ajutor online" msgid "&GNU gettext manual" msgstr "Documentație &GNU gettext" msgid "&GNU gettext Manual" msgstr "Documentație &GNU gettext" msgid "&About Poedit" msgstr "&Despre Poedit" msgid "&About" msgstr "&Despre" msgid "Extractor setup" msgstr "Configurare extractor" msgid "List of extensions separated by semicolons (e.g. *.cpp;*.h):" msgstr "Lista de extensii separate cu punct și virgulă (ex. *.cpp;*.h):" msgid "Invocation:" msgstr "Invocare:" msgid "Command to extract translations:" msgstr "Comanda de extras traduceri:" msgid "" "This is the command used to launch the extractor.\n" "%o expands to the name of output file, %K to list\n" "of keywords, %F to list of input files,\n" "%C to charset flag (see below)." msgstr "" "Aceasta este comanda folosită pentru a lansa extractorul.\n" "%o se extinde la numele fișierului de ieșire, %K la lista\n" "de cuvinte-cheie, %F la lista de fișiere de intrare,\n" "%C la setul de caractere (vezi mai jos)." msgid "An item in keywords list:" msgstr "Un element în lista de cuvinte-cheie:" msgid "" "This will be attached to the command line once\n" "for each keyword. %k expands to the keyword." msgstr "" "Aceasta va fi atașată la linia de comandă pentru fiecare\n" "cuvânt-cheie. %k se extinde la cuvântul-cheie." msgid "An item in input files list:" msgstr "Un element în lista de fișiere de intrare:" #, c-format msgid "" "This will be attached to the command line once\n" "for each input file. %f expands to the filename." msgstr "" "Aceasta va fi atașată la linia de comandă pentru\n" "fiecare fișier de intrare. %f se extinde la numele fișierului." msgid "Source code charset:" msgstr "Set de caractere al codului sursă:" #, c-format msgid "" "This will be attached to the command line\n" "only if source code charset was given. %c expands to charset value." msgstr "" "Aceasta va fi atașată la linia de comandă doar dacă setul de\n" "caractere al sursei a fost dat. %c se extinde la valoarea setului de " "caractere." msgid "Catalog properties" msgstr "Propietăți catalog" msgid "Project name and version:" msgstr "Nume și versiune proiect:" msgid "Language team:" msgstr "Echipa de traducere:" msgid "Plural forms:" msgstr "Forme de plural:" msgid "Use default rules for this language" msgstr "Utilizaţi regulile implicit pentru această limbă" msgid "Use custom expression" msgstr "Utilizarea expresiei personalizate" msgid "Learn about plural forms" msgstr "Învățați despre formele de plural" msgid "Charset:" msgstr "Set de caractere:" msgid "Advanced Extraction Settings…" msgstr "Setări Avansate de Extragere…" msgid "Advanced extraction settings…" msgstr "Setări avansate de extragere…" msgid "Translation Properties" msgstr "Proprietăți traducere" msgid "Translation properties" msgstr "Proprietăți traducere" msgid "Sources Paths" msgstr "Căile Surselor" msgid "Sources paths" msgstr "Căile surselor" msgid "Extract text from source files in the following directories:" msgstr "Extrage textul din fișierele sursă în următoarele directoare:" msgid "Base path:" msgstr "Cale de bază:" msgid "Sources Keywords" msgstr "Sursele cuvintelor cheie" msgid "Sources keywords" msgstr "Surse cuvinte-cheie" msgid "" "Use these keywords (function names) to recognize translatable strings\n" "in source files:" msgstr "" "Folosește aceste cuvinte-cheie (nume de funcții) pentru a recunoaște " "șirurile traductibile\n" "în fișiere sursă:" msgid "Also use default keywords for supported languages" msgstr "Utiliza cuvinte cheie implicite pentru limbile suportate" msgid "Learn About Gettext Keywords" msgstr "Învățați despre cuvintele cheie gettext" msgid "Learn about gettext keywords" msgstr "Învățați despre cuvintele cheie gettext" msgid "Update summary" msgstr "Actualizare rezumat" msgid "" "These strings were found in the sources but were not in the catalog.\n" "Poedit will add them to the catalog now." msgstr "" "Aceste șiruri au fost găsite în surse, dar nu erau în catalog.\n" "Poedit le va adăuga acum la catalog." msgid "New strings" msgstr "Șiruri noi" msgid "" "These strings are no longer in the sources.\n" "Poedit will remove them from the catalog now." msgstr "" "Aceste șiruri nu mai sunt în surse.\n" "Poedit le va elimina acum din catalog." msgid "Obsolete strings" msgstr "Șiruri învechite" msgid "(0 new, 0 obsolete)" msgstr "(0 noi, 0 învechite)" msgid "Open" msgstr "Deschide" msgid "Save catalog" msgstr "Salvează catalog" msgid "Validate" msgstr "Validează" msgid "Check for errors in the translation" msgstr "Verificați după erori în traducere" msgid "Update" msgstr "Actualizare" msgid "Update catalog - synchronize it with sources" msgstr "Actualizare catalog - sincronizează-l cu sursele" msgid "Sidebar" msgstr "Bara Laterală" msgid "Show or hide the sidebar" msgstr "Afişaţi sau ascundeţi bara laterală" #. TRANSLATORS: "Previous" as in used in the past, now replaced with newer. msgid "Previous source text:" msgstr "Textul sursă anterior:" msgid "" "The old source text (before it changed during an update) that the now-" "inaccurate translation corresponds to." msgstr "" "Vechiul text sursa (înainte de a fi schimbat în timpul unei actualizări) " "care corespunde traducere acum inexacte." msgid "Notes for translators:" msgstr "Note pentru traducători:" msgid "Add comment" msgstr "Adaugă comentariu" msgid "Add Comment" msgstr "Adaugă comentariu" msgid "Translation suggestions:" msgstr "Sugestii traducere:" #. TRANSLATORS: This is shown when no translation suggestions can be found in the TM (Windows). msgid "No matches found" msgstr "Nici o potrivire găsita" #. TRANSLATORS: This is shown when no translation suggestions can be found in the TM (macOS, Linux). msgid "No Matches Found" msgstr "Nici o potrivire găsita" msgid "This string was found in Poedit’s translation memory." msgstr "Acest şir s-a găsit în memoria de traducere Poedit." msgid "Cannot create temporary directory." msgstr "Nu se poate crea directorul temporar." msgid "Welcome to Poedit" msgstr "Bine ai venit la Poedit" #. TRANSLATORS: This is version information in about dialog, "%s" will be #. version number when used #, c-format msgid "Version %s" msgstr "Versiunea %s" msgid "Edit a Translation" msgstr "Editează o traducere" msgid "Edit a translation" msgstr "Editează o traducere" msgid "Open an existing PO file and edit the translation." msgstr "Deschide un fişier existent PO şi edita traducerea." msgid "" "Take an existing PO file or POT template and create a new translation from " "it." msgstr "" "Ia un fișier existent PO sau șablon POT și crează o nouă traducere din el." msgid "Collaborate on a Translation with Others" msgstr "Colaborează la o traducere cu alții" msgid "Collaborate on a translation with others" msgstr "Colaborează la o traducere cu alții" msgid "" "Download a file from Crowdin project, translate and sync your changes back." msgstr "" "Descarca un fișier din proiectul Crowdin, tradu și sincronizează schimbările " "efectuate." msgid "What is Crowdin?" msgstr "Ce este Crowdin?" msgid "There are no translations. That’s unusual." msgstr "Nu există traduceri. Este neobișnuit." msgid "" "Translatable entries aren’t added manually in the Gettext system, but are " "automatically extracted\n" "from source code. This way, they stay up to date and accurate.\n" "Translators typically use PO template files (POTs) prepared for them by the " "developer." msgstr "" "Înregistrările traductibile nu sunt adăugate manual în sistemul Gettext, ci " "sunt extrase în mod automat\n" "din codul sursă. În acest mod, acestea rămân actualizate și exacte.\n" "Traducătorii folosesc de regulă fișiere șablon PO (POT-uri), pregătite " "pentru acest scop de către dezvoltator." msgid "(Learn more about GNU gettext)" msgstr "(Afla mai multe despre GNU gettext)" msgid "The simplest way to fill this catalog is to update it from a POT:" msgstr "" "Cel mai simplu mod pentru a umple acest catalog este de al actualiza dintr-" "un fișier POT:" msgid "Update from POT" msgstr "Actualizare din POT" msgid "Take translatable strings from an existing POT template." msgstr "Ia șirurile traductibile de pe un șablon POT existent." msgid "" "You can also extract translatable strings directly from the source code:" msgstr "De asemenea, poți extrage șiruri traductibile direct din codul sursă:" msgid "Extract from sources" msgstr "Extrage din surse" msgid "Configure source code extraction in Properties." msgstr "Configurează extragerea codului sursa în Proprietăți." msgid "Sync" msgstr "Sinc" msgid "Synchronize the translation with Crowdin" msgstr "Sincronizare traducere cu Crowdin" #. TRANSLATORS: This is titlebar of about dialog, "%s" is application name #. ("Poedit" here, but please use "%s") #, c-format msgid "About %s" msgstr "Despre %s" #. TRANSLATORS: Title of the preferences window on Windows and Linux. "%s" is replaced with "Poedit" when running. #, c-format msgid "%s Preferences" msgstr "%s Preferințe" #. TRANSLATORS: macOS item in app menu msgid "Services" msgstr "Servicii" #. TRANSLATORS: macOS item in app menu, %s is replaced with "Poedit" #, c-format msgid "Hide %s" msgstr "Ascunde %s" #. TRANSLATORS: macOS item in app menu msgid "Hide Others" msgstr "Ascunde altele" #. TRANSLATORS: macOS item in app menu msgid "Show All" msgstr "Arata tot" #. TRANSLATORS: macOS item in app menu, %s is replaced with "Poedit" #, c-format msgid "Quit %s" msgstr "Renunță %s" #. TRANSLATORS: macOS item in app menu msgid "Preferences…" msgstr "Preferințe…" msgid "Preferences..." msgstr "Preferințe..." #. TRANSLATORS: Title of a category in Windows task menu (right-click icon in taskbar) msgid "Recent" msgstr "Recent" #. TRANSLATORS: Title of a category in Windows task menu (right-click icon in taskbar) msgid "Frequent" msgstr "Frecvent" msgid "&Apply" msgstr "&Aplică" msgid "Apply" msgstr "Aplică" msgid "&Back" msgstr "&Înapoi" msgid "Back" msgstr "Înapoi" msgid "&Cancel" msgstr "&Anulează" msgid "&Clear" msgstr "&Curăță" msgid "Clear" msgstr "Curăță" msgid "Copy" msgstr "Copiaţi" msgid "Cu&t" msgstr "&Decupează" msgid "Cut" msgstr "Decupează" msgid "&Delete" msgstr "&Sterge" msgid "&Quit" msgstr "&Renunță" msgid "File" msgstr "Fișier" msgid "Help" msgstr "Ajutor" msgid "&New" msgstr "&Nou" msgid "&No" msgstr "&No" msgid "No" msgstr "Nu" msgid "&OK" msgstr "&OK" msgid "Open…" msgstr "Deschide…" msgid "&Open..." msgstr "&Deschide..." msgid "Open..." msgstr "Deschide..." msgid "&Paste" msgstr "&Lipește" msgid "Paste" msgstr "Lipire / adaugare" msgid "Preferences" msgstr "Preferințe" msgid "&Redo" msgstr "&Refacere" msgid "Refresh" msgstr "Reîmprospătare" msgid "&Save as" msgstr "&Salvare ca" msgid "Save as" msgstr "Salvează ca" msgid "Select &All" msgstr "Selectează &Tot" msgid "Select All" msgstr "Selectează tot" msgid "&Undo" msgstr "&Inapoi" msgid "&Yes" msgstr "&Da" msgid "Yes" msgstr "Da" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Shift+" msgstr "Shift+" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Enter" msgstr "Enter" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Up" msgstr "Sus" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Down" msgstr "Jos" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Left" msgstr "Stânga" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Right" msgstr "Drepta" #. TRANSLATORS: Keyboard shortcut, must correspond to translation of "Ctrl+" msgid "ctrl" msgstr "ctrl" #. TRANSLATORS: Keyboard shortcut, must correspond to translation of "Alt+" msgid "alt" msgstr "alt" #. TRANSLATORS: Keyboard shortcut, must correspond to translation of "Shift+" msgid "shift" msgstr "shift" poedit-2.0.6/locales/id.mo0000664000372000037200000013673213230132076012310 00000000000000P%1 1 11<11J 2gW2 22 22 222 3333%3+333B3Q3W3]3f3z333333333333 3 44 4)4 04=4M4c4y44444444445 5(5D5Y5n55555555 6 '6:36:n6 666 6 666 6 7 #707?7O7c7~77777 71898'>8f88 8878689)=9g9 l9]w99A9I*:t:{:; ;;";:; U;`;.h;;;;;;;;<*<F<#[<<<<<<<<(<(=7= R=s=|== ==/= = >>#>9>L>b>2>>>>> ?)???????@@@ 2@?@R@Ee@"@?@ AA*.A YAfAyAK~A"A5A#B)BHAH HHI 'IHI PI ]IiI"nI;I(IIJ&J 5J ?JMJjJ ~JJJJJ JJK:K PK<^K.KKKKLL*%LPLVLgL xL LLJMNMgM MMMMM#MM'M$N7DN$|N%NNNNNNOOOO O2O P#P9PNP]PlPtP|PPPPPPPPQQQnQERZR>aR RRRR@RS-T }K}&P}#w}} }}0}8~#9~/]~~ ~T~~F OPG P[%a 2!1 @N g"߁ $3H*N4y&̂  '56S ̃)Fdyhnvȅ΅ ߅  M!#oC ׆; 7E[Ya4ׇ ,4FXi{ ƈ ӈވ^|0?p Ɋӊ&57.m )Ћ )(Enu&Y #(8HZnˍۍ   0 >JRaw#ˎΎ֏ "!,D q Ȑ#ِ%*"Ps %ڑ4ߑ;#1_̒ ,%EeyHMi Ôɔ+*')RC|'$ + .<A &;8S ×ٗ , LZo7l<<A .<CJHc7  9M (BZr ڝ  & 3@R*[-4:ATgv )џ 0< O[br%Ӡ0% Vagnt ԡ,IiZ v  ʣ ܣ  FY o| ǤR ٥$ #1Db"z0ΦKѦI"gc< JeD_PgT]eϫW5-?9G5'}%E˭&,,S,3?!&Tȯ[yS faXȱ>!`G#4k|a]ݴ !2DWwѶ {ko$ŷʷӷ#.5Uu Bʸ# 1 Jk"q˹= Vbqzں ]Ez3 <k;3  0%Vn!D}],6 9BW6tC3H>C'# )h?*Kq#-0^aG2zFYblx&2LADZ.EwPi=Ab[kv @4uh~ uL@|pnf.nTN? QI2:qOKcajd F!p ]U>T+rXi=J%Vxz51^s4 NH/F"8/XJ`om #UwQk :Gs$ 8jL!~I1,(<D-9B>|;$H(E?g<y!dYgIo \ <eN+rM5&cM5 :"K-A+EmZ7C"603B $%RfRVeyOG*S@ M,4}_{O%W91J)S[`' 7)v &;*{(l_.03=\7P8/t';P (modified) (unsaved)%d entry%d entries%d entry was pre-translated.%d entries were pre-translated.%d error%d errors%d issue with the translation found.%d issues with the translation found.%i line of file “%s” was not loaded correctly.%i lines of file “%s” were not loaded correctly.%s Format%s Preferences%s format&About&About Poedit&Apply&Back&Bookmarks&Cancel&Clear&Close&Copy&Delete&Done and Next&Done and next&Edit&File&Find…&GNU gettext Manual&GNU gettext manual&Go&Group By Context&Group by context&Help&New&New…&Next >&Next Translation&Next translation&No&OK&Online Help&Online help&Open...&Open…&Paste&Preferences&Preferences…&Previous Translation&Previous translation&Properties…&Purge Deleted Translations&Purge deleted translations&Quit&Redo&Replace&Save&Save as&Show References&Show references&Undo&Untranslated Entries First&Untranslated entries first&Update from Sources&Update from sources&Validate Translations&Validate translations&View&Yes(0 new, 0 obsolete)(Learn more about GNU gettext)(New: %i, obsolete: %i)(Use default language)(requires Windows 8 or newer)< &PreviousDrag and Drop Folders Here or use the + buttonDrag and drop folders here or use the + buttonAbout %sAccountsAdd CommentAdd Files…Add Folders…Add Wildcard…Add commentAdd directory to the listAdd files…Add folders…Add wildcard…Additional keywordsAdditional xgettext flags:AdvancedAdvanced Extraction Settings…Advanced extraction settingsAdvanced extraction settings…All Translation FilesAll commentsAlso use default keywords for supported languagesAlt+Always change focus to text input fieldAn item in input files list:An item in keywords list:AppearanceApplyAre you sure you want to delete the “%s” extractor?Are you sure you want to reset the translation memory?Automatically check for updatesAutomatically compile MO file when savingBackBase path:Beta versions contain the latest new features and improvements, but may be a bit less stable.Bring All to FrontBroken catalog file: plural form msgstr used without msgid_pluralBroken catalog file: singular form msgstr used together with msgid_pluralBrowseBy default, inaccurate results are filled in as well and marked as needing work. Check this option to only include accurate matches.C&atalogC&learCancelCannot create temporary directory.Cannot execute program: %sCapitalizeCatalogCatalog modified. Do you want to save changes?Catalog propertiesCatalogs &ManagerCatalogs &managerCatalogs ManagerChange UI languageCharset:Check Document NowCheck Grammar With SpellingCheck Spelling While TypingCheck for Updates…Check for errors in the translationCheck for updates…Check spellingClearClear TranslationClear the commentClear translationCloseCollaborate on a Translation with OthersCollaborate on a translation with othersCollecting source files…Command to extract translations:Comment:Comments prefixed with:Compile to MO…Compile to…Compiled Translation FilesConfigure source code extraction in Properties.ConfirmationCopyCopy From SingularCopy from Source TextCopy from singularCopy from source textCorrect Spelling AutomaticallyCouldn’t load file %s, it is probably corrupted.Couldn’t save file %s.Create New TranslationCreate new translationCreate new translations projectCrowdin errorCrowdin is an online localization management platform and collaborative translation tool. Poedit can seamlessly sync PO files managed at Crowdin.Ctrl+Cu&tCustom Extractors:Custom extractors:CutDatabase size on disk:DeleteDelete extractorDelete the projectDirectories:Display Entry &IDsDisplay entry &IDsDo you really want to do mass update of all catalogs in this project?Do you want to delete the project?Do you want to remove all translations that are no longer used?Don’t SaveDon’t Show AgainDon’t mark exact matches as needing workDon’t saveDon’t show againDownDownload a file from Crowdin project, translate and sync your changes back.Downloading latest translations…Downloading translations is disabled in this project.E&xitE&xport as HTML…EditEdit &CommentEdit &commentEdit CommentEdit a TranslationEdit a translationEdit commentEdit projectEdit the projectEditingEdit…Email:EnterEnter Full ScreenEntries in the catalog are probably incorrect.Entries in this catalog have different plural forms count from what catalog’s Plural-Forms header saysEntries with Errors FirstEntries with errors firstEntries with errors were marked in red in the list. Details of the error will be shown when you select such an entry.Error loading message catalog file “%s”.Error opening fileError opening file %s!Error saving catalogErrorsEverythingExcluded pathsExport as…Extract from sourcesExtract notes for translators from:Extract text from source files in the following directories:Extracting translatable strings…Extractor setupExtractorsFailed command: %sFailed to communicate with Poedit process.Failed to load extracted catalog.Failed to merge gettext catalogs.Failed to update translation memory: %sFileFile “%s” doesn’t exist.File “%s” is not a message catalog.File “%s” is read-only and cannot be saved. Please save it under different name.File:Finalizing…FindFind NextFind PreviousFind and Replace…Find in commentsFind in source textsFind in translationsFind nextFind previousFix LanguageFix languageFix the HeaderFix the headerForm %iFrequentGNU gettextGeneralGo to Bookmark %iGo to bookmark %iHTML FilesHelpHide %sHide OthersHide SidebarHide Status BarHide this notification messageIDIf you continue with purging, all translations marked as deleted will be permanently removed. You will have to translate them again if they are added back in the future.Ignore caseImporting translations…Include beta versionsInformation about the translatorInstallInvalid fileInvocation:KeepLanguage Code or Name (e.g. en_GB)Language of the translation is the same as source language.Language of the translation isn’t set.Language of the translation:Language selectionLanguage team:Language:Last modifiedLearn About Gettext KeywordsLearn From Files…Learn MoreLearn More About CrowdinLearn about gettext keywordsLearn about plural formsLearn from files…Learn moreLearn more about CrowdinLeftLine %d of file “%s” is corrupted (not valid %s data).Line endings:List of extensions separated by semicolons (e.g. *.cpp;*.h):MO files can’t be directly edited in Poedit.Make Lower CaseMake Upper CaseMalformed header: “%s”Merging differences…MinimizeName of the project the translation is forName:Ne&xt UnfinishedNe&xt unfinishedNeeds WorkNeeds workNever let the list of strings take focus. If enabled, you must use Ctrl-arrows for keyboard navigation but you can also type text immediately, without having to press Tab to change focus.NewNew From &POT/PO File…New from &POT/PO file…New stringsNext Plural FormNext plural formNoNo Matches FoundNo entries could be pre-translated.No matches foundNo problems with the translation found.No references for the selected item.No translation projects listed in your Crowdin account.Not all plural forms are translated.Not authorized, please sign in again.Notes for translators:OKObsolete stringsOneOnly enable if you trust the quality of your TM. By default, all matches from the TM are marked as needing work and should be reviewed before use.Only fill in exact matchesOpenOpen Crowdin translationOpen From Crowdin…Open RecentOpen an existing PO file and edit the translation.Open catalogOpen catalog templateOpen from Crowdin…Open in EditorOpen in editorOpen...Open…OptionsOtherP&revious UnfinishedP&revious unfinishedPO TranslationPO Translation FilesPOT Translation TemplatesPOT files are only templates and don’t contain any translations themselves. To make a translation, create a new PO file based on the template.PastePaste and Match StylePathsPlease open and edit the corresponding PO file instead. When you save it, the MO file will be updated as well.Please save the file first. This section cannot be edited until then.PluralPlural forms expression used by the catalog is unusual for %s.Plural forms:Plural:PoeditPoedit - Catalogs managerPoedit automatically fixed invalid content in the file “%s”.Poedit can attempt to fill in new entries from only previous translations in the file or from your entire translation memory. Using the TM won’t be very effective if it’s near-empty, but it will get better as you add more translations to it.Poedit is an easy to use translations editor.Pre-&translate…Pre-translatePre-translatedPre-translated %u stringPre-translated %u stringsPre-translating…Pre-translation automatically finds exact or fuzzy matches for untranslated strings in the translation memory and fills in their translations.PreferencesPreferences...Preferences…Preserve formatting of existing filesPrevious Plural FormPrevious plural formPrevious source text:Project name and version:Project name:Project:PurgePurge deleted translationsQuitQuit %sRecentRedoReferences:RefreshRemaining: %dReplaceReplace &AllReplace &allReplacement stringReplace…Required header Plural-Forms is missing.ResetReset translation memoryResetting the translation memory will irrevocably delete all stored translations from it. You can’t undo this operation.ReviewRightSaveSave &As…Save &as…Save asSave as…Save catalogSave changesSelect &AllSelect AllSelect directorySelect translation files to importSelect your preferred languageServicesSet Bookmark %iSet LanguageSet bookmark %iSet languageShift+Show AllShow SidebarShow Spelling and GrammarShow Status BarShow SubstitutionsShow or hide the sidebarShow sidebarShow status barShow summary after catalog updateSidebarSign InSign OutSign inSign in to CrowdinSign outSigned in as:SingularSingular:Smart Copy/PasteSmart DashesSmart LinksSmart QuotesSort by &File OrderSort by &SourceSort by &TranslationSort by &file orderSort by &sourceSort by &translationSource code charset:Source code extractors are used to find translatable strings in the source code files and extract them so that they can be translated.Source code not available.Source fileSource file occurrence:Source textSource text — %sSource text:Sources KeywordsSources PathsSources keywordsSources pathsSpeechSpellchecking is disabled, because the dictionary for %s isn’t installed.Spelling and GrammarStart SpeakingStop SpeakingStored translations:String to findSubstitutionsSuggestionsSuggestions are not available if the translation language is not set correctly. Other features, such as plural forms, may be affected as well.Supports all programming languages recognized by GNU gettext tools (PHP, C/C++, C#, Perl, Python, Java, JavaScript and others).SyncSync with CrowdinSynchronize the translation with CrowdinSyncingSyncing errorSyncing with %s failed.Syncing with %s…Syncing with Crowdin failed.Syntax error in Plural-Forms header ("%s").TMTake an existing PO file or POT template and create a new translation from it.Take translatable strings from an existing POT template.Team name and email address or URLText ReplacementThe TM doesn’t contain any strings similar to the content of this file. It is only effective for semi-automatic translations after Poedit learns enough from files that you translated manually.The catalog couldn’t be saved in “%s” charset as specified in catalog settings. It was saved in UTF-8 instead and the setting was modified accordingly.The file cannot be compiled into the MO format and used.The file cannot be opened.The file contained duplicate items, which is not allowed in PO files and would prevent the file from being used. Poedit fixed the issue, but you should review translations of any items marked as needing work and correct them if necessary.The file may be either corrupted or in a format not recognized by Poedit.The file was compiled into the MO format, but it will probably not work correctly.The file was saved safely and compiled into the MO format, but it will probably not work correctly.The file was saved safely, but it cannot be compiled into the MO format and used.The file was saved safely.The old source text (before it changed during an update) that the now-inaccurate translation corresponds to.The simplest way to fill this catalog is to update it from a POT:The translation doesn’t start with a space.The translation ends with a newline, but the source text doesn’t.The translation ends with a space, but the source text doesn’t.The translation ends with “%s”, but the source text ends with “%s”.The translation is missing a newline at the end.The translation is missing a space at the end.The translation is ready for use, but %d entry is not translated yet.The translation is ready for use, but %d entries are not translated yet.The translation is ready for use.The translation should end with “%s”.The translation should not end with “%s”.The translation should start as a sentence.The translation should start with a lowercase character.The translation starts with a space, but the source text doesn’t.The translations were marked as needing work, because they may be inaccurate. You should review them for correctness.There are no translations. That’s unusual.There was a problem formatting the file nicely (but it was saved all right).There were errors when loading the catalog. Some data may be missing or corrupted as the result.These settings affect internal formatting of PO files. Adjust them if you have specific requirements e.g. because of version control.These strings are no longer in the sources. Poedit will remove them from the catalog now.These strings were found in the sources but were not in the catalog. Poedit will add them to the catalog now.This catalog has entries with plural forms, but doesn’t have Plural-Forms header configured.This file can only be edited in Crowdin’s web interface.This is the command used to launch the extractor. %o expands to the name of output file, %K to list of keywords, %F to list of input files, %C to charset flag (see below).This project has no files that can be translated in Poedit.This string was found in Poedit’s translation memory.This will be attached to the command line only if source code charset was given. %c expands to charset value.This will be attached to the command line once for each input file. %f expands to the filename.This will be attached to the command line once for each keyword. %k expands to the keyword.TotalTransformationsTranslatable entries aren’t added manually in the Gettext system, but are automatically extracted from source code. This way, they stay up to date and accurate. Translators typically use PO template files (POTs) prepared for them by the developer.Translated: %d of %d (%d %%)Translation LanguageTranslation MemoryTranslation Needs &WorkTranslation PropertiesTranslation needs &workTranslation propertiesTranslation suggestions:Translation — %sTranslation:Translations couldn’t be updated from the source code, because no code was found in the location specified in the catalog’s Properties.TwoUTF-8 (recommended)UndoUnhandled exception occurred: %sUnix (recommended)UntransUpUpdateUpdate allUpdate all catalogs in the projectUpdate catalog - synchronize it with sourcesUpdate from &POT File…Update from &POT file…Update from POTUpdate summaryUpdatesUpdating catalogUpdating failedUpdating the catalog failed. Click on 'Details >>' for details.Updating user information…Uploading translations…Use custom expressionUse custom list font:Use custom text fields font:Use default rules for this languageUse these keywords (function names) to recognize translatable strings in source files:Use translation memoryValidateValidation resultsVersion %sWaiting for authentication…Welcome to PoeditWhat is Crowdin?When updating from sourcesWhole words onlyWindowWindowsWrap aroundWrap at:YesYou can also extract translatable strings directly from the source code:You can’t drop more than one file on Poedit window.You must restart Poedit for this change to take effect.Your NameYour changes will be lost if you don’t save them.Your name and email address are only used to set the Last-Translator header of GNU gettext files.ZeroZoomaltctrldon’t delete temporary files (for debugging)e.g. nplurals=2; plural=(n > 1);fuzzy match within the filego to item at given line numberhandle a poedit:// URIpre-translate from TMshiftunknown languageyour_email@example.com“%s” is not a valid POT file.Project-Id-Version: poedit Report-Msgid-Bugs-To: help@poedit.net POT-Creation-Date: 2017-12-05 15:52+0100 PO-Revision-Date: 2017-07-27 03:14-0400 Last-Translator: vslavik Language-Team: Indonesian Language: id_ID MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=1; plural=0; X-Generator: crowdin.com X-Crowdin-Project: poedit X-Crowdin-Language: id X-Crowdin-File: /locales/poedit.pot (telah diubah) (belum disimpan)%d entri%d entri dipraterjemahkan.%d kesalahan%d masalah pada terjemahan ditemukan.%i baris dari berkas "%s" tidak dimuat dengan benar.Format %sPreferensi %sFormat %sIhw&alTent&ang PoeditTer&apkanMun&durPenanda &Buku&Batal&Bersihkan&Tutup&Salin&Hapus&Beres dan Berikutnya&Beres dan berikutnya&Sunting&Berkas&Cari…Manual gettext &GNUManual gettext &GNU&Lompat&Kelompokkan Menurut Konteks&Kelompokkan menurut konteks&Bantuan&Baru&Baru…Berikut&nya >Terjemahan Sela&njutnyaTerjemahan sela&njutnya&Tidak&OKBantuan &DaringBantuan &daring&Buka...&Buka…Tem&pel&Preferensi&Preferensi…Terjemahan Se&belumnyaTerjemahan se&belumnya&Properti…Buang Terjemahan Yang Diha&pusBuang terjemahan yang diha&pus&KeluarJadi &Lagi&Gantikan&Simpan&Simpan sebagaiPerlihatkan Referen&siPerlihatkan referen&si&BatalkanEntri Bel&um Diterjemahkan Di AwalEntri bel&um diterjemahkan di awalPerbar&ui dari SumberPerbar&ui dari sumber&Validasikan Terjemahan&Validasikan terjemahan&Lihat&Ya(0 baru, 0 usang)(Belajar lebih banyak tentang gettext GNU)(Baru: %i, usang: %i)(Pakai bahasa bawaan)(memerlukan Windows 8 atau yang lebih baru)< Se&belumnyaSeret dan Jatuhkan Folder Di Sini atau gunakan tombol +Folder Seret dan jatuhkan folder di sini atau gunakan tombol +Tentang %sAkunTambah KomentarTambah Berkas…Tambah Folder…Tambah Wildcard…Tambah komentarTambahkan direktori ke daftarTambah berkas…Tambah folder…Tambah wildcard…Kata kunci tambahanFlag xgettext tambahan:Tingkat lanjutPengaturan Ekstraksi Tingkat Lanjut…Pengaturan ekstraksi tingkat lanjutPengaturan ekstraksi tingkat lanjut…Semua Berkas TerjemahanSemua komentarJuga menggunakan kata kunci default untuk bahasa yang didukungAlt+Selalu ubah fokus ke ruas masukan teksSatu item di daftar berkas masukan:Satu item di daftar kata kunci:PenampilanTerapkanAnda yakin Anda ingin menghapus ekstraktor "%s"?Apakah Anda yakin Anda ingin me-reset memori terjemahan?Secara otomatis memeriksa pembaruanOtomatis mengkompilasi berkas MO saat menyimpanMundurPath dasar:Versi beta berisi fitur terbaru dan perbaikan, tetapi mungkin sedikit kurang stabil.Bawa Semua ke DepanBerkas katalog rusak: bentuk msgstr jamak digunakan tanpa msgid_pluralBerkas katalog rusak: msgstr bentuk tunggal dipakai bersama dengan msgid_pluralRambanSecara default, hasil-hasil yang tak akurat diisi dan ditandai sebagai perlu tindak lanjut. Contreng pilihan ini untuk hanya menyertakan kecocokan yang akurat.K&atalog&BersihkanBatalTak bisa membuat direktori sementara.Tak bisa menjalankan program: %sKapitalkanKatalogKatalog berubah. Apakah ingin menyimpan perubahan?Properti katalog&Manajer Katalog&Manajer katalogManajer KatalogUbah bahasa UISet karakter:Periksa Dokumen SekarangPeriksa Tata Bahasa Dengan EjaanPeriksa Ejaan Saat MengetikPeriksa Pemutakhiran…Periksa kesalahan dalam terjemahanPeriksa pemutakhiran…Periksa ejaanBersihkanBersihkan TerjemahanHapus komentarBersihkan terjemahanTutupBerkolaborasi terjemahan dengan orang lainBekerja sama pada suatu terjemahan dengan orang lainMengumpulkan berkas sumber…Perintah untuk mengekstrak terjemahan:Komentar:Komentar diawali dengan:Kompail ke MO…Kompail ke…Berkas Terjemahan DikompilasiAtur konfigurasi ekstraksi kode sumber dalam Properti.KonfirmasiSalinSalin Dari Bentuk TunggalSalin dari Teks SumberSalin dari bentuk tunggalSalin dari teks sumberPerbaiki Ejaan Secara OtomatisTak bisa memuat berkas %s, mungkin cacat.Tak bisa menyimpan berkas %s.Buat Terjemahan BaruBuat terjemahan baruBuat projek terjemahan baruKesalahan CrowdinCrowdin adalah sebuah platform manajemen lokalisasi daring dan alat penerjemahan kolaboratif. Poedit dapat menyelaraskan berkas PO yang dikelola pada Crowdin secara mulus.Ctrl+Po&tongPengekstraksi Ubahan:Pengekstraksi ubahan:MemotongUkuran basis data pada disk:HapusHapus ekstraktorHapus projekDirektori:Tampilkan &ID EntriMenampilkan &ID entriApakah Anda ingin melakukan pembaruan masal atas semua katalog di projek ini?Apakah Anda ingin menghapus projek?Apakah Anda ingin menghapus semua terjemahan yang tak dipakai lagi?Jangan SimpanJangan Tampilkan LagiJangan tandai yang cocok persis sebagai perlu tindak lanjutJangan simpanJangan tampilkan lagiTurunUnduh suatu berkas dari proyek Crowdin, terjemahkan, dan selaraskan balik perubahan Anda.Unduh terjemahan terbaru…Mengunduh terjemahan dinonaktifkan dalam proyek ini.&KeluarE&kspor sebagai HTML…SuntingSunting &KomentarSunting &komentarSunting KomentarEdit PenerjemahanSunting suatu terjemahanSunting komentarSunting projekMenyunting projekPenyuntinganSunting…Surel:EnterMasuk Layar PenuhEntri di katalog mungkin salah.Entri pada katalog ini memiliki cacah bentuk jamak yang berbeda dengan isi header Plural-FormsEntri dengan Kesalahan DuluEntri dengan kesalahan di awalEntri dengan kesalahan ditandai dengan warna merah dalam daftar. Rincian kesalahan akan ditampilkan ketika Anda memilih entri tersebut.Kesalahan saat memuat berkas katalog pesan "%s".Kesalahan saat membuka berkasGagal membuka berkas %s!Gagal menyimpan katalogKesalahanSegalanyaPath yang dikecualikanEkspor sebagai…Ekstrak dari sumberEkstrak catatan untuk penerjemah dari:Ekstrak teks dari berkas sumber di direktori berikut:Mengekstrak string yang dapat diterjemahkan…Penyiapan ekstraktorPengekstrakPerintah gagal: %sGagal berkomunikasi dengan proses Poedit.Gagal memuat katalog terekstrak.Gagal menggabung katalog-katalog gettext.Gagal memperbarui ingatan terjemahan: %sBerkasBerkas "%s" tidak ada.Berkas "%s" bukan suatu katalog pesan.Berkas "%s" hanya bisa dibaca dan tidak bisa disimpan. Harap simpan dengan nama berbeda.Berkas:Finalisasi…CariCari BerikutnyaCari SebelumnyaCari dan Ganti…Cari dalam komentarCari dalam teks sumberCari dalam terjemahanCari berikutnyaCari sebelumnyaPerbaiki BahasaPerbaiki bahasaPerbaiki HeaderPerbaiki headerFormulir %iSeringGNU gettextUmumKe Tanda Buku %iKe penanda %iBerkas HTMLBantuanSembunyikan %sSembunyikan Yang LainSembunyikan Bilah SisiSembunyikan Bilah StatusSembunyikan pesan pemberitahuan iniIDBila Anda meneruskan pembersihan, semua terjemahan yang ditandai sebagai terhapus akan dibuang secara permanen. Anda mesti menerjemahkan ulang bila mereka ditambahkan kembali di masa mendatang.Abaikan besar kecil hurufMengimpor terjemahan…Termasuk versi betaInformasi tentang penerjemahInstalBerkas tak validInvokasi:PertahankanKode atau Nama Bahasa (mis. en_GB)Bahasa terjemahan sama dengan bahasa sumber.Bahasa terjemahan belum dipilih.Bahasa terjemahan:Pilihan bahasaTim bahasa:Bahasa:Terakhir berubahPelajari tentang kata kunci gettextBelajar Dari Berkas…Pelajari Lebih LanjutPelajari Lebih Lanjut Tentang CrowdinBelajar tentang kata kunci gettextBelajar tentang bentuk jamakBelajar dari berkas…Belajar lagiPelajari lebih lanjut tentang CrowdinKiriBaris %d dari berkas "%s" rusak (data %s tak valid).Akhiran baris:Daftar ekstensi dipisah dengan titik koma (mis. *.cpp;*.h):Berkas MO tak dapat langsung disunting di Poedit.Jadikan Huruf KecilJadikan Huruf BesarHeader cacat: "%s"Menggabungkan perbedaan…MinimalkanTerjemahan ini untuk projek bernama tersebutNama:Belum Diterjemahkan Berikutn&yaBelum diterjemahkan berikutn&yaPerlu Tindak LanjutPerlu tindak lanjutJangan pernah memfokuskan ke daftar kalimat. Jika diaktifkan gunakan Ctrl-panah keyboard untuk navigasi tapi juga dapat dituliskan secara langsung, tanpa menekan Tab untuk merubah fokus.BaruBaru Dari Berkas &POT/PO…Baru dari berkas &POT/PO…Kalimat baruBentuk Jamak SelanjutnyaBentuk jamak berikutnyaTidakTak Ditemukan Yang CocokTidak ada entri yang bisa dipraterjemahkan.Tak ditemukan yang cocokTidak ditemukan masalah dengan terjemahan.Tidak ada acuan untuk butir yang dipilih.Tidak ada proyek terjemahan yang tercantum dalam akun Crowdin Anda.Tidak semua bentuk jamak diterjemahkan.Tidak berwenang, silakan masuk lagi.Catatan bagi para penerjemah:OKKalimat usangSatuHanya fungsikan jika Anda mempercayai kualitas TM Anda. Secara default, semua kecocokan dari TM ditandai sebagai perlu tindak lanjut dan mesti ditinjau sebelum dipakai.Hanya mengisi yang sama persisBukaBuka terjemahan CrowdinBuka Dari Crowdin…Buka Yang Baru-baru IniBuka berkas PO yang ada dan sunting terjemahan tersebut.Buka katalogBuka templat katalogBuka dari Crowdin…Buka Dalam PenyuntingBuka dalam penyuntingBuka...Buka…OpsiLainnyaBelum Dite&rjemahkan SebelumnyaBelum dite&rjemahkan sebelumnyaTerjemahan POBerkas Terjemahan POTemplat Terjemahan POTBerkas POT hanya templat dan tidak memuat terjemahan apapun. Untuk membuat suatu terjemahan, buatlah sebuah berkas PO baru berbasis templat itu.TempelTempel dan Cocokkan GayaPathSilakan membuka dan menyunting berkas PO yang sesuai. Ketika Anda menyimpan, berkas MO juga akan diperbarui.Harap simpan dulu. Seksi ini tak bisa disunting sebelum itu.JamakEkspresi bentuk jamak yang dipakai oleh katalog tak umum bagi %s.Bentuk jamak:Jamak:PoeditPoedit - Manajer katalogPoedit secara otomatis memperbaiki isi yang tak valid dalam berkas "%s".Poedit dapat mencoba untuk mengisi entri baru dari terjemahan sebelumnya dalam file atau dari memori seluruh terjemahan Anda. Menggunakan TM tidak akan sangat efektif jika memang mendekati kosong, tapi itu akan membaik untuk Anda menambahkan terjemahan kedalamnya.Poedit adalah penyunting terjemahan yang mudah dipakai.Pra&terjemahkan…Pra-terjemahDipraterjemahkanDipraterjemahkan %u stringMemraterjemahkan…Pra-terjemahan secara otomatis menemukan kecocokan persis atau ragu untuk kalimat yang belum diterjemahkan dalam memori terjemahan dan mengisikan terjemahan mereka.PreferensiPreferensi...Preferensi…Pertahankan format berkas yang sudah adaBentuk Jamak SebelumnyaBentuk jamak sebelumnyaTeks sumber sebelumnya:Nama dan versi projek:Nama projek:Proyek:BuangBuang terjemahan yang dihapusKeluarKeluar %sBaru-baru IniJadi LagiReferensi:SegarkanSisa: %dGantiGanti Semu&aGanti semu&aKalimat penggantiGanti…Kurang tajuk Plural-Forms yang diperlukan.ResetReset memori terjemahanMe-reset memori terjemahan akan menghapus seterusnya semua terjemahan yang disimpan darinya. Anda tidak dapat membatalkan operasian ini.TinjauKananSimpanSimp&an Sebagai…Simpan seb&agai…Simpan sebagaiSimpan sebagai…Simpan katalogSimpan perubahanPilih Semu&aPilih SemuaPilih direktoriPilih berkas terjemahan yang akan diimporPilih bahasa yang disukaiLayananAtur Tanda Buku %iAtur bahasaAtur tanda buku %iAtur bahasaShift+Tampilkan SemuaTampilkan Bilah SisiTampilkan Ejaan dan Tata BahasaTampilkan Bilah StatusTampilkan SubstitusiTampilkan atau sembunyikan bilah sisiTampilkan bilah sisiTampilkan bilah statusPerlihatkan rangkuman sesudah katalog diperbaruiBilah SisiMasukKeluarMasukMasuk ke CrowdinKeluarMasuk sebagai:TunggalTunggal:Salin/Tempel CerdasGaris Hubung CerdasTaut CerdasTanda Kutip CerdasUrutkan Berdasar Urutan &BerkasUrutkan Berdasar &SumberUrutkan Berdasar &TerjemahanUrutkan berdasar urutan &berkasUrutkan berdasar &sumberUrutkan berdasar &terjemahanSet karakter kode sumber:Pengekstrak kode sumber digunakan untuk menemukan kalimat yang dapat diterjemahkan dalam berkas kode sumber dan mengekstrak mereka sehingga dapat diterjemahkan.Kode sumber tidak tersedia.Berkas sumberKemunculan berkas sumber:Teks sumberTeks sumber — %sTeks sumber:Kata Kunci SumberPath SumberKata-kata kunci sumberPath sumberPidatoPemeriksaan ejaan dinonaktifkan, karena kamus untuk %s tidak diinstal.Ejaan dan Tata BahasaMulai BicaraBerhenti BicaraTerjemahan tersimpan:Kalimat yang dicariSubstitusiSaranSaran tidak tersedia jika bahasa terjemahan tidak diatur dengan benar. Fitur lainnya, seperti bentuk jamak, mungkin akan terpengaruh juga.Mendukung semua bahasa pemrograman yang dikenali oleh alat GNU gettext (PHP, C/C++, C#, Perl, Python, Java, JavaScript dan lain-lain).SelaraskanSelaraskan dengan CrowdinSelaraskan terjemahan dengan CrowdinMenyelaraskanGalat penyelarasanPenyelarasan dengan %s gagal.Selaraskan dengan %s…Penyelarasan dengan Crowdin gagal.Kesalahan sintaks di header Plural-Forms ("%s").TMAmbil berkas PO atau templat POT yang ada dan buat terjemahan baru darinya.Ambil kalimat-kalimat yang dapat diterjemahkan dari templat POT yang ada.URL atau alamat surel dan nama timTeks PenggantiTM tidak mengandung string apapun yang mirip dengan isi dari berkas ini. Ini hanya efektif untuk penerjemahan semi otomatis setelah Poedit belajar cukup dari berkas yang Anda terjemahkan secara manual.Katalog tak bisa disimpan dalam set karakter "%s" sebagaimana dinyatakan dalam pengaturan katalog. Sebagai gantinya itu disimpan dalam UTF-8 dan pengaturan disesuaikan.Berkas tak dapat dikompail ke dalam format MO dan digunakan.Berkas tidak dapat dibuka.Berkas memuat butir-butir duplikat, yang tak diijinkan dalam berkas PO dan akan mencegah berkas dipakai. Poedit memperbaiki masalah ini, tapi Anda mesti meninjau terjemahan yang ditandai sebagai perlu tindak lanjut dan memperbaiki mereka bila perlu.Berkas mungkin rusak atau dalam format yang tak dikenal oleh Poedit.Berkas telah dikompail ke format MO, tapi mungkin tak akan bekerja dengan benar.File disimpan dengan aman dan dikompail ke format MO, tapi itu mungkin tidak akan bekerja dengan benar.Berkas disimpan secara aman, tapi tak bisa dikompail ke dalam format MO dan dipakai.Berkas disimpan dengan aman.Teks sumber lama (sebelum berubah selama pemutakhiran) yang berkaitan dengan terjemahan kurang tepat.Cara termudah untuk memenuhi katalog ini adalah dengan memutakhirkannya dari suatu POT:Terjemahan tidak diawali dengan sebuah spasi.Terjemahan berakhir dengan ganti baris, tapi teks sumber tidak.Terjemahan berakhir dengan spasi, tapi teks sumber tidak.Terjemahan berakhir dengan "%s", tapi teks sumber berakhir dengan "%s".Terjemahan kurang ganti baris di akhir.Terjemahan kekurangan spasi di akhir.Terjemahan siap untuk digunakan, tetapi %d entri belum diterjemahkan.Terjemahan siap digunakan.Terjemahan harus berakhir dengan "%s".Terjemahan tidak boleh berakhir dengan "%s".Terjemahan harus mulai sebagai satu kalimat.Terjemahan harus mulai dengan karakter huruf kecil.Terjemahan diawali dengan sebuah spasi, tapi teks sumber tidak.Terjemahan ditandai sebagai perlu tindak lanjut, karena mereka mungkin tidak akurat. Anda mesti meninjau benar tidaknya mereka.Tidak ada terjemahan. Itu tidak biasa.Ada masalah pemformatan berkas secara rapi (tapi berkas telah disimpan secara baik).Terdapat kesalahan ketika memuat katalog. Beberapa data hilang atau rusak sebagai hasilnya.Pengaturan ini mempengaruhi pemformatan internal berkas PO. Sesuaikan mereka jika Anda memiliki persyaratan tertentu misalnya karena kontrol versi.Kalimat ini sudah tidak ada di sumber. Sekarang Poedit akan menghapus dari katalog.Kalimat ini ditemukan dalam sumber tapi tidak di katalog. Sekarang Poedit akan menambahkan ke katalog.Katalog ini memiliki entri dengan bentuk jamak, tapi Plural-Forms tak tertata di header.Berkas ini hanya dapat disunting dalam antar muka web Crowdin.Ini adalah perintah yang dipakai untuk meluncurkan pengekstrak. %o diubah ke nama berkas keluaran, %K ke daftar kata kunci, %F ke daftar berkas masukan, %C ke flag set karakter (lihat di bawah).Proyek ini tidak memiliki berkas yang dapat diterjemahkan dalam Poedit.String ini ditemukan dalam memori terjemahan Poedit.Ini akan dilampirkan ke baris perintah hanya jika sumber kode set karakter telah diberikan. %c diubah ke nilai set karakter.Ini akan dilampirkan ke baris perintah sekali untuk tiap berkas masukan. %f diubah ke nama berkasIni akan dilampirkan ke baris perintah sekali untuk tiap kata kunci. %k diubah ke kata kunci.TotalTransformasiEntri-entri yang dapat diterjemahkan tidak ditambahkan secara manual dalam sistem Gettext, tapi diekstrak secara otomatis dari kode sumber. Dengan cara ini, mereka tetap mutakhir dan akurat. Penerjemah biasanya memakai berkas templat PO (POT) yang disiapkan untuk mereka oleh pengembang.Diterjemahkan: %d dari %d (%d %%)Bahasa TerjemahanIngatan TerjemahanTerjemahan Perlu Tindak &LanjutProperti TerjemahanTerjemahan perlu tindak &lanjutProperti terjemahanSaran terjemahan:Terjemahan — %sTerjemahan:Terjemahan tidak diperbarui dari kode sumber, karena kode tidak ditemukan di lokasi yang ditentukan dalam katalog properti.DuaUTF-8 (disarankan)BatalEksepsi tidak tertangani terjadi: %sUnix (disarankan)BelumNaikPerbaruiPerbarui semuaPerbarui semua katalog dalam projekPerbarui katalog - mensinkronkan dengan sumberMutakhirkan dari Berkas &POT…Mutakhirkan dari berkas &POT…Perbarui dari POTPerbarui rangkumanPembaruanMemperbarui katalogGagal MemperbaruiProses memperbarui katalog gagal. Klik 'Rincian>>' untuk detilnya.Memutakhirkan informasi pengguna…Mengunggah terjemahan…Gunakan ekspresi pilihan sendiriGunakan fonta daftar ubahan:Gunakan fonta ruas teks ubahan:Pakai aturan baku untuk bahasa iniGunakan kata-kata kunci ini (nama-nama fungsi) untuk mengenali kalimat yang dapat diterjemahkan di berkas sumber:Pakai ingatan terjemahanValidasikanHasil validasiVersi %sMenunggu otentikasi…Selamat Datang di PoeditApa itu Crowdin?Ketika memperbarui dari sumberHanya kata lengkapJendelaWindowsUlang dari awalTekuk pada:YaAnda juga dapat mengekstrak string yang dapat diterjemahkan secara langsung dari kode sumber:Anda tak bisa menjatuhkan lebih dari satu berkas pada jendela Poedit.Jalankan ulang Poedit agar efek perubahan terlihat.Nama AndaPerubahan yang Anda buat akan hilang bila tidak Anda simpan.Nama dan alamat surel Anda hanya digunakan untuk menetapkan header Last-Translator dari berkas gettext GNU.NolZumaltctrljangan hapus berkas sementara (untuk pengawakutuan)mis. nplurals=2; plural=(n > 1);fuzzy cocok dengan filepergi ke butir pada nomor baris yang didiberikanmenangani URI poedit://pra-menerjemahkan dari TMshiftbahasa tak dikenalyour_email@example.com"%s" bukan berkas POT yang valid.poedit-2.0.6/locales/ko.mo0000664000372000037200000014327013230132077012321 00000000000000P%1 1 11<11J 2gW2 22 22 222 3333%3+333B3Q3W3]3f3z333333333333 3 44 4)4 04=4M4c4y44444444445 5(5D5Y5n55555555 6 '6:36:n6 666 6 666 6 7 #707?7O7c7~77777 71898'>8f88 8878689)=9g9 l9]w99A9I*:t:{:; ;;";:; U;`;.h;;;;;;;;<*<F<#[<<<<<<<<(<(=7= R=s=|== ==/= = >>#>9>L>b>2>>>>> ?)???????@@@ 2@?@R@Ee@"@?@ AA*.A YAfAyAK~A"A5A#B)BHAH HHI 'IHI PI ]IiI"nI;I(IIJ&J 5J ?JMJjJ ~JJJJJ JJK:K PK<^K.KKKKLL*%LPLVLgL xL LLJMNMgM MMMMM#MM'M$N7DN$|N%NNNNNNOOOO O2O P#P9PNP]PlPtP|PPPPPPPPQQQnQERZR>aR RRRR@RS-TxSx hxvxx xxx x xxx y %y3y Dy Oy]yoy y(y(y yy y zz6zHzZz%lz%zzzz{ {#{+{.@{2o{{{ {M{M.||| || |||| | |}'}8}R}c}~}$}}$}} }5~=~+B~n~~ ~~C~4~4(OxcQMU i z/. NWkӂ!2I^ u ǃ!="Eh{5 '<ZLu*…!9H%%< b'o ͇ۇ_)eIوHQew!E* p~ Ŋ ӊ  % 0 :EK5f!@_WG&` ۍ#H(b7̎72<;o)6܏cw ǐې  ) 7 E S an  Б ܑ  :VY0EV]nv&/.ޓ  *6 >"Lo(ٔ 5aF@<<Sj Ɩۖ ,, IWl 3#ژ!+ 6L5; &-HOe}5țܛ& = GQX_t  X%ekedvkQ Fr8  &G\  !+G\q ̢$Ӣ $ , : HRg| 1 ̣֣|!!/D Vd*x ȥ   %3G`x,ئ2 # 0 : GQ f"sçۧ'<Qf{+. Zh ѩߩ R[m~ Ǫ{ # ?M#^(<ǬKJS)ȭܭ+yůO_ynX*AjlGײ4UTIH/=+mc./,3\44ŵXS3ڶVteڷui߸|dN0M@MfZ|׼޼ / .G ft  ƾHL [%i 4տ8 $C$h g$c!)7"'kJ  *Fay }TPIY<pX\cg6l 5%'MSi7D}],6 9BW6tC3H>C'# )h?*Kq#-0^aG2zFYblx&2LADZ.EwPi=Ab[kv @4uh~ uL@|pnf.nTN? QI2:qOKcajd F!p ]U>T+rXi=J%Vxz51^s4 NH/F"8/XJ`om #UwQk :Gs$ 8jL!~I1,(<D-9B>|;$H(E?g<y!dYgIo \ <eN+rM5&cM5 :"K-A+EmZ7C"603B $%RfRVeyOG*S@ M,4}_{O%W91J)S[`' 7)v &;*{(l_.03=\7P8/t';P (modified) (unsaved)%d entry%d entries%d entry was pre-translated.%d entries were pre-translated.%d error%d errors%d issue with the translation found.%d issues with the translation found.%i line of file “%s” was not loaded correctly.%i lines of file “%s” were not loaded correctly.%s Format%s Preferences%s format&About&About Poedit&Apply&Back&Bookmarks&Cancel&Clear&Close&Copy&Delete&Done and Next&Done and next&Edit&File&Find…&GNU gettext Manual&GNU gettext manual&Go&Group By Context&Group by context&Help&New&New…&Next >&Next Translation&Next translation&No&OK&Online Help&Online help&Open...&Open…&Paste&Preferences&Preferences…&Previous Translation&Previous translation&Properties…&Purge Deleted Translations&Purge deleted translations&Quit&Redo&Replace&Save&Save as&Show References&Show references&Undo&Untranslated Entries First&Untranslated entries first&Update from Sources&Update from sources&Validate Translations&Validate translations&View&Yes(0 new, 0 obsolete)(Learn more about GNU gettext)(New: %i, obsolete: %i)(Use default language)(requires Windows 8 or newer)< &PreviousDrag and Drop Folders Here or use the + buttonDrag and drop folders here or use the + buttonAbout %sAccountsAdd CommentAdd Files…Add Folders…Add Wildcard…Add commentAdd directory to the listAdd files…Add folders…Add wildcard…Additional keywordsAdditional xgettext flags:AdvancedAdvanced Extraction Settings…Advanced extraction settingsAdvanced extraction settings…All Translation FilesAll commentsAlso use default keywords for supported languagesAlt+Always change focus to text input fieldAn item in input files list:An item in keywords list:AppearanceApplyAre you sure you want to delete the “%s” extractor?Are you sure you want to reset the translation memory?Automatically check for updatesAutomatically compile MO file when savingBackBase path:Beta versions contain the latest new features and improvements, but may be a bit less stable.Bring All to FrontBroken catalog file: plural form msgstr used without msgid_pluralBroken catalog file: singular form msgstr used together with msgid_pluralBrowseBy default, inaccurate results are filled in as well and marked as needing work. Check this option to only include accurate matches.C&atalogC&learCancelCannot create temporary directory.Cannot execute program: %sCapitalizeCatalogCatalog modified. Do you want to save changes?Catalog propertiesCatalogs &ManagerCatalogs &managerCatalogs ManagerChange UI languageCharset:Check Document NowCheck Grammar With SpellingCheck Spelling While TypingCheck for Updates…Check for errors in the translationCheck for updates…Check spellingClearClear TranslationClear the commentClear translationCloseCollaborate on a Translation with OthersCollaborate on a translation with othersCollecting source files…Command to extract translations:Comment:Comments prefixed with:Compile to MO…Compile to…Compiled Translation FilesConfigure source code extraction in Properties.ConfirmationCopyCopy From SingularCopy from Source TextCopy from singularCopy from source textCorrect Spelling AutomaticallyCouldn’t load file %s, it is probably corrupted.Couldn’t save file %s.Create New TranslationCreate new translationCreate new translations projectCrowdin errorCrowdin is an online localization management platform and collaborative translation tool. Poedit can seamlessly sync PO files managed at Crowdin.Ctrl+Cu&tCustom Extractors:Custom extractors:CutDatabase size on disk:DeleteDelete extractorDelete the projectDirectories:Display Entry &IDsDisplay entry &IDsDo you really want to do mass update of all catalogs in this project?Do you want to delete the project?Do you want to remove all translations that are no longer used?Don’t SaveDon’t Show AgainDon’t mark exact matches as needing workDon’t saveDon’t show againDownDownload a file from Crowdin project, translate and sync your changes back.Downloading latest translations…Downloading translations is disabled in this project.E&xitE&xport as HTML…EditEdit &CommentEdit &commentEdit CommentEdit a TranslationEdit a translationEdit commentEdit projectEdit the projectEditingEdit…Email:EnterEnter Full ScreenEntries in the catalog are probably incorrect.Entries in this catalog have different plural forms count from what catalog’s Plural-Forms header saysEntries with Errors FirstEntries with errors firstEntries with errors were marked in red in the list. Details of the error will be shown when you select such an entry.Error loading message catalog file “%s”.Error opening fileError opening file %s!Error saving catalogErrorsEverythingExcluded pathsExport as…Extract from sourcesExtract notes for translators from:Extract text from source files in the following directories:Extracting translatable strings…Extractor setupExtractorsFailed command: %sFailed to communicate with Poedit process.Failed to load extracted catalog.Failed to merge gettext catalogs.Failed to update translation memory: %sFileFile “%s” doesn’t exist.File “%s” is not a message catalog.File “%s” is read-only and cannot be saved. Please save it under different name.File:Finalizing…FindFind NextFind PreviousFind and Replace…Find in commentsFind in source textsFind in translationsFind nextFind previousFix LanguageFix languageFix the HeaderFix the headerForm %iFrequentGNU gettextGeneralGo to Bookmark %iGo to bookmark %iHTML FilesHelpHide %sHide OthersHide SidebarHide Status BarHide this notification messageIDIf you continue with purging, all translations marked as deleted will be permanently removed. You will have to translate them again if they are added back in the future.Ignore caseImporting translations…Include beta versionsInformation about the translatorInstallInvalid fileInvocation:KeepLanguage Code or Name (e.g. en_GB)Language of the translation is the same as source language.Language of the translation isn’t set.Language of the translation:Language selectionLanguage team:Language:Last modifiedLearn About Gettext KeywordsLearn From Files…Learn MoreLearn More About CrowdinLearn about gettext keywordsLearn about plural formsLearn from files…Learn moreLearn more about CrowdinLeftLine %d of file “%s” is corrupted (not valid %s data).Line endings:List of extensions separated by semicolons (e.g. *.cpp;*.h):MO files can’t be directly edited in Poedit.Make Lower CaseMake Upper CaseMalformed header: “%s”Merging differences…MinimizeName of the project the translation is forName:Ne&xt UnfinishedNe&xt unfinishedNeeds WorkNeeds workNever let the list of strings take focus. If enabled, you must use Ctrl-arrows for keyboard navigation but you can also type text immediately, without having to press Tab to change focus.NewNew From &POT/PO File…New from &POT/PO file…New stringsNext Plural FormNext plural formNoNo Matches FoundNo entries could be pre-translated.No matches foundNo problems with the translation found.No references for the selected item.No translation projects listed in your Crowdin account.Not all plural forms are translated.Not authorized, please sign in again.Notes for translators:OKObsolete stringsOneOnly enable if you trust the quality of your TM. By default, all matches from the TM are marked as needing work and should be reviewed before use.Only fill in exact matchesOpenOpen Crowdin translationOpen From Crowdin…Open RecentOpen an existing PO file and edit the translation.Open catalogOpen catalog templateOpen from Crowdin…Open in EditorOpen in editorOpen...Open…OptionsOtherP&revious UnfinishedP&revious unfinishedPO TranslationPO Translation FilesPOT Translation TemplatesPOT files are only templates and don’t contain any translations themselves. To make a translation, create a new PO file based on the template.PastePaste and Match StylePathsPlease open and edit the corresponding PO file instead. When you save it, the MO file will be updated as well.Please save the file first. This section cannot be edited until then.PluralPlural forms expression used by the catalog is unusual for %s.Plural forms:Plural:PoeditPoedit - Catalogs managerPoedit automatically fixed invalid content in the file “%s”.Poedit can attempt to fill in new entries from only previous translations in the file or from your entire translation memory. Using the TM won’t be very effective if it’s near-empty, but it will get better as you add more translations to it.Poedit is an easy to use translations editor.Pre-&translate…Pre-translatePre-translatedPre-translated %u stringPre-translated %u stringsPre-translating…Pre-translation automatically finds exact or fuzzy matches for untranslated strings in the translation memory and fills in their translations.PreferencesPreferences...Preferences…Preserve formatting of existing filesPrevious Plural FormPrevious plural formPrevious source text:Project name and version:Project name:Project:PurgePurge deleted translationsQuitQuit %sRecentRedoReferences:RefreshRemaining: %dReplaceReplace &AllReplace &allReplacement stringReplace…Required header Plural-Forms is missing.ResetReset translation memoryResetting the translation memory will irrevocably delete all stored translations from it. You can’t undo this operation.ReviewRightSaveSave &As…Save &as…Save asSave as…Save catalogSave changesSelect &AllSelect AllSelect directorySelect translation files to importSelect your preferred languageServicesSet Bookmark %iSet LanguageSet bookmark %iSet languageShift+Show AllShow SidebarShow Spelling and GrammarShow Status BarShow SubstitutionsShow or hide the sidebarShow sidebarShow status barShow summary after catalog updateSidebarSign InSign OutSign inSign in to CrowdinSign outSigned in as:SingularSingular:Smart Copy/PasteSmart DashesSmart LinksSmart QuotesSort by &File OrderSort by &SourceSort by &TranslationSort by &file orderSort by &sourceSort by &translationSource code charset:Source code extractors are used to find translatable strings in the source code files and extract them so that they can be translated.Source code not available.Source fileSource file occurrence:Source textSource text — %sSource text:Sources KeywordsSources PathsSources keywordsSources pathsSpeechSpellchecking is disabled, because the dictionary for %s isn’t installed.Spelling and GrammarStart SpeakingStop SpeakingStored translations:String to findSubstitutionsSuggestionsSuggestions are not available if the translation language is not set correctly. Other features, such as plural forms, may be affected as well.Supports all programming languages recognized by GNU gettext tools (PHP, C/C++, C#, Perl, Python, Java, JavaScript and others).SyncSync with CrowdinSynchronize the translation with CrowdinSyncingSyncing errorSyncing with %s failed.Syncing with %s…Syncing with Crowdin failed.Syntax error in Plural-Forms header ("%s").TMTake an existing PO file or POT template and create a new translation from it.Take translatable strings from an existing POT template.Team name and email address or URLText ReplacementThe TM doesn’t contain any strings similar to the content of this file. It is only effective for semi-automatic translations after Poedit learns enough from files that you translated manually.The catalog couldn’t be saved in “%s” charset as specified in catalog settings. It was saved in UTF-8 instead and the setting was modified accordingly.The file cannot be compiled into the MO format and used.The file cannot be opened.The file contained duplicate items, which is not allowed in PO files and would prevent the file from being used. Poedit fixed the issue, but you should review translations of any items marked as needing work and correct them if necessary.The file may be either corrupted or in a format not recognized by Poedit.The file was compiled into the MO format, but it will probably not work correctly.The file was saved safely and compiled into the MO format, but it will probably not work correctly.The file was saved safely, but it cannot be compiled into the MO format and used.The file was saved safely.The old source text (before it changed during an update) that the now-inaccurate translation corresponds to.The simplest way to fill this catalog is to update it from a POT:The translation doesn’t start with a space.The translation ends with a newline, but the source text doesn’t.The translation ends with a space, but the source text doesn’t.The translation ends with “%s”, but the source text ends with “%s”.The translation is missing a newline at the end.The translation is missing a space at the end.The translation is ready for use, but %d entry is not translated yet.The translation is ready for use, but %d entries are not translated yet.The translation is ready for use.The translation should end with “%s”.The translation should not end with “%s”.The translation should start as a sentence.The translation should start with a lowercase character.The translation starts with a space, but the source text doesn’t.The translations were marked as needing work, because they may be inaccurate. You should review them for correctness.There are no translations. That’s unusual.There was a problem formatting the file nicely (but it was saved all right).There were errors when loading the catalog. Some data may be missing or corrupted as the result.These settings affect internal formatting of PO files. Adjust them if you have specific requirements e.g. because of version control.These strings are no longer in the sources. Poedit will remove them from the catalog now.These strings were found in the sources but were not in the catalog. Poedit will add them to the catalog now.This catalog has entries with plural forms, but doesn’t have Plural-Forms header configured.This file can only be edited in Crowdin’s web interface.This is the command used to launch the extractor. %o expands to the name of output file, %K to list of keywords, %F to list of input files, %C to charset flag (see below).This project has no files that can be translated in Poedit.This string was found in Poedit’s translation memory.This will be attached to the command line only if source code charset was given. %c expands to charset value.This will be attached to the command line once for each input file. %f expands to the filename.This will be attached to the command line once for each keyword. %k expands to the keyword.TotalTransformationsTranslatable entries aren’t added manually in the Gettext system, but are automatically extracted from source code. This way, they stay up to date and accurate. Translators typically use PO template files (POTs) prepared for them by the developer.Translated: %d of %d (%d %%)Translation LanguageTranslation MemoryTranslation Needs &WorkTranslation PropertiesTranslation needs &workTranslation propertiesTranslation suggestions:Translation — %sTranslation:Translations couldn’t be updated from the source code, because no code was found in the location specified in the catalog’s Properties.TwoUTF-8 (recommended)UndoUnhandled exception occurred: %sUnix (recommended)UntransUpUpdateUpdate allUpdate all catalogs in the projectUpdate catalog - synchronize it with sourcesUpdate from &POT File…Update from &POT file…Update from POTUpdate summaryUpdatesUpdating catalogUpdating failedUpdating the catalog failed. Click on 'Details >>' for details.Updating user information…Uploading translations…Use custom expressionUse custom list font:Use custom text fields font:Use default rules for this languageUse these keywords (function names) to recognize translatable strings in source files:Use translation memoryValidateValidation resultsVersion %sWaiting for authentication…Welcome to PoeditWhat is Crowdin?When updating from sourcesWhole words onlyWindowWindowsWrap aroundWrap at:YesYou can also extract translatable strings directly from the source code:You can’t drop more than one file on Poedit window.You must restart Poedit for this change to take effect.Your NameYour changes will be lost if you don’t save them.Your name and email address are only used to set the Last-Translator header of GNU gettext files.ZeroZoomaltctrldon’t delete temporary files (for debugging)e.g. nplurals=2; plural=(n > 1);fuzzy match within the filego to item at given line numberhandle a poedit:// URIpre-translate from TMshiftunknown languageyour_email@example.com“%s” is not a valid POT file.Project-Id-Version: poedit Report-Msgid-Bugs-To: help@poedit.net POT-Creation-Date: 2017-12-05 15:52+0100 PO-Revision-Date: 2017-09-21 11:38-0400 Last-Translator: vslavik Language-Team: Korean Language: ko_KR MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=1; plural=0; X-Generator: crowdin.com X-Crowdin-Project: poedit X-Crowdin-Language: ko X-Crowdin-File: /locales/poedit.pot (수정함) (저장하지 않음)항목 %d개항목 %d개를 사전 번역했습니다.오류 %d개번역에서 %d개의 문제점을 찾았습니다."%2$s" 파일의 %1$i번째 줄을 제대로 불러오지 못했습니다.%s Format%s 설정%s 형식정보(&A)Poedit 정보(&A)적용(&A)뒤로(&B)책갈피(&B)취소(&C)지우기(&C)닫기(&C)복사(&C)삭제(&D)끝내고 다음으로 진행(&D)끝내고 다음으로 진행(&D)편집(&E)파일(&F)찾기(&F)…GNU gettext 설명서(&G)GNU gettext 설명서(&G)이동(&G)상태별 모음(&G)상태별 모음(&G)도움말(&H)새로 만들기(&N)새 항목(%N)…다음(&N) >다음 번역(&N)다음 번역(&N)아니요(&N)확인(&O)온라인 도움말(&O)온라인 도움말(&O)열기(&O)...열기(&O)…붙여넣기(&P)설정(&P)설정(&P)…이전 번역(&P)이전 번역(&P)속성(&P)…삭제한 번역을 완전히 제거(&P)삭제한 번역을 완전히 제거(&P)종료(&Q)다시 실행(&R)바꾸기(&R)저장(&S)다른 이름으로 저장(&S)참조 보기(&S)참조 보기(&S)실행 취소(&U)번역하지 않은 항목 먼저(&U)번역하지 않은 항목 먼저(&U)원본으로 업데이트(&U)원본으로 업데이트(&U)번역 검증(&V)번역 검증(&V)보기(&V)예(&Y)(신규 0, 제거 0)(GNU gettext에 대해 자세히 알아보기)(새 문자열: %i개, 오래된 문자열: %i개)(기본 언어 사용)(Windows 8 이상 필요)< 이전(&P)여기에 폴더를 끌어 놓거나, + 단추를 사용하세요여기에 폴더를 끌어 놓거나, + 단추를 사용하세요<이름 없음>%s 정보계정주석 추가파일 추가…폴더 추가…와일드카드 추가…주석 추가디렉터리를 목록에 추가파일 추가…폴더 추가…와일드카드 추가…추가 키워드xgettext 추가 플래그:고급고급 확장 프로그램 설정…고급 추출 설정고급 확장 프로그램 설정…모든 번역 파일모든 주석지원되는 언어의 기본 키워드 또한 사용Alt+항상 포커스를 입력 창으로 옮김입력 파일 목록의 항목:키워드 목록의 항목:모양새적용정말로 “%s” 추출 프로그램을 삭제하시겠습니까?번역 기억 장소를 초기화하시겠습니까?업데이트 자동 확인저장할 때 MO 파일 자동 컴파일뒤로기본 경로:베타 버전에는 최신 기능과 개선 사항이 있지만, 덜 안정적일 수 있습니다.모두 앞으로카탈로그 파일 오류: msgid_plural 없이 사용한 복수 형식의 msgstr카탈로그 파일 오류: msgid_plural을 사용한 단수 형식의 msgstr찾아보기기본 설정으로, 있는 그대로의 부정확한 결과로 채우며 작업 필요로 표시합니다. 정확하게 일치하는 내용만 포함하려면 이 설정을 켜세요.카탈로그(&A)지우기(&L)취소임시 디렉터리를 만들 수 없습니다.프로그램을 실행할 수 없습니다: %s대문자화카탈로그카탈로그를 수정했습니다. 바뀐 내용을 저장하시겠습니까?카탈로그 속성카탈로그 관리자(&M)카탈로그 관리자(&M)카탈로그 관리자사용자 언어 바꾸기문자 집합:지금 문서 검사철자 및 문법 검사입력하는 동안 철자 검사업데이트 확인…번역 오류 검사업데이트 확인…철자 검사지우기번역 지우기주석 지우기번역 지우기닫기다른 사람과 공동 번역다른 사람과 공동 번역소스 파일 수집 중…번역을 추출할 명령:주석:다음 접두부를 붙인 주석:MO로 컴파일…다음으로 컴파일…컴파일한 번역 파일속성에서 소스 코드 추출을 설정합니다.확인복사단수 표현 복사소스 텍스트에서 복사단수 표현 복사소스 텍스트에서 복사자동으로 철자 교정%s 파일을 불러오지 못했습니다. 손상되었을 수 있습니다."%s" 파일을 저장할 수 없습니다.새 번역 만들기새 번역 만들기새 번역 프로젝트 만들기Crowdin 오류Crowdin은 온라인 번역 관리 플랫폼이며 협력을 기반으로 한 번역 도구입니다. Poedit은 Crowdin에서 PO 파일을 감쪽같이 동기화할 수 있습니다.Ctrl+잘라내기(&T)사용자 지정 추출 프로그램:사용자 지정 추출 프로그램:잘라내기디스크의 데이터베이스 크기:삭제추출 프로그램 삭제프로젝트 삭제디렉터리:항목 ID 표시(&I)항목 ID 표시(&I)정말로 이 프로젝트의 모든 카탈로그를 통째로 업데이트 하시겠습니까?프로젝트를 삭제하시겠습니까?더 이상 사용하지 않는 모든 번역을 제거하시겠습니까?저장하지 않음다시 표시하지 않기정확하게 일치하는 내용은 작업 필요로 표시하지 않기저장하지 않음다시 표시하지 않기아랫화살표Crowdin 프로젝트에서 파일을 다운로드하여 번역하고, 동기화하여 파일을 되돌려 보냅니다.최신 번역 다운로드 중…이 프로젝트에서는 번역을 다운로드할 수 없습니다.나가기(&X)HTML로 내보내기(&X)…편집주석 편집(&C)주석 편집(&C)주석 편집번역 편집번역 편집주석 편집프로젝트 편집프로젝트 편집편집 중수정…이메일:Enter전체 화면상태 진입카탈로그의 항목이 잘못된 것 같습니다.이 카탈로그에는 Plural-Forms 헤더에서 지정한 숫자와 다른 서수형 형식 개수를 지닌 항목이 있습니다오류 항목을 우선 표시오류 항목을 우선 표시오류가 있는 항목은 붉은색으로 표시했습니다. 자세한 오류 내용은 각각의 항목을 선택했을 때 나타납니다."%s" 파일의 메시지 카탈로그를 불러오는 중 오류가 발생했습니다.파일 여는 중 오류%s 파일을 여는 중 오류 발생!카탈로그 저장 오류오류모두제외 경로다음으로 내보내기…소스에서 가져오기번역 참고 주석 추출 대상:다음 디렉터리의 소스 파일에서 텍스트를 추출합니다:번역 가능한 문자열 추출 중…추출 프로그램 설정추출 프로그램오류 발생: %sPoedit 프로세스와의 통신에 실패했습니다.추출한 카탈로그를 불러오지 못했습니다.gettext 카탈로그 병합에 실패했습니다.번역 기억 장소 업데이트에 실패했습니다: %s파일"%s" 파일이 존재하지 않습니다."%s" 파일은 메시지 카탈로그가 아닙니다."%s" 파일은 읽기 전용이며 저장할 수 없습니다. 다른 이름으로 저장하세요.파일:마무리 중…찾기다음 찾기이전 찾기찾고 바꾸기…주석에서 찾기원본 문자열에서 찾기번역에서 찾기다음 찾기이전 찾기언어 수정언어 수정헤더 수정헤더 수정%i번 양식자주 보는 항목GNU gettext일반책갈피 %i번으로 이동책갈피 %i번으로 이동HTML 파일도움말%s 숨기기다른 항목 숨기기사이드바 숨김상태 표시줄 숨기기이 알림 메시지 숨김ID제거를 진행하면 삭제한 것으로 표시한 모든 번역이 완전히 제거됩니다. 해당 문자열이 도로 추가되면 다시 번역해야 합니다.대소문자 무시번역 가져오는 중…베타 버전 포함번역자 정보설치잘못된 파일실행:그대로 유지언어 코드 또는 이름(예 en_GB)번역 언어가 원본 언어와 같습니다.번역 언어가 설정되지 않았습니다.번역 언어:언어 선택언어 팀:언어:최종 편집Gettext 키워드 더 알아보기파일에서 체득…더 알아보기Crowdin 더 알아보기gettext 키워드에 대해 알아보기서수 형식 알아보기파일에서 체득…더 알아보기Crowdin 더 알아보기왼쪽 화살표"%2$s" 파일의 %1$d번째 줄이 손상되었습니다. (%3$s 데이터가 유효하지 않음)행 마무리 문자:세미콜론(;)으로 구분한 확장자 목록(예 *.cpp;*.h):MO 파일은 Poedit에서 직접 편집할 수 없습니다.소문자로 만들기대문자로 만들기잘못된 헤더: "%s"차이점 병합 중…최소화번역 프로젝트 이름이름:다음 미완료(&X)다음 미완료(&X)작업 필요작업 필요문자열 목록에 포커스가 가지 않게 합니다. 이 상태에서는 키보드 상의 Ctrl-화살표를 눌러 이동한 후 문자열을 편집해야 합니다. 탭 키를 누르실 필요는 없습니다.새 파일POT/PO 파일에서 새 항목 생성(&P)…POT/PO 파일에서 새 항목 생성(&P)…새 문자열다음 복수 형태다음 복수 형태아니요일치하는 결과 없음사전 번역할 수 있는 항목이 없습니다.일치하는 결과가 없습니다번역에 문제가 없습니다.선택한 항목의 참조가 없습니다.Crowdin 계정에 번역 프로젝트가 없습니다.모든 서수 형식이 번역되지 않았습니다.인증되지 않았습니다. 다시 로그인하십시오.번역 참고:확인제거한 문자열하나기본 설정으로는 번역 기억 장소에서 가져온 모든 일치 항목은 작업 필요 항목으로 표시하여 활용 전에 검토해야 합니다. 번역 기억 장소 품질을 신뢰하는 경우에만 이 설정을 켜세요.정확하게 일치하는 내용만 채우기열기Crowdin 번역 열기Crowdin에서 열기…최근 파일 열기기존 PO 파일을 열어 번역을 편집합니다.카탈로그 열기카탈로그 양식 열기Crowdin에서 열기…편집기에서 열기편집기에서 열기열기...열기…설정기타이전 미완료(&R)이전 미완료(&R)PO 번역PO 번역 파일POT 번역 양식POT 파일은 양식일 뿐이며 어떤 번역 내용도 들어있지 않습니다. 번역하려면 이 양식을 기반으로 새 PO 파일을 만드십시오.붙여넣기붙여넣기 및 일치 비교 방식경로대신 관련 PO 파일을 열어 편집하세요. 저장할 때 MO 파일도 함께 업데이트됩니다.먼저 파일을 저장하세요. 저장하기 전까지는 이 구역을 편집할 수 없습니다.복수카탈로그에서 사용하는 %s 언어에 대한 서수 형식 표현식은 일반적인 표현식이 아닙니다.복수 형태:복수:PoeditPoedit - 카탈로그 관리자Poedit가 “%s” 파일의 잘못된 내용을 자동으로 수정했습니다.Poedit은 해당 파일의 이전 번역만을 활용하거나 보유한 번역 기억 장소 전체를 활용하여 새 항목 채우기를 시도할 수 있습니다. 번역 기억 장소가 거의 비어 있을 경우 효율적이지는 않지만, 번역을 더 많이 저장하면 좋은 결과를 얻을 수 있습니다.Poedit는 사용하기 쉬운 번역 편집기입니다.사전 번역(&T)…사전 번역사전 번역함사전 번역한 문자열 %u개사전 번역 중…사전 번역은 번역 기억 장소에서 번역하지 않은 문자열과 정확하거나 모호하게 일치하는 번역을 자동으로 찾아 번역 내용을 채웁니다.설정설정…설정…기존 파일 서식 유지이전 복수 형태이전 복수 형태이전 원본 텍스트:프로젝트 이름과 버전:프로젝트 이름:프로젝트:제거삭제한 번역을 완전히 제거종료%s 끝내기최근 목록재실행참조:새로 고침남음: %d개바꾸기모두 바꾸기(&A)모두 바꾸기(&A)바꿀 문자열바꾸기…필요한 Plural-Forms 헤더가 빠졌습니다.초기화번역 기억장소 초기화번역 기억 장소를 초기화하면 저장된 모든 번역이 완전히 삭제됩니다. 이 동작은 취소할 수 없습니다.검토오른쪽 화살표저장다른 이름으로 저장(&A)…다른 이름으로 저장(&A)…다른 이름으로 저장다음 이름으로 저장…카탈로그 저장변경 사항 저장모두 선택(&A)모두 선택디렉터리 선택가져올 번역 파일을 선택하세요선호하는 언어 선택서비스책갈피 %i번으로 설정언어 설정책갈피 %i번으로 설정언어 설정Shift+모두 표시사이드바 표시철자 및 문법 표시상태 표시줄 표시대체 항목 표시사이드바를 표시하거나 숨깁니다가장자리 표시줄 표시상태 표시줄 표시카탈로그 업데이트 후 요약 정보 보기사이드바로그인로그아웃로그인Crowdin에 로그인로그아웃다음 사용자로 로그인 함:단수단수:스마트 복사/붙여넣기스마트 대시 입력스마트 링크스마트 인용파일순 정렬(&F)원본순 정렬(&S)번역순 정렬(&T)파일순 정렬(&F)원본순 정렬(&S)번역순 정렬(&T)소스 코드 문자 집합:소스 코드 추출 프로그램은 소스 코드 파일에서 번역할 수 있는 문자열을 찾고 추출하여 번역할 수 있게 합니다.소스 코드가 존재하지 않습니다.원본 파일원본 파일 발견 횟수:원본 텍스트원본 텍스트 — %s원본 텍스트:소스 키워드소스 경로소스 키워드소스 경로말하기%s 언어 사전을 설치하지 않아 철자 검사를 비활성화했습니다.철자 및 문법말하기 시작말하기 중지저장한 번역:찾을 문자열대체 항목제안번역 언어를 올바르게 선택하지 않으면 제안 기능을 사용할 수 없습니다. 서수 형식 같은 기능도 마찬가지로 영향을 받을 수 있습니다.GNU gettext 도구에서 인식하는 모든 프로그래밍 언어(PHP, C/C++, C#, Perl, Python, Java, JavaScript 등)를 지원합니다.동기화Crowdin 동기화Crowdin과 번역 동기화동기화 중동기화 오류%s 동기화에 실패했습니다.%s와(과) 동기화 중…Crowdin 동기화에 실패했습니다.Plural-Forms 헤더에 문법 오류가 있습니다. ("%s")TM기존 PO 파일 또는 POT 양식을 취하여 새 번역을 만듭니다.기존 POT 양식에서 번역할 수 있는 문자열을 가져옵니다.팀 이름과 이메일 주소 또는 URL텍스트 바꾸기번역 기억 장소에 이 파일의 내용과 유사한 문자열이 없습니다. Poedit이 수동으로 번역한 파일에서 충분히 학습되어야 반자동 번역을 제대로 활용할 수 있습니다.카탈로그에서 지정한 설정인 "%s" 문자 집합으로 카탈로그를 저장할 수 없습니다. 파일이 UTF-8로 저장되었으며 설정 또한 이에 맞춰 수정되었습니다.MO 파일로 컴파일할 수 없습니다.파일을 열 수 없습니다.PO 파일에서 허용되지 않는 중복 항목이 있어 파일 활용에 문제가 생길 수 있습니다. Poedit이 해당 문제를 해결했지만 필요한 경우 작업할 항목을 표시해둔 부분의 번역을 검토해야 합니다.파일이 손상되었거나 Poedit에서 인식할 수 없는 형식입니다.MO 형식으로 파일을 컴파일했지만 올바르게 작동하지 않을 수 있습니다.파일을 안전하게 저장하고 MO 형식으로 컴파일했지만 올바르게 작동하지 않을 수 있습니다.파일을 안전하게 저장했지만 MO 형식으로 컴파일할 수 없었습니다.파일을 안전하게 저장했습니다.부정확한 번역을 채워둔, 업데이트하여 바뀌기 전의 오래된 원본 텍스트입니다.카탈로그를 손쉽게 채우려면 POT에서 업데이트하세요:번역문은 공백으로 시작하지 않습니다.번역문의 끝은 줄 바꿈이 되나 원문은 줄 바꿈이 되지 않습니다.번역문의 긑에 공백이 있지만 원문은 공백이 없습니다.번역문은 "%s"로 끝나나 원문은 "%s"로 끝나지 않습니다.번역문의 끝에 줄 바꿈이 없습니다.번역문의 끝에 공백이 없습니다.번역을 사용할 준비가 되었지만, 아직 %d개의 항목을 번역하지 않았습니다.번역을 사용할 준비가 되었습니다.번역문은 "%s"로 시작되어야 합니다.번역문은 "%s"로 끝나지 말아야 합니다.번역문은 문장으로 시작되어야 합니다.번역문은 소문자로 시작되어야 합니다.번역문은 공백으로 시작되나 원문은 공백으로 시작하지 않습니다.부정확할지도 모르는 번역을 '작업 필요'로 표시했습니다. 정확성 여부를 검토하시는 것이 좋습니다.번역이 없습니다. 흔한 일은 아니네요.파일 형식을 붙이는 중 문제가 발생했으나 저장은 성공했습니다.카탈로그를 읽어들일 때 오류가 발생했습니다. 일부가 누락되거나 손상될 수 있습니다.이 설정은 PO 파일 내부 형식에 영향을 줍니다. 버전 관리 등의 특별한 필요성이 있다면 값을 설정하십시오.이 문자열이 더 이상 소스에 없습니다. Poedit이 카탈로그에서 해당 문자열을 제거합니다.이 문자열은 소스에 있지만 카탈로그에는 없습니다. Poedit이 해당 문자열을 카탈로그에 추가합니다.이 카탈로그는 서수 형식 항목이 포함되어 있으나 서수 형식 헤더가 구성되어 있지 않습니다.이 파일은 Crowdin 웹 인터페이스에서만 편집할 수 있습니다.이 명령은 추출 프로그램을 실행할 때 사용합니다. %o는 출력 파일의 이름, %K는 키워드 목록, %F는 입력 파일 목록, %C는 문자 집합 플래그 입니다(하단 참조).이 프로젝트에는 Poedit로 편집할 수 있는 파일이 없습니다.이 문자열은 Poedit의 번역 기억 장소에 있습니다.소스 코드 문자 집합을 지정했을 경우에만 명령줄에 붙일 수 있습니다. %c는 문자 집합을 의미합니다.각 입력 파일 명령줄에 하나 붙일 수 있습니다. %f는 파일 이름을 의미합니다.키워드 명령줄에 하나 붙일 수 있습니다. %k는 키워드를 의미합니다.전체변환소스 코드에서 번역 가능한 항목은 Gettext 시스템이 자동으로 추출합니다. 이 방법으로 최신 버전으로 정확하게 유지할 수 있습니다. 번역자들은 보통 개발자들이 준비한 PO 양식 파일(POT)를 사용합니다.번역됨: 문장 %2$d개 중 %1$d개 (%3$d %%)번역 언어번역 기억 장소(TM)작업이 필요한 번역(&W)번역 속성작업이 필요한 번역(&W)번역 속성번역 제안:번역 — %s번역:카탈로그 속성에서 지정한 위치에 코드가 없어 소스 코드로부터 번역을 업데이트할 수 없습니다.둘UTF-8 (추천)실행 취소처리하지 못한 오류 발생: %sUnix (추천)미번역윗화살표업데이트모두 업데이트이 프로젝트의 모든 카탈로그 업데이트카탈로그 업데이트 - 소스와 동기화합니다POT 파일에서 업데이트(&P)…POT 파일에서 업데이트(&P)…POT 파일로 업데이트업데이트 요약업데이트카탈로그 업데이트 중업데이트 실패카탈로그 업데이트에 실패했습니다. 자세히 보려면 '자세히 >>'를 누르십시오.사용자 정보 업데이트 중…번역 업데이트 중…사용자 정의 표현식 사용목록에 사용자 지정 글꼴 사용:텍스트 입력 창에 사용자 지정 글꼴 사용:이 언어에 기본 규칙 사용다음 키워드(함수 이름)를 사용하여 소스 파일에서 번역할 문자열을 인식합니다:번역 기억 장소 사용검증하기검증 결과버전 %s인증 대기 중…Poedit에 잘 오셨습니다Crowdin이 무엇인가요?원본 업데이트 방식단어 단위로 검색창윈도우자동 줄 바꾸기줄 바꿈 위치:예소스 코드에서 직접 번역 가능 문자열을 가져올 수도 있습니다:Poedit 윈도우에 하나를 초과하는 항목을 드롭할 수 없습니다.바뀐 내용을 반영하려면 Poedit을 다시 시작해야 합니다.이름저장하지 않을 경우 변경 사항은 손실됩니다.이름 및 이메일 주소는 GNU gettext 파일의 Last-Translator 헤더를 설정할 때만 사용됩니다.영확대altctrl임시 파일을 삭제하지 마세요 (디버깅용)예: nplurals=2; plural=(n > 1);파일내 퍼지 일치입력한 줄 수에 해당되는 항목으로 이동poedit:// URI 처리번역 기억 장소의 사전 번역shift알 수 없는 언어your_email@example.com'%s' 파일은 정상적인 POT 파일이 아닙니다.poedit-2.0.6/locales/sv.mo0000664000372000037200000013755013230132042012334 00000000000000P%1 1 11<11J 2gW2 22 22 222 3333%3+333B3Q3W3]3f3z333333333333 3 44 4)4 04=4M4c4y44444444445 5(5D5Y5n55555555 6 '6:36:n6 666 6 666 6 7 #707?7O7c7~77777 71898'>8f88 8878689)=9g9 l9]w99A9I*:t:{:; ;;";:; U;`;.h;;;;;;;;<*<F<#[<<<<<<<<(<(=7= R=s=|== ==/= = >>#>9>L>b>2>>>>> ?)???????@@@ 2@?@R@Ee@"@?@ AA*.A YAfAyAK~A"A5A#B)BHAH HHI 'IHI PI ]IiI"nI;I(IIJ&J 5J ?JMJjJ ~JJJJJ JJK:K PK<^K.KKKKLL*%LPLVLgL xL LLJMNMgM MMMMM#MM'M$N7DN$|N%NNNNNNOOOO O2O P#P9PNP]PlPtP|PPPPPPPPQQQnQERZR>aR RRRR@RS-TxXxrxzx~x xxxxxxx x x yy y3yPymy!|y!yyyyy y y y zz,zGz`zyzzzzzzz{!{ A{>O{>{ {{{{{|#|=|R|q||||| |(|%}(?}h}}6}}.}}~:~ C~7M~A~$~)~ n,AN?H߀! 3@*Hsˁ߁.&(Ok‚ׂ))/Y-q ǃ܃ . >KSj7Є#;%S yC ISj ц ܆ MF@a : R!hÄՈ 0Kfy  ‰$̉]Oe]{.ي&B^bg}06׋&5 MY2s+/Ҍ47=)TZ~ٍ ލ "5I am   ͎֎   )9Mhk&<[s "8ڐ-A \fu}‘ڑ*3K7T@%֒!7Q.Zѓ ۔ &(O+f,9''! Ijm +LSq9җ" 2 < FQYp˘ epbOGBN:ʚ1(?R?em|(ɝ &3< Bc kv~  ĞҞ '  %Fџٟ  ' 8 D Q(_  Š נ 2E`o, ¡ˡԡ   -;Jc}ˢȣ ߣ (8KRO ŤФ   4A)Z (Φ)!O$=t+ާڨ7é۩HѪTioS٫(-qVPȬ1DKGHح+!.M|+(I+r,3˯H~H2ǰOdJUFqc;r;y<hfRYjk׷+DZj "3 HS Wa$p0ƹ +9LNe"׺" &0(Wa (CZ k¼Nż6FK 6nӽBGMQ0V%!ž "0 GD}],6 9BW6tC3H>C'# )h?*Kq#-0^aG2zFYblx&2LADZ.EwPi=Ab[kv @4uh~ uL@|pnf.nTN? QI2:qOKcajd F!p ]U>T+rXi=J%Vxz51^s4 NH/F"8/XJ`om #UwQk :Gs$ 8jL!~I1,(<D-9B>|;$H(E?g<y!dYgIo \ <eN+rM5&cM5 :"K-A+EmZ7C"603B $%RfRVeyOG*S@ M,4}_{O%W91J)S[`' 7)v &;*{(l_.03=\7P8/t';P (modified) (unsaved)%d entry%d entries%d entry was pre-translated.%d entries were pre-translated.%d error%d errors%d issue with the translation found.%d issues with the translation found.%i line of file “%s” was not loaded correctly.%i lines of file “%s” were not loaded correctly.%s Format%s Preferences%s format&About&About Poedit&Apply&Back&Bookmarks&Cancel&Clear&Close&Copy&Delete&Done and Next&Done and next&Edit&File&Find…&GNU gettext Manual&GNU gettext manual&Go&Group By Context&Group by context&Help&New&New…&Next >&Next Translation&Next translation&No&OK&Online Help&Online help&Open...&Open…&Paste&Preferences&Preferences…&Previous Translation&Previous translation&Properties…&Purge Deleted Translations&Purge deleted translations&Quit&Redo&Replace&Save&Save as&Show References&Show references&Undo&Untranslated Entries First&Untranslated entries first&Update from Sources&Update from sources&Validate Translations&Validate translations&View&Yes(0 new, 0 obsolete)(Learn more about GNU gettext)(New: %i, obsolete: %i)(Use default language)(requires Windows 8 or newer)< &PreviousDrag and Drop Folders Here or use the + buttonDrag and drop folders here or use the + buttonAbout %sAccountsAdd CommentAdd Files…Add Folders…Add Wildcard…Add commentAdd directory to the listAdd files…Add folders…Add wildcard…Additional keywordsAdditional xgettext flags:AdvancedAdvanced Extraction Settings…Advanced extraction settingsAdvanced extraction settings…All Translation FilesAll commentsAlso use default keywords for supported languagesAlt+Always change focus to text input fieldAn item in input files list:An item in keywords list:AppearanceApplyAre you sure you want to delete the “%s” extractor?Are you sure you want to reset the translation memory?Automatically check for updatesAutomatically compile MO file when savingBackBase path:Beta versions contain the latest new features and improvements, but may be a bit less stable.Bring All to FrontBroken catalog file: plural form msgstr used without msgid_pluralBroken catalog file: singular form msgstr used together with msgid_pluralBrowseBy default, inaccurate results are filled in as well and marked as needing work. Check this option to only include accurate matches.C&atalogC&learCancelCannot create temporary directory.Cannot execute program: %sCapitalizeCatalogCatalog modified. Do you want to save changes?Catalog propertiesCatalogs &ManagerCatalogs &managerCatalogs ManagerChange UI languageCharset:Check Document NowCheck Grammar With SpellingCheck Spelling While TypingCheck for Updates…Check for errors in the translationCheck for updates…Check spellingClearClear TranslationClear the commentClear translationCloseCollaborate on a Translation with OthersCollaborate on a translation with othersCollecting source files…Command to extract translations:Comment:Comments prefixed with:Compile to MO…Compile to…Compiled Translation FilesConfigure source code extraction in Properties.ConfirmationCopyCopy From SingularCopy from Source TextCopy from singularCopy from source textCorrect Spelling AutomaticallyCouldn’t load file %s, it is probably corrupted.Couldn’t save file %s.Create New TranslationCreate new translationCreate new translations projectCrowdin errorCrowdin is an online localization management platform and collaborative translation tool. Poedit can seamlessly sync PO files managed at Crowdin.Ctrl+Cu&tCustom Extractors:Custom extractors:CutDatabase size on disk:DeleteDelete extractorDelete the projectDirectories:Display Entry &IDsDisplay entry &IDsDo you really want to do mass update of all catalogs in this project?Do you want to delete the project?Do you want to remove all translations that are no longer used?Don’t SaveDon’t Show AgainDon’t mark exact matches as needing workDon’t saveDon’t show againDownDownload a file from Crowdin project, translate and sync your changes back.Downloading latest translations…Downloading translations is disabled in this project.E&xitE&xport as HTML…EditEdit &CommentEdit &commentEdit CommentEdit a TranslationEdit a translationEdit commentEdit projectEdit the projectEditingEdit…Email:EnterEnter Full ScreenEntries in the catalog are probably incorrect.Entries in this catalog have different plural forms count from what catalog’s Plural-Forms header saysEntries with Errors FirstEntries with errors firstEntries with errors were marked in red in the list. Details of the error will be shown when you select such an entry.Error loading message catalog file “%s”.Error opening fileError opening file %s!Error saving catalogErrorsEverythingExcluded pathsExport as…Extract from sourcesExtract notes for translators from:Extract text from source files in the following directories:Extracting translatable strings…Extractor setupExtractorsFailed command: %sFailed to communicate with Poedit process.Failed to load extracted catalog.Failed to merge gettext catalogs.Failed to update translation memory: %sFileFile “%s” doesn’t exist.File “%s” is not a message catalog.File “%s” is read-only and cannot be saved. Please save it under different name.File:Finalizing…FindFind NextFind PreviousFind and Replace…Find in commentsFind in source textsFind in translationsFind nextFind previousFix LanguageFix languageFix the HeaderFix the headerForm %iFrequentGNU gettextGeneralGo to Bookmark %iGo to bookmark %iHTML FilesHelpHide %sHide OthersHide SidebarHide Status BarHide this notification messageIDIf you continue with purging, all translations marked as deleted will be permanently removed. You will have to translate them again if they are added back in the future.Ignore caseImporting translations…Include beta versionsInformation about the translatorInstallInvalid fileInvocation:KeepLanguage Code or Name (e.g. en_GB)Language of the translation is the same as source language.Language of the translation isn’t set.Language of the translation:Language selectionLanguage team:Language:Last modifiedLearn About Gettext KeywordsLearn From Files…Learn MoreLearn More About CrowdinLearn about gettext keywordsLearn about plural formsLearn from files…Learn moreLearn more about CrowdinLeftLine %d of file “%s” is corrupted (not valid %s data).Line endings:List of extensions separated by semicolons (e.g. *.cpp;*.h):MO files can’t be directly edited in Poedit.Make Lower CaseMake Upper CaseMalformed header: “%s”Merging differences…MinimizeName of the project the translation is forName:Ne&xt UnfinishedNe&xt unfinishedNeeds WorkNeeds workNever let the list of strings take focus. If enabled, you must use Ctrl-arrows for keyboard navigation but you can also type text immediately, without having to press Tab to change focus.NewNew From &POT/PO File…New from &POT/PO file…New stringsNext Plural FormNext plural formNoNo Matches FoundNo entries could be pre-translated.No matches foundNo problems with the translation found.No references for the selected item.No translation projects listed in your Crowdin account.Not all plural forms are translated.Not authorized, please sign in again.Notes for translators:OKObsolete stringsOneOnly enable if you trust the quality of your TM. By default, all matches from the TM are marked as needing work and should be reviewed before use.Only fill in exact matchesOpenOpen Crowdin translationOpen From Crowdin…Open RecentOpen an existing PO file and edit the translation.Open catalogOpen catalog templateOpen from Crowdin…Open in EditorOpen in editorOpen...Open…OptionsOtherP&revious UnfinishedP&revious unfinishedPO TranslationPO Translation FilesPOT Translation TemplatesPOT files are only templates and don’t contain any translations themselves. To make a translation, create a new PO file based on the template.PastePaste and Match StylePathsPlease open and edit the corresponding PO file instead. When you save it, the MO file will be updated as well.Please save the file first. This section cannot be edited until then.PluralPlural forms expression used by the catalog is unusual for %s.Plural forms:Plural:PoeditPoedit - Catalogs managerPoedit automatically fixed invalid content in the file “%s”.Poedit can attempt to fill in new entries from only previous translations in the file or from your entire translation memory. Using the TM won’t be very effective if it’s near-empty, but it will get better as you add more translations to it.Poedit is an easy to use translations editor.Pre-&translate…Pre-translatePre-translatedPre-translated %u stringPre-translated %u stringsPre-translating…Pre-translation automatically finds exact or fuzzy matches for untranslated strings in the translation memory and fills in their translations.PreferencesPreferences...Preferences…Preserve formatting of existing filesPrevious Plural FormPrevious plural formPrevious source text:Project name and version:Project name:Project:PurgePurge deleted translationsQuitQuit %sRecentRedoReferences:RefreshRemaining: %dReplaceReplace &AllReplace &allReplacement stringReplace…Required header Plural-Forms is missing.ResetReset translation memoryResetting the translation memory will irrevocably delete all stored translations from it. You can’t undo this operation.ReviewRightSaveSave &As…Save &as…Save asSave as…Save catalogSave changesSelect &AllSelect AllSelect directorySelect translation files to importSelect your preferred languageServicesSet Bookmark %iSet LanguageSet bookmark %iSet languageShift+Show AllShow SidebarShow Spelling and GrammarShow Status BarShow SubstitutionsShow or hide the sidebarShow sidebarShow status barShow summary after catalog updateSidebarSign InSign OutSign inSign in to CrowdinSign outSigned in as:SingularSingular:Smart Copy/PasteSmart DashesSmart LinksSmart QuotesSort by &File OrderSort by &SourceSort by &TranslationSort by &file orderSort by &sourceSort by &translationSource code charset:Source code extractors are used to find translatable strings in the source code files and extract them so that they can be translated.Source code not available.Source fileSource file occurrence:Source textSource text — %sSource text:Sources KeywordsSources PathsSources keywordsSources pathsSpeechSpellchecking is disabled, because the dictionary for %s isn’t installed.Spelling and GrammarStart SpeakingStop SpeakingStored translations:String to findSubstitutionsSuggestionsSuggestions are not available if the translation language is not set correctly. Other features, such as plural forms, may be affected as well.Supports all programming languages recognized by GNU gettext tools (PHP, C/C++, C#, Perl, Python, Java, JavaScript and others).SyncSync with CrowdinSynchronize the translation with CrowdinSyncingSyncing errorSyncing with %s failed.Syncing with %s…Syncing with Crowdin failed.Syntax error in Plural-Forms header ("%s").TMTake an existing PO file or POT template and create a new translation from it.Take translatable strings from an existing POT template.Team name and email address or URLText ReplacementThe TM doesn’t contain any strings similar to the content of this file. It is only effective for semi-automatic translations after Poedit learns enough from files that you translated manually.The catalog couldn’t be saved in “%s” charset as specified in catalog settings. It was saved in UTF-8 instead and the setting was modified accordingly.The file cannot be compiled into the MO format and used.The file cannot be opened.The file contained duplicate items, which is not allowed in PO files and would prevent the file from being used. Poedit fixed the issue, but you should review translations of any items marked as needing work and correct them if necessary.The file may be either corrupted or in a format not recognized by Poedit.The file was compiled into the MO format, but it will probably not work correctly.The file was saved safely and compiled into the MO format, but it will probably not work correctly.The file was saved safely, but it cannot be compiled into the MO format and used.The file was saved safely.The old source text (before it changed during an update) that the now-inaccurate translation corresponds to.The simplest way to fill this catalog is to update it from a POT:The translation doesn’t start with a space.The translation ends with a newline, but the source text doesn’t.The translation ends with a space, but the source text doesn’t.The translation ends with “%s”, but the source text ends with “%s”.The translation is missing a newline at the end.The translation is missing a space at the end.The translation is ready for use, but %d entry is not translated yet.The translation is ready for use, but %d entries are not translated yet.The translation is ready for use.The translation should end with “%s”.The translation should not end with “%s”.The translation should start as a sentence.The translation should start with a lowercase character.The translation starts with a space, but the source text doesn’t.The translations were marked as needing work, because they may be inaccurate. You should review them for correctness.There are no translations. That’s unusual.There was a problem formatting the file nicely (but it was saved all right).There were errors when loading the catalog. Some data may be missing or corrupted as the result.These settings affect internal formatting of PO files. Adjust them if you have specific requirements e.g. because of version control.These strings are no longer in the sources. Poedit will remove them from the catalog now.These strings were found in the sources but were not in the catalog. Poedit will add them to the catalog now.This catalog has entries with plural forms, but doesn’t have Plural-Forms header configured.This file can only be edited in Crowdin’s web interface.This is the command used to launch the extractor. %o expands to the name of output file, %K to list of keywords, %F to list of input files, %C to charset flag (see below).This project has no files that can be translated in Poedit.This string was found in Poedit’s translation memory.This will be attached to the command line only if source code charset was given. %c expands to charset value.This will be attached to the command line once for each input file. %f expands to the filename.This will be attached to the command line once for each keyword. %k expands to the keyword.TotalTransformationsTranslatable entries aren’t added manually in the Gettext system, but are automatically extracted from source code. This way, they stay up to date and accurate. Translators typically use PO template files (POTs) prepared for them by the developer.Translated: %d of %d (%d %%)Translation LanguageTranslation MemoryTranslation Needs &WorkTranslation PropertiesTranslation needs &workTranslation propertiesTranslation suggestions:Translation — %sTranslation:Translations couldn’t be updated from the source code, because no code was found in the location specified in the catalog’s Properties.TwoUTF-8 (recommended)UndoUnhandled exception occurred: %sUnix (recommended)UntransUpUpdateUpdate allUpdate all catalogs in the projectUpdate catalog - synchronize it with sourcesUpdate from &POT File…Update from &POT file…Update from POTUpdate summaryUpdatesUpdating catalogUpdating failedUpdating the catalog failed. Click on 'Details >>' for details.Updating user information…Uploading translations…Use custom expressionUse custom list font:Use custom text fields font:Use default rules for this languageUse these keywords (function names) to recognize translatable strings in source files:Use translation memoryValidateValidation resultsVersion %sWaiting for authentication…Welcome to PoeditWhat is Crowdin?When updating from sourcesWhole words onlyWindowWindowsWrap aroundWrap at:YesYou can also extract translatable strings directly from the source code:You can’t drop more than one file on Poedit window.You must restart Poedit for this change to take effect.Your NameYour changes will be lost if you don’t save them.Your name and email address are only used to set the Last-Translator header of GNU gettext files.ZeroZoomaltctrldon’t delete temporary files (for debugging)e.g. nplurals=2; plural=(n > 1);fuzzy match within the filego to item at given line numberhandle a poedit:// URIpre-translate from TMshiftunknown languageyour_email@example.com“%s” is not a valid POT file.Project-Id-Version: poedit Report-Msgid-Bugs-To: help@poedit.net POT-Creation-Date: 2017-12-05 15:52+0100 PO-Revision-Date: 2017-12-05 09:50-0500 Last-Translator: vslavik Language-Team: Swedish Language: sv_SE MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=(n != 1); X-Generator: crowdin.com X-Crowdin-Project: poedit X-Crowdin-Language: sv-SE X-Crowdin-File: /locales/poedit.pot (ändrad) (ej sparad)%d post%d poster%d post förhandsöversattes.%d poster förhandsöversattes.%d fel%d fel%d problem med översättningen hittades.%d problem med översättningen hittades.Rad %i i filen "%s" kunde inte laddades korrekt.Raderna %i i filen "%s" kunde inte laddades korrekt.%s formatInställningar %s%s format&Om&Om Poedit&Tillämpa&Tillbaka&Bokmärken&Avbryt&Rensa&Stäng&Kopiera&Ta bort&Klar och nästa&Klar och nästa&Redigera&Arkiv&Sök…&GNU gettext manual&GNU gettext manual&Gå till&Gruppera efter innehåll&Gruppera efter innehåll&Hjälp&Ny&Nytt…&Nästa >&Nästa översättning&Nästa översättning&Nej&OK&Hjälp på nätet&Hjälp på nätet&Öppna...&Öppna…&Klistra in&Inställningar&Inställningar…&Föregående översättning&Föregående översättning&Egenskaper…&Rensa Borttagna Översättningar&Rensa borttagna översättningar&Avsluta&Gör om&Ersätt&Spara&Spara som&Visa Källor&Visa källor&Ångra&Oöversatta poster först&Oöversatta poster först&Uppdatera från Källor&Uppdatera från källor&Validera översättningar&Validera översättningar&Visa& Ja(0 nya, 0 föråldrade)(Läs mer om GNU gettext)(Nya: %i, föråldrade: %i)(Använd standardspråk)(kräver Windows 8 eller nyare)Dra och Släpp Mappar Här eller använd +-knappenDra och släpp mappar här eller använd +-knappenOm %sKontonLägg till kommentarLägg till filer…Lägg till mappar…Lägg till jokertecken…Lägg till kommentarLägg till katalog till listanLägg till filer…Lägg till mappar…Lägg till jokertecken…Ytterligare sökordYtterligare xgettext-flaggor:AvanceratAvancerade extraheringsinställningar…Avancerade extraheringsinställningarAvancerade extraheringsinställningar…Alla översättningsfilerAlla kommentarerAnvända också standardsökord för språk som stödsAlt+Ändra alltid fokus till textinmatningsfältetEtt objekt i indatafilslistan:Ett objekt i sökordslistan:UtseendeTillämpaÄr du säker på att du vill ta bort extraherare "%s"?Är du säker på att du vill återställa översättningsminnet?Sök efter uppdateringar automatisktKompilera MO-fil automatiskt vid sparningTillbakaRotsökväg:Betaversioner innehåller de senaste nya funktionerna och förbättringarna, men kan vara lite mindre stabila.Lägg alla överstTrasig katalogfil: pluralformen msgstr används utan msgid_pluralTrasig katalogfil: singularformen msgstr används tillsammans med msgid_pluralBläddraSom standard, fylls felaktiga resultat i och markeras som behöver arbete. Markera det här alternativet för att endast inkludera exakta matchningar.&Katalog&RensaAvbrytKan inte skapa temporär katalog.Kan inte köra program: %sKapitaliseraKatalogKatalog ändrad. Vill du spara ändringar?Katalogegenskaper&Kataloghanterare&KataloghanterareKataloghanterareÄndra UI-språkTeckenuppsättning:Kontrollera dokumentet nuKontrollera grammatik tillsammans med stavningKontrollera stavning medan jag skriverSök efter uppdateringar…Leta efter fel i översättningSök efter uppdateringar…Kontrollera stavningRensaRensa översättningRensa kommentarenRensa översättningStängSamarbeta på en översättning med andraSamarbeta på en översättning med andraSamlar in källfiler…Kommando för att extrahera översättningar:Kommentar:Kommentarer som börjar med:Kompilera till MO…Kompilera till…Kompilerade översättningsfilerKonfigurera källkodsextrahering i egenskaper.BekräftelseKopieraKopiera från singularKopiera från källtextKopiera från singularKopiera från källtextKorrigera stavning automatisktKunde inte ladda filen %s, den är förmodligen skadad.Kunde inte spara filen %s.Skapa ny översättningSkapa ny översättningSkapa ett nytt översättningsprojektCrowdin-felCrowdin är en online plattform för att hantera översättningar och ett verktyg för att samarbeta med översättningar. Poedit kan smidigt synkronisera PO-filer som hanteras på Crowdin.Ctrl+Kl&ipp utAnpassade extraherare:Anpassade extraherare:Klipp utDatabasstorlek på disk:Ta bortTa bort extraherareTa bort projektetKataloger:Visa post-&IDVisa post-&IDVill du verkligen göra en massuppdatering av alla kataloger i detta projekt?Vill du ta bort projektet?Vill du ta bort alla översättningar som inte längre används?Spara inteVisa inte igenMarkera inte exakta matchningar som att de behöver arbeteSpara inteVisa inte igenNerHämta en fil från ett Crowdin-projekt, översätt och synkronisera ändringarna.Hämtar senaste översättning…Nedladdning av översättningar är inaktiverade i detta projekt.&AvslutaE&xportera som HTML…RedigeraRedigera &KommentarRedigera &kommentarRedigera kommentarRedigera en översättningRedigera en översättningRedigera kommentarRedigera projektRedigera projektetRedigeringRedigera…E-post:EnterHelskärmPoster i katalogen är troligen fel.Poster i denna katalog har olika antal pluralformer än vad som anges i Plural-Former headernPoster med fel förstPoster med fel förstPoster med fel har rödmarkerats i listan. Detaljer om felet visas då en sådan post väljs.Fel vid laddning av meddelandekatalogfil '%s'.Problem när filen lästes inFel vid öppning av fil %s!Fel vid sparande av katalogFelAlltUndantagna sökvägarExportera som…Extrahera från källorExtrahera anteckningar för översättare från:Extrahera text från källfilen i följande kataloger:Extraherar översättbara strängar…Konfigurera extraherareExtraherareKommando misslyckades: %sMisslyckades att kommunicera med Poedit-processen.Det gick inte att läsa extraherad katalog.Det gick inte att sammanfoga gettext kataloger.Det gick inte att uppdatera översättningsminne: %sArkivFilen "%s" finns inte.Filen '%s' är inte en meddelandekatalog.Filen "%s" är skrivskyddad och kan inte sparas. Vänligen spara den under ett annat namn.Fil:Slutför…HittaSök nästaSök föregåendeSök och ersätt…Sök i kommentarerHitta i källtexterSök i översättningarSök nästaSök föregåendeFixa språkFixa språkFixa headerFixa headerForm %iFrekventaGNU gettextAllmäntGå till bokmärke %iGå till bokmärke %iHTML-filerHjälpDölj %sDölj andraDölj sidofältDölj statusfältetDölj det här meddelandetIDOm du fortsätter med rensningen kommer alla översättningar som är markerade för borttagning att tas bort permanent. Du måste översätta dem igen om de läggs tillbaka i framtiden.Ignorera gemen/versalImporterar översättningar…Inkludera betaversionerInformation om översättarenInstalleraOgiltig filAnrop:BehållSpråkkod eller namn (t.ex. en_GB)Språket i översättningen är samma som källspråket.Språket i översättningen har inte angetts.Språk i översättningen:SpråkvalSpråkgrupper:Språk:Senast ändradLäs mer om Gettext sökordLär av filer…Lär merLär dig mer om CrowdinLär dig mer om gettext sökordLär dig mer om flertalsformerLär av filer…Läs merLär dig mer om CrowdinVänsterRad %d i filen '%s' är felaktig (inte giltig %s-data).Radslut:Lista över tillägg avgränsas med semikolon (t.ex. *.cpp;*.h):MO-filer kan inte öppnas med Poedit.Gör till gemenerGör till versalerFelaktigt huvud: "%s"Sammanfogar skillnader…MinimeraNamnet på projektet översättningen är förNamn:Nä&sta ofärdigNä&sta ofärdigBehöver arbeteBehöver arbeteLåt aldrig listan med strängar ta fokus. Om det är aktiverat, måste du använda Ctrl-pilar för tangentbordsnavigering men du kan också skriva text direkt, utan att behöva trycka Tabb för att byta fokus.NyNytt från &POT/PO-fil…Nytt från &POT/PO-fil…Nya strängarNästa pluralformNästa pluralformNejInga träffar hittadesInga poster kan förhandsöversättas.Inga träffar hittadesInga problem med översättningen hittades.Inga referenser för det markerade objektet.Inga översättningsprojekt finns på ditt Crowdin-konto.Inte alla pluralformer är översätta.Inte behörig, vänligen logga in igen.Anteckningar för översättare:OKFöråldrade strängarEttAktivera endast om du litar på kvaliteten på ditt TM. Som standard, alla matchningar från TM markeras som behöver arbete och bör ses över innan användning.Fyll endast i exakta matchningarÖppnaÖppna Crowdin-översättningÖppna från Crowdin…Öppna senasteÖppna en befintlig PO-fil och redigera översättningen.Öppna katalogÖppna mall för katalogÖppna från Crowdin…Öppna i editorÖppna i editorÖppna...Öppna…AlternativÖvrigtFö®ående ofärdigFö®ående ofärdigPO-översättningPO-översättningsfilerPOT-översättningsmallarPOT-filer är endast mallar och innehåller inte själv några översättningar. För att göra en översättning, skapa en ny PO-fil baserad på mallen.Klistra inKlistra in och matcha stilSökvägÖppna och redigera motsvarande PO-fil i stället. När du sparar den, uppdateras MO-filen också.Vänligen spara filen först. Det här avsnittet kan inte redigeras tills dess.PluralPluralformsuttryck som används av katalogen är ovanligt för %s.Flertalsformer:Plural:PoeditPoedit - KataloghanterarePoedit fixade automatiskt ogiltigt innehåll i filen "%s".Poedit kan försöka fylla i nya poster från endast tidigare översättningar i filen eller hela översättningsminnet. Med att använda TM är inte effektivt, men det kommer bli bättre när du lägger till fler översättningar till det.Poedit är en lättanvänd översättningseditor.Förhandsöversa&tt…FörhandsöversattFörhandsöversattFörhandsöversatte %u strängFörhandsöversatte %u strängarFörhandsöversätter…Förhandsöversättning söker automatiskt efter exakta eller ungefärliga matchningar för oöversatta strängar i översättningsminnet och fyller i dessa översättningar.InställningarInställningar...Inställningar…Bevara formateringen av befintliga filerFöregående pluralformFöregående pluralformTidigare källtext:Projektnamn och version:Projektnamn:Projekt:RensaRensa borttagna översättningarAvslutaAvsluta %sSenasteGör omHänvisningar:UppdateraÅterstår: %dErsättErsätt &allaErsätt &allaErsättningssträngErsätt…Nödvändig Plural-forms header saknas.ÅterställÅterställ översättningsminneÅterställa översättningsminnet kommer oåterkalleligen ta bort alla lagrade översättningar från den. Du kan inte ångra åtgärden.GranskaHögerSparaSpar&a som…Spar&a som…Spara somSpara som…Spara katalogSpara ändringarVälj &allaMarkera alltVälj katalogVälj översättningsfiler att importeraVälj önskat språkTjänsterAnge bokmärke %iAnge språkAnge bokmärke %iAnge språkSkift+Visa allaVisa sidofältVisa stavning och grammatikVisa statusfältetVisa ersättningarVisa eller dölj sidofältVisa sidofältVisa statusfältetVisa sammanfattning efter kataloguppdateringSidofältLogga inLogga utLogga inLogga in till CrowdinLogga utInloggad som:SingularSingular:Smart kopiera/klistra inSmarta streckSmarta länkarTypografiska citatteckenSortera efter &filordningSortera efter &källaSortera efter ö&versättningSortera efter &filordningSortera efter &källaSortera efter ö&versättningKällkod teckenuppsättning:Källkodsextrahering används för att hitta översättbara strängar i källkodsfiler och extrahera dem så att de kan översättas.Ingen källkod tillgänglig.KällfilFörekomster källfil:KälltextKälltext — %sKälltext:Källor sökordKällor sökvägarKällor sökordKällor sökvägarTalStavningskontroll är inaktiverad, eftersom ordboken för %s inte är installerad.Stavning och grammatikBörja talaSluta talaLagrade översättningar:Sträng att hittaErsättningarFörslagFörslag är inte tillgängliga om översättningsspråket inte är inställt på rätt sätt. Andra funktioner, såsom pluralformer, kan påverkas också.Stöder alla programmeringsspråk som känns igen av GNU gettext-verktyg (PHP, C/C++, C#, Perl, Python, Java, JavaScript och andra).SynkroniseraSynkronisera med CrowdinSynkronisera översättningen med CrowdinSynkarSynkningsfelSynkning med %s misslyckades.Synkroniserar med %s…Synkronisering med Crowdin misslyckades.Syntaxfel i Plural-Former headern ("%s").TMTa en befintlig PO-fil eller POT-mall och skapa en ny översättning från den.Ta översättningsbara strängar från en befintlig POT-mall.Gruppnamn och e-postadress eller webbadressTextersättningÖversättningsminnet innehåller inga matchande strängar till innehållet i denna fil. Detta är bara effektivt för semi-automatiska översättningar efter att Poedit har lärt sig från filer som du tidigare har översatt manuellt.Katalogen kunde inte sparas med teckenkodningen "%s" som specificerats i kataloginställningar. Den sparades därför istället i UTF-8 och inställningen ändrades därefter.Filen kan inte kompileras till MO-format och användas.Filen kan inte öppnas.Filen innehöll dubbletter, vilket inte är tillåtet i PO-filer och förhindrar att filen används. Poedit fixade problemet, men du bör granska översättningar av alla objekt som markerats som behöver arbete och korrigera dem om så behövs.Filen kan vara skadad eller i ett format som inte känns igen av Poedit.Filen kompilerades till MO-format, men den kommer förmodligen inte fungera korrekt.Filen sparades säkert och kompilerades till MO-format, men den kommer förmodligen inte fungera korrekt.Filen sparades säkert, men den kan inte kompileras till MO-formatet och användas.Filen har sparats på ett säkert sätt.Den gamla källtexten (innan den ändrades under en uppdatering) som den nu felaktiga översättningen motsvarar.Det enklaste sättet att fylla denna katalog är att uppdatera den från en POT:Översättningen börjar inte med ett mellanslag.Översättningen slutar med ett radslut, vilket källtexten ej gör.Översättningen slutar med ett mellanslag, vilket källtexten ej gör.Översättningen avslutas med "%s", medan källtexten avslutas med "%s".Översättning saknar ett radslut i slutet.Översättning saknar ett mellanslag i slutet.Översättningen är klar att användas, men %d post är ännu inte översatt.Översättningen är klar att användas, men %d poster är ännu inte översatta.Översättningen är klar för användning.Översättningen bör avslutas med "%s".Översättningen bör ej avslutas med "%s".Översättningen bör inledas som en mening.Översättningen bör inledas med en liten bokstav.Översättningen börjar med ett mellanslag, vilket källtexten ej gör.Översättningarna markerades som att de behöver arbete, eftersom de kan vara felaktiga. Du bör granska dem för korrekthet.Det finns inga översättningar. Det är ovanligt.Det uppstod ett problem med att formatera filen snyggt (men den sparades okej).Det uppstod fel vid läsning av katalogen. Som resultat kan vissa uppgifter saknas eller ha skadats.Dessa inställningar påverkar den interna formateringen av PO-filer. Justera dem om du har särskilda önskemål t.ex. på grund av versionskontroll.Dessa strängar är inte i källorna längre. Poedit tar bort dem från katalogen nu.Dessa strängar hittades i källorna, men var inte i katalogen. Poedit kommer att lägga till dem i katalogen nu.Denna katalog innehåller poster med pluralformer, men har inte Plural-Former headern konfigurerad.Denna fil kan endast redigeras i Crowdin:s webbgränssnitt.Detta är kommandot som används för att starta extraheraren. %o expanderar till namnet på utdatafilen, %K till listan av sökord, %F till listan över indatafiler, %C till charset-flaggan (se nedan).Detta projekt har inga filer som kan översättas i Poedit.Den här strängen hittades i Poedit:s översättningsminne.Detta kommer att bifogas till kommandoraden endast om källkodsteckenuppsättningen har angetts. %c expanderar till teckenuppsättningsvärdet.Detta kommer att bifogas till kommandoraden en gång för varje indatafil. %f expanderar till filnamnet.Detta kommer att bifogas till kommandoraden en gång för varje sökord. %k expanderar till sökordet.TotaltTransformeringarÖversättningsbara poster läggs inte till manuellt i Gettext-systemet, utan extraheras automatiskt från källkod. På detta sätt hålls de uppdaterade och korrekta. Översättare använder vanligtvis mallfiler (POTs) som har förberetts av utvecklaren.Översatt: %d av %d (%d %%)ÖversättningsspråkÖversättningsminne (TM)Översättning behöver &arbeteÖversättningsegenskaperÖversättning behöver &arbeteÖversättningsegenskaperÖversättningsförslag:Översättning — %sÖversättning:Översättningar kunde inte uppdateras från källkoden, eftersom ingen kod hittades i den plats som anges i katalogens egenskaper.TvåUTF-8 (rekommenderas)ÅngraOhanterat undantag inträffade: %sUnix (rekommenderas)OöversattUppUppdateraUppdatera allaUppdatera alla kataloger i projektetUppdatera katalog - synkronisera den med källorUppdatera från &POT-fil…Uppdatera från &POT-fil…Uppdatera från POTUppdatera sammanfattningUppdateringarUppdaterar katalogUppdatering misslyckadesUppdatering av katalogen misslyckades. Klicka på 'Detaljer >>' för detaljer.Uppdaterar användarinformation…Laddar upp översättning…Använd anpassat uttryckAnvänd anpassat typsnitt i lista:Använd anpassat typsnitt i textfält:Använd standardregler för detta språkAnvänd dessa sökord (funktionsnamn) att känna igen översättningsbara strängar i källfiler:Använda översättningsminneValideraValideringsresultatVersion %sVäntar på verifiering…Välkommen till PoeditVad är Crowdin?När du uppdaterar från källorEndast hela ordFönsterWindowsLoopaRadbryt efter:JaDu kan också extrahera översättningsbara strängar direkt från källkoden:Du kan inte släppa mer än en fil i Poedit-fönstret.Du måste starta om Poedit för att denna ändring ska träda i kraft.Ditt namnDina ändringar går förlorade om du inte sparar dem.Ditt namn och e-postadress används endast att ställa in i sista-översättare huvudet på GNU gettext-filer.NollZoomaaltctrlta inte bort temporära filer (för felsökning)t.ex. nplurals = 2; plural = (n > 1);fuzzy matchning i filengå till post på givet radnummerhantera en poedit:// URIförhandsöversatt från TMskiftokänt språkyour_email@example.com"%s" är inte en giltig POT-fil.poedit-2.0.6/locales/sl.mo0000664000372000037200000013622613230132042012321 00000000000000L|$(1 )1 51@1<T11J1g1 W2a2 p2z2 222 2222222222223&3*3<3N3T3Y3a3i3{333 3 3333 33334 4<4X4^4d4m4s4|44444445545:5?5S5r555 5:5:6 A6K6T6 ]6 i6v66 66 6666677?7\7|7 7177'778 58@87F86~88)88 9]9m9A9I9 :::::":: ::.;/;B;T;f;w;;;;;;#;<,<;<A<S<e<w<(}<(<< < ==,= ==K=/f= =======2>L>e>|>> >>S?Y?^?q?????? ???E?"C@?f@ @@*@ @@AKA"bA5AAAA A A ABB (B 5BBBSB[BcBjBpB.BhBC4CuNC,CCDD0D 7DBD QD^D#sD<D"DD EE*%E!PE!rE'EEE'EF FF !F +F9FMF^FsF F F F FFFFF FFFG !G,G1G 9G EGRGbGGG .H:HTH jHH H HH"H;H(I9IVIiI xI III IIIJJ /J:JSJ:XJ J<J.J KK-KHK_K*hKKKK K KKLLL LLLLL#M)M':M$bM7M$M%M N!N$N5N9NNNNO O2&O YOfO|OOOOOOOOOOPP5PPPPnPEWQQ>Q QQQR@R[R-QSS SS2SSS TTT%TTTTU -U;UDUJUeUjUrUyU ~UU UU U UU U(U VVz(VVVV V VV V V V V WW""WEWdWmW }WW WWW WWWWX X'X!7XYXaXiXrXzXX XX XX X X XXYY'Y;YKY`YuYY Z#Z ;ZGZ ZZgZ xZZ ZZKZZ [ [*[?[ N[ \[h[[w\|\(\\ \\\\+]A]ND]8]"]]^8^^_I`RP`c`QaYaltaAa-#bCQbAbKb0#c.Tcc!d)4d-^d+d8dCdu5e,eLe`%ffY gmfg^g:3hnh;i7Vimi_i[\jjjjjkk+kBkZkqkk kk6l:lNl Sltllll l"l,ll m&m6mEmMm^m?nmmmmmn#.nVRnnnn nnoo(oCoTo[o coooxoH|o5o7o 3p3=paqppppp.p q6qRqiqqqq!qqss#s t&ttXu %v /v =v Gv Sv_vhv ov yv vvv vvvv v vvw"w)w=wQwYw^w gwtwwwwww w ww wwwx!x0xLxhx ox yxx xxx xx"xyy8ySynyvyzyyyy y yKzKTz zzzzzzz{{*{={L{f{~{{${${${|(|77| o|1{|"|"|||<}?>} ~}/}} }d}G~Y^~[~   #/67n&Ȁ /$Bg݁:Xv Âт@ .8@[y(=ۃ :M`DMVk"ȅم߅7 E?d 6 O%i/ȇ݇  & 3 AO X b lv%[6cV9! 4U\`q=# 2->-l6Cы/EN%j ÌՌ'< Q _ m {  ō ڍ 1MP  9NVjs)z'̏ !/Qj{!!ΐK X6k<ߑ#7 O#Z~Ēגޓ; >0J {'/ϔ)*)Tho~`~ )  #8 M W akq pԗEMetjLߘ,L5 !Cș 6,AQXcӛ _ i w&Ȝ '09T \gov~   ȝ8՝ r5͞ ݞ  # ."9\s|  ʟ֟%"7Zs1͠ՠܠ9M^qΡ̢ݢ "4 IS hrGxף (|)1C\p,!!ӥ1'E*5p&ͦF?WEdd!gcP->IlD?4;'p!-׭/!5$WD|Icgi˯5hgIYS _M",phbeiϴ ִ 6Hdv g *C Wck t)ʶ /;RLh* '-$Uazܸ( 2&@g| ʹ ۹E81Gj=>3 8 BM3UX$"*I R` u*CzG  Z5;?+2.g' I(J& cwvD& 7KXP#Kw:0gdx:l3,K//aSEBAk+jJ<0R WZPu #m!}f24%^e >t1)A'+HBYM>!.Lk9,42n d|.*l 3n\?CF@p70- V<FzU8 N3i&8_=Wb{qM5=V< *5/:-e~qY1jIU9 F%%oL7x`HQ6>h$,@XT(`$m@;6' "4[Dr^\]yOfE"GEt1vR|Npu{)_abis](sc $TJ =-Do9IOB);QryA}~CS6#!L[hH8"?G  (modified) (unsaved)%d entry%d entries%d entry was pre-translated.%d entries were pre-translated.%d error%d errors%d issue with the translation found.%d issues with the translation found.%i line of file “%s” was not loaded correctly.%i lines of file “%s” were not loaded correctly.%s Format%s Preferences%s format&About&About Poedit&Apply&Back&Bookmarks&Cancel&Clear&Close&Copy&Delete&Done and Next&Done and next&Edit&File&Find…&GNU gettext Manual&GNU gettext manual&Go&Group By Context&Group by context&Help&New&New…&Next >&Next Translation&Next translation&No&OK&Online Help&Online help&Open...&Open…&Paste&Preferences&Preferences…&Previous Translation&Previous translation&Properties…&Purge Deleted Translations&Purge deleted translations&Quit&Redo&Replace&Save&Save as&Show References&Show references&Undo&Untranslated Entries First&Untranslated entries first&Update from Sources&Update from sources&Validate Translations&Validate translations&View&Yes(0 new, 0 obsolete)(Learn more about GNU gettext)(New: %i, obsolete: %i)(Use default language)(requires Windows 8 or newer)< &PreviousDrag and Drop Folders Here or use the + buttonDrag and drop folders here or use the + buttonAbout %sAccountsAdd CommentAdd Files…Add Folders…Add Wildcard…Add commentAdd directory to the listAdd files…Add folders…Add wildcard…Additional keywordsAdditional xgettext flags:AdvancedAdvanced Extraction Settings…Advanced extraction settingsAdvanced extraction settings…All Translation FilesAll commentsAlso use default keywords for supported languagesAlt+Always change focus to text input fieldAn item in input files list:An item in keywords list:AppearanceApplyAre you sure you want to delete the “%s” extractor?Are you sure you want to reset the translation memory?Automatically check for updatesAutomatically compile MO file when savingBackBase path:Beta versions contain the latest new features and improvements, but may be a bit less stable.Bring All to FrontBroken catalog file: plural form msgstr used without msgid_pluralBroken catalog file: singular form msgstr used together with msgid_pluralBrowseBy default, inaccurate results are filled in as well and marked as needing work. Check this option to only include accurate matches.C&atalogC&learCancelCannot create temporary directory.Cannot execute program: %sCapitalizeCatalogCatalog modified. Do you want to save changes?Catalog propertiesCatalogs &ManagerCatalogs &managerCatalogs ManagerChange UI languageCharset:Check Document NowCheck Grammar With SpellingCheck Spelling While TypingCheck for Updates…Check for errors in the translationCheck for updates…Check spellingClearClear TranslationClear the commentClear translationCloseCollaborate on a Translation with OthersCollaborate on a translation with othersCollecting source files…Command to extract translations:Comment:Comments prefixed with:Compile to MO…Compile to…Compiled Translation FilesConfigure source code extraction in Properties.ConfirmationCopyCopy From SingularCopy from Source TextCopy from singularCopy from source textCorrect Spelling AutomaticallyCouldn’t load file %s, it is probably corrupted.Couldn’t save file %s.Create New TranslationCreate new translationCreate new translations projectCrowdin errorCrowdin is an online localization management platform and collaborative translation tool. Poedit can seamlessly sync PO files managed at Crowdin.Ctrl+Cu&tCustom Extractors:Custom extractors:CutDatabase size on disk:DeleteDelete extractorDelete the projectDirectories:Display Entry &IDsDisplay entry &IDsDo you really want to do mass update of all catalogs in this project?Do you want to delete the project?Do you want to remove all translations that are no longer used?Don’t SaveDon’t Show AgainDon’t mark exact matches as needing workDon’t saveDon’t show againDownDownload a file from Crowdin project, translate and sync your changes back.Downloading latest translations…Downloading translations is disabled in this project.E&xitE&xport as HTML…EditEdit &CommentEdit &commentEdit CommentEdit a TranslationEdit a translationEdit commentEdit projectEdit the projectEditingEdit…Email:EnterEnter Full ScreenEntries in the catalog are probably incorrect.Entries in this catalog have different plural forms count from what catalog’s Plural-Forms header saysEntries with Errors FirstEntries with errors firstEntries with errors were marked in red in the list. Details of the error will be shown when you select such an entry.Error loading message catalog file “%s”.Error opening fileError opening file %s!Error saving catalogErrorsEverythingExcluded pathsExport as…Extract from sourcesExtract notes for translators from:Extract text from source files in the following directories:Extracting translatable strings…Extractor setupExtractorsFailed command: %sFailed to communicate with Poedit process.Failed to load extracted catalog.Failed to merge gettext catalogs.Failed to update translation memory: %sFileFile “%s” doesn’t exist.File “%s” is not a message catalog.File:Finalizing…FindFind NextFind PreviousFind and Replace…Find in commentsFind in source textsFind in translationsFind nextFind previousFix LanguageFix languageFix the HeaderFix the headerForm %iFrequentGNU gettextGeneralGo to Bookmark %iGo to bookmark %iHTML FilesHelpHide %sHide OthersHide SidebarHide Status BarHide this notification messageIDIf you continue with purging, all translations marked as deleted will be permanently removed. You will have to translate them again if they are added back in the future.Ignore caseImporting translations…Include beta versionsInformation about the translatorInstallInvalid fileInvocation:KeepLanguage Code or Name (e.g. en_GB)Language of the translation is the same as source language.Language of the translation isn’t set.Language of the translation:Language selectionLanguage team:Language:Last modifiedLearn About Gettext KeywordsLearn From Files…Learn MoreLearn More About CrowdinLearn about gettext keywordsLearn about plural formsLearn from files…Learn moreLearn more about CrowdinLeftLine %d of file “%s” is corrupted (not valid %s data).Line endings:List of extensions separated by semicolons (e.g. *.cpp;*.h):MO files can’t be directly edited in Poedit.Make Lower CaseMake Upper CaseMalformed header: “%s”Merging differences…MinimizeName of the project the translation is forName:Ne&xt UnfinishedNe&xt unfinishedNeeds WorkNeeds workNever let the list of strings take focus. If enabled, you must use Ctrl-arrows for keyboard navigation but you can also type text immediately, without having to press Tab to change focus.NewNew From &POT/PO File…New from &POT/PO file…New stringsNext Plural FormNext plural formNoNo Matches FoundNo entries could be pre-translated.No matches foundNo problems with the translation found.No references for the selected item.No translation projects listed in your Crowdin account.Not all plural forms are translated.Not authorized, please sign in again.Notes for translators:OKObsolete stringsOneOnly enable if you trust the quality of your TM. By default, all matches from the TM are marked as needing work and should be reviewed before use.Only fill in exact matchesOpenOpen Crowdin translationOpen From Crowdin…Open RecentOpen an existing PO file and edit the translation.Open catalogOpen catalog templateOpen from Crowdin…Open in EditorOpen in editorOpen...Open…OptionsOtherP&revious UnfinishedP&revious unfinishedPO TranslationPO Translation FilesPOT Translation TemplatesPOT files are only templates and don’t contain any translations themselves. To make a translation, create a new PO file based on the template.PastePaste and Match StylePathsPlease open and edit the corresponding PO file instead. When you save it, the MO file will be updated as well.Please save the file first. This section cannot be edited until then.PluralPlural forms expression used by the catalog is unusual for %s.Plural forms:Plural:PoeditPoedit - Catalogs managerPoedit automatically fixed invalid content in the file “%s”.Poedit can attempt to fill in new entries from only previous translations in the file or from your entire translation memory. Using the TM won’t be very effective if it’s near-empty, but it will get better as you add more translations to it.Poedit is an easy to use translations editor.Pre-&translate…Pre-translatePre-translatedPre-translated %u stringPre-translated %u stringsPre-translating…Pre-translation automatically finds exact or fuzzy matches for untranslated strings in the translation memory and fills in their translations.PreferencesPreferences...Preferences…Preserve formatting of existing filesPrevious Plural FormPrevious plural formPrevious source text:Project name and version:Project name:Project:PurgePurge deleted translationsQuitQuit %sRecentRedoReferences:RefreshRemaining: %dReplaceReplace &AllReplace &allReplacement stringReplace…Required header Plural-Forms is missing.ResetReset translation memoryResetting the translation memory will irrevocably delete all stored translations from it. You can’t undo this operation.ReviewRightSaveSave &As…Save &as…Save asSave as…Save catalogSave changesSelect &AllSelect AllSelect directorySelect translation files to importSelect your preferred languageServicesSet Bookmark %iSet LanguageSet bookmark %iSet languageShift+Show AllShow SidebarShow Spelling and GrammarShow Status BarShow SubstitutionsShow or hide the sidebarShow sidebarShow status barShow summary after catalog updateSidebarSign InSign OutSign inSign in to CrowdinSign outSigned in as:SingularSingular:Smart Copy/PasteSmart DashesSmart LinksSmart QuotesSort by &File OrderSort by &SourceSort by &TranslationSort by &file orderSort by &sourceSort by &translationSource code charset:Source code extractors are used to find translatable strings in the source code files and extract them so that they can be translated.Source code not available.Source fileSource file occurrence:Source textSource text — %sSource text:Sources KeywordsSources PathsSources keywordsSources pathsSpeechSpellchecking is disabled, because the dictionary for %s isn’t installed.Spelling and GrammarStart SpeakingStop SpeakingStored translations:String to findSubstitutionsSuggestionsSuggestions are not available if the translation language is not set correctly. Other features, such as plural forms, may be affected as well.Supports all programming languages recognized by GNU gettext tools (PHP, C/C++, C#, Perl, Python, Java, JavaScript and others).SyncSync with CrowdinSynchronize the translation with CrowdinSyncingSyncing errorSyncing with %s failed.Syncing with %s…Syncing with Crowdin failed.Syntax error in Plural-Forms header ("%s").TMTake an existing PO file or POT template and create a new translation from it.Take translatable strings from an existing POT template.Team name and email address or URLText ReplacementThe TM doesn’t contain any strings similar to the content of this file. It is only effective for semi-automatic translations after Poedit learns enough from files that you translated manually.The file cannot be compiled into the MO format and used.The file cannot be opened.The file contained duplicate items, which is not allowed in PO files and would prevent the file from being used. Poedit fixed the issue, but you should review translations of any items marked as needing work and correct them if necessary.The file may be either corrupted or in a format not recognized by Poedit.The file was compiled into the MO format, but it will probably not work correctly.The file was saved safely and compiled into the MO format, but it will probably not work correctly.The file was saved safely, but it cannot be compiled into the MO format and used.The file was saved safely.The old source text (before it changed during an update) that the now-inaccurate translation corresponds to.The simplest way to fill this catalog is to update it from a POT:The translation doesn’t start with a space.The translation ends with a newline, but the source text doesn’t.The translation ends with a space, but the source text doesn’t.The translation ends with “%s”, but the source text ends with “%s”.The translation is missing a newline at the end.The translation is missing a space at the end.The translation is ready for use, but %d entry is not translated yet.The translation is ready for use, but %d entries are not translated yet.The translation is ready for use.The translation should end with “%s”.The translation should not end with “%s”.The translation should start as a sentence.The translation should start with a lowercase character.The translation starts with a space, but the source text doesn’t.The translations were marked as needing work, because they may be inaccurate. You should review them for correctness.There are no translations. That’s unusual.There was a problem formatting the file nicely (but it was saved all right).There were errors when loading the catalog. Some data may be missing or corrupted as the result.These settings affect internal formatting of PO files. Adjust them if you have specific requirements e.g. because of version control.These strings are no longer in the sources. Poedit will remove them from the catalog now.These strings were found in the sources but were not in the catalog. Poedit will add them to the catalog now.This catalog has entries with plural forms, but doesn’t have Plural-Forms header configured.This file can only be edited in Crowdin’s web interface.This is the command used to launch the extractor. %o expands to the name of output file, %K to list of keywords, %F to list of input files, %C to charset flag (see below).This project has no files that can be translated in Poedit.This string was found in Poedit’s translation memory.This will be attached to the command line only if source code charset was given. %c expands to charset value.This will be attached to the command line once for each input file. %f expands to the filename.This will be attached to the command line once for each keyword. %k expands to the keyword.TotalTransformationsTranslated: %d of %d (%d %%)Translation LanguageTranslation MemoryTranslation Needs &WorkTranslation PropertiesTranslation needs &workTranslation propertiesTranslation suggestions:Translation — %sTranslation:Translations couldn’t be updated from the source code, because no code was found in the location specified in the catalog’s Properties.TwoUTF-8 (recommended)UndoUnhandled exception occurred: %sUnix (recommended)UntransUpUpdateUpdate allUpdate all catalogs in the projectUpdate catalog - synchronize it with sourcesUpdate from &POT File…Update from &POT file…Update from POTUpdate summaryUpdatesUpdating catalogUpdating failedUpdating the catalog failed. Click on 'Details >>' for details.Updating user information…Uploading translations…Use custom expressionUse custom list font:Use custom text fields font:Use default rules for this languageUse these keywords (function names) to recognize translatable strings in source files:Use translation memoryValidateValidation resultsVersion %sWaiting for authentication…Welcome to PoeditWhat is Crowdin?When updating from sourcesWhole words onlyWindowWindowsWrap aroundWrap at:YesYou can also extract translatable strings directly from the source code:You can’t drop more than one file on Poedit window.You must restart Poedit for this change to take effect.Your NameYour changes will be lost if you don’t save them.Your name and email address are only used to set the Last-Translator header of GNU gettext files.ZeroZoomaltctrldon’t delete temporary files (for debugging)e.g. nplurals=2; plural=(n > 1);fuzzy match within the filehandle a poedit:// URIpre-translate from TMshiftunknown languageyour_email@example.com“%s” is not a valid POT file.Project-Id-Version: poedit Report-Msgid-Bugs-To: help@poedit.net POT-Creation-Date: 2017-12-05 15:52+0100 PO-Revision-Date: 2017-07-27 03:15-0400 Last-Translator: vslavik Language-Team: Slovenian Language: sl_SI MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=4; plural=(n%100==1 ? 1 : n%100==2 ? 2 : n%100==3 || n%100==4 ? 3 : 0); X-Generator: crowdin.com X-Crowdin-Project: poedit X-Crowdin-Language: sl X-Crowdin-File: /locales/poedit.pot (spremenjeno) (neshranjeno)%d vnos%d vnosa%d vnosi%d vnosov%d vnos je bil vnaprej preveden.%d vnosa sta bila vnaprej prevedena.%d vnosi so bili vnaprej prevedeni.%d vnosov je bilo vnaprej prevedenih.%d napaka%d napaki%d napake%d napakNajdena je %d napaka v prevodu.Najdeni sta %d napaki v prevodu.Najdene so %d napake v prevodu.Najdenih je %d napak v prevodu.%i vrstica datoteke »%s« ni pravilno naložena.%i vrstici datoteke »%s« nista pravilno naloženi.%i vrstice datoteke »%s« niso pravilno naložene.%i vrstic datoteke »%s« ni pravilno naloženih.Oblika %sNastavitve %sOblika %s&O programu&O programu&UporabiNaza&j&ZaznamkiPre&kličiPo&čisti&Zapri&Kopiraj&Izbriši&Končano in naprej&Končano in naprej&Uredi&Datoteka&Najdi ...Dokumentacija GNU &gettextDokumentacija GNU &gettext&Pojdi&Združi po vsebini&Združi po vsebiniPomo&č&Nov&Nov ...&Naslednji >&Naslednji prevod&Naslednji prevod&NeV &reduSpletna pomo&čSpletna pomo&č&Odpri ...&Odpri ...&Prilepi&Možnosti&Možnosti ...&Predhoden prevod&Predhoden prevod&Lastnosti ...&Počisti izbrisane prevode&Odstrani izbrisane prevodeI&zhod&Uveljavi&Zamenjaj&Shrani&Shrani kot&Pokaži sklice&Pokaži sklice&Razveljavi&Najprej razvrsti neprevedeno&Najprej razvrsti neprevedene nize&Posodobi iz izvorne kode&Posodobi iz izvorne kode&Potrdi ustreznost prevoda&Potrdi ustreznost prevoda&Pogled&Da(novi: 0, zastareli: 0)(Več o GNU gettext)(Novo: %i, zastarelo: %i)(Uporabi privzeti jezik)(zahteva Windows 8 ali novejše)< &PredhodniNa to mesto povlecite in spustite mape ali pa uporabite gumb +Na to mesto povlecite in spustite mape ali pa uporabite gumb +O %sRačuniDodaj komentarDodaj datoteke ...Dodaj mape ...Dodaj nadomestni znak ...Dodaj komentarDodaj mapo na seznamDodaj datoteke ...Dodaj mape ...Dodaj nadomestni znak ...Dodatne ključne besedeDodatne zastavice xgettext:NaprednoNapredne nastavitve izluščenja ...Napredne nastavitve izluščenja ...Napredne nastavitve izluščenja ...Vse prevodne datotekeVsi komentarjiUporabi tudi privzete ključne besede za podprte jezikeIzmenjalka+Vedno postavi v žarišče polje za vnos besedilaPredmet v seznamu vhodnih datotek:Predmet v seznamu ključnih besed:VidezUporabiAli ste prepričani, da želite izbrisati pretvornik »%s«?Ali ste prepričani, da želite ponastaviti pomnilnik prevodov?Samodejno preveri za posodobitveMed shranjevanjem samodejno ustvari datoteko MONazajOsnovna pot:Beta različice vsebujejo najnovejše izboljšave, vendar pa je lahko delovanje programa nestabilno.Postavi vse v ospredjePoškodovana datoteka kataloga: množinska oblika msgstr je uporabljena brez msgid_pluralPoškodovana datoteka kataloga: edninska oblika msgstr je uporabljena skupaj z msgid_pluralPrebrskajPrivzeto se tudi nenatančni rezultati vstavijo in se označijo kot potrebni predelave. Potrdite to možnost, da bodo vključeni le natančna ujemanja.K&atalogPo&čistiPrekličiNi mogoče ustvariti začasne mape.Ni mogoče izvesti programa: %sZ velikimi začetnicamiKatalogKatalog je spremenjen. Ali želite spremembe shraniti?Lastnosti kataloga&Upravljalnik katalogov&Upravljalnik katalogovUpravljalnik katalogovSpremeni jezik uporabniškega vmesnikaKodni nabor:Preveri dokument zdajOb preverjanju črkovanja preveri tudi slovnicoPreverjanje črkovanja med tipkanjemPreveri obstoj posodobitev ...Preveri za napake v prevoduPreveri obstoj posodobitev ...Preveri črkovanje prevodovPočistiPočisti prevodPočisti opombePočisti prevodZapriSodeluj pri prevodu z drugimiSodeluj pri prevodu z drugimiZbiranje izvornih datotek ...Ukaz za pretvarjanje prevodov:Opomba:Pripombe s predpono:Prevedi v MO ...Prevedi v ...Prevedene prevodne datotekeMožnosti prevajanja iz izvorne kode so zbrane med nastavitvami.PotrditevKopirajKopiraj iz edninske oblikeKopiraj iz izvornega besedilaKopiraj iz edninske oblikeKopiraj iz izvornega besedilaSamodejno popravljaj napake v črkovanjuDatoteke %s ni mogoče naložiti, najverjetneje je okvarjena.Datoteke %s ni mogoče shraniti.Ustvari nov prevodUstvari nov prevodUstvari nov projekt prevajanjaNapaka CrowdinCrowdin je spletna platforma za jezikovno prilagajanje programske opreme in orodje za skupinsko prevajanje. Poedit lahko neopazno usklajuje datoteke PO, ki se upravljajo na Crowdin.Krmilka+I&zrežiPretvorniki po meri:Pretvorniki po meri:IzrežiVelikost zbirke podatkov na disku:IzbrišiIzbriši pretvornikIzbriši projektMape:Pokaži kode ID vnosovPokaži kode ID vnosovAli res želite hkrati osvežiti vse kataloge projekta?Ali želite izbrisati projekt?Ali res želite odstraniti vse prevode, ki niso več v uporabi?Ne shraniNe prikaži večNatančnih zadetkov ne označi kot potrebnih predelaveNe shraniNe prikaži večNavzdolPrevzame datoteko prek spletišča Crowdin in jo usklajuje s spletnim prevodom.Prenašanje najnovejših prevodov ...Prenos prevodov je onemogočena v tem projektu.&Končaj&Izvozi kot HTML ...UrediUredi &opomboUredi &opomboUredi opomboUredi prevodUredi prevodUredi opomboUredi projektUredi projektUrejanjeUredi ...E-naslov:VnašalkaVstopi v celozaslonski načinVnosi v katalogu so najbrž napačni.Vnosi v katalogu uporabljajo druge množinske oblike, kot je to določeno v glavi kataloga.Vnose z napakami postavi na vrhVnose z napakami postavi na vrhVnosi na seznamu z napakami so označeni z rdečo barvo. Podrobnosti napake so prikazane ob izboru.Napaka med nalaganjem datoteke kataloga sporočil »%s«.Napaka pri odpiranju datotekeNapaka pri odpiranju datoteke %s!Napaka pri shranjevanju katalogaNapakeVseIzključene potiIzvozi kot ...Prevedi iz izvorne kodePretvori opombe prevajalcev iz:Pretvori prevedljive nize izvornih datotek v navedenih mapah:Izluščenje prevedljivih nizov ...Nastavitve pretvornikovPretvornikiPrišlo je do napake med izvajanjem ukaza: %sPovezovanje s programom Poedit je spodletelo.Prišlo je do napake med nalaganjem kataloga prevodov.Prišlo je do napake med združevanjem katalogov sporočil gettext.Posodobitev prevodnega pomnilnika ni uspela: %sDatotekaDatoteka »%s« ne obstaja.Datoteka »%s« ni katalog sporočil.Datoteka:Zaključevanje ...NajdiNajdi naslednjeNajdi predhodnegaNajdi in zamenjaj ...Najdi v opombahPoišči med izvirnikiPoišči med prevodiPoišči naslednjegaPoišči predhodnegaPopravi jezikPopravi jezikPopravi glavoPopravi glavoOblika %iPogostogettext GNUSplošnoPojdi na zaznamek %iPojdi na zaznamek %iDatoteke HTMLPomočSkrij %sSkrij ostaleSkrij stransko vrsticoSkrij vrstico stanjaSkrij obvestilno sporočiloIDČe prevode počistite, bodo vsi, ki so označeni kot izbrisani, trajno izgubljeni. V kolikor se ti nizi v prihodnje znova pojavijo, jih bo treba ponovno prevesti.Prezri velikost črkUvažanje prevodov ...Vključi različice betaPodatki o prevajalcuNamestiNeveljavna datotekaPriklic:OhraniŠifra jezika ali ime (npr. sl_SI ali sl)Jezik prevoda je enak izvornemu jeziku.Jezik prevoda ni nastavljen.Jezik prevoda:Izbor jezikaEkipa jezika:Jezik:Zadnjič spremenjenoPreglejte ključne besede gettextNauči se iz datotek ...Več podrobnostiVeč o CrowdinPreglejte ključne besede gettextPodrobnosti o množinskih oblikahNauči se iz datotek ...Več podrobnostiVeč o CrowdinLevoVrstica %d datoteke »%s« je okvarjena (ne vsebuje veljavnih podatkov %s).Zaključki vrstic:Seznam pripon, ločenih s podpičjem (e.g. *.cpp;*.h):Datotek MO ni mogoče neposredno urejati s programom Poedit.Izpiši z malimi črkamiIzpiši z velikimi črkamiNepravilno oblikovana glava: »%s«Združevanje razlik ...PomanjšajIme projekta, katerega prevod je toIme:&Naslednji neprevedeni&Naslednji neprevedeniPotrebno predelavePotrebno predelaveNe dovoli postavitve seznama nizov v žarišče. Izbrana možnost omogoča uporabo tipk Ctrl+Smerne tipke za premikanje med vrsticami s tipkovnico in hkrati omogoča neposredni vnos besedila brez predhodno pritisnjene tipke Tab.NovoNovo iz datoteke &POT/PO ...Novo iz datoteke &POT/PO ...Nov nizNaslednja množinska oblikaNaslednja množinska oblikaNeNi zadetkovNobenega vnosa ni bilo mogoče prevesti vnaprej.Ni zadetkovNi zaznanih tehničnih napak v prevodu.Ni referenc za izbrani element.Nobenega projekta prevoda ni v računu Crowdin.Vse množinske oblike še niso prevedene.Niste pooblaščeni, ponovno se prijavite.Opomba prevajalcem:V reduZastareli niziEdenMožnost je priporočljivo izbrati le, če ste prepričani v kakovost pomnilnika prevodov. Privzeto so vsi izpolnjeni prevodi (zadetki iz prevodnega pomnilnika) označeni kot potrebni predelave in jih je treba preveriti.Izpolni le natančna ujemanjaOdpriOdpri prevod CrowdinOdpri iz Crowdina ...Odpri nedavneOdpre obstoječo datoteko PO za urejanje.Odpre katalogOdpri predlogo katalogaOdpri iz Crowdina ...Odpri v urejevalnikuOdpri v urejevalnikuOdpri ...Odpri ...MožnostiDrugo&Predhodni neprevedeni&Predhodni neprevedeniPrevod POPrevodne datoteke POPrevodne predloge POTPOT datoteke so samo predloge in ne vsebujejo prevodov. Za prevod ustvarite novo datoteko PO na osnovi predloge.PrilepiPrilepi in uskladi slogPotiPoskusite odpreti in urediti ustrezno datoteko PO. Ko jo shranite, bo posodobljena tudi kodno prevedena datoteka MO.Najprej je treba datoteko shraniti. Tega odseka do tedaj ni mogoče urejati.MnožinaIzraz množinskih oblik, ki je zaveden v katalogu, ni običajen za jezik %s.Množinske oblike:Množina:PoeditPoedit – upravljalnik katalogovProgram je samodejno popravil neveljavno vsebino v datoteki »%s«.Program lahko poskusi zapolniti na novo dodane nize zgolj iz prevodov, ki so že v datoteki ali pa iz celotnega pomnilnika prevodov. Uporaba pomnilnika ni učinkovita, če je ta prazen, se pa samodejno posodablja s prevedenimi nizi.Poedit je enostaven in priročen urejevalnik prevodov.Vnapre&j prevedi ...Vnaprej prevediVnaprej prevedenoZapolnjen je %u nizZapolnjena sta %u nizaZapolnjeni so %u niziZapolnjenih je %u nizovPrevajanje vnaprej ...Vnaprejšnji prevod samodejno najde natančne ali približne zadetke za neprevedene nize v prevodnem pomnilniku in izpolni njihove prevode.MožnostiMožnosti ...Možnosti ...Ohrani oblikovanje obstoječih datotekPredhodna množinska oblikaPredhodna množinska oblikaPredhodno besedilo vira:Ime in različica projekta:Ime projekta:Projekt:PočistiOdstrani izbrisane prevodeKončajKončaj %sNedavnoPonoviSklici:OsvežiPreostalo: %dZamenjajZamenjaj &vseZamenjaj &vseNadomestni nizZamenjaj ...V glavi manjka zahtevano določilo za množinske oblike.PonastaviPonastavi pomnilnik prevodovPonastavitev prevodnega pomnilnika bo nepovratni izbrisala vse shranjene prevode. Te operacije ne morete povrniti.PreglejDesnoShraniShrani &kot …Shrani &kot …Shrani kotShrani kot …Shrani katalogShrani spremembeIzberi &vseIzberi vseIzbor mapeIzberite prevodne datoteke za uvozIzberite želeni jezikStoritveDoloči zaznamek %iDoloči jezikDoloči zaznamek %iDoloči jezikDvigalka+Pokaži vsePokaži stransko vrsticoPokaži črkovanje in slovnicoPokaži vrstico stanjaPokaži zamenjavePokaži oz. skrij stransko vrsticoPokaži stransko vrsticoPokaži vrstico stanjaPo uspešni posodobitvi kataloga pokaži povzetekStranska vrsticaPrijaviOdjaviPrijaviPrijavi v CrowdinOdjaviPrijavljeni kot:EdninaEdnina:Pametno kopiranje/lepljenjePametni pomišljajiPametne povezavePametni narekovajiRazvrsti po &imenu datotekRazvrsti po &viruRazvrsti po &prevoduRazvrsti po &imenu datotekRazvrsti po &viruRazvrsti po &prevoduKodni nabor izvorne kode:Pretvorniki se uporabljajo za izločevanje prevedljivih nizov iz datotek izvorne kode. Po pretvarjanju so nizi zbrani v datoteke, ki jih je nato mogoče prevesti.Izvorna koda ni na voljo.Izvorna datotekaPojavitev izvorne datoteke:Izvorno besediloIzvorno besedilo – %sIzvorno besedilo:Ključne besede viraPoti viraKljučne besede viraPoti viraGovorPreverjanje črkovanja je onemogočeno, ker ni nameščen slovar za %s.Črkovanje in slovnicaZačni govoritiNehaj govoritiShranjeni prevodi:Iskalni nizZamenjavePredlogiPredlogi niso na voljo, če jezik prevoda ni pravilno nastavljen. To lahko vpliva tudi na druge funkcije, kot so množinske oblike.Podpira vse programskih jezikov, prepoznanih z orodji gettext GNU (PHP, C/C++, C#, Perl, Python, Java, JavaScript in drugi).UskladiUskladi s CrowdinUskladi prevod s CrowdinPoteka usklajevanjeNapaka usklajevanjaUsklajevanje s strežnikom %s je spodletelo.Usklajevanje s strežnikom %s ...Usklajevanje s Crowdin ni uspelo.Napaka skladnje v glavi množinskih oblik ("%s").PPOdpre obstoječo datoteko PO ali predlogo POT za začetek prevajanja.Prevzame prevedljive nize iz obstoječe predloge POT.Ime ekipe ter e-poštni naslov ali URLNadomestno besediloV pomnilniku prevodov ni nizov, ki so podobni vsebini v tej datoteki. Uporaba bo učinkovita šele po daljšem časovnem obdobju dela z orodjem Poedit, ko bo v pomnilniku več vsebine.Datoteke ni mogoče kodno prevesti v zapis MO in uporabiti v programu.Datoteke ni mogoče odpreti.V datoteki so bili podvojeni predmeti, kar v zgradbi datoteke PO ni dovoljeno in datoteka ne bi mogla biti uporabljena. Napaka je bila odpravljena, vseeno pa je priporočeno pregledati prevode in predvsem razrešiti tiste, ki so označeni kot potrebni predelave.Datoteka je lahko poškodovana ali v neznanem zapisu za Poedit.Datoteka je kodno pretvorjena v zapis MO, vendar najverjetneje ne bo pravilno delovala.Datoteka je shranjena in kodno pretvorjena v zapis MO, vendar najverjetneje ne bo pravilno delovala.Besedilna datoteka prevoda je uspešno shranjena, ni pa je mogoče pretvoriti v zapis MO za uporabo.Datoteka je bila shranjena varno.Staro izvorno besedilo (pred spreminjanjem med posodobitvijo), ki sovpada z zdaj ohlapnim prevodom.Najenostavnejši način za nadgradnjo kataloga je posodobitev prek datoteke POT:Niz prevoda se ne začne s preslednim znakom.Niz prevoda se konča z oznako za novo vrstico, ki je v izbornem nizu ni.Niz prevoda se konča s preslednim znakom, ki ga v izvornem nizu ni.Prevod niza se konča z znakom »%s«, izvorni niz pa z »%s«.Nizu prevoda manjka na koncu oznaka za novo vrstico.Nizu prevoda manjka presledek na koncu.Prevod je pripravljen za uporabo, vendar pa %d niz še ni preveden.Prevod je pripravljen za uporabo, vendar pa %d niza še nista prevedena.Prevod je pripravljen za uporabo, vendar pa %d nizi še niso prevedeni.Prevod je pripravljen za uporabo, vendar pa %d nizov še ni prevedenih.Prevod je pripravljen za uporabo.Prevod niza se mora končati z znakom »%s«.Prevod niza se ne sme končati z znakom »%s«.Prevod se mora začeti kot poved.Prevod se mora začeti z malo črko.Niz prevoda se začne s preslednim znakom, ki ga v izvornem nizu ni.Prevodi, izpisani iz pomnilnika, so označeni kot potrebni predelave. Priporočljivo jih je natančno pregledati in ustrezno popraviti.Ni prevodov. To je nenavadno.Prišlo je do napake med zapisovanjem zgradbe kataloga (datoteka je bila sicer uspešno shranjena).Med nalaganjem kataloga je prišlo do napak. Del podatkov morda manjka ali pa so kot rezultat nepravilni.Nastavitve vplivajo na notranje oblikovanje datotek PO. Možnosti je priporočljivo prilagoditi, kadar so zahtevani posebne prilagoditve; na primer pri nadzoru različic.Ti nizi znakov se ne nahajajo več v izvornih datotekah. Program jih bo samodejno odstranil iz kataloga.Ti nizi so bili v izvornih datotekah, vendar niso v katalogu. Program jih bo samodejno dodal v katalog.V katalogu so vnosi z množinskimi oblikami, ki niso pravilno določeni v glavi kataloga.To datoteko je mogoče urejati le v spletnem vmesniku prevajalskega orodja Crowdin.Zgoraj je naveden ukaz, s katerim se zažene pretvornik. Parameter %o določa ime izhodne datoteke, %K seznam ključnih besed, %F seznam vhodnih datotek, %C pa zastavico kodnega nabora (spodaj).Ta projekt ne vsebuje datotek, ki jih je mogoče prevesti s programom Poedit.Niza v pomnilniku prevodov ni mogoče najti.Zastavica bo dodana ukazni vrstici le, če je podan nabor znakov. Parameter %c določa jezikovni nabor.Zastavica bo dodana ukazni vrstici za vsako vhodno datoteko. Parameter %f določa to ime datoteke.Zastavica bo dodana ukazni vrstici za vsako ključno besedo. Parameter %k določa to ključno besedo.SkupnoPretvorbePrevedeno: %d %d (%d %%)Jezik prevodaPomnilnik prevodovPrevo&d potrebuje predelavoLastnosti prevodaPrevo&d potrebuje predelavoLastnosti prevodaPredlogi prevoda:Prevod — %sPrevod:Prevoda ni mogoče posodobiti prek povezave z izvorno kodo, ker te na navedenem mestu ni mogoče najti.DvaUTF-8 (priporočeno)RazveljaviNeobravnavana izjema: %sUnix (priporočeno)NeprevedenoNavzgorPosodobiPosodobi vsePosodobi vse kataloge projektaPosodobi katalog - uskladi z izvorno kodoPosodobi z datoteko &POT ...Posodobi z datoteko &POT ...Posodobi iz datoteke POTPosodobi povzetekPosodobitvePosodabljanje katalogaPosodobitev ni uspelaPosodobitev kataloga ni uspela. Za več podrobnosti kliknite na »Več >>«.Posodabljanje podrobnosti o uporabniku ...Nalaganje prevodov ...Uporabi izraz po meriUporabi pisavo seznama po meri:Uporabi pisavo besedilnih polj po meri:Uporabi privzeta pravila za ta jezikUporabi ključne besede (imena funkcij) za prepoznavanje prevedljivih nizov v izvornih datotekah:Uporabi pomnilnik prevodovPotrdi ustreznostRezultati določanja ustreznosti prevodaRazličica %sČakanje na preverjanje pristnosti ...Dobrodošli v PoeditKaj je Crowdin?Pri posodabljanju iz virov ...Le cele besedeOknoMS WindowsPrelomi besediloPrelomi pri:DaPrevedljive nize je mogoče prevesti tudi neposredno iz izvorne kode:Ni mogoče povleči več kot ene datoteke v okno Poedit.Program Poedit je treba ponovno zagnati, da spremembe začnejo veljati.ImeČe opravljenih sprememb ne shranite, bodo trajno izgubljene.Ime in elektronski naslov se zavedeta v datotekah gettext GNU.NičPovečavaizmenjalkakrmilkane izbriši začasnih datotek (za razhroščevanje)npr. nplurals=4; plural=(n%100==1 ? 1 : n%100==2 ? 2 : n%100==3 || n" "%100==4 ? 3 : 0);najdi približen zadetek iz datotekeupravljaj z naslovom URI poedit://prevedi iz pomnilnika prevodovdvigalkaneznani jezikvas_naslov@primer.si»%s« ni veljavna datoteka POT.poedit-2.0.6/locales/lv.po0000664000372000037200000012237413230132100012321 00000000000000msgid "" msgstr "" "Project-Id-Version: poedit\n" "Report-Msgid-Bugs-To: help@poedit.net\n" "POT-Creation-Date: 2017-12-05 15:52+0100\n" "PO-Revision-Date: 2017-07-27 03:14-0400\n" "Last-Translator: vslavik \n" "Language-Team: Latvian\n" "Language: lv_LV\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n==0 ? 0 : n%10==1 && n%100!=11 ? 1 : 2);\n" "X-Generator: crowdin.com\n" "X-Crowdin-Project: poedit\n" "X-Crowdin-Language: lv\n" "X-Crowdin-File: /locales/poedit.pot\n" msgid "Hide this notification message" msgstr "Nerādīt šo paziņojumu" msgid "Don’t Show Again" msgstr "Turpmāk nerādīt" msgid "Don’t show again" msgstr "Turpmāk nerādīt" #, c-format msgid "(New: %i, obsolete: %i)" msgstr "" msgid "Updating catalog" msgstr "" msgid "Collecting source files…" msgstr "" msgid "Extracting translatable strings…" msgstr "" msgid "Failed to load extracted catalog." msgstr "Neizdevās ielādēt izvilkto katalogu." msgid "Merging differences…" msgstr "" #, c-format msgid "“%s” is not a valid POT file." msgstr "“%s” nav derīgs POT fails." #, c-format msgid "%i line of file “%s” was not loaded correctly." msgid_plural "%i lines of file “%s” were not loaded correctly." msgstr[0] "" msgstr[1] "" msgstr[2] "" #, c-format msgid "Line %d of file “%s” is corrupted (not valid %s data)." msgstr "" #, c-format msgid "Malformed header: “%s”" msgstr "Nepareizi veidota galvene: “%s”" msgid "" "Broken catalog file: singular form msgstr used together with msgid_plural" msgstr "" "Sabojāts kataloga fails: vienskaitļa forma msgstr lietota kopā ar " "msgid_plural" msgid "Broken catalog file: plural form msgstr used without msgid_plural" msgstr "" "Sabojāts kataloga fails: daudzskaitļa forma msgstr lietota bez msgid_plural" msgid "" "There were errors when loading the catalog. Some data may be missing or " "corrupted as the result." msgstr "" "Radās kļūdas ielādējot katalogu. Tā rezultātā daži dati varētu būt sabojāti " "vai varētu iztrūkt." #, c-format msgid "Couldn’t load file %s, it is probably corrupted." msgstr "" #, c-format msgid "" "File “%s” is read-only and cannot be saved.\n" "Please save it under different name." msgstr "" #, c-format msgid "Couldn’t save file %s." msgstr "Nevarēja saglabāt failu %s." msgid "" "There was a problem formatting the file nicely (but it was saved all right)." msgstr "Radās kļūda formatējot failu (bet tomēr tika veiksmīgi saglabāts)." #, c-format msgid "" "The catalog couldn’t be saved in “%s” charset as specified in catalog " "settings.\n" "\n" "It was saved in UTF-8 instead and the setting was modified accordingly." msgstr "" msgid "Error saving catalog" msgstr "Kļūda saglabājot katalogu" msgid "PO Translation Files" msgstr "PO tulkojumu faili" msgid "POT Translation Templates" msgstr "POT tulkojumu faili" msgid "All Translation Files" msgstr "Visi tulkojumu faili" msgid "(Use default language)" msgstr "(Lietot noklusējuma valodu)" msgid "Select your preferred language" msgstr "Atlasīt vēlamo valodu" msgid "Language selection" msgstr "Valodas izvēle" msgid "You must restart Poedit for this change to take effect." msgstr "Restartēt Poedit, lai novērot šo izmaiņu." msgid "Syncing" msgstr "" #. TRANSLATORS: %s is a cloud destination, e.g. "Crowdin" or ftp.wordpress.com etc. #, c-format msgid "Syncing with %s…" msgstr "" #. TRANSLATORS: %s is a cloud destination, e.g. "Crowdin" or ftp.wordpress.com etc. #, c-format msgid "Syncing with %s failed." msgstr "" msgid "Syncing error" msgstr "Sinhronizācijas kļūda" msgid "Downloading translations is disabled in this project." msgstr "Šajā projektā tulkojumu lejupielāde ir atspējota." msgid "Not authorized, please sign in again." msgstr "Noraidīts, lūdzu pierakstīties no jauna." msgid "" "Crowdin is an online localization management platform and collaborative " "translation tool. Poedit can seamlessly sync PO files managed at Crowdin." msgstr "" "Crowdin ir tiešsaistes lokalizācijas vadīšanas platforma un sadarbības veida " "tulkošanas rīks. Poedit var gludi sinhronizēt pie Crowdin turētus PO failus." msgid "Sign In" msgstr "Pieslēgties" msgid "Sign in" msgstr "Pieslēgties" msgid "Sign Out" msgstr "Izlogoties" msgid "Sign out" msgstr "Izlogoties" msgid "Waiting for authentication…" msgstr "Gaida autentifikāciju…" msgid "Updating user information…" msgstr "Atjauno lietotāja informāciju…" msgid "Signed in as:" msgstr "Pieslēdzies kā:" msgid "Learn More About Crowdin" msgstr "Uzzināt vairak par Crowdin" msgid "Learn more about Crowdin" msgstr "Uzzināt vairak par Crowdin" msgid "Sign in to Crowdin" msgstr "Pieslēgties Crowdin" msgid "Open Crowdin translation" msgstr "Atvērt Crowdin tulkojumu" msgid "Project:" msgstr "Projekts:" msgid "Language:" msgstr "Valoda:" msgid "File:" msgstr "Fails:" msgid "No translation projects listed in your Crowdin account." msgstr "Jūsu Crowdin kontā nav tulkošanas projektu saraksts." msgid "This project has no files that can be translated in Poedit." msgstr "Šim projektam nav failu, ko var tulkot ar Poedit." msgid "This file can only be edited in Crowdin’s web interface." msgstr "Šo failu var rediģēt tikai Crowdin web interfeisā." msgid "Downloading latest translations…" msgstr "Lejupielādēt jaunāko tulkojumu…" msgid "Syncing with Crowdin failed." msgstr "Sinhronizēšana ar Crowdin neizdevās." msgid "Crowdin error" msgstr "Crowdin kļūda" msgid "Uploading translations…" msgstr "Augšupielādē tulkojumus…" msgid "&Copy" msgstr "Kopēt" msgid "Learn more" msgstr "Uzzināt vairāk" msgid "Learn More" msgstr "Uzzināt vairāk" msgid "&Help" msgstr "&Palīdzība" msgid "MO files can’t be directly edited in Poedit." msgstr "MO failu nevar tieši rediģēt Poedit." msgid "Error opening file" msgstr "Kļūda, atverot failu" msgid "" "Please open and edit the corresponding PO file instead. When you save it, " "the MO file will be updated as well." msgstr "" "Lūdzu, atveriet un rediģējiet atbilstošo PO failu tā vietā. Saglabājot to, " "tiks atjaunināts arī MO fails." msgid "don’t delete temporary files (for debugging)" msgstr "" msgid "handle a poedit:// URI" msgstr "rīkoties ar poedit://URI" msgid "go to item at given line number" msgstr "" msgid "Failed to communicate with Poedit process." msgstr "Komunikācija ar Poedit procesu neizdevās." #, c-format msgid "Unhandled exception occurred: %s" msgstr "Neapstrādāts izņēmums notika: %s" msgid "Open catalog" msgstr "Atvērt katalogu" #, c-format msgid "File “%s” doesn’t exist." msgstr "Fails “%s” nepastāv." msgid "Poedit is an easy to use translations editor." msgstr "Poedit ir vienkārši izmantojams tulkojumu redaktors." msgid "Catalogs Manager" msgstr "Katalogu pārvaldnieks" msgid "Check for Updates…" msgstr "" msgid "&Edit" msgstr "R&ediģēt" msgid "Undo" msgstr "Atsaukt" msgid "Redo" msgstr "Atcelt atsaukšanu" msgid "Paste and Match Style" msgstr "Ielīmēt un pieskaņot stilam" msgid "Delete" msgstr "Izdzēst" msgid "Spelling and Grammar" msgstr "Pareizrakstība un gramatika" msgid "Show Spelling and Grammar" msgstr "Rādīt pareizrakstību un gramatiku" msgid "Check Document Now" msgstr "Pārbaudīt dokumentu" msgid "Check Spelling While Typing" msgstr "Pārbaudīt pareizrakstību rakstīšanas laikā" msgid "Check Grammar With Spelling" msgstr "Pārbaudīt gramatiku kopā ar pareizrakstību" msgid "Correct Spelling Automatically" msgstr "Izlabot pareizrakstību automātiski" msgid "Substitutions" msgstr "Aizvietošanas" msgid "Show Substitutions" msgstr "Rādīt aizvietošanas" msgid "Smart Copy/Paste" msgstr "Gudrs Copy/Paste" msgid "Smart Quotes" msgstr "Figūrpēdiņas" msgid "Smart Dashes" msgstr "Domuzīme" msgid "Smart Links" msgstr "Saites" msgid "Text Replacement" msgstr "Teksta aizstāšana" msgid "Transformations" msgstr "Transformācijas" msgid "Make Upper Case" msgstr "" msgid "Make Lower Case" msgstr "" msgid "Capitalize" msgstr "" msgid "Speech" msgstr "Runa" msgid "Start Speaking" msgstr "Sākt izrunāt" msgid "Stop Speaking" msgstr "Beigt izrunāt" msgid "&View" msgstr "&Skats" msgid "Enter Full Screen" msgstr "" msgid "Window" msgstr "Logs" msgid "Minimize" msgstr "Minimizēt" msgid "Zoom" msgstr "" msgid "Bring All to Front" msgstr "" #. TRANSLATORS:File kind displayed in Finder/Explorer msgid "PO Translation" msgstr "" msgid "The file cannot be opened." msgstr "Fails nav atverams." msgid "Invalid file" msgstr "Nederīgs fails" msgid "" "The file may be either corrupted or in a format not recognized by Poedit." msgstr "Fails varētu būt bojāts vai Poedit neatpazīstamā formātā." msgid "You can’t drop more than one file on Poedit window." msgstr "" #, c-format msgid "File “%s” is not a message catalog." msgstr "" msgid "Poedit" msgstr "Poedit" msgid "&File" msgstr "&Fails" msgid "&Go" msgstr "&Iet" #. TRANSLATORS: %s is language name in its basic form (as you #. would see e.g. in a list of supported languages). You may need #. to rephrase it, e.g. to an equivalent of "for language %s". #, c-format msgid "" "Spellchecking is disabled, because the dictionary for %s isn’t installed." msgstr "" msgid "Install" msgstr "Instalēt" msgid "Catalog modified. Do you want to save changes?" msgstr "Katalogs ir modificēts. Vai vēlaties saglabāt izmaiņas?" msgid "Save changes" msgstr "Saglabāt izmaiņas" msgid "Your changes will be lost if you don’t save them." msgstr "" msgid "Save" msgstr "Saglabāt" msgid "Don’t save" msgstr "Nesaglabāt" msgid "Don’t Save" msgstr "Nesaglabāt" msgid "Save as…" msgstr "Saglabāt kā…" msgid "Compile to…" msgstr "" msgid "Compiled Translation Files" msgstr "" msgid "Export as…" msgstr "Eksportēt kā…" msgid "HTML Files" msgstr "HTML faili" msgid "Open catalog template" msgstr "Atvērt kataloga paraugu" msgid "Source code not available." msgstr "" msgid "Updating failed" msgstr "" msgid "" "Translations couldn’t be updated from the source code, because no code was " "found in the location specified in the catalog’s Properties." msgstr "" msgid "Entries in the catalog are probably incorrect." msgstr "Ieraksti katalogā, iespējams, nav pareizi." msgid "Updating the catalog failed. Click on 'Details >>' for details." msgstr "" "Kataloga atjaunošana neizdevās. Nospiediet 'Vairāk>>', lai iegūtu papildu " "informāciju." #, c-format msgid "%d issue with the translation found." msgid_plural "%d issues with the translation found." msgstr[0] "" msgstr[1] "" msgstr[2] "" msgid "Validation results" msgstr "" msgid "" "Entries with errors were marked in red in the list. Details of the error " "will be shown when you select such an entry." msgstr "" msgid "The file was saved safely." msgstr "" msgid "" "The file was saved safely and compiled into the MO format, but it will " "probably not work correctly." msgstr "" msgid "" "The file was saved safely, but it cannot be compiled into the MO format and " "used." msgstr "" msgid "" "The file was compiled into the MO format, but it will probably not work " "correctly." msgstr "" msgid "The file cannot be compiled into the MO format and used." msgstr "" msgid "No problems with the translation found." msgstr "" #, c-format msgid "The translation is ready for use, but %d entry is not translated yet." msgid_plural "" "The translation is ready for use, but %d entries are not translated yet." msgstr[0] "" msgstr[1] "" msgstr[2] "" msgid "The translation is ready for use." msgstr "" #, c-format msgid "Poedit automatically fixed invalid content in the file “%s”." msgstr "" msgid "" "The file contained duplicate items, which is not allowed in PO files and " "would prevent the file from being used. Poedit fixed the issue, but you " "should review translations of any items marked as needing work and correct " "them if necessary." msgstr "" msgid "Language of the translation isn’t set." msgstr "" msgid "Set Language" msgstr "" msgid "Set language" msgstr "" #. TRANSLATORS: This is shown underneath "Language of the translation isn't set (or ...is the same as source language)." msgid "" "Suggestions are not available if the translation language is not set " "correctly. Other features, such as plural forms, may be affected as well." msgstr "" msgid "Language of the translation is the same as source language." msgstr "" msgid "Fix Language" msgstr "" msgid "Fix language" msgstr "" msgid "" "This catalog has entries with plural forms, but doesn’t have Plural-Forms " "header configured." msgstr "" msgid "" "Entries in this catalog have different plural forms count from what " "catalog’s Plural-Forms header says" msgstr "" msgid "Required header Plural-Forms is missing." msgstr "" #, c-format msgid "Syntax error in Plural-Forms header (\"%s\")." msgstr "Sintakses kļūda daudzskaitļa formu galvenē (\"%s\")." msgid "Fix the Header" msgstr "" msgid "Fix the header" msgstr "Salabot galveni" #. TRANSLATORS: %s is language name in its basic form (as you #. would see e.g. in a list of supported languages). You may need #. to rephrase it, e.g. to an equivalent of "for language %s". #, c-format msgid "Plural forms expression used by the catalog is unusual for %s." msgstr "" #. TRANSLATORS: A verb, shown as action button with ""Plural forms expression used by the catalog is unusual for %s.")" msgid "Review" msgstr "" #, c-format msgid "Error loading message catalog file “%s”." msgstr "" #, c-format msgid "Translated: %d of %d (%d %%)" msgstr "" #, c-format msgid "Remaining: %d" msgstr "" #, c-format msgid "%d error" msgid_plural "%d errors" msgstr[0] "" msgstr[1] "" msgstr[2] "" #, c-format msgid "%d entry" msgid_plural "%d entries" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgid " (unsaved)" msgstr "" msgid " (modified)" msgstr " (modificēts)" #, c-format msgid "Failed to update translation memory: %s" msgstr "" msgid "Purge deleted translations" msgstr "&Iztīrīt dzēstos tulkojumus" msgid "Do you want to remove all translations that are no longer used?" msgstr "Vai vēlaties izņemt visus tulkojumus, kas vairs netiek izmantoti?" msgid "" "If you continue with purging, all translations marked as deleted will be " "permanently removed. You will have to translate them again if they are added " "back in the future." msgstr "" "Ja jūs turpināsiet ar iztīrīšanu, visi tulkojumi, kas atzīmēti kā dzēsti, " "tiks pilnībā izņemti. Iespējams, ka vēlāk tie jums būs jātulko vēlreiz, ja " "tie vēlāk tiks pievienoti atpakaļ." msgid "Keep" msgstr "Paturēt" msgid "Purge" msgstr "Iztīrīt" msgid "Copy from source text" msgstr "Kopēt no avota teksta" msgid "Copy from Source Text" msgstr "Kopēt no avota teksta" #. TRANSLATORS: This is the key shortcut used in menus on Windows, some languages call them differently #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Ctrl+" msgstr "" msgid "Clear translation" msgstr "Notīrīt tulkojumu" msgid "Clear Translation" msgstr "Notīrīt tulkojumu" msgid "Edit comment" msgstr "Rediģēt komentāru" msgid "Edit Comment" msgstr "" msgid "References:" msgstr "Atsauces:" msgid "&Bookmarks" msgstr "&Grāmatzīmes" #. TRANSLATORS: This is the key shortcut used in menus on Windows, some languages call them differently #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Alt+" msgstr "" #, c-format msgid "Set bookmark %i" msgstr "" #, c-format msgid "Go to bookmark %i" msgstr "" #, c-format msgid "Set Bookmark %i" msgstr "" #, c-format msgid "Go to Bookmark %i" msgstr "" msgid "Hide Sidebar" msgstr "" msgid "Show Sidebar" msgstr "" msgid "Hide Status Bar" msgstr "" msgid "Show Status Bar" msgstr "" msgid "Source text:" msgstr "Avota teksts:" msgid "Singular:" msgstr "Vienskaitlis:" msgid "Plural:" msgstr "Daudzskaitlis:" msgid "Translation:" msgstr "Tulkojums:" msgid "Pre-translated" msgstr "" msgid "Needs Work" msgstr "" #. TRANSLATORS: This indicates that the string's translation isn't final #. and has known problems. For example, it might be machine translated or #. fuzzy matched from an older string. The translation should be short and #. convey this. If it's problematic to translate it, "Needs review" is #. acceptable substitute, but note that the meaning is subtly different: #. "needs review" implies that somebody else should review the string after #. I am done with it (i.e. consider it good), while "needs work" implies I #. need to return to it and finish the translation. msgid "Needs work" msgstr "" msgid "" "POT files are only templates and don’t contain any translations themselves.\n" "To make a translation, create a new PO file based on the template." msgstr "" msgid "Create New Translation" msgstr "Izveidot jaunu tulkojumu" msgid "Create new translation" msgstr "Izveidot jaunu tulkojumu" msgid "Everything" msgstr "" #, c-format msgid "Form %i" msgstr "Forma %i" msgid "Singular" msgstr "" msgid "Zero" msgstr "" msgid "One" msgstr "" msgid "Two" msgstr "" msgid "Plural" msgstr "" msgid "Other" msgstr "" #, c-format msgid "%s Format" msgstr "" #. TRANSLATORS: %s is replaced with language name, e.g. "PHP" or "C", so "PHP Format" etc." #, c-format msgid "%s format" msgstr "" msgid "Source text" msgstr "Avota teksts" #, c-format msgid "Translation — %s" msgstr "" msgid "ID" msgstr "" #, c-format msgid "Source text — %s" msgstr "" msgid "unknown language" msgstr "" #, c-format msgid "Failed command: %s" msgstr "Neizdevās komanda: %s" msgid "Failed to merge gettext catalogs." msgstr "Neizdevās apvienot gettext katalogus." msgid "Source file" msgstr "Avota fails" msgid "Source file occurrence:" msgstr "Avota faila gadījums:" msgid "Open in Editor" msgstr "" msgid "Open in editor" msgstr "" msgid "No references for the selected item." msgstr "" #, c-format msgid "Error opening file %s!" msgstr "Kļūda atverot failu %s!" msgid "Find" msgstr "" msgid "Replace" msgstr "" #. TRANSLATORS: Expander in Find window for additional options (case sensitive etc.) msgid "Options" msgstr "" msgid "Ignore case" msgstr "" msgid "Wrap around" msgstr "" msgid "Whole words only" msgstr "Tikai veselus vārdus" msgid "Find in source texts" msgstr "" msgid "Find in translations" msgstr "" msgid "Find in comments" msgstr "Meklēt komentāros" msgid "Close" msgstr "Aizvērt" msgid "Replace &All" msgstr "" msgid "Replace &all" msgstr "" msgid "&Replace" msgstr "" msgid "< &Previous" msgstr "" msgid "&Next >" msgstr "" msgid "String to find" msgstr "" msgid "Replacement string" msgstr "" #, c-format msgid "Cannot execute program: %s" msgstr "Nevar palaist programmu: %s" msgid "Language Code or Name (e.g. en_GB)" msgstr "" msgid "Translation Language" msgstr "" msgid "Language of the translation:" msgstr "" msgid "Poedit - Catalogs manager" msgstr "Poedit - katalogu pārvaldnieks" msgid "Catalog" msgstr "Katalogs" msgid "Total" msgstr "Kopā" msgid "Untrans" msgstr "Neiztulk" msgid "Errors" msgstr "" msgid "Last modified" msgstr "Pēdējo reizi modificēts" msgid "Select directory" msgstr "Izvēlieties mapi" msgid "Directories:" msgstr "Mapes:" msgid "" msgstr "" msgid "Do you want to delete the project?" msgstr "Vai vēlaties izdzēst projektu?" msgid "Confirmation" msgstr "Apstiprinājums" msgid "" "Do you really want to do mass update of\n" "all catalogs in this project?" msgstr "" "Vai tiešām vēlaties veikt masveida atjaunošanu\n" "visiem katalogiem šajā projektā?" msgid "Information about the translator" msgstr "" msgid "Name:" msgstr "" msgid "Your Name" msgstr "" msgid "Email:" msgstr "" msgid "your_email@example.com" msgstr "" msgid "" "Your name and email address are only used to set the Last-Translator header " "of GNU gettext files." msgstr "" msgid "Editing" msgstr "" msgid "Automatically compile MO file when saving" msgstr "" msgid "Show summary after catalog update" msgstr "Parādīt kopsavilkumu pēc kataloga atjaunošanas" msgid "Check spelling" msgstr "" msgid "Always change focus to text input field" msgstr "Vienmēr fokusēties uz teksta ievades lauku" msgid "" "Never let the list of strings take focus. If enabled, you must use Ctrl-" "arrows for keyboard navigation but you can also type text immediately, " "without having to press Tab to change focus." msgstr "" "Nekad neļaut virkņu sarakstam pārņemt fokusu. Ja aktivizēts, jums jālieto " "Ctrl-bultiņas tastatūras navigācijai, bet jūs varat arī rakstīt tekstu " "nekavējoties, nenospiežot Tab taustiņu, lai mainītu fokusu." msgid "Appearance" msgstr "" msgid "Use custom list font:" msgstr "" msgid "Use custom text fields font:" msgstr "" msgid "Change UI language" msgstr "Mainīt lietojumprogrammas valodu" #. TRANSLATORS: This is a note appended to "Check spelling" when running on older Windows versions msgid "(requires Windows 8 or newer)" msgstr "" msgid "General" msgstr "" msgid "Use translation memory" msgstr "" msgid "Learn From Files…" msgstr "" msgid "Learn from files…" msgstr "" #. TRANSLATORS: This is a button that deletes everything in the translation memory (i.e. clears/resets it). msgid "Reset" msgstr "" #. TRANSLATORS: Followed by "match translations within the file" or "pre-translate from TM" msgid "When updating from sources" msgstr "" #. TRANSLATORS: Preceded by "When updating from sources" msgid "fuzzy match within the file" msgstr "" #. TRANSLATORS: Preceded by "When updating from sources" msgid "pre-translate from TM" msgstr "" msgid "" "Poedit can attempt to fill in new entries from only previous translations in " "the file or from your entire translation memory. Using the TM won’t be very " "effective if it’s near-empty, but it will get better as you add more " "translations to it." msgstr "" msgid "Stored translations:" msgstr "" msgid "Database size on disk:" msgstr "" msgid "Select translation files to import" msgstr "" msgid "Translation Memory" msgstr "Tulkojumu atmiņa" msgid "Importing translations…" msgstr "" msgid "Finalizing…" msgstr "" msgid "Reset translation memory" msgstr "" msgid "Are you sure you want to reset the translation memory?" msgstr "" msgid "" "Resetting the translation memory will irrevocably delete all stored " "translations from it. You can’t undo this operation." msgstr "" msgid "Cancel" msgstr "Atcelt" #. TRANSLATORS: This is abbreviation of "Translation Memory" used in Preferences on macOS. #. Long text looks weird there, too short (like TM) too, but less so. "General" is about ideal #. length there. msgid "TM" msgstr "" msgid "" "Source code extractors are used to find translatable strings in the source " "code files and extract them so that they can be translated." msgstr "" msgid "Custom Extractors:" msgstr "" msgid "Custom extractors:" msgstr "" msgid "Edit…" msgstr "Rediģēt…" msgid "GNU gettext" msgstr "" msgid "" "Supports all programming languages recognized by GNU gettext tools (PHP, C/C+" "+, C#, Perl, Python, Java, JavaScript and others)." msgstr "" msgid "Delete extractor" msgstr "" #, c-format msgid "Are you sure you want to delete the “%s” extractor?" msgstr "" msgid "Extractors" msgstr "" msgid "Accounts" msgstr "" msgid "Automatically check for updates" msgstr "" msgid "Include beta versions" msgstr "" msgid "" "Beta versions contain the latest new features and improvements, but may be a " "bit less stable." msgstr "" msgid "Updates" msgstr "" msgid "" "These settings affect internal formatting of PO files. Adjust them if you " "have specific requirements e.g. because of version control." msgstr "" msgid "Line endings:" msgstr "" msgid "Unix (recommended)" msgstr "Unix (ieteicamais)" msgid "Windows" msgstr "Windows" #. TRANSLATORS: Followed by text control for entering number; wraps text at given width msgid "Wrap at:" msgstr "" msgid "Preserve formatting of existing files" msgstr "" msgid "Advanced" msgstr "" msgid "Pre-translating…" msgstr "" #, c-format msgid "Pre-translated %u string" msgid_plural "Pre-translated %u strings" msgstr[0] "" msgstr[1] "" msgstr[2] "" #. TRANSLATORS: This is a somewhat common term describing the action where #. you apply the translation memory and/or machine translation to all of the #. strings you're translating as the first step, followed by correcting, #. improving etc., i.e. actually translating the strings. This may be tricky #. to express in other languages as simply as in English, but please try to #. keep it similarly concise. Please try to avoid, if possible, describing it #. as "auto-translation" and similar, because such terminology would mislead #. some users into thinking it's all that needs to be done (spoken from #. experience). "Pre-translate" nicely expresses that it's only the step done #. *before* actual translation. msgid "Pre-translate" msgstr "" msgid "Only fill in exact matches" msgstr "" msgid "" "By default, inaccurate results are filled in as well and marked as needing " "work. Check this option to only include accurate matches." msgstr "" msgid "Don’t mark exact matches as needing work" msgstr "" msgid "" "Only enable if you trust the quality of your TM. By default, all matches " "from the TM are marked as needing work and should be reviewed before use." msgstr "" msgid "" "Pre-translation automatically finds exact or fuzzy matches for untranslated " "strings in the translation memory and fills in their translations." msgstr "" #, c-format msgid "%d entry was pre-translated." msgid_plural "%d entries were pre-translated." msgstr[0] "" msgstr[1] "" msgstr[2] "" msgid "" "The translations were marked as needing work, because they may be " "inaccurate. You should review them for correctness." msgstr "" msgid "No entries could be pre-translated." msgstr "" msgid "" "The TM doesn’t contain any strings similar to the content of this file. It " "is only effective for semi-automatic translations after Poedit learns enough " "from files that you translated manually." msgstr "" msgid "" "Drag and Drop Folders Here\n" "\n" "or use the + button" msgstr "" msgid "" "Drag and drop folders here\n" "\n" "or use the + button" msgstr "" msgid "Add Folders…" msgstr "Pievienot mapes…" msgid "Add folders…" msgstr "Pievienot mapes…" msgid "Add Files…" msgstr "Pievienot failus…" msgid "Add files…" msgstr "Pievienot failus…" msgid "Add Wildcard…" msgstr "" msgid "Add wildcard…" msgstr "" msgid "Paths" msgstr "Ceļi" msgid "Excluded paths" msgstr "" msgid "Advanced extraction settings" msgstr "" msgid "Extract notes for translators from:" msgstr "" msgid "Comments prefixed with:" msgstr "" msgid "All comments" msgstr "" msgid "Additional xgettext flags:" msgstr "" msgid "Additional keywords" msgstr "" msgid "Name of the project the translation is for" msgstr "" msgid "Team name and email address or URL" msgstr "" msgid "e.g. nplurals=2; plural=(n > 1);" msgstr "" msgid "UTF-8 (recommended)" msgstr "UTF-8 (ieteicamais)" msgid "Please save the file first. This section cannot be edited until then." msgstr "" msgid "Not all plural forms are translated." msgstr "" msgid "The translation should start as a sentence." msgstr "" msgid "The translation should start with a lowercase character." msgstr "" msgid "The translation doesn’t start with a space." msgstr "" msgid "The translation starts with a space, but the source text doesn’t." msgstr "" msgid "The translation is missing a newline at the end." msgstr "" msgid "The translation ends with a newline, but the source text doesn’t." msgstr "" msgid "The translation is missing a space at the end." msgstr "" msgid "The translation ends with a space, but the source text doesn’t." msgstr "" #, c-format msgid "The translation should end with “%s”." msgstr "" #, c-format msgid "The translation should not end with “%s”." msgstr "" #, c-format msgid "The translation ends with “%s”, but the source text ends with “%s”." msgstr "" msgid "Comment:" msgstr "Komentārs:" msgid "OK" msgstr "Labi" msgid "C&lear" msgstr "" msgid "Clear the comment" msgstr "Notīrīt komentāru" msgid "New" msgstr "Jauns" msgid "Create new translations project" msgstr "Izveidot jaunu tulkošanas projektu" msgid "Edit" msgstr "Rediģēt" msgid "Edit the project" msgstr "Rediģēt projeku" msgid "Delete the project" msgstr "Izdzēst projektu" msgid "Update all" msgstr "Atjaunot visus" msgid "Update all catalogs in the project" msgstr "Atjaunot visus katalogus šajā projektā" msgid "Edit project" msgstr "Rediģēt projektu" msgid "Project name:" msgstr "Projekta nosaukums:" msgid "Browse" msgstr "Pārlūkot" msgid "Add directory to the list" msgstr "Pievienot mapi sarakstam" msgid "&New…" msgstr "&Jauns…" msgid "New from &POT/PO file…" msgstr "Jauns no &POT/PO faila…" msgid "New From &POT/PO File…" msgstr "Jauns no &POT/PO faila…" msgid "&Open…" msgstr "&Atvērt…" msgid "Open Recent" msgstr "" msgid "Open from Crowdin…" msgstr "Atvērt no Crowdin…" msgid "Open From Crowdin…" msgstr "Atvērt no Crowdin…" msgid "&Close" msgstr "Ai&zvērt" msgid "&Save" msgstr "&Saglabāt" msgid "Save &as…" msgstr "Saglabāt &kā…" msgid "Save &As…" msgstr "Saglabāt &kā…" msgid "Compile to MO…" msgstr "" msgid "E&xport as HTML…" msgstr "E&ksportēt kā HTML…" msgid "Check for updates…" msgstr "" msgid "&Preferences…" msgstr "&Iestatījumi…" msgid "Catalogs &manager" msgstr "Katalogu &pārvaldnieks" msgid "Catalogs &Manager" msgstr "Katalogu &pārvaldnieks" msgid "E&xit" msgstr "I&ziet" msgid "Quit" msgstr "Iziet" msgid "Copy from singular" msgstr "" msgid "Copy From Singular" msgstr "" msgid "Translation needs &work" msgstr "" msgid "Translation Needs &Work" msgstr "" msgid "Edit &comment" msgstr "Rediģēt &komentāru" msgid "Edit &Comment" msgstr "Rediģēt &komentāru" msgid "Suggestions" msgstr "" msgid "&Find…" msgstr "&Atrast…" msgid "Replace…" msgstr "Aizstāt…" msgid "Find next" msgstr "" msgid "Find previous" msgstr "" msgid "Find and Replace…" msgstr "Atrast un aizstāt…" msgid "Find Next" msgstr "" msgid "Find Previous" msgstr "" msgid "&Preferences" msgstr "&Iestatījumi" msgid "Display entry &IDs" msgstr "" msgid "Display Entry &IDs" msgstr "" msgid "Sort by &file order" msgstr "Kārtot pēc &faila secības" msgid "Sort by &File Order" msgstr "Kārtot pēc &faila secības" msgid "Sort by &source" msgstr "Kārtot pēc a&vota" msgid "Sort by &Source" msgstr "Kārtot pēc a&vota" msgid "Sort by &translation" msgstr "Kārtot pēc &tulkojuma" msgid "Sort by &Translation" msgstr "Kārtot pēc &tulkojuma" msgid "&Group by context" msgstr "" msgid "&Group By Context" msgstr "" msgid "Entries with errors first" msgstr "" msgid "Entries with Errors First" msgstr "" msgid "&Untranslated entries first" msgstr "Vispirms neizt&ulkotos ierakstus" msgid "&Untranslated Entries First" msgstr "Vispirms neizt&ulkotos ierakstus" msgid "&Show references" msgstr "&Parādīt atsauces" msgid "&Show References" msgstr "&Parādīt atsauces" msgid "Show sidebar" msgstr "" msgid "Show status bar" msgstr "" msgid "C&atalog" msgstr "K&atalogs" msgid "&Update from sources" msgstr "Atja&unot no avota" msgid "&Update from Sources" msgstr "Atja&unot no avota" msgid "Update from &POT file…" msgstr "Atjaunot no &POT faila…" msgid "Update from &POT File…" msgstr "Atjaunot no &POT faila…" msgid "Sync with Crowdin" msgstr "" msgid "Pre-&translate…" msgstr "" msgid "&Purge deleted translations" msgstr "&Iztīrīt dzēstos tulkojumus" msgid "&Purge Deleted Translations" msgstr "Iztīrīt &dzēstos tulkojumus" msgid "&Validate translations" msgstr "" msgid "&Validate Translations" msgstr "" msgid "&Properties…" msgstr "&Rekvizīti…" msgid "&Done and next" msgstr "Pa&beigt un pāriet uz nākamo" msgid "&Done and Next" msgstr "Pa&beigt un pāriet uz nākamo" msgid "&Previous translation" msgstr "" msgid "&Previous Translation" msgstr "" msgid "&Next translation" msgstr "" msgid "&Next Translation" msgstr "" msgid "P&revious unfinished" msgstr "Iep&riekšejais nepabeigtais" msgid "P&revious Unfinished" msgstr "Iep&riekšejais nepabeigtais" msgid "Ne&xt unfinished" msgstr "Nā&kamais nepabeigtais" msgid "Ne&xt Unfinished" msgstr "Nā&kamais nepabeigtais" msgid "Previous plural form" msgstr "Iepriekšējā daudzskaitļa forma" msgid "Previous Plural Form" msgstr "Iepriekšējā daudzskaitļa forma" msgid "Next plural form" msgstr "" msgid "Next Plural Form" msgstr "" msgid "&Online help" msgstr "&Tiešsaistes palīdzība" msgid "&Online Help" msgstr "&Tiešsaistes palīdzība" msgid "&GNU gettext manual" msgstr "" msgid "&GNU gettext Manual" msgstr "" msgid "&About Poedit" msgstr "" msgid "&About" msgstr "P&ar..." msgid "Extractor setup" msgstr "" msgid "List of extensions separated by semicolons (e.g. *.cpp;*.h):" msgstr "Paplašinājumu saraksts, atdalīts ar semikoliem (piem., *.cpp;*.h):" msgid "Invocation:" msgstr "Izsaukšana:" msgid "Command to extract translations:" msgstr "" msgid "" "This is the command used to launch the extractor.\n" "%o expands to the name of output file, %K to list\n" "of keywords, %F to list of input files,\n" "%C to charset flag (see below)." msgstr "" msgid "An item in keywords list:" msgstr "Vienums atslēgvārdu sarakstā:" msgid "" "This will be attached to the command line once\n" "for each keyword. %k expands to the keyword." msgstr "" "Šis vienums tiks pievienots komandrindai, vienreiz katram\n" "atslēgvārdam. %k atbilst atslēgvārdam." msgid "An item in input files list:" msgstr "Vienums ievades failu sarakstā:" #, c-format msgid "" "This will be attached to the command line once\n" "for each input file. %f expands to the filename." msgstr "" "Šis vienums tiks pievienots komandrindai, vienreiz katram\n" "ievades failam. %f atbilst faila nosaukumam." msgid "Source code charset:" msgstr "Pirmkoda simbolkopa:" #, c-format msgid "" "This will be attached to the command line\n" "only if source code charset was given. %c expands to charset value." msgstr "" "Šis vienums tiks pievienots komandrindai tikai tad, ja\n" "būs doda pirmkoda simbolkopa. %c atbilst simbolkopas vērtībai." msgid "Catalog properties" msgstr "Kataloga īpašības" msgid "Project name and version:" msgstr "Projekta nosaukums un versija:" msgid "Language team:" msgstr "" msgid "Plural forms:" msgstr "" msgid "Use default rules for this language" msgstr "" msgid "Use custom expression" msgstr "" msgid "Learn about plural forms" msgstr "" msgid "Charset:" msgstr "Simbolkopa:" msgid "Advanced Extraction Settings…" msgstr "" msgid "Advanced extraction settings…" msgstr "" msgid "Translation Properties" msgstr "" msgid "Translation properties" msgstr "" msgid "Sources Paths" msgstr "" msgid "Sources paths" msgstr "Avotu ceļi" msgid "Extract text from source files in the following directories:" msgstr "Izvilkt tekstu no avotu failiem sekojošajās mapēs:" msgid "Base path:" msgstr "Bāzes ceļš:" msgid "Sources Keywords" msgstr "" msgid "Sources keywords" msgstr "Avotu atslēgvārdi" msgid "" "Use these keywords (function names) to recognize translatable strings\n" "in source files:" msgstr "" "Lietot šos atslēgvārdus (funkciju nosaukumus), lai atpazītu tulkojamās " "virknes\n" "avota failos:" msgid "Also use default keywords for supported languages" msgstr "" msgid "Learn About Gettext Keywords" msgstr "" msgid "Learn about gettext keywords" msgstr "" msgid "Update summary" msgstr "Atjaunot kopsavilkumu" msgid "" "These strings were found in the sources but were not in the catalog.\n" "Poedit will add them to the catalog now." msgstr "" "Šīs virknes tika atrastas avotos, bet nebija katalogā.\n" "Poedit tūlīt pat pievienos tās katalogam." msgid "New strings" msgstr "Jaunas virknes" msgid "" "These strings are no longer in the sources.\n" "Poedit will remove them from the catalog now." msgstr "" "Šīs virknes vair nav avotos.\n" "Poedit tūlīt pat izņems tās no kataloga." msgid "Obsolete strings" msgstr "Novecojušās virknes" msgid "(0 new, 0 obsolete)" msgstr "(0 jaunas, 0 novecojušas)" msgid "Open" msgstr "Atvērt" msgid "Save catalog" msgstr "Saglabāt katalogu" msgid "Validate" msgstr "" msgid "Check for errors in the translation" msgstr "" msgid "Update" msgstr "Atjaunot" msgid "Update catalog - synchronize it with sources" msgstr "Atjaunot katalogu - sinhronizēt to ar avotiem" msgid "Sidebar" msgstr "" msgid "Show or hide the sidebar" msgstr "" #. TRANSLATORS: "Previous" as in used in the past, now replaced with newer. msgid "Previous source text:" msgstr "" msgid "" "The old source text (before it changed during an update) that the now-" "inaccurate translation corresponds to." msgstr "" msgid "Notes for translators:" msgstr "" msgid "Add comment" msgstr "" msgid "Add Comment" msgstr "" msgid "Translation suggestions:" msgstr "" #. TRANSLATORS: This is shown when no translation suggestions can be found in the TM (Windows). msgid "No matches found" msgstr "" #. TRANSLATORS: This is shown when no translation suggestions can be found in the TM (macOS, Linux). msgid "No Matches Found" msgstr "" msgid "This string was found in Poedit’s translation memory." msgstr "" msgid "Cannot create temporary directory." msgstr "Nevar izveidot pagaidu datu mapi." msgid "Welcome to Poedit" msgstr "" #. TRANSLATORS: This is version information in about dialog, "%s" will be #. version number when used #, c-format msgid "Version %s" msgstr "Versija %s" msgid "Edit a Translation" msgstr "" msgid "Edit a translation" msgstr "" msgid "Open an existing PO file and edit the translation." msgstr "" msgid "" "Take an existing PO file or POT template and create a new translation from " "it." msgstr "" msgid "Collaborate on a Translation with Others" msgstr "" msgid "Collaborate on a translation with others" msgstr "" msgid "" "Download a file from Crowdin project, translate and sync your changes back." msgstr "" msgid "What is Crowdin?" msgstr "" msgid "There are no translations. That’s unusual." msgstr "" msgid "" "Translatable entries aren’t added manually in the Gettext system, but are " "automatically extracted\n" "from source code. This way, they stay up to date and accurate.\n" "Translators typically use PO template files (POTs) prepared for them by the " "developer." msgstr "" msgid "(Learn more about GNU gettext)" msgstr "" msgid "The simplest way to fill this catalog is to update it from a POT:" msgstr "" msgid "Update from POT" msgstr "" msgid "Take translatable strings from an existing POT template." msgstr "" msgid "" "You can also extract translatable strings directly from the source code:" msgstr "" msgid "Extract from sources" msgstr "" msgid "Configure source code extraction in Properties." msgstr "" msgid "Sync" msgstr "" msgid "Synchronize the translation with Crowdin" msgstr "" #. TRANSLATORS: This is titlebar of about dialog, "%s" is application name #. ("Poedit" here, but please use "%s") #, c-format msgid "About %s" msgstr "Par %s" #. TRANSLATORS: Title of the preferences window on Windows and Linux. "%s" is replaced with "Poedit" when running. #, c-format msgid "%s Preferences" msgstr "" #. TRANSLATORS: macOS item in app menu msgid "Services" msgstr "" #. TRANSLATORS: macOS item in app menu, %s is replaced with "Poedit" #, c-format msgid "Hide %s" msgstr "" #. TRANSLATORS: macOS item in app menu msgid "Hide Others" msgstr "" #. TRANSLATORS: macOS item in app menu msgid "Show All" msgstr "" #. TRANSLATORS: macOS item in app menu, %s is replaced with "Poedit" #, c-format msgid "Quit %s" msgstr "" #. TRANSLATORS: macOS item in app menu msgid "Preferences…" msgstr "Iestatījumi…" msgid "Preferences..." msgstr "" #. TRANSLATORS: Title of a category in Windows task menu (right-click icon in taskbar) msgid "Recent" msgstr "" #. TRANSLATORS: Title of a category in Windows task menu (right-click icon in taskbar) msgid "Frequent" msgstr "" msgid "&Apply" msgstr "" msgid "Apply" msgstr "" msgid "&Back" msgstr "" msgid "Back" msgstr "" msgid "&Cancel" msgstr "" msgid "&Clear" msgstr "" msgid "Clear" msgstr "" msgid "Copy" msgstr "Kopēt" msgid "Cu&t" msgstr "" msgid "Cut" msgstr "Izgriezt" msgid "&Delete" msgstr "&Dzēst" msgid "&Quit" msgstr "" msgid "File" msgstr "" msgid "Help" msgstr "" msgid "&New" msgstr "" msgid "&No" msgstr "" msgid "No" msgstr "" msgid "&OK" msgstr "" msgid "Open…" msgstr "Atvērt…" msgid "&Open..." msgstr "&Atvērt..." msgid "Open..." msgstr "" msgid "&Paste" msgstr "" msgid "Paste" msgstr "" msgid "Preferences" msgstr "" msgid "&Redo" msgstr "" msgid "Refresh" msgstr "" msgid "&Save as" msgstr "" msgid "Save as" msgstr "" msgid "Select &All" msgstr "" msgid "Select All" msgstr "" msgid "&Undo" msgstr "" msgid "&Yes" msgstr "" msgid "Yes" msgstr "" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Shift+" msgstr "" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Enter" msgstr "" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Up" msgstr "" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Down" msgstr "" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Left" msgstr "" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Right" msgstr "" #. TRANSLATORS: Keyboard shortcut, must correspond to translation of "Ctrl+" msgid "ctrl" msgstr "" #. TRANSLATORS: Keyboard shortcut, must correspond to translation of "Alt+" msgid "alt" msgstr "" #. TRANSLATORS: Keyboard shortcut, must correspond to translation of "Shift+" msgid "shift" msgstr "shift" poedit-2.0.6/locales/cs.mo0000664000372000037200000014277413230132075012323 00000000000000P%1 1 11<11J 2gW2 22 22 222 3333%3+333B3Q3W3]3f3z333333333333 3 44 4)4 04=4M4c4y44444444445 5(5D5Y5n55555555 6 '6:36:n6 666 6 666 6 7 #707?7O7c7~77777 71898'>8f88 8878689)=9g9 l9]w99A9I*:t:{:; ;;";:; U;`;.h;;;;;;;;<*<F<#[<<<<<<<<(<(=7= R=s=|== ==/= = >>#>9>L>b>2>>>>> ?)???????@@@ 2@?@R@Ee@"@?@ AA*.A YAfAyAK~A"A5A#B)BHAH HHI 'IHI PI ]IiI"nI;I(IIJ&J 5J ?JMJjJ ~JJJJJ JJK:K PK<^K.KKKKLL*%LPLVLgL xL LLJMNMgM MMMMM#MM'M$N7DN$|N%NNNNNNOOOO O2O P#P9PNP]PlPtP|PPPPPPPPQQQnQERZR>aR RRRR@RS-ThwKQB Z7dVlY`yڱYT%HԲ?G]*!г#(*.&Y,Cs6eJdLQַi(QM2i;nz;~5 < ITqɽ )վ#۾  $1)P>zؿ (4S[g&$+C+ow 1>QZu(' Q:g? 2r"+': &El'#D}],6 9BW6tC3H>C'# )h?*Kq#-0^aG2zFYblx&2LADZ.EwPi=Ab[kv @4uh~ uL@|pnf.nTN? QI2:qOKcajd F!p ]U>T+rXi=J%Vxz51^s4 NH/F"8/XJ`om #UwQk :Gs$ 8jL!~I1,(<D-9B>|;$H(E?g<y!dYgIo \ <eN+rM5&cM5 :"K-A+EmZ7C"603B $%RfRVeyOG*S@ M,4}_{O%W91J)S[`' 7)v &;*{(l_.03=\7P8/t';P (modified) (unsaved)%d entry%d entries%d entry was pre-translated.%d entries were pre-translated.%d error%d errors%d issue with the translation found.%d issues with the translation found.%i line of file “%s” was not loaded correctly.%i lines of file “%s” were not loaded correctly.%s Format%s Preferences%s format&About&About Poedit&Apply&Back&Bookmarks&Cancel&Clear&Close&Copy&Delete&Done and Next&Done and next&Edit&File&Find…&GNU gettext Manual&GNU gettext manual&Go&Group By Context&Group by context&Help&New&New…&Next >&Next Translation&Next translation&No&OK&Online Help&Online help&Open...&Open…&Paste&Preferences&Preferences…&Previous Translation&Previous translation&Properties…&Purge Deleted Translations&Purge deleted translations&Quit&Redo&Replace&Save&Save as&Show References&Show references&Undo&Untranslated Entries First&Untranslated entries first&Update from Sources&Update from sources&Validate Translations&Validate translations&View&Yes(0 new, 0 obsolete)(Learn more about GNU gettext)(New: %i, obsolete: %i)(Use default language)(requires Windows 8 or newer)< &PreviousDrag and Drop Folders Here or use the + buttonDrag and drop folders here or use the + buttonAbout %sAccountsAdd CommentAdd Files…Add Folders…Add Wildcard…Add commentAdd directory to the listAdd files…Add folders…Add wildcard…Additional keywordsAdditional xgettext flags:AdvancedAdvanced Extraction Settings…Advanced extraction settingsAdvanced extraction settings…All Translation FilesAll commentsAlso use default keywords for supported languagesAlt+Always change focus to text input fieldAn item in input files list:An item in keywords list:AppearanceApplyAre you sure you want to delete the “%s” extractor?Are you sure you want to reset the translation memory?Automatically check for updatesAutomatically compile MO file when savingBackBase path:Beta versions contain the latest new features and improvements, but may be a bit less stable.Bring All to FrontBroken catalog file: plural form msgstr used without msgid_pluralBroken catalog file: singular form msgstr used together with msgid_pluralBrowseBy default, inaccurate results are filled in as well and marked as needing work. Check this option to only include accurate matches.C&atalogC&learCancelCannot create temporary directory.Cannot execute program: %sCapitalizeCatalogCatalog modified. Do you want to save changes?Catalog propertiesCatalogs &ManagerCatalogs &managerCatalogs ManagerChange UI languageCharset:Check Document NowCheck Grammar With SpellingCheck Spelling While TypingCheck for Updates…Check for errors in the translationCheck for updates…Check spellingClearClear TranslationClear the commentClear translationCloseCollaborate on a Translation with OthersCollaborate on a translation with othersCollecting source files…Command to extract translations:Comment:Comments prefixed with:Compile to MO…Compile to…Compiled Translation FilesConfigure source code extraction in Properties.ConfirmationCopyCopy From SingularCopy from Source TextCopy from singularCopy from source textCorrect Spelling AutomaticallyCouldn’t load file %s, it is probably corrupted.Couldn’t save file %s.Create New TranslationCreate new translationCreate new translations projectCrowdin errorCrowdin is an online localization management platform and collaborative translation tool. Poedit can seamlessly sync PO files managed at Crowdin.Ctrl+Cu&tCustom Extractors:Custom extractors:CutDatabase size on disk:DeleteDelete extractorDelete the projectDirectories:Display Entry &IDsDisplay entry &IDsDo you really want to do mass update of all catalogs in this project?Do you want to delete the project?Do you want to remove all translations that are no longer used?Don’t SaveDon’t Show AgainDon’t mark exact matches as needing workDon’t saveDon’t show againDownDownload a file from Crowdin project, translate and sync your changes back.Downloading latest translations…Downloading translations is disabled in this project.E&xitE&xport as HTML…EditEdit &CommentEdit &commentEdit CommentEdit a TranslationEdit a translationEdit commentEdit projectEdit the projectEditingEdit…Email:EnterEnter Full ScreenEntries in the catalog are probably incorrect.Entries in this catalog have different plural forms count from what catalog’s Plural-Forms header saysEntries with Errors FirstEntries with errors firstEntries with errors were marked in red in the list. Details of the error will be shown when you select such an entry.Error loading message catalog file “%s”.Error opening fileError opening file %s!Error saving catalogErrorsEverythingExcluded pathsExport as…Extract from sourcesExtract notes for translators from:Extract text from source files in the following directories:Extracting translatable strings…Extractor setupExtractorsFailed command: %sFailed to communicate with Poedit process.Failed to load extracted catalog.Failed to merge gettext catalogs.Failed to update translation memory: %sFileFile “%s” doesn’t exist.File “%s” is not a message catalog.File “%s” is read-only and cannot be saved. Please save it under different name.File:Finalizing…FindFind NextFind PreviousFind and Replace…Find in commentsFind in source textsFind in translationsFind nextFind previousFix LanguageFix languageFix the HeaderFix the headerForm %iFrequentGNU gettextGeneralGo to Bookmark %iGo to bookmark %iHTML FilesHelpHide %sHide OthersHide SidebarHide Status BarHide this notification messageIDIf you continue with purging, all translations marked as deleted will be permanently removed. You will have to translate them again if they are added back in the future.Ignore caseImporting translations…Include beta versionsInformation about the translatorInstallInvalid fileInvocation:KeepLanguage Code or Name (e.g. en_GB)Language of the translation is the same as source language.Language of the translation isn’t set.Language of the translation:Language selectionLanguage team:Language:Last modifiedLearn About Gettext KeywordsLearn From Files…Learn MoreLearn More About CrowdinLearn about gettext keywordsLearn about plural formsLearn from files…Learn moreLearn more about CrowdinLeftLine %d of file “%s” is corrupted (not valid %s data).Line endings:List of extensions separated by semicolons (e.g. *.cpp;*.h):MO files can’t be directly edited in Poedit.Make Lower CaseMake Upper CaseMalformed header: “%s”Merging differences…MinimizeName of the project the translation is forName:Ne&xt UnfinishedNe&xt unfinishedNeeds WorkNeeds workNever let the list of strings take focus. If enabled, you must use Ctrl-arrows for keyboard navigation but you can also type text immediately, without having to press Tab to change focus.NewNew From &POT/PO File…New from &POT/PO file…New stringsNext Plural FormNext plural formNoNo Matches FoundNo entries could be pre-translated.No matches foundNo problems with the translation found.No references for the selected item.No translation projects listed in your Crowdin account.Not all plural forms are translated.Not authorized, please sign in again.Notes for translators:OKObsolete stringsOneOnly enable if you trust the quality of your TM. By default, all matches from the TM are marked as needing work and should be reviewed before use.Only fill in exact matchesOpenOpen Crowdin translationOpen From Crowdin…Open RecentOpen an existing PO file and edit the translation.Open catalogOpen catalog templateOpen from Crowdin…Open in EditorOpen in editorOpen...Open…OptionsOtherP&revious UnfinishedP&revious unfinishedPO TranslationPO Translation FilesPOT Translation TemplatesPOT files are only templates and don’t contain any translations themselves. To make a translation, create a new PO file based on the template.PastePaste and Match StylePathsPlease open and edit the corresponding PO file instead. When you save it, the MO file will be updated as well.Please save the file first. This section cannot be edited until then.PluralPlural forms expression used by the catalog is unusual for %s.Plural forms:Plural:PoeditPoedit - Catalogs managerPoedit automatically fixed invalid content in the file “%s”.Poedit can attempt to fill in new entries from only previous translations in the file or from your entire translation memory. Using the TM won’t be very effective if it’s near-empty, but it will get better as you add more translations to it.Poedit is an easy to use translations editor.Pre-&translate…Pre-translatePre-translatedPre-translated %u stringPre-translated %u stringsPre-translating…Pre-translation automatically finds exact or fuzzy matches for untranslated strings in the translation memory and fills in their translations.PreferencesPreferences...Preferences…Preserve formatting of existing filesPrevious Plural FormPrevious plural formPrevious source text:Project name and version:Project name:Project:PurgePurge deleted translationsQuitQuit %sRecentRedoReferences:RefreshRemaining: %dReplaceReplace &AllReplace &allReplacement stringReplace…Required header Plural-Forms is missing.ResetReset translation memoryResetting the translation memory will irrevocably delete all stored translations from it. You can’t undo this operation.ReviewRightSaveSave &As…Save &as…Save asSave as…Save catalogSave changesSelect &AllSelect AllSelect directorySelect translation files to importSelect your preferred languageServicesSet Bookmark %iSet LanguageSet bookmark %iSet languageShift+Show AllShow SidebarShow Spelling and GrammarShow Status BarShow SubstitutionsShow or hide the sidebarShow sidebarShow status barShow summary after catalog updateSidebarSign InSign OutSign inSign in to CrowdinSign outSigned in as:SingularSingular:Smart Copy/PasteSmart DashesSmart LinksSmart QuotesSort by &File OrderSort by &SourceSort by &TranslationSort by &file orderSort by &sourceSort by &translationSource code charset:Source code extractors are used to find translatable strings in the source code files and extract them so that they can be translated.Source code not available.Source fileSource file occurrence:Source textSource text — %sSource text:Sources KeywordsSources PathsSources keywordsSources pathsSpeechSpellchecking is disabled, because the dictionary for %s isn’t installed.Spelling and GrammarStart SpeakingStop SpeakingStored translations:String to findSubstitutionsSuggestionsSuggestions are not available if the translation language is not set correctly. Other features, such as plural forms, may be affected as well.Supports all programming languages recognized by GNU gettext tools (PHP, C/C++, C#, Perl, Python, Java, JavaScript and others).SyncSync with CrowdinSynchronize the translation with CrowdinSyncingSyncing errorSyncing with %s failed.Syncing with %s…Syncing with Crowdin failed.Syntax error in Plural-Forms header ("%s").TMTake an existing PO file or POT template and create a new translation from it.Take translatable strings from an existing POT template.Team name and email address or URLText ReplacementThe TM doesn’t contain any strings similar to the content of this file. It is only effective for semi-automatic translations after Poedit learns enough from files that you translated manually.The catalog couldn’t be saved in “%s” charset as specified in catalog settings. It was saved in UTF-8 instead and the setting was modified accordingly.The file cannot be compiled into the MO format and used.The file cannot be opened.The file contained duplicate items, which is not allowed in PO files and would prevent the file from being used. Poedit fixed the issue, but you should review translations of any items marked as needing work and correct them if necessary.The file may be either corrupted or in a format not recognized by Poedit.The file was compiled into the MO format, but it will probably not work correctly.The file was saved safely and compiled into the MO format, but it will probably not work correctly.The file was saved safely, but it cannot be compiled into the MO format and used.The file was saved safely.The old source text (before it changed during an update) that the now-inaccurate translation corresponds to.The simplest way to fill this catalog is to update it from a POT:The translation doesn’t start with a space.The translation ends with a newline, but the source text doesn’t.The translation ends with a space, but the source text doesn’t.The translation ends with “%s”, but the source text ends with “%s”.The translation is missing a newline at the end.The translation is missing a space at the end.The translation is ready for use, but %d entry is not translated yet.The translation is ready for use, but %d entries are not translated yet.The translation is ready for use.The translation should end with “%s”.The translation should not end with “%s”.The translation should start as a sentence.The translation should start with a lowercase character.The translation starts with a space, but the source text doesn’t.The translations were marked as needing work, because they may be inaccurate. You should review them for correctness.There are no translations. That’s unusual.There was a problem formatting the file nicely (but it was saved all right).There were errors when loading the catalog. Some data may be missing or corrupted as the result.These settings affect internal formatting of PO files. Adjust them if you have specific requirements e.g. because of version control.These strings are no longer in the sources. Poedit will remove them from the catalog now.These strings were found in the sources but were not in the catalog. Poedit will add them to the catalog now.This catalog has entries with plural forms, but doesn’t have Plural-Forms header configured.This file can only be edited in Crowdin’s web interface.This is the command used to launch the extractor. %o expands to the name of output file, %K to list of keywords, %F to list of input files, %C to charset flag (see below).This project has no files that can be translated in Poedit.This string was found in Poedit’s translation memory.This will be attached to the command line only if source code charset was given. %c expands to charset value.This will be attached to the command line once for each input file. %f expands to the filename.This will be attached to the command line once for each keyword. %k expands to the keyword.TotalTransformationsTranslatable entries aren’t added manually in the Gettext system, but are automatically extracted from source code. This way, they stay up to date and accurate. Translators typically use PO template files (POTs) prepared for them by the developer.Translated: %d of %d (%d %%)Translation LanguageTranslation MemoryTranslation Needs &WorkTranslation PropertiesTranslation needs &workTranslation propertiesTranslation suggestions:Translation — %sTranslation:Translations couldn’t be updated from the source code, because no code was found in the location specified in the catalog’s Properties.TwoUTF-8 (recommended)UndoUnhandled exception occurred: %sUnix (recommended)UntransUpUpdateUpdate allUpdate all catalogs in the projectUpdate catalog - synchronize it with sourcesUpdate from &POT File…Update from &POT file…Update from POTUpdate summaryUpdatesUpdating catalogUpdating failedUpdating the catalog failed. Click on 'Details >>' for details.Updating user information…Uploading translations…Use custom expressionUse custom list font:Use custom text fields font:Use default rules for this languageUse these keywords (function names) to recognize translatable strings in source files:Use translation memoryValidateValidation resultsVersion %sWaiting for authentication…Welcome to PoeditWhat is Crowdin?When updating from sourcesWhole words onlyWindowWindowsWrap aroundWrap at:YesYou can also extract translatable strings directly from the source code:You can’t drop more than one file on Poedit window.You must restart Poedit for this change to take effect.Your NameYour changes will be lost if you don’t save them.Your name and email address are only used to set the Last-Translator header of GNU gettext files.ZeroZoomaltctrldon’t delete temporary files (for debugging)e.g. nplurals=2; plural=(n > 1);fuzzy match within the filego to item at given line numberhandle a poedit:// URIpre-translate from TMshiftunknown languageyour_email@example.com“%s” is not a valid POT file.Project-Id-Version: poedit Report-Msgid-Bugs-To: help@poedit.net POT-Creation-Date: 2017-12-05 15:52+0100 PO-Revision-Date: 2017-12-05 09:48-0500 Last-Translator: vslavik Language-Team: Czech Language: cs_CZ MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2; X-Generator: crowdin.com X-Crowdin-Project: poedit X-Crowdin-Language: cs X-Crowdin-File: /locales/poedit.pot (změněno) (neuloženo)%d položka%d položky%d položekByla před-přeložena %d položka.Byly před-přeloženy %d položky.Bylo před-přeloženo %d položek.%d chyba%d chyby%d chybNalezen %d problém s překladem.Nalezeny %d problémy s překladem.Nalezeno %d problémů s překladem.%i řádek souboru „%s“ nebyl načten správně.%i řádky souboru „%s“ nebyly načteny správně.%i řádků souboru „%s“ nebylo načteno správně.%s formátNastavení %su%s formát&O aplikaci&O aplikaci Poedit&Použít&Zpět&Záložky&Storno&Vymazat&Zavřít&Kopírovat&Smazat&Hotovo a další&Hotovo a dalšíÚpra&vy&Soubor&Najít…Dokumentace GNU gettextDokumentace GNU gettextPře&jítS&eskupit podle kontextuS&eskupit podle kontextu&Nápověda&Nový&Nový…&Další >&Další překlad&Další překladN&e&OK&Nápověda online&Nápověda online&Otevřít...&Otevřít…&VložitNasta&veníNasta&vení…&Předchozí překlad&Předchozí překlad&Vlastnosti…&Smazat staré překlady&Smazat staré překlady&KonecP&rovést znovuNah&radit&UložitUložit &jako&Zobrazit odkazy&Zobrazit odkazy&Zpět&Nepřeložené položky jako první&Nepřeložené položky jako první&Aktualizovat ze zdrojového kódu&Aktualizovat ze zdrojového kódu&Zkontrolovat překlad&Zkontrolovat překlad&Zobrazení&Ano(0 nových, 0 odstraněných)(další informace o GNU gettext)(Nové: %i, zastaralé: %i)(výchozí jazyk)(vyžaduje Windows 8 nebo novější)< &PředchozíSem přetáhněte adresáře nebo použijte tlačítko +Sem přetáhněte adresáře nebo použijte tlačítko +O aplikaci %sÚčtyPřidat komentářPřidat soubory…Přidat adresáře…Přidat zástupný řetězec…Přidat komentářPřidat adresář do seznamuPřidat soubory…Přidat adresáře…Přidat zástupný řetězec…Další klíčová slovaDalší parametry pro xgettext:PokročiléPokročilá nastavení extrakce…Pokročilá nastavení extrakcePokročilá nastavení extrakce…Všechny překladové souboryVšechny komentářePoužít také výchozí klíčová slova pro podporované jazykyAlt+Vždy zaměřovat vstupní pole pro překladPoložka seznamu vstupních souborů:Položka seznamu klíčových slov:VzhledPoužítOpravdu chcete „%s“ extraktor smazat?Opravdu chcete překladovou paměť vymazat?Automaticky kontrolovat dostupnost aktualizacíPři uložení automaticky zkompilovat MO souborZpětZákladní cesta:Beta verze obsahují nejnovější funkce a vylepšení, ale mohou mít problémy se spolehlivostí.Přenést vše do popředíŠpatný katalog: verze msgstr pro plurál použita bez msgid_pluralŠpatný katalog: verze msgstr pro singulár použita spolu s msgid_pluralProcházetVe výchozím nastavení jsou doplněny i nepřesné výsledky, které jsou označeny jako vyžadující pozornost. Zaškrtněte tuto volbu, pokud chcete zahrnout pouze přesné shody.&Katalog&SmazatStornoNelze vytvořit adresář na dočasné soubory.Není možné spustit program: %sPrvní písmena velkáKatalogKatalog byl změněn. Chcete změny uložit?Vlastnosti kataloguSprávce &katalogůSprávce &katalogůSprávce katalogůZměnit jazykZnaková sada:Zkontrolovat dokumentKontrolovat i gramatikuKontrolovat pravopis během psaníVyhledat aktualizace…Zkontrolovat, zda překlad neobsahuje chybyVyhledat aktualizace…Kontrolovat pravopisVymazatSmazat překladOdstranit komentářSmazat překladZavřítSpolupracovat na překladu s ostatnímiSpolupracovat na překladu s ostatnímiProbíhá shromažďování zdrojových souborů…Příkaz pro extrakci překladů:Komentář:Komentáře začínající řetězcem:Zkompilovat do MO…Zkompilovat do…Zkompilované překladové souboryParametry pro extrakci ze zdrojového kódu nastavte ve Vlastnostech katalogu.PotvrzeníKopírovatZkopírovat ze singuláruZkopírovat ze zdrojového textuZkopírovat ze singuláruZkopírovat ze zdrojového textuAutomaticky opravovat pravopisSoubor %s nelze načíst, pravděpodobně je poškozený.Soubor %s nelze uložit.Vytvořit nový překladVytvořit nový překladVytvořit nový překladový projektCrowdin chybaCrowdin je online platforma pro správu lokalizací a nástroj pro spolupráci na překladu. Poedit umožňuje jednoduchou synchronizaci PO souborů spravovaných prostřednictvím Crowdin.Ctrl+Vyjmou&tUživatelské extraktory:Uživatelské extraktory:VyjmoutVelikost databáze:SmazatSmazat extraktorSmazat projektAdresáře:Zobrazit &ID položekZobrazit &ID položekOpravdu chcete provést hromadnou aktualizaci všech katalogů ve vybraném projektu?Opravdu chcete vybraný projekt smazat?Chcete odstranit všechny již nepoužívané překlady?NeukládatPříště nezobrazovatPřesné shody neoznačovat jako vyžadující pozornostNeukládatPříště nezobrazovatDolůStáhne soubor z Crowdin projektu a po jeho překladu synchronizuje provedené změny zpět.Stahování nejnovějších překladů…Stahování překladů je pro tento projekt zakázáno.&KonecE&xportovat jako HTML…UpravitUpravit &komentářUpravit &komentářUpravit komentářUpravit překladUpravit překladUpravit komentářUpravit projektUpravit projektEditaceUpravit…E-mail:EnterZobrazit na celou obrazovkuPoložky katalogu jsou pravděpodobně chybné.U položek katalogu je použit jiný počet forem plurálu, než jaký je nastaven v hlavičce Plural-FormsPoložky s chybami jako prvníPoložky s chybami jako prvníPoložky obsahující chyby byly v seznamu zvýrazněny červenou barvou. Podrobnosti o chybě se zobrazí po vybrání chybné položky.Při načítání katalogu „%s“ došlo k chybě.Při otevírání souboru došlo k chyběPři otevírání souboru %s došlo k chybě!Při ukládání katalogu došlo k chyběChybyVšeIgnorovat cestyExportovat jako…Extrahovat ze zdrojových souborůExtrahovat poznámky pro překladatele z:Extrahovat text ze zdrojových souborů v těchto adresářích:Probíhá extrakce přeložitelných řetězců…Nastavení extraktoruExtraktoryPříkaz selhal: %sNelze komunikovat s procesem Poeditu.Při načítání extrahovaného katalogu došlo k chybě.Při slučování gettext katalogů došlo k chybě.Aktualizace překladové paměti se nezdařila: %sSouborSoubor „%s“ neexistuje.Soubor „%s“ není překladový katalog.Soubor „%s“ je jen pro čtení a není možné jej přepsat. Uložte katalog pod jiným názvem.Soubor:Dokončování…NajítNajít dalšíNajít předchozíNajít a nahradit…Hledat v komentáříchHledat ve zdrojových textechHledat v překladechNajít dalšíNajít předchozíOpravit jazykOpravit jazykOpravit hlavičkuOpravit hlavičkuForma %iČastéGNU gettextObecnéPřejít na záložku %iPřejít na záložku %iSoubory HTMLNápovědaSkrýt %sSkrýt ostatníSkrýt postranní panelSkrýt stavový řádekSchovat toto oznámeníIDPokud budete pokračovat, všechny překlady označené jako smazané budou natrvalo odstraněny. Pokud budou příslušné řetězce později přidány zpět, tak je budete muset znovu přeložit.Ignorovat velikost písmenProbíhá import překladů…Upozorňovat na beta verzeInformace o překladateliNainstalovatNeplatný souborSpuštění:PonechatKód, nebo název jazyku (např. cs_CZ)Jazyk překladu je shodný s jazykem zdroje.Jazyk překladu není nastaven.Jazyk překladu:Výběr jazykaPřekladatelský tým:Jazyk:Poslední změnaPodrobnosti o klíčových slovech gettextNačíst ze souborů…Další informaceDalší informace o CrowdinPodrobnosti o klíčových slovech gettextPodrobnosti o formách pluráluNačíst ze souborů…Další informaceDalší informace o CrowdinDolevaŘádek %d souboru „%s“ je poškozený (neplatná data v %s).Konce řádků:Seznam přípon oddělených středníky (např. *.cpp;*.h):Poedit nepodporuje přímou úpravu MO souborů.Všechna písmena maláVšechna písmena velkáPoškozená hlavička: „%s“Slučování rozdílů…MinimalizovatNázev projektu, pro který je překlad určenJméno:Další &nedokončenáDalší &nedokončenáVyžaduje pozornostVyžaduje úpravuNikdy nezaměří seznam s řetězci. Pokud je tato volba aktivní, je k pohybu v seznamu řetězců pomocí klávesnice nutné použít Ctrl+šipky. Na druhou stranu ale umožňuje rovnou začít psát text, bez nutnosti mačkat Tab.NovýNový z &POT/PO souboru…Nový z &POT/PO souboru…Nové řetězceDalší forma pluráluDalší forma pluráluNeNenalezena žádná shodaNebyly před-přeloženy žádné položky.Nenalezena žádná shodaV překladu nebyly nalezeny žádné problémy.Žádné výskyty vybrané položky.Ve vašem Crowdin účtu nemáte nastaveny žádné překladové projekty.Nejsou přeloženy všechny formy plurálu.Nedostatečná oprávnění, zkuste se znovu přihlásit.Poznámky pro překladatele:OKOdstraněné řetězceJedenPovolte pouze pokud důvěřujete kvalitě použité překladové paměti. Ve výchozím nastavení jsou všechny překlady doplněné z překladové paměti označeny jako vyžadující pozornost a měly by být před použitím zkontrolovány.Doplnit pouze při přesné shoděOtevřítOtevřít Crowdin překladOtevřít z Crowdin…Otevřít poslední položkuOtevře existující PO katalog a umožní jeho úpravu.Otevřít katalogOtevřít šablonu kataloguOtevřít z Crowdin…Otevřít v editoruOtevřít v editoruOtevřít...Otevřít…MožnostiOstatníPředchozí ne&dokončenáPředchozí ne&dokončenáPřeklady POSoubory překladů POŠablony překladů POTSoubory POT jsou jen šablony a samy o sobě neobsahují žádné překlady. Pro vytvoření překladu vytvořte na základě šablony nový PO soubor.VložitVložit a přizpůsobit stylCestyMísto toho otevřete a upravte odpovídající soubor PO. Poté co ho uložíte, bude automaticky aktualizován i soubor MO.Nejdříve soubor uložte, jinak nebude možné tuto sekci editovat.PlurálVýraz pro formy plurálu používá pro jazyk %s nezvyklý formát.Formy plurálu:Plurál:PoeditPoedit - správce katalogůPoedit automaticky opravil chybný obsah souboru „%s“.Poedit se může pokusit předvyplnit nové položky s pomocí předchozích překladů v souboru, nebo s pomocí celé vaší překladové paměti. Použití překladové paměti nebude ze začátku příliš efektivní, ale jak jí postupně naplníte překlady, bude se její efektivita zlepšovat.Poedit je jednoduchý editor překladů.Před-přeloži&t…Před-přeložitPřed-přeloženoPřed-přeložen %u řetězecPřed-přeloženy %u řetězcePřed-přeloženo %u řetězcůProbíhá předběžný překlad…Před-překlad automaticky vyhledá přesné a přibližné shody pro nepřeložené řetězce v překladové paměti a vyplní jejich překlady.PředvolbyPředvolby...Nasta&vení…Zachovat stávající formátování souboruPředchozí forma pluráluPředchozí forma pluráluPůvodní zdrojový text:Název a verze projektu:Název projektu:Projekt:Smazat&Smazat staré překladyUkončitUkončit %sPosledníZnovuOdkazy:AktualizovatZbývá: %dNahraditN&ahradit všeN&ahradit všeNahradit zaNa&hradit…V hlavičce chybí povinná položka Plural-Forms.VymazatVymazat překladovou paměťVymazáním překladové paměti nenávratně smažete všechny v ní uložené překlady. Po provedení této akce už neexistuje žádná možnost obnovy.ZkontrolovatDopravaUložitUložit j&ako…Uložit j&ako…Uložit jakoUložit jako…Uložit katalogUložit změnyVybr&at všeVybrat všeVyberte adresářVyberte překladové soubory, které chcete importovatVyberte preferovaný jazykSlužbyNastavit záložku %iNastavit jazykNastavit záložku %iNastavit jazykShift+Zobrazit všeZobrazit postranní panelZobrazit pravopis a gramatikuZobrazit stavový řádekZobrazit náhradyZobrazit nebo skrýt postranní panelZobrazit postranní panelZobrazit stavový řádekPo aktualizaci katalogu zobrazit přehled změnPostranní panelPřihlásit seOdhlásit sePřihlásit sePřihlásit se do CrowdinOdhlásit sePřihlášen jako:SingulárSingulár:Chytré kopírování/vkládáníChytré pomlčkyChytré odkazyChytré uvozovkySeřadit podle pořadí v &souboruSeřadit podle &zdrojového textuSeřadit podle &překladuSeřadit podle pořadí v &souboruSeřadit podle &zdrojového textuSeřadit podle &překladuZnaková sada zdrojáků:Extraktory zdrojového kódu slouží k vyhledání přeložitelných řetězců v souborech zdrojového kódu a jejich extrakci pro účely překladu.Zdrojový kód není k dispozici.Zdrojový souborVýskyt ve zdrojovém kódu:Zdrojový textZdrojový text — %sZdrojový text:Klíčová slovaProhledávané cestyKlíčová slovaProhledávané cestyPředčítáníKontrola pravopisu je zakázána, protože slovník pro jazyk %s není nainstalován.Pravopis a gramatikaSpustit předčítáníUkončit předčítáníUložené překlady:Hledaný řetězecNáhradyNávrhyPokud není správně nastaven jazyk překladu, nejsou k dispozici návrhy. Ovlivněny mohou být i další funkce, jako například formy plurálu.Podporuje všechny jazyky podporované nástroji GNU gettext (PHP, C/C++, C#, Perl, Python, Java, JavaScript a další).SynchronizovatSynchronizovat s CrowdinSynchronizovat překlad s CrowdinProbíhá synchronizaceChyba synchronizaceSynchronizace s %s se nezdařila.Probíhá synchronizace s %s…Synchronizace s Crowdin se nezdařila.Syntaktická chyba v hlavičce Plural-Forms („%s“).TMPoužije existující soubor PO nebo POT jako šablonu pro vytvoření nového překladu.Načte přeložitelné řetězce z existující POT šablony.Název týmu a e-mailová adresa nebo URLNáhrady textuPřekladová paměť neobsahuje žádné texty podobné obsahu tohoto souboru. Poloautomaticky je schopna efektivně překládat teprve poté, co se Poedit naučí dostatek dat z ručně přeložených souborů.Katalog nemohl být uložen ve znakové sadě „%s“ zadané ve vlastnostech katalogu. Místo toho byl uložen v UTF-8 a nastavení bylo příslušně změněno.Soubor se nepodařilo zkompilovat do formátu MO a není tak možné ho použít.Soubor nelze otevřít.Soubor obsahoval duplicitní položky, což není v PO souborech povoleno a zabránilo by to jejich použití. Poedit tento problém opravil, ale měli byste zkontrolovat všechny překlady označené jako vyžadující pozornost a v případě potřeby je opravit.Soubor je poškozen, nebo používá neznámý formát.Soubor byl zkompilován do formátu MO, ale pravděpodobně nebude pracovat správně.Soubor byl úspěšně uložen a zkompilován do formátu MO, ale pravděpodobně nebude fungovat správně.Soubor byl úspěšně uložen, ale nepůjde jej zkompilovat do formátu MO a používat.Soubor byl úspěšně uložen.Původní zdrojový text (než byl při aktualizaci změněn), kterému odpovídá použitý a nyní nepřesný překlad.Nejjednodušším způsobem naplnění tohoto katalogu je jeho aktualizace z POT souboru:Na začátku překladu chybí mezera.Na konci překladu je odřádkování, které není ve zdrojovém textu.Na konci překladu je mezera, která není ve zdrojovém textu.Překlad je ukončen „%s“, ale zdrojový text je ukončen „%s“.Na konci překladu chybí odřádkování.Na konci překladu chybí mezera.Překlad je připraven k použití, ale %d položka ještě není přeložená.Překlad je připraven k použití, ale %d položky ještě nejsou přeloženy.Překlad je připraven k použití, ale %d položek ještě není přeloženo.Překlad je připraven k použití.Překlad by měl být ukončen „%s“.Překlad by neměl být ukončen „%s“.Překlad by měl začínat jako věta.Překlad by měl začínat malým písmenem.Na začátku překladu je mezera, která není ve zdrojovém textu.Překlady byly označeny jako vyžadující pozornost, protože mohou být nepřesné. Měli byste je zkontrolovat.V souboru nejsou žádné překlady. To je neobvyklé.Při formátování souboru došlo k chybě (ale byl úspěšně uložen).Při načítání katalogu došlo k chybě. Některé překlady mohou chybět nebo být poškozené.Tato nastavení ovlivňují formátování PO souborů. Upravte je pokud máte specifické požadavky například kvůli správě verzí.Tyto řetězce již nejsou ve zdrojácích. Poedit je nyní z katalogu odstraní.Tyto řetězce se vyskytují ve zdrojácích, ale nejsou v katalogu. Poedit je nyní do katalogu přidá.V katalogu jsou položky s plurály, ale není nastavená hlavička Plural-Forms.Tento soubor lze upravit pouze prostřednictvím webového rozhraní Crowdin.Tento příkaz bude použit ke spuštění extraktoru. %o bude nahrazeno názvem výstupního souboru, %K seznamem klíčových slov, %F seznamem vstupních souborů a %C parametrem znakové sady (viz níže).Projekt neobsahuje žádné soubory, které by bylo možné přeložit prostřednictvím programu Poedit.Tento řetězec byl nalezen v překladové paměti Poeditu.Tento parametr bude do příkazové řádky vložen jen pokud byla zadána znaková sada zdrojových souborů. %c bude nahrazeno znakovou sadou.Tento parametr bude do příkazové řádky vložen jednou pro každý vstupní soubor. %f bude nahrazeno názvem souboru.Tento parametr bude do příkazové řádky vložen jednou pro každé klíčové slovo. %k bude nahrazeno klíčovým slovem.CelkemTransformacePři použití systému gettext nejsou položky překladu přidávány ručně, ale jsou automaticky extrahovány ze zdrojového kódu. Tak zůstávají aktuální a přesné. Překladatelé většinou používají PO šablony (soubory POT) připravené vývojáři.Přeloženo: %d z %d (%d %%)Jazyk překladuPřekladová paměť&Překlad vyžaduje pozornostVlastnosti překladu&Překlad vyžaduje pozornostVlastnosti překladuNávrhy překladu:Překlad — %sPřeklad:Aktualizace překladu ze zdrojového kódu se nezdařila, protože v umístěních uvedených ve vlastnostech katalogu nebyl nalezen žádný kód.DvaUTF-8 (doporučeno)ZpětDošlo k neošetřené výjimce: %sUnix (doporučeno)NepřeložNahoruAktualizovatAktualizovat všechny katalogyAktualizovat všechny katalogy v projektuAktualizovat katalog - synchronizovat jej se zdrojovými kódyAktualizovat z &POT souboru…Aktualizovat z &POT souboru…Aktualizovat z POT souboruVýsledek aktualizaceAktualizaceProbíhá aktualizace kataloguAktualizace selhalaAktualizace katalogu selhala. Podrobnosti zobrazíte kliknutím na tlačítko 'Detaily >>'.Aktualizace informací o uživateli…Odesílání překladů…Použít vlastní výrazPoužít vlastní písmo pro seznam:Použít vlastní písmo pro textová pole:Použít výchozí pravidla pro tento jazykUvedená klíčová slova (názvy funkcí) se použijí k rozeznání přeložitelných řetězců ve zdrojovém kódu:Použít překladovou paměťZkontrolovatVýsledky kontrolyVerze %sČekání na ověření…Vítá vás PoeditCo je Crowdin?Při aktualizaci ze zdrojových souborůJen celá slovaOknoWindowsPo dosažení konce hledat od začátkuZalomit po:AnoPřeložitelné řetězce můžete také extrahovat přímo ze zdrojového kódu:Na okno Poeditu nelze přetáhnou více než jeden soubor.Tato změna se projeví až po opětovném spuštění Poeditu.Vaše jménoPokud je neuložíte, přijdete o všechny změny.Vaše jméno a e-mail budou použity pouze k nastavení položky Last-Translator v hlavičce souborů GNU gettext.NulaPřepnout velikostaltctrlnemazat dočasné soubory (kvůli ladění)například nplurals=2; plural=(n > 1);před-přeložit s pomocí podobných překladů v souborupřejít na položku na daném řádkuzpracovat poedit:// URIpřed-přeložit z překladové pamětishiftneznámý jazykvas_email@example.comPOT soubor „%s“ je poškozený.poedit-2.0.6/locales/oc.po0000664000372000037200000014515613230131554012320 00000000000000msgid "" msgstr "" "Project-Id-Version: poedit\n" "Report-Msgid-Bugs-To: help@poedit.net\n" "POT-Creation-Date: 2017-12-05 15:52+0100\n" "PO-Revision-Date: 2017-07-27 03:14-0400\n" "Last-Translator: vslavik \n" "Language-Team: Occitan\n" "Language: oc_FR\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" "X-Generator: crowdin.com\n" "X-Crowdin-Project: poedit\n" "X-Crowdin-Language: oc\n" "X-Crowdin-File: /locales/poedit.pot\n" msgid "Hide this notification message" msgstr "Amagar aqueste messatge de notificacion" msgid "Don’t Show Again" msgstr "Afichar pas mai" msgid "Don’t show again" msgstr "Afichar pas mai" #, c-format msgid "(New: %i, obsolete: %i)" msgstr "(Novèla : %i, obsolèta : %i)" msgid "Updating catalog" msgstr "Mesa a jorn del catalòg" msgid "Collecting source files…" msgstr "" msgid "Extracting translatable strings…" msgstr "" msgid "Failed to load extracted catalog." msgstr "Fracàs de cargament del catalòg extrait." msgid "Merging differences…" msgstr "Integracion dels cambiaments..." #, c-format msgid "“%s” is not a valid POT file." msgstr "« %s » es pas un fichièr POT valid." #, c-format msgid "%i line of file “%s” was not loaded correctly." msgid_plural "%i lines of file “%s” were not loaded correctly." msgstr[0] "%i linha del fichièr « %s » es pas estada cargada corrèctament." msgstr[1] "%i linhas del fichièr « %s » son pas estadas cargadas corrèctament." #, c-format msgid "Line %d of file “%s” is corrupted (not valid %s data)." msgstr "La linha %d del fichièr '%s' es corrompuda (donadas %s invalidas)." #, c-format msgid "Malformed header: “%s”" msgstr "Entèsta mal formada : « %s »" msgid "" "Broken catalog file: singular form msgstr used together with msgid_plural" msgstr "" "Catalòg corromput : forma singulara msgstr utilizada conjuntament amb " "msgid_plural" msgid "Broken catalog file: plural form msgstr used without msgid_plural" msgstr "Catalòg corromput : forma plurala msgstr utilizada sens msgid_plural" msgid "" "There were errors when loading the catalog. Some data may be missing or " "corrupted as the result." msgstr "" "I a agut d'errors al moment del cargament del catalòg. Es possible que de " "donadas sián mancantas o corrompudas." #, c-format msgid "Couldn’t load file %s, it is probably corrupted." msgstr "Fracàs del cargament del fichièr %s : es probablament corromput." #, c-format msgid "" "File “%s” is read-only and cannot be saved.\n" "Please save it under different name." msgstr "" #, c-format msgid "Couldn’t save file %s." msgstr "Impossible d'enregistrar lo fichièr %s." msgid "" "There was a problem formatting the file nicely (but it was saved all right)." msgstr "" "I a agut un problèma al moment del formatatge del fichièr (mas es estat " "enregistrat corrèctament)." #, c-format msgid "" "The catalog couldn’t be saved in “%s” charset as specified in catalog " "settings.\n" "\n" "It was saved in UTF-8 instead and the setting was modified accordingly." msgstr "" msgid "Error saving catalog" msgstr "Error d'enregistrament del catalòg" msgid "PO Translation Files" msgstr "Fichièrs de traduccion PO" msgid "POT Translation Templates" msgstr "Modèls de traduccion POT" msgid "All Translation Files" msgstr "Totes los fichièrs de traduccion" msgid "(Use default language)" msgstr "(Utilizar la lenga per defaut)" msgid "Select your preferred language" msgstr "Seleccionatz vòstra lenga de preferéncia" msgid "Language selection" msgstr "Seleccion de lenga" msgid "You must restart Poedit for this change to take effect." msgstr "Vos cal reaviar Poedit per qu'aqueste cambiament prenga efièit." msgid "Syncing" msgstr "" #. TRANSLATORS: %s is a cloud destination, e.g. "Crowdin" or ftp.wordpress.com etc. #, c-format msgid "Syncing with %s…" msgstr "" #. TRANSLATORS: %s is a cloud destination, e.g. "Crowdin" or ftp.wordpress.com etc. #, c-format msgid "Syncing with %s failed." msgstr "" msgid "Syncing error" msgstr "" msgid "Downloading translations is disabled in this project." msgstr "" "Lo telecargament de las traduccions es desactivat dins aqueste projècte." msgid "Not authorized, please sign in again." msgstr "Pas autorizat, connectatz-vos tornamai." msgid "" "Crowdin is an online localization management platform and collaborative " "translation tool. Poedit can seamlessly sync PO files managed at Crowdin." msgstr "" "Crowdin es una plataforma de gestion de localizacion en linha e una aisina " "de traduccion collaborativa. Poedit pòt sincronizar perfièitament los " "fichièrs PO amb Crowdin." msgid "Sign In" msgstr "S'identificar" msgid "Sign in" msgstr "S'identificar" msgid "Sign Out" msgstr "Se desconnectar" msgid "Sign out" msgstr "Se desconnectar" msgid "Waiting for authentication…" msgstr "En espèra d'autentificacion..." msgid "Updating user information…" msgstr "Mesa a jorn de las informacions de l'utilizaire..." msgid "Signed in as:" msgstr "Connectat en tant que :" msgid "Learn More About Crowdin" msgstr "Ne saber Mai sus Crowdin" msgid "Learn more about Crowdin" msgstr "Ne saber mai sus Crowdin" msgid "Sign in to Crowdin" msgstr "Connectatz-vos sus Crowdin" msgid "Open Crowdin translation" msgstr "Dobrir la traduccion Crowdin" msgid "Project:" msgstr "Projècte :" msgid "Language:" msgstr "Lenga :" msgid "File:" msgstr "Fichièr :" msgid "No translation projects listed in your Crowdin account." msgstr "Cap de projècte de traduccion pas listat dins vòstre compte Crowdin." msgid "This project has no files that can be translated in Poedit." msgstr "" "Aqueste projècte a pas cap de fichièr que pòsca èsser traduit amb Poedit." msgid "This file can only be edited in Crowdin’s web interface." msgstr "" "Aqueste fichièr pòt pas èsser modificat qu'a partir de l'interfàcia web de " "Crowdin." msgid "Downloading latest translations…" msgstr "Telecargament de las darrièras traduccions..." msgid "Syncing with Crowdin failed." msgstr "La sincronizacion amb Crowdin a fracassat." msgid "Crowdin error" msgstr "Error Crowdin" msgid "Uploading translations…" msgstr "Telecargament de las traduccions..." msgid "&Copy" msgstr "&Copiar" msgid "Learn more" msgstr "Ne saber mai" msgid "Learn More" msgstr "Ne saber mai" msgid "&Help" msgstr "&Ajuda" msgid "MO files can’t be directly edited in Poedit." msgstr "Los fichièrs MO pòdon pas èsser modificats dirèctament dins Poedit." msgid "Error opening file" msgstr "Error a la dobertura del fichièr" msgid "" "Please open and edit the corresponding PO file instead. When you save it, " "the MO file will be updated as well." msgstr "" "Dobrissètz e editar lo fichièr PO correspondent. Quand l'enregistraretz, lo " "fichièr MO serà mes a jorn tanben." msgid "don’t delete temporary files (for debugging)" msgstr "suprimir pas los fichièrs temporaris (per fins de desbugar)" msgid "handle a poedit:// URI" msgstr "gerís una URI de poedit://" msgid "go to item at given line number" msgstr "" msgid "Failed to communicate with Poedit process." msgstr "Impossible de comunicar amb los processus de Poedit." #, c-format msgid "Unhandled exception occurred: %s" msgstr "Una excepcion pas gerida s'es produita : %s" msgid "Open catalog" msgstr "Dobrir un catalòg" #, c-format msgid "File “%s” doesn’t exist." msgstr "" msgid "Poedit is an easy to use translations editor." msgstr "Poedit es un logicial de traduccion de bon utilizar." msgid "Catalogs Manager" msgstr "Gestionari de catalògs" msgid "Check for Updates…" msgstr "Recèrca de las mesas a jorn..." msgid "&Edit" msgstr "&Modificar" msgid "Undo" msgstr "Anullar" msgid "Redo" msgstr "Refar" msgid "Paste and Match Style" msgstr "Pegar en conservant la mesa en forma" msgid "Delete" msgstr "Suprimir" msgid "Spelling and Grammar" msgstr "Ortografia e Gramatica" msgid "Show Spelling and Grammar" msgstr "Afichar l'ortografia e la gramatica" msgid "Check Document Now" msgstr "Verificar lo document ara" msgid "Check Spelling While Typing" msgstr "Verificar l'ortografia al moment de la picada" msgid "Check Grammar With Spelling" msgstr "Verificar la gramatica amb l’ortografia" msgid "Correct Spelling Automatically" msgstr "Corregir l’ortografia automaticament" msgid "Substitutions" msgstr "Substitucions" msgid "Show Substitutions" msgstr "Afichar las substitucions" msgid "Smart Copy/Paste" msgstr "Copiar/pegar intelligent" msgid "Smart Quotes" msgstr "Verguetas intelligentas" msgid "Smart Dashes" msgstr "Jonhents intelligents" msgid "Smart Links" msgstr "Ligams intelligents" msgid "Text Replacement" msgstr "Tèxte de remplaçament" msgid "Transformations" msgstr "Transformacions" msgid "Make Upper Case" msgstr "Metre en majusculas" msgid "Make Lower Case" msgstr "Metre en minusculas" msgid "Capitalize" msgstr "Metre en majuscula" msgid "Speech" msgstr "Dictar" msgid "Start Speaking" msgstr "Començar de parlar" msgid "Stop Speaking" msgstr "Començar de parlar" msgid "&View" msgstr "&Afichatge" msgid "Enter Full Screen" msgstr "Passar en mòde ecran complet" msgid "Window" msgstr "Fenèstra" msgid "Minimize" msgstr "Reduire" msgid "Zoom" msgstr "Agrandir" msgid "Bring All to Front" msgstr "Tot passar al primièr plan" #. TRANSLATORS:File kind displayed in Finder/Explorer msgid "PO Translation" msgstr "Traduccion PO" msgid "The file cannot be opened." msgstr "Lo fichièr pòt pas èsser dobèrt." msgid "Invalid file" msgstr "Fichièr invalid" msgid "" "The file may be either corrupted or in a format not recognized by Poedit." msgstr "" "Benlèu que lo fichièr es corromput o dins un format pas reconegut per Poedit." msgid "You can’t drop more than one file on Poedit window." msgstr "" "Es impossible de depausar mai d'un fichièr a l'encòp dins la fenèstra de " "Poedit." #, c-format msgid "File “%s” is not a message catalog." msgstr "Lo fichièr « %s » es pas un catalòg de messatges." msgid "Poedit" msgstr "Poedit" msgid "&File" msgstr "&Fichièr" msgid "&Go" msgstr "A&viar" #. TRANSLATORS: %s is language name in its basic form (as you #. would see e.g. in a list of supported languages). You may need #. to rephrase it, e.g. to an equivalent of "for language %s". #, c-format msgid "" "Spellchecking is disabled, because the dictionary for %s isn’t installed." msgstr "" "La verificacion ortografica es desactivada, perque lo diccionari pel %s es " "pas installat." msgid "Install" msgstr "Installar" msgid "Catalog modified. Do you want to save changes?" msgstr "Lo catalòg es estat modificat. Volètz enregistrar las modificacions ?" msgid "Save changes" msgstr "Enregistrar las modificacions" msgid "Your changes will be lost if you don’t save them." msgstr "Vòstras modificacions seràn perdudas se las enregistratz pas." msgid "Save" msgstr "Enregistrar" msgid "Don’t save" msgstr "Enregistrar pas" msgid "Don’t Save" msgstr "Enregistrar pas" msgid "Save as…" msgstr "Enregistrar jos..." msgid "Compile to…" msgstr "Compilacion..." msgid "Compiled Translation Files" msgstr "Fichièrs de traduccion compilats" msgid "Export as…" msgstr "Exportar..." msgid "HTML Files" msgstr "Fichièrs HTML" msgid "Open catalog template" msgstr "Dobrir un modèl de catalòg" msgid "Source code not available." msgstr "Còdi font indisponible." msgid "Updating failed" msgstr "Fracàs de la mesa a jorn" msgid "" "Translations couldn’t be updated from the source code, because no code was " "found in the location specified in the catalog’s Properties." msgstr "" "Las traduccions an pas pogut èsser mesas a jorn a partir del còdi font, " "perque cap de còdi es pas estat trobat a l'emplaçament precisat dins las " "proprietats del catalòg." msgid "Entries in the catalog are probably incorrect." msgstr "Certanas entradas del catalòg son probablament incorrèctas." msgid "Updating the catalog failed. Click on 'Details >>' for details." msgstr "" "La mesa a jorn del catalòg a fracassat. Clicatz sus « Detalhs >> » per ne " "saber mai." #, c-format msgid "%d issue with the translation found." msgid_plural "%d issues with the translation found." msgstr[0] "%d problèma dins la traduccion." msgstr[1] "%d problèmas dins la traduccion." msgid "Validation results" msgstr "Resultats de la validacion" msgid "" "Entries with errors were marked in red in the list. Details of the error " "will be shown when you select such an entry." msgstr "" "Las entradas amb d'errors son estadas marcadas en roge dins la lista. Los " "detalhs de l'error s'aficharàn quand seleccionaretz aqueste tipe d'entrada." msgid "The file was saved safely." msgstr "Lo fichièr es estat enregistrat en tota seguretat." msgid "" "The file was saved safely and compiled into the MO format, but it will " "probably not work correctly." msgstr "" "Lo fichièr es estat enregistrat en tota seguretat e compilat al format MO, " "mas foncionarà probablament pas corrèctament." msgid "" "The file was saved safely, but it cannot be compiled into the MO format and " "used." msgstr "" "Lo fichièr es estat enregistrat en tota seguretat, mas pòt pas èsser " "compilat al format MO ni èsser utilizat." msgid "" "The file was compiled into the MO format, but it will probably not work " "correctly." msgstr "" "Lo fichièr es estat compilat al format MO, mas foncionarà probablament pas " "corrèctament." msgid "The file cannot be compiled into the MO format and used." msgstr "Lo fichièr pòt pas èsser compilat al format MO e èsser utilizat." msgid "No problems with the translation found." msgstr "Cap de problèma pas trobat dins la traduccion." #, c-format msgid "The translation is ready for use, but %d entry is not translated yet." msgid_plural "" "The translation is ready for use, but %d entries are not translated yet." msgstr[0] "" "La traduccion es prèsta a èsser utilizada, mas %d entrada es pas encara " "traduita." msgstr[1] "" "La traduccion es prèsta a èsser utilizada, mas %d entrada es pas encara " "traduita." msgid "The translation is ready for use." msgstr "La traduccion es prèsta a èsser utilizada." #, c-format msgid "Poedit automatically fixed invalid content in the file “%s”." msgstr "" "Poedit a corregit automaticament lo contengut invalid del fichièr \"%s\"." msgid "" "The file contained duplicate items, which is not allowed in PO files and " "would prevent the file from being used. Poedit fixed the issue, but you " "should review translations of any items marked as needing work and correct " "them if necessary." msgstr "" "Lo fichièr conteniá d'elements en doble, aquò es pas permés dins los " "fichièrs PO e empachariá son utilizacion. Poedit a reglat aqueste problèma, " "mas vos caldriá repassar las traduccions de totes los elements marcats coma " "aproximatius e las corregir se necessari." msgid "Language of the translation isn’t set." msgstr "La lenga de traduccion es pas definida." msgid "Set Language" msgstr "Definir la lenga" msgid "Set language" msgstr "Definir la lenga" #. TRANSLATORS: This is shown underneath "Language of the translation isn't set (or ...is the same as source language)." msgid "" "Suggestions are not available if the translation language is not set " "correctly. Other features, such as plural forms, may be affected as well." msgstr "" "Las suggestions son pas disponiblas se la lenga de traduccion es pas " "definida. Las autras foncionalitats, coma los plurals, pòdon èsser afectadas " "tanben." msgid "Language of the translation is the same as source language." msgstr "La lenga de traduccion es identica a la lenga font." msgid "Fix Language" msgstr "Corregir la lenga" msgid "Fix language" msgstr "Corregir la lenga" msgid "" "This catalog has entries with plural forms, but doesn’t have Plural-Forms " "header configured." msgstr "" "Aqueste catalòg a d'entradas al plural, mas l'entèsta Plural es pas " "configurada." msgid "" "Entries in this catalog have different plural forms count from what " "catalog’s Plural-Forms header says" msgstr "" "Las entradas dins aqueste catalòg an un nombre de formas pluralas diferent " "de lo qu'es indicat dins l'entèsta Plural" msgid "Required header Plural-Forms is missing." msgstr "L'entèsta Plural requesida es absenta." #, c-format msgid "Syntax error in Plural-Forms header (\"%s\")." msgstr "Error de sintaxi dins l'entèsta Plural (\"%s\")." msgid "Fix the Header" msgstr "Corregir l'entèsta" msgid "Fix the header" msgstr "Corregir l'entèsta" #. TRANSLATORS: %s is language name in its basic form (as you #. would see e.g. in a list of supported languages). You may need #. to rephrase it, e.g. to an equivalent of "for language %s". #, c-format msgid "Plural forms expression used by the catalog is unusual for %s." msgstr "Las formas pluralas utilizadas pel catalòg son inabitualas per %s." #. TRANSLATORS: A verb, shown as action button with ""Plural forms expression used by the catalog is unusual for %s.")" msgid "Review" msgstr "Repassar" #, c-format msgid "Error loading message catalog file “%s”." msgstr "Error al cargament del fichièr catalòg « %s »." #, c-format msgid "Translated: %d of %d (%d %%)" msgstr "Traduit : %d de %d (%d %%)" #, c-format msgid "Remaining: %d" msgstr "Que demòra : %d" #, c-format msgid "%d error" msgid_plural "%d errors" msgstr[0] "%d error" msgstr[1] "%d errors" #, c-format msgid "%d entry" msgid_plural "%d entries" msgstr[0] "%d entrada" msgstr[1] "%d entradas" msgid " (unsaved)" msgstr " (pas salvat)" msgid " (modified)" msgstr " (modificat)" #, c-format msgid "Failed to update translation memory: %s" msgstr "Fracàs de la mesa a jorn de la memòria de traduccion : %s" msgid "Purge deleted translations" msgstr "Escafar las traduccions suprimidas" msgid "Do you want to remove all translations that are no longer used?" msgstr "Volètz suprimir totas las traduccions que son pas mai utilizadas ?" msgid "" "If you continue with purging, all translations marked as deleted will be " "permanently removed. You will have to translate them again if they are added " "back in the future." msgstr "" "En contunhant lo netejatge, totas las traduccions marcadas coma suprimidas " "seràn escafadas definitivament. Caldrà recomençar la traduccion se son " "apondudas tornamai." msgid "Keep" msgstr "Conservar" msgid "Purge" msgstr "Escafar" msgid "Copy from source text" msgstr "Copiar dempuèi lo tèxte font" msgid "Copy from Source Text" msgstr "Copiar dempuèi lo tèxte font" #. TRANSLATORS: This is the key shortcut used in menus on Windows, some languages call them differently #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Ctrl+" msgstr "Ctrl+" msgid "Clear translation" msgstr "Escafar la traduccion" msgid "Clear Translation" msgstr "Escafar la traduccion" msgid "Edit comment" msgstr "Modificar lo comentari" msgid "Edit Comment" msgstr "Modificar lo comentari" msgid "References:" msgstr "Referéncias :" msgid "&Bookmarks" msgstr "&Marcapaginas" #. TRANSLATORS: This is the key shortcut used in menus on Windows, some languages call them differently #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Alt+" msgstr "Alt+" #, c-format msgid "Set bookmark %i" msgstr "Definir lo marcapagina %i" #, c-format msgid "Go to bookmark %i" msgstr "Anar al marcapagina %i" #, c-format msgid "Set Bookmark %i" msgstr "Definir lo marcapagina %i" #, c-format msgid "Go to Bookmark %i" msgstr "Anar al marcapagina %i" msgid "Hide Sidebar" msgstr "Amagar lo panèl lateral" msgid "Show Sidebar" msgstr "Afichar lo panèl lateral" msgid "Hide Status Bar" msgstr "Amagar la barra d'estat" msgid "Show Status Bar" msgstr "Afichar la barra d'estat" msgid "Source text:" msgstr "Tèxte font :" msgid "Singular:" msgstr "Singular :" msgid "Plural:" msgstr "Plural :" msgid "Translation:" msgstr "Traduccion :" msgid "Pre-translated" msgstr "Pretraduit" msgid "Needs Work" msgstr "Trabalh necessari" #. TRANSLATORS: This indicates that the string's translation isn't final #. and has known problems. For example, it might be machine translated or #. fuzzy matched from an older string. The translation should be short and #. convey this. If it's problematic to translate it, "Needs review" is #. acceptable substitute, but note that the meaning is subtly different: #. "needs review" implies that somebody else should review the string after #. I am done with it (i.e. consider it good), while "needs work" implies I #. need to return to it and finish the translation. msgid "Needs work" msgstr "De repassar" msgid "" "POT files are only templates and don’t contain any translations themselves.\n" "To make a translation, create a new PO file based on the template." msgstr "" "Los fichièrs POT son pas que de modèls e contenon pas de traduccions. \n" "Per far una traduccion, creatz un novèl fichièr PO a partir del modèl." msgid "Create New Translation" msgstr "Crear una Novèla Traduccion" msgid "Create new translation" msgstr "Crear una novèla traduccion" msgid "Everything" msgstr "Tot" #, c-format msgid "Form %i" msgstr "Forma %i" msgid "Singular" msgstr "Singular" msgid "Zero" msgstr "Zèro" msgid "One" msgstr "Un" msgid "Two" msgstr "Dos" msgid "Plural" msgstr "Plural" msgid "Other" msgstr "Autre" #, c-format msgid "%s Format" msgstr "Format %s" #. TRANSLATORS: %s is replaced with language name, e.g. "PHP" or "C", so "PHP Format" etc." #, c-format msgid "%s format" msgstr "format %s" msgid "Source text" msgstr "Tèxte font" #, c-format msgid "Translation — %s" msgstr "Traduccion — %s" msgid "ID" msgstr "ID" #, c-format msgid "Source text — %s" msgstr "Tèxte font — %s" msgid "unknown language" msgstr "lenga desconeguda" #, c-format msgid "Failed command: %s" msgstr "La comanda a fracassat : %s" msgid "Failed to merge gettext catalogs." msgstr "Fracàs de la fusion dels catalògs gettext." msgid "Source file" msgstr "Fichièr font" msgid "Source file occurrence:" msgstr "Preséncia del fichièr font :" msgid "Open in Editor" msgstr "Dobrir dins l’Editor" msgid "Open in editor" msgstr "Dobrir dins l’Editor" msgid "No references for the selected item." msgstr "Pas cap de referéncia per l'element seleccionat." #, c-format msgid "Error opening file %s!" msgstr "Error a la dobertura del fichièr %s !" msgid "Find" msgstr "Trobar" msgid "Replace" msgstr "Remplaçar" #. TRANSLATORS: Expander in Find window for additional options (case sensitive etc.) msgid "Options" msgstr "Opcions" msgid "Ignore case" msgstr "Ignorar la cassa" msgid "Wrap around" msgstr "Boclar" msgid "Whole words only" msgstr "Mots entièrs unicament" msgid "Find in source texts" msgstr "Trobar dins los tèxtes fonts" msgid "Find in translations" msgstr "Trobar dins las traduccions" msgid "Find in comments" msgstr "Trobar dins los comentaris" msgid "Close" msgstr "Tampar" msgid "Replace &All" msgstr "Remplaçar &tot" msgid "Replace &all" msgstr "Remplaçar &tot" msgid "&Replace" msgstr "&Remplaçar" msgid "< &Previous" msgstr "< &Precedenta" msgid "&Next >" msgstr "&Seguenta >" msgid "String to find" msgstr "Cadena de recercar" msgid "Replacement string" msgstr "Cadena de remplaçament" #, c-format msgid "Cannot execute program: %s" msgstr "Impossible d'executar lo programa : %s" msgid "Language Code or Name (e.g. en_GB)" msgstr "Còdi o nom de la lenga (ex. oc_FR)" msgid "Translation Language" msgstr "Lenga de traduccion" msgid "Language of the translation:" msgstr "Lenga de la traduccion :" msgid "Poedit - Catalogs manager" msgstr "Poedit - Gestionari dels catalògs" msgid "Catalog" msgstr "Catalòg" msgid "Total" msgstr "Total" msgid "Untrans" msgstr "Pas traduit" msgid "Errors" msgstr "" msgid "Last modified" msgstr "Darrièr cambiament" msgid "Select directory" msgstr "Causir un repertòri" msgid "Directories:" msgstr "Repertòris :" msgid "" msgstr "" msgid "Do you want to delete the project?" msgstr "Volètz escafar aqueste projècte ?" msgid "Confirmation" msgstr "Confirmacion" msgid "" "Do you really want to do mass update of\n" "all catalogs in this project?" msgstr "" "Sètz segur que volètz far una mesa a jorn\n" "de totes los catalògs d'aqueste projècte ?" msgid "Information about the translator" msgstr "Informacions sul traductor" msgid "Name:" msgstr "Nom :" msgid "Your Name" msgstr "Vòstre nom" msgid "Email:" msgstr "Email :" msgid "your_email@example.com" msgstr "vostre.e-maill@exemple.com" msgid "" "Your name and email address are only used to set the Last-Translator header " "of GNU gettext files." msgstr "" "Vòstre nom e vòstra adreça e-mail son utilizats unicament per definir " "l'entèsta Last-Translator dels fichièrs de GNU gettext." msgid "Editing" msgstr "Cambiaments" msgid "Automatically compile MO file when saving" msgstr "Compilar automaticament lo fichier MO al moment de l'enregistrament" msgid "Show summary after catalog update" msgstr "Afichar lo resumit aprèp la mesa a jorn del catalòg" msgid "Check spelling" msgstr "Verificar l’ortografia" msgid "Always change focus to text input field" msgstr "Activar totjorn la zòna de picada del tèxte" msgid "" "Never let the list of strings take focus. If enabled, you must use Ctrl-" "arrows for keyboard navigation but you can also type text immediately, " "without having to press Tab to change focus." msgstr "" "Daissar pas jamai la man a la lista de las cadenas. Quand es activada, cal " "utilizar las tòcas Ctrl + Naut/Bas de navigacion, mas podètz tanben picar lo " "tèxte dirèctament sens que vos calga utilizar la tòca de tabulacion per " "activar la zòna de traduccion." msgid "Appearance" msgstr "Aparéncia" msgid "Use custom list font:" msgstr "Utilizar una poliça personalizada :" msgid "Use custom text fields font:" msgstr "Utilizar una poliça personalizada pels camps de tèxte :" msgid "Change UI language" msgstr "Cambiar la lenga de l'interfàcia" #. TRANSLATORS: This is a note appended to "Check spelling" when running on older Windows versions msgid "(requires Windows 8 or newer)" msgstr "(necessita Windows 8 o mai recent)" msgid "General" msgstr "General" msgid "Use translation memory" msgstr "Utilizar la memòria de traduccion" msgid "Learn From Files…" msgstr "Apréner a partir dels fichièrs..." msgid "Learn from files…" msgstr "Apréner a partir dels fichièrs..." #. TRANSLATORS: This is a button that deletes everything in the translation memory (i.e. clears/resets it). msgid "Reset" msgstr "Reïnicializar" #. TRANSLATORS: Followed by "match translations within the file" or "pre-translate from TM" msgid "When updating from sources" msgstr "Al moment de l’actualizacion dempuèi las fonts" #. TRANSLATORS: Preceded by "When updating from sources" msgid "fuzzy match within the file" msgstr "emplenatge aprox. amb lo fichièr" #. TRANSLATORS: Preceded by "When updating from sources" msgid "pre-translate from TM" msgstr "pretraduire amb la MT" msgid "" "Poedit can attempt to fill in new entries from only previous translations in " "the file or from your entire translation memory. Using the TM won’t be very " "effective if it’s near-empty, but it will get better as you add more " "translations to it." msgstr "" msgid "Stored translations:" msgstr "Traduccions emmagazinadas :" msgid "Database size on disk:" msgstr "Talha de la basa de donadas sul disc :" msgid "Select translation files to import" msgstr "Seleccionar los fichièrs de traduccion d'importar" msgid "Translation Memory" msgstr "Memòria de traduccion" msgid "Importing translations…" msgstr "Importacion de las traduccions…" msgid "Finalizing…" msgstr "Finalizacion..." msgid "Reset translation memory" msgstr "Reïnicializar la memòria de traduccion" msgid "Are you sure you want to reset the translation memory?" msgstr "Sètz segur que volètz reïnicializar la memòria de traduccion ?" msgid "" "Resetting the translation memory will irrevocably delete all stored " "translations from it. You can’t undo this operation." msgstr "" "La reïnicializacion de la memòria de traduccion suprimirà definitivament " "totas las traductions que i son emmagazinadas. Aquesta operacion es " "irreversibla." msgid "Cancel" msgstr "Anullar" #. TRANSLATORS: This is abbreviation of "Translation Memory" used in Preferences on macOS. #. Long text looks weird there, too short (like TM) too, but less so. "General" is about ideal #. length there. msgid "TM" msgstr "MT" msgid "" "Source code extractors are used to find translatable strings in the source " "code files and extract them so that they can be translated." msgstr "" "Los extractors de còdi font son utilizats per recercar e extraire las " "cadenas tradusiblas dels fichièrs del còdi font per fin de las traduire." msgid "Custom Extractors:" msgstr "" msgid "Custom extractors:" msgstr "" msgid "Edit…" msgstr "" msgid "GNU gettext" msgstr "" msgid "" "Supports all programming languages recognized by GNU gettext tools (PHP, C/C+" "+, C#, Perl, Python, Java, JavaScript and others)." msgstr "" msgid "Delete extractor" msgstr "Suprimir l'extractor" #, c-format msgid "Are you sure you want to delete the “%s” extractor?" msgstr "Sètz segur que volètz suprimir l'extractor «%s » ?" msgid "Extractors" msgstr "Extractors" msgid "Accounts" msgstr "Comptes" msgid "Automatically check for updates" msgstr "Recercar automaticament las mesas a jorn" msgid "Include beta versions" msgstr "Inclure las versions bèta" msgid "" "Beta versions contain the latest new features and improvements, but may be a " "bit less stable." msgstr "" "Las versions bèta contenon las darrièras novetats e melhoraments, mas pòdon " "èsser un pauc mens establas." msgid "Updates" msgstr "Mesas a jorn" msgid "" "These settings affect internal formatting of PO files. Adjust them if you " "have specific requirements e.g. because of version control." msgstr "" "Aqueles paramètres modifican la mesa en forma intèrna dels fichièrs PO. " "Ajustatz-las se avètz d'exigéncias especificas, per exemple en rason del " "contraròtle de version." msgid "Line endings:" msgstr "Fins de linha :" msgid "Unix (recommended)" msgstr "Unix (recomandat)" msgid "Windows" msgstr "Windows" #. TRANSLATORS: Followed by text control for entering number; wraps text at given width msgid "Wrap at:" msgstr "Passar a la linha a :" msgid "Preserve formatting of existing files" msgstr "Preservar lo formatatge dels fichièrs existents" msgid "Advanced" msgstr "Avançats" msgid "Pre-translating…" msgstr "Pretraduccion…" #, c-format msgid "Pre-translated %u string" msgid_plural "Pre-translated %u strings" msgstr[0] "" msgstr[1] "" #. TRANSLATORS: This is a somewhat common term describing the action where #. you apply the translation memory and/or machine translation to all of the #. strings you're translating as the first step, followed by correcting, #. improving etc., i.e. actually translating the strings. This may be tricky #. to express in other languages as simply as in English, but please try to #. keep it similarly concise. Please try to avoid, if possible, describing it #. as "auto-translation" and similar, because such terminology would mislead #. some users into thinking it's all that needs to be done (spoken from #. experience). "Pre-translate" nicely expresses that it's only the step done #. *before* actual translation. msgid "Pre-translate" msgstr "Pretraduction" msgid "Only fill in exact matches" msgstr "Completar unicament las correspondéncias exactas" msgid "" "By default, inaccurate results are filled in as well and marked as needing " "work. Check this option to only include accurate matches." msgstr "" msgid "Don’t mark exact matches as needing work" msgstr "" msgid "" "Only enable if you trust the quality of your TM. By default, all matches " "from the TM are marked as needing work and should be reviewed before use." msgstr "" msgid "" "Pre-translation automatically finds exact or fuzzy matches for untranslated " "strings in the translation memory and fills in their translations." msgstr "" #, c-format msgid "%d entry was pre-translated." msgid_plural "%d entries were pre-translated." msgstr[0] "" msgstr[1] "" msgid "" "The translations were marked as needing work, because they may be " "inaccurate. You should review them for correctness." msgstr "" msgid "No entries could be pre-translated." msgstr "" msgid "" "The TM doesn’t contain any strings similar to the content of this file. It " "is only effective for semi-automatic translations after Poedit learns enough " "from files that you translated manually." msgstr "" "La MT conten pas cap de cadena identica al contengut d'aqueste fichièr. Es " "efectiu unicament per de traduccions semi-automaticas aprèp que Poedit aja " "aprés pro de fichièrs traduits manualament." msgid "" "Drag and Drop Folders Here\n" "\n" "or use the + button" msgstr "" "Lisatz-depausatz los dorsièrs aicí\n" "\n" "o utilizatz lo boton +" msgid "" "Drag and drop folders here\n" "\n" "or use the + button" msgstr "" "Lisatz-depausatz los dorsièrs aicí\n" "\n" "o utilizatz lo boton +" msgid "Add Folders…" msgstr "" msgid "Add folders…" msgstr "" msgid "Add Files…" msgstr "" msgid "Add files…" msgstr "" msgid "Add Wildcard…" msgstr "" msgid "Add wildcard…" msgstr "" msgid "Paths" msgstr "Camins" msgid "Excluded paths" msgstr "Camins excluses" msgid "Advanced extraction settings" msgstr "" msgid "Extract notes for translators from:" msgstr "" msgid "Comments prefixed with:" msgstr "" msgid "All comments" msgstr "Totes los comentaris" msgid "Additional xgettext flags:" msgstr "" msgid "Additional keywords" msgstr "Mots claus suplementaris" msgid "Name of the project the translation is for" msgstr "Nom del projècte de traduccion" msgid "Team name and email address or URL" msgstr "" msgid "e.g. nplurals=2; plural=(n > 1);" msgstr "p. ex. nplurals=2; plural=(n > 1);" msgid "UTF-8 (recommended)" msgstr "UTF-8 (recomandat)" msgid "Please save the file first. This section cannot be edited until then." msgstr "" "D'en primièr, enregistratz lo fichièr. Aquesta seccion pòt pas èsser " "modificada abans." msgid "Not all plural forms are translated." msgstr "" msgid "The translation should start as a sentence." msgstr "" msgid "The translation should start with a lowercase character." msgstr "" msgid "The translation doesn’t start with a space." msgstr "" msgid "The translation starts with a space, but the source text doesn’t." msgstr "" msgid "The translation is missing a newline at the end." msgstr "" msgid "The translation ends with a newline, but the source text doesn’t." msgstr "" msgid "The translation is missing a space at the end." msgstr "" msgid "The translation ends with a space, but the source text doesn’t." msgstr "" #, c-format msgid "The translation should end with “%s”." msgstr "" #, c-format msgid "The translation should not end with “%s”." msgstr "" #, c-format msgid "The translation ends with “%s”, but the source text ends with “%s”." msgstr "" msgid "Comment:" msgstr "Comentari :" msgid "OK" msgstr "D'acòrdi" msgid "C&lear" msgstr "&Escafar" msgid "Clear the comment" msgstr "Escafar lo comentari" msgid "New" msgstr "Novèl" msgid "Create new translations project" msgstr "Crear un novèl projècte de traduccion" msgid "Edit" msgstr "Modificar" msgid "Edit the project" msgstr "Modificar lo projècte" msgid "Delete the project" msgstr "Suprimir aqueste projècte" msgid "Update all" msgstr "Tot metre a jorn" msgid "Update all catalogs in the project" msgstr "Metre a jorn totes los catalògs del projècte" msgid "Edit project" msgstr "Modificar lo projècte" msgid "Project name:" msgstr "Nom del projècte :" msgid "Browse" msgstr "Percórrer" msgid "Add directory to the list" msgstr "Apondre un repertòri a la lista" msgid "&New…" msgstr "" msgid "New from &POT/PO file…" msgstr "" msgid "New From &POT/PO File…" msgstr "" msgid "&Open…" msgstr "" msgid "Open Recent" msgstr "Dobèrts recentament" msgid "Open from Crowdin…" msgstr "" msgid "Open From Crowdin…" msgstr "" msgid "&Close" msgstr "&Tampar" msgid "&Save" msgstr "&Enregistrar" msgid "Save &as…" msgstr "" msgid "Save &As…" msgstr "" msgid "Compile to MO…" msgstr "" msgid "E&xport as HTML…" msgstr "" msgid "Check for updates…" msgstr "" msgid "&Preferences…" msgstr "" msgid "Catalogs &manager" msgstr "Gestion dels &catalògs" msgid "Catalogs &Manager" msgstr "Gestion dels &catalògs" msgid "E&xit" msgstr "&Quitar" msgid "Quit" msgstr "Quitar" msgid "Copy from singular" msgstr "Copiar del singular" msgid "Copy From Singular" msgstr "Copiar del singular" msgid "Translation needs &work" msgstr "Traduccion necessitant una &revision" msgid "Translation Needs &Work" msgstr "Traduccion necessitant una &revision" msgid "Edit &comment" msgstr "Modificar lo &comentari" msgid "Edit &Comment" msgstr "Modificar lo &comentari" msgid "Suggestions" msgstr "Suggestions" msgid "&Find…" msgstr "" msgid "Replace…" msgstr "" msgid "Find next" msgstr "Cercar lo seguent" msgid "Find previous" msgstr "Trobar lo precedent" msgid "Find and Replace…" msgstr "" msgid "Find Next" msgstr "Cercar lo seguent" msgid "Find Previous" msgstr "Cercar lo precedent" msgid "&Preferences" msgstr "&Preferéncias" msgid "Display entry &IDs" msgstr "Afichar los &IDs de las entradas" msgid "Display Entry &IDs" msgstr "Afichar los &IDs de las entradas" msgid "Sort by &file order" msgstr "Triar per &fichièr" msgid "Sort by &File Order" msgstr "Triar per &Fichièr" msgid "Sort by &source" msgstr "Triar per &font" msgid "Sort by &Source" msgstr "Triar per &Font" msgid "Sort by &translation" msgstr "Triar per &traduccion" msgid "Sort by &Translation" msgstr "Triar per &Traduccion" msgid "&Group by context" msgstr "&Gropar per contèxte" msgid "&Group By Context" msgstr "&Gropar per Contèxte" msgid "Entries with errors first" msgstr "Entradas amb errors d'en primièr" msgid "Entries with Errors First" msgstr "Entradas amb Errors d'en primièr" msgid "&Untranslated entries first" msgstr "Entradas &pas traduitas d'en primièr" msgid "&Untranslated Entries First" msgstr "Entradas &pas Traduitas d'en Primièr" msgid "&Show references" msgstr "&Veire las referéncias" msgid "&Show References" msgstr "&Veire las referéncias" msgid "Show sidebar" msgstr "Afichar lo panèl lateral" msgid "Show status bar" msgstr "Afichar la barra d'estat" msgid "C&atalog" msgstr "&Catalòg" msgid "&Update from sources" msgstr "&Metre a jorn dempuèi las fonts" msgid "&Update from Sources" msgstr "&Metre a jorn dempuèi las Fonts" msgid "Update from &POT file…" msgstr "" msgid "Update from &POT File…" msgstr "" msgid "Sync with Crowdin" msgstr "Sincronizar amb Crowdin" msgid "Pre-&translate…" msgstr "" msgid "&Purge deleted translations" msgstr "&Escafar las traduccions suprimidas" msgid "&Purge Deleted Translations" msgstr "&Escafar las traduccions suprimidas" msgid "&Validate translations" msgstr "&Validar las traduccions" msgid "&Validate Translations" msgstr "&Validar las traduccions" msgid "&Properties…" msgstr "" msgid "&Done and next" msgstr "&Aplicar e contunhar" msgid "&Done and Next" msgstr "&Aplicar e contunhar" msgid "&Previous translation" msgstr "Traduccion &precedenta" msgid "&Previous Translation" msgstr "Traduccion &precedenta" msgid "&Next translation" msgstr "Traduccion segue&nta" msgid "&Next Translation" msgstr "Traduccion segue&nta" msgid "P&revious unfinished" msgstr "Incomplet p&recedent" msgid "P&revious Unfinished" msgstr "Incomplet p&recedent" msgid "Ne&xt unfinished" msgstr "Incomplet seguen&t" msgid "Ne&xt Unfinished" msgstr "Incomplet seguen&t" msgid "Previous plural form" msgstr "Forma plural precedenta" msgid "Previous Plural Form" msgstr "Forma plural precedenta" msgid "Next plural form" msgstr "Forma plurala seguenta" msgid "Next Plural Form" msgstr "Forma plurala seguenta" msgid "&Online help" msgstr "&Ajuda en linha" msgid "&Online Help" msgstr "&Ajuda en linha" msgid "&GNU gettext manual" msgstr "Manual de &GNU gettext" msgid "&GNU gettext Manual" msgstr "Manual de &GNU gettext" msgid "&About Poedit" msgstr "&A prepaus de Poedit" msgid "&About" msgstr "&A prepaus" msgid "Extractor setup" msgstr "Installacion de l'extractor" msgid "List of extensions separated by semicolons (e.g. *.cpp;*.h):" msgstr "" "Lista de las extensions separadas per de punts-virgulas (ex. *.cpp;*.h) :" msgid "Invocation:" msgstr "Apèl :" msgid "Command to extract translations:" msgstr "Comanda per extraire de traduccions :" msgid "" "This is the command used to launch the extractor.\n" "%o expands to the name of output file, %K to list\n" "of keywords, %F to list of input files,\n" "%C to charset flag (see below)." msgstr "" "Aquí las comandas qu'avian l'extractor.\n" "%o : espandir al nom del fichièr de sortida,\n" "%K : far la lista dels mots claus,\n" "%F : far la lista dels fichièrs d'entrada,\n" "%C : jòc de caractèrs (veire çaijós)." msgid "An item in keywords list:" msgstr "Un element de la lista dels mots claus :" msgid "" "This will be attached to the command line once\n" "for each keyword. %k expands to the keyword." msgstr "" "Inserit dins la linha de comanda per cada\n" "mot clau. %k : lo mot clau." msgid "An item in input files list:" msgstr "Un element de la lista dels fichièrs d'entrada :" #, c-format msgid "" "This will be attached to the command line once\n" "for each input file. %f expands to the filename." msgstr "" "Inserit dins la linha de comanda per cada\n" "fichièr d'entrada. %f : nom del fichièr." msgid "Source code charset:" msgstr "Jòc de caractèrs del còdi font :" #, c-format msgid "" "This will be attached to the command line\n" "only if source code charset was given. %c expands to charset value." msgstr "" "Inserit dins la linha de comanda quand lo còdi de jòc de\n" "caractèrs de la font es provesit. %c s'espandís a la valor del jòc de " "caractèrs." msgid "Catalog properties" msgstr "Proprietats del catalòg" msgid "Project name and version:" msgstr "Nom e version del projècte :" msgid "Language team:" msgstr "" msgid "Plural forms:" msgstr "Formas pluralas :" msgid "Use default rules for this language" msgstr "Utilizar las règlas per defaut d'aquesta lenga" msgid "Use custom expression" msgstr "Utilizar una expression personalizada" msgid "Learn about plural forms" msgstr "Ne saber mai sus las formas pluralas" msgid "Charset:" msgstr "Jòc de caractèrs :" msgid "Advanced Extraction Settings…" msgstr "" msgid "Advanced extraction settings…" msgstr "" msgid "Translation Properties" msgstr "" msgid "Translation properties" msgstr "Proprietats de traduccion" msgid "Sources Paths" msgstr "" msgid "Sources paths" msgstr "Camins de las fonts" msgid "Extract text from source files in the following directories:" msgstr "Extraire lo tèxte dels fichièrs fonts dins los repertòris seguents :" msgid "Base path:" msgstr "Camin de basa :" msgid "Sources Keywords" msgstr "" msgid "Sources keywords" msgstr "Mots claus fonts" msgid "" "Use these keywords (function names) to recognize translatable strings\n" "in source files:" msgstr "" "Utilizar aquestes mots claus (noms de foncions) per reconéisser las cadenas\n" "tradusiblas dins los fichièrs fonts :" msgid "Also use default keywords for supported languages" msgstr "" msgid "Learn About Gettext Keywords" msgstr "Ne saber mai suls mots claus de Gettext" msgid "Learn about gettext keywords" msgstr "Ne saber mai suls mots claus gettext" msgid "Update summary" msgstr "Resumit de la mesa a jorn" msgid "" "These strings were found in the sources but were not in the catalog.\n" "Poedit will add them to the catalog now." msgstr "" "Las cadenas seguentas son estadas trobadas dins las fonts mas existisson pas " "dins lo catalòg.\n" "Poedit las apond al catalòg." msgid "New strings" msgstr "Cadenas novèlas" msgid "" "These strings are no longer in the sources.\n" "Poedit will remove them from the catalog now." msgstr "" "Aquestas cadenas son pas mai dins las fonts.\n" "Poedit los leva del catalòg." msgid "Obsolete strings" msgstr "Cadenas obsolètas" msgid "(0 new, 0 obsolete)" msgstr "(0 novèla, 0 obsolèta)" msgid "Open" msgstr "Dobrir" msgid "Save catalog" msgstr "Enregistrar lo catalòg" msgid "Validate" msgstr "Validar" msgid "Check for errors in the translation" msgstr "Verificar las errors dins la traduccion" msgid "Update" msgstr "Metre a jorn" msgid "Update catalog - synchronize it with sources" msgstr "Metre a jorn lo catalòg - Sincronizar amb las fonts" msgid "Sidebar" msgstr "Panèl lateral" msgid "Show or hide the sidebar" msgstr "Afichar o amagar lo panèl lateral" #. TRANSLATORS: "Previous" as in used in the past, now replaced with newer. msgid "Previous source text:" msgstr "Tèxte font precedent :" msgid "" "The old source text (before it changed during an update) that the now-" "inaccurate translation corresponds to." msgstr "" msgid "Notes for translators:" msgstr "Nòtas pels traductors :" msgid "Add comment" msgstr "Apondre un comentari" msgid "Add Comment" msgstr "Apondre un comentari" msgid "Translation suggestions:" msgstr "Suggestions de traduccion :" #. TRANSLATORS: This is shown when no translation suggestions can be found in the TM (Windows). msgid "No matches found" msgstr "Cap de correspondéncia pas trobada" #. TRANSLATORS: This is shown when no translation suggestions can be found in the TM (macOS, Linux). msgid "No Matches Found" msgstr "Cap de Correspondéncia pas trobada" msgid "This string was found in Poedit’s translation memory." msgstr "" "Aquesta cadena es estada trobada dins la memòria de traduccion de Poedit." msgid "Cannot create temporary directory." msgstr "Impossible de crear lo repertòri temporari." msgid "Welcome to Poedit" msgstr "Benvenguda dins Poedit" #. TRANSLATORS: This is version information in about dialog, "%s" will be #. version number when used #, c-format msgid "Version %s" msgstr "Version %s" msgid "Edit a Translation" msgstr "Modificar una traduccion" msgid "Edit a translation" msgstr "Modificar una traduccion" msgid "Open an existing PO file and edit the translation." msgstr "Dobrir un fichièr PO existent e modificar la traduccion." msgid "" "Take an existing PO file or POT template and create a new translation from " "it." msgstr "" "Crear una novèla traduccion a partir d'un fichièr PO o d'un modèl POT " "existent." msgid "Collaborate on a Translation with Others" msgstr "Collaborar a una traduccion amb d’autres" msgid "Collaborate on a translation with others" msgstr "Collaborar a una traduccion amb d’autres" msgid "" "Download a file from Crowdin project, translate and sync your changes back." msgstr "" "Telecargar un fichièr d'un projècte Crowdin, traduire e sincronizar vòstras " "modificacions." msgid "What is Crowdin?" msgstr "Qu'es aquò Crowdin ?" msgid "There are no translations. That’s unusual." msgstr "I a pas cap de traduccions. Es pas corrent." msgid "" "Translatable entries aren’t added manually in the Gettext system, but are " "automatically extracted\n" "from source code. This way, they stay up to date and accurate.\n" "Translators typically use PO template files (POTs) prepared for them by the " "developer." msgstr "" msgid "(Learn more about GNU gettext)" msgstr "(Ne saber mai sus GNU gettext)" msgid "The simplest way to fill this catalog is to update it from a POT:" msgstr "" "Lo biais lo mai simple d'emplenar aqueste catalòg es de lo metre a jorn " "dempuèi un fichièr POT :" msgid "Update from POT" msgstr "Metre a jorn dempuèi un POT" msgid "Take translatable strings from an existing POT template." msgstr "Utilizar las cadenas tradusiblas d'un modèl POT existent." msgid "" "You can also extract translatable strings directly from the source code:" msgstr "" "Tanben podètz extraire las cadenas tradusiblas dirèctament a partir del còdi " "font :" msgid "Extract from sources" msgstr "Extraire dempuèi las fonts" msgid "Configure source code extraction in Properties." msgstr "Configurar l’extraccion de còdi font dins las Proprietats." msgid "Sync" msgstr "Sincronizar" msgid "Synchronize the translation with Crowdin" msgstr "Sincronizar la traduccion amb Crowdin" #. TRANSLATORS: This is titlebar of about dialog, "%s" is application name #. ("Poedit" here, but please use "%s") #, c-format msgid "About %s" msgstr "A prepaus de %s" #. TRANSLATORS: Title of the preferences window on Windows and Linux. "%s" is replaced with "Poedit" when running. #, c-format msgid "%s Preferences" msgstr "Preferéncias de %s" #. TRANSLATORS: macOS item in app menu msgid "Services" msgstr "Servicis" #. TRANSLATORS: macOS item in app menu, %s is replaced with "Poedit" #, c-format msgid "Hide %s" msgstr "Amagar %s" #. TRANSLATORS: macOS item in app menu msgid "Hide Others" msgstr "Amagar los autres" #. TRANSLATORS: macOS item in app menu msgid "Show All" msgstr "Afichar tot" #. TRANSLATORS: macOS item in app menu, %s is replaced with "Poedit" #, c-format msgid "Quit %s" msgstr "Quitar %s" #. TRANSLATORS: macOS item in app menu msgid "Preferences…" msgstr "Preferéncias..." msgid "Preferences..." msgstr "Preferéncias..." #. TRANSLATORS: Title of a category in Windows task menu (right-click icon in taskbar) msgid "Recent" msgstr "" #. TRANSLATORS: Title of a category in Windows task menu (right-click icon in taskbar) msgid "Frequent" msgstr "" msgid "&Apply" msgstr "" msgid "Apply" msgstr "" msgid "&Back" msgstr "" msgid "Back" msgstr "" msgid "&Cancel" msgstr "" msgid "&Clear" msgstr "" msgid "Clear" msgstr "" msgid "Copy" msgstr "Copiar" msgid "Cu&t" msgstr "&Talhar" msgid "Cut" msgstr "Talhar" msgid "&Delete" msgstr "&Suprimir" msgid "&Quit" msgstr "" msgid "File" msgstr "" msgid "Help" msgstr "" msgid "&New" msgstr "" msgid "&No" msgstr "" msgid "No" msgstr "" msgid "&OK" msgstr "" msgid "Open…" msgstr "" msgid "&Open..." msgstr "D&obrir..." msgid "Open..." msgstr "" msgid "&Paste" msgstr "&Pegar" msgid "Paste" msgstr "Pegar" msgid "Preferences" msgstr "" msgid "&Redo" msgstr "&Restablir" msgid "Refresh" msgstr "" msgid "&Save as" msgstr "" msgid "Save as" msgstr "" msgid "Select &All" msgstr "Seleccionar &tot" msgid "Select All" msgstr "Seleccionar tot" msgid "&Undo" msgstr "An&ullar" msgid "&Yes" msgstr "" msgid "Yes" msgstr "" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Shift+" msgstr "Maj+" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Enter" msgstr "Entrada" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Up" msgstr "Naut" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Down" msgstr "Bas" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Left" msgstr "" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Right" msgstr "" #. TRANSLATORS: Keyboard shortcut, must correspond to translation of "Ctrl+" msgid "ctrl" msgstr "ctrl" #. TRANSLATORS: Keyboard shortcut, must correspond to translation of "Alt+" msgid "alt" msgstr "alt" #. TRANSLATORS: Keyboard shortcut, must correspond to translation of "Shift+" msgid "shift" msgstr "maj" poedit-2.0.6/locales/de.po0000664000372000037200000015636513230132076012313 00000000000000msgid "" msgstr "" "Project-Id-Version: poedit\n" "Report-Msgid-Bugs-To: help@poedit.net\n" "POT-Creation-Date: 2017-12-05 15:52+0100\n" "PO-Revision-Date: 2017-12-05 09:48-0500\n" "Last-Translator: vslavik \n" "Language-Team: German\n" "Language: de_DE\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: crowdin.com\n" "X-Crowdin-Project: poedit\n" "X-Crowdin-Language: de\n" "X-Crowdin-File: /locales/poedit.pot\n" msgid "Hide this notification message" msgstr "Diese Benachrichtigung nicht anzeigen" msgid "Don’t Show Again" msgstr "Nicht erneut anzeigen" msgid "Don’t show again" msgstr "Nicht erneut anzeigen" #, c-format msgid "(New: %i, obsolete: %i)" msgstr "(Neu: %i, veraltet: %i)" msgid "Updating catalog" msgstr "Katalog wird aktualisiert" msgid "Collecting source files…" msgstr "Quelldateien werden gesammelt …" msgid "Extracting translatable strings…" msgstr "Übersetzbare Zeichenketten werden extrahiert …" msgid "Failed to load extracted catalog." msgstr "Laden des extrahierten Kataloges fehlgeschlagen." msgid "Merging differences…" msgstr "Änderungen werden zusammengefügt …" #, c-format msgid "“%s” is not a valid POT file." msgstr "»%s« ist keine gültige POT-Datei." #, c-format msgid "%i line of file “%s” was not loaded correctly." msgid_plural "%i lines of file “%s” were not loaded correctly." msgstr[0] "%i Zeile der Datei »%s« wurde nicht korrekt geladen." msgstr[1] "%i Zeilen der Datei »%s« wurden nicht korrekt geladen." #, c-format msgid "Line %d of file “%s” is corrupted (not valid %s data)." msgstr "Zeile %d der Datei »%s« ist beschädigt (ungültige %s-Daten)." #, c-format msgid "Malformed header: “%s”" msgstr "Fehlerhafter Header: »%s«" msgid "" "Broken catalog file: singular form msgstr used together with msgid_plural" msgstr "" "Beschädigte Katalogdatei: Verwendung von msgstr in Singularform mit " "msgid_plural" msgid "Broken catalog file: plural form msgstr used without msgid_plural" msgstr "" "Beschädigte Katalogdatei: Verwendung von msgstr in Pluralform ohne " "msgid_plural" msgid "" "There were errors when loading the catalog. Some data may be missing or " "corrupted as the result." msgstr "" "Beim Laden des Katalogs sind Fehler aufgetreten. Einige Daten können fehlen " "oder beschädigt sein." #, c-format msgid "Couldn’t load file %s, it is probably corrupted." msgstr "" "Die Datei »%s« konnte nicht geladen werden. Sie ist vermutlich beschädigt." #, c-format msgid "" "File “%s” is read-only and cannot be saved.\n" "Please save it under different name." msgstr "" "Die Datei »%s« ist schreibgeschützt.\n" "Bitte speichern Sie sie unter einem anderen Namen." #, c-format msgid "Couldn’t save file %s." msgstr "Datei »%s« konnte nicht gespeichert werden." msgid "" "There was a problem formatting the file nicely (but it was saved all right)." msgstr "" "Es gab einen Fehler beim Schön-Formatieren der Datei, sie wurde aber korrekt " "gespeichert." #, c-format msgid "" "The catalog couldn’t be saved in “%s” charset as specified in catalog " "settings.\n" "\n" "It was saved in UTF-8 instead and the setting was modified accordingly." msgstr "" "Der Katalog konnte nicht im Zeichensatz »%s« gespeichert werden.\n" "\n" "Er wurde stattdessen in UTF-8 gespeichert, die Katalog-Optionen wurden " "entsprechend angepasst." msgid "Error saving catalog" msgstr "Fehler beim Speichern der Katalogdatei" msgid "PO Translation Files" msgstr "PO-Übersetzungsdateien" msgid "POT Translation Templates" msgstr "POT-Übersetzungsvorlagen" msgid "All Translation Files" msgstr "Alle Übersetzungsdateien" msgid "(Use default language)" msgstr "(Standardsprache verwenden)" msgid "Select your preferred language" msgstr "Bitte wählen Sie Ihre Sprache aus" msgid "Language selection" msgstr "Sprachauswahl" msgid "You must restart Poedit for this change to take effect." msgstr "Sie müssen Poedit neu starten, damit diese Änderung wirksam wird." msgid "Syncing" msgstr "Synchronisierung läuft" #. TRANSLATORS: %s is a cloud destination, e.g. "Crowdin" or ftp.wordpress.com etc. #, c-format msgid "Syncing with %s…" msgstr "Synchronisierung mit %s …" #. TRANSLATORS: %s is a cloud destination, e.g. "Crowdin" or ftp.wordpress.com etc. #, c-format msgid "Syncing with %s failed." msgstr "Fehler beim Synchronisieren mit %s." msgid "Syncing error" msgstr "Fehler bei der Synchronisierung" msgid "Downloading translations is disabled in this project." msgstr "Herunterladen von Übersetzungen ist in diesem Projekt deaktiviert." msgid "Not authorized, please sign in again." msgstr "Nicht autorisiert, bitte melden Sie sich erneut an." msgid "" "Crowdin is an online localization management platform and collaborative " "translation tool. Poedit can seamlessly sync PO files managed at Crowdin." msgstr "" "Crowdin ist eine Onlineplattform zur Lokalisierung und ein Werkzeug zum " "gemeinsamen Übersetzen. Poedit kann PO-Dateien, die mittels Crowdin " "verwaltet werden, problemlos synchronisieren." msgid "Sign In" msgstr "Anmelden" msgid "Sign in" msgstr "Anmelden" msgid "Sign Out" msgstr "Abmelden" msgid "Sign out" msgstr "Abmelden" msgid "Waiting for authentication…" msgstr "Auf Authentifizierung warten …" msgid "Updating user information…" msgstr "Benutzerinformationen werden aktualisiert …" msgid "Signed in as:" msgstr "Angemeldet als:" msgid "Learn More About Crowdin" msgstr "Erfahren Sie mehr über Crowdin" msgid "Learn more about Crowdin" msgstr "Erfahren Sie mehr über Crowdin" msgid "Sign in to Crowdin" msgstr "Bei Crowdin anmelden" msgid "Open Crowdin translation" msgstr "Crowdin-Übersetzung öffnen" msgid "Project:" msgstr "Projekt:" msgid "Language:" msgstr "Sprache:" msgid "File:" msgstr "Datei:" msgid "No translation projects listed in your Crowdin account." msgstr "Es sind keine Übersetzungsprojekte in Ihrem Crowdin-Konto gelistet." msgid "This project has no files that can be translated in Poedit." msgstr "" "In diesem Projekt befinden sich keine Dateien, die mit Poedit übersetzt " "werden können." msgid "This file can only be edited in Crowdin’s web interface." msgstr "" "Diese Datei kann nur in der Weboberfläche von Crowdin bearbeitet werden." msgid "Downloading latest translations…" msgstr "Neueste Übersetzungen werden heruntergeladen …" msgid "Syncing with Crowdin failed." msgstr "Fehler bei der Synchronisierung mit Crowdin." msgid "Crowdin error" msgstr "Crowdin Fehler" msgid "Uploading translations…" msgstr "Übersetzungen werden hochgeladen …" msgid "&Copy" msgstr "&Kopieren" msgid "Learn more" msgstr "Weitere Informationen" msgid "Learn More" msgstr "Weitere Informationen" msgid "&Help" msgstr "&Hilfe" msgid "MO files can’t be directly edited in Poedit." msgstr "MO-Dateien können nicht direkt in Poedit bearbeitet werden." msgid "Error opening file" msgstr "Fehler beim Öffnen der Datei" msgid "" "Please open and edit the corresponding PO file instead. When you save it, " "the MO file will be updated as well." msgstr "" "Bitte öffnen Sie stattdessen die zugehörige PO-Datei. Wenn Sie die Datei " "speichern, wird die MO-Datei ebenfalls aktualisiert." msgid "don’t delete temporary files (for debugging)" msgstr "Temporäre Dateien nicht entfernen (für Fehlersuche)" msgid "handle a poedit:// URI" msgstr "poedit:// Adresse verwenden" msgid "go to item at given line number" msgstr "zu Element in der angegebenen Zeilennummer springen" msgid "Failed to communicate with Poedit process." msgstr "Kommunikation mit Poedit-Prozess fehlgeschlagen." #, c-format msgid "Unhandled exception occurred: %s" msgstr "Ein unerwarteter Fehler ist aufgetreten: %s" msgid "Open catalog" msgstr "Katalog öffnen" #, c-format msgid "File “%s” doesn’t exist." msgstr "Datei »%s« existiert nicht." msgid "Poedit is an easy to use translations editor." msgstr "Poedit ist ein einfach zu benutzender Übersetzungseditor." msgid "Catalogs Manager" msgstr "Katalogverwaltung" msgid "Check for Updates…" msgstr "Auf Aktualisierungen prüfen …" msgid "&Edit" msgstr "&Bearbeiten" msgid "Undo" msgstr "Rückgängig" msgid "Redo" msgstr "Wiederherstellen" msgid "Paste and Match Style" msgstr "Einsetzen und Stil anpassen" msgid "Delete" msgstr "Löschen" msgid "Spelling and Grammar" msgstr "Rechtschreibung und Grammatik" msgid "Show Spelling and Grammar" msgstr "Rechtschreibung und Grammatik anzeigen" msgid "Check Document Now" msgstr "Dokument jetzt prüfen" msgid "Check Spelling While Typing" msgstr "Rechtschreibung während der Eingabe prüfen" msgid "Check Grammar With Spelling" msgstr "Grammatik zusätzlich zur Rechtschreibung prüfen" msgid "Correct Spelling Automatically" msgstr "Automatische Rechtschreibkorrektur" msgid "Substitutions" msgstr "Ersetzungen" msgid "Show Substitutions" msgstr "Ersetzungen anzeigen" msgid "Smart Copy/Paste" msgstr "Intelligentes Kopieren/Einsetzen" msgid "Smart Quotes" msgstr "Intelligente Anführungszeichen" msgid "Smart Dashes" msgstr "Intelligente Bindestriche" msgid "Smart Links" msgstr "Intelligente Links" msgid "Text Replacement" msgstr "Textersetzung" msgid "Transformations" msgstr "Transformationen" msgid "Make Upper Case" msgstr "Großschreiben" msgid "Make Lower Case" msgstr "Kleinschreiben" msgid "Capitalize" msgstr "Wortanfänge großschreiben" msgid "Speech" msgstr "Sprache" msgid "Start Speaking" msgstr "Sprechen starten" msgid "Stop Speaking" msgstr "Sprechen stoppen" msgid "&View" msgstr "&Ansicht" msgid "Enter Full Screen" msgstr "Vollbild" msgid "Window" msgstr "Fenster" msgid "Minimize" msgstr "Minimieren" msgid "Zoom" msgstr "Vergrößern" msgid "Bring All to Front" msgstr "Alle in den Vordergrund bringen" #. TRANSLATORS:File kind displayed in Finder/Explorer msgid "PO Translation" msgstr "PO-Übersetzung" msgid "The file cannot be opened." msgstr "Die Datei kann nicht geöffnet werden." msgid "Invalid file" msgstr "Ungültige Datei" msgid "" "The file may be either corrupted or in a format not recognized by Poedit." msgstr "" "Die Datei ist entweder beschädigt oder Poedit konnte das Format nicht " "erkennen." msgid "You can’t drop more than one file on Poedit window." msgstr "Sie können nicht mehr als eine Datei ins Poedit-Fenster ziehen." #, c-format msgid "File “%s” is not a message catalog." msgstr "Die Datei »%s« ist kein Text-Katalog." msgid "Poedit" msgstr "Poedit" msgid "&File" msgstr "&Datei" msgid "&Go" msgstr "&Navigieren" #. TRANSLATORS: %s is language name in its basic form (as you #. would see e.g. in a list of supported languages). You may need #. to rephrase it, e.g. to an equivalent of "for language %s". #, c-format msgid "" "Spellchecking is disabled, because the dictionary for %s isn’t installed." msgstr "" "Die Rechtschreibprüfung ist deaktiviert, weil das Wörterbuch für %s nicht " "installiert ist." msgid "Install" msgstr "Installieren" msgid "Catalog modified. Do you want to save changes?" msgstr "Katalog geändert. Änderungen speichern?" msgid "Save changes" msgstr "Änderungen speichern" msgid "Your changes will be lost if you don’t save them." msgstr "Ihre Änderungen gehen verloren, wenn Sie diese nicht speichern." msgid "Save" msgstr "Speichern" msgid "Don’t save" msgstr "Nicht speichern" msgid "Don’t Save" msgstr "Nicht speichern" msgid "Save as…" msgstr "Speichern unter …" msgid "Compile to…" msgstr "Kompilieren nach …" msgid "Compiled Translation Files" msgstr "Kompilierte Übersetzungsdateien" msgid "Export as…" msgstr "Exportieren als …" msgid "HTML Files" msgstr "HTML-Dateien" msgid "Open catalog template" msgstr "Katalogvorlage öffnen" msgid "Source code not available." msgstr "Der Quellcode steht nicht zur Verfügung." msgid "Updating failed" msgstr "Die Aktualisierung ist fehlgeschlagen" msgid "" "Translations couldn’t be updated from the source code, because no code was " "found in the location specified in the catalog’s Properties." msgstr "" "Übersetzungen konnten nicht aus dem Quellcode aktualisiert werden, weil kein " "Quellcode an dem in den Katalogeinstellungen angegebenen Ort gefunden wurde." msgid "Entries in the catalog are probably incorrect." msgstr "Katalogeinträge sind möglicherweise ungültig." msgid "Updating the catalog failed. Click on 'Details >>' for details." msgstr "" "Aktualisierung des Kataloges fehlgeschlagen. Klicken Sie für weitere " "Informationen auf »Details >>«." #, c-format msgid "%d issue with the translation found." msgid_plural "%d issues with the translation found." msgstr[0] "Es wurde %d Problem mit der Übersetzung gefunden." msgstr[1] "Es wurden %d Probleme mit der Übersetzung gefunden." msgid "Validation results" msgstr "Überprüfungsergebnisse" msgid "" "Entries with errors were marked in red in the list. Details of the error " "will be shown when you select such an entry." msgstr "" "Fehlerhafte Einträge wurden in der Liste rot markiert. Beim Auswählen eines " "dieser Einträge werden Details zum Fehler angezeigt." msgid "The file was saved safely." msgstr "Die Datei wurde sicher gespeichert." msgid "" "The file was saved safely and compiled into the MO format, but it will " "probably not work correctly." msgstr "" "Die Datei wurde sicher gespeichert und in das MO-Format konvertiert, aber " "möglicherweise funktioniert es nicht korrekt." msgid "" "The file was saved safely, but it cannot be compiled into the MO format and " "used." msgstr "" "Die Datei wurde gespeichert, aber das Kompilieren ins MO-Format schlug fehl " "und kann daher nicht verwendet werden." msgid "" "The file was compiled into the MO format, but it will probably not work " "correctly." msgstr "" "Die Datei wurde in das MO-Format kompiliert, allerdings wird sie " "wahrscheinlich nicht ordnungsgemäß funktionieren." msgid "The file cannot be compiled into the MO format and used." msgstr "Die Datei kann nicht in das MO-Format kompiliert und verwendet werden." msgid "No problems with the translation found." msgstr "Es wurden keine Probleme mit der Übersetzung gefunden." #, c-format msgid "The translation is ready for use, but %d entry is not translated yet." msgid_plural "" "The translation is ready for use, but %d entries are not translated yet." msgstr[0] "" "Die Übersetzung ist bereit für die Nutzung, aber %d Eintrag ist noch nicht " "übersetzt." msgstr[1] "" "Die Übersetzung ist bereit für die Nutzung, aber %d Einträge sind noch nicht " "übersetzt." msgid "The translation is ready for use." msgstr "Die Übersetzung kann verwendet werden." #, c-format msgid "Poedit automatically fixed invalid content in the file “%s”." msgstr "" "Ungültige Inhalte der Datei »%s« wurden von Poedit automatisch korrigiert." msgid "" "The file contained duplicate items, which is not allowed in PO files and " "would prevent the file from being used. Poedit fixed the issue, but you " "should review translations of any items marked as needing work and correct " "them if necessary." msgstr "" "Die Datei enthält doppelte Einträge, die in PO-Dateien nicht zulässig sind " "und dazu führen würden, dass die Datei nicht verwendet werden kann. Dieses " "Problem wurde von Poedit behoben. Sie sollten allerdings Übersetzungen, die " "mit »Benötigt Überarbeitung« markiert sind, überprüfen und diese falls " "erforderlich korrigieren." msgid "Language of the translation isn’t set." msgstr "Sprache der Übersetzung ist nicht festgelegt." msgid "Set Language" msgstr "Sprache festlegen" msgid "Set language" msgstr "Sprache festlegen" #. TRANSLATORS: This is shown underneath "Language of the translation isn't set (or ...is the same as source language)." msgid "" "Suggestions are not available if the translation language is not set " "correctly. Other features, such as plural forms, may be affected as well." msgstr "" "Vorschläge sind nicht verfügbar, wenn die Übersetzungssprache nicht richtig " "eingestellt ist. Andere Funktionen wie z.B. Pluralformen, können ebenfalls " "betroffen sein." msgid "Language of the translation is the same as source language." msgstr "Sprache der Übersetzung ist dieselbe wie die Ausgangssprache." msgid "Fix Language" msgstr "Sprache korrekt festlegen" msgid "Fix language" msgstr "Sprache korrekt festlegen" msgid "" "This catalog has entries with plural forms, but doesn’t have Plural-Forms " "header configured." msgstr "" "Dieser Katalog hat Einträge mit Plural-Formen, jedoch sind im Kopfbereich " "der Datei keine Plural-Formen eingerichtet." msgid "" "Entries in this catalog have different plural forms count from what " "catalog’s Plural-Forms header says" msgstr "" "Einträge in diesem Katalog haben eine andere Anzahl an Plural-Formen als im " "Kopfbereich des Kataloges angegeben" msgid "Required header Plural-Forms is missing." msgstr "Im Kopfbereich der Datei fehlt die Angabe »Plural-Forms«." #, c-format msgid "Syntax error in Plural-Forms header (\"%s\")." msgstr "Syntaxfehler im Dateikopf bei »Plural-Forms« (»%s«)." msgid "Fix the Header" msgstr "Kopfbereich reparieren" msgid "Fix the header" msgstr "Kopfbereich reparieren" #. TRANSLATORS: %s is language name in its basic form (as you #. would see e.g. in a list of supported languages). You may need #. to rephrase it, e.g. to an equivalent of "for language %s". #, c-format msgid "Plural forms expression used by the catalog is unusual for %s." msgstr "Verwendete Plural-Form des Kataloges ist unüblich für %s." #. TRANSLATORS: A verb, shown as action button with ""Plural forms expression used by the catalog is unusual for %s.")" msgid "Review" msgstr "Überprüfen" #, c-format msgid "Error loading message catalog file “%s”." msgstr "Fehler beim Laden der Katalogdatei »%s«." #, c-format msgid "Translated: %d of %d (%d %%)" msgstr "Übersetzt: %d von %d (%d %%)" #, c-format msgid "Remaining: %d" msgstr "Verbleibend: %d" #, c-format msgid "%d error" msgid_plural "%d errors" msgstr[0] "%d Fehler" msgstr[1] "%d Fehler" #, c-format msgid "%d entry" msgid_plural "%d entries" msgstr[0] "%d Eintrag" msgstr[1] "%d Einträge" msgid " (unsaved)" msgstr " (ungespeichert)" msgid " (modified)" msgstr " (geändert)" #, c-format msgid "Failed to update translation memory: %s" msgstr "Fehler beim Aktualisieren des Übersetzungsspeichers: %s" msgid "Purge deleted translations" msgstr "Ungenutzte Übersetzungen entfernen" msgid "Do you want to remove all translations that are no longer used?" msgstr "Sollen alle nicht mehr verwendeten Übersetzungen entfernt werden?" msgid "" "If you continue with purging, all translations marked as deleted will be " "permanently removed. You will have to translate them again if they are added " "back in the future." msgstr "" "Wenn Sie mit dem Bereinigen fortfahren, werden alle als gelöscht markierten " "Texte endgültig gelöscht. Wenn die Texte in Zukunft wieder hinzugefügt " "werden, müssen Sie sie erneut übersetzen." msgid "Keep" msgstr "Behalten" msgid "Purge" msgstr "Bereinigen" msgid "Copy from source text" msgstr "Quelltext übernehmen" msgid "Copy from Source Text" msgstr "Quelltext übernehmen" #. TRANSLATORS: This is the key shortcut used in menus on Windows, some languages call them differently #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Ctrl+" msgstr "Strg+" msgid "Clear translation" msgstr "Übersetzung löschen" msgid "Clear Translation" msgstr "Übersetzung löschen" msgid "Edit comment" msgstr "Kommentar bearbeiten" msgid "Edit Comment" msgstr "Kommentar bearbeiten" msgid "References:" msgstr "Verweise:" msgid "&Bookmarks" msgstr "&Lesezeichen" #. TRANSLATORS: This is the key shortcut used in menus on Windows, some languages call them differently #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Alt+" msgstr "Alt+" #, c-format msgid "Set bookmark %i" msgstr "Lesezeichen %i festlegen" #, c-format msgid "Go to bookmark %i" msgstr "Zu Lesezeichen %i springen" #, c-format msgid "Set Bookmark %i" msgstr "Lesezeichen %i festlegen" #, c-format msgid "Go to Bookmark %i" msgstr "Zu Lesezeichen %i springen" msgid "Hide Sidebar" msgstr "Seitenleiste ausblenden" msgid "Show Sidebar" msgstr "Seitenleiste anzeigen" msgid "Hide Status Bar" msgstr "Statusleiste ausblenden" msgid "Show Status Bar" msgstr "Statusleiste anzeigen" msgid "Source text:" msgstr "Quelltext:" msgid "Singular:" msgstr "Singular:" msgid "Plural:" msgstr "Plural:" msgid "Translation:" msgstr "Übersetzung:" msgid "Pre-translated" msgstr "Vorübersetzt" msgid "Needs Work" msgstr "Benötigt Überarbeitung" #. TRANSLATORS: This indicates that the string's translation isn't final #. and has known problems. For example, it might be machine translated or #. fuzzy matched from an older string. The translation should be short and #. convey this. If it's problematic to translate it, "Needs review" is #. acceptable substitute, but note that the meaning is subtly different: #. "needs review" implies that somebody else should review the string after #. I am done with it (i.e. consider it good), while "needs work" implies I #. need to return to it and finish the translation. msgid "Needs work" msgstr "Benötigt Überarbeitung" msgid "" "POT files are only templates and don’t contain any translations themselves.\n" "To make a translation, create a new PO file based on the template." msgstr "" "POT-Dateien sind nur Vorlagen, sie enthalten selbst keine Übersetzungen.\n" "Um eine Übersetzung zu starten, legen Sie eine neue PO-Datei an, die auf der " "Vorlage basiert." msgid "Create New Translation" msgstr "Neue Übersetzung anlegen" msgid "Create new translation" msgstr "Neue Übersetzung erstellen" msgid "Everything" msgstr "Alles" #, c-format msgid "Form %i" msgstr "Form %i" msgid "Singular" msgstr "Singular" msgid "Zero" msgstr "Null" msgid "One" msgstr "Singular" msgid "Two" msgstr "Zwei" msgid "Plural" msgstr "Plural" msgid "Other" msgstr "Plural" #, c-format msgid "%s Format" msgstr "%s-Format" #. TRANSLATORS: %s is replaced with language name, e.g. "PHP" or "C", so "PHP Format" etc." #, c-format msgid "%s format" msgstr "%s-Format" msgid "Source text" msgstr "Quelltext" #, c-format msgid "Translation — %s" msgstr "Übersetzung – %s" msgid "ID" msgstr "ID" #, c-format msgid "Source text — %s" msgstr "Quelltext — %s" msgid "unknown language" msgstr "unbekannte Sprache" #, c-format msgid "Failed command: %s" msgstr "Fehlgeschlagener Befehl: %s" msgid "Failed to merge gettext catalogs." msgstr "Zusammenführen der gettext-Kataloge fehlgeschlagen." msgid "Source file" msgstr "Quelldatei" msgid "Source file occurrence:" msgstr "Vorkommen in Quelldatei:" msgid "Open in Editor" msgstr "In Editor öffnen" msgid "Open in editor" msgstr "In Editor öffnen" msgid "No references for the selected item." msgstr "Keine Verweise für das ausgewählte Element." #, c-format msgid "Error opening file %s!" msgstr "Fehler beim Öffnen der Datei »%s«." msgid "Find" msgstr "Suchen" msgid "Replace" msgstr "Ersetzen" #. TRANSLATORS: Expander in Find window for additional options (case sensitive etc.) msgid "Options" msgstr "Optionen" msgid "Ignore case" msgstr "Groß-/Kleinschreibung ignorieren" msgid "Wrap around" msgstr "Am Ende von vorne beginnen" msgid "Whole words only" msgstr "Nur ganze Wörter" msgid "Find in source texts" msgstr "In Quelltexten suchen" msgid "Find in translations" msgstr "In Übersetzungen suchen" msgid "Find in comments" msgstr "In Kommentaren suchen" msgid "Close" msgstr "Schließen" msgid "Replace &All" msgstr "&Alle ersetzen" msgid "Replace &all" msgstr "&Alle ersetzen" msgid "&Replace" msgstr "Erset&zen" msgid "< &Previous" msgstr "< &Zurück" msgid "&Next >" msgstr "&Weiter >" msgid "String to find" msgstr "Zu suchende Zeichenkette" msgid "Replacement string" msgstr "Ersatzzeichenkette" #, c-format msgid "Cannot execute program: %s" msgstr "Programm konnte nicht ausgeführt werden: %s" msgid "Language Code or Name (e.g. en_GB)" msgstr "Sprachcode oder Name (z.B. de_DE)" msgid "Translation Language" msgstr "Übersetzungssprache" msgid "Language of the translation:" msgstr "Sprache der Übersetzung:" msgid "Poedit - Catalogs manager" msgstr "Poedit-Katalogverwaltung" msgid "Catalog" msgstr "Katalog" msgid "Total" msgstr "Gesamt" msgid "Untrans" msgstr "Nicht übersetzt" msgid "Errors" msgstr "Fehler" msgid "Last modified" msgstr "Letzte Änderung" msgid "Select directory" msgstr "Ordner auswählen" msgid "Directories:" msgstr "Ordner:" msgid "" msgstr "" msgid "Do you want to delete the project?" msgstr "Möchten Sie das Projekt löschen?" msgid "Confirmation" msgstr "Bestätigung" msgid "" "Do you really want to do mass update of\n" "all catalogs in this project?" msgstr "" "Möchten Sie wirklich alle Kataloge dieses\n" "Projekts aktualisieren?" msgid "Information about the translator" msgstr "Informationen zum Übersetzer" msgid "Name:" msgstr "Name:" msgid "Your Name" msgstr "Ihr Name" msgid "Email:" msgstr "E-Mail:" msgid "your_email@example.com" msgstr "ihr_name@beispiel.org" msgid "" "Your name and email address are only used to set the Last-Translator header " "of GNU gettext files." msgstr "" "Ihr Name und die E-Mail-Adresse werden nur verwendet, um den »Last-" "Translator«-Eintrag in GNU gettext-Dateien zu setzen." msgid "Editing" msgstr "Bearbeiten" msgid "Automatically compile MO file when saving" msgstr "MO-Datei beim Speichern automatisch erstellen" msgid "Show summary after catalog update" msgstr "Bericht nach Katalogaktualisierung anzeigen" msgid "Check spelling" msgstr "Rechtschreibung prüfen" msgid "Always change focus to text input field" msgstr "Den Fokus immer auf das Eingabefeld setzen" msgid "" "Never let the list of strings take focus. If enabled, you must use Ctrl-" "arrows for keyboard navigation but you can also type text immediately, " "without having to press Tab to change focus." msgstr "" "Der Zeichenkettenliste nie den Fokus geben. Wenn aktiviert, müssen Sie Strg-" "Pfeiltasten zur Navigation benutzen. Sie können jedoch auch sofort Text " "eingeben, ohne vorher zum Ändern des Fokus Tab drücken zu müssen." msgid "Appearance" msgstr "Erscheinungsbild" msgid "Use custom list font:" msgstr "Benutzerdefinierte Schriftart für Listen verwenden:" msgid "Use custom text fields font:" msgstr "Benutzerdefinierte Schriftart für Textfelder verwenden:" msgid "Change UI language" msgstr "GUI-Sprache auswählen" #. TRANSLATORS: This is a note appended to "Check spelling" when running on older Windows versions msgid "(requires Windows 8 or newer)" msgstr "(benötigt Windows 8 oder neuer)" msgid "General" msgstr "Allgemein" msgid "Use translation memory" msgstr "Übersetzungsspeicher verwenden" msgid "Learn From Files…" msgstr "Aus Dateien befüllen …" msgid "Learn from files…" msgstr "Aus Dateien befüllen …" #. TRANSLATORS: This is a button that deletes everything in the translation memory (i.e. clears/resets it). msgid "Reset" msgstr "Zurücksetzen" #. TRANSLATORS: Followed by "match translations within the file" or "pre-translate from TM" msgid "When updating from sources" msgstr "Beim Aktualisieren von Quelldaten" #. TRANSLATORS: Preceded by "When updating from sources" msgid "fuzzy match within the file" msgstr "unklare Übereinstimmung innerhalb der Datei" #. TRANSLATORS: Preceded by "When updating from sources" msgid "pre-translate from TM" msgstr "Vorübersetzung aus dem Übersetzungsspeicher" msgid "" "Poedit can attempt to fill in new entries from only previous translations in " "the file or from your entire translation memory. Using the TM won’t be very " "effective if it’s near-empty, but it will get better as you add more " "translations to it." msgstr "" "Poedit kann versuchen, neue Einträge ausschließlich mit früheren " "Übersetzungen aus der Datei zu befüllen oder den gesamten " "Übersetzungsspeicher zu nutzen. Der Übersetzungsspeicher wird nicht sehr " "effektiv sein, wenn dieser nahezu leer ist, wird aber immer besser, je mehr " "Übersetzungen hinzugefügt werden." msgid "Stored translations:" msgstr "Gespeicherte Übersetzungen:" msgid "Database size on disk:" msgstr "Größe der Datenbank auf der Festplatte:" msgid "Select translation files to import" msgstr "Übersetzungsdateien zum Importieren auswählen" msgid "Translation Memory" msgstr "Übersetzungsspeicher" msgid "Importing translations…" msgstr "Übersetzungen werden importiert …" msgid "Finalizing…" msgstr "Abschließen …" msgid "Reset translation memory" msgstr "Übersetzungsspeicher zurücksetzen" msgid "Are you sure you want to reset the translation memory?" msgstr "" "Sind Sie sicher, dass der Übersetzungsspeicher zurückgesetzt werden soll?" msgid "" "Resetting the translation memory will irrevocably delete all stored " "translations from it. You can’t undo this operation." msgstr "" "Das Zurücksetzen des Übersetzungsspeichers löscht alle darin gespeicherten " "Übersetzungen unwiderruflich. Dieser Schritt kann nicht rückgängig gemacht " "werden." msgid "Cancel" msgstr "Abbrechen" #. TRANSLATORS: This is abbreviation of "Translation Memory" used in Preferences on macOS. #. Long text looks weird there, too short (like TM) too, but less so. "General" is about ideal #. length there. msgid "TM" msgstr "TM" msgid "" "Source code extractors are used to find translatable strings in the source " "code files and extract them so that they can be translated." msgstr "" "Quellcode-Extraktoren werden verwendet, um übersetzbare Zeichenketten in den " "Quellcode-Dateien zu suchen und diese zu extrahieren, so dass sie übersetzt " "werden können." msgid "Custom Extractors:" msgstr "Benutzerdefinierte Extraktoren:" msgid "Custom extractors:" msgstr "Benutzerdefinierte Extraktoren:" msgid "Edit…" msgstr "Bearbeiten …" msgid "GNU gettext" msgstr "GNU gettext" msgid "" "Supports all programming languages recognized by GNU gettext tools (PHP, C/C+" "+, C#, Perl, Python, Java, JavaScript and others)." msgstr "" "Unterstützt alle Programmiersprachen, die von GNU gettext Werkzeugen erkannt " "werden (PHP, C/C++, C#, Perl, Python, Java, JavaScript und weitere)." msgid "Delete extractor" msgstr "Extraktor entfernen" #, c-format msgid "Are you sure you want to delete the “%s” extractor?" msgstr "Sind Sie sicher, dass der Extraktor »%s« entfernt werden soll?" msgid "Extractors" msgstr "Extraktoren" msgid "Accounts" msgstr "Konten" msgid "Automatically check for updates" msgstr "Automatisch nach Aktualisierungen suchen" msgid "Include beta versions" msgstr "Beta-Versionen einbeziehen" msgid "" "Beta versions contain the latest new features and improvements, but may be a " "bit less stable." msgstr "" "Beta-Versionen enthalten die neuesten Funktionen und Verbesserungen, können " "allerdings etwas weniger stabil sein." msgid "Updates" msgstr "Aktualisierungen" msgid "" "These settings affect internal formatting of PO files. Adjust them if you " "have specific requirements e.g. because of version control." msgstr "" "Diese Einstellungen betreffen die interne Formatierung der PO-Dateien. " "Passen Sie sie an, wenn Sie, z.B. für Versionskontrolle, bestimmte " "Anforderungen haben." msgid "Line endings:" msgstr "Zeilenenden:" msgid "Unix (recommended)" msgstr "Unix (empfohlen)" msgid "Windows" msgstr "Windows" #. TRANSLATORS: Followed by text control for entering number; wraps text at given width msgid "Wrap at:" msgstr "Umbrechen bei:" msgid "Preserve formatting of existing files" msgstr "Formatierung vorhandener Dateien beibehalten" msgid "Advanced" msgstr "Erweitert" msgid "Pre-translating…" msgstr "Vorübersetzen …" #, c-format msgid "Pre-translated %u string" msgid_plural "Pre-translated %u strings" msgstr[0] "%u Zeichenkette vorübersetzt" msgstr[1] "%u Zeichenketten vorübersetzt" #. TRANSLATORS: This is a somewhat common term describing the action where #. you apply the translation memory and/or machine translation to all of the #. strings you're translating as the first step, followed by correcting, #. improving etc., i.e. actually translating the strings. This may be tricky #. to express in other languages as simply as in English, but please try to #. keep it similarly concise. Please try to avoid, if possible, describing it #. as "auto-translation" and similar, because such terminology would mislead #. some users into thinking it's all that needs to be done (spoken from #. experience). "Pre-translate" nicely expresses that it's only the step done #. *before* actual translation. msgid "Pre-translate" msgstr "Vorübersetzung" msgid "Only fill in exact matches" msgstr "Nur genaue Treffer ausfüllen" msgid "" "By default, inaccurate results are filled in as well and marked as needing " "work. Check this option to only include accurate matches." msgstr "" "Standardmäßig werden ungenaue Ergebnisse auch übernommen und mit »Benötigt " "Überarbeitung« markiert. Wählen Sie diese Option, um nur exakte " "Übereinstimmungen zu übernehmen." msgid "Don’t mark exact matches as needing work" msgstr "Genaue Treffer nicht mit »Benötigt Überarbeitung« markieren" msgid "" "Only enable if you trust the quality of your TM. By default, all matches " "from the TM are marked as needing work and should be reviewed before use." msgstr "" "Nur aktivieren, wenn Sie der Qualität Ihres Übersetzungsspeichers vertrauen. " "Standardmäßig werden alle automatischen Übersetzungen mit »Benötigt " "Überarbeitung« markiert und sollten überprüft werden." msgid "" "Pre-translation automatically finds exact or fuzzy matches for untranslated " "strings in the translation memory and fills in their translations." msgstr "" "Die Vorübersetzung findet automatisch übereinstimmende oder ungenaue Treffer " "für unübersetzte Zeichenketten im Übersetzungsspeicher und befüllt die " "fehlenden Übersetzungen." #, c-format msgid "%d entry was pre-translated." msgid_plural "%d entries were pre-translated." msgstr[0] "%d Eintrag wurde vorübersetzt." msgstr[1] "%d Einträge wurden vorübersetzt." msgid "" "The translations were marked as needing work, because they may be " "inaccurate. You should review them for correctness." msgstr "" "Die Übersetzungen wurden mit »Benötigt Überarbeitung« markiert, weil sie " "ungenau sein könnten. Sie sollten die Einträge auf ihre Richtigkeit " "überprüfen." msgid "No entries could be pre-translated." msgstr "Es konnten keine Einträge vorübersetzt werden." msgid "" "The TM doesn’t contain any strings similar to the content of this file. It " "is only effective for semi-automatic translations after Poedit learns enough " "from files that you translated manually." msgstr "" "Der Übersetzungsspeicher beinhaltet keine Zeichenketten, die dem Inhalt " "dieser Datei ähneln. Der Übersetzungsspeicher kann erst dann effizient bei " "semi-automatischen Übersetzungen helfen, wenn Poedit ausreichend von den " "bisherigen Übersetzungen gelernt hat." msgid "" "Drag and Drop Folders Here\n" "\n" "or use the + button" msgstr "" "Ziehen und legen Sie Ordner hier ab\n" "\n" "oder verwenden Sie den + Knopf" msgid "" "Drag and drop folders here\n" "\n" "or use the + button" msgstr "" "Ziehen und legen Sie Ordner hier ab\n" "\n" "oder verwenden Sie den + Knopf" msgid "Add Folders…" msgstr "Ordner hinzufügen …" msgid "Add folders…" msgstr "Ordner hinzufügen …" msgid "Add Files…" msgstr "Dateien hinzufügen …" msgid "Add files…" msgstr "Dateien hinzufügen …" msgid "Add Wildcard…" msgstr "Platzhalter hinzufügen …" msgid "Add wildcard…" msgstr "Platzhalter hinzufügen …" msgid "Paths" msgstr "Pfade" msgid "Excluded paths" msgstr "Ausgeschlossene Pfade" msgid "Advanced extraction settings" msgstr "Erweiterte Extraktionseinstellungen" msgid "Extract notes for translators from:" msgstr "Anmerkungen für Übersetzer extrahieren aus:" msgid "Comments prefixed with:" msgstr "Anmerkungen mit Präfix:" msgid "All comments" msgstr "Alle Kommentare" msgid "Additional xgettext flags:" msgstr "Zusätzliche xgettext-Parameter:" msgid "Additional keywords" msgstr "Zusätzliche Schlüsselwörter" msgid "Name of the project the translation is for" msgstr "Name des Projektes der Übersetzung" msgid "Team name and email address or URL" msgstr "Name des Teams und E-Mail-Adresse oder URL" msgid "e.g. nplurals=2; plural=(n > 1);" msgstr "z.B. nplurals=2; plural=(n != 1);" msgid "UTF-8 (recommended)" msgstr "UTF-8 (empfohlen)" msgid "Please save the file first. This section cannot be edited until then." msgstr "" "Bitte speichern Sie die Datei vorher. Dieser Abschnitt kann bis dahin nicht " "bearbeitet werden." msgid "Not all plural forms are translated." msgstr "Es sind nicht alle Pluralformen übersetzt." msgid "The translation should start as a sentence." msgstr "Die Übersetzung sollte als Satz beginnen." msgid "The translation should start with a lowercase character." msgstr "Die Übersetzung sollte mit einem Kleinbuchstaben beginnen." msgid "The translation doesn’t start with a space." msgstr "Die Übersetzung beginnt nicht mit einem Leerzeichen." msgid "The translation starts with a space, but the source text doesn’t." msgstr "" "Die Übersetzung beginnt mit einem Leerzeichen, der Quelltext allerdings " "nicht." msgid "The translation is missing a newline at the end." msgstr "Am Ende der Übersetzung fehlt ein Zeilenumbruch." msgid "The translation ends with a newline, but the source text doesn’t." msgstr "" "Die Übersetzung endet mit einem Zeilenumbruch, der Quelltext allerdings " "nicht." msgid "The translation is missing a space at the end." msgstr "Am Ende der Übersetzung fehlt ein Leerzeichen." msgid "The translation ends with a space, but the source text doesn’t." msgstr "" "Die Übersetzung endet mit einem Leerzeichen, der Quelltext allerdings nicht." #, c-format msgid "The translation should end with “%s”." msgstr "Die Übersetzung sollte mit »%s« enden." #, c-format msgid "The translation should not end with “%s”." msgstr "Die Übersetzung sollte nicht mit »%s« enden." #, c-format msgid "The translation ends with “%s”, but the source text ends with “%s”." msgstr "Die Übersetzung endet mit »%s«, aber der Quelltext endet mit »%s«." msgid "Comment:" msgstr "Kommentar:" msgid "OK" msgstr "OK" msgid "C&lear" msgstr "&Löschen" msgid "Clear the comment" msgstr "Kommentar löschen" msgid "New" msgstr "Neu" msgid "Create new translations project" msgstr "Neues Übersetzungsprojekt erstellen" msgid "Edit" msgstr "Bearbeiten" msgid "Edit the project" msgstr "Projekt bearbeiten" msgid "Delete the project" msgstr "Projekt löschen" msgid "Update all" msgstr "Alle aktualisieren" msgid "Update all catalogs in the project" msgstr "Alle Kataloge des Projektes aktualisieren" msgid "Edit project" msgstr "Projekt bearbeiten" msgid "Project name:" msgstr "Projektname:" msgid "Browse" msgstr "Durchsuchen" msgid "Add directory to the list" msgstr "Ordner zur Liste hinzufügen" msgid "&New…" msgstr "&Neu …" msgid "New from &POT/PO file…" msgstr "Neu aus &POT/PO Datei …" msgid "New From &POT/PO File…" msgstr "Neu aus &POT/PO Datei …" msgid "&Open…" msgstr "Ö&ffnen …" msgid "Open Recent" msgstr "Zuletzt geöffnete Dateien" msgid "Open from Crowdin…" msgstr "Von Crowdin öffnen …" msgid "Open From Crowdin…" msgstr "Von Crowdin öffnen …" msgid "&Close" msgstr "S&chließen" msgid "&Save" msgstr "&Speichern" msgid "Save &as…" msgstr "Speichern &unter …" msgid "Save &As…" msgstr "Speichern &unter …" msgid "Compile to MO…" msgstr "MO-Datei erstellen …" msgid "E&xport as HTML…" msgstr "E&xportieren als HTML …" msgid "Check for updates…" msgstr "Auf Aktualisierungen prüfen …" msgid "&Preferences…" msgstr "&Einstellungen …" msgid "Catalogs &manager" msgstr "&Katalogverwaltung" msgid "Catalogs &Manager" msgstr "&Katalogverwaltung" msgid "E&xit" msgstr "&Beenden" msgid "Quit" msgstr "Beenden" msgid "Copy from singular" msgstr "Von Singular kopieren" msgid "Copy From Singular" msgstr "Von Singular kopieren" msgid "Translation needs &work" msgstr "Übersetzung benötigt &Überarbeitung" msgid "Translation Needs &Work" msgstr "Übersetzung benötigt &Überarbeitung" msgid "Edit &comment" msgstr "&Kommentar bearbeiten" msgid "Edit &Comment" msgstr "&Kommentar bearbeiten" msgid "Suggestions" msgstr "Vorschläge" msgid "&Find…" msgstr "&Suchen …" msgid "Replace…" msgstr "Ersetzen …" msgid "Find next" msgstr "Nächstes Vorkommen suchen" msgid "Find previous" msgstr "Vorheriges Vorkommen suchen" msgid "Find and Replace…" msgstr "Suchen und Ersetzen …" msgid "Find Next" msgstr "Nächstes Vorkommen suchen" msgid "Find Previous" msgstr "Vorheriges Vorkommen suchen" msgid "&Preferences" msgstr "&Einstellungen" msgid "Display entry &IDs" msgstr "Zeige Eintrag-&IDs" msgid "Display Entry &IDs" msgstr "Zeige Eintrag-&IDs" msgid "Sort by &file order" msgstr "Nach &Datei sortieren" msgid "Sort by &File Order" msgstr "Nach &Datei sortieren" msgid "Sort by &source" msgstr "Nach &Quelltext sortieren" msgid "Sort by &Source" msgstr "Nach &Quelltext sortieren" msgid "Sort by &translation" msgstr "Nach &Übersetzung sortieren" msgid "Sort by &Translation" msgstr "Nach &Übersetzung sortieren" msgid "&Group by context" msgstr "Nach Zusammenhang &gruppieren" msgid "&Group By Context" msgstr "Nach Zusammenhang &gruppieren" msgid "Entries with errors first" msgstr "Einträge mit Fehlern zuerst" msgid "Entries with Errors First" msgstr "Einträge mit Fehlern zuerst" msgid "&Untranslated entries first" msgstr "&Nicht übersetzte Einträge zuerst" msgid "&Untranslated Entries First" msgstr "&Nicht übersetzte Einträge zuerst" msgid "&Show references" msgstr "&Verweise anzeigen" msgid "&Show References" msgstr "&Verweise anzeigen" msgid "Show sidebar" msgstr "Seitenleiste anzeigen" msgid "Show status bar" msgstr "Statusleiste anzeigen" msgid "C&atalog" msgstr "&Katalog" msgid "&Update from sources" msgstr "&Aus Quellen aktualisieren" msgid "&Update from Sources" msgstr "&Aus Quellen aktualisieren" msgid "Update from &POT file…" msgstr "Aus &POT-Datei aktualisieren …" msgid "Update from &POT File…" msgstr "Aus &POT-Datei aktualisieren …" msgid "Sync with Crowdin" msgstr "Mit Crowdin synchronisieren" msgid "Pre-&translate…" msgstr "Vorüberse&tzung …" msgid "&Purge deleted translations" msgstr "&Ungenutzte Übersetzungen entfernen" msgid "&Purge Deleted Translations" msgstr "&Ungenutzte Übersetzungen entfernen" msgid "&Validate translations" msgstr "&Übersetzungen prüfen" msgid "&Validate Translations" msgstr "&Übersetzungen prüfen" msgid "&Properties…" msgstr "&Eigenschaften …" msgid "&Done and next" msgstr "&Erledigt und weiter" msgid "&Done and Next" msgstr "&Erledigt und weiter" msgid "&Previous translation" msgstr "&Vorherige Übersetzung" msgid "&Previous Translation" msgstr "&Vorherige Übersetzung" msgid "&Next translation" msgstr "&Nächste Übersetzung" msgid "&Next Translation" msgstr "&Nächste Übersetzung" msgid "P&revious unfinished" msgstr "V&orherige unfertige" msgid "P&revious Unfinished" msgstr "V&orherige unfertige" msgid "Ne&xt unfinished" msgstr "N&ächste unfertige" msgid "Ne&xt Unfinished" msgstr "N&ächste unfertige" msgid "Previous plural form" msgstr "Vorige Plural-Form" msgid "Previous Plural Form" msgstr "Vorige Plural-Form" msgid "Next plural form" msgstr "Nächste Plural-Form" msgid "Next Plural Form" msgstr "Nächste Plural-Form" msgid "&Online help" msgstr "&Online-Hilfe" msgid "&Online Help" msgstr "&Online-Hilfe" msgid "&GNU gettext manual" msgstr "&GNU gettext Dokumentation" msgid "&GNU gettext Manual" msgstr "&GNU gettext Dokumentation" msgid "&About Poedit" msgstr "&Über Poedit" msgid "&About" msgstr "&Über" msgid "Extractor setup" msgstr "Extraktor-Einrichtung" msgid "List of extensions separated by semicolons (e.g. *.cpp;*.h):" msgstr "Durch Semikola getrennte Liste der Dateiendungen (z.B. *.cpp;*.h):" msgid "Invocation:" msgstr "Aufruf:" msgid "Command to extract translations:" msgstr "Befehl, um Übersetzungen zu extrahieren:" msgid "" "This is the command used to launch the extractor.\n" "%o expands to the name of output file, %K to list\n" "of keywords, %F to list of input files,\n" "%C to charset flag (see below)." msgstr "" "Mit diesem Befehl wird der Extraktor gestartet,\n" "wobei die folgenden Ersetzungen stattfinden:\n" "%o durch den Namen der Ausgabedatei,\n" "%K durch die Liste der Schlüsselwörter,\n" "%F durch die Liste der Eingabedateien,\n" "%C durch den Zeichensatz (siehe unten)." msgid "An item in keywords list:" msgstr "Ein Eintrag in der Schlüsselwortliste:" msgid "" "This will be attached to the command line once\n" "for each keyword. %k expands to the keyword." msgstr "" "Wird für jedes Schlüsselwort einmal an die Kommandozeile\n" "angehängt. %k repräsentiert das Schlüsselwort." msgid "An item in input files list:" msgstr "Ein Eintrag in der Eingabedatei-Liste:" #, c-format msgid "" "This will be attached to the command line once\n" "for each input file. %f expands to the filename." msgstr "" "Wird für jede Eingabedatei einmal an die Kommandozeile\n" "angehängt. %f repräsentiert den Dateinamen." msgid "Source code charset:" msgstr "Zeichensatz des Quellcodes:" #, c-format msgid "" "This will be attached to the command line\n" "only if source code charset was given. %c expands to charset value." msgstr "" "Wird nur dann an die Kommandozeile angefügt, wenn der\n" "Zeichensatz des Quellcodes übergeben wurde. %c repräsentiert den Zeichensatz." msgid "Catalog properties" msgstr "Katalog-Eigenschaften" msgid "Project name and version:" msgstr "Projektname und -version:" msgid "Language team:" msgstr "Übersetzungsteam:" msgid "Plural forms:" msgstr "Pluralformen:" msgid "Use default rules for this language" msgstr "Standard-Regeln für diese Sprache verwenden" msgid "Use custom expression" msgstr "Benutzerdefinierten Ausdruck verwenden" msgid "Learn about plural forms" msgstr "Weitere Informationen zu Pluralformen" msgid "Charset:" msgstr "Zeichensatz:" msgid "Advanced Extraction Settings…" msgstr "Erweiterte Extraktionseinstellungen …" msgid "Advanced extraction settings…" msgstr "Erweiterte Extraktionseinstellungen …" msgid "Translation Properties" msgstr "Übersetzungseigenschaften" msgid "Translation properties" msgstr "Übersetzungseinstellungen" msgid "Sources Paths" msgstr "Quell-Pfade" msgid "Sources paths" msgstr "Quell-Pfade" msgid "Extract text from source files in the following directories:" msgstr "Text aus Quelldateien in den folgenden Ordnern extrahieren:" msgid "Base path:" msgstr "Ausgangspfad:" msgid "Sources Keywords" msgstr "Schlüsselwörter aus Quelltexten" msgid "Sources keywords" msgstr "Schlüsselwörter aus Quelltexten" msgid "" "Use these keywords (function names) to recognize translatable strings\n" "in source files:" msgstr "" "Diese Schlüsselwörter (Funktionsnamen) benutzen, um übersetzbare\n" "Zeichenketten in Quelldateien zu erkennen:" msgid "Also use default keywords for supported languages" msgstr "Standard-Schlüsselwörter ebenso für unterstützte Sprachen verwenden" msgid "Learn About Gettext Keywords" msgstr "Weitere Informationen zu gettext-Schlüsselwörtern" msgid "Learn about gettext keywords" msgstr "Weitere Informationen zu gettext-Schlüsselwörtern" msgid "Update summary" msgstr "Zusammenfassung der Aktualisierung" msgid "" "These strings were found in the sources but were not in the catalog.\n" "Poedit will add them to the catalog now." msgstr "" "Diese Zeichenketten wurden in den Quelldateien gefunden, aber nicht im " "Katalog.\n" "Poedit wird sie jetzt dem Katalog hinzufügen." msgid "New strings" msgstr "Neue Zeichenketten" msgid "" "These strings are no longer in the sources.\n" "Poedit will remove them from the catalog now." msgstr "" "Diese Zeichenketten befinden sich nicht mehr in den Quelldateien.\n" "Poedit wird sie jetzt aus dem Katalog entfernen." msgid "Obsolete strings" msgstr "Veraltete Zeichenketten" msgid "(0 new, 0 obsolete)" msgstr "(0 neu, 0 veraltet)" msgid "Open" msgstr "Öffnen" msgid "Save catalog" msgstr "Katalog speichern" msgid "Validate" msgstr "Prüfen" msgid "Check for errors in the translation" msgstr "Auf Fehler in der Übersetzung prüfen" msgid "Update" msgstr "Aktualisieren" msgid "Update catalog - synchronize it with sources" msgstr "Katalog aktualisieren – mit Quellen synchronisieren" msgid "Sidebar" msgstr "Seitenleiste" msgid "Show or hide the sidebar" msgstr "Seitenleiste anzeigen oder verbergen" #. TRANSLATORS: "Previous" as in used in the past, now replaced with newer. msgid "Previous source text:" msgstr "Bisheriger Quelltext:" msgid "" "The old source text (before it changed during an update) that the now-" "inaccurate translation corresponds to." msgstr "" "Der frühere Quelltext (bevor er durch eine Aktualisierung geändert wurde), " "auf den sich die jetzt unklare Übersetzung bezieht." msgid "Notes for translators:" msgstr "Anmerkungen für Übersetzer:" msgid "Add comment" msgstr "Kommentar hinzufügen" msgid "Add Comment" msgstr "Kommentar hinzufügen" msgid "Translation suggestions:" msgstr "Übersetzungsvorschläge:" #. TRANSLATORS: This is shown when no translation suggestions can be found in the TM (Windows). msgid "No matches found" msgstr "Keine Treffer gefunden" #. TRANSLATORS: This is shown when no translation suggestions can be found in the TM (macOS, Linux). msgid "No Matches Found" msgstr "Keine Treffer gefunden" msgid "This string was found in Poedit’s translation memory." msgstr "Diese Zeichenkette wurde im Übersetzungsspeicher von Poedit gefunden." msgid "Cannot create temporary directory." msgstr "Temporäres Verzeichnis konnte nicht erstellt werden." msgid "Welcome to Poedit" msgstr "Willkommen bei Poedit" #. TRANSLATORS: This is version information in about dialog, "%s" will be #. version number when used #, c-format msgid "Version %s" msgstr "Version %s" msgid "Edit a Translation" msgstr "Übersetzung bearbeiten" msgid "Edit a translation" msgstr "Übersetzung bearbeiten" msgid "Open an existing PO file and edit the translation." msgstr "Existierende PO-Datei öffnen und Übersetzung bearbeiten." msgid "" "Take an existing PO file or POT template and create a new translation from " "it." msgstr "" "Eine existierende PO-Datei oder POT-Vorlage verwenden und eine neue " "Übersetzung daraus erstellen." msgid "Collaborate on a Translation with Others" msgstr "Gemeinsam mit anderen bei einer Übersetzung mitwirken" msgid "Collaborate on a translation with others" msgstr "Gemeinsam mit anderen bei einer Übersetzung mitwirken" msgid "" "Download a file from Crowdin project, translate and sync your changes back." msgstr "" "Herunterladen einer Datei aus einem Crowdin Projekt, übersetzen und " "zurücksynchronisieren Ihrer Änderungen." msgid "What is Crowdin?" msgstr "Was ist Crowdin?" msgid "There are no translations. That’s unusual." msgstr "Es gibt keine Übersetzungen. Das ist ungewöhnlich." msgid "" "Translatable entries aren’t added manually in the Gettext system, but are " "automatically extracted\n" "from source code. This way, they stay up to date and accurate.\n" "Translators typically use PO template files (POTs) prepared for them by the " "developer." msgstr "" "Übersetzbare Einträge werden nicht manuell in das Gettext-System " "hinzugefügt, sondern automatisch aus dem \n" "Quellcode extrahiert. So bleibt immer alles aktuell und genau.\n" "Übersetzer verwenden üblicherweise PO-Vorlagen (POTs), welche von " "Programmierern vorbereitet werden." msgid "(Learn more about GNU gettext)" msgstr "(Mehr über GNU gettext erfahren)" msgid "The simplest way to fill this catalog is to update it from a POT:" msgstr "" "Der einfachste Weg, den Katalog zu aktualisieren, ist aus einer POT-Datei:" msgid "Update from POT" msgstr "Aus POT-Datei aktualisieren" msgid "Take translatable strings from an existing POT template." msgstr "Übersetzbare Zeichenketten aus existierender POT-Vorlage verwenden." msgid "" "You can also extract translatable strings directly from the source code:" msgstr "" "Sie können die zu übersetzenden Zeichenketten auch direkt aus dem Quellcode " "extrahieren:" msgid "Extract from sources" msgstr "Aus Quellcode extrahieren" msgid "Configure source code extraction in Properties." msgstr "Quellcode-Extrahierung in den Einstellungen konfigurieren." msgid "Sync" msgstr "Sync" msgid "Synchronize the translation with Crowdin" msgstr "Synchronisieren der Übersetzung mit Crowdin" #. TRANSLATORS: This is titlebar of about dialog, "%s" is application name #. ("Poedit" here, but please use "%s") #, c-format msgid "About %s" msgstr "Über %s" #. TRANSLATORS: Title of the preferences window on Windows and Linux. "%s" is replaced with "Poedit" when running. #, c-format msgid "%s Preferences" msgstr "%s-Einstellungen" #. TRANSLATORS: macOS item in app menu msgid "Services" msgstr "Dienste" #. TRANSLATORS: macOS item in app menu, %s is replaced with "Poedit" #, c-format msgid "Hide %s" msgstr "%s ausblenden" #. TRANSLATORS: macOS item in app menu msgid "Hide Others" msgstr "Andere ausblenden" #. TRANSLATORS: macOS item in app menu msgid "Show All" msgstr "Alle anzeigen" #. TRANSLATORS: macOS item in app menu, %s is replaced with "Poedit" #, c-format msgid "Quit %s" msgstr "%s beenden" #. TRANSLATORS: macOS item in app menu msgid "Preferences…" msgstr "Einstellungen …" msgid "Preferences..." msgstr "Einstellungen …" #. TRANSLATORS: Title of a category in Windows task menu (right-click icon in taskbar) msgid "Recent" msgstr "Zuletzt verwendet" #. TRANSLATORS: Title of a category in Windows task menu (right-click icon in taskbar) msgid "Frequent" msgstr "Häufig verwendet" msgid "&Apply" msgstr "&Anwenden" msgid "Apply" msgstr "Anwenden" msgid "&Back" msgstr "&Zurück" msgid "Back" msgstr "Zurück" msgid "&Cancel" msgstr "A&bbrechen" msgid "&Clear" msgstr "&Bereinigen" msgid "Clear" msgstr "Bereinigen" msgid "Copy" msgstr "Kopieren" msgid "Cu&t" msgstr "&Ausschneiden" msgid "Cut" msgstr "Ausschneiden" msgid "&Delete" msgstr "&Löschen" msgid "&Quit" msgstr "&Beenden" msgid "File" msgstr "Datei" msgid "Help" msgstr "Hilfe" msgid "&New" msgstr "&Neu" msgid "&No" msgstr "&Nein" msgid "No" msgstr "Nein" msgid "&OK" msgstr "&OK" msgid "Open…" msgstr "Öffnen …" msgid "&Open..." msgstr "Ö&ffnen …" msgid "Open..." msgstr "Öffnen …" msgid "&Paste" msgstr "E&infügen" msgid "Paste" msgstr "Einfügen" msgid "Preferences" msgstr "Einstellungen" msgid "&Redo" msgstr "&Wiederherstellen" msgid "Refresh" msgstr "Aktualisieren" msgid "&Save as" msgstr "Speichern &unter" msgid "Save as" msgstr "Speichern unter" msgid "Select &All" msgstr "&Alles auswählen" msgid "Select All" msgstr "Alles auswählen" msgid "&Undo" msgstr "&Rückgängig" msgid "&Yes" msgstr "&Ja" msgid "Yes" msgstr "Ja" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Shift+" msgstr "Umschalt+" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Enter" msgstr "Eingabe" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Up" msgstr "Hoch" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Down" msgstr "Runter" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Left" msgstr "Links" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Right" msgstr "Rechts" #. TRANSLATORS: Keyboard shortcut, must correspond to translation of "Ctrl+" msgid "ctrl" msgstr "strg" #. TRANSLATORS: Keyboard shortcut, must correspond to translation of "Alt+" msgid "alt" msgstr "alt" #. TRANSLATORS: Keyboard shortcut, must correspond to translation of "Shift+" msgid "shift" msgstr "umschalt" poedit-2.0.6/locales/be@latin.mo0000664000372000037200000001725113230132075013423 00000000000000c4Lp q } # - 'G o  A I = D M T .\          E( "n   .   * != !_    <      $+E _m   !  `Yrm_:[ #".,Q~7   ) )=U]x*'% 0JFP (-C[j !  L +LTfw,$-+Iu F    3 =JQq( 3:JhxJlChk  %4+EZFbNC+?W* B0"&S; <!XOL F:aIK]E Z)G8=^(J_>67Q\5 DH1Y#-'P4bRV[@%2/93`.$cUM ,AT (modified)&Bookmarks&Close&Edit&File&Help&Open...&Purge deleted translations&Save&Show references&Update from sources&View(0 new, 0 obsolete)(Use default language)Add directory to the listAlways change focus to text input fieldAn item in input files list:An item in keywords list:Base path:Broken catalog file: plural form msgstr used without msgid_pluralBroken catalog file: singular form msgstr used together with msgid_pluralBrowseC&atalogCancelCatalogCatalog modified. Do you want to save changes?Catalogs &managerChange UI languageCharset:Clear the commentComment:ConfirmationCreate new translations projectDeleteDelete the projectDirectories:Do you really want to do mass update of all catalogs in this project?Do you want to delete the project?EditEdit &commentEdit commentEdit projectEdit the projectEntries in the catalog are probably incorrect.Error opening file %s!Error saving catalogFailed command: %sFailed to load extracted catalog.Failed to merge gettext catalogs.Find in commentsForm %iInvocation:Language selectionLanguage:Last modifiedList of extensions separated by semicolons (e.g. *.cpp;*.h):Never let the list of strings take focus. If enabled, you must use Ctrl-arrows for keyboard navigation but you can also type text immediately, without having to press Tab to change focus.NewNew stringsOKObsolete stringsOpenOpen catalogOpen catalog templatePathsPlural:PoeditPoedit - Catalogs managerProject name and version:Project name:Purge deleted translationsReferences:SaveSave catalogSave changesSelect directoryShow summary after catalog updateSingular:Source code charset:Source fileThere were errors when loading the catalog. Some data may be missing or corrupted as the result.These strings are no longer in the sources. Poedit will remove them from the catalog now.These strings were found in the sources but were not in the catalog. Poedit will add them to the catalog now.This will be attached to the command line once for each input file. %f expands to the filename.This will be attached to the command line once for each keyword. %k expands to the keyword.TotalTranslation MemoryUndoUntransUpdateUpdate allUpdate all catalogs in the projectUpdate catalog - synchronize it with sourcesUpdate summaryWhole words onlyWindowsYou must restart Poedit for this change to take effect.Project-Id-Version: Poedit 1.6 Report-Msgid-Bugs-To: help@poedit.net POT-Creation-Date: 2017-12-05 15:52+0100 PO-Revision-Date: 2008-03-03 14:41+0200 Last-Translator: Alaksandar Navicki Language-Team: Language: be@latin MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Poedit-SourceCharset: utf-8 Plural-Forms: nplurals=3; plural=n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2; (zmadyfikavany)&ZakładkiZa&čyni&Redahuj&Fajł&Dapamoha&Adčyni...&Ačyść ad nieŭžyvanych pierakładaŭ&Zapišy&Pakazvaj spasyłki&Aktualizuj z krynicaŭ&Vyhlad(0 novych, 0 sastarełych)(Užyj zmoŭčanuju movu)Dadaj kataloh u śpisZaŭždy pierachodź da pola ŭvodu tekstuAbjekt u śpisie ŭvachodnych fajłaŭ:Abjekt u śpisie klučavych słovaŭ:Asnoŭnaja ściežka:Paškodžany fajł katalohu: množny lik z msgstr užyty biez msgid_pluralPaškodžany fajł katalohu: adzinočny lik z msgstr užyty razam z msgid_pluralPrahladajK&atalohAnulujKatalohKataloh zmadyfikavany. Zapisać źmieny?&Kiraŭnik katalohaŭŹmiani movu interfejsuNabor znakaŭ:Vyčyść hety kamentarKamentar:PaćvierdžańnieStvary novy prajekt pierakładaŭVydalVydal prajektKatalohi:Ty sapraŭdy chočaš masava aktualizavać usie katalohi ŭ hetym prajekcie?Sapraŭdy vydalić hety prajekt?RedahujRedahuj &kamentarRedahuj kamentarRedahuj prajektRedahuj prajektZapisy ŭ katalohu vierahodna niapravilnyja.Pamyłka pry adčynieńni fajłu %s!Pamyłka pry zapisie katalohuPamyłka zahadu: %sNie ŭdałosia zahruzić raspakavany katalah.Nie ŭdałosia spałuvyć katalahi gettext.Znajdzi ŭ kamentarochForma %iVyklik:Vybar movyMova:Niadaŭna zmadyfikavanaŚpis pašyreńniaŭ, padzielenych znakam ';' (naprykład: *.cpp;*.h):Nikoli nie davaj fokus śpisu radkoŭ. Kali ŭklučana, treba karystacca Ctrl+strełkami dla navihacyi z klavijatury, ale možna taksama ŭvodzić tekst adrazu, biez naciskańnia Tab, kab źmianić fokus.NovyNovyja frazyOKSastarełyja frazyAdčyniAdčyni katalohAdčyni šablon katalohuŚciežkiMnožny lik:PoeditPoedit – Kiraŭnik katalohaŭNazva prajektu i versija:Nazva prajektu:Ačyść ad nieŭžyvanych pierakładaŭSpasyłki:ZapišyZapišy katalohZapišy źmienyAbiary katalohPakazvaj padsumavańni paśla aktualizacyi katalohuAdzinočny lik:Kadavańnie kryničnaha kodu:Kryničny fajłZdarylisia pamyłki padčas zahruzki katalohu, i tamu moža nie stavać častki źviestak, albo jany mohuć być niapravilnymi.Hetych fraz u aryhinale ŭžo niama. Poedit vydalić ich zaraz z katalohu.Hetyja frazy byli znojdzienyja ŭ aryhinale, ale ich niama ŭ katalohu. Poedit dadaść ich zaraz u kataloh.Heta budzie dadadziena da zahdanaha radka dla kožnaha ŭvachodnaha fajłu. %f razhortvaje nazvu fajłu.Heta budzie dałučana da zahadnaha radka dla kožnaha klučavoha słova. %k razhortvaje klučavoje słova.UsiahoPamiać pierakładaŭViarniNiepierakłAktualizujAktualizuj usieAktualizuj usie katalohi ŭ prajekcieAktualizuj kataloh – synchranizuj jaho z krynicamiAktualizuj padsumavańnieTolki cełyja słovyWindowsKab źmieny byli zachavanyja, treba ŭruchomić prahramu Poedit znoŭ.poedit-2.0.6/locales/fr.mo0000664000372000037200000014604713230132076012323 00000000000000P%1 1 11<11J 2gW2 22 22 222 3333%3+333B3Q3W3]3f3z333333333333 3 44 4)4 04=4M4c4y44444444445 5(5D5Y5n55555555 6 '6:36:n6 666 6 666 6 7 #707?7O7c7~77777 71898'>8f88 8878689)=9g9 l9]w99A9I*:t:{:; ;;";:; U;`;.h;;;;;;;;<*<F<#[<<<<<<<<(<(=7= R=s=|== ==/= = >>#>9>L>b>2>>>>> ?)???????@@@ 2@?@R@Ee@"@?@ AA*.A YAfAyAK~A"A5A#B)BHAH HHI 'IHI PI ]IiI"nI;I(IIJ&J 5J ?JMJjJ ~JJJJJ JJK:K PK<^K.KKKKLL*%LPLVLgL xL LLJMNMgM MMMMM#MM'M$N7DN$|N%NNNNNNOOOO O2O P#P9PNP]PlPtP|PPPPPPPPQQQnQERZR>aR RRRR@RS-Tx Vx`xixxxx xxxxx x xyy,y1y5yDy Sy ^yiyqyyyyy#y#yz &z 1z lv҉R DJeÊ<Ԋ$5[9.Cċ&/HayԌ  >-}l ,5 ($-RZ_n5-؏'. MY4u*+Ր;=%E;ky !+;CYq !ϒ/BVl u   œӓ ؓ"+NQ$C^ } &:ԕ-=Wl ,#Ζ)(F#oKėJ GkȘ#ݘ!*FL_ r ~++ǚ8<,[+4ӛ<3E2yɜ̜.؝ߝ8.g{Ҟ  " 9Ga|%!GO[Р,M4 $N̡(8D} 3 . ;Whq$z ¥ ҥ ݥ  ,.9h(y @J Q]rŧ 4 *UҨ &<X's8ԩ + ;Hcs Ъ 6I[$q,H Yzլei ׭ ~ 5B'\&կ*9UZX=+3E$29WL`޴|?n,+xXaѶ-3HaBT6B0y,^/61?$@d53_iwɻAV@eƽM,zAZHi~XAG-W&&5Pl ~6;O-W ,;(5(^ ^1`#&$:0=sn" ) 4Uk,`X`B @GD"(#K*o-D}],6 9BW6tC3H>C'# )h?*Kq#-0^aG2zFYblx&2LADZ.EwPi=Ab[kv @4uh~ uL@|pnf.nTN? QI2:qOKcajd F!p ]U>T+rXi=J%Vxz51^s4 NH/F"8/XJ`om #UwQk :Gs$ 8jL!~I1,(<D-9B>|;$H(E?g<y!dYgIo \ <eN+rM5&cM5 :"K-A+EmZ7C"603B $%RfRVeyOG*S@ M,4}_{O%W91J)S[`' 7)v &;*{(l_.03=\7P8/t';P (modified) (unsaved)%d entry%d entries%d entry was pre-translated.%d entries were pre-translated.%d error%d errors%d issue with the translation found.%d issues with the translation found.%i line of file “%s” was not loaded correctly.%i lines of file “%s” were not loaded correctly.%s Format%s Preferences%s format&About&About Poedit&Apply&Back&Bookmarks&Cancel&Clear&Close&Copy&Delete&Done and Next&Done and next&Edit&File&Find…&GNU gettext Manual&GNU gettext manual&Go&Group By Context&Group by context&Help&New&New…&Next >&Next Translation&Next translation&No&OK&Online Help&Online help&Open...&Open…&Paste&Preferences&Preferences…&Previous Translation&Previous translation&Properties…&Purge Deleted Translations&Purge deleted translations&Quit&Redo&Replace&Save&Save as&Show References&Show references&Undo&Untranslated Entries First&Untranslated entries first&Update from Sources&Update from sources&Validate Translations&Validate translations&View&Yes(0 new, 0 obsolete)(Learn more about GNU gettext)(New: %i, obsolete: %i)(Use default language)(requires Windows 8 or newer)< &PreviousDrag and Drop Folders Here or use the + buttonDrag and drop folders here or use the + buttonAbout %sAccountsAdd CommentAdd Files…Add Folders…Add Wildcard…Add commentAdd directory to the listAdd files…Add folders…Add wildcard…Additional keywordsAdditional xgettext flags:AdvancedAdvanced Extraction Settings…Advanced extraction settingsAdvanced extraction settings…All Translation FilesAll commentsAlso use default keywords for supported languagesAlt+Always change focus to text input fieldAn item in input files list:An item in keywords list:AppearanceApplyAre you sure you want to delete the “%s” extractor?Are you sure you want to reset the translation memory?Automatically check for updatesAutomatically compile MO file when savingBackBase path:Beta versions contain the latest new features and improvements, but may be a bit less stable.Bring All to FrontBroken catalog file: plural form msgstr used without msgid_pluralBroken catalog file: singular form msgstr used together with msgid_pluralBrowseBy default, inaccurate results are filled in as well and marked as needing work. Check this option to only include accurate matches.C&atalogC&learCancelCannot create temporary directory.Cannot execute program: %sCapitalizeCatalogCatalog modified. Do you want to save changes?Catalog propertiesCatalogs &ManagerCatalogs &managerCatalogs ManagerChange UI languageCharset:Check Document NowCheck Grammar With SpellingCheck Spelling While TypingCheck for Updates…Check for errors in the translationCheck for updates…Check spellingClearClear TranslationClear the commentClear translationCloseCollaborate on a Translation with OthersCollaborate on a translation with othersCollecting source files…Command to extract translations:Comment:Comments prefixed with:Compile to MO…Compile to…Compiled Translation FilesConfigure source code extraction in Properties.ConfirmationCopyCopy From SingularCopy from Source TextCopy from singularCopy from source textCorrect Spelling AutomaticallyCouldn’t load file %s, it is probably corrupted.Couldn’t save file %s.Create New TranslationCreate new translationCreate new translations projectCrowdin errorCrowdin is an online localization management platform and collaborative translation tool. Poedit can seamlessly sync PO files managed at Crowdin.Ctrl+Cu&tCustom Extractors:Custom extractors:CutDatabase size on disk:DeleteDelete extractorDelete the projectDirectories:Display Entry &IDsDisplay entry &IDsDo you really want to do mass update of all catalogs in this project?Do you want to delete the project?Do you want to remove all translations that are no longer used?Don’t SaveDon’t Show AgainDon’t mark exact matches as needing workDon’t saveDon’t show againDownDownload a file from Crowdin project, translate and sync your changes back.Downloading latest translations…Downloading translations is disabled in this project.E&xitE&xport as HTML…EditEdit &CommentEdit &commentEdit CommentEdit a TranslationEdit a translationEdit commentEdit projectEdit the projectEditingEdit…Email:EnterEnter Full ScreenEntries in the catalog are probably incorrect.Entries in this catalog have different plural forms count from what catalog’s Plural-Forms header saysEntries with Errors FirstEntries with errors firstEntries with errors were marked in red in the list. Details of the error will be shown when you select such an entry.Error loading message catalog file “%s”.Error opening fileError opening file %s!Error saving catalogErrorsEverythingExcluded pathsExport as…Extract from sourcesExtract notes for translators from:Extract text from source files in the following directories:Extracting translatable strings…Extractor setupExtractorsFailed command: %sFailed to communicate with Poedit process.Failed to load extracted catalog.Failed to merge gettext catalogs.Failed to update translation memory: %sFileFile “%s” doesn’t exist.File “%s” is not a message catalog.File “%s” is read-only and cannot be saved. Please save it under different name.File:Finalizing…FindFind NextFind PreviousFind and Replace…Find in commentsFind in source textsFind in translationsFind nextFind previousFix LanguageFix languageFix the HeaderFix the headerForm %iFrequentGNU gettextGeneralGo to Bookmark %iGo to bookmark %iHTML FilesHelpHide %sHide OthersHide SidebarHide Status BarHide this notification messageIDIf you continue with purging, all translations marked as deleted will be permanently removed. You will have to translate them again if they are added back in the future.Ignore caseImporting translations…Include beta versionsInformation about the translatorInstallInvalid fileInvocation:KeepLanguage Code or Name (e.g. en_GB)Language of the translation is the same as source language.Language of the translation isn’t set.Language of the translation:Language selectionLanguage team:Language:Last modifiedLearn About Gettext KeywordsLearn From Files…Learn MoreLearn More About CrowdinLearn about gettext keywordsLearn about plural formsLearn from files…Learn moreLearn more about CrowdinLeftLine %d of file “%s” is corrupted (not valid %s data).Line endings:List of extensions separated by semicolons (e.g. *.cpp;*.h):MO files can’t be directly edited in Poedit.Make Lower CaseMake Upper CaseMalformed header: “%s”Merging differences…MinimizeName of the project the translation is forName:Ne&xt UnfinishedNe&xt unfinishedNeeds WorkNeeds workNever let the list of strings take focus. If enabled, you must use Ctrl-arrows for keyboard navigation but you can also type text immediately, without having to press Tab to change focus.NewNew From &POT/PO File…New from &POT/PO file…New stringsNext Plural FormNext plural formNoNo Matches FoundNo entries could be pre-translated.No matches foundNo problems with the translation found.No references for the selected item.No translation projects listed in your Crowdin account.Not all plural forms are translated.Not authorized, please sign in again.Notes for translators:OKObsolete stringsOneOnly enable if you trust the quality of your TM. By default, all matches from the TM are marked as needing work and should be reviewed before use.Only fill in exact matchesOpenOpen Crowdin translationOpen From Crowdin…Open RecentOpen an existing PO file and edit the translation.Open catalogOpen catalog templateOpen from Crowdin…Open in EditorOpen in editorOpen...Open…OptionsOtherP&revious UnfinishedP&revious unfinishedPO TranslationPO Translation FilesPOT Translation TemplatesPOT files are only templates and don’t contain any translations themselves. To make a translation, create a new PO file based on the template.PastePaste and Match StylePathsPlease open and edit the corresponding PO file instead. When you save it, the MO file will be updated as well.Please save the file first. This section cannot be edited until then.PluralPlural forms expression used by the catalog is unusual for %s.Plural forms:Plural:PoeditPoedit - Catalogs managerPoedit automatically fixed invalid content in the file “%s”.Poedit can attempt to fill in new entries from only previous translations in the file or from your entire translation memory. Using the TM won’t be very effective if it’s near-empty, but it will get better as you add more translations to it.Poedit is an easy to use translations editor.Pre-&translate…Pre-translatePre-translatedPre-translated %u stringPre-translated %u stringsPre-translating…Pre-translation automatically finds exact or fuzzy matches for untranslated strings in the translation memory and fills in their translations.PreferencesPreferences...Preferences…Preserve formatting of existing filesPrevious Plural FormPrevious plural formPrevious source text:Project name and version:Project name:Project:PurgePurge deleted translationsQuitQuit %sRecentRedoReferences:RefreshRemaining: %dReplaceReplace &AllReplace &allReplacement stringReplace…Required header Plural-Forms is missing.ResetReset translation memoryResetting the translation memory will irrevocably delete all stored translations from it. You can’t undo this operation.ReviewRightSaveSave &As…Save &as…Save asSave as…Save catalogSave changesSelect &AllSelect AllSelect directorySelect translation files to importSelect your preferred languageServicesSet Bookmark %iSet LanguageSet bookmark %iSet languageShift+Show AllShow SidebarShow Spelling and GrammarShow Status BarShow SubstitutionsShow or hide the sidebarShow sidebarShow status barShow summary after catalog updateSidebarSign InSign OutSign inSign in to CrowdinSign outSigned in as:SingularSingular:Smart Copy/PasteSmart DashesSmart LinksSmart QuotesSort by &File OrderSort by &SourceSort by &TranslationSort by &file orderSort by &sourceSort by &translationSource code charset:Source code extractors are used to find translatable strings in the source code files and extract them so that they can be translated.Source code not available.Source fileSource file occurrence:Source textSource text — %sSource text:Sources KeywordsSources PathsSources keywordsSources pathsSpeechSpellchecking is disabled, because the dictionary for %s isn’t installed.Spelling and GrammarStart SpeakingStop SpeakingStored translations:String to findSubstitutionsSuggestionsSuggestions are not available if the translation language is not set correctly. Other features, such as plural forms, may be affected as well.Supports all programming languages recognized by GNU gettext tools (PHP, C/C++, C#, Perl, Python, Java, JavaScript and others).SyncSync with CrowdinSynchronize the translation with CrowdinSyncingSyncing errorSyncing with %s failed.Syncing with %s…Syncing with Crowdin failed.Syntax error in Plural-Forms header ("%s").TMTake an existing PO file or POT template and create a new translation from it.Take translatable strings from an existing POT template.Team name and email address or URLText ReplacementThe TM doesn’t contain any strings similar to the content of this file. It is only effective for semi-automatic translations after Poedit learns enough from files that you translated manually.The catalog couldn’t be saved in “%s” charset as specified in catalog settings. It was saved in UTF-8 instead and the setting was modified accordingly.The file cannot be compiled into the MO format and used.The file cannot be opened.The file contained duplicate items, which is not allowed in PO files and would prevent the file from being used. Poedit fixed the issue, but you should review translations of any items marked as needing work and correct them if necessary.The file may be either corrupted or in a format not recognized by Poedit.The file was compiled into the MO format, but it will probably not work correctly.The file was saved safely and compiled into the MO format, but it will probably not work correctly.The file was saved safely, but it cannot be compiled into the MO format and used.The file was saved safely.The old source text (before it changed during an update) that the now-inaccurate translation corresponds to.The simplest way to fill this catalog is to update it from a POT:The translation doesn’t start with a space.The translation ends with a newline, but the source text doesn’t.The translation ends with a space, but the source text doesn’t.The translation ends with “%s”, but the source text ends with “%s”.The translation is missing a newline at the end.The translation is missing a space at the end.The translation is ready for use, but %d entry is not translated yet.The translation is ready for use, but %d entries are not translated yet.The translation is ready for use.The translation should end with “%s”.The translation should not end with “%s”.The translation should start as a sentence.The translation should start with a lowercase character.The translation starts with a space, but the source text doesn’t.The translations were marked as needing work, because they may be inaccurate. You should review them for correctness.There are no translations. That’s unusual.There was a problem formatting the file nicely (but it was saved all right).There were errors when loading the catalog. Some data may be missing or corrupted as the result.These settings affect internal formatting of PO files. Adjust them if you have specific requirements e.g. because of version control.These strings are no longer in the sources. Poedit will remove them from the catalog now.These strings were found in the sources but were not in the catalog. Poedit will add them to the catalog now.This catalog has entries with plural forms, but doesn’t have Plural-Forms header configured.This file can only be edited in Crowdin’s web interface.This is the command used to launch the extractor. %o expands to the name of output file, %K to list of keywords, %F to list of input files, %C to charset flag (see below).This project has no files that can be translated in Poedit.This string was found in Poedit’s translation memory.This will be attached to the command line only if source code charset was given. %c expands to charset value.This will be attached to the command line once for each input file. %f expands to the filename.This will be attached to the command line once for each keyword. %k expands to the keyword.TotalTransformationsTranslatable entries aren’t added manually in the Gettext system, but are automatically extracted from source code. This way, they stay up to date and accurate. Translators typically use PO template files (POTs) prepared for them by the developer.Translated: %d of %d (%d %%)Translation LanguageTranslation MemoryTranslation Needs &WorkTranslation PropertiesTranslation needs &workTranslation propertiesTranslation suggestions:Translation — %sTranslation:Translations couldn’t be updated from the source code, because no code was found in the location specified in the catalog’s Properties.TwoUTF-8 (recommended)UndoUnhandled exception occurred: %sUnix (recommended)UntransUpUpdateUpdate allUpdate all catalogs in the projectUpdate catalog - synchronize it with sourcesUpdate from &POT File…Update from &POT file…Update from POTUpdate summaryUpdatesUpdating catalogUpdating failedUpdating the catalog failed. Click on 'Details >>' for details.Updating user information…Uploading translations…Use custom expressionUse custom list font:Use custom text fields font:Use default rules for this languageUse these keywords (function names) to recognize translatable strings in source files:Use translation memoryValidateValidation resultsVersion %sWaiting for authentication…Welcome to PoeditWhat is Crowdin?When updating from sourcesWhole words onlyWindowWindowsWrap aroundWrap at:YesYou can also extract translatable strings directly from the source code:You can’t drop more than one file on Poedit window.You must restart Poedit for this change to take effect.Your NameYour changes will be lost if you don’t save them.Your name and email address are only used to set the Last-Translator header of GNU gettext files.ZeroZoomaltctrldon’t delete temporary files (for debugging)e.g. nplurals=2; plural=(n > 1);fuzzy match within the filego to item at given line numberhandle a poedit:// URIpre-translate from TMshiftunknown languageyour_email@example.com“%s” is not a valid POT file.Project-Id-Version: poedit Report-Msgid-Bugs-To: help@poedit.net POT-Creation-Date: 2017-12-05 15:52+0100 PO-Revision-Date: 2018-01-18 07:55-0500 Last-Translator: vslavik Language-Team: French Language: fr_FR MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=(n > 1); X-Generator: crowdin.com X-Crowdin-Project: poedit X-Crowdin-Language: fr X-Crowdin-File: /locales/poedit.pot (modifié) (non enregistré)%d entrée%d entrées%d entrée a été pré-traduite.%d entrées ont été pré-traduites.%d erreur%d erreurs%d problème trouvé dans la traduction.%d problèmes trouvés dans la traduction%i ligne du fichier « %s » n’a pas été chargée correctement.%i lignes du fichier « %s » n’ont pas été chargées correctement.Format %sPréférences de %sformat %s&À propos&À propos de Poedit&AppliquerRetour&Marque-pagesAnnulerEffa&cer&Fermer&Copier&Supprimer&Appliquer et continuer&Appliquer et continuer&Édition&Fichier&Rechercher…Manuel de &GNU gettextManuel de &GNU gettext&Aller à&Grouper par contexte&Grouper par contexte&Aide&Nouveau&Nouveau…&Suivant >Traduction suiva&nteTraduction suiva&nte&Non&OK&Aide en ligne&Aide en ligne&Ouvrir...&Ouvrir…&Coller&Préférences&Préférences…Traduction &précédenteTraduction &précédente&Propriétés…&Purger les traductions supprimées&Purger les traductions supprimées&Quitter&Rétablir&Remplacer&Enregistrer&Enregistrer sousVoir les référence&sVoir les référence&sAnn&ulerEntrées &non traduites en premierEntrées &non traduites en premierMettre à jo&ur depuis les sourcesMettre à jo&ur depuis les sources&Valider les traductions&Valider les traductions&AffichageOui(0 nouvelle, 0 obsolète)(En savoir plus sur GNU gettext)(Nouvelle : %i, obsolète : %i)(Utiliser la langue par défaut)(nécessite Windows 8 ou plus récent)< &PrécédentGlissez-déposez les dossiers ici ou utilisez le bouton +Glissez-déposez les dossiers ici ou utilisez le bouton +À propos de %sComptesAjouter un commentaireAjouter des fichiers…Ajouter des dossiers…Ajouter un caractère générique…Ajouter un commentaireAjouter un répertoire à la listeAjouter des fichiers…Ajouter des dossiers…Ajouter un caractère générique…Mots clés supplémentairesIndicateurs additionnels xgettext :AvancésRéglages avancés d’extraction…Réglages avancés d’extractionRéglages avancés d’extraction…Tous les fichiers de traductionTous les commentairesUtiliser également les mots-clés par défaut pour les langues supportéesAlt+Toujours activer la zone de saisie du texteUn élément de la liste des fichiers d’entrée :Un élément de la liste des mots clés :ApparenceAppliquerÊtes-vous sûr de vouloir supprimer l’extracteur « %s » ?Voulez-vous vraiment réinitialiser la mémoire de traduction ?Rechercher automatiquement les mises à jourCompiler automatiquement le fichier MO lors de l'enregistrementRetourChemin de base :Les versions bêta contiennent les dernières nouveautés et améliorations, mais elles peuvent être un peu moins stables.Tout passer au premier planCatalogue corrompu : forme plurielle msgstr utilisée sans msgid_pluralCatalogue corrompu : forme singulière msgstr utilisée conjointement avec msgid_pluralParcourirPar défaut, les résultats approximatifs sont inclus et marqués comme nécessitant une révision. Cochez cette option pour inclure uniquement les correspondances exactes.C&atalogue&EffacerAnnulerImpossible de créer le répertoire temporaire.Impossible d’exécuter le programme : %sMettre en majusculeCatalogueLe catalogue a été modifié. Voulez-vous enregistrer les modifications ?Propriétés du catalogueGestionnaire des &cataloguesGestion des &cataloguesGestionnaire de cataloguesChanger la langue de l’interfaceJeu de caractères :Vérifier le document maintenantVérifier la grammaire et l'orthographeVérifier l'orthographe lors de la frappeRechercher des mises à jour…Vérifier les erreurs dans la traductionRechercher des mises à jour…Vérifier l’orthographeEffacerEffacer la traductionEffacer le commentaireEffacer la traductionFermerCollaborer à une traduction avec d’autresCollaborer à une traduction avec d’autresCollecte des fichiers sources…Commande pour extraire des traductions :Commentaire :Les commentaires sont précédés par :Compiler vers MO…Compilation…Fichiers de traduction compilésConfigurer l’extraction du code source dans les Propriétés.ConfirmationCopierCopier du singulierCopier à partir du texte originalCopier du singulierCopier depuis le texte originalCorriger l’orthographe automatiquementÉchec du chargement du fichier %s : il est probablement corrompu.Impossible d’enregistrer le fichier %s.Créer une nouvelle traductionCréer une nouvelle traductionCréer un nouveau projet de traductionErreur CrowdinCrowdin est une plateforme de gestion de localisation en ligne et un outil de traduction collaborative. Poedit peut synchroniser les fichiers PO pris en charge sur Crowdin.Ctrl+CouperExtracteurs personnalisés :Extracteurs personnalisés :CouperTaille de la base de données sur le disque :SupprimerSupprimer l’extracteurSupprimer le projetRépertoires :Afficher les &IDs des entréesAfficher les &IDs des entréesVoulez-vous vraiment faire une mise à jour de tous les catalogues de ce projet ?Voulez-vous effacer ce projet ?Voulez-vous supprimer toutes les traductions qui ne sont plus utilisées ?Ne pas enregistrerNe plus afficherNe pas marquer les correspondances exactes comme à réviserNe pas enregistrerNe plus afficherBasTélécharger un fichier d’un projet Crowdin, traduire et synchroniser vos modifications.Téléchargement des dernières traductions...Le téléchargement des traductions est désactivé dans ce projet.&QuitterE&xporter en HTML…ModifierModifier le &commentaireModifier le &commentaireModifier le commentaireModifier une traductionModifier une traductionModifier le commentaireModifier le projetModifier le projetModificationModifier…E-mail :EntréePasser en mode plein écranCertaines entrées du catalogue sont probablement incorrectes.Les entrées dans ce catalogue ont un nombre de formes plurielles différent de celui indiqué dans l’en-tête Plural-FormsEntrées avec erreurs en premierEntrées avec erreurs en premierLes entrées comportant des erreurs ont été marquées en rouge dans la liste. Sélectionnez-les pour en afficher les détails.Erreur au chargement du fichier catalogue « %s ».Erreur à l'ouverture du fichierErreur à l’ouverture du fichier %s !Erreur d'enregistrement du catalogueErreursToutChemins exclusExporter en tant que…Extraire depuis les sourcesExtrait les notes pour les traducteurs à partir de :Extraire le texte des répertoires suivants :Extraction des chaînes traduisibles…Installation de l’extracteurExtracteursÉchec de la commande : %sÉchec de la communication avec le processus Poedit.Échec du chargement du catalogue extrait.Échec de la fusion des catalogues gettext.Échec de la mise à jour de la mémoire de traduction : %sFichierLe fichier « %s » n’existe pas.Le fichier « %s » n’est pas un catalogue de messages.Le fichier « %s » est en lecture seule et ne peut être enregistré. Veuillez l’enregistrer sous un nom différent.Fichier :Finalisation…TrouverRechercher le suivantChercher le précédentRechercher et remplacer…Rechercher dans les commentairesTrouver dans les textes originauxTrouver dans les traductionsRechercher le suivantRechercher le précédentCorriger la langueCorriger la langueCorriger l'en-têteCorriger l’en-têteForme %iFréquentGNU gettextGénéralAller au marque page %iAller au marque page %iFichiers HTMLAideMasquer %sMasquer le resteMasquer le panneau latéralMasquer la barre d’étatMasquer ce message de notificationIDSi vous validez l’épuration, toutes les traductions marquées comme supprimées seront définitivement effacées. Il faudra les traduire à nouveau si elles sont réintroduites par la suite.Ignorer la casseImportation des traductions…Inclure les versions bêtaInformations sur le traducteurInstallerFichier non valideAppel :ConserverCode ou nom de la langue (p.ex. fr_FR)La langue de traduction est identique à la langue source.La langue de traduction n’est pas définie.Langue de la traduction :Sélection de langueÉquipe de langue :Langue :Dernière modificationEn savoir plus sur les mots-clés de GettextApprendre à partir des fichiers…En savoir plusEn savoir plus sur CrowdinEn savoir plus sur les mots clés gettextEn savoir plus sur les formes pluriellesApprendre à partir des fichiers…En savoir plusEn savoir plus sur CrowdinGaucheLa ligne %d du fichier « %s » est corrompue (données %s non valides).Fins de ligne :Liste des extensions séparées par des points-virgules (ex. *.cpp;*.h) :Les fichiers MO ne peuvent pas être directement modifiés dans Poedit.Mettre en minusculesMettre en majusculesEn-tête mal formée : « %s »Intégration des changements…RéduireNom du projet de traductionNom :Incomplet suivan&tIncomplet suivan&tÀ réviserÀ réviserNe laisse jamais le focus à la liste des chaînes. Si activé, il vous faut utiliser les touches Ctrl+flèches pour une navigation au clavier, mais vous pouvez aussi taper du texte directement, sans avoir à utiliser la touche de tabulation pour changer le focus.NouveauNouveau à partir d’un fichier &POT/PO…Nouveau à partir d’un fichier &POT/PO…Nouvelles chaînesForme plurielle suivanteForme plurielle suivanteNonAucune correspondance trouvéeAucune entrée n’a pu être pré-traduite.Aucune correspondance trouvéeAucun problème trouvé dans la traduction.Aucune référence pour l’élément sélectionné.Aucun projet de traduction listé dans votre compte Crowdin.Toutes les formes plurielles ne sont pas traduites.Non autorisé, veuillez vous connecter à nouveau.Notes pour les traducteurs :OKChaînes obsolètesUnÀ activer uniquement si vous êtes sûr de la qualité de votre MT. Par défaut, toutes les correspondances de la MT sont marquées comme à réviser et doivent être examinées avant utilisation.Remplir uniquement les correspondances exactesOuvrirOuvrir la traduction CrowdinOuvrir à partir de Crowdin…Récemment ouvertsOuvrir un fichier PO existant et modifier la traduction.Ouvrir un catalogueOuvrir un modèle de catalogueOuvrir à partir de Crowdin…Ouvrir dans l’ÉditeurOuvrir dans l'éditeurOuvrir...Ouvrir…OptionsAutreIncomplet p&récédentIncomplet p&récédentTraduction POFichiers de traduction POModèles de traduction POTLes fichiers POT ne sont que des modèles et ne contiennent pas de traductions. Pour faire une traduction, créez un nouveau fichier PO à partir du modèle.CollerColler en conservant la mise en formeCheminsVeuillez ouvrir et éditer le fichier PO correspondant. Lorsque vous l'enregistrerez, le fichier MO sera également mis à jour.Veuillez d’abord enregistrer le fichier. Cette section ne peut pas être modifiée avant.PlurielLes formes plurielles utilisées par le catalogue sont inhabituelles pour %s.Formes plurielles :Pluriel :PoeditPoedit - Gestionnaire des cataloguesPoedit a automatiquement corrigé le contenu non valide du fichier « %s ».Poedit peut essayer de remplir les nouvelles entrées uniquement depuis les précédentes traductions de ce fichier ou depuis votre mémoire de traduction. Pour que la MT soit performante, il faut qu’elle contienne le plus possible de traductions, car à moitié vide elle ne sera pas efficace.Poedit est un logiciel de traduction simple à utiliser.Pré-&traduire…Pré-traductionPré-traduit%u chaîne pré-traduite%u chaînes pré-traduitesPré-traduction…La pré-traduction automatique trouve dans la MT des correspondances exactes ou approximatives pour les entrées non traduites afin de les remplir.PréférencesPréférences...Préférences…Préserver le formatage des fichiers existantsForme plurielle précédenteForme plurielle précédenteTexte source précédent :Nom et version du projet :Nom du projet :Projet :NettoyerNettoyer les traductions suppriméesQuitterQuitter %sRécentRefaireRéférences :ActualiserRestant : %dRemplacerRemplacer &tout&Tout remplacerChaîne de remplacementRemplacer…L’en-tête requise Plural-Forms est absente.Réinitialiser Réinitialiser la mémoire de traductionLa réinitialisation de la mémoire de traduction supprimera définitivement toutes les traductions qui y sont stockées. Cette opération est irréversible.VérifierDroiteEnregistrerEnregistrer &sous…Enregistrer &sous…Enregistrer sousEnregistrer sous…Enregistrer le catalogueEnregistrer les modificationsTout sélectionnerTout sélectionnerChoisir un répertoireSélectionner les fichiers de traduction à importerSélectionnez votre langue de préférenceServicesDéfinir le marque page %iDéfinir la langueDéfinir le marque page %iDéfinir la langueMaj+Tout afficherAfficher le panneau latéralAfficher l'orthographe et la grammaireAfficher la barre d’étatAfficher les substitutionsAfficher ou masquer le panneau latéralAfficher le panneau latéralAfficher la barre d’étatAfficher le résumé après la mise à jour du cataloguePanneau latéralSe connecterSe déconnecterSe connecterConnectez-vous sur CrowdinSe déconnecterConnecté en tant que :SingulierSingulier :Copier/coller intelligent Tirets intelligentsLiens intelligentsGuillemets intelligentsTrier par &fichierTrier par &sourceTrier par &traductionTrier par &fichierTrier par &sourceTrier par &traductionJeu de caractères du code source :Les extracteurs de code source sont utilisés pour rechercher et extraire les chaînes traduisibles des fichiers du code source afin de les traduire.Code source non disponible.Fichier originalPrésence du fichier original :Texte originalTexte original — %sTexte source :Mots-clés sourcesChemins des sourcesMots clés sourcesChemins des sourcesDicterLa vérification orthographique est désactivée, car le dictionnaire pour le %s n'est pas installé.Orthographe et GrammaireCommencer à dicterArrêter de dicterTraductions stockées :Chaîne à rechercherSubstitutionsSuggestionsLes suggestions ne sont pas disponibles si la langue de traduction n’est pas définie correctement. Les autres fonctionnalités, comme les formes plurielles, peuvent également être affectées.Supporte tous les langages de programmation des outils GNU gettext (PHP, C/C++, C#, Perl, Python, Java, JavaScript et autres).SynchroniserSynchroniser avec CrowdinSynchroniser la traduction avec CrowdinSynchronisationErreur de synchronisationLa synchronisation avec %s a échoué.Synchronisation avec %s…Échec de la synchronisation avec Crowdin.Erreur de syntaxe dans l’en-tête Plurial-Forms ("%s").MTCréer une nouvelle traduction à partir d’un fichier PO ou d’un modèle POT existant.Utiliser les chaînes traduisibles d'un modèle POT existant.Nom de l’équipe et adresse e-mail ou URLTexte de remplacementLa MT ne contient aucune chaîne identique au contenu de ce fichier. C'est effectif uniquement pour des traductions semi-automatiques après que Poedit ait appris suffisamment de fichiers traduits manuellement.Le catalogue n’a pas pu être enregistré avec le jeu de caractères « %s » spécifié dans les paramètres du catalogue. Le jeu UTF-8 a été utilisé en remplacement et la configuration a été modifiée en conséquence.Le fichier ne peut pas être compilé au format MO et être utilisé.Le fichier ne peut pas être ouvert.Le fichier contenait des éléments dupliqués, ce qui n’est pas autorisé dans les fichiers PO et empêcherait le fichier d'être utilisé. Poedit a résolu le problème, mais vous devriez examiner les traductions de tous les éléments marqués comme nécessitant une révision et les corriger si nécessaire.Le fichier est peut-être corrompu ou dans un format non reconnu par Poedit.Le fichier a été compilé au format MO, mais il ne fonctionnera probablement pas correctement.Le fichier a été enregistré avec succès et compilé au format MO, mais il ne fonctionnera probablement pas correctement.Le fichier a été enregistré avec succès, mais il ne peut ni être compilé au format MO ni être utilisé.Le fichier a été enregistré avec succès.L’ancien texte source (avant sa modification lors d’une mise à jour) auquel correspond la traduction approximative.La façon la plus simple de remplir ce catalogue est de le mettre à jour depuis un fichier POT :La traduction ne commence pas par une espace.La traduction se termine par un saut de ligne, mais pas le texte source.La traduction se termine par une espace, mais pas le texte source.La traduction se termine par ”%s”, mais le texte source se termine par ”%s”.Il manque un saut de ligne à la fin de la traduction.Il manque une espace à la fin de la traduction.La traduction est prête à être utilisée, mais %d entrée n'est pas encore traduite.La traduction est prête à être utilisée, mais %d entrées ne sont pas encore traduites.La traduction est prête à être utilisée.La traduction devrait se terminer par ”%s”.La traduction ne devrait pas se terminer par ”%s”.La traduction devrait commencer comme une phrase.La traduction devrait commencer par un caractère en minuscule.La traduction commence par une espace, mais pas le texte source.Les traductions ont été marquées comme à réviser car il est possible quelles soient imprécises. Vous devriez vérifier leur exactitude.Il n’y a aucune traduction. Ce n’est pas courant.Il y a eu un problème lors du formatage du fichier (mais il a été enregistré correctement).Il y a eu des erreurs lors du chargement du catalogue. Il se pourrait que des données soient manquantes ou corrompues.Ces paramètres modifient la mise en forme interne des fichiers PO. Ajustez-les si vous avez des exigences spécifiques, par exemple en raison du contrôle de version.Ces chaînes ne sont plus dans les sources. Poedit les retire maintenant du catalogue.Ces chaînes ont été trouvées dans les sources mais n’existent pas dans le catalogue. Poedit les ajoute maintenant au catalogue.Ce catalogue possède des entrées au pluriel, mais aucune en-tête Plural-Forms n’est configurée.Ce fichier ne peut être modifié qu'à partir de l'interface web de Crowdin.Cette commande est utilisée pour lancer l’extracteur. %o pour étendre au nom du fichier de sortie, %K pour lister les mots-clés, %F pour lister les fichiers d’entrée, %C pour le jeu de caractères (voir ci-dessous).Ce projet n'a aucun fichier qui puisse être traduit avec Poedit.Cette chaîne a été trouvée dans la mémoire de traduction de Poedit.Sera inséré dans la ligne de commande uniquement si le code source du jeu de caractères est fourni. %c s’étend à la valeur du jeu de caractères.Sera inséré dans la ligne de commande pour chaque fichier d’entrée. %f s’étend au nom du fichier.Sera inséré dans la ligne de commande pour chaque mot-clé. %k s’étend au mot-clé.TotalTransformationsLes entrées traduisibles ne sont pas ajoutées manuellement au système Gettext, mais sont extraites automatiquement à partir du code source. De cette façon, elles restent à jour et exactes. Les traducteurs utilisent généralement des fichiers de modèle PO (POTs) préparés par le développeur.Traduit : %d de %d (%d %%)Langue de traductionMémoire de traductionTraduction nécessitant une &révisionPropriétés de traductionTraduction nécessitant une &révisionPropriétés de traductionSuggestions de traduction :Traduction — %sTraduction :Les traductions n'ont pas pu être mises à jour à partir du code source, car aucun code n'a été trouvé à l'emplacement précisé dans les propriétés du catalogue.DeuxUTF-8 (recommandé)AnnulerUne exception non gérée s'est produite : %sUnix (recommandé)Non traduitHautMettre à jourTout mettre à jourMettre à jour tous les catalogues du projetMettre à jour le catalogue - Synchroniser avec les sourcesMettre à jour depuis un fichier &POT…Mettre à jour depuis un fichier &POT…Mettre à jour depuis un POTMettre à jour le résuméMises à jourMise à jour du catalogueÉchec de la mise à jourLa mise à jour du catalogue a échoué. Cliquez sur « Détails >> » pour en savoir plus.Mise à jour des informations de l'utilisateur...Téléchargement des traductions...Utiliser une expression personnaliséeUtiliser une police personnalisée :Utiliser une police personnalisée pour les champs texte :Utiliser les règles par défaut de cette langueUtiliser ces mots-clés (noms de fonctions) pour reconnaître les chaînes traduisibles dans les fichiers sources :Utiliser la mémoire de traductionValiderRésultats de la validationVersion %sEn attente d'authentification...Bienvenue dans PoeditQu’est-ce que Crowdin ?Lors de l’actualisation depuis les sourcesMots entiers uniquementFenêtreWindowsBouclerPasser à la ligne à :OuiVous pouvez également extraire les chaînes traduisibles directement à partir du code source :Il est impossible de déposer plus d’un fichier à la fois dans la fenêtre de Poedit.Vous devez redémarrer Poedit pour que ce changement prenne effet.Votre nomVos modifications seront perdues si vous ne les enregistrez pas.Votre nom et votre adresse e-mail sont uniquement utilisés pour définir l’en-tête Last-Translator des fichiers de GNU gettext.ZéroAgrandiraltctrlne pas supprimer les fichiers temporaires (à des fins de débogage)p. ex. nplurals=2; plural=(n > 1);remplissage approx. dans le fichieraller à l’élément à la ligne donnéegère une poedit: // URIpré-traduire avec la MTmajlangue inconnuevotre_e-mail@example.com« %s » n’est pas un fichier POT valide.poedit-2.0.6/locales/sk.mo0000664000372000037200000014275713230132042012326 00000000000000P%1 1 11<11J 2gW2 22 22 222 3333%3+333B3Q3W3]3f3z333333333333 3 44 4)4 04=4M4c4y44444444445 5(5D5Y5n55555555 6 '6:36:n6 666 6 666 6 7 #707?7O7c7~77777 71898'>8f88 8878689)=9g9 l9]w99A9I*:t:{:; ;;";:; U;`;.h;;;;;;;;<*<F<#[<<<<<<<<(<(=7= R=s=|== ==/= = >>#>9>L>b>2>>>>> ?)???????@@@ 2@?@R@Ee@"@?@ AA*.A YAfAyAK~A"A5A#B)BHAH HHI 'IHI PI ]IiI"nI;I(IIJ&J 5J ?JMJjJ ~JJJJJ JJK:K PK<^K.KKKKLL*%LPLVLgL xL LLJMNMgM MMMMM#MM'M$N7DN$|N%NNNNNNOOOO O2O P#P9PNP]PlPtP|PPPPPPPPQQQnQERZR>aR RRRR@RS-TSh}%ԃ&!<[z  ˄'Մ'% B c&n2م #!=_!y B"": Rs6 <Jh  ӈ  U!!wG 9 >IaTf%3  9BVj}Ëԋ 2Eˌ~6#؍ (:M+fG$ڎ  56/l*1Ǐ'eBʐ*I_t ёّ  +8 >HXmc ד & 21!d ˔5۔ *#74[1• ە# CW;k<4IXx~˗$3Jae/*ə+L -m5њ Лٛ2N`{ Ü Ϝٜ !5O uLٞP;K]dBƟ< k  Q \ g,u ޢ* 3> \ fs| У - ){DɤФ٤ *9JZ"p#ץ  &>]w$Ʀ1  , 7C cnŧ֧$8$UzШ$j̩<LVRӪ (0z9#I,m!ެ,.-\M_?* &/֯OK5keSfsYڲ47Q1:&#A':b! (ŵ2p!9U̶c"k woNtùZABcûv'½߽5Sg y/!6X m{ *3Ͽ#C_ tR16O!h'.y[{ %#(0 FSEX9= 1!dS -!!$*Fq!D}],6 9BW6tC3H>C'# )h?*Kq#-0^aG2zFYblx&2LADZ.EwPi=Ab[kv @4uh~ uL@|pnf.nTN? QI2:qOKcajd F!p ]U>T+rXi=J%Vxz51^s4 NH/F"8/XJ`om #UwQk :Gs$ 8jL!~I1,(<D-9B>|;$H(E?g<y!dYgIo \ <eN+rM5&cM5 :"K-A+EmZ7C"603B $%RfRVeyOG*S@ M,4}_{O%W91J)S[`' 7)v &;*{(l_.03=\7P8/t';P (modified) (unsaved)%d entry%d entries%d entry was pre-translated.%d entries were pre-translated.%d error%d errors%d issue with the translation found.%d issues with the translation found.%i line of file “%s” was not loaded correctly.%i lines of file “%s” were not loaded correctly.%s Format%s Preferences%s format&About&About Poedit&Apply&Back&Bookmarks&Cancel&Clear&Close&Copy&Delete&Done and Next&Done and next&Edit&File&Find…&GNU gettext Manual&GNU gettext manual&Go&Group By Context&Group by context&Help&New&New…&Next >&Next Translation&Next translation&No&OK&Online Help&Online help&Open...&Open…&Paste&Preferences&Preferences…&Previous Translation&Previous translation&Properties…&Purge Deleted Translations&Purge deleted translations&Quit&Redo&Replace&Save&Save as&Show References&Show references&Undo&Untranslated Entries First&Untranslated entries first&Update from Sources&Update from sources&Validate Translations&Validate translations&View&Yes(0 new, 0 obsolete)(Learn more about GNU gettext)(New: %i, obsolete: %i)(Use default language)(requires Windows 8 or newer)< &PreviousDrag and Drop Folders Here or use the + buttonDrag and drop folders here or use the + buttonAbout %sAccountsAdd CommentAdd Files…Add Folders…Add Wildcard…Add commentAdd directory to the listAdd files…Add folders…Add wildcard…Additional keywordsAdditional xgettext flags:AdvancedAdvanced Extraction Settings…Advanced extraction settingsAdvanced extraction settings…All Translation FilesAll commentsAlso use default keywords for supported languagesAlt+Always change focus to text input fieldAn item in input files list:An item in keywords list:AppearanceApplyAre you sure you want to delete the “%s” extractor?Are you sure you want to reset the translation memory?Automatically check for updatesAutomatically compile MO file when savingBackBase path:Beta versions contain the latest new features and improvements, but may be a bit less stable.Bring All to FrontBroken catalog file: plural form msgstr used without msgid_pluralBroken catalog file: singular form msgstr used together with msgid_pluralBrowseBy default, inaccurate results are filled in as well and marked as needing work. Check this option to only include accurate matches.C&atalogC&learCancelCannot create temporary directory.Cannot execute program: %sCapitalizeCatalogCatalog modified. Do you want to save changes?Catalog propertiesCatalogs &ManagerCatalogs &managerCatalogs ManagerChange UI languageCharset:Check Document NowCheck Grammar With SpellingCheck Spelling While TypingCheck for Updates…Check for errors in the translationCheck for updates…Check spellingClearClear TranslationClear the commentClear translationCloseCollaborate on a Translation with OthersCollaborate on a translation with othersCollecting source files…Command to extract translations:Comment:Comments prefixed with:Compile to MO…Compile to…Compiled Translation FilesConfigure source code extraction in Properties.ConfirmationCopyCopy From SingularCopy from Source TextCopy from singularCopy from source textCorrect Spelling AutomaticallyCouldn’t load file %s, it is probably corrupted.Couldn’t save file %s.Create New TranslationCreate new translationCreate new translations projectCrowdin errorCrowdin is an online localization management platform and collaborative translation tool. Poedit can seamlessly sync PO files managed at Crowdin.Ctrl+Cu&tCustom Extractors:Custom extractors:CutDatabase size on disk:DeleteDelete extractorDelete the projectDirectories:Display Entry &IDsDisplay entry &IDsDo you really want to do mass update of all catalogs in this project?Do you want to delete the project?Do you want to remove all translations that are no longer used?Don’t SaveDon’t Show AgainDon’t mark exact matches as needing workDon’t saveDon’t show againDownDownload a file from Crowdin project, translate and sync your changes back.Downloading latest translations…Downloading translations is disabled in this project.E&xitE&xport as HTML…EditEdit &CommentEdit &commentEdit CommentEdit a TranslationEdit a translationEdit commentEdit projectEdit the projectEditingEdit…Email:EnterEnter Full ScreenEntries in the catalog are probably incorrect.Entries in this catalog have different plural forms count from what catalog’s Plural-Forms header saysEntries with Errors FirstEntries with errors firstEntries with errors were marked in red in the list. Details of the error will be shown when you select such an entry.Error loading message catalog file “%s”.Error opening fileError opening file %s!Error saving catalogErrorsEverythingExcluded pathsExport as…Extract from sourcesExtract notes for translators from:Extract text from source files in the following directories:Extracting translatable strings…Extractor setupExtractorsFailed command: %sFailed to communicate with Poedit process.Failed to load extracted catalog.Failed to merge gettext catalogs.Failed to update translation memory: %sFileFile “%s” doesn’t exist.File “%s” is not a message catalog.File “%s” is read-only and cannot be saved. Please save it under different name.File:Finalizing…FindFind NextFind PreviousFind and Replace…Find in commentsFind in source textsFind in translationsFind nextFind previousFix LanguageFix languageFix the HeaderFix the headerForm %iFrequentGNU gettextGeneralGo to Bookmark %iGo to bookmark %iHTML FilesHelpHide %sHide OthersHide SidebarHide Status BarHide this notification messageIDIf you continue with purging, all translations marked as deleted will be permanently removed. You will have to translate them again if they are added back in the future.Ignore caseImporting translations…Include beta versionsInformation about the translatorInstallInvalid fileInvocation:KeepLanguage Code or Name (e.g. en_GB)Language of the translation is the same as source language.Language of the translation isn’t set.Language of the translation:Language selectionLanguage team:Language:Last modifiedLearn About Gettext KeywordsLearn From Files…Learn MoreLearn More About CrowdinLearn about gettext keywordsLearn about plural formsLearn from files…Learn moreLearn more about CrowdinLeftLine %d of file “%s” is corrupted (not valid %s data).Line endings:List of extensions separated by semicolons (e.g. *.cpp;*.h):MO files can’t be directly edited in Poedit.Make Lower CaseMake Upper CaseMalformed header: “%s”Merging differences…MinimizeName of the project the translation is forName:Ne&xt UnfinishedNe&xt unfinishedNeeds WorkNeeds workNever let the list of strings take focus. If enabled, you must use Ctrl-arrows for keyboard navigation but you can also type text immediately, without having to press Tab to change focus.NewNew From &POT/PO File…New from &POT/PO file…New stringsNext Plural FormNext plural formNoNo Matches FoundNo entries could be pre-translated.No matches foundNo problems with the translation found.No references for the selected item.No translation projects listed in your Crowdin account.Not all plural forms are translated.Not authorized, please sign in again.Notes for translators:OKObsolete stringsOneOnly enable if you trust the quality of your TM. By default, all matches from the TM are marked as needing work and should be reviewed before use.Only fill in exact matchesOpenOpen Crowdin translationOpen From Crowdin…Open RecentOpen an existing PO file and edit the translation.Open catalogOpen catalog templateOpen from Crowdin…Open in EditorOpen in editorOpen...Open…OptionsOtherP&revious UnfinishedP&revious unfinishedPO TranslationPO Translation FilesPOT Translation TemplatesPOT files are only templates and don’t contain any translations themselves. To make a translation, create a new PO file based on the template.PastePaste and Match StylePathsPlease open and edit the corresponding PO file instead. When you save it, the MO file will be updated as well.Please save the file first. This section cannot be edited until then.PluralPlural forms expression used by the catalog is unusual for %s.Plural forms:Plural:PoeditPoedit - Catalogs managerPoedit automatically fixed invalid content in the file “%s”.Poedit can attempt to fill in new entries from only previous translations in the file or from your entire translation memory. Using the TM won’t be very effective if it’s near-empty, but it will get better as you add more translations to it.Poedit is an easy to use translations editor.Pre-&translate…Pre-translatePre-translatedPre-translated %u stringPre-translated %u stringsPre-translating…Pre-translation automatically finds exact or fuzzy matches for untranslated strings in the translation memory and fills in their translations.PreferencesPreferences...Preferences…Preserve formatting of existing filesPrevious Plural FormPrevious plural formPrevious source text:Project name and version:Project name:Project:PurgePurge deleted translationsQuitQuit %sRecentRedoReferences:RefreshRemaining: %dReplaceReplace &AllReplace &allReplacement stringReplace…Required header Plural-Forms is missing.ResetReset translation memoryResetting the translation memory will irrevocably delete all stored translations from it. You can’t undo this operation.ReviewRightSaveSave &As…Save &as…Save asSave as…Save catalogSave changesSelect &AllSelect AllSelect directorySelect translation files to importSelect your preferred languageServicesSet Bookmark %iSet LanguageSet bookmark %iSet languageShift+Show AllShow SidebarShow Spelling and GrammarShow Status BarShow SubstitutionsShow or hide the sidebarShow sidebarShow status barShow summary after catalog updateSidebarSign InSign OutSign inSign in to CrowdinSign outSigned in as:SingularSingular:Smart Copy/PasteSmart DashesSmart LinksSmart QuotesSort by &File OrderSort by &SourceSort by &TranslationSort by &file orderSort by &sourceSort by &translationSource code charset:Source code extractors are used to find translatable strings in the source code files and extract them so that they can be translated.Source code not available.Source fileSource file occurrence:Source textSource text — %sSource text:Sources KeywordsSources PathsSources keywordsSources pathsSpeechSpellchecking is disabled, because the dictionary for %s isn’t installed.Spelling and GrammarStart SpeakingStop SpeakingStored translations:String to findSubstitutionsSuggestionsSuggestions are not available if the translation language is not set correctly. Other features, such as plural forms, may be affected as well.Supports all programming languages recognized by GNU gettext tools (PHP, C/C++, C#, Perl, Python, Java, JavaScript and others).SyncSync with CrowdinSynchronize the translation with CrowdinSyncingSyncing errorSyncing with %s failed.Syncing with %s…Syncing with Crowdin failed.Syntax error in Plural-Forms header ("%s").TMTake an existing PO file or POT template and create a new translation from it.Take translatable strings from an existing POT template.Team name and email address or URLText ReplacementThe TM doesn’t contain any strings similar to the content of this file. It is only effective for semi-automatic translations after Poedit learns enough from files that you translated manually.The catalog couldn’t be saved in “%s” charset as specified in catalog settings. It was saved in UTF-8 instead and the setting was modified accordingly.The file cannot be compiled into the MO format and used.The file cannot be opened.The file contained duplicate items, which is not allowed in PO files and would prevent the file from being used. Poedit fixed the issue, but you should review translations of any items marked as needing work and correct them if necessary.The file may be either corrupted or in a format not recognized by Poedit.The file was compiled into the MO format, but it will probably not work correctly.The file was saved safely and compiled into the MO format, but it will probably not work correctly.The file was saved safely, but it cannot be compiled into the MO format and used.The file was saved safely.The old source text (before it changed during an update) that the now-inaccurate translation corresponds to.The simplest way to fill this catalog is to update it from a POT:The translation doesn’t start with a space.The translation ends with a newline, but the source text doesn’t.The translation ends with a space, but the source text doesn’t.The translation ends with “%s”, but the source text ends with “%s”.The translation is missing a newline at the end.The translation is missing a space at the end.The translation is ready for use, but %d entry is not translated yet.The translation is ready for use, but %d entries are not translated yet.The translation is ready for use.The translation should end with “%s”.The translation should not end with “%s”.The translation should start as a sentence.The translation should start with a lowercase character.The translation starts with a space, but the source text doesn’t.The translations were marked as needing work, because they may be inaccurate. You should review them for correctness.There are no translations. That’s unusual.There was a problem formatting the file nicely (but it was saved all right).There were errors when loading the catalog. Some data may be missing or corrupted as the result.These settings affect internal formatting of PO files. Adjust them if you have specific requirements e.g. because of version control.These strings are no longer in the sources. Poedit will remove them from the catalog now.These strings were found in the sources but were not in the catalog. Poedit will add them to the catalog now.This catalog has entries with plural forms, but doesn’t have Plural-Forms header configured.This file can only be edited in Crowdin’s web interface.This is the command used to launch the extractor. %o expands to the name of output file, %K to list of keywords, %F to list of input files, %C to charset flag (see below).This project has no files that can be translated in Poedit.This string was found in Poedit’s translation memory.This will be attached to the command line only if source code charset was given. %c expands to charset value.This will be attached to the command line once for each input file. %f expands to the filename.This will be attached to the command line once for each keyword. %k expands to the keyword.TotalTransformationsTranslatable entries aren’t added manually in the Gettext system, but are automatically extracted from source code. This way, they stay up to date and accurate. Translators typically use PO template files (POTs) prepared for them by the developer.Translated: %d of %d (%d %%)Translation LanguageTranslation MemoryTranslation Needs &WorkTranslation PropertiesTranslation needs &workTranslation propertiesTranslation suggestions:Translation — %sTranslation:Translations couldn’t be updated from the source code, because no code was found in the location specified in the catalog’s Properties.TwoUTF-8 (recommended)UndoUnhandled exception occurred: %sUnix (recommended)UntransUpUpdateUpdate allUpdate all catalogs in the projectUpdate catalog - synchronize it with sourcesUpdate from &POT File…Update from &POT file…Update from POTUpdate summaryUpdatesUpdating catalogUpdating failedUpdating the catalog failed. Click on 'Details >>' for details.Updating user information…Uploading translations…Use custom expressionUse custom list font:Use custom text fields font:Use default rules for this languageUse these keywords (function names) to recognize translatable strings in source files:Use translation memoryValidateValidation resultsVersion %sWaiting for authentication…Welcome to PoeditWhat is Crowdin?When updating from sourcesWhole words onlyWindowWindowsWrap aroundWrap at:YesYou can also extract translatable strings directly from the source code:You can’t drop more than one file on Poedit window.You must restart Poedit for this change to take effect.Your NameYour changes will be lost if you don’t save them.Your name and email address are only used to set the Last-Translator header of GNU gettext files.ZeroZoomaltctrldon’t delete temporary files (for debugging)e.g. nplurals=2; plural=(n > 1);fuzzy match within the filego to item at given line numberhandle a poedit:// URIpre-translate from TMshiftunknown languageyour_email@example.com“%s” is not a valid POT file.Project-Id-Version: poedit Report-Msgid-Bugs-To: help@poedit.net POT-Creation-Date: 2017-12-05 15:52+0100 PO-Revision-Date: 2017-09-21 11:20-0400 Last-Translator: vslavik Language-Team: Slovak Language: sk_SK MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2; X-Generator: crowdin.com X-Crowdin-Project: poedit X-Crowdin-Language: sk X-Crowdin-File: /locales/poedit.pot (zmenené) (neuložené)%d položka%d položky%d položiek%d reťazec bol predbežne preložený%d reťazce boli predbežne preložené%d reťazcov bolo predbežne preložených%d chyba%d chyby%d chýbNašiel sa %d problém s prekladom.Našli sa %d problémy s prekladom.Našlo sa %d problémov s prekladom.%i riadok súboru „%s" sa nenačítal správne.%i riadoky súboru „%s" sa nenačítali správne.%i riadokov súboru „%s" sa nenačítali správne.%s formátNastavenia programu %s%s formát&O programe...&O programe Poedit&Použiť&Späť&Záložky&Zrušiť&Vyčistiť&Zatvoriť&Kopírovať&Zmazať&Dokončiť a prejsť na ďalší&Dokončiť a prejsť na ďalší&Upraviť&Súbor&Nájsť...Dokumentácia &GNU gettextDokumentácia &GNU gettextP&rejsť&Zoskupiť podľa súvislostí&Zoskupiť podľa súvislostí&Pomoc&Nový&Nový...&Nasledujúci >&Nasledujúci preklad&Nasledujúci preklad&Nie&OK&Pomocník online&Pomocník online&Otvoriť...&Otvoriť...&VložiťNas&tavenia&Predvoľby...&Predchádzajúci preklad&Predchádzajúci preklad&Vlastnosti...Odstrániť &nepoužívané prekladyOdstrániť &nepoužívané preklady&Ukončiť&Znovu&Nahradiť&Uložiť&Uložiť ako&Zobraziť odkazy&Zobraziť odkazy&Zrušiť&Najskôr nepreložené záznamy&Najskôr nepreložené záznamy&Aktualizovať zo zdroja&Aktualizovať zo zdroja&Overiť preklady&Overiť preklady&Zobraziť&Áno(žiadne nové, žiadne vyradené)(Dočítajte sa viac o GNU gettext)(Nové: %i, zastaralé: %i)(Použiť pôvodný jazyk)(požadovaný Windows 8 alebo novší)< &PredchádzajúciSem pretiahnite a pustite priečinky alebo použite + tlačidloSem pretiahnite a pustite priečinky alebo použite + tlačidloO programe %sÚčtyPridať komentárPridať súbory...Pridať zložky...Pridať Wildcard...Pridať komentárPridať priečinok do zoznamuPridať súbory...Pridať zložky...Pridať Wildcard...Doplnkové kľúčové slováDodatočné xgettext indikátory:RozšírenéRozšírené nastavenie extrakcie...Rozšírené nastavenia extrakcieRozšírené nastavenie extrakcie...Všetky prekladané súboryVšetkých komentárovTiež použiť predvolené kľúčové slová pre podporované jazykyAlt+Vždy aktivovať políčko pre zadávanie textuPoložka v zozname vstupných súborov:Položka v zozname kľúčových slov:VzhľadPoužiťSte si istý, že chcete vymazať extraktor „%s"?Ste si istý že chcete obnoviť pamäť prekladov?Automaticky kontrolovať aktualizácieAutomaticky aktualizovať MO súbor pri uloženíSpäťZákladná cesta:Beta verzie obsahujú najnovšie funkcie a vylepšenia, ale môžu byť menej stabilné.Preniesť všetko dopreduPoškodený súbor katalógu: tvar množného čísla msgstr použitý bez msgid_pluralChybný súbor katalógu: tvar jednotného čísla msgstr je použitý aj v msgid_pluralPrehliadaťPredvolene sú chybné výsledky doplnené a označené ako potrebujú pozornosť. Začiarknite túto možnosť, aby boli doplnené iba presné zhody.&KatalógV&yčistiťZrušiťNepodarilo sa vytvoriť dočasný adresár.Nepodarilo sa spustiť program: %sVeľké písmenáKatalógKatalóg bol zmenený. Želáte si uložiť zmeny?Vlastnosti katalógu&Správca katalógov&Správca katalógovSprávca katalógovZmena jazyka rozhraniaZnaková sada:Skontrolovať dokument terazSkontrolovať gramatiku so slovníkomKontrolovať gramatiku počas písaniaKontrola aktualizácií…Skontrolovať chyby v prekladeSkontrolovať aktualizácie...Kontrola gramatikyVyčistiťZmazať prekladVymazať komentárZmazať prekladZatvoriťSpolupracovať na preklade s ostatnýmiSpolupracovať na preklade s ostatnýmiZber zdrojových súborov...Príkaz pre extrakciu prekladov:Komentár:Komentárov začínajúcich reťazcom:Kompilovať do MO...Kompilovať do...Spracované súbory prekladuNastaviť pôvod zdrojového kódu v Nastaveniach.PotvrdenieKopírovaťKopírovať zo singuláraSkopírovať zo zdrojového textuKopírovať zo singuláraSkopírovať zo zdrojového textuAutomaticky opravovať gramatikuNepolo možné načítať súbor %s, pravdepodobne je poškodený.Súbor %s nie je možné uložiť.Vytvoriť nový prekladVytvoriť nový prekladVytvoriť nový projekt prekladuChyba – CrowdinCrowdin je služba pre správu online prekladov a nástroj pre spoluprácu pri nich. Program Poedit môže jednoducho synchronizovať .PO súbory spravované v službe Crowdin.Ctrl+V&ystrihnúťPoužívateľské extraktory:Používateľské extraktory:VystrihnúťVeľkosť databázy na disku:OdstrániťOdstrániť extractorOdstrániť projektPriečinky:Zobraziť &ID záznamuZobraziť &ID záznamuNaozaj chcete urobiť hromadnú aktualizáciu všetkých katalógov v tomto projekte?Chcete odstrániť tento projekt?Chcete odstrániť všetky preklady, ktoré sa už viac nepoužívajú?NeukladaťNabudúce nezobrazovaťNeoznačovať presné výsledky ako potrebujú pozornosťNeukladaťNabudúce nezobrazovaťDoleStiahnuť súbor zo služby Crowdin, preložiť a synchronizovať späť so zmenami.Sťahovanie najnovších prekladov…V tomto projekte je sťahovanie prekladov vypnuté.U&končiťE&xportovať ako HTML...Upraviť&Upraviť komentár&Upraviť komentárUpraviť komentárUpraviť prekladUpraviť prekladUpraviť komentárUpraviť projektUpraviť projektÚprava prekladovUpraviť...Email:EnterNa celú obrazovkuZáznamy v katalógu sú pravdepodobne nesprávne.Položky v tomto katalógu majú iné počty množných čísiel než ako je nakonfigurovaná hlavička množných čísiel katalóguPoložky s chybami ako prvéPoložky s chybami ako prvéZáznamy s chybami boli v zozname vyznačené na červeno. Podrobnosti o chybe budú zobrazené, ak vyberiete nejaký záznam.Chyba pri načítaní správy súbor katalógu „%s".Chyba pri otváraní súboruChyba pri otváraní súboru „%s"Chyba pri ukladaní katalóguChybyVšetkoVylúčené cestyExportovať ako...Aktualizovať zo zdrojovExtrahovať poznámky pre prekladateľov z:Aktualizovať text zo zdrojových súborov v nasledovných adresároch:Extrahovanie reťazcov na preklad...Nastavenia extraktoraExtraktoryNeplatný príkaz: %sNie je možné komunikovať s presom programu Poedit.Nepodarilo sa načítať extrahovaný katalóg.Nepodarilo sa zlúčiť katalógy gettext.Nepodarilo sa aktualizovať pamäť prekladov: %sSúborSúbor „%s" neexistuje.Súbor „%s" nie je správa katalógu.Súbor “%s” je iba na čítanie a nemôže byť uložený. Prosím, uložte ho pod iným názvom.Súbor:Dokončuje sa...HľadaťHľadať nasledujúciNájsť predchádzajúciNájsť a nahradiť...Vyhľadať v komentárochHľadať v zdrojových textochHľadať v prekladochNájsť nasledujúciHľadať predchádzajúciZmeniť jazykOpraviť jazykOpraviť hlavičkuOpraviť hlavičkuTvar %iČastéGNU gettextVšeobecnéPrejsť na záložku: %iPrejsť na záložku: %iHTML súboryPomocSkryť %sSkryť ostatnéSkryť bočný panelSkryť stavový riadokSkryť toto upozornenieIDAk budete pokračovať s čistením, všetky preklady označené ako zmazané budú natrvalo odstránené. V prípade, že budú v budúcnosti znovu pridané, budete ich musieť preložiť znovu.Ignorovať veľkosť písmenImportujú sa preklady...Zahrnúť beta verzie programuInformácie o prekladateľoviInštalovaťNeplatný súborVyvolanie:ZachovaťKód alebo názov jazyku (napr. en_GB)Jazyk prekladu je taký istý ako zdrojový jazyk.Jazyk prekladu nie je nastavený.Jazyk prekladu:Výber jazykaPrekladateľský tým:Jazyk prekladu:Posledná zmenaĎalšie informácie o Gettext kľúčových slováchUčiť sa zo súborov...Zistiť viacViac informácií o službe CrowdinZistiť informácie o gettext kľúčových slováchZistiť informácie o formách množného číslaUčiť sa zo súborov...Zistiť viacViac informácií o službe CrowdinVľavoRiadok %d súbor „%s" je poškodený (%s nie sú platné údaje).Ukončenie riadkov:Zoznam prípon oddelených bodkočiarkou (napr. *.cpp;*.h):MO súbory nemôžu by upravované priamo v programe Poedit.Zmeniť na malé písmoZmeniť na VEĽKÉ PÍSMOPoškodená hlavička: „%s"Zlučovanie zmien...MinimalizovaťNázov projektu prekladu je preMeno:Nasledujúci &nedokončenýNasledujúci &nedokončenýVyžaduje pozornosťVyžaduje pozornosťZakázať, aby bol aktivovaný zoznam reťazcov. Ak je táto voľba aktívna, musíte pre navigáciu v zozname reťazcov použiť Ctrl + šípky na klávesnici. Takto môžete priamo začať písať text bez nutnosti stlačiť klávesu Tab pre aktiváciu poľa.NovýNový zo súboru &POT/PO...Nový zo súboru &POT/PO...Nové reťazceĎalší tvar pluráluĎalší tvar pluráluNieNenašli sa žiadne zhodyŽiadne reťazce neboli predbežne preložené.Nenájdené žiadne zhodyNenašli sa žiadne problémy s prekladom.Žiadne odporúčanie pre vybanú položku.Neboli nájdené žiadne prekladateľské projekty vo vašom účte Crowdin.Nie všetky množné čísla sú preložené.Chyba pri autorizácii, skúste sa prihlásiť znova.Poznámky pre prekladateľov:OKVyradené prekladyJedenPovoľte iba ak dôverujete kvalitu vášej PP. Predvolene všetky zhody z PP sú označené ako vyžadujúce vašu pozornosť a mali by byť posúdené pred použitím.Vyplniť iba presné zhodyOtvoriťOtvoriť Crowdin prekladOtvoriť z Crowdin...Otvoriť poslednéOtvoriť existujúci PO súbor a upraviť preklad.Otvoriť katalógOtvoriť katalóg návrhovOtvoriť z Crowdin...Otvoriť v editoreOtvoriť v editoreOtvoriť...Otvoriť...MožnostiOstatnéP&redošlý nedokončenýP&redošlý nedokončenýPO prekladPO súbory prekladuŠablóny prekladania POTSúbory POT sú iba šablóny a samé neobsahujú žiadne preklady. Ak chcete vytvoriť nový preklad, vytvorte nový PO súbor na základe šablóny.VložiťPrilepiť a prispôsobiť štýlCestyOtvorte a upravte namiesto toho zodpovedajúci PO súbor. Po jeho uložení bude takisto aktualizovaný aj MO súbor.Najprv uložte súbor. Táto sekcia nemôže byť bez uloženia upravovaná.Množné čísloKatalógom použité vyjadrenie množného čísla je nezvyčajné pre jazyk %s.Formy plurálu:Množné číslo:PoeditPoedit – Správca katalógovProgram Poedit automaticky opraví neplatný obsah v súbore "%s".Poedit sa pokúsi vyplniť nové reťazce iba z predošlých prekladov v súbore alebo z celej pamäti prekladov. Prekladanie pomocou PP nebude príliš účinné ak je skoro prázdna, ale bude lepšie ak pridáte viac prekladov.Program Poedit je jednoducho použiteľný editor prekladov.Pred-&preklad...PredpreložiťPredbežne preloženéPredbežne preložený %u reťazecPredbežne preložené %u reťazcePredbežne preložených %u reťazcovPrebieha predbežný preklad…Pri použití predbežného prekladu budú nájdené presné alebo čiastočné zhody pre nepreložené preklady v pamäti prekladov a budú doplnené do prekladov.PredvoľbyPredvoľbyPredvoľby...Zachovať existujúce formátovanie súborovPredhádzajúci tvar pluráluPredhádzajúci tvar pluráluPredchádzajúci zdrojový text:Názov projektu a verzia:Názov projektu:Projekt:VyčistiťOdstrániť zmazané prekladyUkončiťUkončiť %sNedávneZmenaOdkazy:ObnoviťZostáva: %dNahradiťNahradiť &všetkoNahradiť &všetkoNahradené reťazcomNahradiť...Potrebná hlavička Plural-Forms sa nenašla.ObnoviťObnoviť pamäť prekladovObnovením pamäte prekladov natrvalo vymažete všetky uložené preklady. Túto operáciu nie je možné vrátiť späť.NáhľadVpravoUložiťUložiť &ako...Uložiť &ako...Uložiť akoUložiť ako...Uložiť katalógUložiť zmenyVybrať &VšetkoVybrať všetkoVyberte si priečinokVyberte súbor prekladu pre importVyberte si váš preferovaný jazykSlužbyNastaviť záložku: %iNastaviť jazykNastaviť záložku: %iVybrať jazykShift+Zobraziť všetkoZobraziť bočný panelZobraziť pravopis a gramatikuZobraziť stavový riadokZobraziť návrhyZobraziť alebo skryť bočný panelZobraziť bočný panelZobraziť stavový riadokZobraziť sumarizáciu po aktualizácii katalóguBočný panelPrihlásiťOdhlásiťPrihlásiťPrihlásenie do služby CrowdinOdhlásiťPrihlásený ako:Jednotné čísloJednotné číslo:Rýchle kopírovanie/prilepenieChytré pomlčkyChytré odkazyChytré úvodzovkyUsporiadať podľa &poradia súborovUsporiadať podľa &zdrojaUsporiadať podľa &prekladuUsporiadať podľa poradia &súborovUsporiadať podľa &zdrojaUsporiadať podľa &prekladuZdrojový kód znakovej sady:Zdrojové kódy extraktorov sú použité na vyhľadávanie preložiteľných reťazcov v zdrojovom kóde súborov a vybraté ak môžu byť preložené.Zdrojový kód nie je k dispozícii.Zdrojový súborVýskyt v zdrojovom súbore:Zdrojový textZdrojový text – %sZdrojový text:Zdrojové kľúčové slováCesty k zdrojomZdrojové kľúčové slováCesty k zdrojomJazykKontrola pravopisu je vypnutá, pretože slovník pre jazyk %s nie je nainštalovaný.Pravopis a gramatikaZačať rozprávanieZastaviť rozprávaniePočet uložených prekladov:Vyhľadávaný reťazecZámenyNávrhyNávrhy nie sú dostupné ak jazyk prekladu nie je nastavený správne. Ostatné funkcie, ako množné číslo, tým môžu byť ovplyvnené.Podporuje všetky programovacie jazyky nástrojov GNU gettext (PHP, C/C++, C#, Perl, Python, Java, JavaScript a ďalšie).SynchronizáciaSynchronizácia so službou CrowdinSynchronizácia prekladu so službou CrowdinSynchronizáciaChyba synchronizácieSynchronizácia s %s zlyhala.Synchronizácia so službou %s…Synchronizácia so službou Crowdin zlyhala.Chyba syntaxe v hlavičke Plural-Forms ("%s").PPPoužiť existujúci PO súbor alebo POT šablónu a vytvoriť nový preklad.Použiť prekladateľné reťazce z existujúcej POT šablóny.Názov tímu a e-mailová adresa alebo URLZámena textuPamäť prekladov neobsahuje žiaden reťazec podobný obsahu tohto súboru. Tento spôsob je účinný iba pre poloautomatické preklady po tom ako sa Poedit naučí zo súborov, ktoré ste preložili manuálne.Katalóg nie je možné uložiť v znakovej sade “%s” špecifikovanej v nastavení katalógu. Katalóg bol uložený v UTF-8 a nastavenia boli podľa toho upravené.Súbor MO nemôže byť vytvorený a použitý.Súbor nemohol byť otvorený.Súbor obsahoval duplicitné položky, čo nie je v PO súboroch povolené a a zabránilo by to ich použitiu. Poedit tento problém opravil, ale mali by ste skontrolovať všetky preklady označené ako nepresné a prípadne ich opraviť.Súbor môže byť poškodený alebo formát nebol rozoznaný programom Poedit.Súbor vo formáte MO bol vytvorený, ale pravdepodobne nefunguje správne.Súbor bol bezpečne uložený a skompilovaný do MO formátu, ale pravdepodobne nebude pracovať správne.Súbor bol bezpečne uložený, ale nemôže byť skompilovaný do formátu MO a následne použitý.Súbor bol bezpečne uložený.Starý zdrojový text (pred zmenou počas aktualizácie), bude teraz označený ako nepresný preklad.Najjednoduchšia cesta, ako vyplniť tento katalóg, je aktualizovať ho z POT šablóny:Preklad nezačína medzerou.Preklad končí novým riadkom, ale zdrojový text nie.Preklad končí medzerou, ale zdrojový text nie.Preklad končí s "%s", ale zdrojový text končí s "%s".Prekladu chýba nový riadok na konci.V preklade chýba medzera na konci.Preklad je pripravený na používanie, ale %d záznam ešte nie je preložený.Preklad je pripravený na používanie, ale %d záznamy ešte nie sú preložené.Preklad je pripravený na používanie, ale %d záznamov ešte nie je preložených.Preklad je pripravený na používanie.Preklad by mal končiť s "%s".Preklad by nemal končiť s "%s".Preklad by mal začať ako veta.Preklad by mal začať malým písmenom.Preklad začína medzerou, ale zdrojový text nie.Preklady boli označené ako potrebujú pozornosť, pretože môžu byť nepresné a môžu potrebovať úpravy.V súboru nie sú žiadne preklady. Toto je nezvyčajné.Vyskytol sa problém pri formátovaní súboru (napriek tomu bol správne uložený).Nastala chyba pri načítavaní katalógu. Niektoré údaje môžu chýbať alebo byť poškodené.Tieto nastavenia majú vplyv na interné formátovanie PO súborov.Zmeňte ich, iba ak máte špeciálne požiadavky, napríklad kvôli kontrole verzií.Tieto reťazce sa už nenachádzajú v zdrojových kódoch. Program Poedit ich teraz odstráni z katalógu.Tieto reťazce boli nájdené v zdroji ale v katalógu sa nenachádzajú. Program Poedit ich teraz pridá do katalógu.Tento katalóg obsahuje položky s množným číslom, ale nemá nakonfigurovanú hlavička množného čísla.Tento súbor môže byť upravovaný iba vo webovom rozhraní služby Crowdin.Tento príkaz sa používa na spustenie extraktora. „%o" sa zamení za meno výstupného súboru, „%K" na zoznam kľúčových slov, „%F" na zoznam vstupných súborov, „%C" na znak kódovej stránky (pozri nižšie).Tento projekt neobsahuje žiadne súbory, ktoré môžu byť preložené programom Poedit.Tento reťazec bol nájdený v pamäti prekladov programu Poedit.Toto bude pripojené do príkazového riadku iba ak je zadaný zdroj znakovej sady. „%c" sa rozšíri o hodnotu znakovej sady.Toto bude pripojené k príkazu raz pre každý vstupný súbor. „%f" sa zamení názvom súboru.Toto bude pripojené k príkazovému riadku raz pre každé kľúčové slovo. „%k" sa zamení sa kľúčové slovo.CelkovoZmenyPrekladateľné reťazce nie sú pridávané manuálne v systéme Gettext, ale sú automaticky extrahované zo zdrojového kódu. Takto zostanú aktuálne a správne. Prekladatelia zvyčajne používajú súbory PO šablón (s príponou POT), ktoré sú pripravené vývojarom.Preložené: %d z %d (%d %%)Jazyk prekladuPamäť prekladovPreklad vyžaduje &pozornosťNastavenia prekladaniaPreklad vyžaduje &pozornosťVlastnosti prekladuNávrhy prekladu:Preklad - %sPreklad:Nepodarilo sa aktualizovať preklady zo zdrojového kódu, pretože sa nenašiel žiadny kód umiestnenia vo vlastnostiach katalógu.DvaUTF-8 (odporúčané)SpäťDošlo k neočakávanej chybe: %sUnix (odporúčané)NepreloženéHoreAktualizovaťAktualizovať všetkoAktualizovať všetky katalógy v projekteAktualizovať katalóg - synchronizácia so zdrojomAktualizovať zo súboru POT...Aktualizovať zo súboru POT...Aktualizovať z POT súboruSúhrn aktualizácieAktualizácieAktualizovanie katalóguAktualizácia zlyhalaAktualizácia katalógu zlyhala. Kliknite na „Podrobnosti >>" pre viac detailov.Aktualizujú sa informácie o používateľovi…Odosielanie prekladov…Použiť vlastný výrazPoužiť vlastný zoznam písmen:Použiť vlastný zoznam písmen polí:Použiť predvolené pravidlá pre tento jazykPoužiť tieto kľúčové slová (názvy funkcií) pre rozlíšenie preložiteľných reťazcov v zdrojových súboroch:Použiť pamäť prekladov (PP)OveriťVýsledky overovaniaVerzia %sPrebieha overovanie vášho účtu…Vitajte v programe PoeditČo je to Crowdin?Pri aktualizácii zo zdroja Iba celé slováOknoWindowsVyhľadávať dookolaZalomiť po:ÁnoMôžete vybrať prekladateľné reťazce priamo z zdrojového kódu:Nemôžete vložiť viac ako jeden súbor do okna Poedit.Musíte reštartovať program Poedit, aby sa prejavili zmeny.Vaše menoVaše úpravy budú stratené ak ich neuložíte.Vaše meno a emailová adresa sú použité iba v hlavičke Last-Translator v GNU gettext súboroch.NulaPriblíženiealtctrlneodstrániť dočasné súbory (pre ladenie)napr. nplurals=2; plural=(n > 1);označiť ako nepresné v súborechoďte k položke na dané číslo riadkuhandle a poedit:// URIpredbežne preložiť z PPshiftneznámy jazykvas_email@priklad.sk„%s" nie je platný súbor POT.poedit-2.0.6/locales/eu.mo0000664000372000037200000014031613230132076012316 00000000000000P%1 1 11<11J 2gW2 22 22 222 3333%3+333B3Q3W3]3f3z333333333333 3 44 4)4 04=4M4c4y44444444445 5(5D5Y5n55555555 6 '6:36:n6 666 6 666 6 7 #707?7O7c7~77777 71898'>8f88 8878689)=9g9 l9]w99A9I*:t:{:; ;;";:; U;`;.h;;;;;;;;<*<F<#[<<<<<<<<(<(=7= R=s=|== ==/= = >>#>9>L>b>2>>>>> ?)???????@@@ 2@?@R@Ee@"@?@ AA*.A YAfAyAK~A"A5A#B)BHAH HHI 'IHI PI ]IiI"nI;I(IIJ&J 5J ?JMJjJ ~JJJJJ JJK:K PK<^K.KKKKLL*%LPLVLgL xL LLJMNMgM MMMMM#MM'M$N7DN$|N%NNNNNNOOOO O2O P#P9PNP]PlPtP|PPPPPPPPQQQnQERZR>aR RRRR@RS-T ž7оv.!¿!(/ Jkr &D}],6 9BW6tC3H>C'# )h?*Kq#-0^aG2zFYblx&2LADZ.EwPi=Ab[kv @4uh~ uL@|pnf.nTN? QI2:qOKcajd F!p ]U>T+rXi=J%Vxz51^s4 NH/F"8/XJ`om #UwQk :Gs$ 8jL!~I1,(<D-9B>|;$H(E?g<y!dYgIo \ <eN+rM5&cM5 :"K-A+EmZ7C"603B $%RfRVeyOG*S@ M,4}_{O%W91J)S[`' 7)v &;*{(l_.03=\7P8/t';P (modified) (unsaved)%d entry%d entries%d entry was pre-translated.%d entries were pre-translated.%d error%d errors%d issue with the translation found.%d issues with the translation found.%i line of file “%s” was not loaded correctly.%i lines of file “%s” were not loaded correctly.%s Format%s Preferences%s format&About&About Poedit&Apply&Back&Bookmarks&Cancel&Clear&Close&Copy&Delete&Done and Next&Done and next&Edit&File&Find…&GNU gettext Manual&GNU gettext manual&Go&Group By Context&Group by context&Help&New&New…&Next >&Next Translation&Next translation&No&OK&Online Help&Online help&Open...&Open…&Paste&Preferences&Preferences…&Previous Translation&Previous translation&Properties…&Purge Deleted Translations&Purge deleted translations&Quit&Redo&Replace&Save&Save as&Show References&Show references&Undo&Untranslated Entries First&Untranslated entries first&Update from Sources&Update from sources&Validate Translations&Validate translations&View&Yes(0 new, 0 obsolete)(Learn more about GNU gettext)(New: %i, obsolete: %i)(Use default language)(requires Windows 8 or newer)< &PreviousDrag and Drop Folders Here or use the + buttonDrag and drop folders here or use the + buttonAbout %sAccountsAdd CommentAdd Files…Add Folders…Add Wildcard…Add commentAdd directory to the listAdd files…Add folders…Add wildcard…Additional keywordsAdditional xgettext flags:AdvancedAdvanced Extraction Settings…Advanced extraction settingsAdvanced extraction settings…All Translation FilesAll commentsAlso use default keywords for supported languagesAlt+Always change focus to text input fieldAn item in input files list:An item in keywords list:AppearanceApplyAre you sure you want to delete the “%s” extractor?Are you sure you want to reset the translation memory?Automatically check for updatesAutomatically compile MO file when savingBackBase path:Beta versions contain the latest new features and improvements, but may be a bit less stable.Bring All to FrontBroken catalog file: plural form msgstr used without msgid_pluralBroken catalog file: singular form msgstr used together with msgid_pluralBrowseBy default, inaccurate results are filled in as well and marked as needing work. Check this option to only include accurate matches.C&atalogC&learCancelCannot create temporary directory.Cannot execute program: %sCapitalizeCatalogCatalog modified. Do you want to save changes?Catalog propertiesCatalogs &ManagerCatalogs &managerCatalogs ManagerChange UI languageCharset:Check Document NowCheck Grammar With SpellingCheck Spelling While TypingCheck for Updates…Check for errors in the translationCheck for updates…Check spellingClearClear TranslationClear the commentClear translationCloseCollaborate on a Translation with OthersCollaborate on a translation with othersCollecting source files…Command to extract translations:Comment:Comments prefixed with:Compile to MO…Compile to…Compiled Translation FilesConfigure source code extraction in Properties.ConfirmationCopyCopy From SingularCopy from Source TextCopy from singularCopy from source textCorrect Spelling AutomaticallyCouldn’t load file %s, it is probably corrupted.Couldn’t save file %s.Create New TranslationCreate new translationCreate new translations projectCrowdin errorCrowdin is an online localization management platform and collaborative translation tool. Poedit can seamlessly sync PO files managed at Crowdin.Ctrl+Cu&tCustom Extractors:Custom extractors:CutDatabase size on disk:DeleteDelete extractorDelete the projectDirectories:Display Entry &IDsDisplay entry &IDsDo you really want to do mass update of all catalogs in this project?Do you want to delete the project?Do you want to remove all translations that are no longer used?Don’t SaveDon’t Show AgainDon’t mark exact matches as needing workDon’t saveDon’t show againDownDownload a file from Crowdin project, translate and sync your changes back.Downloading latest translations…Downloading translations is disabled in this project.E&xitE&xport as HTML…EditEdit &CommentEdit &commentEdit CommentEdit a TranslationEdit a translationEdit commentEdit projectEdit the projectEditingEdit…Email:EnterEnter Full ScreenEntries in the catalog are probably incorrect.Entries in this catalog have different plural forms count from what catalog’s Plural-Forms header saysEntries with Errors FirstEntries with errors firstEntries with errors were marked in red in the list. Details of the error will be shown when you select such an entry.Error loading message catalog file “%s”.Error opening fileError opening file %s!Error saving catalogErrorsEverythingExcluded pathsExport as…Extract from sourcesExtract notes for translators from:Extract text from source files in the following directories:Extracting translatable strings…Extractor setupExtractorsFailed command: %sFailed to communicate with Poedit process.Failed to load extracted catalog.Failed to merge gettext catalogs.Failed to update translation memory: %sFileFile “%s” doesn’t exist.File “%s” is not a message catalog.File “%s” is read-only and cannot be saved. Please save it under different name.File:Finalizing…FindFind NextFind PreviousFind and Replace…Find in commentsFind in source textsFind in translationsFind nextFind previousFix LanguageFix languageFix the HeaderFix the headerForm %iFrequentGNU gettextGeneralGo to Bookmark %iGo to bookmark %iHTML FilesHelpHide %sHide OthersHide SidebarHide Status BarHide this notification messageIDIf you continue with purging, all translations marked as deleted will be permanently removed. You will have to translate them again if they are added back in the future.Ignore caseImporting translations…Include beta versionsInformation about the translatorInstallInvalid fileInvocation:KeepLanguage Code or Name (e.g. en_GB)Language of the translation is the same as source language.Language of the translation isn’t set.Language of the translation:Language selectionLanguage team:Language:Last modifiedLearn About Gettext KeywordsLearn From Files…Learn MoreLearn More About CrowdinLearn about gettext keywordsLearn about plural formsLearn from files…Learn moreLearn more about CrowdinLeftLine %d of file “%s” is corrupted (not valid %s data).Line endings:List of extensions separated by semicolons (e.g. *.cpp;*.h):MO files can’t be directly edited in Poedit.Make Lower CaseMake Upper CaseMalformed header: “%s”Merging differences…MinimizeName of the project the translation is forName:Ne&xt UnfinishedNe&xt unfinishedNeeds WorkNeeds workNever let the list of strings take focus. If enabled, you must use Ctrl-arrows for keyboard navigation but you can also type text immediately, without having to press Tab to change focus.NewNew From &POT/PO File…New from &POT/PO file…New stringsNext Plural FormNext plural formNoNo Matches FoundNo entries could be pre-translated.No matches foundNo problems with the translation found.No references for the selected item.No translation projects listed in your Crowdin account.Not all plural forms are translated.Not authorized, please sign in again.Notes for translators:OKObsolete stringsOneOnly enable if you trust the quality of your TM. By default, all matches from the TM are marked as needing work and should be reviewed before use.Only fill in exact matchesOpenOpen Crowdin translationOpen From Crowdin…Open RecentOpen an existing PO file and edit the translation.Open catalogOpen catalog templateOpen from Crowdin…Open in EditorOpen in editorOpen...Open…OptionsOtherP&revious UnfinishedP&revious unfinishedPO TranslationPO Translation FilesPOT Translation TemplatesPOT files are only templates and don’t contain any translations themselves. To make a translation, create a new PO file based on the template.PastePaste and Match StylePathsPlease open and edit the corresponding PO file instead. When you save it, the MO file will be updated as well.Please save the file first. This section cannot be edited until then.PluralPlural forms expression used by the catalog is unusual for %s.Plural forms:Plural:PoeditPoedit - Catalogs managerPoedit automatically fixed invalid content in the file “%s”.Poedit can attempt to fill in new entries from only previous translations in the file or from your entire translation memory. Using the TM won’t be very effective if it’s near-empty, but it will get better as you add more translations to it.Poedit is an easy to use translations editor.Pre-&translate…Pre-translatePre-translatedPre-translated %u stringPre-translated %u stringsPre-translating…Pre-translation automatically finds exact or fuzzy matches for untranslated strings in the translation memory and fills in their translations.PreferencesPreferences...Preferences…Preserve formatting of existing filesPrevious Plural FormPrevious plural formPrevious source text:Project name and version:Project name:Project:PurgePurge deleted translationsQuitQuit %sRecentRedoReferences:RefreshRemaining: %dReplaceReplace &AllReplace &allReplacement stringReplace…Required header Plural-Forms is missing.ResetReset translation memoryResetting the translation memory will irrevocably delete all stored translations from it. You can’t undo this operation.ReviewRightSaveSave &As…Save &as…Save asSave as…Save catalogSave changesSelect &AllSelect AllSelect directorySelect translation files to importSelect your preferred languageServicesSet Bookmark %iSet LanguageSet bookmark %iSet languageShift+Show AllShow SidebarShow Spelling and GrammarShow Status BarShow SubstitutionsShow or hide the sidebarShow sidebarShow status barShow summary after catalog updateSidebarSign InSign OutSign inSign in to CrowdinSign outSigned in as:SingularSingular:Smart Copy/PasteSmart DashesSmart LinksSmart QuotesSort by &File OrderSort by &SourceSort by &TranslationSort by &file orderSort by &sourceSort by &translationSource code charset:Source code extractors are used to find translatable strings in the source code files and extract them so that they can be translated.Source code not available.Source fileSource file occurrence:Source textSource text — %sSource text:Sources KeywordsSources PathsSources keywordsSources pathsSpeechSpellchecking is disabled, because the dictionary for %s isn’t installed.Spelling and GrammarStart SpeakingStop SpeakingStored translations:String to findSubstitutionsSuggestionsSuggestions are not available if the translation language is not set correctly. Other features, such as plural forms, may be affected as well.Supports all programming languages recognized by GNU gettext tools (PHP, C/C++, C#, Perl, Python, Java, JavaScript and others).SyncSync with CrowdinSynchronize the translation with CrowdinSyncingSyncing errorSyncing with %s failed.Syncing with %s…Syncing with Crowdin failed.Syntax error in Plural-Forms header ("%s").TMTake an existing PO file or POT template and create a new translation from it.Take translatable strings from an existing POT template.Team name and email address or URLText ReplacementThe TM doesn’t contain any strings similar to the content of this file. It is only effective for semi-automatic translations after Poedit learns enough from files that you translated manually.The catalog couldn’t be saved in “%s” charset as specified in catalog settings. It was saved in UTF-8 instead and the setting was modified accordingly.The file cannot be compiled into the MO format and used.The file cannot be opened.The file contained duplicate items, which is not allowed in PO files and would prevent the file from being used. Poedit fixed the issue, but you should review translations of any items marked as needing work and correct them if necessary.The file may be either corrupted or in a format not recognized by Poedit.The file was compiled into the MO format, but it will probably not work correctly.The file was saved safely and compiled into the MO format, but it will probably not work correctly.The file was saved safely, but it cannot be compiled into the MO format and used.The file was saved safely.The old source text (before it changed during an update) that the now-inaccurate translation corresponds to.The simplest way to fill this catalog is to update it from a POT:The translation doesn’t start with a space.The translation ends with a newline, but the source text doesn’t.The translation ends with a space, but the source text doesn’t.The translation ends with “%s”, but the source text ends with “%s”.The translation is missing a newline at the end.The translation is missing a space at the end.The translation is ready for use, but %d entry is not translated yet.The translation is ready for use, but %d entries are not translated yet.The translation is ready for use.The translation should end with “%s”.The translation should not end with “%s”.The translation should start as a sentence.The translation should start with a lowercase character.The translation starts with a space, but the source text doesn’t.The translations were marked as needing work, because they may be inaccurate. You should review them for correctness.There are no translations. That’s unusual.There was a problem formatting the file nicely (but it was saved all right).There were errors when loading the catalog. Some data may be missing or corrupted as the result.These settings affect internal formatting of PO files. Adjust them if you have specific requirements e.g. because of version control.These strings are no longer in the sources. Poedit will remove them from the catalog now.These strings were found in the sources but were not in the catalog. Poedit will add them to the catalog now.This catalog has entries with plural forms, but doesn’t have Plural-Forms header configured.This file can only be edited in Crowdin’s web interface.This is the command used to launch the extractor. %o expands to the name of output file, %K to list of keywords, %F to list of input files, %C to charset flag (see below).This project has no files that can be translated in Poedit.This string was found in Poedit’s translation memory.This will be attached to the command line only if source code charset was given. %c expands to charset value.This will be attached to the command line once for each input file. %f expands to the filename.This will be attached to the command line once for each keyword. %k expands to the keyword.TotalTransformationsTranslatable entries aren’t added manually in the Gettext system, but are automatically extracted from source code. This way, they stay up to date and accurate. Translators typically use PO template files (POTs) prepared for them by the developer.Translated: %d of %d (%d %%)Translation LanguageTranslation MemoryTranslation Needs &WorkTranslation PropertiesTranslation needs &workTranslation propertiesTranslation suggestions:Translation — %sTranslation:Translations couldn’t be updated from the source code, because no code was found in the location specified in the catalog’s Properties.TwoUTF-8 (recommended)UndoUnhandled exception occurred: %sUnix (recommended)UntransUpUpdateUpdate allUpdate all catalogs in the projectUpdate catalog - synchronize it with sourcesUpdate from &POT File…Update from &POT file…Update from POTUpdate summaryUpdatesUpdating catalogUpdating failedUpdating the catalog failed. Click on 'Details >>' for details.Updating user information…Uploading translations…Use custom expressionUse custom list font:Use custom text fields font:Use default rules for this languageUse these keywords (function names) to recognize translatable strings in source files:Use translation memoryValidateValidation resultsVersion %sWaiting for authentication…Welcome to PoeditWhat is Crowdin?When updating from sourcesWhole words onlyWindowWindowsWrap aroundWrap at:YesYou can also extract translatable strings directly from the source code:You can’t drop more than one file on Poedit window.You must restart Poedit for this change to take effect.Your NameYour changes will be lost if you don’t save them.Your name and email address are only used to set the Last-Translator header of GNU gettext files.ZeroZoomaltctrldon’t delete temporary files (for debugging)e.g. nplurals=2; plural=(n > 1);fuzzy match within the filego to item at given line numberhandle a poedit:// URIpre-translate from TMshiftunknown languageyour_email@example.com“%s” is not a valid POT file.Project-Id-Version: poedit Report-Msgid-Bugs-To: help@poedit.net POT-Creation-Date: 2017-12-05 15:52+0100 PO-Revision-Date: 2017-09-21 11:38-0400 Last-Translator: vslavik Language-Team: Basque Language: eu_ES MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=(n != 1); X-Generator: crowdin.com X-Crowdin-Project: poedit X-Crowdin-Language: eu X-Crowdin-File: /locales/poedit.pot (aldatuta) (gorde gabe)Sarrera %d%d sarrerasarrera %d aurre-itzulita.%d sarrera aurre-itzulita.errore %d%d errore%d arazo aurkitu da itzulpenarekin. %d arazo aurkitu dira itzulpenarekin.'%2$s' fitxategiko kate %1$i ez da ongi kargatu.'%2$s' fitxategiko %1$i kate ez dira ongi kargatu.%s Formatua%s hobespenak%s formatua&Honi buruz&Poedit-i buruz&AplikatuA&tzera&Laster-markak&Utzi&Garbitu&Itxi&KopiatuE&zabatu&Eginda eta hurrengoa&Eginda eta hurrengoa&Editatu&Fitxategia&Bilatu…&GNU gettext eskuliburua&GNU gettext eskuliburua&Joan&Taldekatu testuinguruz&Taldekatu testuinguruz&Laguntza&Berria&Berria…&Hurrengoa >&Hurrengo itzulpena&Hurrengo itzulpena&EzAd&os&Online laguntza&Online laguntza&Ireki...&Ireki…&Itsatsi&Hobespenak&Hobespenak…A&urreko itzulpenaA&urreko itzulpena&Propietateak…&Purgatu ezabatutako itzulpenak&Purgatu ezabatutako itzulpenak&Irten&Berregin&Ordeztu&Gorde&Gorde honelaErakut&si erreferentziakErakut&si erreferentziak&DeseginItzuli gabeko &sarrerak lehenikItzuli gabeko &sarrerak lehenikEguneratu &iturburuetatik&Eguneratu iturburuetatik&Balioztatu itzulpenak&Balioztatu itzulpenak&Ikusi&Bai(0 berri, 0 zaharkitu)(Ikasi gehiago GNU gettext buruz)(Berria: %i, zaharkitua: %i)(Erabili hizkuntza lehenetsia)(Windows 8 edo berriagoa behar du)< &AurrekoaArrastatu eta jaregin fitxategiak hona edo erabili + botoiaArrastatu eta jaregin fitxategiak hona edo erabili + botoia%s(r)i buruzKontuakGehitu iruzkinaGehitu fitxategiak…Gehitu karpetak…Gehitu komodina…Gehitu iruzkinaGehitu direktorioa zerrendaraGehitu fitxategiak…Gehitu karpetak…Gehitu komodina…Gako-hitz gehigarriakxgettext marka gehigarriak:AurreratuaErauzte ezarpen aurreratuak…Erauzte ezarpen aurreratuakErauzte ezarpen aurreratuak…Itzulpen-fitxategi guztiakIruzkin guztiakErabili lehenetsitako gako-hitzak onartutako hizkuntzetan ere baiAlt+Betik aldatu fokua testu sarrera eremuraSarrera-fitxategien zerrendako elementu bat:Gako-hitzen zerrendako elementu bat:ItxuraAplikatuZiur "%s" erauzlea ezabatu nahi duzula?Ziur zaude itzulpen memoria berrezarri nahi duzula?Egiaztatu eguneraketak automatikokiKonpilatu MO fitxategia automatikoki gordetzeanAtzeraHasierako bidea:Beta bertsioek azken ezaugarriak eta hobekuntzak dituzte, baina apur bat ezegonkorrak izan daitezke.Ekarri denak aurreraHautsitako katalogo-fitxategia: msgstr plural forma msgid_plural gabe erabili daHautsitako katalogo-fitxategia: msgstr singular forma msgid_plural formarekin batera erabili daArakatuLehenetsita, zehatzak ez diren emaitzak bete egiten dira eta 'lana behar du' bezala markatu. Hautatu aukera hau zehazki bat datozenak besterik ez gehitzeko.&Katalogoa&GarbituUtziEzin izan da direktorio tenporala sortu.Ezin da programa abiarazi: %sJarri maiuskulaKatalogoaKatalogoa aldatu egin da. Aldaketak gordetzea nahi duzu?Katalogoaren propietateakKatalogoen &kudeatzaileaKatalogoen &kudeatzaileaKatalogoen kudeatzaileaAldatu erabiltzaile-interfazearen hizkuntzaKaraktere-jokoa:Egiaztatu dokumentua orainEgiaztatu gramatika ortografiarekinEgiaztatu ortografia idatzi bitarteanEgiaztatu eguneraketarik dagoen…Egiaztatu itzulpenean errorerik dagoenEgiaztatu eguneraketarik dagoen…Egiaztatu ortografiaGarbituGarbitu itzulpenaGarbitu iruzkinaGarbitu itzulpenaItxiParte hartu itzulpen batean besteekinParte hartu itzulpen batean besteekinIturburu-fitxategiak biltzen…Itzulpenak erauzteko komandoa:Iruzkina:Aurrizki hau duten iruzkinak:Konpilatu MO-ra…Konpilatu hona…Konpilatutako itzulpen-fitxategiakKonfiguratu iturburu kodearen erauzketa propietateetan.BerrespenaKopiatuKopiatu singularretikKopiatu jatorrizko testutikKopiatu singularretikKopiatu jatorrizko testutikZuzendu ortografia automatikokiEzin izan da %s fitxategia kargatu, hondatuta egon daiteke.Ezin izan da %s fitxategia gorde.Sortu itzulpen berriaSortu itzulpen berriaSortu itzulpen proiektu berriaCrowdin erroreaCrowdin onlineko lokalizazio kudeaketa plataforma bat eta elkarlaguntza itzulpen tresna bat da. Poedit-ek arazo gabe sinkronizatu ditzake Crowdinen kudeatutako PO fitxategiak.Ctrl+&EbakiErauzle pertsonalizatuak:Erauzle pertsonalizatuak:EbakiDatu-basearen tamaina diskoan:EzabatuEzabatu erauzleaEzabatu proiektuaDirektorioak:Erakutsi sarreren &ID-akErakutsi sarreren &ID-akZiur proiektu honetako katalogo guztiak eguneratu nahi dituzula?Proiektu hau ezabatu nahi duzu?Luzaroan erabili ez diren itzulpen guztiak kentzea nahi duzu?Ez gordeEz erakutsi berriroEz markatu zehazki bat datozenak 'lana behar du' bezalaEz gordeEz erakutsi berriroBeheraDeskargatu fitxategi bat Crowdin proiektutik, itzuli eta sinkronizatu zure aldaketak berriro.Azken itzulpenak deskargatzen…Itzulpenak deskargatzea desgaituta dago proiektu honetan.I&rtenE&sportatu HTML gisa…EditatuEditatu &iruzkinaEditatu &iruzkinaEditatu iruzkinaEditatu itzulpen batEditatu itzulpen batEditatu iruzkinaEditatu proiektuaEditatu proiektuaEdizioaEditatu…E-maila:SartuSartu pantaila osoanKatalogoko sarrerak ziurrenik oker egongo dira.Katalogo honetako sarrerek katalogoaren Plural-Forms goiburuak zehaztutakoaren desberdina den forma plural kopurua duErroreak dituzten sarrerak lehenikErroreak dituzten sarrerak lehenikErroreak dituzten sarrerak gorriz markatu dira zerrendan. Errorearen xehetasunak sarrera hautatzen duzunean erakutsiko dira.Errorea "%s" mezu-katalogo fitxategia kargatzean.Errorea fitxategia irekitzerakoanErrorea %s fitxategia irekitzean!Errorea katalogoa gordetzeanErroreakDenaBaztertutako bideakEsportatu honela…&Erauzi iturburuetatikErauzi itzultzaileentzako oharrak hemendik:Erauzi testua direktorio hauetako jatorrizko fitxategietatik:Kate itzulgarriak erauzten…Erauzlearen ezarpenaErauzleakKomando hutsegitea: %sKomunikazioak huts egin du Poedit prozesuarekin.Erauzitako katalogoa kargatzean huts egin du.Huts egin du gettext katalogoak batzerakoan.Hutsegitea itzulpen memoria eguneratzerakoan: %sFitxategia“%s” fitxategia ez dago."%s" fitxategia ez da mezu-katalogo bat."%s" soilik irakurtzeko fitxategia da eta ezin da gorde. Gorde beste izen batez.Fitxategia:Amaitzen…BilatuBilatu hurrengoaBilatu aurrekoaBilatu eta ordeztu…Bilatu iruzkinetanBilatu jatorrizko testuetanBilatu itzulpenetanBilatu hurrengoaBilatu aurrekoaZuzendu hizkuntzaKonpondu hizkuntzarenaKonpondu goiburuaKonpondu goiburua%i formaOhikoaGNU gettextOrokorraJoan %i laster-markaraJoan %i laster-markaraHTML fitxategiakLaguntzaEzkutatu %sEzkutatu besteakEzkutatu alboko barraEzkutatu egoera-barraEzkutatu jakinarazpen mezu hauIDaPurgarekin jarraitzen baduzu, ezabaturik bezala markaturiko itzulpen guztiak betiko kenduko dira. Berriro itzuli beharko dituzu etorkizunean atzera gehitzen badira.Ezikusi maiuskulak/minuskulakItzulpenak inportatzen…Beta bertsioak barneItzultzaileari buruzko informazioaInstalatuFitxategi baliogabeaErabilera:MantenduHizkuntza kodea edo izena (adib. en_GB)Itzulpen hizkuntza eta iturburuko hizkuntza bera da.Itzulpenaren hizkuntza ez dago ezarrita.Itzulpenaren hizkuntza:Hizkuntza hautapenaHizkuntza taldea:Hizkuntza:Azken aldaketaIkasi Gettext gako-hitzei buruzIkasi fitxategietatik…Ikasi gehiagoIkasi gehiago Crowdin-i buruzIkasi gettext gako-hitzei buruzIkasi gehiago plural formezIkasi fitxategietatik…Ikasi gehiagoIkasi gehiago Crowdin buruzEzkerra%d lerroa hondatuta dago "%s" fitxategian (%s datu baliogabea).Lerro amaierak:Luzapenen zerrenda puntu eta komaz bananduta (adib. *.cpp;*.h):Ezin dira MO fitxategiak zuzenean editatu Poedit erabiliz.Bihurtu minuskulakBihurtu maiuskulakGaizki osatutako goiburua: "%s"Ezberdintasunak batzen…MinimizatuItzulitako proiektuaren izenaIzena:Hu&rrengo amaigabeaHu&rrengo amaitu gabeaLana behar duLana behar duEz baimendu inoiz kate-zerrendak fokua hartzea. Gaitzen bada, ctrl+geziak erabili behar dituzu teklatu bidezko nabigaziorako edo zuzenean idazten hasi zaitezke, fokua aldatzeko tabuladorea sakatzeko beharrik gabe.BerriaBerria &POT/PO fitxategitik…Berria &POT/PO fitxategitik…Kate berriakHurrengo plural formaHurrengo plural formaEzEz da bat datorrenik aurkituEzin izan da sarrerarik aurre-itzuli.Ez da bat datorrenik aurkituEz da arazorik aurkitu itzulpenean.Ez da erreferentziarik aurkitu hautatutako elementuarentzat.Ez dago itzulpen proiekturik zerrendatuta zure Crowdin kontuan.Ez dira forma plural guztiak itzuli.Ez autorizatua, mesedez hasi saioa berriro.Itzultzaileentzako oharrak:AdosKate zaharkituakBatGaitu bakarrik zure itzulpen memoriaren kalitateaz fidatzen bazara. Lehenetsita itzulpen memoriako bat etortzean 'lana behar du' gisa markatzen dira eta erabili aurretik berrikusi behar dira.Bete bakarrik zehaztasun osoz bat datozeneanIrekiIreki Crowdin itzulpenaIreki Crowdin-etik…Ireki erabili berriaIreki badagoen PO fitxategi bat eta editatu itzulpena.Ireki katalogoaIreki katalogo-txantiloiaIreki Crowdin-etik…Ireki editoreanIreki editoreanIreki...Ireki…AukerakBeste batA&urreko amaigabeaA&urreko amaitu gabeaPO itzulpenaPO itzulpen-fitxategiakPOT itzulpen-txantiloiakPOT fitxategiak txantiloiak besterik ez dira eta ez dute inolako itzulpenik berez. Itzulpena egiteko, sortu PO fitxategi berri bat txantiloian oinarrituz.ItsatsiItsatsi eta bateratu estiloaBideakIreki eta editatu dagokion PO fitxategia. Gordetzen duzunean, MO fitxategia ere eguneratuko da.Mesedez gorde fitxategia lehenik. Atal hau ezin ordura arte editatu.PluralaKatalogoak erabiltzen dituen plural-formak ezohikoak dira %s-rako.Plural formak:Plurala:PoeditPoedit - Katalogoen kudeatzaileaPoeditek automatikoki konpondu du "%s" fitxategiko eduki baliogabea.Poedit sarrera berriak zure aurreko itzulpenekin edo itzulpen memoriarekin betetzen saiatu daiteke. Itzulpen memoria erabiltzea ez da oso eraginkorra izango erdi hutsik badago, baina hobetzen joango da itzulpenak gehitu ahala.Poedit itzulpen editore erabilerraz bat da.Aurre-i&tzuli…Aurre-itzuliAurre-itzulitaKate %u aurre-itzulita%u kate aurre-itzulitaAurre-itzultzen...Aurre-itzulpenak automatikoki aurkitzen ditu itzulpen memorian itzuli gabeko kateentzako bat etortze zehatzak edo gutxi gora beherakoak eta itzulpena betetzen du.HobespenakHobespenak...Hobespenak…Mantendu dauden fitxategien formatuaAurreko plural formaAurreko plural formaAurreko jatorrizko testua:Proiektuaren izena eta bertsioa:Proiektuaren izena:Proiektua:PurgatuPurgatu ezabatutako itzulpenakIrtenIrten %s(e)tikAzkenakBerreginErreferentziak:FreskatuGelditzen dira: %dOrdeztuOrdeztu &denakOrdeztu &denakOrdezpen-kateaOrdeztu…Beharrezkoa den Plural-Forms goiburua falta da.BerrezarriBerrezarri itzulpen memoriaItzulpen memoria berrezartzeak atzerabiderik gabe ezabatuko ditu bertan biltegiratutako itzulpen guztiak. Ezin duzu eragiketa hau desegin.BerrikusiEskuinaGordeGorde &honela…Gorde &honela…Gorde honelaGorde honela…Gorde katalogoaGorde aldaketakHautatu &denakHautatu denakHautatu direktorioaHautatu inportatzeko itzulpen-fitxategiakHautatu zure gogoko hizkuntza ZerbitzuakEzarri %i laster-markaEzarri hizkuntzaEzarri %i laster-markaEzarri hizkuntzaMaius.+Erakutsi denakErakutsi alboko barraErakutsi ortografia eta gramatikaErakutsi egoera-barraErakutsi ordezkapenakErakutsi edo ezkutatu alboko barraErakutsi alboko barraErakutsi egoera-barraErakutsi laburpena katalogoa eguneratu ondorenAlboko barraHasi saioaAmaitu saioaHasi saioaHasi saioa Crowdin-enAmaitu saioaSaioaren erabiltzailea:SingularraSingularra:Itsatsi/Kopiatu adimentsuaTipografia-marratxoakLotura adimentsuakTipografia-komatxoakOrdenatu &fitxategizOrdenatu i&turburuzOrdenatu Itz&ulpenezOrdenatu &fitxategizOrdenatu i&turburuzOrdenatu itz&ulpenezIturburuaren karaktere-jokoa:Iturburu kode erauzleak iturburu kode fitxategietan kate itzulgarriak aurkitzeko eta itzuli ahal izateko erauzteko erabiltzen dira.Iturburu kodea ez dago eskuragarri.Iturburu-fitxategiaIturburu-fitxategiko gertaera:Jatorrizko testuaJatorrizko testua — %sJatorrizko testua:Iturburuetako gako-hitzakIturburuen bideakIturburuetako gako-hitzakIturburuen bideakDiskurtsoaOrtografia egiaztaketa desgaituta dago, %s hiztegia ez dagoelako instalatuta.Ortografia eta gramatikaHasi hitz egitenGelditu hitz egiteaBiltegiratutako itzulpenak:Bilatzeko kateaOrdezkapenakIradokizunakIradokizunak ez daude eskuragarri itzulpen hizkuntza ez badago zuzen ezarrita. Beste ezaugarri batzuetan izan dezake eragina ere, plural formak esaterako.GNU gettext tresnek ezagututako programazio hizkuntza guztiak onartzen ditu (PHP, C/C++, C#, Perl, Python, Java, JavaScript eta beste batzuk).SinkronizatuSinkronizatu Crowdin-ekinSinkronizatu itzulpena Crowdin-ekinSinkronizatzenSinkronizazio erroreaHutsegitea %s-rekin sinkronizatzean.%s-rekin sinkronizatzen…Hutsegitea Crowdin-ekin sinkronizatzean.Sintaxi errorea Plural-Forms goiburuan ("%s").IMHartu badagoen PO fitxategi bat edo POT txantiloi bat eta sortu itzulpen berri bat bertatik.Hartu kate itzulgarriak dagoen POT txantiloi batetik.Taldearen izena eta e-mail helbidea edo URL-aTestu-ordezpenaItzulpen memoriak ez du fitxategi honen edukiaren antzekoa den katerik. Zuk eskuz itzulitako fitxategietatik ikasi ahala eraginkorragoa da Poedit Itzulpen erdi-automatikoentzat.Katalogoa ezin izan da "%s" karaktere-jokoan gorde katalogo ezarpenetan adierazi bezala. UTF-8 erabiliz gorde da eta ezarpenak ere era berean aldatu dira.Fitxategia ezin da MO formatuan konpilatu eta erabili.Fitxategia ezin da ireki.Fitxategiak bikoiztutako elementuak zituen, eta hau ez da onartzen PO fitxategietan, ezin izango litzateke fitxategia erabili. Poedit-ek arazoa konpondu du, baina 'lana behar du'. gisa markatutako itzulpenak gainbegiratu beharko zenituzte eta behar bada zuzendu.Fitxategia hondatuta edo Poedit-ek ezagutzen ez duen formatu batean egon daiteke.Fitxategia MO formatuan konpilatu da, baina ziurrenik ez du ongi funtzionatuko.Fitxategia ongi gorde eta MO formatuan konpilatu da, baina ziurrenik ez du ongi funtzionatuko.Fitxategia ongi gorde da, baina ezin da MO formatuan konpilatu eta erabili.Fitxategia seguru gorde da.Orain desegokia den itzulpena dagokion jatorrizko testua (eguneraketan aldatu aurrekoa).Katalogo hau betetzeko bide arruntena POT batetik eguneratzea da:Itzulpena ez da zuriune batekin hasten.Itzulpena lerro berri batekin amaitzen da, baina jatorrizko testua ez.Itzulpena zuriune batekin amaitzen da, baina jatorrizko testua ez.Itzulpena "%s"-rekin amaitzen da, baina jatorrizko testua "%s"-rekin.Itzulpenari lerro berri bat falta zaio amaieran.Itzulpenak zuriune bat falta du amaieran.Itzulpena erabiltzeko gertu dago, baina sarrera %d ez dago itzulita oraindik.Itzulpena erabiltzeko gertu dago, baina %d sarrera ez daude itzulita oraindik.Itzulpena erabiltzeko prest dago.Itzulpenak “%s”-rekin amaitu behar du.Itzulpenak ez du “%s”-rekin amaitu behar.Itzulpena esaldi gisa hasi behar da.Itzulpena minuskula batez hasi behar da.Itzulpena zuriune batekin hasten da, baina jatorrizko testua ez.Itzulpenak 'lana behar du' gisa markatu dira, ez zehatzak izan daitezkeelako. Zuzenak diren berrikusi beharko zenuke.Ez dago itzulpenik. Hori ezohikoa da.Arazo bat egon da fitxategiaren formatua txukuntzean (baina ongi gorde da).Erroreak egon dira katalogoa kargatzean. Ondorioz, datu batzuk falta daitezke edo hondatuta egon daitezke.Ezarpen hauek PO fitxategien barneko formatuari eragiten diote. Zehaztu betebehar bereiziren bat baduzu, adib. bertsio kontrola dela eta.Kate hauek ez daude jadanik iturburuetan. Poedit-ek orain katalogotik ezabatuko ditu.Kate hauek iturburuetan aurkitu dira, baina ez katalogoan. Poedit-ek orain katalogora gehituko ditu.Katalogo honek plural forma duten sarrerak ditu, baina ez du Plural-Forms goiburua konfiguratuta.Fitxategi hau Crowdin web interfazea erabiliz besterik ezin da editatu.Hau erauzlea abiarazteko agindua da. %o irteerako fitxategiaren izena bihurtzen da, %K gako-hitzen zerrenda, %F sarrerako fitxategia, %C karaktere-jokora (ikusi behean).Proiektu honek ez du Poedit erabiliz itzuli daitekeen fitxategirik.Kate hau Poedit-en itzulpen memorian aurkitu da.Hau agindu lerrora gehituko da jatorrizko karaktere kodeketa ematen bada besterik ez. %c karaktere kodeketa da.Hau komando lerrora erantsiko zaio sarrera-fitxategi bakoitzeko behin. %f fitxategi-izena bihurtzen da.Gako-hitz bakoitzeko behin erantsiko da hau komando lerrora. %k gako-hitza da.GuztiraEraldaketakSarrera itzulgarriak ez dira eskuz gehitzen Gettext sisteman, automatikoki erauzten dira iturburu kodetik. Honela, eguneratuta eta zehatz daude. Itzultzaileek arrunt garatzaileek beraientzat prestatutako PO txantiloi fitxategiak (POT-ak) erabiltzen dituzte.Itzulita: %d / %d (%%%d)Itzulpen hizkuntzaItzulpen memoriaItzulpenak lana &behar duItzulpenaren propietateakItzulpenak &lana behar duItzulpenaren propietateakItzulpen-iradokizunak:Itzulpena — %sItzulpena:Itzulpenak ezin izan dira eguneratu iturburu kodetik, ez delako koderik aurkitu katalogoaren propietateetan adierazitako kokalekuan.BiUTF-8 (gomendatua)DeseginKontrolatu gabeko salbuespen bat gertatu da: %sUnix (gomendatua)Itzuli gabeGoraEguneratuEguneratu denakEguneratu proiektuko katalogo guztiakEguneratu katalogoa - sinkronizatu iturburuekinEguneratu &POT fitxategitik…Eguneratu &POT fitxategitik…Eguneratu POT fitxategitikEguneratu laburpenaEguneraketakKatalogoa eguneratzenEguneraketak huts egin duHuts egin du katalogoa eguneratzerakoan. Klikatu 'Xehetasunak >>' xehetasunak ikusteko.Erabiltzailearen informazioa eguneratzen…Itzulpenak kargatzen…Erabili espresio pertsonalizatuaErabili aukeratutako tipografia zerrendetan:Erabili aukeratutako tipografia testu eremuetan:Erabili hizkuntza honetarako lehenetsitako arauakErabili gako-hitzak (funtzioen izenak) kate itzulgarriak antzemateko iturburu fitxategietan:Erabili itzulpen memoriaBalioztatuBalioztapenaren emaitzak%s bertsioaAutentifikazioaren zain…Ongi etorri Poedit-eraZer da Crowdin?Iturburuetatik eguneratzeanHitz osoak bakarrikLeihoaWindowsItzulbiratuItzulbiratzea:BaiKate itzulgarriak zuzenean erauzi ditzakezu iturburu kodetik:Ezin duzu fitxategi bat baino gehiago jaregin Poedit leihoan.Poedit berrabiarazi behar duzu aldaketa honek eragina izateko.Zure izenaZure aldaketak galdu egingo dira ez badituzu gordetzen.Zure izena eta e-mail helbidea GNU gettext fitxategietako Last-Translator goiburua ezartzeko besterik ez da erabiliko.ZeroZoomaaltctrlez ezabatu fitxategi tenporalak (arazketarako)Adib. nplurals=2; plural=(n > 1);zalantzako bat egitea fitxategianjoan emandako lerro zenbakiko elementuramaneiatu poedit:// URI bataurre-itzuli itzulpen memoriatikmaius.hizkuntza ezezagunazure-posta-helbidea@adibidea.com"%s" ez da baliozko POT fitxategi bat.poedit-2.0.6/locales/uk.mo0000664000372000037200000017472413230132042012327 00000000000000P%1 1 11<11J 2gW2 22 22 222 3333%3+333B3Q3W3]3f3z333333333333 3 44 4)4 04=4M4c4y44444444445 5(5D5Y5n55555555 6 '6:36:n6 666 6 666 6 7 #707?7O7c7~77777 71898'>8f88 8878689)=9g9 l9]w99A9I*:t:{:; ;;";:; U;`;.h;;;;;;;;<*<F<#[<<<<<<<<(<(=7= R=s=|== ==/= = >>#>9>L>b>2>>>>> ?)???????@@@ 2@?@R@Ee@"@?@ AA*.A YAfAyAK~A"A5A#B)BHAH HHI 'IHI PI ]IiI"nI;I(IIJ&J 5J ?JMJjJ ~JJJJJ JJK:K PK<^K.KKKKLL*%LPLVLgL xL LLJMNMgM MMMMM#MM'M$N7DN$|N%NNNNNNOOOO O2O P#P9PNP]PlPtP|PPPPPPPPQQQnQERZR>aR RRRR@RS-T̆U ax4+s`Ԉkz^nA9Պ';6'r$$#,$50Z?Hˌ*L?*'ߍ!0N1]11@4+Fr8bKf*y5*ڐ5S;d0,%,R= Ԓߓ00(Y1j%Ӕ ++'eS=G?$W`|ݖ$#?` M%Y&&%%%.%T!z!ՙ7K-y//Iyd/-9œ41@G e/CN@I/7ў: ID?IΟ$!DF JT ly!%$/$6[!{%բ% !/ DP'a'У**-,X#0&٥23!H jx3O4 B_(s H! +.KHz@è!&.F uX"٩sXpɪ 5 (?hT֫5߫5+K+w .#9#]**"k"JIs7;O17 ivPD3)D n#W .+ Z&{&ɴݴ 99?y %Ե̶1ݶ ҷgevܸ+^:\J)%ѻ-%(ռ8IT,,˾1,*W r2 ¿Ϳ޿'@QjM1 >  *7Ha{D-&r  !(9Rb(>(;(dV ! ;F [ h2v!;-;-i;--C/s0u7" ,;>z;?#'&; S`ur;%X8~)7#4<XR"q Y}T,}F=3rfqt!4rT?h}aoIg>DITQng}7J-l&y@tGYCRk(*S"o=)=)8$b"B!%G cn}Cm&E&l$*&=H. FO[h[[A':4J)'  *:AaV4YU%KNqU55kq1D}],6 9BW6tC3H>C'# )h?*Kq#-0^aG2zFYblx&2LADZ.EwPi=Ab[kv @4uh~ uL@|pnf.nTN? QI2:qOKcajd F!p ]U>T+rXi=J%Vxz51^s4 NH/F"8/XJ`om #UwQk :Gs$ 8jL!~I1,(<D-9B>|;$H(E?g<y!dYgIo \ <eN+rM5&cM5 :"K-A+EmZ7C"603B $%RfRVeyOG*S@ M,4}_{O%W91J)S[`' 7)v &;*{(l_.03=\7P8/t';P (modified) (unsaved)%d entry%d entries%d entry was pre-translated.%d entries were pre-translated.%d error%d errors%d issue with the translation found.%d issues with the translation found.%i line of file “%s” was not loaded correctly.%i lines of file “%s” were not loaded correctly.%s Format%s Preferences%s format&About&About Poedit&Apply&Back&Bookmarks&Cancel&Clear&Close&Copy&Delete&Done and Next&Done and next&Edit&File&Find…&GNU gettext Manual&GNU gettext manual&Go&Group By Context&Group by context&Help&New&New…&Next >&Next Translation&Next translation&No&OK&Online Help&Online help&Open...&Open…&Paste&Preferences&Preferences…&Previous Translation&Previous translation&Properties…&Purge Deleted Translations&Purge deleted translations&Quit&Redo&Replace&Save&Save as&Show References&Show references&Undo&Untranslated Entries First&Untranslated entries first&Update from Sources&Update from sources&Validate Translations&Validate translations&View&Yes(0 new, 0 obsolete)(Learn more about GNU gettext)(New: %i, obsolete: %i)(Use default language)(requires Windows 8 or newer)< &PreviousDrag and Drop Folders Here or use the + buttonDrag and drop folders here or use the + buttonAbout %sAccountsAdd CommentAdd Files…Add Folders…Add Wildcard…Add commentAdd directory to the listAdd files…Add folders…Add wildcard…Additional keywordsAdditional xgettext flags:AdvancedAdvanced Extraction Settings…Advanced extraction settingsAdvanced extraction settings…All Translation FilesAll commentsAlso use default keywords for supported languagesAlt+Always change focus to text input fieldAn item in input files list:An item in keywords list:AppearanceApplyAre you sure you want to delete the “%s” extractor?Are you sure you want to reset the translation memory?Automatically check for updatesAutomatically compile MO file when savingBackBase path:Beta versions contain the latest new features and improvements, but may be a bit less stable.Bring All to FrontBroken catalog file: plural form msgstr used without msgid_pluralBroken catalog file: singular form msgstr used together with msgid_pluralBrowseBy default, inaccurate results are filled in as well and marked as needing work. Check this option to only include accurate matches.C&atalogC&learCancelCannot create temporary directory.Cannot execute program: %sCapitalizeCatalogCatalog modified. Do you want to save changes?Catalog propertiesCatalogs &ManagerCatalogs &managerCatalogs ManagerChange UI languageCharset:Check Document NowCheck Grammar With SpellingCheck Spelling While TypingCheck for Updates…Check for errors in the translationCheck for updates…Check spellingClearClear TranslationClear the commentClear translationCloseCollaborate on a Translation with OthersCollaborate on a translation with othersCollecting source files…Command to extract translations:Comment:Comments prefixed with:Compile to MO…Compile to…Compiled Translation FilesConfigure source code extraction in Properties.ConfirmationCopyCopy From SingularCopy from Source TextCopy from singularCopy from source textCorrect Spelling AutomaticallyCouldn’t load file %s, it is probably corrupted.Couldn’t save file %s.Create New TranslationCreate new translationCreate new translations projectCrowdin errorCrowdin is an online localization management platform and collaborative translation tool. Poedit can seamlessly sync PO files managed at Crowdin.Ctrl+Cu&tCustom Extractors:Custom extractors:CutDatabase size on disk:DeleteDelete extractorDelete the projectDirectories:Display Entry &IDsDisplay entry &IDsDo you really want to do mass update of all catalogs in this project?Do you want to delete the project?Do you want to remove all translations that are no longer used?Don’t SaveDon’t Show AgainDon’t mark exact matches as needing workDon’t saveDon’t show againDownDownload a file from Crowdin project, translate and sync your changes back.Downloading latest translations…Downloading translations is disabled in this project.E&xitE&xport as HTML…EditEdit &CommentEdit &commentEdit CommentEdit a TranslationEdit a translationEdit commentEdit projectEdit the projectEditingEdit…Email:EnterEnter Full ScreenEntries in the catalog are probably incorrect.Entries in this catalog have different plural forms count from what catalog’s Plural-Forms header saysEntries with Errors FirstEntries with errors firstEntries with errors were marked in red in the list. Details of the error will be shown when you select such an entry.Error loading message catalog file “%s”.Error opening fileError opening file %s!Error saving catalogErrorsEverythingExcluded pathsExport as…Extract from sourcesExtract notes for translators from:Extract text from source files in the following directories:Extracting translatable strings…Extractor setupExtractorsFailed command: %sFailed to communicate with Poedit process.Failed to load extracted catalog.Failed to merge gettext catalogs.Failed to update translation memory: %sFileFile “%s” doesn’t exist.File “%s” is not a message catalog.File “%s” is read-only and cannot be saved. Please save it under different name.File:Finalizing…FindFind NextFind PreviousFind and Replace…Find in commentsFind in source textsFind in translationsFind nextFind previousFix LanguageFix languageFix the HeaderFix the headerForm %iFrequentGNU gettextGeneralGo to Bookmark %iGo to bookmark %iHTML FilesHelpHide %sHide OthersHide SidebarHide Status BarHide this notification messageIDIf you continue with purging, all translations marked as deleted will be permanently removed. You will have to translate them again if they are added back in the future.Ignore caseImporting translations…Include beta versionsInformation about the translatorInstallInvalid fileInvocation:KeepLanguage Code or Name (e.g. en_GB)Language of the translation is the same as source language.Language of the translation isn’t set.Language of the translation:Language selectionLanguage team:Language:Last modifiedLearn About Gettext KeywordsLearn From Files…Learn MoreLearn More About CrowdinLearn about gettext keywordsLearn about plural formsLearn from files…Learn moreLearn more about CrowdinLeftLine %d of file “%s” is corrupted (not valid %s data).Line endings:List of extensions separated by semicolons (e.g. *.cpp;*.h):MO files can’t be directly edited in Poedit.Make Lower CaseMake Upper CaseMalformed header: “%s”Merging differences…MinimizeName of the project the translation is forName:Ne&xt UnfinishedNe&xt unfinishedNeeds WorkNeeds workNever let the list of strings take focus. If enabled, you must use Ctrl-arrows for keyboard navigation but you can also type text immediately, without having to press Tab to change focus.NewNew From &POT/PO File…New from &POT/PO file…New stringsNext Plural FormNext plural formNoNo Matches FoundNo entries could be pre-translated.No matches foundNo problems with the translation found.No references for the selected item.No translation projects listed in your Crowdin account.Not all plural forms are translated.Not authorized, please sign in again.Notes for translators:OKObsolete stringsOneOnly enable if you trust the quality of your TM. By default, all matches from the TM are marked as needing work and should be reviewed before use.Only fill in exact matchesOpenOpen Crowdin translationOpen From Crowdin…Open RecentOpen an existing PO file and edit the translation.Open catalogOpen catalog templateOpen from Crowdin…Open in EditorOpen in editorOpen...Open…OptionsOtherP&revious UnfinishedP&revious unfinishedPO TranslationPO Translation FilesPOT Translation TemplatesPOT files are only templates and don’t contain any translations themselves. To make a translation, create a new PO file based on the template.PastePaste and Match StylePathsPlease open and edit the corresponding PO file instead. When you save it, the MO file will be updated as well.Please save the file first. This section cannot be edited until then.PluralPlural forms expression used by the catalog is unusual for %s.Plural forms:Plural:PoeditPoedit - Catalogs managerPoedit automatically fixed invalid content in the file “%s”.Poedit can attempt to fill in new entries from only previous translations in the file or from your entire translation memory. Using the TM won’t be very effective if it’s near-empty, but it will get better as you add more translations to it.Poedit is an easy to use translations editor.Pre-&translate…Pre-translatePre-translatedPre-translated %u stringPre-translated %u stringsPre-translating…Pre-translation automatically finds exact or fuzzy matches for untranslated strings in the translation memory and fills in their translations.PreferencesPreferences...Preferences…Preserve formatting of existing filesPrevious Plural FormPrevious plural formPrevious source text:Project name and version:Project name:Project:PurgePurge deleted translationsQuitQuit %sRecentRedoReferences:RefreshRemaining: %dReplaceReplace &AllReplace &allReplacement stringReplace…Required header Plural-Forms is missing.ResetReset translation memoryResetting the translation memory will irrevocably delete all stored translations from it. You can’t undo this operation.ReviewRightSaveSave &As…Save &as…Save asSave as…Save catalogSave changesSelect &AllSelect AllSelect directorySelect translation files to importSelect your preferred languageServicesSet Bookmark %iSet LanguageSet bookmark %iSet languageShift+Show AllShow SidebarShow Spelling and GrammarShow Status BarShow SubstitutionsShow or hide the sidebarShow sidebarShow status barShow summary after catalog updateSidebarSign InSign OutSign inSign in to CrowdinSign outSigned in as:SingularSingular:Smart Copy/PasteSmart DashesSmart LinksSmart QuotesSort by &File OrderSort by &SourceSort by &TranslationSort by &file orderSort by &sourceSort by &translationSource code charset:Source code extractors are used to find translatable strings in the source code files and extract them so that they can be translated.Source code not available.Source fileSource file occurrence:Source textSource text — %sSource text:Sources KeywordsSources PathsSources keywordsSources pathsSpeechSpellchecking is disabled, because the dictionary for %s isn’t installed.Spelling and GrammarStart SpeakingStop SpeakingStored translations:String to findSubstitutionsSuggestionsSuggestions are not available if the translation language is not set correctly. Other features, such as plural forms, may be affected as well.Supports all programming languages recognized by GNU gettext tools (PHP, C/C++, C#, Perl, Python, Java, JavaScript and others).SyncSync with CrowdinSynchronize the translation with CrowdinSyncingSyncing errorSyncing with %s failed.Syncing with %s…Syncing with Crowdin failed.Syntax error in Plural-Forms header ("%s").TMTake an existing PO file or POT template and create a new translation from it.Take translatable strings from an existing POT template.Team name and email address or URLText ReplacementThe TM doesn’t contain any strings similar to the content of this file. It is only effective for semi-automatic translations after Poedit learns enough from files that you translated manually.The catalog couldn’t be saved in “%s” charset as specified in catalog settings. It was saved in UTF-8 instead and the setting was modified accordingly.The file cannot be compiled into the MO format and used.The file cannot be opened.The file contained duplicate items, which is not allowed in PO files and would prevent the file from being used. Poedit fixed the issue, but you should review translations of any items marked as needing work and correct them if necessary.The file may be either corrupted or in a format not recognized by Poedit.The file was compiled into the MO format, but it will probably not work correctly.The file was saved safely and compiled into the MO format, but it will probably not work correctly.The file was saved safely, but it cannot be compiled into the MO format and used.The file was saved safely.The old source text (before it changed during an update) that the now-inaccurate translation corresponds to.The simplest way to fill this catalog is to update it from a POT:The translation doesn’t start with a space.The translation ends with a newline, but the source text doesn’t.The translation ends with a space, but the source text doesn’t.The translation ends with “%s”, but the source text ends with “%s”.The translation is missing a newline at the end.The translation is missing a space at the end.The translation is ready for use, but %d entry is not translated yet.The translation is ready for use, but %d entries are not translated yet.The translation is ready for use.The translation should end with “%s”.The translation should not end with “%s”.The translation should start as a sentence.The translation should start with a lowercase character.The translation starts with a space, but the source text doesn’t.The translations were marked as needing work, because they may be inaccurate. You should review them for correctness.There are no translations. That’s unusual.There was a problem formatting the file nicely (but it was saved all right).There were errors when loading the catalog. Some data may be missing or corrupted as the result.These settings affect internal formatting of PO files. Adjust them if you have specific requirements e.g. because of version control.These strings are no longer in the sources. Poedit will remove them from the catalog now.These strings were found in the sources but were not in the catalog. Poedit will add them to the catalog now.This catalog has entries with plural forms, but doesn’t have Plural-Forms header configured.This file can only be edited in Crowdin’s web interface.This is the command used to launch the extractor. %o expands to the name of output file, %K to list of keywords, %F to list of input files, %C to charset flag (see below).This project has no files that can be translated in Poedit.This string was found in Poedit’s translation memory.This will be attached to the command line only if source code charset was given. %c expands to charset value.This will be attached to the command line once for each input file. %f expands to the filename.This will be attached to the command line once for each keyword. %k expands to the keyword.TotalTransformationsTranslatable entries aren’t added manually in the Gettext system, but are automatically extracted from source code. This way, they stay up to date and accurate. Translators typically use PO template files (POTs) prepared for them by the developer.Translated: %d of %d (%d %%)Translation LanguageTranslation MemoryTranslation Needs &WorkTranslation PropertiesTranslation needs &workTranslation propertiesTranslation suggestions:Translation — %sTranslation:Translations couldn’t be updated from the source code, because no code was found in the location specified in the catalog’s Properties.TwoUTF-8 (recommended)UndoUnhandled exception occurred: %sUnix (recommended)UntransUpUpdateUpdate allUpdate all catalogs in the projectUpdate catalog - synchronize it with sourcesUpdate from &POT File…Update from &POT file…Update from POTUpdate summaryUpdatesUpdating catalogUpdating failedUpdating the catalog failed. Click on 'Details >>' for details.Updating user information…Uploading translations…Use custom expressionUse custom list font:Use custom text fields font:Use default rules for this languageUse these keywords (function names) to recognize translatable strings in source files:Use translation memoryValidateValidation resultsVersion %sWaiting for authentication…Welcome to PoeditWhat is Crowdin?When updating from sourcesWhole words onlyWindowWindowsWrap aroundWrap at:YesYou can also extract translatable strings directly from the source code:You can’t drop more than one file on Poedit window.You must restart Poedit for this change to take effect.Your NameYour changes will be lost if you don’t save them.Your name and email address are only used to set the Last-Translator header of GNU gettext files.ZeroZoomaltctrldon’t delete temporary files (for debugging)e.g. nplurals=2; plural=(n > 1);fuzzy match within the filego to item at given line numberhandle a poedit:// URIpre-translate from TMshiftunknown languageyour_email@example.com“%s” is not a valid POT file.Project-Id-Version: poedit Report-Msgid-Bugs-To: help@poedit.net POT-Creation-Date: 2017-12-05 15:52+0100 PO-Revision-Date: 2017-09-21 11:20-0400 Last-Translator: vslavik Language-Team: Ukrainian Language: uk_UA MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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); X-Generator: crowdin.com X-Crowdin-Project: poedit X-Crowdin-Language: uk X-Crowdin-File: /locales/poedit.pot (змінено) (не збережено)%d елемент%d елементи%d елементів%d запис було попередньо перекладено.%d записи було попередньо перекладено.%d записів було попередньо перекладено.%d помилка%d помилки%d помилокЗнайдено %d проблему з перекладом.Знайдено %d проблеми з перекладом.Знайдено %d проблем із перекладом.%i рядок файлу „%s“ було завантажено некоректно.%i рядки файлу „%s“ було завантажено некоректно.%i рядків файлу „%s“ було завантажено некоректно.Формат %sНалаштування %sФормат %s&Про програму...&Про Poedit...&Застосувати&ПовернутисяЗак&ладки&Відмінити&ОчиститиЗ&акрити&Копіювати&Вилучити&Завершити та до наступного&Завершити та до наступного&Редагування&Файл&Знайти…&Документація GNU gettext&Документація GNU gettextПере&йти&Групувати по контексту&Групувати по контексту&Довідка&Новий&Новий…&Наступний >Наступний перекладНаступний переклад&Ні&ОК&Онлайн-довідка&Онлайн-довідка&Відкрити...&Відкрити…&Вставити&Налаштування&Налаштування…Попередній перекладПопередній переклад&Властивості…&Знищити вилучені переклади&Знищити вилучені переклади&Вийти&Повторити&Замінити&Зберегти&Зберегти як&Показувати посилання&Показувати посилання&СкасуватиНеперекладене — &згори&Неперекладене — згориПоновити з &джерельних кодів&Поновити з джерельних кодів&Перевірити переклад&Перевірити переклад&Вигляд&Так(0 нових, 0 застарілих)(Більше про GNU gettext)(Нових: %i, застарілих: %i)(Мова за замовчуванням)(потрібно Windows 8 або пізнішої версії)< &ПопереднійПеретягніть теки сюди або використайте кнопку „+“Перетягніть теки сюди або використайте кнопку „+“<без назви>Про %sОблікові записиДодати коментарДодати файли…Додати теки…Додати шаблон…Додати коментарДодати теку до спискуДодати файли…Додати теки…Додати шаблон…Додаткові ключові словаДодаткові прапорці xgettext:Розширені параметриРозширені налаштування видобування…Розширені налаштування видобуванняРозширені налаштування видобування…Всі файли перекладуУсі коментаріТакож використовувати ключові слова по замовчуванню для підтримуваних мовAlt+Завжди встановлювати фокус у поле вводу тестуЕлемент в списку вхідних файлів:Елемент списку ключових слів:Зовнішній виглядЗастосуватиВи впевнені, що бажаєте видалити екстрактор "%s"?Ви впевнені, що хочете очистити пам'ять перекладів?Автоматично перевіряти оновленняАвтоматично компілювати файл MO при збереженніПовернутисяБазовий шлях:Бета-версії містять новітні функції і поліпшення, але можуть бути менш стабільними.Вивести все на передній планЗіпсований файл каталогу: msgstr у множині використано без msgid_pluralЗіпсований файл каталогу: msgstr у однині використана разом із формою множини msgid_pluralВибратиПо-замовчуванням результати, які не повністю збігаються всеодно будуть заповнені, але помічені як "потребує доопрацювання".&Каталог&ОчиститиСкасуватиНе вдалося створити тимчасову теку.Не вдалося виконати програму: %sПерша ВеликаКаталогКаталог змінено. Зберегти зміни?Властивості каталогуМенеджер &каталогівМенеджер &каталогівМенеджер каталогівЗмінити мову інтерфейсуКодування каталогу:Перевірити документ заразПеревірити граматику і орфографіюПеревіряти орфографію під час введенняПеревірити оновлення…Перевірити переклад на наявність помилокПеревірити оновлення…Перевірка орфографіїОчиститиСтерти перекладОчистити коментарСтерти перекладЗакритиСумісний переклад з іншимиСумісний переклад з іншимиЗбирання вихідних файлів…Команда для видобування перекладу:Коментар:Коментарі із префіксом:Компілювати в MO…Компілювати в…Скомпільовані файли перекладуНалаштувати видобуток вихідного коду у Властивостях.ПідтвердженняКопіюватиКопіювати форму одниниКопіювати з вихідного текстуКопіювати форму одниниКопіювати з вихідного текстуВиправляти автоматично орфографічні помилкиНеможливо завантажити файл %s. Можливо він пошкоджений.Неможливо зберегти файл %s.Створити новий перекладСтворити новий перекладСтворити новий проект перекладівПомилка CrowdinCrowdin це онлайн-платформа управління локалізаціями та інструмент для спільного перекладу. Poedit може легко синхронізувати файли PO, керованих в Crowdin.Ctrl+Ви&різатиКористувацькі видобувачі:Користувацькі видобувачі:ВирізатиРозмір бази даних на диску:ВидалитиВидалити екстракторВилучити проектТеки:Показувати &ID елементівПоказувати &ID елементівВи дійсно хочете поновити всі каталоги в цьому проекті?Ви дійсно хочете вилучити проект?Що робити з невикористаним перекладом?Не зберігатиНе показувати зновуНе позначати точні збіги як "потребує доопрацювання"Не зберігатиНе показувати зновуВнизЗавантажити файл з проекту Crowdin, перекласти та синхронізувати зміни назад.Завантажити найновіший переклад…Завантаження перекладів відключена в цьому проекті.&ВийтиE&кспортувати як HTML…РедагуватиРедагувати &коментарРедагувати &коментарРедагувати коментарРедагувати перекладРедагувати перекладРедагувати коментарРедагувати проектРедагувати проектРедагуванняЗмінити…Emaіl:EnterПерейти в повноекранний режимНапевне, у каталозі є неправильні записи.Елементи цього каталогу мають форми множини, відмінні від вказаних у заголовку Plural-Forms.Записи з помилками - згориЗаписи з помилками - згориЕлементи з помилками позначені у списку червоним. Виділіть елемент, що переглянути деталі помилки.Помилка завантаження файлу каталогу повідомлень “%s”.Не вдалося відкрити файлПомилка при відкритті файлу '%s'!Помилка збереження каталогуПомилкиУсеВиключені шляхиЕкспортувати як…Видобути з вихідного кодуВидобути нотатки для перекладачів з:Шукати джерельний текст у наступних теках:Видобування рядків для перекладу…Налаштування екстрактораЕкстракториНе вдалося виконати команду: %sПомилка зв’язку з процесом Poedit.Не вдалося завантажити добутий каталог.Не вдалося об'єднати gettext-каталоги.Не вдалося оновити пам'ять перекладів: %sФайлФайлу “%s” не існує.Файл “%s” не є каталогом повідомлень.Файл «%s» доступний лише для читання і не може бути збережений. Будь ласка, збережіть його з іншою назвою.Файл:Завершення…ЗнайтиЗнайти наступнийЗнайти попереднійЗнайти та замінити…Шукати в коментаряхШукати у вихідних текстахШукати у перекладахЗнайти наступнийЗнайти попереднійВиправити мовуВиправити мовуВиправити заголовокВиправити заголовокФорма %iНайчастішіGNU gettextЗагальніПерейти до закладки %iПерейти до закладки %iHTML файлиДовідкаПриховати %sПриховати іншіПриховати бічну панельПриховати панель стануСховати це повідомленняIDТочно вилучити з каталогу усі невикористані переклади? Якщо вони знову знадобляться в майбутньому, вам доведеться ще раз перекладати їх.Ігнорувати регістрІмпортування перекладів…Включити бета-версіїІнформація про перекладачаВстановитиНеправильний файлВиклик:ЗалишитиКод мови або назва (напр. en_GB)Мова перекладу така сама, як і вихідна мова.Мову перекладу не зазначено.Мова перекладу:Вибір мовиКоманда перекладачів:Мова:Останні зміниДізнатися більше про ключові слова GettextЗібрати з файлів…Дізнатися більшеДізнатися більше про CrowdinДізнатися більше про ключові слова GettextДізнатися більше про форми множиниЗібрати з файлів…Дізнатися більшеДізнатися більше про CrowdinВлівоРядок %d файлу „%s“ пошкоджений (недійсні дані %s).Закінчення рядків:Список розширень, розділених крапкою з комою (наприклад, *.cpp;*.h):Файли MO не можна редагувати безпосередньо в Poedit.У нижній регістрУ ВЕРХНІЙ РЕГІСТРНеправильний заголовок: „%s“Злиття відмінностей…МінімізуватиНазва проекту, для якого призначений перекладІм'я:До н&аступного незавершеногоДо н&аступного незавершеногоПотребує доопрацюванняПотребує доопрацюванняНіколи не дозволяйте списку рядків отримати фокус. Якщо активовано, можна використовувати Ctrl+стрілки для навігації за допомогою клавіатури, але вводити текст можна починати одразу не натискаючи Tab для зміни фокусу.НовийНовий з &POT/PO-файлу…Новий з &POT/PO-файлу…Нові рядкиНаступна форма множиниНаступна форма множиниНіЗбігів не знайденоНемає записів, які можна було б попередньо перекладається.Збігів не знайденоЖодних проблем з перекладом не знайдено.Немає посилання для вибраного елемента.У вашому обліковому записі Crowdin немає перекладацьких проектів.Перекладено не всі форм множини.Не авторизовані, повторіть будь ласка вхід.Примітка для перекладачів:ГараздЗастарілі рядкиОдинУвімкніть це тільки якщо ви впевнені в якості вашій пам'яті перекладів. За замовчуванням всі збіги з пам'яті перекладів помічаються як "потребує доопрацювання" і підлягають перевірці.Заповнювати тільки при точних збігахВідкритиВідкрити переклад CrowdinВідкрити на Crowdin…Відкрити нещодавніВідкрити наявний PO-файл та редагувати переклад.Відкрити каталогВідкрити шаблон каталогуВідкрити на Crowdin…Відкрити в редакторіВідкрити в редакторіВідкрити...Відкрити…ОпціїІншеДо п&опереднього незавершеногоДо п&опереднього незавершеногоPO перекладФайли перекладу POШаблони перекладу POTPOT файли - лише шаблони і самі не містять будь-яких перекладів. Щоб зробити переклад, створіть новий файл PO, заснований на цьому шаблоні.ВставитиВставити в поточному стиліШляхиБудь ласка, відкрийте і редагуйте відповідний PO-файл. Коли ви збережете його, MO-файл також оновиться.Будь ласка, спершу збережіть файл. Без збереження цей розділ редагувати не можна.МножинаВираз форми множини, вжитий у каталозі, незвичний для %s.Форми множини:Множина:PoeditPoedit. Менеджер каталогівPoedit автоматично виправив хибний вміст у файлі „%s“.Poedit може спробувати заповнити нові рядки тільки попередніми перекладами з цього файлу або з вашої пам'яті перекладів. Використання ПП буде не дуже ефективним, якщо вона майже порожня, але буде поліпшуватися в міру додавання перекладів.Poedit — простий у використанні редактор перекладів.Попередній &переклад…Попередній перекладПопередньо перекладенийПопередньо перекладено %u рядокПопередньо перекладено %u рядкиПопередньо перекладено %u рядківПопередній переклад…Попередній переклад автоматично знаходить точні або нечіткі збіги для неперекладених рядків в пам'яті перекладів і заповнює в їх перекладах.НалаштуванняНалаштування...Налаштування…Зберігати форматування існуючих файлівПопередня форма множиниПопередня форма множиниПопередній вихідний текст:Назва та версія проекту:Назва проекту:Проект:ЗнищитиЗнищити вилучені перекладиВийтиВийти з %sНещодавніВідновитиПосилання:ОновитиЗалишилося: %dЗамінитиЗамінити &всеЗамінити &всеРядок заміниЗамінити…Відсутній обов’язковий заголовок Plural-Forms.СкинутиСкинути пам'ять перекладівПри очищені пам'яті перекладів будуть безповоротно видалені всі збережені переклади. Ви не зможете скасувати цю операцію.ОглядВправоЗберегтиЗберегти як…Зберегти &як…Зберегти якЗберегти як…Зберегти каталогЗберегти зміниВибрати &всеВибрати всеВиберіть текуВиберіть файли перекладу для імпортуВиберіть бажану мовуСервісиДодати закладку %iВибрати мовуДодати закладку %iВибрати мовуShift+Показати всеПоказати бічну панельПоказати орфографічні та граматичні помилкиПоказати панель стануПоказати заміниПоказати або сховати бічну панельПоказати бічну панельПоказати панель стануПоказувати підсумок після поновлення каталогуБічна панельУвійтиВийтиУвійтиУвійти до CrowdinВийтиУвійшли як:ОднинаОднина:Розумне копіювання/вставкаРозумні тиреРозумні посиланняРозумні цитатиСортувати за положенням у &файліСортувати за &оригіналомСортувати за &перекладомСортувати за положенням у &файліСортувати за &оригіналомСортувати за &перекладомКодування файлів з джерельним кодом:Екстрактори використовуються для пошуку рядків, що перекладаються, у файлах вихідного коду і витягують їх так, щоб їх можна було перекласти.Вихідний код не доступний.Вихідний файлРозташування вихідного файлу:ОригіналВихідний текст — %sОригінал:Ключові слова джерельних файлівШлях до джерелКлючові слова джерельних файлівШлях до джерелМовленняПеревірка орфографії відключена, тому що не встановлено словник для мови %s.Перевірка орфографії та граматикиПочати озвучуванняЗупинити озвучуванняЗбережені переклади:Рядок пошукуЗаміниПропозиціїПропозиції будуть недоступними, якщо неправильно вказано мову перекладу. Інші функції, такі як форми множини, також можуть бути порушені.Підтримуються всі мови програмування, що розпізнаються інструментами GNU gettext (PHP, C/C++, C#, Perl, Python, Java, JavaScript тощо).СинхронізуватиСинхронізація з CrowdinСинхронізувати переклад з CrowdinСинхронізаціяПомилка синхронізаціїНе вдалось синхронізувати з %s.Синхронізація з %s…Не вдалось синхронізувати з Crowdin.Синтаксична помилка в заголовку Plural-Forms («%s»).Пам'ять перекладівСтворення перекладу на основі наявного PO-файлу або POT-шаблону.Витяг рядків для перекладу з наявного POT-шаблону.Назва команди та адреса ел. пошти чи посиланняЗаміна текстуПам'ять перекладів не містить ніяких рядків, схожих на вміст цього файлу. Вона підходить тільки для напівавтоматичного перекладу після того, як Poedit збере достатньо даних з файлів, які ви переклали самостійно.Каталог не вдалося зберегти в кодуванні «%s», як це зазначено в налаштуваннях каталогу. Натомість він був збережений в кодуванні UTF-8, і відповідно, були змінені налаштування.Не вдається скомпілювати даний файл у формат MO для подальшого використання.Файл не може бути відкритий.Файл містив дубльовані елементи, що не дозволено у PO-файлах і унеможливлює використання файлу. Poedit виправив цю помилку, проте Ви повинні переглянути переклади, позначені як „потребує доопрацювання“, та, за потреби, їх виправити.Файл або пошкоджений, або у форматі, який не підтримується Poedit.Файл був скомпільований в формат MO, але, швидше за все, не буде правильно працювати.Файл був збережений і скомпільований в формат MO. Але, швидше за все, не буде правильно працювати.Файл збережений, але не може бути зібраний та використаний як MO.Файл був успішно збережений.Старий вихідний текст (до поновлення), якому відповідає неточний переклад.Найпростіший спосіб перекласти цей каталог - оновити його з POT:Переклад не починаються з пробілу.Переклад закінчується символом нового рядка, але не початковий текст.Переклад закінчується пробілом, але не початковий текст.Переклад закінчується „%s“, але початковий текст закінчується „%s“.У переклад відсутній символ нового рядка наприкінці.У переклад відсутній пробіл наприкінці.Переклад готовий до використання, але %d запис ще не перекладено.Переклад готовий до використання, але %d записи ще не перекладено.Переклад готовий до використання, але %d записів ще не перекладено.Переклад готовий до використання.Переклад повинен закінчуватися „%s“.Переклад не повинен закінчуватися „%s“.Переклад повинен починатися з великої літери.Переклад повинен починатися із символу в нижньому регістрі.Переклад починається з пробілу, але не початковий текст.Переклади були позначені як "потребує доопрацювання". Перевірте їх правильність.Дивно, але переклад відсутній.Сталися негаразди при спробі правильного форматування файлу (але його все одно збережено).При завантаженні каталогу виникли помилки. В результаті деякі дані можуть бути відсутніми або бути пошкоджені.Ці параметри впливають на внутрішнє форматування файлів PO. Скоректуйте їх, якщо у вас є спеціальні вимоги, наприклад, якщо ви користуєтеся системою контролю версій.Цих рядків вже немає у джерельних текстах. Poedit вилучить їх з каталогу.Ці рядки було знайдено у джерельних текстах, але вони відсутні у каталозі. Poedit додасть їх до каталогу.Каталог містить елементи з формами множини, але не має налаштованого заголовку Plural-Forms.Цей файл можна редагувати тільки за допомогою веб-інтерфейсу Crowdin.Ця команда запускає екстрактор. %o означає назву вихідного файлу, %K — список ключових слів, %F — список вхідних файлів, %C — кодування (див. нижче).Цей проект не містить файлів, які можуть бути перекладені у Poedit.Цей рядок був знайдений в пам'яті перекладів Poedit.Це буде додано до командного рядку лише якщо вказано кодування файлів з вихідними кодами. %c замінюється на кодування.Це буде додано до командного рядку для кожного вхідного файлу. %f замінюється на ім'я файлу.Це буде додано до командного рядку для кожного ключового слова. %k замінюється на ключове слово.ЗагаломПеретворенняЗаписи, що перекладаються, не додаються в систему Gettext вручну, а автоматично витягуються з вихідного коду. Таким чином забезпечується їхня актуальність і точність. Перекладачі зазвичай працюють з PO-файлами (POT), які підготував для них розробник.Перекладено: %d з %d (%d %%)Мова перекладуПам'ять перекладівПереклад потребує &доопрацюванняВластивості перекладуПереклад потребує &доопрацюванняВластивості перекладуВаріанти перекладу:Переклад — %sПереклад:Переклади не можуть бути оновлені з вихідного коду, тому що вихідний код не був знайдений у теці, зазначеній у властивостях каталогу.ДваUTF-8 (рекомендовано)СкасуватиСталося непередбачене виключення: %sUnix (рекомендовано)Не перекладеноВгоруОновитиОновити усеОновити усі каталоги в цьому проектіОновлення каталогу — синхронізація з джерельними текстамиПоновити з POT-&файлу…Поновити з POT-&файлу…Оновити з &POT-файлу...Підсумок про оновленняОновленняПоновлюю каталогОновлення не вдалосяНе вдалося поновити каталог. Отримайте докладнішу інформацію, натиснувши «Деталі».Оновлення відомостей про користувача…Відправлення перекладу…Використовувати користувацький виразВикористовувати користувацький шрифт для списку:Використовувати користувальницький текст в полях вводу:Використовувати стандартні правила для цієї мовиВикористовувати ці ключові слова (назви функцій) додатково до типових для розпізнавання у джерельних файлах рядків, придатних для перекладу.Використовувати пам'ять перекладівПеревіритиРезультати перевіркиВерсія %sОчікування автентифікації…Ласкаво просимо до PoeditЩо таке Crowdin?При оновлені з джерелЛише слово цілкомВікноWindowsПо колуПеренос:ТакРядки, що перекладаються, можна також отримати безпосередньо з вихідного коду:Не можна перетягувати у вікно Poedit більше одног файлу.Зміни набудуть чинності після перезапуску Poedit.Ваше ім'яВнесені зміни буде втрачено, якщо їх не зберегти.Ваше ім'я та пошта будуть використовуватися тільки при вказівці останнього перекладача в заголовках GNU gettext файлів.НульМасштабуватиaltctrlне видаляти тимчасові файли (для налагодження)напр. nplurals=2; plural=(n > 1);підбирати схожий переклад всередині файлуперейти до елемента у рядку з вказаним номеромобробити poedit:// URIпопередній переклад через ТМshiftневідома моваyour_email@example.com„%s“ — некоректний POT-файл.poedit-2.0.6/locales/pa.mo0000664000372000037200000007223113230132042012276 00000000000000] 8 9 EP cm |  "&,19K] a n{ 9Uj      + E Y b 'x     )!2! 7!B!AU!I!!!!!! "%".-"\"o"""""""" ##,#>#P#V#_# z#######$ %$3$9$>$B$I$ \$i$|$E$"$?$8%=%C% H% V% d%q% % %%%%%%.%&&/&D& K&V&!i&!&'&&&& & &&'#' 8' B' P' ]'j'r'{' ''' ' ''''' '( %( 2(>("C(f((( ( ( ((( ( ) ")<0)m)*v)) ) ))y* }****'****++ + #+2/+ b+o++++++++++++ ,,,#,-=, k,w,,, ,,,,,,, - - -#- +- 8-E-K-R- W- d- q- }---- - --- --.".5. N.![.}..... .. .... // -/9/ L/Y/j/q// / / /// ///N/=0N0i0L0`0Y21m171m22_2[3\3b3333333 444&4+4>4F4I4 P4"[4,~44444445*5@5#]55 555555 5576 ;6E6J6O6S6 X6y666688%888 9"9#:9^9y999999*:*1: \:j:"{:": ::::#;#(;L; a; ;;;;&;&<A:<|<<<< <<L=Lc=7=-=> '>&5>*\>(>G>>? ? 0?=?]?B}???;?b,@G@6@ AAI2Ao|AAA*BBBB iCsCCCMC6 DADWD+D,E,?E%lEEE@EX FYbF*F)F)G);GeGyGKGGG7H78HBpH,H,HR I`IuI{I I I%II#I# J1JaJKKL L L $L ELfLLL"L"L& M 0M>M0DMquM<M@$NEeNNN-NnONoO]OP,P =PJPdP)P6P,PQ)Q*FQ*qQQ QQQ QQ)Q#)R0MR@~R R&R8R,SIS`S uSBS'SST T*TAT+XT1TT+T TUUCU U+V+1Vf]V W"W W-X0/XV`X3XX(X %Y/Y7BYzYoY( Z;3Z/oZ/ZZZ ZZ([ >[6K[ [[[[[=[c&\\\-\;\$+]P]=g] ]#] ]]]^%^6^-F^-t^ ^^^(^+_;_S_(g_:____``0`@M`)`"`:`ak3a aaaaa5b8bLb6`b1b=bc3!cUc#lccc c0c&d*dGdZdjd4d0dDd,e/eeWeY=ffjg;hhwiPj&kk lGl'm%Gm1mm(m#mmnn!n ?n*Lnwnnnn^nn o*o"ooPo9Apv{pPp@CqMqJq5rSrWcr=r rs*s2s Rs\sst t*t.t+3t_tett8x8T!vGGm?$cA(>XdWT 4\ S2t:VZ+Y:^QQ*[; %.6N  (uU_M9yfn>E0W SU%B/DF]} ,.P*KN9,ZM O`+k&"5r6/352 HIeBARiJ1;3$aRw@-<7#~EsJlbh)K{@#X1]L)\Y[7 !=j|Cz'gD-H=V &PLCI"?'q04Fo<p O (modified) (unsaved)%d error%d errors%s Format%s Preferences%s format&About&About Poedit&Apply&Back&Bookmarks&Cancel&Close&Copy&Delete&Done and Next&Done and next&Edit&File&GNU gettext Manual&GNU gettext manual&Go&Help&New&Next >&Next Translation&Next translation&OK&Online Help&Online help&Open...&Paste&Preferences&Previous Translation&Previous translation&Purge deleted translations&Redo&Replace&Save&Show References&Show references&Undo&Untranslated Entries First&Untranslated entries first&Update from Sources&Update from sources&View&Yes(0 new, 0 obsolete)(New: %i, obsolete: %i)(Use default language)(requires Windows 8 or newer)< &PreviousAbout %sAccountsAdd CommentAdd commentAdd directory to the listAdditional keywordsAdvancedAll Translation FilesAlways change focus to text input fieldAn item in input files list:An item in keywords list:AppearanceApplyAutomatically check for updatesAutomatically compile MO file when savingBackBase path:Bring All to FrontBroken catalog file: plural form msgstr used without msgid_pluralBroken catalog file: singular form msgstr used together with msgid_pluralBrowseC&atalogC&learCancelCannot execute program: %sCapitalizeCatalogCatalog modified. Do you want to save changes?Catalog propertiesCatalogs &ManagerCatalogs &managerCatalogs ManagerChange UI languageCharset:Check Document NowCheck Grammar With SpellingCheck Spelling While TypingCheck spellingClear TranslationClear the commentClear translationCloseComment:Compiled Translation FilesConfirmationCopyCopy from Source TextCopy from source textCorrect Spelling AutomaticallyCreate New TranslationCreate new translationCreate new translations projectCrowdin errorCtrl+Cu&tCutDeleteDelete the projectDirectories:Display Entry &IDsDisplay entry &IDsDo you really want to do mass update of all catalogs in this project?Do you want to delete the project?Do you want to remove all translations that are no longer used?DownE&xitEditEdit &CommentEdit &commentEdit CommentEdit a translationEdit commentEdit projectEdit the projectEditingEmail:EnterEnter Full ScreenEntries in the catalog are probably incorrect.Error opening fileError opening file %s!Error saving catalogErrorsEverythingFailed command: %sFailed to load extracted catalog.Failed to merge gettext catalogs.Failed to update translation memory: %sFileFile:FindFind NextFind PreviousFind in commentsFind in source textsFind in translationsFind nextFind previousFix LanguageFix languageForm %iFrequentGeneralHTML FilesHelpHide %sHide OthersHide SidebarHide Status BarHide this notification messageIDInclude beta versionsInformation about the translatorInstallInvalid fileInvocation:KeepLanguage Code or Name (e.g. en_GB)Language of the translation:Language selectionLanguage team:Language:Last modifiedLearn MoreLearn More About CrowdinLearn about gettext keywordsLearn moreLearn more about CrowdinLine endings:List of extensions separated by semicolons (e.g. *.cpp;*.h):MinimizeName of the project the translation is forName:Needs WorkNeeds workNever let the list of strings take focus. If enabled, you must use Ctrl-arrows for keyboard navigation but you can also type text immediately, without having to press Tab to change focus.NewNew stringsNoNo Matches FoundNo matches foundNo problems with the translation found.Notes for translators:OKObsolete stringsOneOpenOpen Crowdin translationOpen RecentOpen an existing PO file and edit the translation.Open catalogOpen catalog templateOpen in EditorOpen in editorOpen...OptionsOtherPO TranslationPO Translation FilesPastePaste and Match StylePathsPluralPlural forms:Plural:PoeditPoedit - Catalogs managerPoedit is an easy to use translations editor.PreferencesPreferences...Previous source text:Project name and version:Project name:Project:Purge deleted translationsQuitQuit %sRecentRedoReferences:RefreshRemaining: %dReplaceReplace &AllReplace &allResetReviewSaveSave catalogSave changesSelect &AllSelect AllSelect directorySelect your preferred languageServicesSet LanguageSet languageShift+Show AllShow SidebarShow Spelling and GrammarShow Status BarShow SubstitutionsShow or hide the sidebarShow sidebarShow summary after catalog updateSidebarSign InSign OutSign inSign outSigned in as:SingularSingular:Smart Copy/PasteSource code charset:Source code not available.Source fileSource file occurrence:Source textSource text — %sSource text:Sources keywordsSpeechSpelling and GrammarStart SpeakingStop SpeakingSubstitutionsSuggestionsSyncSyncingSyncing errorSyncing with %s…TMTake an existing PO file or POT template and create a new translation from it.Text ReplacementThe file cannot be opened.The file was saved safely.There was a problem formatting the file nicely (but it was saved all right).There were errors when loading the catalog. Some data may be missing or corrupted as the result.These strings are no longer in the sources. Poedit will remove them from the catalog now.These strings were found in the sources but were not in the catalog. Poedit will add them to the catalog now.This string was found in Poedit’s translation memory.This will be attached to the command line only if source code charset was given. %c expands to charset value.This will be attached to the command line once for each input file. %f expands to the filename.This will be attached to the command line once for each keyword. %k expands to the keyword.TotalTranslated: %d of %d (%d %%)Translation LanguageTranslation MemoryTranslation PropertiesTranslation propertiesTranslation suggestions:Translation — %sTranslation:TwoUTF-8 (recommended)UndoUnix (recommended)UntransUpUpdateUpdate allUpdate all catalogs in the projectUpdate catalog - synchronize it with sourcesUpdate from POTUpdate summaryUpdatesUpdating catalogUpdating failedUpdating user information…Uploading translations…Use custom list font:Use custom text fields font:Use default rules for this languageUse translation memoryVersion %sWaiting for authentication…Welcome to PoeditWhole words onlyWindowWindowsWrap aroundYesYou must restart Poedit for this change to take effect.Your NameZeroZoomaltctrle.g. nplurals=2; plural=(n > 1);shiftunknown languageyour_email@example.comProject-Id-Version: poedit Report-Msgid-Bugs-To: help@poedit.net POT-Creation-Date: 2017-12-05 15:52+0100 PO-Revision-Date: 2017-07-27 03:15-0400 Last-Translator: vslavik Language-Team: Punjabi Language: pa_IN MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=(n != 1); X-Generator: crowdin.com X-Crowdin-Project: poedit X-Crowdin-Language: pa-IN X-Crowdin-File: /locales/poedit.pot (ਸੋਧੀ) (ਨਾ-ਸੰਭਾਲਿਆ)%d ਗਲਤੀ%d ਗਲਤੀਆਂ%s ਫਾਰਮੈਟ%s ਮੇਰੀ ਪਸੰਦ%s ਫਾਰਮੈਟਇਸ ਬਾਰੇ(&A)ਪੋਐਡਿਟ ਬਾਰੇ(&A)ਲਾਗੂ ਕਰੋ(&A)ਪਿੱਛੇ(&B)ਬੁੱਕਮਾਰਕ(&B)ਰੱਦ ਕਰੋ(&C)ਬੰਦ ਕਰੋ(&C)ਕਾਪੀ ਕਰੋ(&C)ਹਟਾਓ(&D)ਮੁਕੰਮਲ ਤੇ ਅੱਗੇ(&D)ਮੁਕੰਮਲ ਤੇ ਅੱਗੇ(&D)ਸੋਧ(&E)ਫਾਇਲ(&F)&GNU gettext ਦਸਤਾਵੇਜ਼&GNU gettext ਦਸਤਾਵੇਜ਼ਜਾਓ(&G)ਮੱਦਦ(&H)ਨਵਾਂ(&N)ਅੱਗੇ(&N) >ਅਗਲਾ ਅਨੁਵਾਦ(&N)ਅਗਲਾ ਅਨੁਵਾਦ(&N)ਠੀਕ ਹੈ(&O)ਆਨਲਾਈਨ ਮਦਦ(&O)ਆਨਲਾਈਨ ਮਦਦ(&O)ਖੋਲ੍ਹੋ(&O)...ਚੇਪੋ(&P)ਮੇਰੀ ਪਸੰਦ(&P)ਪਿਛਲਾ ਅਨੁਵਾਦ(&P)ਪਿਛਲਾ ਅਨੁਵਾਦ(&P)ਹਟਾਏ ਗਏ ਅਨੁਵਾਦ ਨੂੰ ਕੱਢੋ(&P)ਪਰਤਾਓ(&R)ਬਦਲੋ(&R)ਸੰਭਾਲੋ(&S)ਹਵਾਲs ਵੇਖੋ(&S)ਹਵਾਲਾ ਵੇਖੋ(&S)ਵਾਪਿਸ ਲਵੋ(&U)ਗ਼ੈਰ-ਅਨੁਵਾਦ ਐਂਟਰੀਆਂ ਪਹਿਲਾਂ(&U)ਗ਼ੈਰ-ਅਨੁਵਾਦ ਐਂਟਰੀਆਂ ਪਹਿਲਾਂ(&U)ਸਰੋਤ ਤੋਂ ਅੱਪਡੇਟ ਕਰੋ(&U)ਸਰੋਤ ਤੋਂ ਅੱਪਡੇਟ(&U)ਵੇਖੋ(&V)ਹਾਂ(&Y)(0 ਨਵਾਂ, 0 ਪੁਰਾਣਾ)(ਨਵੇਂ: %i, ਬਰਤਰਫ਼: %i)(ਮੂਲ ਭਾਸ਼ਾ ਵਰਤੋਂ)(ਵਿੰਡੋਜ਼ 8 ਜਾਂ ਨਵੀਂ ਚਾਹੀਦੀ ਹੈ)< ਪਿੱਛੇ(&P)<ਬੇਨਾਮ>%s ਬਾਰੇਖਾਤੇਟਿੱਪਣੀ ਜੋੜੋਟਿੱਪਣੀ ਜੋੜੋਡਾਇਰੈਕਟਰੀ ਲਿਸਟ ਵਿੱਚ ਸ਼ਾਮਲਵਾਧੂ ਕੀਵਰਡਤਕਨੀਕੀਸਾਰੀਆਂ ਅਨੁਵਾਦ ਫ਼ਾਇਲਾਂਹਮੇਸ਼ਾ ਪਾਠ ਲਿਖਣ ਖੇਤਰ 'ਤੇ ਹੀ ਕੇਂਦਰਿਤ ਕਰੋਇੰਪੁੱਟ ਫਾਇਲ ਲਿਸਟ ਵਿੱਚ ਇਕਾਈ:ਸ਼ਬਦ ਲਿਸਟ 'ਚ ਇੱਕ ਇਕਾਈ:ਦਿੱਖਲਾਗੂ ਕਰੋਆਟੋਮੈਟਿਕ ਅੱਪਡੇਟ ਲਈ ਜਾਂਚ ਕਰੋਸੰਭਾਲਣ ਉੱਤੇ ਆਟੋਮੈਟਿਕ ਹੀ MO ਫ਼ਾਈਲ ਕੰਪਾਈਲ ਕਰੋਪਿੱਛੇਮੁੱਖ ਮਾਰਗ:ਸਭ ਤੋਂ ਅੱਗੇ ਲਿਆਓਟੁੱਟੀ ਕੈਟਾਲਾਗ ਫਾਇਲ: ਬਹੁ-ਵਚਨ msgstr ਨੂੰ msgid_plural ਬਿਨਾਂ ਵਰਤਿਆ ਗਿਆ ਹੈਟੁੱਟੀ ਕੈਟਾਲਾਗ ਫਾਇਲ: ਇਕਹੇਰੀ msgstr ਨੂੰ msgid_plural ਨਾਲ ਵਰਤਿਆ ਗਿਆ ਹੈਝਲਕਕੈਟਾਲਾਗ(&a)ਸਾਫ਼ ਕਰੋ(&l)ਰੱਦ ਕਰੋਪ੍ਰੋਗਰਾਮ ਚਲਾਇਆ ਨਹੀਂ ਜਾ ਸਕਦਾ: %sਅੰਗਰੇਜ਼ੀ ਦੇ ਵੱਡੇ ਅੱਖਰਕੈਟਾਲਾਗਕੈਟਾਲਾਗ ਸੋਧੀ ਗਈ ਹੈ, ਕੀ ਤੁਸੀਂ ਤਬਦੀਲੀਆਂ ਸੰਭਾਲੀਆਂ ਚਾਹੋਗੇ?ਕੈਟਾਲਾਗ ਵਿਸ਼ੇਸ਼ਤਾਕੈਟਾਲਾਗ ਮੈਨੇਜਰ(&M)ਕੈਟਾਲਾਗ ਮੈਨੇਜਰ(&m)ਕੈਟਲਾਗ ਮੈਨੇਜਰUI ਭਾਸ਼ਾ ਬਦਲੋਅੱਖਰ-ਸੈਟ :ਦਸਤਾਵੇਜ਼ ਦੀ ਹੁਣੇ ਜਾਂਚ ਕਰੋਲਿਖਣ ਦੇ ਨਾਲ ਨਾਲ ਵਿਆਕਰਨ ਦੀ ਜਾਂਚ ਕਰੋਲਿਖਣ ਦੇ ਨਾਲ ਨਾਲ ਹੀ ਸ਼ਬਦ-ਜੋੜ ਚੈੱਕ ਕਰੋਸ਼ਬਦ-ਜੋੜ ਜਾਂਚ ਕਰੋਅਨੁਵਾਦ ਸਾਫ਼ ਕਰੋਟਿੱਪਣੀ ਸਾਫ਼ ਕਰੋਅਨੁਵਾਦ ਸਾਫ਼ ਕਰੋਬੰਦ ਕਰੋਟਿੱਪਣੀ:ਕੰਪਾਇਲ ਕੀਤੀਆਂ ਅਨੁਵਾਦ ਫਾਈਲਾਂਪੁਸ਼ਟੀਕਾਪੀ ਕਰੋਸਰੋਤ ਪਾਠ ਤੋਂ ਕਾਪੀ ਕਰੋਸਰੋਤ ਪਾਠ ਤੋਂ ਕਾਪੀ ਕਰੋਆਪਣੇ-ਆਪ ਹੀ ਸ਼ਬਦ-ਜੋੜ ਠੀਕ ਕਰੋਨਵਾਂ ਅਨੁਵਾਦ ਬਣਾਓਨਵਾਂ ਅਨੁਵਾਦ ਬਣਾਓਨਵਾਂ ਭਾਸ਼ਾ ਅਨੁਵਾਦ ਪ੍ਰੋਜੈਕਟ ਬਣਾਓCrowdin ਗਲਤੀCtrl+ਕੱਟੋ(&t)ਕੱਟੋਹਟਾਓਪ੍ਰੋਜੈਕਟ ਹਟਾਓਡਾਇਰੈਕਟਰੀ:ਐਂਟਰੀ &ID ਵੇਖਾਓਐਂਟਰੀ &ID ਵੇਖਾਓਕੀ ਤੁਸੀ ਇਸ ਪ੍ਰੋਜੈਕਟ ਦੇ ਸਭ ਕੈਟਾਲਾਗ ਦਾ ਇੱਕ ਵਾਰ ਹੀ ਅੱਪਡੇਟ ਕਰਨਾ ਚਾਹੁੰਦੇ ਹੋ?ਕੀ ਤੁਸੀ ਪ੍ਰੋਜੈਕਟ ਖਤਮ ਕਰਨਾ ਚਾਹੁੰਦੇ ਹੋ?ਕੀ ਤੁਸੀਂ ਸਭ ਅਨੁਵਾਦਾਂ ਨੂੰ ਹਟਾਉਣਾ ਚਾਹੁੰਦੇ ਹੋ, ਜੋ ਕਿ ਹੁਣ ਵਰਤੋਂ ਯੋਗ ਨਹੀਂ ਹਨ?Downਬਾਹਰ(&x)ਸੋਧਟਿੱਪਣੀ ਸੋਧ(&C)ਟਿੱਪਣੀ ਸੋਧ(&c)ਟਿੱਪਣੀ ਸੋਧੋਅਨੁਵਾਦ ਸੋਧੋਟਿੱਪਣੀ ਸੋਧਪ੍ਰੋਜੈਕਟ ਸੋਧਪ੍ਰੋਜੈਕਟ ਸੋਧਸੋਧਿਆ ਜਾਂਦਾ ਹੈਈਮੇਲ:Enterਪੂਰੀ ਸਕਰੀਨ ਉਤੇ ਜਾਓਕੈਟਾਲਾਗ ਵਿਚ ਐਂਟਰੀਆਂ ਸੰਭਵ ਹੈ ਕਿ ਠੀਕ ਨਹੀਂ ਹੈ।ਫਾਈਲ ਖੋਲ੍ਹਣ ਦੌਰਾਨ ਗਲਤੀਫਾਇਲ %s ਖੋਲ੍ਹਣ ਦੌਰਾਨ ਗਲਤੀ!ਕੈਟਾਲਾਗ ਸੰਭਾਲਣ ਦੌਰਾਨ ਗਲਤੀਗ਼ਲਤੀਆਂਹਰ ਚੀਜ਼ਕਮਾਂਡ ਫੇਲ੍ਹ ਹੋਈ: %sਖੋਲ੍ਹੇ ਗਏ ਕੈਟਾਲਾਗ ਨੂੰ ਲੋਡ ਕਰਨ ਲਈ ਫੇਲ੍ਹ ਹੈ।gettext ਕੈਟਾਲਾਨ ਮਿਲਾਨ ਲਈ ਫੇਲ੍ਹ ਹੈ।ਅਨੁਵਾਦ ਮੈਮੋਰੀ ਅੱਪਡੇਟ ਕਰਨ ਲਈ ਫੇਲ੍ਹ: %sਫ਼ਾਇਲਫ਼ਾਇਲ:ਲੱਭੋਅੱਗੇ ਲੱਭੋਪਿੱਛੇ ਲੱਭੋਟਿੱਪਣੀ ਵਿੱਚ ਖੋਜਸਰੋਤ ਟੈਕਸਟ ਵਿੱਚ ਲੱਭੋਅਨੁਵਾਦ ਵਿੱਚ ਲੱਭੋਅੱਗੇ ਲੱਭੋਪਿੱਛੇ ਲੱਭੋਭਾਸ਼ਾ ਨੂੰ ਠੀਕ ਕਰੋਭਾਸ਼ਾ ਨੂੰ ਠੀਕ ਕਰੋਫਾਰਮ %iਅਕਸਰਆਮHTML ਫਾਈਲਾਂਮਦਦ%s ਨੂੰ ਲੁਕਾਓਹੋਰਾਂ ਨੂੰ ਲੁਕਾਓਬਾਹੀ ਓਹਲੇ ਕਰੋਹਾਲਤ ਪੱਟੀ ਓਹਲੇ ਕਰੋਇਹ ਸੂਚਨਾ ਸੁਨੇਹਾ ਓਹਲੇ ਕਰੋਆਈਡੀਬੀਟਾ ਵਰਜਨ ਸਮੇਤਅਨੁਵਾਦਕ ਬਾਰੇ ਜਾਣਕਾਰੀਇੰਸਟਾਲ ਕਰੋਗਲਤ ਫਾਈਲਸਹਾਇਤਾ :ਰੱਖੋਭਾਸ਼ਾ ਕੋਡ ਜਾਂ ਨਾਂ (ਜਿਵੇਂ pa_IN)ਅਨੁਵਾਦ ਦੀ ਭਾਸ਼ਾ:ਭਾਸ਼ਾ ਚੋਣਭਾਸ਼ਾ ਟੀਮ:ਭਾਸ਼ਾ:ਆਖਰੀ ਸੋਧਹੋਰ ਜਾਣੋCrowdin ਬਾਰੇ ਹੋਰ ਜਾਣੋgettext ਕੀਵਰਡ ਬਾਰੇ ਜਾਣੋਹੋਰ ਜਾਣੋCrowdin ਬਾਰੇ ਹੋਰ ਜਾਣੋਲਾਈਨ ਸਮਾਪਤੀ:ਇਕਸਟੈਸ਼ਨਾਂ ਦੀ ਲਿਸਟ ਅਰਧ ਕਾਮਿਆਂ ਨਾਲ ਲਿਖੋ (ਜਿਵੇ ਕਿ *.cpp;*.h):ਘੱਟੋ-ਘੱਟਅਨੁਵਾਦ ਦੇ ਪ੍ਰੋਜੈਕਟ ਦਾ ਨਾਂਨਾਂ:ਕੰਮ ਕਰਨ ਦੀ ਲੋੜ ਹੈਕੰਮ ਕਰਨ ਦੀ ਲੋੜ ਹੈਸਤਰਾਂ ਦੀ ਸੂਚੀ ਕਦੇ ਕੇਂਦਰਿਤ ਨਾ ਹੋਣ ਦਿਉ। ਜੇ ਏਦਾਂ ਹੈ ਤਾਂ ਤੁਸੀਂ ਕੀਬੋਰਡ ਦੇ Ctrl- ਤੀਰ ਬਟਨਾਂ ਨਾਲ ਚੱਲ ਸਕਦੇ ਹੋ, ਪਰ ਤੁਸੀ Tab ਦਬਾਏ ਬਿਨਾਂ ਵੀ ਤੁਰੰਤ ਲਿਖ ਸਕਦੇ ਹੋ।ਨਵਾਂਨਵੀਂਆਂ ਸਤਰਾਂਨਹੀਂਕੋਈ ਮੇਲ ਨਹੀਂ ਲੱਭੇਕੋਈ ਮੇਲ ਨਹੀਂ ਲੱਭਿਆਅਨੁਵਾਦ ਵਿੱਚ ਕੋਈ ਸਮੱਸਿਆ ਨਹੀ ਲੱਭੀ।ਅਨੁਵਾਦਕਾਂ ਲਈ ਸੂਚਨਾ:ਠੀਕ ਹੈਪੁਰਾਣੀਆਂ ਸਤਰਾਂਇੱਕਖੋਲ੍ਹੋCrowdin ਅਨੁਵਾਦ ਨੂੰ ਖੋਲ੍ਹੋਤਾਜ਼ਾ ਖੋਲ੍ਹੇਮੌਜੂਦਾ PO ਫ਼ਾਈਲ ਖੋਲ੍ਹੋ ਅਤੇ ਅਨੁਵਾਦ ਨੂੰ ਸੋਧੋ।ਕੈਟਾਲਾਗ ਖੋਲ੍ਹੋਕੈਟਾਲਾਗ ਟੈਪਲੇਟ ਖੋਲ੍ਹੋਐਡੀਟਰ ਵਿੱਚ ਖੋਲ੍ਹੋਐਡੀਟਰ ਵਿੱਚ ਖੋਲ੍ਹੋ...ਖੋਲ੍ਹੋਚੋਣਾਂਹੋਰPO ਅਨੁਵਾਦPO ਅਨੁਵਾਦ ਫਾਈਲਾਂਚੇਪੋਚੇਪੋ ਅਤੇ ਮਿਲਾਨ ਸਟਾਈਲਮਾਰਗਬਹੁਵਚਨਬਹੁਵਚਨ ਰੂਪ:ਬਹੁ-ਵਚਨ:ਪੋਆਡਿਟਪੋਆਡਿਟ - ਕੈਟਾਲਾਗ ਮੈਨੇਜਰਪੋਆਡਿਟ ਵਰਤਣ ਲਈ ਸੌਖਾ ਅਨੁਵਾਦ ਸੰਪਾਦਕ ਹੈ।ਮੇਰੀ ਪਸੰਦਮੇਰੀ ਪਸੰਦ...ਪਿਛਲਾ ਸਰੋਤ ਟੈਕਸਟ:ਪ੍ਰੋਜੈਕਟ ਨਾਂ ਅਤੇ ਵਰਜਨ :ਪ੍ਰੋਜੈਕਟ ਨਾਂ :ਪਰੋਜੈਕਟ:ਹਟਾਏ ਗਏ ਅਨੁਵਾਦ ਨੂੰ ਕੱਢੋਬਾਹਰ%s ਤੋਂ ਬਾਹਰ ਜਾਓਤਾਜ਼ਾਵਾਪਿਸ ਕਰੋਹਵਾਲਾ:ਤਾਜ਼ਾ ਕਰੋਬਾਕੀ: %dਤਬਦੀਲਸਾਰਿਆਂ ਨੂੰ ਬਦਲੋ(&A)ਸਾਰਿਆਂ ਨੂੰ ਬਦਲੋ(&a)ਮੁੜ-ਸੈੱਟ ਕਰੋਪੜਤਾਲਸੰਭਾਲੋਕੈਟਾਲਾਗ ਸੰਭਾਲੋਤਬਦੀਲੀਆਂ ਸੰਭਾਲੋਸਭ ਚੁਣੋ(&A)ਸਭ ਚੁਣੋਡਾਇਰੈਕਟਰੀ ਚੁਣੋਆਪਣੀ ਪਸੰਦ ਦੀ ਭਾਸ਼ਾ ਚੁਣੋਸਰਵਿਸਾਂਭਾਸ਼ਾ ਦਿਓਭਾਸ਼ਾ ਦਿਓShift+ਸਾਰੇ ਵੇਖੋਬਾਹੀ ਵੇਖਾਓਸ਼ਬਦ-ਜੋੜ ਅਤੇ ਵਿਆਕਰਨ ਵੇਖਾਓਹਾਲਤ ਪੱਟੀ ਵੇਖਾਓਤਬਾਦਲੇ ਦਿਖਾਓਬਾਹੀ ਵੇਖੋ ਜਾਂ ਓਹਲੇ ਕਰੋਬਾਹੀ ਵੇਖਾਓਕੈਟਾਲਾਗ ਅੱਪਡੇਟ ਮਗਰੋਂ ਸੰਖੇਪ ਜਾਣਕਾਰੀ ਵੇਖੋਬਾਹੀਸਾਈਨ ਇਨਸਾਈਨ ਆਉਟਸਾਈਨ ਇਨਸਾਈਨ ਆਉਟਇਸ ਵਜੋਂ ਸਾਈਨ ਇਨ ਕੀਤਾ:ਇੱਕ ਵਚਨਇਕਹੇਰਾ:ਚੁਸਤ ਕਾਪੀ ਕਰਨਾ/ਚੇਪਣਾਸਰੋਤ ਕੋਡ ਅੱਖਰ ਸਮੂਹ:ਸਰੋਤ ਕੋਡ ਮੌਜੂਦ ਨਹੀਂ ਹੈ।ਸਰੋਤ ਫਾਇਲਸਰੋਤ ਫ਼ਾਈਲ ਮੌਜੂਦਗੀ:ਸਰੋਤ ਪਾਠਸਰੋਤ ਟੈਕਸਟ — %sਸਰੋਤ ਪਾਠ:ਸਰੋਤ ਕੀਵਰਡਸਪੀਚਸ਼ਬਦ-ਜੋੜ ਅਤੇ ਵਿਆਕਰਨਬੋਲਣਾ ਸ਼ੁਰੂ ਕਰੋਬੋਲਣਾ ਰੋਕੋਤਬਾਦਲੇਸੁਝਾਅਸਿੰਕ ਕਰੋਸਿੰਕ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈਸਿੰਕ ਕਰਨ ਵਿੱਚ ਗਲਤੀ…%s ਨਾਲ ਸਿੰਕ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈTMਮੌਜੂਦਾ PO ਫ਼ਾਈਲ ਜਾਂ POT ਨਮੂਨਾ ਲਵੋ ਅਤੇ ਉਸ ਤੋਂ ਨਵਾਂ ਅਨੁਵਾਦ ਬਣਾਉ।ਪਾਠ ਤਬਾਦਲਾਫਾਈਲ ਨੂੰ ਖੋਲ੍ਹਿਆ ਨਹੀਂ ਜਾ ਸਕਦਾ ਹੈ।ਫ਼ਾਈਲ ਸੁਰੱਖਿਅਤ ਢੰਗ ਨਾਲ ਸੰਭਾਲੀ ਗਈ।ਫਾਈਲ ਨੂੰ ਸਹੀ ਤਰ੍ਹਾਂ ਫਾਰਮੇਟ ਕਰਦੇ ਸਮੇਂ ਇੱਕ ਖ਼ਾਮੀ ਆਈ ਸੀ (ਪਰ ਇਹ ਠੀਕ ਤਰ੍ਹਾਂ ਸੰਭਾਲੀ ਗਈ)।ਕੈਟਾਲਾਗ ਲੋਡ ਕਰਨ ਦੋਰਾਨ ਗਲਤੀ ਹੈ। ਨਤੀਜੇ ਵਜੋਂ ਕੁਝ ਡਾਟਾ ਗੁੰਮ ਹੈ ਜਾਂ ਨਿਕਾਰਾ ਹੋ ਗਿਆ ਹੈ।ਸਰੋਤ ਵਿਚ ਇਹ ਸਤਰਾਂ ਮੌਜੂਦ ਨਹੀ ਹਨ। ਪੋਆਡਿਟ ਇਹਨਾਂ ਨੂੰ ਸੂਚੀ ਵਿਚੋਂ ਹਟਾ ਰਿਹਾ ਹੈ।ਸਰੋਤ ਵਿਚ ਤਾਂ ਸਤਰਾਂ ਹਨ, ਪਰ ਕੈਟਾਲਾਗ ਵਿੱਚ ਨਹੀਂ ਹੈ। ਪੋਆਡਿਟ ਇਹਨਾਂ ਨੂੰ ਕੈਟਾਲਾਗ ਵਿੱਚ ਜੋੜੇਗਾ।ਇਹ ਲਾਈਨ ਪੋਐਡਿਟ ਦੀ ਅਨੁਵਾਦ ਮੈਮੋਰੀ ਵਿੱਚ ਲੱਭੀ ਸੀ।ਇਹ ਇੱਕ ਵਾਰ ਕਮਾਂਡ ਲਾਇਨ ਨਾਲ ਹਰੇਕ ਇੰਪੁੱਟ ਫਾਇਲ ਲ਼ਈ ਜੁਡ਼ ਜਾਵੇਗਾ। %c ਫਾਇਲ ਨਾਂ ਫੈਲਾ ਦੇਵੇਗਾ।ਇਹ ਇੱਕ ਵਾਰ ਕਮਾਂਡ ਲਾਇਨ ਨਾਲ ਹਰੇਕ ਇੰਪੁੱਟ ਫਾਇਲ ਲਈ ਜੁਡ਼ ਜਾਵੇਗਾ। %f ਫਾਇਲ ਨਾਂ ਫੈਲਾ ਦੇਵੇਗਾ।ਇਹ ਇੱਕ ਵਾਰ ਕਮਾਂਡ ਲਾਇਨ ਨਾਲ ਹਰੇਕ ਇੰਪੁੱਟ ਫਾਇਲ ਲ਼ਈ ਜੁਡ਼ ਜਾਵੇਗਾ। %k ਫਾਇਲ ਨਾਂ ਫੈਲਾ ਦੇਵੇਗਾ।ਕੁੱਲਅਨੁਵਾਦ ਕੀਤਾ: %2$d ਵਿੱਚੋਂ %1$d (%3$d %%)ਅਨੁਵਾਦ ਭਾਸ਼ਾਅਨੁਵਾਦ ਮੈਮੋਰੀਅਨੁਵਾਦ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂਅਨੁਵਾਦ ਵਿਸ਼ੇਸ਼ਤਾਅਨੁਵਾਦ ਸੁਝਾਅ:ਅਨੁਵਾਦ — %sਅਨੁਵਾਦ:ਦੋUTF-8 (ਸਿਫਾਰਸ਼ੀ)ਵਾਪਸਯੂਨੈਕਸ (ਸਿਫਾਰਸ਼ੀ)ਨਾ-ਅਨੁਵਾਦUpਅੱਪਡੇਟਸਭ ਅੱਪਡੇਟਪ੍ਰੋਜੈਕਟ ਵਿਚਲੀਆਂ ਸਭ ਕੈਟਾਲਾਗ ਅੱਪਡੇਟਕੈਟਾਲਾਗ ਅੱਪਡੇਟ- ਇਸ ਨੂੰ ਸੋਰਤ ਨਾਲ ਸਮਕਾਲੀ ਕਰੋPOT ਤੋਂ ਅੱਪਡੇਟ ਕਰੋਅੱਪਡੇਟ ਸੰਖੇਪਅੱਪਡੇਟਕੈਟਾਲਾਗ ਅੱਪਡੇਟ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈਅੱਪਡੇਟ ਕਰਨਾ ਫੇਲ੍ਹ ਹੈ।ਵਰਤੋਂਕਾਰ ਜਾਣਕਾਰੀ ਨੂੰ ਅੱਪਡੇਟ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ……ਅਨੁਵਾਦ ਅੱਪਲੋਡ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈਪਸੰਦੀਦਾ ਸੂਚੀ ਫ਼ੋਟ ਵਰਤੋਂ:ਪਸੰਦੀਦਾ ਪਾਠ ਖੇਤਰ ਫ਼ੋਂਟ ਵਰਤੋਂ:ਇਹ ਭਾਸ਼ਾ ਲਈ ਡਿਫਾਲਟ ਨਿਯਮ ਵਰਤੋਂਅਨੁਵਾਦ ਮੈਮੋਰੀ ਵਰਤੋਂ%s ਵਰਜ਼ਨਪਰਮਾਣਕਿਤਾ ਦੀ ਉਡੀਕ ਕੀਤੀ ਜਾ ਰਹੀ ਹੈ…ਪੋਐਡਿਟ ਵਲੋਂ ਜੀ ਆਇਆਂ ਨੂੰਪੂਰੇ ਸ਼ਬਦ ਹੀਵਿੰਡੋWindowsਪਾਸਿਓ ਸਮੇਟੋਹਾਂਤੁਹਾਨੂੰ ਤਬਦੀਲੀਆਂ ਲਾਗੂ ਕਰਨ ਲਈ ਪੋਆਡਿਟ ਮੁੜ ਚਾਲੂ ਕਰਨਾ ਪਵੇਗਾ।ਤੁਹਾਡਾ ਨਾਂਸਿਫ਼ਰਜ਼ੂਮaltctrlਜਿਵੇਂ nplurals=2; plural=(n > 1);shiftਅਣਜਾਣ ਭਾਸ਼ਾyour_email@example.compoedit-2.0.6/locales/sq.po0000664000372000037200000015366113230131554012342 00000000000000msgid "" msgstr "" "Project-Id-Version: poedit\n" "Report-Msgid-Bugs-To: help@poedit.net\n" "POT-Creation-Date: 2017-12-05 15:52+0100\n" "PO-Revision-Date: 2017-12-05 09:50-0500\n" "Last-Translator: vslavik \n" "Language-Team: Albanian\n" "Language: sq_AL\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: crowdin.com\n" "X-Crowdin-Project: poedit\n" "X-Crowdin-Language: sq\n" "X-Crowdin-File: /locales/poedit.pot\n" msgid "Hide this notification message" msgstr "Fshihe këtë mesazh njoftimi" msgid "Don’t Show Again" msgstr "Mos e Shfaq Sërish" msgid "Don’t show again" msgstr "Mos e shfaq sërish" #, c-format msgid "(New: %i, obsolete: %i)" msgstr "(Të rinj: %i, të vjetruar: %i)" msgid "Updating catalog" msgstr "Po përditësohet katalogu" msgid "Collecting source files…" msgstr "Po grumbullohen kartela burim…" msgid "Extracting translatable strings…" msgstr "Po përftohen vargje të përkthyeshëm…" msgid "Failed to load extracted catalog." msgstr "Dështoi ngarkimi i katalogut të përftuar." msgid "Merging differences…" msgstr "Po përzihen dallimet…" #, c-format msgid "“%s” is not a valid POT file." msgstr "“%s” s’është kartelë POT e vlefshme." #, c-format msgid "%i line of file “%s” was not loaded correctly." msgid_plural "%i lines of file “%s” were not loaded correctly." msgstr[0] "%i rresht i kartelës “%s” s’u ngarkua saktësisht." msgstr[1] "%i rreshta të kartelës “%s” s’u ngarkuan saktësisht." #, c-format msgid "Line %d of file “%s” is corrupted (not valid %s data)." msgstr "" "Rreshti %d i kartelës “%s” është i dëmtuar (pa të dhëna %s të vlefshme)." #, c-format msgid "Malformed header: “%s”" msgstr "Krye e keqformuar: “%s”" msgid "" "Broken catalog file: singular form msgstr used together with msgid_plural" msgstr "" "Kartelë katalogu e dëmtuar: vargje mesazhesh në njëjës përdorur bashkë me " "msgid_plural" msgid "Broken catalog file: plural form msgstr used without msgid_plural" msgstr "" "Kartelë katalogu e dëmtuar: vargje mesazhesh në shumës përdorur pa " "msgid_plural" msgid "" "There were errors when loading the catalog. Some data may be missing or " "corrupted as the result." msgstr "" "Pati gabime gjatë ngarkimit të katalogut. Për pasojë, disa nga të dhënat " "mund të kenë humbur ose të jenë dëmtuar." #, c-format msgid "Couldn’t load file %s, it is probably corrupted." msgstr "Kartela %s s’u ngarkua dot, ka gjasa të jetë e dëmtuar." #, c-format msgid "" "File “%s” is read-only and cannot be saved.\n" "Please save it under different name." msgstr "" "Kartela “%s” është vetëm për lexim dhe s’mund të ruhet.\n" "Ju lutemi, ruajeni nën një emër tjetër." #, c-format msgid "Couldn’t save file %s." msgstr "S’u ruajt dot kartela %s." msgid "" "There was a problem formatting the file nicely (but it was saved all right)." msgstr "" "Pati një problem me formatimin si duhet të kartelës (por u ruajt në rregull)." #, c-format msgid "" "The catalog couldn’t be saved in “%s” charset as specified in catalog " "settings.\n" "\n" "It was saved in UTF-8 instead and the setting was modified accordingly." msgstr "" "Katalogu s’u ruajt dot nën shkronjat “%s” e treguara në rregullime " "katalogu.\n" "\n" "U ruajt nën UTF-8 dhe rregullimi u ndryshua për përputhje." msgid "Error saving catalog" msgstr "Gabim në ruajtje katalogu" msgid "PO Translation Files" msgstr "Kartela Përkthimi PO" msgid "POT Translation Templates" msgstr "Gjedhe Përkthimi POT" msgid "All Translation Files" msgstr "Krejt Kartelat e Përkthimit" msgid "(Use default language)" msgstr "(Përdor gjuhë parazgjedhje)" msgid "Select your preferred language" msgstr "Përzgjidhni gjuhën tuaj të parapëlqyer" msgid "Language selection" msgstr "Përzgjedhje gjuhe" msgid "You must restart Poedit for this change to take effect." msgstr "Duhet të rinisni Poedit-in, pa të hyjnë në fuqi ndryshimet." msgid "Syncing" msgstr "Njëkohësim" #. TRANSLATORS: %s is a cloud destination, e.g. "Crowdin" or ftp.wordpress.com etc. #, c-format msgid "Syncing with %s…" msgstr "Po njëkohësohet me %s…" #. TRANSLATORS: %s is a cloud destination, e.g. "Crowdin" or ftp.wordpress.com etc. #, c-format msgid "Syncing with %s failed." msgstr "Njëkohësimi me %s dështoi." msgid "Syncing error" msgstr "Gabim njëkohësimi" msgid "Downloading translations is disabled in this project." msgstr "Shkarkimi i përkthimeve është i çaktivizuar për këtë projekt." msgid "Not authorized, please sign in again." msgstr "Jo i autorizuar, ju lutemi, ribëni hyrjen." msgid "" "Crowdin is an online localization management platform and collaborative " "translation tool. Poedit can seamlessly sync PO files managed at Crowdin." msgstr "" "Crowdin është një platformë administrimi përkthimesh në internet dhe mjet " "përkthimi në bashkëpunim. Poedit-i mund të njëkohësojë pa të metë kartela PO " "të administruara në Crowdin." msgid "Sign In" msgstr "Hyni" msgid "Sign in" msgstr "Hyni" msgid "Sign Out" msgstr "Dilni" msgid "Sign out" msgstr "Dilni" msgid "Waiting for authentication…" msgstr "Po pritet për mirëfilltësim…" msgid "Updating user information…" msgstr "Po përditësohen të dhëna mbi përdoruesin…" msgid "Signed in as:" msgstr "I futur si:" msgid "Learn More About Crowdin" msgstr "Mësoni Më Tepër Mbi Crowdin-in" msgid "Learn more about Crowdin" msgstr "Mësoni më tepër mbi Crowdin-in" msgid "Sign in to Crowdin" msgstr "Hyni në Crowdin" msgid "Open Crowdin translation" msgstr "Hape përkthimin në Crowdin" msgid "Project:" msgstr "Projekt:" msgid "Language:" msgstr "Gjuhë:" msgid "File:" msgstr "Kartelë:" msgid "No translation projects listed in your Crowdin account." msgstr "Pa projekte përkthimi në llogarinë tuaj Crowdin." msgid "This project has no files that can be translated in Poedit." msgstr "Ky projekt s’ka kartela që mund të përkthehen nën Poedit." msgid "This file can only be edited in Crowdin’s web interface." msgstr "Kjo kartelë mund të përpunohet te ndërfaqja web e Crowdin-it." msgid "Downloading latest translations…" msgstr "Po shkarkohen përkthimet më të reja…" msgid "Syncing with Crowdin failed." msgstr "Njëkohësimi me Crowdin-in dështoi." msgid "Crowdin error" msgstr "Gabim Crowdin-i" msgid "Uploading translations…" msgstr "Po ngarkohen përkthime…" msgid "&Copy" msgstr "&Kopjoje" msgid "Learn more" msgstr "Mësoni më tepër" msgid "Learn More" msgstr "Mësoni Më Tepër" msgid "&Help" msgstr "&Ndihmë" msgid "MO files can’t be directly edited in Poedit." msgstr "Kartelat MO s’mund të përpunohen drejt e në Poedit." msgid "Error opening file" msgstr "Gabim gjatë hapjes së kartelës" msgid "" "Please open and edit the corresponding PO file instead. When you save it, " "the MO file will be updated as well." msgstr "" "Ju lutemi, në vend të kësaj, hapni dhe përpunoni kartelën përgjegjëse PO. " "Kur ta ruani, do të përditësohet edhe kartela MO." msgid "don’t delete temporary files (for debugging)" msgstr "mos fshi kartela të përkohshme (për diagnostikim)" msgid "handle a poedit:// URI" msgstr "trajto një URI poedit://" msgid "go to item at given line number" msgstr "shko tek objekti në rreshtin me numrin e dhënë" msgid "Failed to communicate with Poedit process." msgstr "Dështoi komunikimi me procesin Poedit." #, c-format msgid "Unhandled exception occurred: %s" msgstr "Ndodhi një përjashtim i patrajtuar: %s" msgid "Open catalog" msgstr "Hap katalog" #, c-format msgid "File “%s” doesn’t exist." msgstr "Kartela “%s” s’ekziston." msgid "Poedit is an easy to use translations editor." msgstr "Poedit është një përpunues përkthimesh i lehtë për t’u përdorur." msgid "Catalogs Manager" msgstr "Përgjegjës Katalogësh" msgid "Check for Updates…" msgstr "Kontrollo për Përditësime…" msgid "&Edit" msgstr "&Përpunoni" msgid "Undo" msgstr "Zhbëje" msgid "Redo" msgstr "Ribëje" msgid "Paste and Match Style" msgstr "Ngjite dhe Përputhi Stilin" msgid "Delete" msgstr "Fshije" msgid "Spelling and Grammar" msgstr "Drejtshkrim dhe Gramatikë" msgid "Show Spelling and Grammar" msgstr "Shfaq Drejtshkrim dhe Gramatikë" msgid "Check Document Now" msgstr "Kontrolloje Dokumentin Tani" msgid "Check Spelling While Typing" msgstr "Kontrolloji Drejtshkrimin Teksa Shtypet" msgid "Check Grammar With Spelling" msgstr "Kontrollojini Gramatikën Me Drejtshkrimin" msgid "Correct Spelling Automatically" msgstr "Ndreqe Vetvetiu Drejtshkrimin" msgid "Substitutions" msgstr "Zëvendësime" msgid "Show Substitutions" msgstr "Shfaq Zëvendësime" msgid "Smart Copy/Paste" msgstr "Kopjim/Ngjitje e Mençur" msgid "Smart Quotes" msgstr "Thonjëza të Mençura" msgid "Smart Dashes" msgstr "Vija Ndarëse të Mençura" msgid "Smart Links" msgstr "Lidhje të Mençura" msgid "Text Replacement" msgstr "Zëvendësim Teksti" msgid "Transformations" msgstr "Shndërrime" msgid "Make Upper Case" msgstr "Kaloje në Shkronja të Mëdha" msgid "Make Lower Case" msgstr "Kaloje në Shkronja të Vogla" msgid "Capitalize" msgstr "Shkronja e parë e madhe" msgid "Speech" msgstr "E folur" msgid "Start Speaking" msgstr "Filloni të Folurën" msgid "Stop Speaking" msgstr "Ndalni të Folurën" msgid "&View" msgstr "&Parje" msgid "Enter Full Screen" msgstr "Kaloni Në Gjendjen Sa Krejt Ekrani" msgid "Window" msgstr "Dritare" msgid "Minimize" msgstr "Minimizoje" msgid "Zoom" msgstr "Zoom" msgid "Bring All to Front" msgstr "Sill Gjithçka Përpara" #. TRANSLATORS:File kind displayed in Finder/Explorer msgid "PO Translation" msgstr "Përkthimi në trajtë PO" msgid "The file cannot be opened." msgstr "Kartela s’hapet dot." msgid "Invalid file" msgstr "Kartelë e pavlefshme" msgid "" "The file may be either corrupted or in a format not recognized by Poedit." msgstr "" "Kartela mund të jetë ose e dëmtuar, ose në një format të panjohur nga Poedit." msgid "You can’t drop more than one file on Poedit window." msgstr "S’mund të jepni më tepër se një kartelë te dritarja Poedit." #, c-format msgid "File “%s” is not a message catalog." msgstr "Kartela “%s” s’është katalog mesazhesh." msgid "Poedit" msgstr "Poedit" msgid "&File" msgstr "&Kartelë" msgid "&Go" msgstr "&Shko" #. TRANSLATORS: %s is language name in its basic form (as you #. would see e.g. in a list of supported languages). You may need #. to rephrase it, e.g. to an equivalent of "for language %s". #, c-format msgid "" "Spellchecking is disabled, because the dictionary for %s isn’t installed." msgstr "" "Kontrolli i drejtshkrimit është i çaktivizuar, ngaqë fjalori për %s s’është " "i instaluar." msgid "Install" msgstr "Instaloje" msgid "Catalog modified. Do you want to save changes?" msgstr "Katalogu u ndryshua. Doni të ruhen ndryshimet?" msgid "Save changes" msgstr "Ruaji ndryshimet" msgid "Your changes will be lost if you don’t save them." msgstr "Ndryshimet tuaja do të humbasin, nëse s’i ruani." msgid "Save" msgstr "Ruaje" msgid "Don’t save" msgstr "Mos e ruaj" msgid "Don’t Save" msgstr "Mos e Ruaj" msgid "Save as…" msgstr "Ruajeni si…" msgid "Compile to…" msgstr "Përpiloje te…" msgid "Compiled Translation Files" msgstr "Kartela Përkthimi të Përpiluara" msgid "Export as…" msgstr "Eksportojeni si…" msgid "HTML Files" msgstr "Kartela HTML" msgid "Open catalog template" msgstr "Hap gjedhe katalogu" msgid "Source code not available." msgstr "Pa kod burim të gatshëm." msgid "Updating failed" msgstr "Përditësimi dështoi" msgid "" "Translations couldn’t be updated from the source code, because no code was " "found in the location specified in the catalog’s Properties." msgstr "" "S’u përditësuan dot përkthimet që prej kodit burim, ngaqë s’u gjet kod në " "vendin e treguar te Vetitë e katalogut." msgid "Entries in the catalog are probably incorrect." msgstr "Ka mundësi të ketë zëra të pasaktë në katalog." msgid "Updating the catalog failed. Click on 'Details >>' for details." msgstr "Përditësimi i katalogut dështoi. Për hollësi, klikoni te 'Hollësi >>'." #, c-format msgid "%d issue with the translation found." msgid_plural "%d issues with the translation found." msgstr[0] "U gjet %d problem te përkthimi." msgstr[1] "U gjetën %d probleme te përkthimi." msgid "Validation results" msgstr "Përfundime vleftësimi" msgid "" "Entries with errors were marked in red in the list. Details of the error " "will be shown when you select such an entry." msgstr "" "Zërat me gabime janë shënuar me të kuqe te lista. Hollësitë e gabimit do të " "shfaqen pasi të keni përzgjedhur një zë të tillë." msgid "The file was saved safely." msgstr "Kartela u ruajt pa cen." msgid "" "The file was saved safely and compiled into the MO format, but it will " "probably not work correctly." msgstr "" "Kartela u ruajt pa cen dhe u përpilua nën formatin MO, por sipas gjasash " "s’do të funksionojë si duhet." msgid "" "The file was saved safely, but it cannot be compiled into the MO format and " "used." msgstr "" "Kartela u ruajt pa cen, por s’përpilohet dot në formatin MO dhe të përdoret." msgid "" "The file was compiled into the MO format, but it will probably not work " "correctly." msgstr "" "Kartela u përpilua nën formatin MO, por sipas gjasash s’do të funksionojë si " "duhet." msgid "The file cannot be compiled into the MO format and used." msgstr "Kartela s’përpilohet dot në formatin MO dhe të përdoret." msgid "No problems with the translation found." msgstr "S’u gjetën probleme me përkthimin." #, c-format msgid "The translation is ready for use, but %d entry is not translated yet." msgid_plural "" "The translation is ready for use, but %d entries are not translated yet." msgstr[0] "" "Përkthimi është gati për përdorim, por %d zë është ende i papërkthyer." msgstr[1] "" "Përkthimi është gati për përdorim, por %d zëra janë ende të papërkthyer." msgid "The translation is ready for use." msgstr "Përkthimi është gati për përdorim." #, c-format msgid "Poedit automatically fixed invalid content in the file “%s”." msgstr "Poedit-i ndreqi vetvetiu lëndë të pavlefshme te kartela “%s”." msgid "" "The file contained duplicate items, which is not allowed in PO files and " "would prevent the file from being used. Poedit fixed the issue, but you " "should review translations of any items marked as needing work and correct " "them if necessary." msgstr "" "Kartela përmbante zëra të përsëdytur, çka në kartelat PO s’lejohet dhe mund " "të pengojë përdorimin e kartelës. Poedit e ndreqi problemin, por do të duhej " "që të shqyrtonit përkthimet e cilitdo zë të shënuar si i turbullt dhe t’i " "ndreqni ato, në qoftë e nevojshme." msgid "Language of the translation isn’t set." msgstr "S’është caktuar gjuha e përkthimit." msgid "Set Language" msgstr "Caktoni Gjuhën" msgid "Set language" msgstr "Caktoni gjuhën" #. TRANSLATORS: This is shown underneath "Language of the translation isn't set (or ...is the same as source language)." msgid "" "Suggestions are not available if the translation language is not set " "correctly. Other features, such as plural forms, may be affected as well." msgstr "" "S’jepen sugjerime, në rast se gjuha e përkthimi s’është caktuar saktë. Kjo " "mund të prekë edhe veçori të tjera, format e shumësit, për shembull." msgid "Language of the translation is the same as source language." msgstr "Gjuha e përkthimit është e njëjtë me gjuhën burim." msgid "Fix Language" msgstr "Ndreqeni Gjuhën" msgid "Fix language" msgstr "Ndreqeni gjuhën" msgid "" "This catalog has entries with plural forms, but doesn’t have Plural-Forms " "header configured." msgstr "" "Ky katalog ka zëra me forma shumësi, por s’ka të formësuar fushën Plural-" "Forms." msgid "" "Entries in this catalog have different plural forms count from what " "catalog’s Plural-Forms header says" msgstr "" "Zërat në këtë katalog kanë forma shumësi të ndryshme nga çka tregohet te " "fusha Plural-Forms e katalogut" msgid "Required header Plural-Forms is missing." msgstr "I mungon krye e domosdoshme Plural-Forms." #, c-format msgid "Syntax error in Plural-Forms header (\"%s\")." msgstr "Gabim sintakse te kryet Plural-Forms (\"%s\")." msgid "Fix the Header" msgstr "Ndreqni Kryet" msgid "Fix the header" msgstr "Ndreqni kryet" #. TRANSLATORS: %s is language name in its basic form (as you #. would see e.g. in a list of supported languages). You may need #. to rephrase it, e.g. to an equivalent of "for language %s". #, c-format msgid "Plural forms expression used by the catalog is unusual for %s." msgstr "" "Shprehja për forma shumësi e përdorur nga katalogu është e pazakontë për %s." #. TRANSLATORS: A verb, shown as action button with ""Plural forms expression used by the catalog is unusual for %s.")" msgid "Review" msgstr "Shqyrtojeni" #, c-format msgid "Error loading message catalog file “%s”." msgstr "Gabim në ngarkimin e kartelës katalog mesazhesh “%s”." #, c-format msgid "Translated: %d of %d (%d %%)" msgstr "Të përkthyera: %d nga %d (%d %%)" #, c-format msgid "Remaining: %d" msgstr "Të mbetura: %d" #, c-format msgid "%d error" msgid_plural "%d errors" msgstr[0] "%d gabim" msgstr[1] "%d gabime" #, c-format msgid "%d entry" msgid_plural "%d entries" msgstr[0] "%d zë" msgstr[1] "%d zëra" msgid " (unsaved)" msgstr " (i paruajtur)" msgid " (modified)" msgstr " (i ndryshuar)" #, c-format msgid "Failed to update translation memory: %s" msgstr "Dështoi përditësimi i kujtesës së përkthimeve: %s" msgid "Purge deleted translations" msgstr "Spastroji përkthimet e fshira" msgid "Do you want to remove all translations that are no longer used?" msgstr "Doni të hiqen krejt përkthimet që s’përdoren më?" msgid "" "If you continue with purging, all translations marked as deleted will be " "permanently removed. You will have to translate them again if they are added " "back in the future." msgstr "" "Nëse vazhdoni me spastrimin, krejt përkthimet e shënuara si të fshira do të " "hiqen përgjithmonë. Do t’ju duhet t’i ripërktheni, nëse shtohen sërish në të " "ardhmen." msgid "Keep" msgstr "Mbaji" msgid "Purge" msgstr "Spastroji" msgid "Copy from source text" msgstr "Kopjoje prej teksti burim" msgid "Copy from Source Text" msgstr "Kopjoje prej Teksti Burim" #. TRANSLATORS: This is the key shortcut used in menus on Windows, some languages call them differently #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Ctrl+" msgstr "Ctrl+" msgid "Clear translation" msgstr "Pastroje përkthimin" msgid "Clear Translation" msgstr "Pastroje Përkthimin" msgid "Edit comment" msgstr "Përpunoni koment" msgid "Edit Comment" msgstr "Përpunoni Komentin" msgid "References:" msgstr "Referenca:" msgid "&Bookmarks" msgstr "&Faqerojtës" #. TRANSLATORS: This is the key shortcut used in menus on Windows, some languages call them differently #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Alt+" msgstr "Alt+" #, c-format msgid "Set bookmark %i" msgstr "Caktoni faqerojtës %i" #, c-format msgid "Go to bookmark %i" msgstr "Shkoni te faqerojtësi %i" #, c-format msgid "Set Bookmark %i" msgstr "Caktoni Faqerojtës %i" #, c-format msgid "Go to Bookmark %i" msgstr "Shkoni te Faqerojtësi %i" msgid "Hide Sidebar" msgstr "Fshihe Anështyllën" msgid "Show Sidebar" msgstr "Shfaqe Anështyllën" msgid "Hide Status Bar" msgstr "Fshihe Shtyllën e Gjendjeve" msgid "Show Status Bar" msgstr "Shfaqe Shtyllën e Gjendjeve" msgid "Source text:" msgstr "Teksti burim:" msgid "Singular:" msgstr "Njëjës:" msgid "Plural:" msgstr "Shumës:" msgid "Translation:" msgstr "Përkthim:" msgid "Pre-translated" msgstr "Përkthyer paraprakisht" msgid "Needs Work" msgstr "Lyp Punë" #. TRANSLATORS: This indicates that the string's translation isn't final #. and has known problems. For example, it might be machine translated or #. fuzzy matched from an older string. The translation should be short and #. convey this. If it's problematic to translate it, "Needs review" is #. acceptable substitute, but note that the meaning is subtly different: #. "needs review" implies that somebody else should review the string after #. I am done with it (i.e. consider it good), while "needs work" implies I #. need to return to it and finish the translation. msgid "Needs work" msgstr "Lyp punë" msgid "" "POT files are only templates and don’t contain any translations themselves.\n" "To make a translation, create a new PO file based on the template." msgstr "" "Kartelat POT janë thjesht gjedhe dhe s’përmbajnë ndonjë përkthim.\n" "Që të bëni një përkthim, krijoni një kartelë të re PO të bazuar te gjedhja." msgid "Create New Translation" msgstr "Krijoni Përkthim të Ri" msgid "Create new translation" msgstr "Krijoni përkthim të ri" msgid "Everything" msgstr "Gjithçka" #, c-format msgid "Form %i" msgstr "Forma %i" msgid "Singular" msgstr "Njëjës" msgid "Zero" msgstr "Zero" msgid "One" msgstr "Një" msgid "Two" msgstr "Dy" msgid "Plural" msgstr "Shumës" msgid "Other" msgstr "Tjetër" #, c-format msgid "%s Format" msgstr "Format %s" #. TRANSLATORS: %s is replaced with language name, e.g. "PHP" or "C", so "PHP Format" etc." #, c-format msgid "%s format" msgstr "Format %s" msgid "Source text" msgstr "Teksti burim" #, c-format msgid "Translation — %s" msgstr "Përkthim — %s" msgid "ID" msgstr "ID" #, c-format msgid "Source text — %s" msgstr "Teksti burim — %s" msgid "unknown language" msgstr "gjuhë e panjohur" #, c-format msgid "Failed command: %s" msgstr "Urdhri që dështoi: %s" msgid "Failed to merge gettext catalogs." msgstr "Dështoi përzierja e katalogëve gettext." msgid "Source file" msgstr "Kartelë burim" msgid "Source file occurrence:" msgstr "Hasje në kartelë burim:" msgid "Open in Editor" msgstr "Hape në Përpunues" msgid "Open in editor" msgstr "Hape në përpunues" msgid "No references for the selected item." msgstr "Pa referenca për objektin e përzgjedhur." #, c-format msgid "Error opening file %s!" msgstr "Gabim gjatë hapjes së kartelës %s!" msgid "Find" msgstr "Gjej" msgid "Replace" msgstr "Zëvendësoje" #. TRANSLATORS: Expander in Find window for additional options (case sensitive etc.) msgid "Options" msgstr "Mundësi" msgid "Ignore case" msgstr "Shpërfille shkrimin me të madhe/me të vogël" msgid "Wrap around" msgstr "Mbështille" msgid "Whole words only" msgstr "Vetëm fjalë të plota" msgid "Find in source texts" msgstr "Gjej në tekste burim" msgid "Find in translations" msgstr "Gjej në përkthime" msgid "Find in comments" msgstr "Gjej në komente" msgid "Close" msgstr "Mbylle" msgid "Replace &All" msgstr "Zëvendësoji &Krejt" msgid "Replace &all" msgstr "Zëvendësoji &krejt" msgid "&Replace" msgstr "&Zëvendësoje" msgid "< &Previous" msgstr "< I &mëparshmi" msgid "&Next >" msgstr "&Pasuesi >" msgid "String to find" msgstr "Varg për t’u gjetur" msgid "Replacement string" msgstr "Varg zëvendësimi" #, c-format msgid "Cannot execute program: %s" msgstr "S’përmbushet dot programi: %s" msgid "Language Code or Name (e.g. en_GB)" msgstr "Kod ose Emër Gjuhe (p.sh. sq)" msgid "Translation Language" msgstr "Gjuhë Përkthimi" msgid "Language of the translation:" msgstr "Gjuha e përkthimit:" msgid "Poedit - Catalogs manager" msgstr "Poedit - Përgjegjës katalogësh" msgid "Catalog" msgstr "Katalog" msgid "Total" msgstr "Gjithsej" msgid "Untrans" msgstr "Papërkth" msgid "Errors" msgstr "Gabime" msgid "Last modified" msgstr "Ndryshuar së fundi" msgid "Select directory" msgstr "Përzgjidhni drejtori" msgid "Directories:" msgstr "Drejtori:" msgid "" msgstr "" msgid "Do you want to delete the project?" msgstr "Doni të fshihet projekti?" msgid "Confirmation" msgstr "Ripohim" msgid "" "Do you really want to do mass update of\n" "all catalogs in this project?" msgstr "" "Vërtet doni të bëhet përditësim masiv\n" "i krejt katalogëve në këtë projekt?" msgid "Information about the translator" msgstr "Të dhëna rreth përkthyesit" msgid "Name:" msgstr "Emër:" msgid "Your Name" msgstr "Emri Juaj" msgid "Email:" msgstr "Email:" msgid "your_email@example.com" msgstr "your_email@example.com" msgid "" "Your name and email address are only used to set the Last-Translator header " "of GNU gettext files." msgstr "" "Emri dhe email-i juaj përdoren vetëm për të plotësuar fushën Last-Translator " "të kartelave GNU gettext." msgid "Editing" msgstr "Përpunim" msgid "Automatically compile MO file when saving" msgstr "Gjatë daljes, përpilo vetvetiu kartelën MO" msgid "Show summary after catalog update" msgstr "Pas përditësimesh katalogu, shfaq përmbledhjen" msgid "Check spelling" msgstr "Kontrolloji drejtshkrimin" msgid "Always change focus to text input field" msgstr "Ndryshoje përherë fokusin për te fushë futjeje teksti" msgid "" "Never let the list of strings take focus. If enabled, you must use Ctrl-" "arrows for keyboard navigation but you can also type text immediately, " "without having to press Tab to change focus." msgstr "" "Mos e lër kurrë listën e vargjeve të kontrollojë fokusin. Nëse është aktiv, " "duhet të përdorni Ctrl-shigjeta për lëvizje me tastierë, por gjithashtu mund " "të shtypni tekst përnjëherë, pa qenë nevoja të shtypni Tab për të ndryshuar " "fokusin." msgid "Appearance" msgstr "Dukje" msgid "Use custom list font:" msgstr "Përdor shkronja vetjake liste:" msgid "Use custom text fields font:" msgstr "Përdor shkronja vetjake për fusha tekstesh:" msgid "Change UI language" msgstr "Ndryshoni gjuhën për UI-në" #. TRANSLATORS: This is a note appended to "Check spelling" when running on older Windows versions msgid "(requires Windows 8 or newer)" msgstr "(lyp Windows 8 ose më të ri)" msgid "General" msgstr "Të përgjithshme" msgid "Use translation memory" msgstr "Përdor kujtesë përkthimesh" msgid "Learn From Files…" msgstr "Mëso Prej Kartelave…" msgid "Learn from files…" msgstr "Mëso prej kartelave…" #. TRANSLATORS: This is a button that deletes everything in the translation memory (i.e. clears/resets it). msgid "Reset" msgstr "Zeroje" #. TRANSLATORS: Followed by "match translations within the file" or "pre-translate from TM" msgid "When updating from sources" msgstr "Kur përditësohet që nga burimi" #. TRANSLATORS: Preceded by "When updating from sources" msgid "fuzzy match within the file" msgstr "plotëso përputhje të turbullta nga kartela" #. TRANSLATORS: Preceded by "When updating from sources" msgid "pre-translate from TM" msgstr "përkthe paraprakisht prej KP-je" msgid "" "Poedit can attempt to fill in new entries from only previous translations in " "the file or from your entire translation memory. Using the TM won’t be very " "effective if it’s near-empty, but it will get better as you add more " "translations to it." msgstr "" "Poedit-i mund të provojë të plotësojë zëra të rinj që nga përkthime të " "dikurshme vetëm prej kartelës, ose prej krejt kujtesës së përkthimit. " "Përdorimi i KP-së s’do të jetë kushedi çë i efektshëm, nëse kjo është " "thuajse e zbrazët, por do të përmirësohet, dora-dorës që shtoni përkthime në " "të." msgid "Stored translations:" msgstr "Përkthime të depozituara:" msgid "Database size on disk:" msgstr "Madhësi baze të dhënash në disk:" msgid "Select translation files to import" msgstr "Përzgjidhni kartela përkthimi për importim" msgid "Translation Memory" msgstr "Kujtesë Përkthimesh" msgid "Importing translations…" msgstr "Po importohen përkthimet…" msgid "Finalizing…" msgstr "Po përfundohet…" msgid "Reset translation memory" msgstr "Të zerohet kujtesa e përkthimeve" msgid "Are you sure you want to reset the translation memory?" msgstr "Jeni i sigurt se doni të zerohet kujtesa e përkthimeve?" msgid "" "Resetting the translation memory will irrevocably delete all stored " "translations from it. You can’t undo this operation." msgstr "" "Zerimi i kujtesës së përkthimit do të shkaktojë fshirjen, pa prapakthim, të " "krejt përkthimeve të depozituara në të. Këtë veprim s’mund ta zhbëni." msgid "Cancel" msgstr "Anuloje" #. TRANSLATORS: This is abbreviation of "Translation Memory" used in Preferences on macOS. #. Long text looks weird there, too short (like TM) too, but less so. "General" is about ideal #. length there. msgid "TM" msgstr "KP" msgid "" "Source code extractors are used to find translatable strings in the source " "code files and extract them so that they can be translated." msgstr "" "Përftuesit prej kodi burim përdoren për të gjetur vargje të përkthyeshme në " "kartela kodi burim dhe për t’i përftuar ato, që të mund të përkthehen." msgid "Custom Extractors:" msgstr "Përftues të Përshtatur:" msgid "Custom extractors:" msgstr "Përftues të përshtatur:" msgid "Edit…" msgstr "Përpunoni…" msgid "GNU gettext" msgstr "GNU gettext" msgid "" "Supports all programming languages recognized by GNU gettext tools (PHP, C/C+" "+, C#, Perl, Python, Java, JavaScript and others)." msgstr "" "Mbulon krejt gjuhët e programimit të pranuara nga mjete GNU gettext (PHP, C/C" "++, C#, Perl, Python, Java, JavaScript, etj)." msgid "Delete extractor" msgstr "Fshije përftuesin" #, c-format msgid "Are you sure you want to delete the “%s” extractor?" msgstr "Jeni i sigurt se doni të fshihet përftuesi “%s”?" msgid "Extractors" msgstr "Përftues" msgid "Accounts" msgstr "Llogari" msgid "Automatically check for updates" msgstr "Kontrollo vetvetiu për përditësime" msgid "Include beta versions" msgstr "Përfshi versione beta" msgid "" "Beta versions contain the latest new features and improvements, but may be a " "bit less stable." msgstr "" "Versionet beta përmbajnë veçoritë dhe përmirësimet më të reja, por mund të " "jenë më pak të qëndrueshme." msgid "Updates" msgstr "Përditësime" msgid "" "These settings affect internal formatting of PO files. Adjust them if you " "have specific requirements e.g. because of version control." msgstr "" "Këto rregullime prekin formatim të brendshëm të kartelave PO. Prekini nëse " "keni domosdoshmëri specifike, për shembull, për shkak sistemi kontrolli " "versionesh." msgid "Line endings:" msgstr "Funde rreshtash:" msgid "Unix (recommended)" msgstr "Unix (e këshillueshme)" msgid "Windows" msgstr "Windows" #. TRANSLATORS: Followed by text control for entering number; wraps text at given width msgid "Wrap at:" msgstr "Mbështille në gjatësinë:" msgid "Preserve formatting of existing files" msgstr "Ruaje formatimin e kartelave ekzistuese" msgid "Advanced" msgstr "Të mëtejshme" msgid "Pre-translating…" msgstr "Parapërkthim…" #, c-format msgid "Pre-translated %u string" msgid_plural "Pre-translated %u strings" msgstr[0] "%u varg i përkthyer paraprakisht" msgstr[1] "%u vargje të përkthyer paraprakisht" #. TRANSLATORS: This is a somewhat common term describing the action where #. you apply the translation memory and/or machine translation to all of the #. strings you're translating as the first step, followed by correcting, #. improving etc., i.e. actually translating the strings. This may be tricky #. to express in other languages as simply as in English, but please try to #. keep it similarly concise. Please try to avoid, if possible, describing it #. as "auto-translation" and similar, because such terminology would mislead #. some users into thinking it's all that needs to be done (spoken from #. experience). "Pre-translate" nicely expresses that it's only the step done #. *before* actual translation. msgid "Pre-translate" msgstr "Përkthim paraprak" msgid "Only fill in exact matches" msgstr "Plotëso vetëm përputhjet e përpikta" msgid "" "By default, inaccurate results are filled in as well and marked as needing " "work. Check this option to only include accurate matches." msgstr "" "Si parazgjedhje, plotësohen edhe përfundimet e pasakta dhe shënohen si të " "turbullta. I vini shenjë kësaj mundësie që të përfshihen vetëm përputhjet e " "përpikta." msgid "Don’t mark exact matches as needing work" msgstr "Përputhjeve të përpikta mos u vër shenjë si të lypnin punë" msgid "" "Only enable if you trust the quality of your TM. By default, all matches " "from the TM are marked as needing work and should be reviewed before use." msgstr "" "Aktivizojeni vetëm nëse besoni në cilësinë e KP-së suaj. Si parazgjedhje, " "krejt përputhjet prej KP-së shënohen si të turbullta dhe do të duheshin " "marrë në shqyrtim." msgid "" "Pre-translation automatically finds exact or fuzzy matches for untranslated " "strings in the translation memory and fills in their translations." msgstr "" "Parapërkthimi gjen në kujtesën e përkthimeve përputhje të sakta ose të " "përafërta për vargje përkthimesh dhe i plotëson ato në kutizën e përkthimit." #, c-format msgid "%d entry was pre-translated." msgid_plural "%d entries were pre-translated." msgstr[0] "U përkthye paraprakisht %d zë." msgstr[1] "U përkthyen paraprakisht %d zëra." msgid "" "The translations were marked as needing work, because they may be " "inaccurate. You should review them for correctness." msgstr "" "Përkthimet janë shënuar si të turbullta, ngaqë mund të jenë të pasakta. Do " "të duhej t’u kontrollonit saktësinë." msgid "No entries could be pre-translated." msgstr "S’u përkthye dot paraprakisht ndonjë zë." msgid "" "The TM doesn’t contain any strings similar to the content of this file. It " "is only effective for semi-automatic translations after Poedit learns enough " "from files that you translated manually." msgstr "" "KP-ja s’përmban ndonjë varg të ngjashëm me lëndën e kësaj kartele. Ka efekt " "vetëm për përkthime gjysmë të vetvetishme, pasi Poedit të grumbullojë " "mjaftueshëm lëndë prej kartelave që përktheni dorazi." msgid "" "Drag and Drop Folders Here\n" "\n" "or use the + button" msgstr "" "Tërhiqni dhe Lini Këtu Dosje\n" "\n" "ose përdorni butonin +" msgid "" "Drag and drop folders here\n" "\n" "or use the + button" msgstr "" "Tërhiqni dhe lini këtu dosje\n" "\n" "ose përdorni butonin +" msgid "Add Folders…" msgstr "Shtoni Dosje…" msgid "Add folders…" msgstr "Shtoni dosje…" msgid "Add Files…" msgstr "Shtoni Kartela…" msgid "Add files…" msgstr "Shtoni kartela…" msgid "Add Wildcard…" msgstr "Shtoni Shenja të Gjithëpushtetshme…" msgid "Add wildcard…" msgstr "Shtoni shenja të gjithëpushtetshme…" msgid "Paths" msgstr "Shtigje" msgid "Excluded paths" msgstr "Shtigje të përjashtuar" msgid "Advanced extraction settings" msgstr "Rregullime të thelluara përftimesh" msgid "Extract notes for translators from:" msgstr "Përfto shënime për përkthyesin nga:" msgid "Comments prefixed with:" msgstr "Komente të paraprira me:" msgid "All comments" msgstr "Krejt komentet" msgid "Additional xgettext flags:" msgstr "Shenja xgettext shtesë:" msgid "Additional keywords" msgstr "Fjalëkyçe shtesë" msgid "Name of the project the translation is for" msgstr "Emri i projektit për të cilin bëhet përkthimi" msgid "Team name and email address or URL" msgstr "Emër ekipi dhe adresë email ose URL" msgid "e.g. nplurals=2; plural=(n > 1);" msgstr "p.sh. nplurals=2; plural=(n > 1);" msgid "UTF-8 (recommended)" msgstr "UTF-8 (e këshillueshme)" msgid "Please save the file first. This section cannot be edited until then." msgstr "" "Ju lutemi, së pari ruajeni kartelën. Kjo pjesë s’mund të përpunohet para " "ruajtjes." msgid "Not all plural forms are translated." msgstr "S’janë përkthyer krejt format e shumësit." msgid "The translation should start as a sentence." msgstr "Përkthimi duhet të fillojë me një togfjalësh." msgid "The translation should start with a lowercase character." msgstr "Përkthimi duhet të fillojë me një shkronjë të vogël." msgid "The translation doesn’t start with a space." msgstr "Përkthimi nuk fillon me një hapësirë." msgid "The translation starts with a space, but the source text doesn’t." msgstr "Përkthimi fillon me një hapësirë, por jo burimi." msgid "The translation is missing a newline at the end." msgstr "Përkthimit i mungon një simbol rreshti të ri në fund." msgid "The translation ends with a newline, but the source text doesn’t." msgstr "Përkthimi përfundon me një simbol rreshti të ri, por jo burimi." msgid "The translation is missing a space at the end." msgstr "Përkthimit i mungon një hapësirë në fund." msgid "The translation ends with a space, but the source text doesn’t." msgstr "Përkthimi përfundon me një hapësirë, por jo burimi." #, c-format msgid "The translation should end with “%s”." msgstr "Përkthimi duhet të mbarojë me një “%s”." #, c-format msgid "The translation should not end with “%s”." msgstr "Përkthimi s’duhet të mbarojë me një “%s”." #, c-format msgid "The translation ends with “%s”, but the source text ends with “%s”." msgstr "Përkthimi përfundon me “%s”, por teksti burim përfundon me “%s”." msgid "Comment:" msgstr "Koment:" msgid "OK" msgstr "OK" msgid "C&lear" msgstr "&Pastroje" msgid "Clear the comment" msgstr "Pastroje komentin" msgid "New" msgstr "I ri" msgid "Create new translations project" msgstr "Krijoni projekt të ri përkthimi" msgid "Edit" msgstr "Përpunoni" msgid "Edit the project" msgstr "Përpunoni projektin" msgid "Delete the project" msgstr "Fshije projektin" msgid "Update all" msgstr "Përditësoji krejt" msgid "Update all catalogs in the project" msgstr "Përditëso tërë katalogët në projekt" msgid "Edit project" msgstr "Përpunoni projekt" msgid "Project name:" msgstr "Emër projekti:" msgid "Browse" msgstr "Shfletoni" msgid "Add directory to the list" msgstr "Shtoni drejtori te lista" msgid "&New…" msgstr "I &ri…" msgid "New from &POT/PO file…" msgstr "I ri prej kartele &POT/PO…" msgid "New From &POT/PO File…" msgstr "I ri prej Kartele &POT/PO…" msgid "&Open…" msgstr "&Hapni…" msgid "Open Recent" msgstr "Hap Një Nga të Rejat" msgid "Open from Crowdin…" msgstr "Hapeni prej Crowdin-i…" msgid "Open From Crowdin…" msgstr "Hapeni Prej Crowdin-i…" msgid "&Close" msgstr "&Mbylle" msgid "&Save" msgstr "&Ruaje" msgid "Save &as…" msgstr "Ruajeni &si…" msgid "Save &As…" msgstr "Ruajeni &Si…" msgid "Compile to MO…" msgstr "Përpilojeni si MO…" msgid "E&xport as HTML…" msgstr "&Eksportojeni si HTML…" msgid "Check for updates…" msgstr "Kontrollo për përditësime…" msgid "&Preferences…" msgstr "&Parapëlqime…" msgid "Catalogs &manager" msgstr "&Përgjegjës katalogësh" msgid "Catalogs &Manager" msgstr "&Përgjegjës Katalogësh" msgid "E&xit" msgstr "&Dil" msgid "Quit" msgstr "Mbylle" msgid "Copy from singular" msgstr "Kopjoje prej njëjësit" msgid "Copy From Singular" msgstr "Kopjoje Prej Njëjësit" msgid "Translation needs &work" msgstr "Përkthimi lyp &punë" msgid "Translation Needs &Work" msgstr "Përkthimi Lyp &Punë" msgid "Edit &comment" msgstr "Përpunoni &koment" msgid "Edit &Comment" msgstr "Përpunoni &Komentin" msgid "Suggestions" msgstr "Sugjerime" msgid "&Find…" msgstr "&Gjeni…" msgid "Replace…" msgstr "Zëvendësoni…" msgid "Find next" msgstr "Gjej pasuesin" msgid "Find previous" msgstr "Gjej të mëparshmin" msgid "Find and Replace…" msgstr "Gjeni dhe Zëvendësoni…" msgid "Find Next" msgstr "Gjej Pasuesin" msgid "Find Previous" msgstr "Gjej të Mëparshmin" msgid "&Preferences" msgstr "&Parapëlqime" msgid "Display entry &IDs" msgstr "Shfaq &ID zërash" msgid "Display Entry &IDs" msgstr "Shfaq &ID Zërash" msgid "Sort by &file order" msgstr "Renditi sipas rendi &kartelash" msgid "Sort by &File Order" msgstr "Renditi sipas Rendi &Kartelash" msgid "Sort by &source" msgstr "Renditi sipas &burimesh" msgid "Sort by &Source" msgstr "Renditi sipas &Burimesh" msgid "Sort by &translation" msgstr "Renditi sipas &përkthimesh" msgid "Sort by &Translation" msgstr "Renditi sipas &Përkthimesh" msgid "&Group by context" msgstr "&Grupoji sipas kontekstit" msgid "&Group By Context" msgstr "&Grupoji Sipas Kontekstit" msgid "Entries with errors first" msgstr "Së pari zërat me gabime" msgid "Entries with Errors First" msgstr "Së Pari Zërat me Gabime" msgid "&Untranslated entries first" msgstr "Së pari zërat e &papërkthyer" msgid "&Untranslated Entries First" msgstr "Së Pari Zërat e &Papërkthyer" msgid "&Show references" msgstr "&Shfaq referenca" msgid "&Show References" msgstr "&Shfaq Referenca" msgid "Show sidebar" msgstr "Shfaq anështyllë" msgid "Show status bar" msgstr "Shfaq shtyllë gjendjesh" msgid "C&atalog" msgstr "&Katalog" msgid "&Update from sources" msgstr "&Përditësoji prej burimesh" msgid "&Update from Sources" msgstr "&Përditësoji prej Burimesh" msgid "Update from &POT file…" msgstr "Përditësojeni prej kartele &POT…" msgid "Update from &POT File…" msgstr "Përditësojeni prej Kartele &POT…" msgid "Sync with Crowdin" msgstr "Njëkohësoje me Crowdin-in" msgid "Pre-&translate…" msgstr "Përkthe p&araprakisht…" msgid "&Purge deleted translations" msgstr "&Spastroji përkthimet e fshira" msgid "&Purge Deleted Translations" msgstr "&Spastroji Përkthimet e Fshira" msgid "&Validate translations" msgstr "&Vleftësoni përkthime" msgid "&Validate Translations" msgstr "&Vleftësoni Përkthime" msgid "&Properties…" msgstr "&Veti…" msgid "&Done and next" msgstr "&U bë, tjetri" msgid "&Done and Next" msgstr "&U bë, Tjetri" msgid "&Previous translation" msgstr "Përkthimi i &mëparshëm" msgid "&Previous Translation" msgstr "Përkthimi i &Mëparshëm" msgid "&Next translation" msgstr "Përkthimi &pasues" msgid "&Next Translation" msgstr "Përkthimi &Pasues" msgid "P&revious unfinished" msgstr "I më&parshmi i pambaruar" msgid "P&revious Unfinished" msgstr "I më&parshmi i Pambaruar" msgid "Ne&xt unfinished" msgstr "Pas&uesi i pambaruar" msgid "Ne&xt Unfinished" msgstr "Pas&uesi i pambaruar" msgid "Previous plural form" msgstr "Forma e mëparshme e shumësit" msgid "Previous Plural Form" msgstr "Forma e Mëparshme e Shumësit" msgid "Next plural form" msgstr "Forma pasuese e shumësit" msgid "Next Plural Form" msgstr "Forma Pasuese e Shumësit" msgid "&Online help" msgstr "Ndihmë në &Internet" msgid "&Online Help" msgstr "Ndihmë Në &Internet" msgid "&GNU gettext manual" msgstr "Doracaku &GNU gettext" msgid "&GNU gettext Manual" msgstr "Doracaku &GNU gettext" msgid "&About Poedit" msgstr "&Mbi Poedit-in" msgid "&About" msgstr "&Mbi" msgid "Extractor setup" msgstr "Rregullim i përftuesit" msgid "List of extensions separated by semicolons (e.g. *.cpp;*.h):" msgstr "Listë zgjatimesh, të ndarë me pikëpresje (p.sh. *.cpp;*.h):" msgid "Invocation:" msgstr "Thirrje:" msgid "Command to extract translations:" msgstr "Urdhër për përftim përkthimesh:" msgid "" "This is the command used to launch the extractor.\n" "%o expands to the name of output file, %K to list\n" "of keywords, %F to list of input files,\n" "%C to charset flag (see below)." msgstr "" "Ky është urdhri i përdorur për të nisur përtypësin.\n" "%o bëhet emri i kartelës përfundim, %K lista\n" "e fjalëkyçeve, %F lista e kartelave hyrëse,\n" "%C simboli i shkronjave (shihni më poshtë)." msgid "An item in keywords list:" msgstr "Një zë në listë fjalëkyçesh:" msgid "" "This will be attached to the command line once\n" "for each keyword. %k expands to the keyword." msgstr "" "Kjo do t’i bashkëngjitet rreshtit të urdhrave një herë\n" "për çdo fjalëkyç. %k bëhet vlera e fjalëkyçit." msgid "An item in input files list:" msgstr "Një zë në listë futje kartelash:" #, c-format msgid "" "This will be attached to the command line once\n" "for each input file. %f expands to the filename." msgstr "" "Kjo do t’i bashkëngjitet rreshtit të urdhrave një herë\n" "për çdo kartelë hyrje. %f bëhet emri i kartelës." msgid "Source code charset:" msgstr "Shkronja kodi burim:" #, c-format msgid "" "This will be attached to the command line\n" "only if source code charset was given. %c expands to charset value." msgstr "" "Kjo do t’i bashkëngjitet rreshtit të urdhrave\n" "vetëm nëse janë dhënë shkronja kodi burim. %c bëhet emri i shkronjave." msgid "Catalog properties" msgstr "Veti katalogu" msgid "Project name and version:" msgstr "Emër dhe version projekti:" msgid "Language team:" msgstr "Ekip gjuhe:" msgid "Plural forms:" msgstr "Forma shumësi:" msgid "Use default rules for this language" msgstr "Për këtë gjuhë përdor rregullat parazgjedhje" msgid "Use custom expression" msgstr "Përdor shprehje vetjake" msgid "Learn about plural forms" msgstr "Mësoni më tepër rreth formash shumësi" msgid "Charset:" msgstr "Shkronja:" msgid "Advanced Extraction Settings…" msgstr "Rregullime të Thelluara Përftimesh…" msgid "Advanced extraction settings…" msgstr "Rregullime të thelluara përftimesh…" msgid "Translation Properties" msgstr "Veti Përkthimesh" msgid "Translation properties" msgstr "Veti përkthimesh" msgid "Sources Paths" msgstr "Shtigje Burimesh" msgid "Sources paths" msgstr "Shtigje burimesh" msgid "Extract text from source files in the following directories:" msgstr "Përfto tekst prej kartelash burim nga drejtoritë vijuese:" msgid "Base path:" msgstr "Shteg bazë:" msgid "Sources Keywords" msgstr "Fjalëkyçe Burimesh" msgid "Sources keywords" msgstr "Fjalëkyçe burimesh" msgid "" "Use these keywords (function names) to recognize translatable strings\n" "in source files:" msgstr "" "Përdorini këta fjalëkyçe (emra funksionesh) për të dalluar vargje të " "përkthyeshëm\n" "te kartelat burim:" msgid "Also use default keywords for supported languages" msgstr "Veç kësaj, përdor fjalëkyçe parazgjedhje për gjuhët e mbuluara" msgid "Learn About Gettext Keywords" msgstr "Mësoni Rreth Fjalëkyçesh Gettext" msgid "Learn about gettext keywords" msgstr "Mësoni rreth fjalëkyçesh gettext" msgid "Update summary" msgstr "Përditëso përmbledhjen" msgid "" "These strings were found in the sources but were not in the catalog.\n" "Poedit will add them to the catalog now." msgstr "" "Këto vargje u gjetën në burime, por s’qenë te katalogu.\n" "Poedit do t’i shtojë te katalogu tani." msgid "New strings" msgstr "Vargje të rinj" msgid "" "These strings are no longer in the sources.\n" "Poedit will remove them from the catalog now." msgstr "" "Këto vargje s’janë më në burime.\n" "Poedit do t’i heqë prej katalogut tani." msgid "Obsolete strings" msgstr "Vargje të vjetruar" msgid "(0 new, 0 obsolete)" msgstr "(0 të rinj, 0 të vjetruar)" msgid "Open" msgstr "Hape" msgid "Save catalog" msgstr "Ruaje katalogun" msgid "Validate" msgstr "Vleftësoje" msgid "Check for errors in the translation" msgstr "Kontrolloni për gabime te përkthimi" msgid "Update" msgstr "Përditësoje" msgid "Update catalog - synchronize it with sources" msgstr "Përditëso katalogun - njëkohësoje me burimet" msgid "Sidebar" msgstr "Anështyllë" msgid "Show or hide the sidebar" msgstr "Shfaqni ose fshihni anështyllën" #. TRANSLATORS: "Previous" as in used in the past, now replaced with newer. msgid "Previous source text:" msgstr "Teksti burim i dikurshëm:" msgid "" "The old source text (before it changed during an update) that the now-" "inaccurate translation corresponds to." msgstr "" "Teksti burim i dikurshëm (përpara se të ndryshohej gjatë një përditësimi) të " "cilit i takon përkthimi tanimë jo i saktë." msgid "Notes for translators:" msgstr "Shënime për përkthyesit:" msgid "Add comment" msgstr "Shto koment" msgid "Add Comment" msgstr "Shtoni Koment" msgid "Translation suggestions:" msgstr "Sugjerime përkthimi:" #. TRANSLATORS: This is shown when no translation suggestions can be found in the TM (Windows). msgid "No matches found" msgstr "S’u gjetën përputhje" #. TRANSLATORS: This is shown when no translation suggestions can be found in the TM (macOS, Linux). msgid "No Matches Found" msgstr "S’u Gjetën Përputhje" msgid "This string was found in Poedit’s translation memory." msgstr "Ky varg u gjet në kujtesën e përkthimeve të Poedit-it." msgid "Cannot create temporary directory." msgstr "S’krijohet dot drejtori e përkohshme." msgid "Welcome to Poedit" msgstr "Mirë se vini te Poedit" #. TRANSLATORS: This is version information in about dialog, "%s" will be #. version number when used #, c-format msgid "Version %s" msgstr "Versioni %s" msgid "Edit a Translation" msgstr "Përpunoni një Përkthim" msgid "Edit a translation" msgstr "Përpunoni një përkthim" msgid "Open an existing PO file and edit the translation." msgstr "Hapni një kartelë PO ekzistuese dhe përpunoni përkthimin." msgid "" "Take an existing PO file or POT template and create a new translation from " "it." msgstr "" "Merrni një kartelë ekzistuese PO ose një gjedhe POT dhe krijoni prej saj një " "përkthim të ri." msgid "Collaborate on a Translation with Others" msgstr "Bashkëpunoni me të Tjerë për një Përkthim" msgid "Collaborate on a translation with others" msgstr "Bashkëpunoni me të tjerë për një përkthim" msgid "" "Download a file from Crowdin project, translate and sync your changes back." msgstr "" "Shkarkoni një kartelë prej një projekti në Crowdin, përkthejeni dhe " "parashtroni ndryshimet tuaja." msgid "What is Crowdin?" msgstr "Ç’është Crowdin-i?" msgid "There are no translations. That’s unusual." msgstr "S’ka përkthime. Kjo është e pazakontë." msgid "" "Translatable entries aren’t added manually in the Gettext system, but are " "automatically extracted\n" "from source code. This way, they stay up to date and accurate.\n" "Translators typically use PO template files (POTs) prepared for them by the " "developer." msgstr "" "Në sistemin Gettext, zërat e përkthyeshëm nuk shtohen dorazi, përftohen " "automatikisht\n" "që nga kodi burim. Në këtë mënyrë, ata mbeten të përditësuar dhe të saktë.\n" "Zakonisht përkthyesit përdorin kartela PO (POT) të përgatitura për ta nga " "zhvilluesi." msgid "(Learn more about GNU gettext)" msgstr "(Mësoni më tepër mbi GNU gettext-in)" msgid "The simplest way to fill this catalog is to update it from a POT:" msgstr "" "Rruga më e lehtë për të plotësuar këtë katalog është përditësimi i tij prej " "një POT-i:" msgid "Update from POT" msgstr "Përditësojeni prej POT-i" msgid "Take translatable strings from an existing POT template." msgstr "Merri vargjet e përkthyeshëm prej një gjedheje POT ekzistuese." msgid "" "You can also extract translatable strings directly from the source code:" msgstr "Mund të përftoni vargje të përkthyeshëm edhe drejt e nga kodi burim:" msgid "Extract from sources" msgstr "Përftoji prej burimesh" msgid "Configure source code extraction in Properties." msgstr "Formësoni përftim nga kodi burim, te Vetitë." msgid "Sync" msgstr "Njëkohësoje" msgid "Synchronize the translation with Crowdin" msgstr "Njëkohësojeni përkthimin me atë në Crowdin" #. TRANSLATORS: This is titlebar of about dialog, "%s" is application name #. ("Poedit" here, but please use "%s") #, c-format msgid "About %s" msgstr "Mbi %s-in" #. TRANSLATORS: Title of the preferences window on Windows and Linux. "%s" is replaced with "Poedit" when running. #, c-format msgid "%s Preferences" msgstr "Parapëlqime mbi %s" #. TRANSLATORS: macOS item in app menu msgid "Services" msgstr "Shërbime" #. TRANSLATORS: macOS item in app menu, %s is replaced with "Poedit" #, c-format msgid "Hide %s" msgstr "Fshihe %s" #. TRANSLATORS: macOS item in app menu msgid "Hide Others" msgstr "Fshihi të Tjerët" #. TRANSLATORS: macOS item in app menu msgid "Show All" msgstr "Shfaqi Krejt" #. TRANSLATORS: macOS item in app menu, %s is replaced with "Poedit" #, c-format msgid "Quit %s" msgstr "Mbylleni %s" #. TRANSLATORS: macOS item in app menu msgid "Preferences…" msgstr "Parapëlqime…" msgid "Preferences..." msgstr "Parapëlqime…" #. TRANSLATORS: Title of a category in Windows task menu (right-click icon in taskbar) msgid "Recent" msgstr "Së fundi" #. TRANSLATORS: Title of a category in Windows task menu (right-click icon in taskbar) msgid "Frequent" msgstr "Të shpeshta" msgid "&Apply" msgstr "&Zbatoje" msgid "Apply" msgstr "Zbatoje" msgid "&Back" msgstr "&Mbrapsht" msgid "Back" msgstr "Mbrapsht" msgid "&Cancel" msgstr "&Anuloje" msgid "&Clear" msgstr "&Pastroje" msgid "Clear" msgstr "Pastroje" msgid "Copy" msgstr "Kopjoje" msgid "Cu&t" msgstr "&Prije" msgid "Cut" msgstr "Prijeni" msgid "&Delete" msgstr "&Fshije" msgid "&Quit" msgstr "&Mbylle" msgid "File" msgstr "Kartelë" msgid "Help" msgstr "Ndihmë" msgid "&New" msgstr "E &re" msgid "&No" msgstr "&Jo" msgid "No" msgstr "Jo" msgid "&OK" msgstr "&OK" msgid "Open…" msgstr "Hapni…" msgid "&Open..." msgstr "&Hapni…" msgid "Open..." msgstr "Hapni…" msgid "&Paste" msgstr "&Ngjite" msgid "Paste" msgstr "Ngjitni" msgid "Preferences" msgstr "Parapëlqime" msgid "&Redo" msgstr "&Ribëje" msgid "Refresh" msgstr "Rifreskoje" msgid "&Save as" msgstr "&Ruaje si" msgid "Save as" msgstr "Ruaje si" msgid "Select &All" msgstr "Përzgjidhe &Krejt" msgid "Select All" msgstr "Përzgjidheni Krejt" msgid "&Undo" msgstr "&Zhbëje" msgid "&Yes" msgstr "&Po" msgid "Yes" msgstr "Po" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Shift+" msgstr "Shift+" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Enter" msgstr "ENTER" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Up" msgstr "Up" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Down" msgstr "Down" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Left" msgstr "Majtas" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Right" msgstr "Djathtas" #. TRANSLATORS: Keyboard shortcut, must correspond to translation of "Ctrl+" msgid "ctrl" msgstr "ctrl" #. TRANSLATORS: Keyboard shortcut, must correspond to translation of "Alt+" msgid "alt" msgstr "alt" #. TRANSLATORS: Keyboard shortcut, must correspond to translation of "Shift+" msgid "shift" msgstr "shift" poedit-2.0.6/locales/lv.mo0000664000372000037200000004621413230132100012314 00000000000000D]l   #28>GKQ Y fs| -I^sy    'Gd ~AI%",Oj.r4Pbt  "9 Yg E$"j?  " 50fl    ., A<N*!! ,2FWf nyB J W c h {   < .!G!b!k!|!!I"M"f" "7"%""""## 0#=#S#h#p######n#T$\$c$-}$$$$$ $ %%%6%;% @% L%W% \% h% t% % %%%%%!%& &)&1&D& M& [&e& v& & &&&&&&&' #'/' G' S'`' q'''' ' ' ''+'(.(II(L(`(YA)m): *;D*m*_*[N++++ +++ +,-,5, <,"G,,j,,,,?,-5-VO- -----7-'.>.!D.f.`0o0w0 00000 00 00 0 1101 J1 V1 b1p1111 111 2 "2C2V2i2p22 2222223#3,83 e3 33M3Q4 V4 a4k4!r444;44 5"5:5!Q5 s55.5055 6626 ;6G6W6^6u6$6666#7%7577777V8 Z8C{8 88 88$86"9Y9`9 x999999 9,9":9:S:p:5::+:':&#;J;d;k;;;; ;;; << <<<<<==0=A=E]='=#= ==>*>? ?'?A?7P?+??????@@1@ G@R@o@@@@@r@KAZAaA6AA"A"AB-B AB KBUBtBzB B B BBBBBB CC$3CXC2oC C C CC CC CD D"D)D9DVDjDDDDD DD E EE 2E>ECE`EoE~EE'E6EFF@-FInFmFK&GfrG6G2HyCHgHe%IIII III$IJJJ%J)4J.^JJJJ[J"3KVKatK KKKLL-LLLfLlLQ]y2B ^@ l7$rjEY#adRmKGb }k"`eh(sM*<HP6>S~t +x8Xg&. 4 5-_'Tio;/\Fc9C?|AwJ,%n1uU!L{[Nv0=WVqD)ZpfI:Oz3 (modified)&About&Bookmarks&Close&Copy&Delete&Done and Next&Done and next&Edit&File&Find…&Go&Help&New…&Online Help&Online help&Open...&Open…&Preferences&Preferences…&Properties…&Purge Deleted Translations&Purge deleted translations&Save&Show References&Show references&Untranslated Entries First&Untranslated entries first&Update from Sources&Update from sources&View(0 new, 0 obsolete)(Use default language)About %sAdd Files…Add Folders…Add directory to the listAdd files…Add folders…All Translation FilesAlways change focus to text input fieldAn item in input files list:An item in keywords list:Base path:Broken catalog file: plural form msgstr used without msgid_pluralBroken catalog file: singular form msgstr used together with msgid_pluralBrowseC&atalogCancelCannot create temporary directory.Cannot execute program: %sCatalogCatalog modified. Do you want to save changes?Catalog propertiesCatalogs &ManagerCatalogs &managerCatalogs ManagerChange UI languageCharset:Check Document NowCheck Grammar With SpellingCheck Spelling While TypingClear TranslationClear the commentClear translationCloseComment:ConfirmationCopyCopy from Source TextCopy from source textCorrect Spelling AutomaticallyCouldn’t save file %s.Create New TranslationCreate new translationCreate new translations projectCrowdin errorCrowdin is an online localization management platform and collaborative translation tool. Poedit can seamlessly sync PO files managed at Crowdin.CutDeleteDelete the projectDirectories:Do you really want to do mass update of all catalogs in this project?Do you want to delete the project?Do you want to remove all translations that are no longer used?Don’t SaveDon’t Show AgainDon’t saveDon’t show againDownloading latest translations…Downloading translations is disabled in this project.E&xitE&xport as HTML…EditEdit &CommentEdit &commentEdit commentEdit projectEdit the projectEdit…Entries in the catalog are probably incorrect.Error opening fileError opening file %s!Error saving catalogExport as…Extract text from source files in the following directories:Failed command: %sFailed to communicate with Poedit process.Failed to load extracted catalog.Failed to merge gettext catalogs.File “%s” doesn’t exist.File:Find and Replace…Find in commentsFix the headerForm %iHTML FilesHide this notification messageIf you continue with purging, all translations marked as deleted will be permanently removed. You will have to translate them again if they are added back in the future.InstallInvalid fileInvocation:KeepLanguage selectionLanguage:Last modifiedLearn MoreLearn More About CrowdinLearn moreLearn more about CrowdinList of extensions separated by semicolons (e.g. *.cpp;*.h):MO files can’t be directly edited in Poedit.Malformed header: “%s”MinimizeNe&xt UnfinishedNe&xt unfinishedNever let the list of strings take focus. If enabled, you must use Ctrl-arrows for keyboard navigation but you can also type text immediately, without having to press Tab to change focus.NewNew From &POT/PO File…New from &POT/PO file…New stringsNo translation projects listed in your Crowdin account.Not authorized, please sign in again.OKObsolete stringsOpenOpen Crowdin translationOpen From Crowdin…Open catalogOpen catalog templateOpen from Crowdin…Open…P&revious UnfinishedP&revious unfinishedPO Translation FilesPOT Translation TemplatesPaste and Match StylePathsPlease open and edit the corresponding PO file instead. When you save it, the MO file will be updated as well.Plural:PoeditPoedit - Catalogs managerPoedit is an easy to use translations editor.Preferences…Previous Plural FormPrevious plural formProject name and version:Project name:Project:PurgePurge deleted translationsQuitRedoReferences:Replace…SaveSave &As…Save &as…Save as…Save catalogSave changesSelect directorySelect your preferred languageShow Spelling and GrammarShow SubstitutionsShow summary after catalog updateSign InSign OutSign inSign in to CrowdinSign outSigned in as:Singular:Smart Copy/PasteSmart DashesSmart LinksSmart QuotesSort by &File OrderSort by &SourceSort by &TranslationSort by &file orderSort by &sourceSort by &translationSource code charset:Source fileSource file occurrence:Source textSource text:Sources keywordsSources pathsSpeechSpelling and GrammarStart SpeakingStop SpeakingSubstitutionsSyncing errorSyncing with Crowdin failed.Syntax error in Plural-Forms header ("%s").Text ReplacementThe file cannot be opened.The file may be either corrupted or in a format not recognized by Poedit.There was a problem formatting the file nicely (but it was saved all right).There were errors when loading the catalog. Some data may be missing or corrupted as the result.These strings are no longer in the sources. Poedit will remove them from the catalog now.These strings were found in the sources but were not in the catalog. Poedit will add them to the catalog now.This file can only be edited in Crowdin’s web interface.This project has no files that can be translated in Poedit.This will be attached to the command line only if source code charset was given. %c expands to charset value.This will be attached to the command line once for each input file. %f expands to the filename.This will be attached to the command line once for each keyword. %k expands to the keyword.TotalTransformationsTranslation MemoryTranslation:UTF-8 (recommended)UndoUnhandled exception occurred: %sUnix (recommended)UntransUpdateUpdate allUpdate all catalogs in the projectUpdate catalog - synchronize it with sourcesUpdate from &POT File…Update from &POT file…Update summaryUpdating the catalog failed. Click on 'Details >>' for details.Updating user information…Uploading translations…Use these keywords (function names) to recognize translatable strings in source files:Version %sWaiting for authentication…Whole words onlyWindowWindowsYou must restart Poedit for this change to take effect.handle a poedit:// URIshift“%s” is not a valid POT file.Project-Id-Version: poedit Report-Msgid-Bugs-To: help@poedit.net POT-Creation-Date: 2017-12-05 15:52+0100 PO-Revision-Date: 2017-07-27 03:14-0400 Last-Translator: vslavik Language-Team: Latvian Language: lv_LV MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=3; plural=(n==0 ? 0 : n%10==1 && n%100!=11 ? 1 : 2); X-Generator: crowdin.com X-Crowdin-Project: poedit X-Crowdin-Language: lv X-Crowdin-File: /locales/poedit.pot (modificēts)P&ar...&GrāmatzīmesAi&zvērtKopēt&DzēstPa&beigt un pāriet uz nākamoPa&beigt un pāriet uz nākamoR&ediģēt&Fails&Atrast…&Iet&Palīdzība&Jauns…&Tiešsaistes palīdzība&Tiešsaistes palīdzība&Atvērt...&Atvērt…&Iestatījumi&Iestatījumi…&Rekvizīti…Iztīrīt &dzēstos tulkojumus&Iztīrīt dzēstos tulkojumus&Saglabāt&Parādīt atsauces&Parādīt atsaucesVispirms neizt&ulkotos ierakstusVispirms neizt&ulkotos ierakstusAtja&unot no avotaAtja&unot no avota&Skats(0 jaunas, 0 novecojušas)(Lietot noklusējuma valodu)Par %sPievienot failus…Pievienot mapes…Pievienot mapi sarakstamPievienot failus…Pievienot mapes…Visi tulkojumu failiVienmēr fokusēties uz teksta ievades laukuVienums ievades failu sarakstā:Vienums atslēgvārdu sarakstā:Bāzes ceļš:Sabojāts kataloga fails: daudzskaitļa forma msgstr lietota bez msgid_pluralSabojāts kataloga fails: vienskaitļa forma msgstr lietota kopā ar msgid_pluralPārlūkotK&atalogsAtceltNevar izveidot pagaidu datu mapi.Nevar palaist programmu: %sKatalogsKatalogs ir modificēts. Vai vēlaties saglabāt izmaiņas?Kataloga īpašībasKatalogu &pārvaldnieksKatalogu &pārvaldnieksKatalogu pārvaldnieksMainīt lietojumprogrammas valoduSimbolkopa:Pārbaudīt dokumentuPārbaudīt gramatiku kopā ar pareizrakstībuPārbaudīt pareizrakstību rakstīšanas laikāNotīrīt tulkojumuNotīrīt komentāruNotīrīt tulkojumuAizvērtKomentārs:ApstiprinājumsKopētKopēt no avota tekstaKopēt no avota tekstaIzlabot pareizrakstību automātiskiNevarēja saglabāt failu %s.Izveidot jaunu tulkojumuIzveidot jaunu tulkojumuIzveidot jaunu tulkošanas projektuCrowdin kļūdaCrowdin ir tiešsaistes lokalizācijas vadīšanas platforma un sadarbības veida tulkošanas rīks. Poedit var gludi sinhronizēt pie Crowdin turētus PO failus.IzgrieztIzdzēstIzdzēst projektuMapes:Vai tiešām vēlaties veikt masveida atjaunošanu visiem katalogiem šajā projektā?Vai vēlaties izdzēst projektu?Vai vēlaties izņemt visus tulkojumus, kas vairs netiek izmantoti?NesaglabātTurpmāk nerādītNesaglabātTurpmāk nerādītLejupielādēt jaunāko tulkojumu…Šajā projektā tulkojumu lejupielāde ir atspējota.I&zietE&ksportēt kā HTML…RediģētRediģēt &komentāruRediģēt &komentāruRediģēt komentāruRediģēt projektuRediģēt projekuRediģēt…Ieraksti katalogā, iespējams, nav pareizi.Kļūda, atverot failuKļūda atverot failu %s!Kļūda saglabājot kataloguEksportēt kā…Izvilkt tekstu no avotu failiem sekojošajās mapēs:Neizdevās komanda: %sKomunikācija ar Poedit procesu neizdevās.Neizdevās ielādēt izvilkto katalogu.Neizdevās apvienot gettext katalogus.Fails “%s” nepastāv.Fails:Atrast un aizstāt…Meklēt komentārosSalabot galveniForma %iHTML failiNerādīt šo paziņojumuJa jūs turpināsiet ar iztīrīšanu, visi tulkojumi, kas atzīmēti kā dzēsti, tiks pilnībā izņemti. Iespējams, ka vēlāk tie jums būs jātulko vēlreiz, ja tie vēlāk tiks pievienoti atpakaļ.InstalētNederīgs failsIzsaukšana:PaturētValodas izvēleValoda:Pēdējo reizi modificētsUzzināt vairākUzzināt vairak par CrowdinUzzināt vairākUzzināt vairak par CrowdinPaplašinājumu saraksts, atdalīts ar semikoliem (piem., *.cpp;*.h):MO failu nevar tieši rediģēt Poedit.Nepareizi veidota galvene: “%s”MinimizētNā&kamais nepabeigtaisNā&kamais nepabeigtaisNekad neļaut virkņu sarakstam pārņemt fokusu. Ja aktivizēts, jums jālieto Ctrl-bultiņas tastatūras navigācijai, bet jūs varat arī rakstīt tekstu nekavējoties, nenospiežot Tab taustiņu, lai mainītu fokusu.JaunsJauns no &POT/PO faila…Jauns no &POT/PO faila…Jaunas virknesJūsu Crowdin kontā nav tulkošanas projektu saraksts.Noraidīts, lūdzu pierakstīties no jauna.LabiNovecojušās virknesAtvērtAtvērt Crowdin tulkojumuAtvērt no Crowdin…Atvērt kataloguAtvērt kataloga parauguAtvērt no Crowdin…Atvērt…Iep&riekšejais nepabeigtaisIep&riekšejais nepabeigtaisPO tulkojumu failiPOT tulkojumu failiIelīmēt un pieskaņot stilamCeļiLūdzu, atveriet un rediģējiet atbilstošo PO failu tā vietā. Saglabājot to, tiks atjaunināts arī MO fails.Daudzskaitlis:PoeditPoedit - katalogu pārvaldnieksPoedit ir vienkārši izmantojams tulkojumu redaktors.Iestatījumi…Iepriekšējā daudzskaitļa formaIepriekšējā daudzskaitļa formaProjekta nosaukums un versija:Projekta nosaukums:Projekts:Iztīrīt&Iztīrīt dzēstos tulkojumusIzietAtcelt atsaukšanuAtsauces:Aizstāt…SaglabātSaglabāt &kā…Saglabāt &kā…Saglabāt kā…Saglabāt kataloguSaglabāt izmaiņasIzvēlieties mapiAtlasīt vēlamo valoduRādīt pareizrakstību un gramatikuRādīt aizvietošanasParādīt kopsavilkumu pēc kataloga atjaunošanasPieslēgtiesIzlogotiesPieslēgtiesPieslēgties CrowdinIzlogotiesPieslēdzies kā:Vienskaitlis:Gudrs Copy/PasteDomuzīmeSaitesFigūrpēdiņasKārtot pēc &faila secībasKārtot pēc a&votaKārtot pēc &tulkojumaKārtot pēc &faila secībasKārtot pēc a&votaKārtot pēc &tulkojumaPirmkoda simbolkopa:Avota failsAvota faila gadījums:Avota tekstsAvota teksts:Avotu atslēgvārdiAvotu ceļiRunaPareizrakstība un gramatikaSākt izrunātBeigt izrunātAizvietošanasSinhronizācijas kļūdaSinhronizēšana ar Crowdin neizdevās.Sintakses kļūda daudzskaitļa formu galvenē ("%s").Teksta aizstāšanaFails nav atverams.Fails varētu būt bojāts vai Poedit neatpazīstamā formātā.Radās kļūda formatējot failu (bet tomēr tika veiksmīgi saglabāts).Radās kļūdas ielādējot katalogu. Tā rezultātā daži dati varētu būt sabojāti vai varētu iztrūkt.Šīs virknes vair nav avotos. Poedit tūlīt pat izņems tās no kataloga.Šīs virknes tika atrastas avotos, bet nebija katalogā. Poedit tūlīt pat pievienos tās katalogam.Šo failu var rediģēt tikai Crowdin web interfeisā.Šim projektam nav failu, ko var tulkot ar Poedit.Šis vienums tiks pievienots komandrindai tikai tad, ja būs doda pirmkoda simbolkopa. %c atbilst simbolkopas vērtībai.Šis vienums tiks pievienots komandrindai, vienreiz katram ievades failam. %f atbilst faila nosaukumam.Šis vienums tiks pievienots komandrindai, vienreiz katram atslēgvārdam. %k atbilst atslēgvārdam.KopāTransformācijasTulkojumu atmiņaTulkojums:UTF-8 (ieteicamais)AtsauktNeapstrādāts izņēmums notika: %sUnix (ieteicamais)NeiztulkAtjaunotAtjaunot visusAtjaunot visus katalogus šajā projektāAtjaunot katalogu - sinhronizēt to ar avotiemAtjaunot no &POT faila…Atjaunot no &POT faila…Atjaunot kopsavilkumuKataloga atjaunošana neizdevās. Nospiediet 'Vairāk>>', lai iegūtu papildu informāciju.Atjauno lietotāja informāciju…Augšupielādē tulkojumus…Lietot šos atslēgvārdus (funkciju nosaukumus), lai atpazītu tulkojamās virknes avota failos:Versija %sGaida autentifikāciju…Tikai veselus vārdusLogsWindowsRestartēt Poedit, lai novērot šo izmaiņu.rīkoties ar poedit://URIshift“%s” nav derīgs POT fails.poedit-2.0.6/locales/ca.po0000664000372000037200000015124013230132075012270 00000000000000msgid "" msgstr "" "Project-Id-Version: poedit\n" "Report-Msgid-Bugs-To: help@poedit.net\n" "POT-Creation-Date: 2017-12-05 15:52+0100\n" "PO-Revision-Date: 2017-12-05 09:48-0500\n" "Last-Translator: vslavik \n" "Language-Team: Catalan\n" "Language: ca_ES\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: crowdin.com\n" "X-Crowdin-Project: poedit\n" "X-Crowdin-Language: ca\n" "X-Crowdin-File: /locales/poedit.pot\n" msgid "Hide this notification message" msgstr "Amaga aquesta notificació" msgid "Don’t Show Again" msgstr "No tornis a mostrar-ho" msgid "Don’t show again" msgstr "No tornis a mostrar-ho" #, c-format msgid "(New: %i, obsolete: %i)" msgstr "(Noves: %i, obsoletes: %i)" msgid "Updating catalog" msgstr "S’està actualitzant el catàleg" msgid "Collecting source files…" msgstr "" msgid "Extracting translatable strings…" msgstr "S’estan extraient les cadenes traduibles…" msgid "Failed to load extracted catalog." msgstr "No s’ha pogut carregar el catàleg extret." msgid "Merging differences…" msgstr "S’estan fusionant les diferències…" #, c-format msgid "“%s” is not a valid POT file." msgstr "«%s» no és un fitxer POT vàlid." #, c-format msgid "%i line of file “%s” was not loaded correctly." msgid_plural "%i lines of file “%s” were not loaded correctly." msgstr[0] "No s’ha carregat %i línia del fitxer «%s» correctament." msgstr[1] "No s’han carregat %i línies del fitxer «%s» correctament." #, c-format msgid "Line %d of file “%s” is corrupted (not valid %s data)." msgstr "La línia %d del fitxer «%s» està malmesa (dades %s no vàlids)." #, c-format msgid "Malformed header: “%s”" msgstr "El format de la capçalera és incorrecte: «%s»" msgid "" "Broken catalog file: singular form msgstr used together with msgid_plural" msgstr "" "Fitxer de catàleg malmès: la forma singular del msgstr s'ha fet servir " "conjuntament amb msgid_plural" msgid "Broken catalog file: plural form msgstr used without msgid_plural" msgstr "" "Fitxer de catàleg malmès: la forma plural del msgstr s'ha fet servir sense " "msgid_plural" msgid "" "There were errors when loading the catalog. Some data may be missing or " "corrupted as the result." msgstr "" "S’han produït errors en carregar el catàleg. És possible que manquin algunes " "dades o que estiguin malmeses." #, c-format msgid "Couldn’t load file %s, it is probably corrupted." msgstr "No s’ha pogut carregar el fitxer «%s»; és probable que estigui malmès." #, c-format msgid "" "File “%s” is read-only and cannot be saved.\n" "Please save it under different name." msgstr "" "El fitxer «%s» és només de lectura i no es pot desar.\n" "Hauríeu de desar-lo amb un altre nom." #, c-format msgid "Couldn’t save file %s." msgstr "No s’ha pogut desar el fitxer %s." msgid "" "There was a problem formatting the file nicely (but it was saved all right)." msgstr "" "S’ha produït un problema en formatar el fitxer (però s’ha desat " "correctament)." #, c-format msgid "" "The catalog couldn’t be saved in “%s” charset as specified in catalog " "settings.\n" "\n" "It was saved in UTF-8 instead and the setting was modified accordingly." msgstr "" "No s’ha pogut desar el catàleg en el joc de caràcters «%s» com s’especifica " "en la configuració del catàleg.\n" "\n" "Se n’ha desat en UTF-8 i el paràmetre s’ha modificat en conseqüència." msgid "Error saving catalog" msgstr "S’ha produït un error en desar el catàleg" msgid "PO Translation Files" msgstr "Fitxers de traducció PO" msgid "POT Translation Templates" msgstr "Plantilles de traducció .POT" msgid "All Translation Files" msgstr "Tots els fitxers de traducció" msgid "(Use default language)" msgstr "(Utilitza l’idioma per defecte)" msgid "Select your preferred language" msgstr "Trieu el vostre idioma preferit" msgid "Language selection" msgstr "Selecció d’idioma" msgid "You must restart Poedit for this change to take effect." msgstr "Heu de reiniciar el Poedit perquè aquest canvi tingui efecte." msgid "Syncing" msgstr "Sincronització" #. TRANSLATORS: %s is a cloud destination, e.g. "Crowdin" or ftp.wordpress.com etc. #, c-format msgid "Syncing with %s…" msgstr "S’està sincronitzant amb %s…" #. TRANSLATORS: %s is a cloud destination, e.g. "Crowdin" or ftp.wordpress.com etc. #, c-format msgid "Syncing with %s failed." msgstr "Ha fallat la sincronització amb el %s." msgid "Syncing error" msgstr "S’ha produït un error de sincronització" msgid "Downloading translations is disabled in this project." msgstr "Aquest projecte ha inhabilitat les baixades de traduccions." msgid "Not authorized, please sign in again." msgstr "Acció no autoritzada. Inicieu una sessió de nou." msgid "" "Crowdin is an online localization management platform and collaborative " "translation tool. Poedit can seamlessly sync PO files managed at Crowdin." msgstr "" "El Crowdin és una plataforma de gestió de localització en línia i una eina " "de traducció col·laborativa. El Poedit pot sincronitzar sense problema els " "fitxers PO gestionats al Crowdin." msgid "Sign In" msgstr "Inicia la sessió" msgid "Sign in" msgstr "Inicia la sessió" msgid "Sign Out" msgstr "Finalitza la sessió" msgid "Sign out" msgstr "Finalitza la sessió" msgid "Waiting for authentication…" msgstr "S’està esperant l’autenticació…" msgid "Updating user information…" msgstr "S’està actualitzant la informació de l’usuari…" msgid "Signed in as:" msgstr "Sessió iniciada com a:" msgid "Learn More About Crowdin" msgstr "Més informació sobre el Crowdin" msgid "Learn more about Crowdin" msgstr "Més informació sobre el Crowdin" msgid "Sign in to Crowdin" msgstr "Inicia la sessió a Crowdin" msgid "Open Crowdin translation" msgstr "Obre una traducció del Crowdin" msgid "Project:" msgstr "Projecte:" msgid "Language:" msgstr "Idioma:" msgid "File:" msgstr "Fitxer:" msgid "No translation projects listed in your Crowdin account." msgstr "" "No hi ha cap projecte de traducció llistat al vostre compte de Crowdin." msgid "This project has no files that can be translated in Poedit." msgstr "Aquest projecte no té cap fitxer que es pugui traduir al Poedit." msgid "This file can only be edited in Crowdin’s web interface." msgstr "Aquest fitxer només es pot editar en la interfície web del Crowdin." msgid "Downloading latest translations…" msgstr "S’estan baixant les traduccions més recents…" msgid "Syncing with Crowdin failed." msgstr "La sincronització amb el Crowdin ha fallat." msgid "Crowdin error" msgstr "Error del Crowdin" msgid "Uploading translations…" msgstr "S’estan pujant les traduccions…" msgid "&Copy" msgstr "&Copia" msgid "Learn more" msgstr "Més informació" msgid "Learn More" msgstr "Més informació" msgid "&Help" msgstr "&Ajuda" msgid "MO files can’t be directly edited in Poedit." msgstr "Els fitxers MO no es poden editar directament al Poedit." msgid "Error opening file" msgstr "S’ha produït un error en obrir el fitxer" msgid "" "Please open and edit the corresponding PO file instead. When you save it, " "the MO file will be updated as well." msgstr "" "Obriu i editeu el fitxer .po corresponent en el seu lloc. Quan ho deseu, el " "fitxer .mo s’actualitzarà." msgid "don’t delete temporary files (for debugging)" msgstr "no suprimeixis els fitxers temporals (per a la depuració)" msgid "handle a poedit:// URI" msgstr "gestiona un URI poedit://" msgid "go to item at given line number" msgstr "" msgid "Failed to communicate with Poedit process." msgstr "Ha fallat la comunicació amb el procès de Poedit." #, c-format msgid "Unhandled exception occurred: %s" msgstr "S’ha produït una excepció no controlada: %s" msgid "Open catalog" msgstr "Obre el catàleg" #, c-format msgid "File “%s” doesn’t exist." msgstr "El fitxer «%s» no existeix." msgid "Poedit is an easy to use translations editor." msgstr "El Poedit és un editor de traduccions fàcil de fer servir." msgid "Catalogs Manager" msgstr "Gestor de catàlegs" msgid "Check for Updates…" msgstr "Comprova si hi ha actualitzacions…" msgid "&Edit" msgstr "&Edita" msgid "Undo" msgstr "Desfés" msgid "Redo" msgstr "Refés" msgid "Paste and Match Style" msgstr "Enganxa amb el mateix estil" msgid "Delete" msgstr "Suprimeix" msgid "Spelling and Grammar" msgstr "Ortografia i gramàtica" msgid "Show Spelling and Grammar" msgstr "Mostra l'ortografia i la gramàtica" msgid "Check Document Now" msgstr "Comprova el document ara" msgid "Check Spelling While Typing" msgstr "Comprova l'ortografia mentre s'escriu" msgid "Check Grammar With Spelling" msgstr "Comprova la gramàtica amb l'ortografia" msgid "Correct Spelling Automatically" msgstr "Corregeix l'ortografia automàticament" msgid "Substitutions" msgstr "Substitucions" msgid "Show Substitutions" msgstr "Mostra les substitucions" msgid "Smart Copy/Paste" msgstr "Copia/enganxa intel·ligentment" msgid "Smart Quotes" msgstr "Cometes tipogràfiques" msgid "Smart Dashes" msgstr "Guions intel·ligents" msgid "Smart Links" msgstr "Enllaços intel·ligents" msgid "Text Replacement" msgstr "Substitució del text" msgid "Transformations" msgstr "Transformacions" msgid "Make Upper Case" msgstr "Converteix a majúscules" msgid "Make Lower Case" msgstr "Converteix a minúscules" msgid "Capitalize" msgstr "Majúscules inicials" msgid "Speech" msgstr "Vocalització" msgid "Start Speaking" msgstr "Comença a parlar" msgid "Stop Speaking" msgstr "Deixa de parlar" msgid "&View" msgstr "&Visualitza" msgid "Enter Full Screen" msgstr "Pantalla sencera" msgid "Window" msgstr "Finestra" msgid "Minimize" msgstr "Minimitza" msgid "Zoom" msgstr "Escala" msgid "Bring All to Front" msgstr "Envia tot al capdavant" #. TRANSLATORS:File kind displayed in Finder/Explorer msgid "PO Translation" msgstr "Traducció PO" msgid "The file cannot be opened." msgstr "No es pot obrir el fitxer." msgid "Invalid file" msgstr "El fitxer no és vàlid" msgid "" "The file may be either corrupted or in a format not recognized by Poedit." msgstr "El fitxer pot ser o malmès o d'un format no reconegut pel Poedit." msgid "You can’t drop more than one file on Poedit window." msgstr "" #, c-format msgid "File “%s” is not a message catalog." msgstr "El fitxer «%s» no és un catàleg de missatges." msgid "Poedit" msgstr "Poedit" msgid "&File" msgstr "&Fitxer" msgid "&Go" msgstr "&Navega" #. TRANSLATORS: %s is language name in its basic form (as you #. would see e.g. in a list of supported languages). You may need #. to rephrase it, e.g. to an equivalent of "for language %s". #, c-format msgid "" "Spellchecking is disabled, because the dictionary for %s isn’t installed." msgstr "" "La correcció ortogràfica está inhabilitada perquè no s’ha instal·lat el " "diccionari de l’idioma %s." msgid "Install" msgstr "Instal·la" msgid "Catalog modified. Do you want to save changes?" msgstr "S’ha modificat el catàleg. Voleu desar-ne els canvis?" msgid "Save changes" msgstr "Desa els canvis" msgid "Your changes will be lost if you don’t save them." msgstr "Els canvis es perdran si no els deseu." msgid "Save" msgstr "Desa" msgid "Don’t save" msgstr "No ho desis" msgid "Don’t Save" msgstr "No ho desis" msgid "Save as…" msgstr "Anomena i desa…" msgid "Compile to…" msgstr "" msgid "Compiled Translation Files" msgstr "Fitxers de traducció compilats" msgid "Export as…" msgstr "Exporta com a…" msgid "HTML Files" msgstr "Fitxers HTML" msgid "Open catalog template" msgstr "Obre una plantilla de catàleg" msgid "Source code not available." msgstr "El codi font no és disponible." msgid "Updating failed" msgstr "L’actualització ha fallat" msgid "" "Translations couldn’t be updated from the source code, because no code was " "found in the location specified in the catalog’s Properties." msgstr "" "No s’han pogut actualitzar les traduccions des del codi font perquè no s’ha " "trobat cap codi a la ubicació especificada a les propietats del catàleg." msgid "Entries in the catalog are probably incorrect." msgstr "Les entrades del catàleg són probablement incorrectes." msgid "Updating the catalog failed. Click on 'Details >>' for details." msgstr "" "Ha fallat l'actualització del catàleg. Feu clic a 'Detalls >>' per a obtenir-" "ne més detalls." #, c-format msgid "%d issue with the translation found." msgid_plural "%d issues with the translation found." msgstr[0] "S’ha trobat %d problema amb la traducció." msgstr[1] "S’han trobat %d problemes amb la traducció." msgid "Validation results" msgstr "Resultats de la validació" msgid "" "Entries with errors were marked in red in the list. Details of the error " "will be shown when you select such an entry." msgstr "" "Les entrades amb errors s'han marcat en vermell a la llista. Els detalls de " "l'error es mostraran quan seleccioneu l'entrada." msgid "The file was saved safely." msgstr "El fitxer s’ha desat amb seguretat." msgid "" "The file was saved safely and compiled into the MO format, but it will " "probably not work correctly." msgstr "" "El fitxer s’ha desat amb seguretat i compilat en el format MO, però és " "probable que no en funcioni correctament." msgid "" "The file was saved safely, but it cannot be compiled into the MO format and " "used." msgstr "" "El fitxer s’ha desat amb seguretat, però no es pot compilar i usar en el " "format MO." msgid "" "The file was compiled into the MO format, but it will probably not work " "correctly." msgstr "" "El fitxer s’ha compilat en el format MO, però probablement no funcionarà " "correctament." msgid "The file cannot be compiled into the MO format and used." msgstr "No és possible compilar el fitxer en el format MO per a utilitzar-lo." msgid "No problems with the translation found." msgstr "No s'ha trobat cap problema amb la traducció." #, c-format msgid "The translation is ready for use, but %d entry is not translated yet." msgid_plural "" "The translation is ready for use, but %d entries are not translated yet." msgstr[0] "" "La traducció ja és a punt per ser usada, però encara no s’ha traduït %d " "cadena." msgstr[1] "" "La traducció ja és a punt per ser usada, però encara no s’han traduït %d " "cadenes." msgid "The translation is ready for use." msgstr "La traducció ja és a punt i podeu utilitzar-la." #, c-format msgid "Poedit automatically fixed invalid content in the file “%s”." msgstr "" "El Poedit ha corregit automàticament el contingut invàlid en el fitxer «%s»." msgid "" "The file contained duplicate items, which is not allowed in PO files and " "would prevent the file from being used. Poedit fixed the issue, but you " "should review translations of any items marked as needing work and correct " "them if necessary." msgstr "" "El fitxer contenia elements duplicats. Això no es permet als fitxers PO; en " "cas contrari el fitxer no es podria fer servir. El Poedit ha corregit el " "problema, però hauríeu de revisar les traduccions de qualssevol elements " "marcats com a difusos i corregir-les si cal." msgid "Language of the translation isn’t set." msgstr "No s’ha establert l’idioma de la traducció." msgid "Set Language" msgstr "Estableix l'idioma" msgid "Set language" msgstr "Seleccioneu l'idioma" #. TRANSLATORS: This is shown underneath "Language of the translation isn't set (or ...is the same as source language)." msgid "" "Suggestions are not available if the translation language is not set " "correctly. Other features, such as plural forms, may be affected as well." msgstr "" "Els suggeriments no es disposen si l'idioma de traducció no està establerta " "correctament. Altres característiques, com les formes plurals, també es " "poden afectar." msgid "Language of the translation is the same as source language." msgstr "L'idioma de la traducció es el mateix que l'idioma font." msgid "Fix Language" msgstr "Corregeix l’idioma" msgid "Fix language" msgstr "Corregeix l’idioma" msgid "" "This catalog has entries with plural forms, but doesn’t have Plural-Forms " "header configured." msgstr "" "Aquest catàleg té entrades amb formes plurals, però no té la capçalera " "Plural-Forms configurada." msgid "" "Entries in this catalog have different plural forms count from what " "catalog’s Plural-Forms header says" msgstr "" "Les entrades d’aquest catàleg tenen un nombre total de formes plurals " "diferent del que diu la capçalera Plural-Forms del catàleg" msgid "Required header Plural-Forms is missing." msgstr "Falta la capçalera necessària «Plural-Forms»." #, c-format msgid "Syntax error in Plural-Forms header (\"%s\")." msgstr "Hi ha un error de sintaxis a la capçalera Plural-Forms («%s»)." msgid "Fix the Header" msgstr "Corregeix la capçalera" msgid "Fix the header" msgstr "Corregeix la capçalera" #. TRANSLATORS: %s is language name in its basic form (as you #. would see e.g. in a list of supported languages). You may need #. to rephrase it, e.g. to an equivalent of "for language %s". #, c-format msgid "Plural forms expression used by the catalog is unusual for %s." msgstr "L'expressió de formes plurals usada pel catàleg és inusual per al %s." #. TRANSLATORS: A verb, shown as action button with ""Plural forms expression used by the catalog is unusual for %s.")" msgid "Review" msgstr "Repassa" #, c-format msgid "Error loading message catalog file “%s”." msgstr "S’ha produït un error en carregar el catàleg de missatges «%s»." #, c-format msgid "Translated: %d of %d (%d %%)" msgstr "Traduït: %d/%d (%d %%)" #, c-format msgid "Remaining: %d" msgstr "Resten: %d" #, c-format msgid "%d error" msgid_plural "%d errors" msgstr[0] "%d error" msgstr[1] "%d errors" #, c-format msgid "%d entry" msgid_plural "%d entries" msgstr[0] "%d entrada" msgstr[1] "%d entrades" msgid " (unsaved)" msgstr " (no desat)" msgid " (modified)" msgstr " (modificat)" #, c-format msgid "Failed to update translation memory: %s" msgstr "Ha fallat l'actualització de memòria de traducció: %s" msgid "Purge deleted translations" msgstr "Purga les traduccions obsoletes" msgid "Do you want to remove all translations that are no longer used?" msgstr "Voleu suprimir totes les traduccions que ja no s'usin?" msgid "" "If you continue with purging, all translations marked as deleted will be " "permanently removed. You will have to translate them again if they are added " "back in the future." msgstr "" "Si continueu amb la purga, totes les traduccions marcades com a suprimides " "s'eliminaran permanentment. Si continueu amb la supressió les haureu de " "traduir de nou en cas que tornin a ser afegides en un futur." msgid "Keep" msgstr "Manté" msgid "Purge" msgstr "Purga" msgid "Copy from source text" msgstr "Copia del text font" msgid "Copy from Source Text" msgstr "Copia del text font" #. TRANSLATORS: This is the key shortcut used in menus on Windows, some languages call them differently #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Ctrl+" msgstr "Ctrl+" msgid "Clear translation" msgstr "Neteja la traducció" msgid "Clear Translation" msgstr "Neteja la traducció" msgid "Edit comment" msgstr "Edita el comentari" msgid "Edit Comment" msgstr "Edita el comentari" msgid "References:" msgstr "Referències:" msgid "&Bookmarks" msgstr "&Marcadors" #. TRANSLATORS: This is the key shortcut used in menus on Windows, some languages call them differently #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Alt+" msgstr "Alt+" #, c-format msgid "Set bookmark %i" msgstr "Estableix el marcador %i" #, c-format msgid "Go to bookmark %i" msgstr "Vés al marcador %i" #, c-format msgid "Set Bookmark %i" msgstr "Estableix el marcador %i" #, c-format msgid "Go to Bookmark %i" msgstr "Vés al marcador %i" msgid "Hide Sidebar" msgstr "Amaga la barra lateral" msgid "Show Sidebar" msgstr "Mostra la barra lateral" msgid "Hide Status Bar" msgstr "Amaga la barra d’estat" msgid "Show Status Bar" msgstr "Mostra la barra d'estat" msgid "Source text:" msgstr "Text font:" msgid "Singular:" msgstr "Singular:" msgid "Plural:" msgstr "Plural:" msgid "Translation:" msgstr "Traducció:" msgid "Pre-translated" msgstr "Pre-traduït" msgid "Needs Work" msgstr "Per revisar" #. TRANSLATORS: This indicates that the string's translation isn't final #. and has known problems. For example, it might be machine translated or #. fuzzy matched from an older string. The translation should be short and #. convey this. If it's problematic to translate it, "Needs review" is #. acceptable substitute, but note that the meaning is subtly different: #. "needs review" implies that somebody else should review the string after #. I am done with it (i.e. consider it good), while "needs work" implies I #. need to return to it and finish the translation. msgid "Needs work" msgstr "Per revisar" msgid "" "POT files are only templates and don’t contain any translations themselves.\n" "To make a translation, create a new PO file based on the template." msgstr "" "Els fitxers POT només són plantilles i no contenen cap traducció.\n" "Per a fer una traducció, creeu un fitxer PO nou basat en la plantilla." msgid "Create New Translation" msgstr "Crea una traducció nova" msgid "Create new translation" msgstr "Crea una traducció nova" msgid "Everything" msgstr "Tot" #, c-format msgid "Form %i" msgstr "Forma %i" msgid "Singular" msgstr "Singular" msgid "Zero" msgstr "Zero" msgid "One" msgstr "Un" msgid "Two" msgstr "Dos" msgid "Plural" msgstr "Plural" msgid "Other" msgstr "Altre" #, c-format msgid "%s Format" msgstr "Format %s" #. TRANSLATORS: %s is replaced with language name, e.g. "PHP" or "C", so "PHP Format" etc." #, c-format msgid "%s format" msgstr "format %s" msgid "Source text" msgstr "Text font" #, c-format msgid "Translation — %s" msgstr "Traducció — %s" msgid "ID" msgstr "Id." #, c-format msgid "Source text — %s" msgstr "Text font — %s" msgid "unknown language" msgstr "idioma desconegut" #, c-format msgid "Failed command: %s" msgstr "Ha fallat l’ordre: %s" msgid "Failed to merge gettext catalogs." msgstr "No s'han pogut fusionar els catàlegs del gettext." msgid "Source file" msgstr "Fitxer de codi font" msgid "Source file occurrence:" msgstr "Ocurrència al fitxer font:" msgid "Open in Editor" msgstr "Obre en l’editor" msgid "Open in editor" msgstr "Obre en l’editor" msgid "No references for the selected item." msgstr "No hi ha referències per a l'ítem seleccionat." #, c-format msgid "Error opening file %s!" msgstr "S'ha produït un error en obrir el fitxer %s!" msgid "Find" msgstr "Troba" msgid "Replace" msgstr "Substitueix" #. TRANSLATORS: Expander in Find window for additional options (case sensitive etc.) msgid "Options" msgstr "Opcions" msgid "Ignore case" msgstr "Ignora majúscules/minúscules" msgid "Wrap around" msgstr "Embolcalla al voltant" msgid "Whole words only" msgstr "Només les paraules senceres" msgid "Find in source texts" msgstr "Troba als texts d’origen" msgid "Find in translations" msgstr "Troba a les traduccions" msgid "Find in comments" msgstr "Cerca als comentaris" msgid "Close" msgstr "Tanca" msgid "Replace &All" msgstr "Reemplaça-ho &tot" msgid "Replace &all" msgstr "Reemplaça-ho &tot" msgid "&Replace" msgstr "&Reemplaça" msgid "< &Previous" msgstr "< &Anterior" msgid "&Next >" msgstr "&Següent >" msgid "String to find" msgstr "Cadena a trobar" msgid "Replacement string" msgstr "Cadena de substitució" #, c-format msgid "Cannot execute program: %s" msgstr "No es pot executar el programa: %s" msgid "Language Code or Name (e.g. en_GB)" msgstr "Codi d’idioma o nom (p. ex., ca_ES)" msgid "Translation Language" msgstr "Idioma de la traducció" msgid "Language of the translation:" msgstr "Idioma de la traducció:" msgid "Poedit - Catalogs manager" msgstr "Poedit - Gestor de catàlegs" msgid "Catalog" msgstr "Catàleg" msgid "Total" msgstr "Total" msgid "Untrans" msgstr "No traduït" msgid "Errors" msgstr "Errors" msgid "Last modified" msgstr "Darrera modificació" msgid "Select directory" msgstr "Seleccioneu el directori" msgid "Directories:" msgstr "Directoris:" msgid "" msgstr "" msgid "Do you want to delete the project?" msgstr "Voleu suprimir el projecte?" msgid "Confirmation" msgstr "Confirmació" msgid "" "Do you really want to do mass update of\n" "all catalogs in this project?" msgstr "" "Segur que voleu actualitzar en massa\n" "tots els catàlegs d'aquest projecte?" msgid "Information about the translator" msgstr "Informació sobre el traductor" msgid "Name:" msgstr "Nom:" msgid "Your Name" msgstr "El vostre nom" msgid "Email:" msgstr "Adreça electrònica:" msgid "your_email@example.com" msgstr "adreça@exemple.cat" msgid "" "Your name and email address are only used to set the Last-Translator header " "of GNU gettext files." msgstr "" "El vostre nom i adreça electrònica s’utilitzen només per a establir el valor " "de la capçalera «Last-Translator» als fitxers de GNU gettext." msgid "Editing" msgstr "Edició" msgid "Automatically compile MO file when saving" msgstr "Compila el fitxer MO automàticament en desar" msgid "Show summary after catalog update" msgstr "Mostra el resum després de l'actualització del catàleg" msgid "Check spelling" msgstr "Comprova l'ortografia" msgid "Always change focus to text input field" msgstr "Canvia sempre el focus al camp d'introducció de text" msgid "" "Never let the list of strings take focus. If enabled, you must use Ctrl-" "arrows for keyboard navigation but you can also type text immediately, " "without having to press Tab to change focus." msgstr "" "Mai permetis que el llistat de cadenes obtingui el focus. Si està habilitat, " "haureu d'emprar les Ctrl+fletxes per la navegació amb el teclat, però també " "podreu escriure immediatament sense haver de prémer Tab per a canviar el " "focus." msgid "Appearance" msgstr "Aparença" msgid "Use custom list font:" msgstr "Tipus de lletra personalitzat per a les llistes:" msgid "Use custom text fields font:" msgstr "Tipus de lletra personalitzat per als camps de text:" msgid "Change UI language" msgstr "Canvia l’idioma de la interfície" #. TRANSLATORS: This is a note appended to "Check spelling" when running on older Windows versions msgid "(requires Windows 8 or newer)" msgstr "(necessita Windows 8 o superior)" msgid "General" msgstr "General" msgid "Use translation memory" msgstr "Usa la memòria de traducció" msgid "Learn From Files…" msgstr "Aprèn dels fitxers…" msgid "Learn from files…" msgstr "Aprèn dels fitxers…" #. TRANSLATORS: This is a button that deletes everything in the translation memory (i.e. clears/resets it). msgid "Reset" msgstr "Reinicialitza" #. TRANSLATORS: Followed by "match translations within the file" or "pre-translate from TM" msgid "When updating from sources" msgstr "Quan actualitza de fonts" #. TRANSLATORS: Preceded by "When updating from sources" msgid "fuzzy match within the file" msgstr "incloure-hi per revisar a l'arxiu" #. TRANSLATORS: Preceded by "When updating from sources" msgid "pre-translate from TM" msgstr "pretradueix des de l’MT" msgid "" "Poedit can attempt to fill in new entries from only previous translations in " "the file or from your entire translation memory. Using the TM won’t be very " "effective if it’s near-empty, but it will get better as you add more " "translations to it." msgstr "" "El Poedit pot intentar emplenar entrades noves només des de traduccions " "prèvies en el fitxer o des de la vostra memòria completa de traduccions. " "Utilitzar l’MT no serà gaire efectiu si la memòria està pràcticament buida, " "però millorarà a mesura que hi afegiu traduccions noves." msgid "Stored translations:" msgstr "Traduccions emmagatzemades:" msgid "Database size on disk:" msgstr "Mida de base de dades en disc:" msgid "Select translation files to import" msgstr "Seleccioneu els fitxers de traducció que importar" msgid "Translation Memory" msgstr "Memòria de traducció" msgid "Importing translations…" msgstr "S’estan important les traduccions…" msgid "Finalizing…" msgstr "S’està finalitzant…" msgid "Reset translation memory" msgstr "Esborra la memòria de traduccions" msgid "Are you sure you want to reset the translation memory?" msgstr "Esteu segur que voleu reinicialitzar la memòria de traduccions?" msgid "" "Resetting the translation memory will irrevocably delete all stored " "translations from it. You can’t undo this operation." msgstr "" "Restablir la memòria de traducció irrevocablement en suprimirà totes les " "traduccions emmagatzemades. No podeu desfer aquesta operació." msgid "Cancel" msgstr "Cancel·la" #. TRANSLATORS: This is abbreviation of "Translation Memory" used in Preferences on macOS. #. Long text looks weird there, too short (like TM) too, but less so. "General" is about ideal #. length there. msgid "TM" msgstr "MT" msgid "" "Source code extractors are used to find translatable strings in the source " "code files and extract them so that they can be translated." msgstr "" "Els extractors de codi font s’utilitzen per a trobar cadenes traduïbles dins " "els fitxers de codi font i extreure-les de manera que es puguin traduir." msgid "Custom Extractors:" msgstr "Extractors personalitzats:" msgid "Custom extractors:" msgstr "Extractors personalitzats:" msgid "Edit…" msgstr "Edita…" msgid "GNU gettext" msgstr "" msgid "" "Supports all programming languages recognized by GNU gettext tools (PHP, C/C+" "+, C#, Perl, Python, Java, JavaScript and others)." msgstr "" msgid "Delete extractor" msgstr "Suprimeix l’extractor" #, c-format msgid "Are you sure you want to delete the “%s” extractor?" msgstr "Esteu segur que voleu suprimir l’extractor «%s»?" msgid "Extractors" msgstr "Extractors" msgid "Accounts" msgstr "Comptes" msgid "Automatically check for updates" msgstr "Comprova si hi ha actualitzacions automàticament" msgid "Include beta versions" msgstr "Inclou les versions beta" msgid "" "Beta versions contain the latest new features and improvements, but may be a " "bit less stable." msgstr "" "Les versions beta contenen les funcionalitats i millores més recents, però " "poden ser una mica menys estables." msgid "Updates" msgstr "Actualitzacions" msgid "" "These settings affect internal formatting of PO files. Adjust them if you " "have specific requirements e.g. because of version control." msgstr "" "Aquests ajusts afecten el format intern dels fitxers PO. Ajusteu-los si " "teniu requisits específics, per exemple, pel control de versions." msgid "Line endings:" msgstr "Finals de línies:" msgid "Unix (recommended)" msgstr "Unix (recomanat)" msgid "Windows" msgstr "Windows" #. TRANSLATORS: Followed by text control for entering number; wraps text at given width msgid "Wrap at:" msgstr "Ajusta a:" msgid "Preserve formatting of existing files" msgstr "Preserva el format dels fitxers existents" msgid "Advanced" msgstr "Avançades" msgid "Pre-translating…" msgstr "S’està pretraduint…" #, c-format msgid "Pre-translated %u string" msgid_plural "Pre-translated %u strings" msgstr[0] "S’ha pretraduït %u cadena" msgstr[1] "S’han pretraduït %u cadenes" #. TRANSLATORS: This is a somewhat common term describing the action where #. you apply the translation memory and/or machine translation to all of the #. strings you're translating as the first step, followed by correcting, #. improving etc., i.e. actually translating the strings. This may be tricky #. to express in other languages as simply as in English, but please try to #. keep it similarly concise. Please try to avoid, if possible, describing it #. as "auto-translation" and similar, because such terminology would mislead #. some users into thinking it's all that needs to be done (spoken from #. experience). "Pre-translate" nicely expresses that it's only the step done #. *before* actual translation. msgid "Pre-translate" msgstr "Pre-traduir" msgid "Only fill in exact matches" msgstr "Únicament emplena les coincidències exactes" msgid "" "By default, inaccurate results are filled in as well and marked as needing " "work. Check this option to only include accurate matches." msgstr "" "Per defecte, els resultats inexactes s'omplen també i es marquen com a " "difuses. Seleccioneu aquesta opció per a incloure només coincidències " "exactes." msgid "Don’t mark exact matches as needing work" msgstr "No marquis les coincidències exactes com a difuses" msgid "" "Only enable if you trust the quality of your TM. By default, all matches " "from the TM are marked as needing work and should be reviewed before use." msgstr "" "Habiliteu-la només si confieu en la qualitat de l’MT. Per defecte, totes les " "coincidències de l’MT es marquen com a difuses i es deuen revisar." msgid "" "Pre-translation automatically finds exact or fuzzy matches for untranslated " "strings in the translation memory and fills in their translations." msgstr "" "Pre-traducció automàticament detecta coincidències exactes o aproximades de " "cadenes sense traduir en la memòria de traducció i omple la traducció." #, c-format msgid "%d entry was pre-translated." msgid_plural "%d entries were pre-translated." msgstr[0] "S’ha pretraduït %d entrada." msgstr[1] "S’han pretraduït %d entrades." msgid "" "The translations were marked as needing work, because they may be " "inaccurate. You should review them for correctness." msgstr "" "Les traduccions marcades com per revisar, ja que poden ser incorrectes. " "S'han de repassar per comprovar-les." msgid "No entries could be pre-translated." msgstr "No s’ha pogut pretraduir cap entrada." msgid "" "The TM doesn’t contain any strings similar to the content of this file. It " "is only effective for semi-automatic translations after Poedit learns enough " "from files that you translated manually." msgstr "" "L’MT no conté cap cadena similar al contingut d’aquest fitxer. Només en serà " "efectiva per a traduccions semiautomàtiques quan el Poedit hagi après prou " "dels fitxers que traduïu manualment." msgid "" "Drag and Drop Folders Here\n" "\n" "or use the + button" msgstr "" "Arrossegueu i deixeu anar carpetes aquí\n" "\n" "o usa el botó +" msgid "" "Drag and drop folders here\n" "\n" "or use the + button" msgstr "" "Arrossegueu i deixeu anar carpetes aquí\n" "\n" "o usa el botó +" msgid "Add Folders…" msgstr "Afegeix carpetes…" msgid "Add folders…" msgstr "Afegeix carpetes…" msgid "Add Files…" msgstr "Afegeix fitxers…" msgid "Add files…" msgstr "Afegeix fitxers…" msgid "Add Wildcard…" msgstr "" msgid "Add wildcard…" msgstr "" msgid "Paths" msgstr "Camins" msgid "Excluded paths" msgstr "Camins exclosos" msgid "Advanced extraction settings" msgstr "Configuració d'ubicació avançada" msgid "Extract notes for translators from:" msgstr "" msgid "Comments prefixed with:" msgstr "" msgid "All comments" msgstr "Tots els comentaris" msgid "Additional xgettext flags:" msgstr "" msgid "Additional keywords" msgstr "Paraules clau addicionals" msgid "Name of the project the translation is for" msgstr "Nom del projecte pel qual és la traducció" msgid "Team name and email address or URL" msgstr "Nom de l’equip i adreça electrònica o URL" msgid "e.g. nplurals=2; plural=(n > 1);" msgstr "per exemple, nplurals=2; plural=(n > 1);" msgid "UTF-8 (recommended)" msgstr "UTF-8 (recomanat)" msgid "Please save the file first. This section cannot be edited until then." msgstr "Deseu el fitxer primer. No es pot editar aquesta secció fins llavors." msgid "Not all plural forms are translated." msgstr "" msgid "The translation should start as a sentence." msgstr "" msgid "The translation should start with a lowercase character." msgstr "" msgid "The translation doesn’t start with a space." msgstr "" msgid "The translation starts with a space, but the source text doesn’t." msgstr "" msgid "The translation is missing a newline at the end." msgstr "" msgid "The translation ends with a newline, but the source text doesn’t." msgstr "" msgid "The translation is missing a space at the end." msgstr "" msgid "The translation ends with a space, but the source text doesn’t." msgstr "" #, c-format msgid "The translation should end with “%s”." msgstr "" #, c-format msgid "The translation should not end with “%s”." msgstr "" #, c-format msgid "The translation ends with “%s”, but the source text ends with “%s”." msgstr "" msgid "Comment:" msgstr "Comentari:" msgid "OK" msgstr "D’acord" msgid "C&lear" msgstr "&Neteja" msgid "Clear the comment" msgstr "Neteja el comentari" msgid "New" msgstr "Nou" msgid "Create new translations project" msgstr "Crea un nou projecte de traduccions" msgid "Edit" msgstr "Edita" msgid "Edit the project" msgstr "Edita el projecte" msgid "Delete the project" msgstr "Suprimeix el projecte" msgid "Update all" msgstr "Actualitza-ho tot" msgid "Update all catalogs in the project" msgstr "Actualitza tots els catàlegs del projecte" msgid "Edit project" msgstr "Edita el projecte" msgid "Project name:" msgstr "Nom del projecte:" msgid "Browse" msgstr "Navega" msgid "Add directory to the list" msgstr "Afegeix el directori a la llista" msgid "&New…" msgstr "&Nova…" msgid "New from &POT/PO file…" msgstr "Nova a partir d’un fitxer &POT/PO…" msgid "New From &POT/PO File…" msgstr "Nova a partir d’un fitxer &POT/PO…" msgid "&Open…" msgstr "&Obre…" msgid "Open Recent" msgstr "Obre recents" msgid "Open from Crowdin…" msgstr "Obre des del Crowdin…" msgid "Open From Crowdin…" msgstr "Obre des del Crowdin…" msgid "&Close" msgstr "&Tanca" msgid "&Save" msgstr "De&sa" msgid "Save &as…" msgstr "&Anomena i desa…" msgid "Save &As…" msgstr "&Anomena i desa…" msgid "Compile to MO…" msgstr "Compila com a MO…" msgid "E&xport as HTML…" msgstr "E&xporta com a HTML…" msgid "Check for updates…" msgstr "Comprova si hi ha actualitzacions…" msgid "&Preferences…" msgstr "&Preferències…" msgid "Catalogs &manager" msgstr "&Gestor de catàlegs" msgid "Catalogs &Manager" msgstr "&Gestor de catàlegs" msgid "E&xit" msgstr "&Surt" msgid "Quit" msgstr "Surt" msgid "Copy from singular" msgstr "Copia del singular" msgid "Copy From Singular" msgstr "Copia del singular" msgid "Translation needs &work" msgstr "Traducció per &revisar" msgid "Translation Needs &Work" msgstr "Traducció Per &Revisar" msgid "Edit &comment" msgstr "&Edita el comentari" msgid "Edit &Comment" msgstr "&Edita el comentari" msgid "Suggestions" msgstr "Suggeriments" msgid "&Find…" msgstr "" msgid "Replace…" msgstr "" msgid "Find next" msgstr "Cerca el següent" msgid "Find previous" msgstr "Cerca l'anterior" msgid "Find and Replace…" msgstr "" msgid "Find Next" msgstr "Cerca el següent" msgid "Find Previous" msgstr "Cerca l'anterior" msgid "&Preferences" msgstr "&Preferències" msgid "Display entry &IDs" msgstr "Mostra els &id. de les entrades" msgid "Display Entry &IDs" msgstr "Mostra els &id. de les entrades" msgid "Sort by &file order" msgstr "&Ordena per ordre de fitxer" msgid "Sort by &File Order" msgstr "Ordena per &ordre de fitxer" msgid "Sort by &source" msgstr "Ordena per &font" msgid "Sort by &Source" msgstr "Ordena per &font" msgid "Sort by &translation" msgstr "Ordena per &traducció" msgid "Sort by &Translation" msgstr "Ordena per &traducció" msgid "&Group by context" msgstr "A&grupa pel context" msgid "&Group By Context" msgstr "A&grupa pel context" msgid "Entries with errors first" msgstr "Primer les entrades amb errors" msgid "Entries with Errors First" msgstr "Entrades amb errors primers" msgid "&Untranslated entries first" msgstr "&Primer les entrades no trad&uïdes" msgid "&Untranslated Entries First" msgstr "&Primer les entrades no trad&uïdes" msgid "&Show references" msgstr "Mo&stra les referències" msgid "&Show References" msgstr "Mo&stra les referències" msgid "Show sidebar" msgstr "Mostra la barra lateral" msgid "Show status bar" msgstr "Mostra la barra d'estat" msgid "C&atalog" msgstr "&Catàleg" msgid "&Update from sources" msgstr "Act&ualitza des de les fonts" msgid "&Update from Sources" msgstr "Act&ualitza des de les fonts" msgid "Update from &POT file…" msgstr "" msgid "Update from &POT File…" msgstr "" msgid "Sync with Crowdin" msgstr "Sincronitza amb el Crowdin" msgid "Pre-&translate…" msgstr "Pre&tradueix…" msgid "&Purge deleted translations" msgstr "&Purga les traduccions suprimides" msgid "&Purge Deleted Translations" msgstr "&Purga les traduccions suprimides" msgid "&Validate translations" msgstr "&Valida les traduccions" msgid "&Validate Translations" msgstr "&Valida les traduccions" msgid "&Properties…" msgstr "&Propietats…" msgid "&Done and next" msgstr "&Fet, següent" msgid "&Done and Next" msgstr "&Fet, següent" msgid "&Previous translation" msgstr "Traducció &anterior" msgid "&Previous Translation" msgstr "Traducció &anterior" msgid "&Next translation" msgstr "Traducció &següent" msgid "&Next Translation" msgstr "Traducció &següent" msgid "P&revious unfinished" msgstr "Ante&rior no finalitzada" msgid "P&revious Unfinished" msgstr "Ante&rior no finalitzada" msgid "Ne&xt unfinished" msgstr "&Següent no finalitzada" msgid "Ne&xt Unfinished" msgstr "&Següent no finalitzada" msgid "Previous plural form" msgstr "Forma plural anterior" msgid "Previous Plural Form" msgstr "Forma plural anterior" msgid "Next plural form" msgstr "Forma plural següent" msgid "Next Plural Form" msgstr "Forma plural següent" msgid "&Online help" msgstr "&Ajuda en línia" msgid "&Online Help" msgstr "&Ajuda en línia" msgid "&GNU gettext manual" msgstr "Manual del &gettext de GNU" msgid "&GNU gettext Manual" msgstr "Manual del &gettext de GNU" msgid "&About Poedit" msgstr "&Quant al Poedit" msgid "&About" msgstr "&Quant a" msgid "Extractor setup" msgstr "Paràmetres de l’extractor" msgid "List of extensions separated by semicolons (e.g. *.cpp;*.h):" msgstr "Llistat d'extensions separades per punt i coma (p. ex. *.cpp,*.h):" msgid "Invocation:" msgstr "Invocació:" msgid "Command to extract translations:" msgstr "Ordre d’extracció de les traduccions:" msgid "" "This is the command used to launch the extractor.\n" "%o expands to the name of output file, %K to list\n" "of keywords, %F to list of input files,\n" "%C to charset flag (see below)." msgstr "" "Aquesta és l’ordre emprada per a iniciar l’extractor.\n" "%o s’expandeix al nom del fitxer de sortida, %K al llistat\n" "de paraules clau, %F al llistat de fitxers de sortida,\n" "%C al joc de caràcters (vegeu-ho més avall)." msgid "An item in keywords list:" msgstr "Un element de la llista de paraules clau:" msgid "" "This will be attached to the command line once\n" "for each keyword. %k expands to the keyword." msgstr "" "Això s'adjuntarà a la línia d'ordres un cop\n" "per cada paraula clau. %k s'expandeix a la paraula clau." msgid "An item in input files list:" msgstr "Un element de la llista dels fitxers d'entrada:" #, c-format msgid "" "This will be attached to the command line once\n" "for each input file. %f expands to the filename." msgstr "" "Això s'adjuntarà a la línia d'ordres un cop\n" "per cada fitxer de sortida. %f s'expandeix al nom del fitxer." msgid "Source code charset:" msgstr "Joc de caràcters del codi font:" #, c-format msgid "" "This will be attached to the command line\n" "only if source code charset was given. %c expands to charset value." msgstr "" "Això s'adjuntarà a la línia d'ordres\n" "només si s'ha especificat el joc de caràcters d'origen. %c s'expandeix al " "valor del joc de caràcters." msgid "Catalog properties" msgstr "Propietats del catàleg" msgid "Project name and version:" msgstr "Nom i versió del projecte:" msgid "Language team:" msgstr "Equip de traducció:" msgid "Plural forms:" msgstr "" msgid "Use default rules for this language" msgstr "Usa les regles per defecte en aquest idioma" msgid "Use custom expression" msgstr "Usa una expressió personalitzada" msgid "Learn about plural forms" msgstr "Apreneu sobre les formes plurals" msgid "Charset:" msgstr "Joc de caràcters:" msgid "Advanced Extraction Settings…" msgstr "Paràmetres d’extracció avançats…" msgid "Advanced extraction settings…" msgstr "Paràmetres d’extracció avançats…" msgid "Translation Properties" msgstr "Propietats de la traducció" msgid "Translation properties" msgstr "Propietats de la traducció" msgid "Sources Paths" msgstr "Rutes de les fonts" msgid "Sources paths" msgstr "Camins de fonts" msgid "Extract text from source files in the following directories:" msgstr "Extreu el text dels fitxers font dels següents directoris:" msgid "Base path:" msgstr "Camí base:" msgid "Sources Keywords" msgstr "Paraules claus de les fonts" msgid "Sources keywords" msgstr "Paraules clau de fonts" msgid "" "Use these keywords (function names) to recognize translatable strings\n" "in source files:" msgstr "" "Usa aquestes paraules clau (noms de funcions) per a reconèixer les\n" "cadenes traduïbles en els fitxers de codi font:" msgid "Also use default keywords for supported languages" msgstr "Utilitza també les paraules clau per defecte a les llengües admeses" msgid "Learn About Gettext Keywords" msgstr "Més informació sobre les paraules clau del gettext" msgid "Learn about gettext keywords" msgstr "Més informació sobre les paraules clau del gettext" msgid "Update summary" msgstr "Actualitza resum" msgid "" "These strings were found in the sources but were not in the catalog.\n" "Poedit will add them to the catalog now." msgstr "" "Aquestes cadenes són al codi font però no al catàleg.\n" "El Poedit les afegirà al catàleg ara." msgid "New strings" msgstr "Cadenes noves" msgid "" "These strings are no longer in the sources.\n" "Poedit will remove them from the catalog now." msgstr "" "Aquestes cadenes ja no són al codi font.\n" "El Poedit les suprimirà del catàleg ara." msgid "Obsolete strings" msgstr "Cadenes obsoletes" msgid "(0 new, 0 obsolete)" msgstr "(0 noves, 0 obsoletes)" msgid "Open" msgstr "Obre" msgid "Save catalog" msgstr "Desa el catàleg" msgid "Validate" msgstr "Valida" msgid "Check for errors in the translation" msgstr "Comprova si hi ha errors a la traducció" msgid "Update" msgstr "Actualitza" msgid "Update catalog - synchronize it with sources" msgstr "Actualitza el catàleg - sincronitza'l amb les fonts" msgid "Sidebar" msgstr "Barra lateral" msgid "Show or hide the sidebar" msgstr "Mostra o amaga la barra lateral" #. TRANSLATORS: "Previous" as in used in the past, now replaced with newer. msgid "Previous source text:" msgstr "Text font previ:" msgid "" "The old source text (before it changed during an update) that the now-" "inaccurate translation corresponds to." msgstr "" msgid "Notes for translators:" msgstr "Notes per als traductors:" msgid "Add comment" msgstr "Afegeix un comentari" msgid "Add Comment" msgstr "Afegeix un comentari" msgid "Translation suggestions:" msgstr "Suggeriments de traducció:" #. TRANSLATORS: This is shown when no translation suggestions can be found in the TM (Windows). msgid "No matches found" msgstr "No s’han trobat coincidències" #. TRANSLATORS: This is shown when no translation suggestions can be found in the TM (macOS, Linux). msgid "No Matches Found" msgstr "No s’han trobat coincidències" msgid "This string was found in Poedit’s translation memory." msgstr "S'ha trobat aquesta cadena en la memòria de traducció del Poedit." msgid "Cannot create temporary directory." msgstr "No s'ha pogut crear el directori temporal." msgid "Welcome to Poedit" msgstr "Us donem la benvinguda al Poedit" #. TRANSLATORS: This is version information in about dialog, "%s" will be #. version number when used #, c-format msgid "Version %s" msgstr "Versió %s" msgid "Edit a Translation" msgstr "Modifica una traducció" msgid "Edit a translation" msgstr "Edita una traducció" msgid "Open an existing PO file and edit the translation." msgstr "Obre un fitxer PO existent i edita la traducció." msgid "" "Take an existing PO file or POT template and create a new translation from " "it." msgstr "Pren un fitxer PO o plantilla existent i crea’n una traducció nova." msgid "Collaborate on a Translation with Others" msgstr "Col·laboreu amb altres en una traducció" msgid "Collaborate on a translation with others" msgstr "Col·laboreu amb altres en una traducció" msgid "" "Download a file from Crowdin project, translate and sync your changes back." msgstr "" "Baixa el fitxer d'un projecte del Crowdin, traduïu-ho i sincronitzeu-ho amb " "els vostres canvis." msgid "What is Crowdin?" msgstr "Què és el Crowdin?" msgid "There are no translations. That’s unusual." msgstr "No hi ha traduccions. Això es inusual." msgid "" "Translatable entries aren’t added manually in the Gettext system, but are " "automatically extracted\n" "from source code. This way, they stay up to date and accurate.\n" "Translators typically use PO template files (POTs) prepared for them by the " "developer." msgstr "" msgid "(Learn more about GNU gettext)" msgstr "(Apreneu més sobre el GNU gettext)" msgid "The simplest way to fill this catalog is to update it from a POT:" msgstr "" "La manera més senzilla d'omplir aquest catàleg es actualitzar-lo des d'un " "POT:" msgid "Update from POT" msgstr "Actualitza des del POT" msgid "Take translatable strings from an existing POT template." msgstr "Pren cadenes traduïbles d'una plantilla POT existent." msgid "" "You can also extract translatable strings directly from the source code:" msgstr "També pots extreure cadenes traduïbles directament del codi font:" msgid "Extract from sources" msgstr "Extreu des de les fonts" msgid "Configure source code extraction in Properties." msgstr "Configura l'extracció de codi font en els Propietats." msgid "Sync" msgstr "Sincronitza" msgid "Synchronize the translation with Crowdin" msgstr "Sincronitza la traducció amb el Crowdin" #. TRANSLATORS: This is titlebar of about dialog, "%s" is application name #. ("Poedit" here, but please use "%s") #, c-format msgid "About %s" msgstr "Quant al %s" #. TRANSLATORS: Title of the preferences window on Windows and Linux. "%s" is replaced with "Poedit" when running. #, c-format msgid "%s Preferences" msgstr "Preferències del %s" #. TRANSLATORS: macOS item in app menu msgid "Services" msgstr "Serveis" #. TRANSLATORS: macOS item in app menu, %s is replaced with "Poedit" #, c-format msgid "Hide %s" msgstr "Amaga el %s" #. TRANSLATORS: macOS item in app menu msgid "Hide Others" msgstr "Amaga la resta" #. TRANSLATORS: macOS item in app menu msgid "Show All" msgstr "Mostra-ho tot" #. TRANSLATORS: macOS item in app menu, %s is replaced with "Poedit" #, c-format msgid "Quit %s" msgstr "Surt del %s" #. TRANSLATORS: macOS item in app menu msgid "Preferences…" msgstr "Preferències…" msgid "Preferences..." msgstr "Preferències..." #. TRANSLATORS: Title of a category in Windows task menu (right-click icon in taskbar) msgid "Recent" msgstr "Recents" #. TRANSLATORS: Title of a category in Windows task menu (right-click icon in taskbar) msgid "Frequent" msgstr "Freqüents" msgid "&Apply" msgstr "&Aplica" msgid "Apply" msgstr "Aplica" msgid "&Back" msgstr "&Enrere" msgid "Back" msgstr "Enrere" msgid "&Cancel" msgstr "&Cancel·la" msgid "&Clear" msgstr "&Neteja" msgid "Clear" msgstr "Neteja" msgid "Copy" msgstr "Copia" msgid "Cu&t" msgstr "Re&talla" msgid "Cut" msgstr "Retalla" msgid "&Delete" msgstr "&Suprimeix" msgid "&Quit" msgstr "&Surt" msgid "File" msgstr "Arxiu" msgid "Help" msgstr "Ajuda" msgid "&New" msgstr "&Nou" msgid "&No" msgstr "&No" msgid "No" msgstr "No" msgid "&OK" msgstr "&D’acord" msgid "Open…" msgstr "Obre…" msgid "&Open..." msgstr "&Obre..." msgid "Open..." msgstr "Obre…" msgid "&Paste" msgstr "&Enganxa" msgid "Paste" msgstr "Enganxa" msgid "Preferences" msgstr "Preferències" msgid "&Redo" msgstr "&Refés" msgid "Refresh" msgstr "Actualitza" msgid "&Save as" msgstr "Anomena i de&sa" msgid "Save as" msgstr "Anomena i desa" msgid "Select &All" msgstr "Selecciona-ho &tot" msgid "Select All" msgstr "Selecciona-ho tot" msgid "&Undo" msgstr "&Desfés" msgid "&Yes" msgstr "&Sí" msgid "Yes" msgstr "Sí" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Shift+" msgstr "Maj+" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Enter" msgstr "Retorn" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Up" msgstr "" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Down" msgstr "" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Left" msgstr "" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Right" msgstr "" #. TRANSLATORS: Keyboard shortcut, must correspond to translation of "Ctrl+" msgid "ctrl" msgstr "ctrl" #. TRANSLATORS: Keyboard shortcut, must correspond to translation of "Alt+" msgid "alt" msgstr "alt" #. TRANSLATORS: Keyboard shortcut, must correspond to translation of "Shift+" msgid "shift" msgstr "maj" poedit-2.0.6/locales/hr.mo0000664000372000037200000011326613230132076012322 00000000000000 * * **<*1+JD+g++, ,,", (,3,;,B,I,O,W,f,u,{,,,,,,,,,,,,--- !- .-;-D-M- T-a-q----------..*.0.L.h.}......../-/ K/:W/:/ /// / /00 !0-0 G0T0c0s0000 00'001 21=1C1)c11 1]11A2IP22222"22 23. 383K3]3o3333333#3 454D4J4\4n44(4(44 455/85 h5u5z5555525676N6e6 66%7+70747K7R7 e7r77E7"7?8 A8N8 a8n88"85888 8 8 99&9 99 F9S9d9l9t9{99.9u98:K:b:w: ~:: ::<:":; *;5;!H;!j;';;;T;-< 3<A< F< P<^<o<< < < < <<<<<<== &=1=6= >= J=W=g=== 3>?> U>v> ~> >>">;>(>$?A?T? c? m?{?? ????@ @%@>@:C@<~@.@@@ A%AF XFfFnFuF-FF FF2FG 2G>GMG\G vGGGGGGGG GG GG G G H(H?HEH^HeHkH pH |HH H H H H HH"HII(I 8IEI UIbIiI rIIIII II!IJJ$J-J5JHJ QJ_J hJrJ J J JJJJJJKK0KK KK KL L"L 3LAL RL`LgL|L LL L LLWM(\MM MMMM+MNNN8aNNNnO PI(PRrPcPQ)Q{QAQQ!gR)R-R,RLS`[SYSmT:TT;kUmU_V[uVVVVWW,WCWZWsW WWX#X7X l\lqllllhmnmwm mmmmmm5m$n;Bn~nnnnn>n6 o@oGoMo]omo|ooo o o ooooo'oi'pp"ppppp q q72q!jqq qq)q'q0rDrMrckr rrrrss/sJsasts s sssss sss tt $t .t;tPtctutxtu2uPu kuvu uu*u*uuv $v2vBvIv*\vvvv*v vw )w6wQw@Xw;w3w x x9xXx jx vxxxxxxxyyyz"z%z?z"OzErz'zzz{{{"{:{/I{y{{{{ { {{{{| |)|D|]|||}f}Hu}}@}~ ~#~*~7E~}~~~R~ # /;Sclt     -,A]fl s  ǀ Ԁ ")0 BP bp ẃ݁, :GOV^v }ɂۂ" #1"U x#ڃZu Ʉ؄,2GYk ( CQ"l(/φO6Ra=KB^YGTf %)ƋMh^\njf$B΍@pڎaKg%AVn w9=R#[  !(ޑ!;U jvD&$#@.d$k$DW q}ǔΔ֔Gٔ6! Xjb͕ҕڕޕE )Jgm}#_D,u`e665M(?\8XTN; ZfP.aKzv;|Bu7Jn{=OY&FOEW-0]8%lr#Bij?R$C5kZ+W4T-"G>t Di`g<!13[&(mV IwEC\Ag 'R2fUvQ*K'9}dV/,byUlqosqhM ^H:{Sx.SQ*@Yc4a y0tNL w9" )p:n/!dj$kr~A G|s}o hm]2X @#z%7PxLeJ^<~1H_+ )F=b>pc3 (modified) (unsaved)%d entry%d entries%d entry was pre-translated.%d entries were pre-translated.%d error%d errors%d issue with the translation found.%d issues with the translation found.%i line of file “%s” was not loaded correctly.%i lines of file “%s” were not loaded correctly.%s Preferences&About&About Poedit&Apply&Back&Bookmarks&Cancel&Clear&Close&Copy&Delete&Done and Next&Done and next&Edit&File&Find…&GNU gettext Manual&GNU gettext manual&Go&Group By Context&Group by context&Help&New&New…&Next >&Next Translation&Next translation&No&OK&Online Help&Online help&Open...&Open…&Paste&Preferences&Preferences…&Previous Translation&Previous translation&Properties…&Purge Deleted Translations&Purge deleted translations&Quit&Redo&Replace&Save&Save as&Show References&Show references&Undo&Untranslated Entries First&Untranslated entries first&Update from Sources&Update from sources&Validate Translations&Validate translations&View&Yes(0 new, 0 obsolete)(Learn more about GNU gettext)(New: %i, obsolete: %i)(Use default language)(requires Windows 8 or newer)< &PreviousDrag and Drop Folders Here or use the + buttonDrag and drop folders here or use the + buttonAbout %sAccountsAdd CommentAdd Files…Add Folders…Add Wildcard…Add commentAdd directory to the listAdd files…Add folders…Add wildcard…Additional keywordsAdditional xgettext flags:AdvancedAll Translation FilesAll commentsAlt+Always change focus to text input fieldAn item in input files list:An item in keywords list:AppearanceApplyAutomatically check for updatesAutomatically compile MO file when savingBackBase path:Beta versions contain the latest new features and improvements, but may be a bit less stable.Bring All to FrontBroken catalog file: plural form msgstr used without msgid_pluralBroken catalog file: singular form msgstr used together with msgid_pluralBrowseC&atalogC&learCancelCannot create temporary directory.Cannot execute program: %sCapitalizeCatalogCatalog modified. Do you want to save changes?Catalog propertiesCatalogs &ManagerCatalogs &managerCatalogs ManagerChange UI languageCharset:Check Document NowCheck Grammar With SpellingCheck Spelling While TypingCheck for Updates…Check for errors in the translationCheck for updates…Check spellingClearClear TranslationClear the commentClear translationCloseCollaborate on a Translation with OthersCollaborate on a translation with othersCollecting source files…Command to extract translations:Comment:Compiled Translation FilesConfigure source code extraction in Properties.ConfirmationCopyCopy From SingularCopy from Source TextCopy from singularCopy from source textCorrect Spelling AutomaticallyCouldn’t load file %s, it is probably corrupted.Couldn’t save file %s.Create New TranslationCreate new translationCreate new translations projectCrowdin errorCrowdin is an online localization management platform and collaborative translation tool. Poedit can seamlessly sync PO files managed at Crowdin.Ctrl+Cu&tCutDatabase size on disk:DeleteDelete the projectDirectories:Display Entry &IDsDisplay entry &IDsDo you really want to do mass update of all catalogs in this project?Do you want to delete the project?Do you want to remove all translations that are no longer used?Don’t SaveDon’t Show AgainDon’t saveDon’t show againDownDownloading latest translations…Downloading translations is disabled in this project.E&xitEditEdit &CommentEdit &commentEdit CommentEdit a TranslationEdit a translationEdit commentEdit projectEdit the projectEditingEdit…Email:EnterEnter Full ScreenEntries in the catalog are probably incorrect.Entries with errors were marked in red in the list. Details of the error will be shown when you select such an entry.Error opening fileError opening file %s!Error saving catalogErrorsEverythingExcluded pathsExport as…Extract from sourcesExtract text from source files in the following directories:Extracting translatable strings…Extractor setupExtractorsFailed command: %sFailed to load extracted catalog.Failed to merge gettext catalogs.Failed to update translation memory: %sFileFile “%s” doesn’t exist.File “%s” is read-only and cannot be saved. Please save it under different name.File:Finalizing…FindFind NextFind PreviousFind in commentsFind in source textsFind in translationsFind nextFind previousFix LanguageFix languageFix the HeaderFix the headerForm %iFrequentGeneralGo to Bookmark %iGo to bookmark %iHTML FilesHelpHide %sHide OthersHide SidebarHide Status BarHide this notification messageIDIf you continue with purging, all translations marked as deleted will be permanently removed. You will have to translate them again if they are added back in the future.Ignore caseInclude beta versionsInformation about the translatorInstallInvalid fileInvocation:KeepLanguage Code or Name (e.g. en_GB)Language of the translation is the same as source language.Language of the translation isn’t set.Language of the translation:Language selectionLanguage team:Language:Last modifiedLearn About Gettext KeywordsLearn From Files…Learn MoreLearn More About CrowdinLearn about gettext keywordsLearn about plural formsLearn from files…Learn moreLearn more about CrowdinLeftLine %d of file “%s” is corrupted (not valid %s data).List of extensions separated by semicolons (e.g. *.cpp;*.h):MO files can’t be directly edited in Poedit.Make Lower CaseMake Upper CaseMalformed header: “%s”Merging differences…MinimizeName of the project the translation is forName:Ne&xt UnfinishedNe&xt unfinishedNeeds WorkNeeds workNever let the list of strings take focus. If enabled, you must use Ctrl-arrows for keyboard navigation but you can also type text immediately, without having to press Tab to change focus.NewNew From &POT/PO File…New from &POT/PO file…New stringsNoNo Matches FoundNo matches foundNo problems with the translation found.No translation projects listed in your Crowdin account.Not authorized, please sign in again.Notes for translators:OKObsolete stringsOneOpenOpen Crowdin translationOpen RecentOpen an existing PO file and edit the translation.Open catalogOpen catalog templateOpen in EditorOpen in editorOpen...Open…OptionsOtherP&revious UnfinishedP&revious unfinishedPO TranslationPO Translation FilesPOT Translation TemplatesPOT files are only templates and don’t contain any translations themselves. To make a translation, create a new PO file based on the template.PastePaste and Match StylePathsPlease open and edit the corresponding PO file instead. When you save it, the MO file will be updated as well.Please save the file first. This section cannot be edited until then.PluralPlural forms expression used by the catalog is unusual for %s.Plural forms:Plural:PoeditPoedit - Catalogs managerPoedit is an easy to use translations editor.Pre-&translate…Pre-translatePre-translatedPre-translated %u stringPre-translated %u stringsPre-translating…PreferencesPreferences...Preferences…Project name and version:Project name:Project:PurgePurge deleted translationsQuitQuit %sRecentRedoReferences:RefreshRemaining: %dReplaceReplace &AllReplace &allReplace…Required header Plural-Forms is missing.ResetReset translation memoryReviewRightSaveSave &As…Save &as…Save asSave as…Save catalogSave changesSelect &AllSelect AllSelect directorySelect translation files to importSelect your preferred languageServicesSet Bookmark %iSet LanguageSet bookmark %iSet languageShift+Show AllShow SidebarShow Spelling and GrammarShow Status BarShow SubstitutionsShow or hide the sidebarShow sidebarShow status barShow summary after catalog updateSidebarSign InSign OutSign inSign in to CrowdinSign outSigned in as:SingularSingular:Smart Copy/PasteSmart DashesSmart LinksSmart QuotesSort by &File OrderSort by &SourceSort by &TranslationSort by &file orderSort by &sourceSort by &translationSource code charset:Source code extractors are used to find translatable strings in the source code files and extract them so that they can be translated.Source code not available.Source fileSource file occurrence:Source textSource text — %sSource text:Sources KeywordsSources PathsSources keywordsSources pathsSpeechSpelling and GrammarStart SpeakingStop SpeakingStored translations:SubstitutionsSuggestionsSuggestions are not available if the translation language is not set correctly. Other features, such as plural forms, may be affected as well.SyncSynchronize the translation with CrowdinSyncingSyncing errorSyncing with %s failed.Syncing with %s…Syncing with Crowdin failed.Syntax error in Plural-Forms header ("%s").TMTake an existing PO file or POT template and create a new translation from it.Take translatable strings from an existing POT template.Text ReplacementThe TM doesn’t contain any strings similar to the content of this file. It is only effective for semi-automatic translations after Poedit learns enough from files that you translated manually.The catalog couldn’t be saved in “%s” charset as specified in catalog settings. It was saved in UTF-8 instead and the setting was modified accordingly.The file cannot be opened.The file may be either corrupted or in a format not recognized by Poedit.The file was compiled into the MO format, but it will probably not work correctly.The file was saved safely and compiled into the MO format, but it will probably not work correctly.The file was saved safely, but it cannot be compiled into the MO format and used.The file was saved safely.The simplest way to fill this catalog is to update it from a POT:The translation is ready for use, but %d entry is not translated yet.The translation is ready for use, but %d entries are not translated yet.The translation is ready for use.The translation should end with “%s”.The translation should not end with “%s”.There are no translations. That’s unusual.There was a problem formatting the file nicely (but it was saved all right).There were errors when loading the catalog. Some data may be missing or corrupted as the result.These strings are no longer in the sources. Poedit will remove them from the catalog now.These strings were found in the sources but were not in the catalog. Poedit will add them to the catalog now.This file can only be edited in Crowdin’s web interface.This is the command used to launch the extractor. %o expands to the name of output file, %K to list of keywords, %F to list of input files, %C to charset flag (see below).This project has no files that can be translated in Poedit.This will be attached to the command line only if source code charset was given. %c expands to charset value.This will be attached to the command line once for each input file. %f expands to the filename.This will be attached to the command line once for each keyword. %k expands to the keyword.TotalTransformationsTranslated: %d of %d (%d %%)Translation LanguageTranslation MemoryTranslation PropertiesTranslation propertiesTranslation suggestions:Translation — %sTranslation:Translations couldn’t be updated from the source code, because no code was found in the location specified in the catalog’s Properties.TwoUTF-8 (recommended)UndoUnhandled exception occurred: %sUnix (recommended)UntransUpUpdateUpdate allUpdate all catalogs in the projectUpdate catalog - synchronize it with sourcesUpdate from &POT File…Update from &POT file…Update from POTUpdate summaryUpdatesUpdating catalogUpdating failedUpdating the catalog failed. Click on 'Details >>' for details.Updating user information…Uploading translations…Use custom expressionUse custom list font:Use custom text fields font:Use default rules for this languageUse these keywords (function names) to recognize translatable strings in source files:Use translation memoryValidateValidation resultsVersion %sWaiting for authentication…Welcome to PoeditWhole words onlyWindowWindowsYesYou can also extract translatable strings directly from the source code:You must restart Poedit for this change to take effect.Your NameYour name and email address are only used to set the Last-Translator header of GNU gettext files.ZeroZoomaltctrldon’t delete temporary files (for debugging)e.g. nplurals=2; plural=(n > 1);handle a poedit:// URIshiftunknown languageyour_email@example.com“%s” is not a valid POT file.Project-Id-Version: poedit Report-Msgid-Bugs-To: help@poedit.net POT-Creation-Date: 2017-12-05 15:52+0100 PO-Revision-Date: 2018-01-18 07:57-0500 Last-Translator: vslavik Language-Team: Croatian Language: hr_HR MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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); X-Generator: crowdin.com X-Crowdin-Project: poedit X-Crowdin-Language: hr X-Crowdin-File: /locales/poedit.pot (izmjenjeno) (nespremljeno)%d unos%d unosa%d unosa%d unos je pre-preveden.%d unosa je pre-prevedeno.%d unosa je pre-prevedeno.%d greška%d greške%d GreškeS prijevodom je pronađen %d problem.S prijevodom su pronađena %d problema.S prijevodom je pronađeno %d problema.%i redak datoteke “%s” nije učitan ispravno.%i redci datoteke “%s” nisu učitani pravilno.%i redci datoteke “%s” nisu učitani pravilno.%s Postavke&O programu...&O Poeditu&Primjeni&Natrag&Oznake&OdustaniO&čisti&Zatvori&Kopiraj&Izbriši&Završi i idi na sljedeće&Završi i idi na sljedeće&Uredi&DatotekaPronađi&GNU gettext priručnik&GNU gettext priručnik&Idi&Grupiraj po kontekstu&Grupiraj po kontekstu&Pomoć&Novo&Novo…&Sljedeće&Sljedeći prijevod&Sljedeći prijevod&Ne&U redu&Pomoć s mreže&Pomoć s mreže&Otvori...&Otvori...&Zalijepi&Postavke&Postavke&Prethodni prijevod&Prethodni prijevodSvojstva&Pročisti izbrisane prijevode&Pročisti izbrisane prijevode&Izađi&VratiZamijeni&Spremi&Spremi kao&Prikaži reference&Prikaži reference&Poništi&Prvo neprevedeni unosi&Prvo neprevedeni unosi&Ažurirajj iz izvora&Ažuriraj iz izvora&Provjeri valjanost prijevoda&Provjeri valjanost prijevoda&Prikaz&Da(novih: 0, zastarjelih: 0)(Nauči više o GNU gettext)(Novo: %i, zastarjelo: %i)(Koristi zadani jezik)(zahtijeva Windows 8 ili noviji)< &PrethodnoNa ovo mjesto povucite i spustite mape ili koristite tipku +Na ovo mjesto povucite i spustite mape ili koristite tipku +O %sRačuniDodaj komentarDodaj datoteke…Dodaj Mape…Dodaj zamjenski znak...Dodaj komentarDodaj mapu na popisDodaj datoteke…Dodaj mape…Dodaj zamjenski znak...Dodatne ključne riječiDodatne xgettext oznake:NaprednoSve prevedene datotekeSvi komentariAlt+Uvijek prebaci fokus na polje za uređivanjeStavka u popisu ulaznih datoteka.Stavka u popisu ključnih riječi:IzgledPrimijeniAutomatska provjera ažuriranjaAutomatski sastaviti MO datoteku pri spremanjuNatragOsnovna putanjaBeta inačice sadrže najnovije mogućnosti i poboljšanja ali mogu biti malčice nestabilne.Dovedi sve na početakNeispravna katalog datoteka: Oblik množine "msgstr" upotrijebljen je bez "msgid_plural"Neispravna katalog datoteka: Oblik jednine "msgstr" upotrijebljen je bez "msgid_plural"PregledajK&atalogO&čistiOdustaniNije moguće izraditi privremenu mapu.Nije moguće pokrenuti program: %sPostavi veliko početno slovoKatalogKatalog je izmijenjen. Želite li spremiti izmjene?Svojstva katalogaUpravitelj &katalogaUpravitelj &katalogaUpravitelj katalogaPromijeni jezik sučeljaKodna stranica:Provjeri dokumentUz pravopis provjeravaj i gramatikuProvjeri pravopis tijekom tipkanjaProvjeri za nadogradnjeProvjeri greške u prijevoduProvjeri ako je dostupna nadogradnjaProvjeri pravopisOčistiOčisti prijevodOčisti napomenuOčisti prijevod&ZatvoriSurađuj na prijevodu s drugimaSurađuj na prijevodu s drugimaSkupljam datoteke izvornika…Naredba za izdvajanje prijevodaKomentar:Sastavljene datoteke prijevodaKonfiguriraj izdvajanje iz izvornog koda u SvojstvimaPotvrdaKopirajKopiraj iz jednineKopiraj iz izvornog tekstaKopiraj iz jednineKopiraj iz izvornog tekstaAutomatski ispravljaj pravopisNe mogu učitati datoteku %s, možda je oštećena.Ne mogu spremiti datoteku %s.Izradi novi prijevodIzradi novi prijevodIzradi novi projekt prevođenjaCrowdin-ova pogreškaCrowdin je online platforma za upravljanje procesom lokaliziranja i alat za timsko prevođenje. Poedit može bez problema sinkronizirati PO datoteke procesirane u Crowdin.Ctrl+Izr&ežiIzrežiVeličina baze podataka na diskuIzbrišiIzbriši projektMape:Prikaži unos i ID-ovePrikaži unos i ID-oveŽelite li zaista ažurirati sve kataloge u projektu?Želite li izbrisati projekt?Želite li ukloniti sve prijevode koji se više ne koriste?Nemoj spremitiNe prikazuj ponovnoNemoj spremitiNe prikazuj ponovnoDoljePrezimam najnovije prijevode… Context | Request Context…Preuzimanje prijevoda nije omogućeno u ovom projektu.&IzlazUrediUredi &komentarUredi &komentarUredi komentarUredi prijevodUredi prijevodUredi komentarUredi projektUredi projektUređivanjeUredi...Email:UnesiteUnesite cijeli zaslonUnosiu katalogu vjerojatno su netočni.Unosi s greškama označeni su crvenom bojom. Detalji greške bit će prikazani kad označite takav unos.Greška pri otvaranju datotekeGreška pri otvaranju datoteke %s!Greška pri spremanju katalogaGreškeSveIsključene putanjeIzvezi kao…Izdvoji iz izvoraIzdvoji tekst iz izvornih datoteka u sljedećim mapama:Pripremam tekst za prevođenje…Postavke izdvajačaIzdvajačiNeuspjela naredba: %sNeuspjelo učitavanje izdvojenog katalogaSpajanje gettext kataloga nije uspjelo.Neuspjelo ažuriranje prevoditeljske memorije %sDatotekaDatoteka “%s” ne postoji.Datoteka “%s” je samo za čitanje i i ne może biti spremljena. Spremite ju pod drugim nazivom.Datoteka:Završavanje...PronađiPronađi sljedećePronađi prethodnoPronađi u komentarimaPronađi u izvornom tekstuPronađi u prijevodimaPronađi sljedećePronađi prethodnoPopravi jezikPopravi jezikPopravi zaglavljeIspravi zaglavljeOblik %iČestoOpćenitoKreni na web-oznaku %iKreni na web-oznaku %iHTML datotekePomoćSakrij %sSakrij drugeSakrij bočnu trakuRazdvoji ćelijeSakrij ovu porukuIDAko nastavite s čišćenjem, svi prijevodi označeni kao izbrisani bit će trajno uklonjeni. Morat ćete ih ponovno prevoditi ako se budu dodali u budućnosti.Zanemari veličinu fontaUključujući i beta inačiceInformacije o PrevoditeljuInstalirajNeispravna datotekaPozivanje:ZadržiKodna stranica ili ime jezika (npr. hr-hr)Jezik prijevoda je isto kao izvorni jezik.Jezik prijevoda nije postavljenJezik prijevoda:Odabir jezikaJezična ekipa:Jezik:Posljednja izmjenaNauči više o gettext ključnim riječimaNauči iz datoteka...Saznajte višeSaznajte Više O Crowdin-uNauči više o gettext ključnim riječimaNauči više o oblicima množineNauči iz datoteka...Nauči višeSaznajte Više O Crowdin-uLijevoRedak %d datoteke “%s” je oštećen (nije ispravan %s data).Popis nastavaka razdvojen točkazarezom (npr. "*.cpp;*.h"):MO datoteke ne mogu se izravno uređivati u PoedituPreinači u mala slovaPreinači u velika slovaOštećeno zaglavlje: “%s”Spajam razlike…MinimizirajIme projekta za koji je prijevodIme:S&ljedeće nezavršenoS&ljedeće nezavršenoZahtjeva doraduZahtjeva doraduNikad ne dopusti popisu stringova da preuzme fokus. Ako je omogućeno morat ćete koristiti CTRL + strelice za kretanje tipkovnicom ali ćete moći odmah upisivati tekst bez pritiskanja na Tab da prebacite fokus u polje za uređivanje.NovoNovo iz &POT/PO datoteke…Novo iz &POT/PO datoteke…Novi stringoviNeRezultati nisu pronađeniNema poklapanjaNisu nađeni problemi u prijevodu.Nema prevodilačkih projekata na vašem Crowdin korisničkom računu.Nije autorizirano, prijavite se ponovo.Napomene prevoditeljima:U reduZastarjeli stringoviJedanOtvoriOtvori prijevod crowdinOtvori nedavnoOtvori postojeću PO datoteku i uredi prijevod.Otvori katalogOtvori predložak kataloga.Otvori u uređivačuOtvori u uređivačuOtvori...Otvori...OpcijeDrugoP&rethodno nezavršenoP&rethodno nezavršenoPO prijevodPO prevoditeljske datotekePOT predlošci prijevodaPOT datoteke su samo predlošci i ne sadrže nikakve prijevode. Za stvaranje prijevoda, izradite novu PO datoteku iz POT predloška.ZalijepiZalijepi poštujući stilPutanjeOtvorite i uređujte pripadajuću PO datoteku. MO datoteka će se automatski ažurirati pri spremanju.Prvo spremite datoteku. Ovaj dio se ne može uređivati prije spremanja.MnožinaIzraz oblika množine korištenu katalogu nije uobičajen za %s.Oblici množine:Množina:PoeditPoedit upravitelj katalogaPoedit je uređivač prijevoda jednostavan za upotrebu.Pred-prevođenjePred-prevođenjeUnaprijed prevedenoPred-prevođen je %u nizPred-prevođeno je %u nizovaPred-prevođeni su %u nizovaPred-prevođenje…PostavkePostavke...Postavke...Ime i inačica projektaNaziv projekta:Projekt:OčistiPročisti izbrisane prijevodeIzađiOtkaz %sNajnovijeVratiReference.OsvježiPreostalo: %dZamijeni&NištaZamijeni sveZamijeni...Nedostaje obavezno zaglavlje oblika množine.Ponovno postavljanjeOčisti prijevodna memorijaRazmotriDesnoSpremiSpremi kao…Spremi kao…Spremi kaoSpremi kao…Spremi katalogSpremi promjeneOdaberi &sveOdaberi sveOdaberi mapuOdaberi datoteke prijevoda za uvozOdaberite željeni jezikUslugePostavi oznaku %iPostavi jezikPostavi oznaku %iPostavi jezikShift+Pokaži svePokaži bočnu trakuPrikaži pravopis i gramatikuPokaži traku stanjaPrikaži zamjeneFazaPokaži bočnu trakuPokaži traku stanjaPrikaži sažetak nakon ažuriranja katalogaBočna trakaPrijavaOdjavaPrijavaUlogirajte se u CrowdinOdjavaUlogiran Kao:JedninaJednina:Pametno kopiranje/lijepljenjePametne crticePametne poveznicePametni navodniciRazvrstaj po redoslijedu &datotekaRazvrstaj po redoslijedu &izvoraRazvrstaj po redoslijedu &prijevodaRazvrstaj po redoslijedu &datotekaRazvrstaj po redoslijedu &izvoraRazvrstaj po redoslijedu &prijevodaKodna stranica izvornog kodaIzdvajači izvornog koda koriste se za pronalaženje prevodivih stringova u datotekama izvornog koda kako bi se mogli prevesti.Izvorni kod nije dostupan.Izvorna datotekaPodudaranje s izvornom datotekomIzvorni tekstIzvorni tekt — %sIzvorni tekst:Ključne riječi izvoraPutanje do izvoraKljučne riječi izvoraPutanje do izvoraGovorPravopis i gramatikaZapočni govoritiPrestani govoritiPohranjeni prijevodiZamjenePrijedloziPrijedlozi nisu dostupni ako jezik prijevoda nije ispravno postavljen. Druge značajke, kao što su oblici množine, mogu biti krivi.SinkronizacijaUskladi prijevod s CrowdinSinkroniziramGreška pri sinkronizacijiSinkronziranje sa %s nije uspjelo.Sinkroniziram sa %s…Usklađivanje s Crowdin-om nije uspjelo.Greška sintakse u zaglavlju oblika množine %sPMOtvori postojeću PO datoteku ili POT predložak i od njih izradi novi prijevodPreuzmi prevodive stringove iz postojeće POT datotekeZamjenski tekstPrevoditeljska memorija ne sadrži stringove slične onima u sadržaju ove datoteke. Učinkovita je samo za poluautomatsko prevođenje nakon što Poedit nauči dovoljno iz ručno prevedenih datoteka.Katalog nije mogao biti spremljen u “%s” specificiran u postavkama. Spremljen je u UTF-8 i usporedno je pospremljena postavka.Datoteka se ne može otvoritiDatoteka je oštećena ili u obliku koji Poedit ne prepoznajeDatoteka je sastavljena u MO formatu, ali vjerojatno neće ispravno raditi.Datoteka je sigurno spremljena i kompajlirana u MO oblik ali vjerojatno neće ispravno raditi.Datoteka je sigurno spremljena ali ne može biti kompajlirana u MO oblik niti korištena.Datoteka je sigurno spremljenaNajjednostavniji način za ispunjavanje ovog kataloga je ažuriranje iz POT datotekePrijevod je spreman za upotrebu ali %d unos još nije preveden.Prijevod je spreman za upotrebu ali %d unosa još nisu prevedena.Prijevodje spreman za upotrebu ali %d unosa još nije prevedeno.Prijevod je spreman za upotrebu.Prijevod mora završavati s “%s”.Prijevod ne smije završavati s “%s”.Nema prijevoda, to je neobičnoPrilikom oblikovanja datoteke došlo je do problema ali je uredno spremljena.Tijekom učitavanja kataloga došlo je do greški. Neki podaci mogli bi nedostajati ili biti oštećeni.Ovi stringovi više se ne nalaze u izvornim datotekama. Poedit će ih izbrisati iz kataloga.Ovi stringovi pronađeni su u izvornim datotekama ali ne i u katalogu. Poedit će ih dodati u katalog.Ovu datoteku je moguće uređivati samo na Crowdin web stranicama.Ova se naredba koristi za pokretanje izdvajača. %o se proširuje na ime izlazne datoteke, %K na popis ključnih riječi, %F na popis ulaznih datoteka, %C na zastavicu kodne stranice (pogledajte ispod).Ovaj projekt nema datoteke, koja bi se mogla prevesti u Poeditu.Ovo će se dodati naredbenom retku samo ako je priložen izvorni kod. %c se dodaje na vrijednost kodne stranice.Ovo će se dodati naredbenom retku jednom za svaku ulaznu datoteku. %f se dodaje na ime datoteke.Ovo će se dodati na naredbeni redak jednom za svaku ključnu riječ. %k dodajej se na ključnu riječ.UkupnoPreinakePrevedeno: %d od %d (%d %%)Jezik za prevođenjePrevoditeljska memorijaSvojstva prijevodaSvojstva prijevodaPrijedlozi za prijevod:Prijevod %sPrijevodPrijevode nije moguće ažurirati iz izvornog koda, jer nije pronađen kod na lokaciji navedenom u Svojstvima kataloga.DvaUTF-8 (preporučeno)PoništiDogodila se neočekivana iznimka %sUnix (preporučeno)NeprevedenoGoreAžurirajAžuriraj sveAžuriraj sve kataloge u projektuAžuriraj katalog, uskladi ga s izvorimaAžuriraj iz POT datotekeAžuriraj iz POT datotekeAžuriraj iz POT datotekeAžuriranje sažetkaAžuriranjaAžuriranje katalogaAžuriranje nije uspjeloAžuriranje kataloga nije uspjelo. Za detalje kliknite na 'Detalji'.Ažuriranje informacija o korisniku…Šaljem prijevod…Koristi prilagođene izrazeKoristi prilagođeni font za popis:Koristi prilagođeni font za tekstualna polja:za ovaj jezik koristi zadana pravilaKoristi ove ključne riječi (nazive funkcija) za prepoznavanje prevodivih stringova u izvornim datotekama.Koristi prevoditeljsku memorijuProvjeri valjanostIshod provjere valjanostiInačica %sČekanje na autenitifikaciju…Dobrodošli u Poedit!Samo cijele riječiProzorWindowsDaTakođer možete izdvojiti prevodive stringove izravno iz izvornog kodaPonovo pokrenite Poedit kako bi promjena imala učinakVaše imeVaše ime i email se koriste samo za postavljanje posljednjeg prevoditelja u naslovu GNU gettext datoteke.NulaUvećajaltctrlnemojte izbrisati pričuvne datoteke (služe kod uklanjanja grešaka)npr. nplurals=2; plural=(n > 1);postupanje s Poeditom:// URIshiftNepoznati jezikvas_email@primjer.hr“%s” nije valjana POT datoteka.poedit-2.0.6/locales/da.po0000664000372000037200000014723713230132076012305 00000000000000msgid "" msgstr "" "Project-Id-Version: poedit\n" "Report-Msgid-Bugs-To: help@poedit.net\n" "POT-Creation-Date: 2017-12-05 15:52+0100\n" "PO-Revision-Date: 2017-09-21 11:19-0400\n" "Last-Translator: vslavik \n" "Language-Team: Danish\n" "Language: da_DK\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: crowdin.com\n" "X-Crowdin-Project: poedit\n" "X-Crowdin-Language: da\n" "X-Crowdin-File: /locales/poedit.pot\n" msgid "Hide this notification message" msgstr "Skjul denne påmindelsesmeddelelse" msgid "Don’t Show Again" msgstr "Vis ikke igen" msgid "Don’t show again" msgstr "Vis ikke igen" #, c-format msgid "(New: %i, obsolete: %i)" msgstr "(Nye: %i, forældede: %i)" msgid "Updating catalog" msgstr "Opdaterer katalog" msgid "Collecting source files…" msgstr "Indsamler kildefiler…" msgid "Extracting translatable strings…" msgstr "Pakker oversættelige strenge ud…" msgid "Failed to load extracted catalog." msgstr "Kunne ikke indlæse udtrukket katalog." msgid "Merging differences…" msgstr "Sammenlægger forskelle…" #, c-format msgid "“%s” is not a valid POT file." msgstr "\"%s\" er ikke en gyldig POT fil." #, c-format msgid "%i line of file “%s” was not loaded correctly." msgid_plural "%i lines of file “%s” were not loaded correctly." msgstr[0] "%i linje af filen “%s” blev ikke indlæst korrekt." msgstr[1] "%i linjer af filen “%s” blev ikke indlæst korrekt." #, c-format msgid "Line %d of file “%s” is corrupted (not valid %s data)." msgstr "Linje %d af filen “%s” er beskadiget (ikke gyldig %s data)." #, c-format msgid "Malformed header: “%s”" msgstr "Forkert udformet header: “%s”" msgid "" "Broken catalog file: singular form msgstr used together with msgid_plural" msgstr "Fejl i katalogfil: entalsform msgstr anvendt sammen med msgid_plural" msgid "Broken catalog file: plural form msgstr used without msgid_plural" msgstr "Fejl i katalogfil: flertalsform msgstr anvendt uden msgid_plural" msgid "" "There were errors when loading the catalog. Some data may be missing or " "corrupted as the result." msgstr "" "Der var fejl ved indlæsning af kataloget. Som følge heraf kan nogle data " "mangle eller være forkerte." #, c-format msgid "Couldn’t load file %s, it is probably corrupted." msgstr "Kunne ikke indlæse fien %s, den er sandsynligvis ødelagt." #, c-format msgid "" "File “%s” is read-only and cannot be saved.\n" "Please save it under different name." msgstr "" "Filen “%s” er skrivebeskyttet og kan ikke gemmes.\n" "Gem den venligst under et andet navn." #, c-format msgid "Couldn’t save file %s." msgstr "Kunne ikke gemme filen %s." msgid "" "There was a problem formatting the file nicely (but it was saved all right)." msgstr "Der er et problem med at formatere filen pænt (men den blev gemt)." #, c-format msgid "" "The catalog couldn’t be saved in “%s” charset as specified in catalog " "settings.\n" "\n" "It was saved in UTF-8 instead and the setting was modified accordingly." msgstr "" "Kataloget kunne ikke gemmes i “%s” tegnsættet som angivet i " "katalogindstillingerne.\n" "\n" "Det blev gemt i UTF-8 i stedet og indstillinger er tilsvarende blevet ændret." msgid "Error saving catalog" msgstr "Fejl ved gemning af katalog" msgid "PO Translation Files" msgstr "PO oversættelsesfiler" msgid "POT Translation Templates" msgstr "POT oversættelses skabeloner" msgid "All Translation Files" msgstr "Alle oversættelsesfiler" msgid "(Use default language)" msgstr "(vælg standardsprog)" msgid "Select your preferred language" msgstr "Vælg dit foretrukne sprog" msgid "Language selection" msgstr "Sprogvalg" msgid "You must restart Poedit for this change to take effect." msgstr "Du skal genstarte Poedit før denne ændring træder i kraft." msgid "Syncing" msgstr "Synkronisering" #. TRANSLATORS: %s is a cloud destination, e.g. "Crowdin" or ftp.wordpress.com etc. #, c-format msgid "Syncing with %s…" msgstr "Synkroniserer med %s…" #. TRANSLATORS: %s is a cloud destination, e.g. "Crowdin" or ftp.wordpress.com etc. #, c-format msgid "Syncing with %s failed." msgstr "Synkronisering med %s mislykkedes." msgid "Syncing error" msgstr "Synkroniseringsfejl" msgid "Downloading translations is disabled in this project." msgstr "Download af oversættelser er deaktiveret i dette projekt." msgid "Not authorized, please sign in again." msgstr "Ikke godkendt, log venligst ind igen." msgid "" "Crowdin is an online localization management platform and collaborative " "translation tool. Poedit can seamlessly sync PO files managed at Crowdin." msgstr "" "Crowdin er en online lokaliseringhåndterings platform og et kollaborativt " "oversættelsesværktøj. Poedit kan uden problemer synkronisere PO-filer der " "bliver håndteret på Crowdin." msgid "Sign In" msgstr "Log ind" msgid "Sign in" msgstr "Log ind" msgid "Sign Out" msgstr "Log ud" msgid "Sign out" msgstr "Log ud" msgid "Waiting for authentication…" msgstr "Venter på godkendelse…" msgid "Updating user information…" msgstr "Opdaterer brugeroplysninger…" msgid "Signed in as:" msgstr "Logget ind som:" msgid "Learn More About Crowdin" msgstr "Lær mere om Crowdin" msgid "Learn more about Crowdin" msgstr "Lær mere om Crowdin" msgid "Sign in to Crowdin" msgstr "Log ind på Crowdin" msgid "Open Crowdin translation" msgstr "Åbn Crowdin-oversættelse" msgid "Project:" msgstr "Projekt:" msgid "Language:" msgstr "Sprog:" msgid "File:" msgstr "Fil:" msgid "No translation projects listed in your Crowdin account." msgstr "Ingen oversættelsesprojekter i din Crowdin-konto." msgid "This project has no files that can be translated in Poedit." msgstr "Dette projekt har ikke nogen filer der kan oversættes i Poedit." msgid "This file can only be edited in Crowdin’s web interface." msgstr "Denne fil kan kun redigeres i Crowdin’s webgrænseflade." msgid "Downloading latest translations…" msgstr "Downloader seneste oversættelser…" msgid "Syncing with Crowdin failed." msgstr "Synkronisering med Crowdin mislykkedes." msgid "Crowdin error" msgstr "Crowdin fejl" msgid "Uploading translations…" msgstr "Uploader oversættelser…" msgid "&Copy" msgstr "&Kopiér" msgid "Learn more" msgstr "Find ud af mere" msgid "Learn More" msgstr "Lær mere" msgid "&Help" msgstr "&Hjælp" msgid "MO files can’t be directly edited in Poedit." msgstr "MO filer kan ikke redigeres direkte i Poedit." msgid "Error opening file" msgstr "Fejl ved åbning af filen" msgid "" "Please open and edit the corresponding PO file instead. When you save it, " "the MO file will be updated as well." msgstr "" "Åben og rediger venligst den tilhørende PO fil i stedet. Når du gemmer den, " "vil MO filen også blive opdateret." msgid "don’t delete temporary files (for debugging)" msgstr "slet ikke midlertidige filer (til fejlfinding)" msgid "handle a poedit:// URI" msgstr "håndtér en poedit://-URI" msgid "go to item at given line number" msgstr "gå til emnet på et givent linjenummer" msgid "Failed to communicate with Poedit process." msgstr "Der kunne ikke kommunikere med Poedit-processen." #, c-format msgid "Unhandled exception occurred: %s" msgstr "Uhåndteret undtagelse opstod: %s" msgid "Open catalog" msgstr "Åbn katalog" #, c-format msgid "File “%s” doesn’t exist." msgstr "Filen \"%s\" eksisterer ikke." msgid "Poedit is an easy to use translations editor." msgstr "Poedit er et værktøj som gør det nemt at oversætte." msgid "Catalogs Manager" msgstr "Kataloghåndtering" msgid "Check for Updates…" msgstr "Søg efter opdateringer…" msgid "&Edit" msgstr "&Redigér" msgid "Undo" msgstr "Fortryd" msgid "Redo" msgstr "Gentag" msgid "Paste and Match Style" msgstr "Indsæt og tilpas stil" msgid "Delete" msgstr "Slet" msgid "Spelling and Grammar" msgstr "Stavning og grammatik" msgid "Show Spelling and Grammar" msgstr "Vis stavning og grammatik" msgid "Check Document Now" msgstr "Tjek dokument nu" msgid "Check Spelling While Typing" msgstr "Tjek stavning mens du skriver" msgid "Check Grammar With Spelling" msgstr "Kontrollér grammatik med stavning" msgid "Correct Spelling Automatically" msgstr "Kontroller automatisk stavning" msgid "Substitutions" msgstr "Erstatninger" msgid "Show Substitutions" msgstr "Vis erstatninger" msgid "Smart Copy/Paste" msgstr "Smart kopier/indsæt" msgid "Smart Quotes" msgstr "Smarte citater" msgid "Smart Dashes" msgstr "Smarte bindestreger" msgid "Smart Links" msgstr "Smarte links" msgid "Text Replacement" msgstr "Tekst erstatning" msgid "Transformations" msgstr "Transformeringer" msgid "Make Upper Case" msgstr "Lav til store bogstaver" msgid "Make Lower Case" msgstr "Lav til små bogstaver" msgid "Capitalize" msgstr "Stort begyndelsesbogstav" msgid "Speech" msgstr "Tale" msgid "Start Speaking" msgstr "Start tale" msgid "Stop Speaking" msgstr "Stop tale" msgid "&View" msgstr "&Vis" msgid "Enter Full Screen" msgstr "Fuldskærm" msgid "Window" msgstr "Vindue" msgid "Minimize" msgstr "Minimer" msgid "Zoom" msgstr "Zoom" msgid "Bring All to Front" msgstr "Bring alle frem" #. TRANSLATORS:File kind displayed in Finder/Explorer msgid "PO Translation" msgstr "PO Oversættelse" msgid "The file cannot be opened." msgstr "Filen kan ikke åbnes." msgid "Invalid file" msgstr "Ugyldig fil" msgid "" "The file may be either corrupted or in a format not recognized by Poedit." msgstr "" "Filen kan enten være korrupt eller i et format som ikke genkendes af Poedit." msgid "You can’t drop more than one file on Poedit window." msgstr "Du kan ikke trække mere end én fil til Poedit vinduet." #, c-format msgid "File “%s” is not a message catalog." msgstr "Filen \"%s\" er ikke et meddelelseskatalog." msgid "Poedit" msgstr "Poedit" msgid "&File" msgstr "&Fil" msgid "&Go" msgstr "&Gå til" #. TRANSLATORS: %s is language name in its basic form (as you #. would see e.g. in a list of supported languages). You may need #. to rephrase it, e.g. to an equivalent of "for language %s". #, c-format msgid "" "Spellchecking is disabled, because the dictionary for %s isn’t installed." msgstr "Stavekontrol er deaktiveret, da ordbogen for %s ikke er installeret." msgid "Install" msgstr "Installer" msgid "Catalog modified. Do you want to save changes?" msgstr "Katalog ændret. Vil du gemme ændringerne?" msgid "Save changes" msgstr "Gem ændringer" msgid "Your changes will be lost if you don’t save them." msgstr "Dine ændringer vil gå tabt hvis du ikke gemmer dem." msgid "Save" msgstr "Gem" msgid "Don’t save" msgstr "Gem ikke" msgid "Don’t Save" msgstr "Gem ikke" msgid "Save as…" msgstr "Gem som…" msgid "Compile to…" msgstr "Kompilér til…" msgid "Compiled Translation Files" msgstr "Kompilerede oversættelsesfiler" msgid "Export as…" msgstr "Eksporter som…" msgid "HTML Files" msgstr "HTML filer" msgid "Open catalog template" msgstr "Åbn katalogskabelon" msgid "Source code not available." msgstr "Kildekoden er ikke tilgængelig." msgid "Updating failed" msgstr "Opdatering mislykkedes" msgid "" "Translations couldn’t be updated from the source code, because no code was " "found in the location specified in the catalog’s Properties." msgstr "" "Oversættelserne kunne ikke opdateres fra kildekoden, da der ikke blev fundet " "nogen kode på det sted som er angivet i katalogets egenskaber." msgid "Entries in the catalog are probably incorrect." msgstr "Poster i kataloget er sandsynligvis ukorrekt." msgid "Updating the catalog failed. Click on 'Details >>' for details." msgstr "" "Opdatering af katalog fejlede. Klik på \"Detaljer >>\" for yderligere " "oplysninger." #, c-format msgid "%d issue with the translation found." msgid_plural "%d issues with the translation found." msgstr[0] "Fandt %d problem med oversættelsen." msgstr[1] "Fandt %d problemer med oversættelsen." msgid "Validation results" msgstr "Valideringsresultatet" msgid "" "Entries with errors were marked in red in the list. Details of the error " "will be shown when you select such an entry." msgstr "" "Emner med fejl er markeret med rødt i listen. Detaljer om fejlen vil blive " "vist når du vælger sådan et emne." msgid "The file was saved safely." msgstr "Filen blev gemt sikkert." msgid "" "The file was saved safely and compiled into the MO format, but it will " "probably not work correctly." msgstr "" "Filen blev gemt korrekt og kompileret til MO-formatet, men den vil " "sandsynligvis ikke virke korrekt." msgid "" "The file was saved safely, but it cannot be compiled into the MO format and " "used." msgstr "" "Denne blev gemt korrekt, men den kan ikke kompileres til MO-formatet og " "bruges." msgid "" "The file was compiled into the MO format, but it will probably not work " "correctly." msgstr "" "Filen blev kompileret til MO format, men vil sandsynligvis ikke virke " "korrekt." msgid "The file cannot be compiled into the MO format and used." msgstr "Filen kan ikke kompileres til MO format og bruges." msgid "No problems with the translation found." msgstr "Der blev ikke fundet nogle problemer med oversættelsen." #, c-format msgid "The translation is ready for use, but %d entry is not translated yet." msgid_plural "" "The translation is ready for use, but %d entries are not translated yet." msgstr[0] "Oversættelsen er klar til brug, men %d emner er endnu ikke oversat." msgstr[1] "Oversættelsen er klar til brug, men %d emne er endnu ikke oversat." msgid "The translation is ready for use." msgstr "Oversættelsen er klar til brug." #, c-format msgid "Poedit automatically fixed invalid content in the file “%s”." msgstr "Poedit rettede automatisk ugyldigt indhold i filen \"%s\"." msgid "" "The file contained duplicate items, which is not allowed in PO files and " "would prevent the file from being used. Poedit fixed the issue, but you " "should review translations of any items marked as needing work and correct " "them if necessary." msgstr "" "Filen indeholdt duplikerede emner som ikke er tilladt i PO filer, og som " "kunne forhindre filen i at blive brugt. Poedit rettede fejlen, men du bør " "gennemgå oversættelser af alle emner der er markeret som \"skal efterses\" " "og rette dem om nødvendigt." msgid "Language of the translation isn’t set." msgstr "Oversættelsessproget er ikke angivet." msgid "Set Language" msgstr "Indstil sprog" msgid "Set language" msgstr "Angiv sprog" #. TRANSLATORS: This is shown underneath "Language of the translation isn't set (or ...is the same as source language)." msgid "" "Suggestions are not available if the translation language is not set " "correctly. Other features, such as plural forms, may be affected as well." msgstr "" "Forslag er ikke tilgængelige hvis oversættelsessproget ikke er angivet " "korrekt. Andre ting, såsom flertalsformer kan også blive påvirket." msgid "Language of the translation is the same as source language." msgstr "Oversættelsessproget er det samme som kildesproget." msgid "Fix Language" msgstr "Ret sprog" msgid "Fix language" msgstr "Ret sprog" msgid "" "This catalog has entries with plural forms, but doesn’t have Plural-Forms " "header configured." msgstr "" "Dette katalog har emner med flertalsformer, men har ikke headeren Plural-" "Forms konfigureret." msgid "" "Entries in this catalog have different plural forms count from what " "catalog’s Plural-Forms header says" msgstr "" "Teksterne i dette katalog har et andet antal flertalsformer end hvad " "katalogets Plural-Forms-header siger" msgid "Required header Plural-Forms is missing." msgstr "Det påkrævede filhovede Plural-Forms mangler." #, c-format msgid "Syntax error in Plural-Forms header (\"%s\")." msgstr "Syntaksfejl i Plural-Forms-filhovede (\"%s\")." msgid "Fix the Header" msgstr "Ret headeren" msgid "Fix the header" msgstr "Ret filhovedet" #. TRANSLATORS: %s is language name in its basic form (as you #. would see e.g. in a list of supported languages). You may need #. to rephrase it, e.g. to an equivalent of "for language %s". #, c-format msgid "Plural forms expression used by the catalog is unusual for %s." msgstr "" "Flertals formular udtrykket der bruges af kataloget er usædvanligt for %s." #. TRANSLATORS: A verb, shown as action button with ""Plural forms expression used by the catalog is unusual for %s.")" msgid "Review" msgstr "Korrektur" #, c-format msgid "Error loading message catalog file “%s”." msgstr "Fejl ved indlæsning af meddelelseskatalogfilen \"%s\"." #, c-format msgid "Translated: %d of %d (%d %%)" msgstr "Oversat: %d af %d (%d %%)" #, c-format msgid "Remaining: %d" msgstr "Mangler: %d" #, c-format msgid "%d error" msgid_plural "%d errors" msgstr[0] "%d fejl" msgstr[1] "%d fejl" #, c-format msgid "%d entry" msgid_plural "%d entries" msgstr[0] "%d post" msgstr[1] "%d poster" msgid " (unsaved)" msgstr " (ikke gemt)" msgid " (modified)" msgstr " (ændret)" #, c-format msgid "Failed to update translation memory: %s" msgstr "Kunne ikke opdatere oversættelseshukommelsen: %s" msgid "Purge deleted translations" msgstr "Tøm slettede oversættelser" msgid "Do you want to remove all translations that are no longer used?" msgstr "Vil du slette alle oversættelser som ikke længere er i brug?" msgid "" "If you continue with purging, all translations marked as deleted will be " "permanently removed. You will have to translate them again if they are added " "back in the future." msgstr "" "Hvis du fortsætter vil alle oversættelser som er markeret som slettede, " "blive fjernet permanent. Du vil skulle oversætte dem igen hvis de senere " "igen bliver brugt." msgid "Keep" msgstr "Behold" msgid "Purge" msgstr "Tøm" msgid "Copy from source text" msgstr "Kopiér fra kildetekst" msgid "Copy from Source Text" msgstr "Kopiér fra kildetekst" #. TRANSLATORS: This is the key shortcut used in menus on Windows, some languages call them differently #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Ctrl+" msgstr "Ctrl+" msgid "Clear translation" msgstr "Ryd oversættelse" msgid "Clear Translation" msgstr "Ryd oversættelse" msgid "Edit comment" msgstr "Redigér kommentar" msgid "Edit Comment" msgstr "Redigér kommentar" msgid "References:" msgstr "Referencer:" msgid "&Bookmarks" msgstr "&Bogmærker" #. TRANSLATORS: This is the key shortcut used in menus on Windows, some languages call them differently #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Alt+" msgstr "Alt+" #, c-format msgid "Set bookmark %i" msgstr "Indstil bogmærket %i" #, c-format msgid "Go to bookmark %i" msgstr "Gå til bogmærket %i" #, c-format msgid "Set Bookmark %i" msgstr "Indstil bogmærket %i" #, c-format msgid "Go to Bookmark %i" msgstr "Gå til bogmærket %i" msgid "Hide Sidebar" msgstr "Skjul sidebjælke" msgid "Show Sidebar" msgstr "Vis sidebjælke" msgid "Hide Status Bar" msgstr "Skjul statuslinje" msgid "Show Status Bar" msgstr "Vis statuslinje" msgid "Source text:" msgstr "Oprindelig tekst:" msgid "Singular:" msgstr "Ental:" msgid "Plural:" msgstr "Flertal:" msgid "Translation:" msgstr "Oversættelse:" msgid "Pre-translated" msgstr "Præ-oversat" msgid "Needs Work" msgstr "Skal efterses" #. TRANSLATORS: This indicates that the string's translation isn't final #. and has known problems. For example, it might be machine translated or #. fuzzy matched from an older string. The translation should be short and #. convey this. If it's problematic to translate it, "Needs review" is #. acceptable substitute, but note that the meaning is subtly different: #. "needs review" implies that somebody else should review the string after #. I am done with it (i.e. consider it good), while "needs work" implies I #. need to return to it and finish the translation. msgid "Needs work" msgstr "Skal efterses" msgid "" "POT files are only templates and don’t contain any translations themselves.\n" "To make a translation, create a new PO file based on the template." msgstr "" "POT-filer er kun skabeloner som ikke indeholder nogen oversættelser.\n" "For at oprette en oversættelse skal du oprette en ny PO-fil fra skabelonen." msgid "Create New Translation" msgstr "Opret ny oversættelse" msgid "Create new translation" msgstr "Opret ny oversættelse" msgid "Everything" msgstr "Alt" #, c-format msgid "Form %i" msgstr "Form %i" msgid "Singular" msgstr "Ental" msgid "Zero" msgstr "Nul" msgid "One" msgstr "En" msgid "Two" msgstr "To" msgid "Plural" msgstr "Flertal" msgid "Other" msgstr "Andet" #, c-format msgid "%s Format" msgstr "%s format" #. TRANSLATORS: %s is replaced with language name, e.g. "PHP" or "C", so "PHP Format" etc." #, c-format msgid "%s format" msgstr "%s format" msgid "Source text" msgstr "Oprindelig tekst" #, c-format msgid "Translation — %s" msgstr "Oversættelse — %s" msgid "ID" msgstr "ID" #, c-format msgid "Source text — %s" msgstr "Kildetekst — %s" msgid "unknown language" msgstr "ukendt sprog" #, c-format msgid "Failed command: %s" msgstr "Fejlet kommando: %s" msgid "Failed to merge gettext catalogs." msgstr "Der opstod en fejl ved sammenfletning af gettext-kataloger." msgid "Source file" msgstr "Kildefil" msgid "Source file occurrence:" msgstr "Kildefilsforekomst:" msgid "Open in Editor" msgstr "Åben i editor" msgid "Open in editor" msgstr "Åben i editor" msgid "No references for the selected item." msgstr "Ingen referencer for at det valgte emne." #, c-format msgid "Error opening file %s!" msgstr "Fejl ved åbning af filen %s!" msgid "Find" msgstr "Find" msgid "Replace" msgstr "Erstat" #. TRANSLATORS: Expander in Find window for additional options (case sensitive etc.) msgid "Options" msgstr "Indstillinger" msgid "Ignore case" msgstr "Ignorer forskelle på store og små bogstaver" msgid "Wrap around" msgstr "Ombrydning" msgid "Whole words only" msgstr "Kun hele ord" msgid "Find in source texts" msgstr "Find i kildetekster" msgid "Find in translations" msgstr "Find i oversættelser" msgid "Find in comments" msgstr "Find i kommentarer" msgid "Close" msgstr "Luk" msgid "Replace &All" msgstr "Erstat &alle" msgid "Replace &all" msgstr "Erstat &alle" msgid "&Replace" msgstr "&Erstat" msgid "< &Previous" msgstr "< &Forrige" msgid "&Next >" msgstr "&Næste >" msgid "String to find" msgstr "Streng som skal findes" msgid "Replacement string" msgstr "Erstatningsstreng" #, c-format msgid "Cannot execute program: %s" msgstr "Kan ikke udføre program: %s" msgid "Language Code or Name (e.g. en_GB)" msgstr "Sprogkode eller navn (f.eks. da_DK)" msgid "Translation Language" msgstr "Oversættelsessprog" msgid "Language of the translation:" msgstr "Sprog for oversættelsen:" msgid "Poedit - Catalogs manager" msgstr "Poedit - Kataloghåndtering" msgid "Catalog" msgstr "Katalog" msgid "Total" msgstr "I alt" msgid "Untrans" msgstr "Ikke-oversat" msgid "Errors" msgstr "Fejl" msgid "Last modified" msgstr "Sidst ændret" msgid "Select directory" msgstr "Vælg mappe" msgid "Directories:" msgstr "Mapper:" msgid "" msgstr "" msgid "Do you want to delete the project?" msgstr "Vil du slette projektet?" msgid "Confirmation" msgstr "Bekræftelse" msgid "" "Do you really want to do mass update of\n" "all catalogs in this project?" msgstr "" "Vil du virkelig masseopdatere alle\n" "kataloger i dette projekt?" msgid "Information about the translator" msgstr "Information om oversætteren" msgid "Name:" msgstr "Navn:" msgid "Your Name" msgstr "Dit navn" msgid "Email:" msgstr "E-mail:" msgid "your_email@example.com" msgstr "din_email@example.com" msgid "" "Your name and email address are only used to set the Last-Translator header " "of GNU gettext files." msgstr "" "Dit navn og din e-mailadresse bruges kun til at udfylde Last-Translator " "headeren i GNU gettext filer." msgid "Editing" msgstr "Redigerer" msgid "Automatically compile MO file when saving" msgstr "Kompiler automatisk MO fil når der gemmes" msgid "Show summary after catalog update" msgstr "Vis resumé efter opdatering af katalog" msgid "Check spelling" msgstr "Stavekontrol" msgid "Always change focus to text input field" msgstr "Skift altid fokus til indtastningsfeltet for tekst" msgid "" "Never let the list of strings take focus. If enabled, you must use Ctrl-" "arrows for keyboard navigation but you can also type text immediately, " "without having to press Tab to change focus." msgstr "" "Fokusér aldrig på listen med strenge. Hvis det er slået til, skal du bruge " "Ctrl-piletaster for at navigere med tastaturet, men du kan til gengæld " "indtaste tekst uden at skulle bruge tabulator tasten for at flytte fokus." msgid "Appearance" msgstr "Udseende" msgid "Use custom list font:" msgstr "Brug tilpasset skrifttype til lister:" msgid "Use custom text fields font:" msgstr "Brug tilpasset skrifttype til tekstfelter:" msgid "Change UI language" msgstr "Skift brugerfladens sprog" #. TRANSLATORS: This is a note appended to "Check spelling" when running on older Windows versions msgid "(requires Windows 8 or newer)" msgstr "(kræver Windows 8 eller nyere)" msgid "General" msgstr "Generelt" msgid "Use translation memory" msgstr "Brug oversættelseshukommelse" msgid "Learn From Files…" msgstr "Lær fra filer…" msgid "Learn from files…" msgstr "Lær fra filer…" #. TRANSLATORS: This is a button that deletes everything in the translation memory (i.e. clears/resets it). msgid "Reset" msgstr "Nulstil" #. TRANSLATORS: Followed by "match translations within the file" or "pre-translate from TM" msgid "When updating from sources" msgstr "Ved opdatering fra kilder" #. TRANSLATORS: Preceded by "When updating from sources" msgid "fuzzy match within the file" msgstr "lav uafklaret søgning i filen" #. TRANSLATORS: Preceded by "When updating from sources" msgid "pre-translate from TM" msgstr "præ-oversæt fra TM" msgid "" "Poedit can attempt to fill in new entries from only previous translations in " "the file or from your entire translation memory. Using the TM won’t be very " "effective if it’s near-empty, but it will get better as you add more " "translations to it." msgstr "" "Poedit kan prøve at udfylde nye emner blot ud fra tidligere oversættelser i " "filen, eller fra hele din oversættelseshukommelse. Brug af TM vil ikke være " "så effektiv hvis den er halv-tom, men vil blive bedre når du tilføjer flere " "oversættelser til den." msgid "Stored translations:" msgstr "Gemte oversættelser:" msgid "Database size on disk:" msgstr "Databasestørrelse på disk:" msgid "Select translation files to import" msgstr "Vælg oversættelsesfiler der skal importeres" msgid "Translation Memory" msgstr "Oversættelseshukommelse" msgid "Importing translations…" msgstr "Importerer oversættelser…" msgid "Finalizing…" msgstr "Færdiggører…" msgid "Reset translation memory" msgstr "Nulstil oversættelseshukommelsen" msgid "Are you sure you want to reset the translation memory?" msgstr "Er du sikker på at du ønsker at nulstille oversættelseshukommelsen?" msgid "" "Resetting the translation memory will irrevocably delete all stored " "translations from it. You can’t undo this operation." msgstr "" "Nulstilling af oversættelseshukommelsen vil uigenkaldeligt slette alle gemte " "oversættelser i den. Du kan ikke fortryde denne handling." msgid "Cancel" msgstr "Annullér" #. TRANSLATORS: This is abbreviation of "Translation Memory" used in Preferences on macOS. #. Long text looks weird there, too short (like TM) too, but less so. "General" is about ideal #. length there. msgid "TM" msgstr "TM" msgid "" "Source code extractors are used to find translatable strings in the source " "code files and extract them so that they can be translated." msgstr "" "Kildekode udtrækkerer bruges til at finde oversætbare strenge i kildekode-" "filerne og trækker dem ud så de kan oversættes." msgid "Custom Extractors:" msgstr "Tilpassede udtrækkere:" msgid "Custom extractors:" msgstr "Tilpassede udtrækkere:" msgid "Edit…" msgstr "Rediger…" msgid "GNU gettext" msgstr "GNU gettext" msgid "" "Supports all programming languages recognized by GNU gettext tools (PHP, C/C+" "+, C#, Perl, Python, Java, JavaScript and others)." msgstr "" "Understøtter alle programmeringssprog som kendes af GNU gettext værktøjer " "(PHP, C/C++, C#, Perl, Python, Java, JavaScript og andre)." msgid "Delete extractor" msgstr "Slet udtrækker" #, c-format msgid "Are you sure you want to delete the “%s” extractor?" msgstr "Er du sikker på at du vil slette \"%s\"-udtrækkeren?" msgid "Extractors" msgstr "Udtrækkere" msgid "Accounts" msgstr "Konti" msgid "Automatically check for updates" msgstr "Søg automatisk efter opdateringer" msgid "Include beta versions" msgstr "Medtag betaversioner" msgid "" "Beta versions contain the latest new features and improvements, but may be a " "bit less stable." msgstr "" "Betaversioner indeholder de nyeste funktioner og forbedringer, men kan være " "lidt mindre stabile." msgid "Updates" msgstr "Opdateringer" msgid "" "These settings affect internal formatting of PO files. Adjust them if you " "have specific requirements e.g. because of version control." msgstr "" "Disse indstillinger påvirker den interne formatering af PO filer. Tilpas dem " "hvis du har specielle krav f.eks på grund af versionskontrol." msgid "Line endings:" msgstr "Linjeafslutninger:" msgid "Unix (recommended)" msgstr "Unix (anbefalet)" msgid "Windows" msgstr "Windows" #. TRANSLATORS: Followed by text control for entering number; wraps text at given width msgid "Wrap at:" msgstr "Ombryd ved:" msgid "Preserve formatting of existing files" msgstr "Bevar formatering af eksisterende filer" msgid "Advanced" msgstr "Avanceret" msgid "Pre-translating…" msgstr "Præ-oversætter…" #, c-format msgid "Pre-translated %u string" msgid_plural "Pre-translated %u strings" msgstr[0] "For-oversat %u streng" msgstr[1] "For-oversat %u strenge" #. TRANSLATORS: This is a somewhat common term describing the action where #. you apply the translation memory and/or machine translation to all of the #. strings you're translating as the first step, followed by correcting, #. improving etc., i.e. actually translating the strings. This may be tricky #. to express in other languages as simply as in English, but please try to #. keep it similarly concise. Please try to avoid, if possible, describing it #. as "auto-translation" and similar, because such terminology would mislead #. some users into thinking it's all that needs to be done (spoken from #. experience). "Pre-translate" nicely expresses that it's only the step done #. *before* actual translation. msgid "Pre-translate" msgstr "Præ-oversæt" msgid "Only fill in exact matches" msgstr "Udfyld kun nøjagtige overensstemmelser" msgid "" "By default, inaccurate results are filled in as well and marked as needing " "work. Check this option to only include accurate matches." msgstr "" "Som standard vil unøjagtige resultater også blive udfyldt og markeret som " "\"skal efterses.\" Marker dette punkt for kun at inkludere nøjagtige " "overensstemmelser." msgid "Don’t mark exact matches as needing work" msgstr "Marker ikke nøjagtige overensstemmelser som \"skal efterses\"" msgid "" "Only enable if you trust the quality of your TM. By default, all matches " "from the TM are marked as needing work and should be reviewed before use." msgstr "" "Marker kun hvis du stoler på kvaliteten af din TM. Som standard vil alle " "overensstemmelser fra TM'en være markeret som \"skal efterses\" og bør " "gennemlæses før brug." msgid "" "Pre-translation automatically finds exact or fuzzy matches for untranslated " "strings in the translation memory and fills in their translations." msgstr "" "Præ-oversættelse finder automatisk præcise eller uafklarede ord til u-" "oversatte strenge i oversættelseshukommelsen og udfylder deres oversættelser." #, c-format msgid "%d entry was pre-translated." msgid_plural "%d entries were pre-translated." msgstr[0] "%d emne blev præ-oversat." msgstr[1] "%d emner blev præ-oversat." msgid "" "The translations were marked as needing work, because they may be " "inaccurate. You should review them for correctness." msgstr "" "Oversættelserne blev markeret som \"skal efterses\", da de kan være " "forkerte. Du bør tjekke deres korrekthed." msgid "No entries could be pre-translated." msgstr "Ingen emner kunne præ-oversættes." msgid "" "The TM doesn’t contain any strings similar to the content of this file. It " "is only effective for semi-automatic translations after Poedit learns enough " "from files that you translated manually." msgstr "" "OH indeholder ikke nogen strenge der svarer til indholdet af denne fil. Den " "er kun god til halv-automatiske oversættelser når Poedit har lært nok fra " "filer du har oversat manuelt." msgid "" "Drag and Drop Folders Here\n" "\n" "or use the + button" msgstr "" "Træk og slip mapper her\n" "\n" "eller brug +-knappen" msgid "" "Drag and drop folders here\n" "\n" "or use the + button" msgstr "" "Træk og slip mapper her\n" "\n" "eller brug +-knappen" msgid "Add Folders…" msgstr "Tilføj mapper…" msgid "Add folders…" msgstr "Tilføj mapper…" msgid "Add Files…" msgstr "Tilføj filer…" msgid "Add files…" msgstr "Tilføj filer…" msgid "Add Wildcard…" msgstr "Tilføj wildcard…" msgid "Add wildcard…" msgstr "Tilføj wildcard…" msgid "Paths" msgstr "Stier" msgid "Excluded paths" msgstr "Udelukkede stier" msgid "Advanced extraction settings" msgstr "Avancerede udtræksindstillinger" msgid "Extract notes for translators from:" msgstr "Udtræk noter til oversættere fra:" msgid "Comments prefixed with:" msgstr "Kommentarer som starter med:" msgid "All comments" msgstr "Alle kommentarer" msgid "Additional xgettext flags:" msgstr "Yderligere xgettext flag:" msgid "Additional keywords" msgstr "Yderligere nøgleord" msgid "Name of the project the translation is for" msgstr "Navn på projektet som oversættelsen er til" msgid "Team name and email address or URL" msgstr "Holdnavn og e-mailadresse eller URL" msgid "e.g. nplurals=2; plural=(n > 1);" msgstr "f.eks. nplurals=2; plural=(n != 1);" msgid "UTF-8 (recommended)" msgstr "UTF-8 (anbefalet)" msgid "Please save the file first. This section cannot be edited until then." msgstr "" "Gem venligst filen først. Denne kan sektion kan ikke redigere før det er " "sket." msgid "Not all plural forms are translated." msgstr "Elle alle flertalsformer er oversat." msgid "The translation should start as a sentence." msgstr "Oversættelsen bør starte som en sætning." msgid "The translation should start with a lowercase character." msgstr "Oversættelsen bør starte med et lille tegn." msgid "The translation doesn’t start with a space." msgstr "Oversættelsen starter ikke med et mellemrum." msgid "The translation starts with a space, but the source text doesn’t." msgstr "Oversættelsen starter med et mellemrum, men kildeteksten gør ikke." msgid "The translation is missing a newline at the end." msgstr "Oversættelsen mangler et linjeskift i enden." msgid "The translation ends with a newline, but the source text doesn’t." msgstr "Oversættelsen slutter med et linjeskift, men kildeteksten gør ikke." msgid "The translation is missing a space at the end." msgstr "Oversættelsen mangler et mellemrum i enden." msgid "The translation ends with a space, but the source text doesn’t." msgstr "Oversættelsen slutter med et mellemrum, men kildeteksten gør ikke." #, c-format msgid "The translation should end with “%s”." msgstr "Oversættelsen bør ende med \"%s\"." #, c-format msgid "The translation should not end with “%s”." msgstr "Oversættelsen bør ikke ende med \"%s\"." #, c-format msgid "The translation ends with “%s”, but the source text ends with “%s”." msgstr "Oversættelsen ender med \"%s\", men kildeteksten ender med \"%s\"." msgid "Comment:" msgstr "Kommentar:" msgid "OK" msgstr "OK" msgid "C&lear" msgstr "&Ryd" msgid "Clear the comment" msgstr "Ryd kommentaren" msgid "New" msgstr "Ny" msgid "Create new translations project" msgstr "Opret nyt oversættelsesprojekt" msgid "Edit" msgstr "Redigér" msgid "Edit the project" msgstr "Redigér projektet" msgid "Delete the project" msgstr "Slet projektet" msgid "Update all" msgstr "Opdatér alle" msgid "Update all catalogs in the project" msgstr "Opdatér alle kataloger i projektet" msgid "Edit project" msgstr "Redigér projekt" msgid "Project name:" msgstr "Projektnavn:" msgid "Browse" msgstr "Gennemse" msgid "Add directory to the list" msgstr "Tilføj mappe til listen" msgid "&New…" msgstr "%Ny…" msgid "New from &POT/PO file…" msgstr "Ny fra &POT/PO fil…" msgid "New From &POT/PO File…" msgstr "Ny fra &POT/PO fil…" msgid "&Open…" msgstr "&Åbn…" msgid "Open Recent" msgstr "Åbn nylige" msgid "Open from Crowdin…" msgstr "Åbn fra Crowdin…" msgid "Open From Crowdin…" msgstr "Åbn fra Crowdin…" msgid "&Close" msgstr "&Luk" msgid "&Save" msgstr "&Gem" msgid "Save &as…" msgstr "Gem &som…" msgid "Save &As…" msgstr "Gem &som…" msgid "Compile to MO…" msgstr "Kompilér til MO…" msgid "E&xport as HTML…" msgstr "E&ksporter som HTML…" msgid "Check for updates…" msgstr "Søg efter opdateringer…" msgid "&Preferences…" msgstr "&Indstillinger…" msgid "Catalogs &manager" msgstr "&Kataloghåndtering" msgid "Catalogs &Manager" msgstr "&Kataloghåndtering" msgid "E&xit" msgstr "&Afslut" msgid "Quit" msgstr "Afslut" msgid "Copy from singular" msgstr "Kopiér fra ental" msgid "Copy From Singular" msgstr "Kopiér fra ental" msgid "Translation needs &work" msgstr "Oversættelse skal &efterses" msgid "Translation Needs &Work" msgstr "Oversættelse skal &efterses" msgid "Edit &comment" msgstr "Redigér &kommentar" msgid "Edit &Comment" msgstr "Redigér &kommentar" msgid "Suggestions" msgstr "Forslag" msgid "&Find…" msgstr "&Find…" msgid "Replace…" msgstr "Erstat…" msgid "Find next" msgstr "Find næste" msgid "Find previous" msgstr "Find forrige" msgid "Find and Replace…" msgstr "Find og erstat…" msgid "Find Next" msgstr "Find næste" msgid "Find Previous" msgstr "Find forrige" msgid "&Preferences" msgstr "&Indstillinger" msgid "Display entry &IDs" msgstr "Vis emne &ID'er" msgid "Display Entry &IDs" msgstr "Vis emne &ID'er" msgid "Sort by &file order" msgstr "Sortér efter &filrækkefølge" msgid "Sort by &File Order" msgstr "Sortér efter &filrækkefølge" msgid "Sort by &source" msgstr "Sortér efter &kilde" msgid "Sort by &Source" msgstr "Sortér efter &kilde" msgid "Sort by &translation" msgstr "Sortér efter &oversættelse" msgid "Sort by &Translation" msgstr "Sortér efter &oversættelse" msgid "&Group by context" msgstr "&Grupper efter kontekst" msgid "&Group By Context" msgstr "&Grupper efter kontekst" msgid "Entries with errors first" msgstr "Emner med fejl først" msgid "Entries with Errors First" msgstr "Emner med fejl først" msgid "&Untranslated entries first" msgstr "&Ikke-oversatte poster først" msgid "&Untranslated Entries First" msgstr "&Ikke-oversatte poster først" msgid "&Show references" msgstr "&Vis referencer" msgid "&Show References" msgstr "&Vis referencer" msgid "Show sidebar" msgstr "Vis sidebjælke" msgid "Show status bar" msgstr "Vis statuslinje" msgid "C&atalog" msgstr "K&atalog" msgid "&Update from sources" msgstr "&Opdatér fra kilder" msgid "&Update from Sources" msgstr "&Opdatér fra kilder" msgid "Update from &POT file…" msgstr "Opdatér fra &POT fil…" msgid "Update from &POT File…" msgstr "Opdatér fra &POT-fil…" msgid "Sync with Crowdin" msgstr "Synkronisér med Crowdin" msgid "Pre-&translate…" msgstr "For&oversæt…" msgid "&Purge deleted translations" msgstr "&Tøm slettede oversættelser" msgid "&Purge Deleted Translations" msgstr "&Tøm slettede oversættelser" msgid "&Validate translations" msgstr "&Validér oversættelser" msgid "&Validate Translations" msgstr "&Validér oversættelser" msgid "&Properties…" msgstr "&Egenskaber…" msgid "&Done and next" msgstr "Fæ&rdig og næste" msgid "&Done and Next" msgstr "Fæ&rdig og næste" msgid "&Previous translation" msgstr "&Forrige oversættelse" msgid "&Previous Translation" msgstr "&Forrige oversættelse" msgid "&Next translation" msgstr "&Næste oversættelse" msgid "&Next Translation" msgstr "&Næste oversættelse" msgid "P&revious unfinished" msgstr "F&orrige ufærdige" msgid "P&revious Unfinished" msgstr "F&orrige ufærdige" msgid "Ne&xt unfinished" msgstr "N&æste ufærdige" msgid "Ne&xt Unfinished" msgstr "N&æste ufærdige" msgid "Previous plural form" msgstr "Forrige flertalsform" msgid "Previous Plural Form" msgstr "Forrige flertalsform" msgid "Next plural form" msgstr "Næste flertalsform" msgid "Next Plural Form" msgstr "Næste flertalsform" msgid "&Online help" msgstr "&Onlinehjælp" msgid "&Online Help" msgstr "&Onlinehjælp" msgid "&GNU gettext manual" msgstr "&GNU gettext manual" msgid "&GNU gettext Manual" msgstr "&GNU gettext manual" msgid "&About Poedit" msgstr "&Om Poedit" msgid "&About" msgstr "&Om" msgid "Extractor setup" msgstr "Udtrækker opsætning" msgid "List of extensions separated by semicolons (e.g. *.cpp;*.h):" msgstr "Liste med filendelser, adskilt med semikolon (f.eks. *.cpp, *.h):" msgid "Invocation:" msgstr "Udførsel:" msgid "Command to extract translations:" msgstr "Kommando til at udtrække oversættelser:" msgid "" "This is the command used to launch the extractor.\n" "%o expands to the name of output file, %K to list\n" "of keywords, %F to list of input files,\n" "%C to charset flag (see below)." msgstr "" "Dette er kommandoen der bruges til at afvikle udtrækkeren.\n" "%o bliver til navnet for outputfilen, %K til listen\n" "over nøgleord, %F til listen over inputfiler,\n" "%C til tegnsætflag (se nedenfor)." msgid "An item in keywords list:" msgstr "En post i nøgleordslisten:" msgid "" "This will be attached to the command line once\n" "for each keyword. %k expands to the keyword." msgstr "" "Dette vil blive vedhæftet til kommandolinjen en\n" "gang for hvert nøgleord. %k erstattes med nøgleordet." msgid "An item in input files list:" msgstr "En post i listen over inddata filer:" #, c-format msgid "" "This will be attached to the command line once\n" "for each input file. %f expands to the filename." msgstr "" "Dette vil blive vedhæftet til kommandolinjen en\n" "gang for hver inddatafil. %f erstattes med filnavnet." msgid "Source code charset:" msgstr "Kildekodens tegnsæt:" #, c-format msgid "" "This will be attached to the command line\n" "only if source code charset was given. %c expands to charset value." msgstr "" "Dette vil blive vedhæftet til kommandolinjen, dog kun\n" "hvis kildekodens tegnsæt er givet. %c erstattes med tegnsætværdien." msgid "Catalog properties" msgstr "Egenskaber for katalog" msgid "Project name and version:" msgstr "Projektnavn og version:" msgid "Language team:" msgstr "Sprog team:" msgid "Plural forms:" msgstr "Flertalsformer:" msgid "Use default rules for this language" msgstr "Brug standardregler for dette sprog" msgid "Use custom expression" msgstr "Brug tilpasset udtryk" msgid "Learn about plural forms" msgstr "Lær mere om flertalsformer" msgid "Charset:" msgstr "Tegnsæt:" msgid "Advanced Extraction Settings…" msgstr "Avancerede udtrækningsindstillinger…" msgid "Advanced extraction settings…" msgstr "Avancerede udtrækningsindstillinger…" msgid "Translation Properties" msgstr "Oversættelsesegenskaber" msgid "Translation properties" msgstr "Oversættelsesegenskaber" msgid "Sources Paths" msgstr "Søgestier" msgid "Sources paths" msgstr "Søgestier" msgid "Extract text from source files in the following directories:" msgstr "Udtræk tekst fra kildefiler i følgende mapper:" msgid "Base path:" msgstr "Grundlæggende sti:" msgid "Sources Keywords" msgstr "Nøgleord i kildefil" msgid "Sources keywords" msgstr "Nøgleord i kildefil" msgid "" "Use these keywords (function names) to recognize translatable strings\n" "in source files:" msgstr "" "Brug disse nøgleord (funktionsnavne) til at genkende\n" "oversættelige strenge i kildefiler:" msgid "Also use default keywords for supported languages" msgstr "Brug også standard nøgleord for understøttede sprog" msgid "Learn About Gettext Keywords" msgstr "Lær om Gettext nøgleord" msgid "Learn about gettext keywords" msgstr "Lær om gettext nøgleord" msgid "Update summary" msgstr "Opdatér resumé" msgid "" "These strings were found in the sources but were not in the catalog.\n" "Poedit will add them to the catalog now." msgstr "" "Disse strenge blev fundet i kilderne, men er ikke i kataloget.\n" "Poedit vil nu føje dem til kataloget." msgid "New strings" msgstr "Nye strenge" msgid "" "These strings are no longer in the sources.\n" "Poedit will remove them from the catalog now." msgstr "" "Disse strenge er ikke længere i kilderne.\n" "Poedit vil nu fjerne dem fra kataloget." msgid "Obsolete strings" msgstr "Forældede strenge" msgid "(0 new, 0 obsolete)" msgstr "(0 nye, 0 forældede)" msgid "Open" msgstr "Åbn" msgid "Save catalog" msgstr "Gem katalog" msgid "Validate" msgstr "Validér" msgid "Check for errors in the translation" msgstr "Find fejl i oversættelsen" msgid "Update" msgstr "Opdatér" msgid "Update catalog - synchronize it with sources" msgstr "Opdatér katalog - synkronisér med kilder" msgid "Sidebar" msgstr "Sidebjælke" msgid "Show or hide the sidebar" msgstr "Vis eller skjul sidepanelet" #. TRANSLATORS: "Previous" as in used in the past, now replaced with newer. msgid "Previous source text:" msgstr "Tidligere kildetekst:" msgid "" "The old source text (before it changed during an update) that the now-" "inaccurate translation corresponds to." msgstr "" "Den gamle kildetekst (før den blev ændret ved en opdatering) som den nu " "forkerte oversættelse svarer til." msgid "Notes for translators:" msgstr "Noter til oversættere:" msgid "Add comment" msgstr "Tilføj kommentar" msgid "Add Comment" msgstr "Tilføj kommentar" msgid "Translation suggestions:" msgstr "Oversættelsesforslag:" #. TRANSLATORS: This is shown when no translation suggestions can be found in the TM (Windows). msgid "No matches found" msgstr "Ingen fundet" #. TRANSLATORS: This is shown when no translation suggestions can be found in the TM (macOS, Linux). msgid "No Matches Found" msgstr "Ingen fundet" msgid "This string was found in Poedit’s translation memory." msgstr "Denne streng blev fundet i Poedit's oversættelseshukommelse." msgid "Cannot create temporary directory." msgstr "Kan ikke oprette midlertidig mappe." msgid "Welcome to Poedit" msgstr "Velkommen til Poedit" #. TRANSLATORS: This is version information in about dialog, "%s" will be #. version number when used #, c-format msgid "Version %s" msgstr "Version %s" msgid "Edit a Translation" msgstr "Redigér en oversættelse" msgid "Edit a translation" msgstr "Redigér en oversættelse" msgid "Open an existing PO file and edit the translation." msgstr "Åbn en eksisterende PO-fil og redigér oversættelsen." msgid "" "Take an existing PO file or POT template and create a new translation from " "it." msgstr "" "Tag en eksisterende PO-fil eller POT-skabelon og opret en ny oversættelse " "fra den." msgid "Collaborate on a Translation with Others" msgstr "Samarbejd med andre om en oversættelse" msgid "Collaborate on a translation with others" msgstr "Samarbejd med andre om en oversættelse" msgid "" "Download a file from Crowdin project, translate and sync your changes back." msgstr "" "Download en fil fra et Crowdin-projekt, oversæt og synkronisér dine " "ændringer tilbage." msgid "What is Crowdin?" msgstr "Hvad er Crowdin?" msgid "There are no translations. That’s unusual." msgstr "Der er ikke nogen oversættelser. Det er usædvanligt." msgid "" "Translatable entries aren’t added manually in the Gettext system, but are " "automatically extracted\n" "from source code. This way, they stay up to date and accurate.\n" "Translators typically use PO template files (POTs) prepared for them by the " "developer." msgstr "" "Oversættelige emner tilføjes ikke manuelt i Gettext-systemet, men udtrækkes " "automatisk\n" "fra kildekoden. På denne måde er de altid opdateret og korrekte.\n" "Oversættere bruger typisk PO-skabelonfiler (POT) som er lavet til dem af " "udvikleren." msgid "(Learn more about GNU gettext)" msgstr "(lær mere om GNU gettext)" msgid "The simplest way to fill this catalog is to update it from a POT:" msgstr "" "Den nemmeste måde at fylde dette katalog, er ved at opdatere det fra en POT:" msgid "Update from POT" msgstr "Opdatér fra POT" msgid "Take translatable strings from an existing POT template." msgstr "Tag oversætbare strenge fra en eksisterende POT-skabelon." msgid "" "You can also extract translatable strings directly from the source code:" msgstr "Du kan også udtrække oversætbare strenge direkte fra kildekoden:" msgid "Extract from sources" msgstr "Udtræk fra kilder" msgid "Configure source code extraction in Properties." msgstr "Konfigurér kildekode-udtrækning i Egenskaber." msgid "Sync" msgstr "Synk" msgid "Synchronize the translation with Crowdin" msgstr "Synkronisér oversættelsen med Crowdin" #. TRANSLATORS: This is titlebar of about dialog, "%s" is application name #. ("Poedit" here, but please use "%s") #, c-format msgid "About %s" msgstr "Om %s" #. TRANSLATORS: Title of the preferences window on Windows and Linux. "%s" is replaced with "Poedit" when running. #, c-format msgid "%s Preferences" msgstr "%s indstillinger" #. TRANSLATORS: macOS item in app menu msgid "Services" msgstr "Tjenester" #. TRANSLATORS: macOS item in app menu, %s is replaced with "Poedit" #, c-format msgid "Hide %s" msgstr "Skjul %s" #. TRANSLATORS: macOS item in app menu msgid "Hide Others" msgstr "Skjul øvrige" #. TRANSLATORS: macOS item in app menu msgid "Show All" msgstr "Vis alle" #. TRANSLATORS: macOS item in app menu, %s is replaced with "Poedit" #, c-format msgid "Quit %s" msgstr "Afslut %s" #. TRANSLATORS: macOS item in app menu msgid "Preferences…" msgstr "Indstillinger…" msgid "Preferences..." msgstr "Indstillinger..." #. TRANSLATORS: Title of a category in Windows task menu (right-click icon in taskbar) msgid "Recent" msgstr "Seneste" #. TRANSLATORS: Title of a category in Windows task menu (right-click icon in taskbar) msgid "Frequent" msgstr "Mest brugte" msgid "&Apply" msgstr "&Anvend" msgid "Apply" msgstr "Anvend" msgid "&Back" msgstr "Til&bage" msgid "Back" msgstr "Tilbage" msgid "&Cancel" msgstr "Annullér" msgid "&Clear" msgstr "&Ryd" msgid "Clear" msgstr "Ryd" msgid "Copy" msgstr "Kopier" msgid "Cu&t" msgstr "Kli&p" msgid "Cut" msgstr "Klip" msgid "&Delete" msgstr "&Slet" msgid "&Quit" msgstr "&Afslut" msgid "File" msgstr "Fil" msgid "Help" msgstr "Hjælp" msgid "&New" msgstr "&Ny" msgid "&No" msgstr "&Nej" msgid "No" msgstr "Nej" msgid "&OK" msgstr "&Ok" msgid "Open…" msgstr "Åbn…" msgid "&Open..." msgstr "&Åbn..." msgid "Open..." msgstr "&Åbn..." msgid "&Paste" msgstr "&Sæt ind" msgid "Paste" msgstr "Indsæt" msgid "Preferences" msgstr "Indstillinger" msgid "&Redo" msgstr "&Gentag" msgid "Refresh" msgstr "Genopfrisk" msgid "&Save as" msgstr "&Gem som" msgid "Save as" msgstr "Gem som" msgid "Select &All" msgstr "Vælg &alle" msgid "Select All" msgstr "Vælg alle" msgid "&Undo" msgstr "&Fortryd" msgid "&Yes" msgstr "&Ja" msgid "Yes" msgstr "Ja" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Shift+" msgstr "Shift+" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Enter" msgstr "Enter" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Up" msgstr "Op" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Down" msgstr "Ned" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Left" msgstr "Venstre" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Right" msgstr "Højre" #. TRANSLATORS: Keyboard shortcut, must correspond to translation of "Ctrl+" msgid "ctrl" msgstr "ctrl" #. TRANSLATORS: Keyboard shortcut, must correspond to translation of "Alt+" msgid "alt" msgstr "alt" #. TRANSLATORS: Keyboard shortcut, must correspond to translation of "Shift+" msgid "shift" msgstr "shift" poedit-2.0.6/locales/ko.po0000664000372000037200000015404613230132077012327 00000000000000msgid "" msgstr "" "Project-Id-Version: poedit\n" "Report-Msgid-Bugs-To: help@poedit.net\n" "POT-Creation-Date: 2017-12-05 15:52+0100\n" "PO-Revision-Date: 2017-09-21 11:38-0400\n" "Last-Translator: vslavik \n" "Language-Team: Korean\n" "Language: ko_KR\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" "X-Generator: crowdin.com\n" "X-Crowdin-Project: poedit\n" "X-Crowdin-Language: ko\n" "X-Crowdin-File: /locales/poedit.pot\n" msgid "Hide this notification message" msgstr "이 알림 메시지 숨김" msgid "Don’t Show Again" msgstr "다시 표시하지 않기" msgid "Don’t show again" msgstr "다시 표시하지 않기" #, c-format msgid "(New: %i, obsolete: %i)" msgstr "(새 문자열: %i개, 오래된 문자열: %i개)" msgid "Updating catalog" msgstr "카탈로그 업데이트 중" msgid "Collecting source files…" msgstr "소스 파일 수집 중…" msgid "Extracting translatable strings…" msgstr "번역 가능한 문자열 추출 중…" msgid "Failed to load extracted catalog." msgstr "추출한 카탈로그를 불러오지 못했습니다." msgid "Merging differences…" msgstr "차이점 병합 중…" #, c-format msgid "“%s” is not a valid POT file." msgstr "'%s' 파일은 정상적인 POT 파일이 아닙니다." #, c-format msgid "%i line of file “%s” was not loaded correctly." msgid_plural "%i lines of file “%s” were not loaded correctly." msgstr[0] "\"%2$s\" 파일의 %1$i번째 줄을 제대로 불러오지 못했습니다." #, c-format msgid "Line %d of file “%s” is corrupted (not valid %s data)." msgstr "" "\"%2$s\" 파일의 %1$d번째 줄이 손상되었습니다. (%3$s 데이터가 유효하지 않음)" #, c-format msgid "Malformed header: “%s”" msgstr "잘못된 헤더: \"%s\"" msgid "" "Broken catalog file: singular form msgstr used together with msgid_plural" msgstr "카탈로그 파일 오류: msgid_plural을 사용한 단수 형식의 msgstr" msgid "Broken catalog file: plural form msgstr used without msgid_plural" msgstr "카탈로그 파일 오류: msgid_plural 없이 사용한 복수 형식의 msgstr" msgid "" "There were errors when loading the catalog. Some data may be missing or " "corrupted as the result." msgstr "" "카탈로그를 읽어들일 때 오류가 발생했습니다. 일부가 누락되거나 손상될 수 있습" "니다." #, c-format msgid "Couldn’t load file %s, it is probably corrupted." msgstr "%s 파일을 불러오지 못했습니다. 손상되었을 수 있습니다." #, c-format msgid "" "File “%s” is read-only and cannot be saved.\n" "Please save it under different name." msgstr "" "\"%s\" 파일은 읽기 전용이며 저장할 수 없습니다.\n" "다른 이름으로 저장하세요." #, c-format msgid "Couldn’t save file %s." msgstr "\"%s\" 파일을 저장할 수 없습니다." msgid "" "There was a problem formatting the file nicely (but it was saved all right)." msgstr "파일 형식을 붙이는 중 문제가 발생했으나 저장은 성공했습니다." #, c-format msgid "" "The catalog couldn’t be saved in “%s” charset as specified in catalog " "settings.\n" "\n" "It was saved in UTF-8 instead and the setting was modified accordingly." msgstr "" "카탈로그에서 지정한 설정인 \"%s\" 문자 집합으로 카탈로그를 저장할 수 없습니" "다.\n" "\n" "파일이 UTF-8로 저장되었으며 설정 또한 이에 맞춰 수정되었습니다." msgid "Error saving catalog" msgstr "카탈로그 저장 오류" msgid "PO Translation Files" msgstr "PO 번역 파일" msgid "POT Translation Templates" msgstr "POT 번역 양식" msgid "All Translation Files" msgstr "모든 번역 파일" msgid "(Use default language)" msgstr "(기본 언어 사용)" msgid "Select your preferred language" msgstr "선호하는 언어 선택" msgid "Language selection" msgstr "언어 선택" msgid "You must restart Poedit for this change to take effect." msgstr "바뀐 내용을 반영하려면 Poedit을 다시 시작해야 합니다." msgid "Syncing" msgstr "동기화 중" #. TRANSLATORS: %s is a cloud destination, e.g. "Crowdin" or ftp.wordpress.com etc. #, c-format msgid "Syncing with %s…" msgstr "%s와(과) 동기화 중…" #. TRANSLATORS: %s is a cloud destination, e.g. "Crowdin" or ftp.wordpress.com etc. #, c-format msgid "Syncing with %s failed." msgstr "%s 동기화에 실패했습니다." msgid "Syncing error" msgstr "동기화 오류" msgid "Downloading translations is disabled in this project." msgstr "이 프로젝트에서는 번역을 다운로드할 수 없습니다." msgid "Not authorized, please sign in again." msgstr "인증되지 않았습니다. 다시 로그인하십시오." msgid "" "Crowdin is an online localization management platform and collaborative " "translation tool. Poedit can seamlessly sync PO files managed at Crowdin." msgstr "" "Crowdin은 온라인 번역 관리 플랫폼이며 협력을 기반으로 한 번역 도구입니다. " "Poedit은 Crowdin에서 PO 파일을 감쪽같이 동기화할 수 있습니다." msgid "Sign In" msgstr "로그인" msgid "Sign in" msgstr "로그인" msgid "Sign Out" msgstr "로그아웃" msgid "Sign out" msgstr "로그아웃" msgid "Waiting for authentication…" msgstr "인증 대기 중…" msgid "Updating user information…" msgstr "사용자 정보 업데이트 중…" msgid "Signed in as:" msgstr "다음 사용자로 로그인 함:" msgid "Learn More About Crowdin" msgstr "Crowdin 더 알아보기" msgid "Learn more about Crowdin" msgstr "Crowdin 더 알아보기" msgid "Sign in to Crowdin" msgstr "Crowdin에 로그인" msgid "Open Crowdin translation" msgstr "Crowdin 번역 열기" msgid "Project:" msgstr "프로젝트:" msgid "Language:" msgstr "언어:" msgid "File:" msgstr "파일:" msgid "No translation projects listed in your Crowdin account." msgstr "Crowdin 계정에 번역 프로젝트가 없습니다." msgid "This project has no files that can be translated in Poedit." msgstr "이 프로젝트에는 Poedit로 편집할 수 있는 파일이 없습니다." msgid "This file can only be edited in Crowdin’s web interface." msgstr "이 파일은 Crowdin 웹 인터페이스에서만 편집할 수 있습니다." msgid "Downloading latest translations…" msgstr "최신 번역 다운로드 중…" msgid "Syncing with Crowdin failed." msgstr "Crowdin 동기화에 실패했습니다." msgid "Crowdin error" msgstr "Crowdin 오류" msgid "Uploading translations…" msgstr "번역 업데이트 중…" msgid "&Copy" msgstr "복사(&C)" msgid "Learn more" msgstr "더 알아보기" msgid "Learn More" msgstr "더 알아보기" msgid "&Help" msgstr "도움말(&H)" msgid "MO files can’t be directly edited in Poedit." msgstr "MO 파일은 Poedit에서 직접 편집할 수 없습니다." msgid "Error opening file" msgstr "파일 여는 중 오류" msgid "" "Please open and edit the corresponding PO file instead. When you save it, " "the MO file will be updated as well." msgstr "" "대신 관련 PO 파일을 열어 편집하세요. 저장할 때 MO 파일도 함께 업데이트됩니다." msgid "don’t delete temporary files (for debugging)" msgstr "임시 파일을 삭제하지 마세요 (디버깅용)" msgid "handle a poedit:// URI" msgstr "poedit:// URI 처리" msgid "go to item at given line number" msgstr "입력한 줄 수에 해당되는 항목으로 이동" msgid "Failed to communicate with Poedit process." msgstr "Poedit 프로세스와의 통신에 실패했습니다." #, c-format msgid "Unhandled exception occurred: %s" msgstr "처리하지 못한 오류 발생: %s" msgid "Open catalog" msgstr "카탈로그 열기" #, c-format msgid "File “%s” doesn’t exist." msgstr "\"%s\" 파일이 존재하지 않습니다." msgid "Poedit is an easy to use translations editor." msgstr "Poedit는 사용하기 쉬운 번역 편집기입니다." msgid "Catalogs Manager" msgstr "카탈로그 관리자" msgid "Check for Updates…" msgstr "업데이트 확인…" msgid "&Edit" msgstr "편집(&E)" msgid "Undo" msgstr "실행 취소" msgid "Redo" msgstr "재실행" msgid "Paste and Match Style" msgstr "붙여넣기 및 일치 비교 방식" msgid "Delete" msgstr "삭제" msgid "Spelling and Grammar" msgstr "철자 및 문법" msgid "Show Spelling and Grammar" msgstr "철자 및 문법 표시" msgid "Check Document Now" msgstr "지금 문서 검사" msgid "Check Spelling While Typing" msgstr "입력하는 동안 철자 검사" msgid "Check Grammar With Spelling" msgstr "철자 및 문법 검사" msgid "Correct Spelling Automatically" msgstr "자동으로 철자 교정" msgid "Substitutions" msgstr "대체 항목" msgid "Show Substitutions" msgstr "대체 항목 표시" msgid "Smart Copy/Paste" msgstr "스마트 복사/붙여넣기" msgid "Smart Quotes" msgstr "스마트 인용" msgid "Smart Dashes" msgstr "스마트 대시 입력" msgid "Smart Links" msgstr "스마트 링크" msgid "Text Replacement" msgstr "텍스트 바꾸기" msgid "Transformations" msgstr "변환" msgid "Make Upper Case" msgstr "대문자로 만들기" msgid "Make Lower Case" msgstr "소문자로 만들기" msgid "Capitalize" msgstr "대문자화" msgid "Speech" msgstr "말하기" msgid "Start Speaking" msgstr "말하기 시작" msgid "Stop Speaking" msgstr "말하기 중지" msgid "&View" msgstr "보기(&V)" msgid "Enter Full Screen" msgstr "전체 화면상태 진입" msgid "Window" msgstr "창" msgid "Minimize" msgstr "최소화" msgid "Zoom" msgstr "확대" msgid "Bring All to Front" msgstr "모두 앞으로" #. TRANSLATORS:File kind displayed in Finder/Explorer msgid "PO Translation" msgstr "PO 번역" msgid "The file cannot be opened." msgstr "파일을 열 수 없습니다." msgid "Invalid file" msgstr "잘못된 파일" msgid "" "The file may be either corrupted or in a format not recognized by Poedit." msgstr "파일이 손상되었거나 Poedit에서 인식할 수 없는 형식입니다." msgid "You can’t drop more than one file on Poedit window." msgstr "Poedit 윈도우에 하나를 초과하는 항목을 드롭할 수 없습니다." #, c-format msgid "File “%s” is not a message catalog." msgstr "\"%s\" 파일은 메시지 카탈로그가 아닙니다." msgid "Poedit" msgstr "Poedit" msgid "&File" msgstr "파일(&F)" msgid "&Go" msgstr "이동(&G)" #. TRANSLATORS: %s is language name in its basic form (as you #. would see e.g. in a list of supported languages). You may need #. to rephrase it, e.g. to an equivalent of "for language %s". #, c-format msgid "" "Spellchecking is disabled, because the dictionary for %s isn’t installed." msgstr "%s 언어 사전을 설치하지 않아 철자 검사를 비활성화했습니다." msgid "Install" msgstr "설치" msgid "Catalog modified. Do you want to save changes?" msgstr "카탈로그를 수정했습니다. 바뀐 내용을 저장하시겠습니까?" msgid "Save changes" msgstr "변경 사항 저장" msgid "Your changes will be lost if you don’t save them." msgstr "저장하지 않을 경우 변경 사항은 손실됩니다." msgid "Save" msgstr "저장" msgid "Don’t save" msgstr "저장하지 않음" msgid "Don’t Save" msgstr "저장하지 않음" msgid "Save as…" msgstr "다음 이름으로 저장…" msgid "Compile to…" msgstr "다음으로 컴파일…" msgid "Compiled Translation Files" msgstr "컴파일한 번역 파일" msgid "Export as…" msgstr "다음으로 내보내기…" msgid "HTML Files" msgstr "HTML 파일" msgid "Open catalog template" msgstr "카탈로그 양식 열기" msgid "Source code not available." msgstr "소스 코드가 존재하지 않습니다." msgid "Updating failed" msgstr "업데이트 실패" msgid "" "Translations couldn’t be updated from the source code, because no code was " "found in the location specified in the catalog’s Properties." msgstr "" "카탈로그 속성에서 지정한 위치에 코드가 없어 소스 코드로부터 번역을 업데이트" "할 수 없습니다." msgid "Entries in the catalog are probably incorrect." msgstr "카탈로그의 항목이 잘못된 것 같습니다." msgid "Updating the catalog failed. Click on 'Details >>' for details." msgstr "" "카탈로그 업데이트에 실패했습니다. 자세히 보려면 '자세히 >>'를 누르십시오." #, c-format msgid "%d issue with the translation found." msgid_plural "%d issues with the translation found." msgstr[0] "번역에서 %d개의 문제점을 찾았습니다." msgid "Validation results" msgstr "검증 결과" msgid "" "Entries with errors were marked in red in the list. Details of the error " "will be shown when you select such an entry." msgstr "" "오류가 있는 항목은 붉은색으로 표시했습니다. 자세한 오류 내용은 각각의 항목을 " "선택했을 때 나타납니다." msgid "The file was saved safely." msgstr "파일을 안전하게 저장했습니다." msgid "" "The file was saved safely and compiled into the MO format, but it will " "probably not work correctly." msgstr "" "파일을 안전하게 저장하고 MO 형식으로 컴파일했지만 올바르게 작동하지 않을 수 " "있습니다." msgid "" "The file was saved safely, but it cannot be compiled into the MO format and " "used." msgstr "파일을 안전하게 저장했지만 MO 형식으로 컴파일할 수 없었습니다." msgid "" "The file was compiled into the MO format, but it will probably not work " "correctly." msgstr "MO 형식으로 파일을 컴파일했지만 올바르게 작동하지 않을 수 있습니다." msgid "The file cannot be compiled into the MO format and used." msgstr "MO 파일로 컴파일할 수 없습니다." msgid "No problems with the translation found." msgstr "번역에 문제가 없습니다." #, c-format msgid "The translation is ready for use, but %d entry is not translated yet." msgid_plural "" "The translation is ready for use, but %d entries are not translated yet." msgstr[0] "" "번역을 사용할 준비가 되었지만, 아직 %d개의 항목을 번역하지 않았습니다." msgid "The translation is ready for use." msgstr "번역을 사용할 준비가 되었습니다." #, c-format msgid "Poedit automatically fixed invalid content in the file “%s”." msgstr "Poedit가 “%s” 파일의 잘못된 내용을 자동으로 수정했습니다." msgid "" "The file contained duplicate items, which is not allowed in PO files and " "would prevent the file from being used. Poedit fixed the issue, but you " "should review translations of any items marked as needing work and correct " "them if necessary." msgstr "" "PO 파일에서 허용되지 않는 중복 항목이 있어 파일 활용에 문제가 생길 수 있습니" "다. Poedit이 해당 문제를 해결했지만 필요한 경우 작업할 항목을 표시해둔 부분" "의 번역을 검토해야 합니다." msgid "Language of the translation isn’t set." msgstr "번역 언어가 설정되지 않았습니다." msgid "Set Language" msgstr "언어 설정" msgid "Set language" msgstr "언어 설정" #. TRANSLATORS: This is shown underneath "Language of the translation isn't set (or ...is the same as source language)." msgid "" "Suggestions are not available if the translation language is not set " "correctly. Other features, such as plural forms, may be affected as well." msgstr "" "번역 언어를 올바르게 선택하지 않으면 제안 기능을 사용할 수 없습니다. 서수 형" "식 같은 기능도 마찬가지로 영향을 받을 수 있습니다." msgid "Language of the translation is the same as source language." msgstr "번역 언어가 원본 언어와 같습니다." msgid "Fix Language" msgstr "언어 수정" msgid "Fix language" msgstr "언어 수정" msgid "" "This catalog has entries with plural forms, but doesn’t have Plural-Forms " "header configured." msgstr "" "이 카탈로그는 서수 형식 항목이 포함되어 있으나 서수 형식 헤더가 구성되어 있" "지 않습니다." msgid "" "Entries in this catalog have different plural forms count from what " "catalog’s Plural-Forms header says" msgstr "" "이 카탈로그에는 Plural-Forms 헤더에서 지정한 숫자와 다른 서수형 형식 개수를 " "지닌 항목이 있습니다" msgid "Required header Plural-Forms is missing." msgstr "필요한 Plural-Forms 헤더가 빠졌습니다." #, c-format msgid "Syntax error in Plural-Forms header (\"%s\")." msgstr "Plural-Forms 헤더에 문법 오류가 있습니다. (\"%s\")" msgid "Fix the Header" msgstr "헤더 수정" msgid "Fix the header" msgstr "헤더 수정" #. TRANSLATORS: %s is language name in its basic form (as you #. would see e.g. in a list of supported languages). You may need #. to rephrase it, e.g. to an equivalent of "for language %s". #, c-format msgid "Plural forms expression used by the catalog is unusual for %s." msgstr "" "카탈로그에서 사용하는 %s 언어에 대한 서수 형식 표현식은 일반적인 표현식이 아" "닙니다." #. TRANSLATORS: A verb, shown as action button with ""Plural forms expression used by the catalog is unusual for %s.")" msgid "Review" msgstr "검토" #, c-format msgid "Error loading message catalog file “%s”." msgstr "\"%s\" 파일의 메시지 카탈로그를 불러오는 중 오류가 발생했습니다." #, c-format msgid "Translated: %d of %d (%d %%)" msgstr "번역됨: 문장 %2$d개 중 %1$d개 (%3$d %%)" #, c-format msgid "Remaining: %d" msgstr "남음: %d개" #, c-format msgid "%d error" msgid_plural "%d errors" msgstr[0] "오류 %d개" #, c-format msgid "%d entry" msgid_plural "%d entries" msgstr[0] "항목 %d개" msgid " (unsaved)" msgstr " (저장하지 않음)" msgid " (modified)" msgstr " (수정함)" #, c-format msgid "Failed to update translation memory: %s" msgstr "번역 기억 장소 업데이트에 실패했습니다: %s" msgid "Purge deleted translations" msgstr "삭제한 번역을 완전히 제거" msgid "Do you want to remove all translations that are no longer used?" msgstr "더 이상 사용하지 않는 모든 번역을 제거하시겠습니까?" msgid "" "If you continue with purging, all translations marked as deleted will be " "permanently removed. You will have to translate them again if they are added " "back in the future." msgstr "" "제거를 진행하면 삭제한 것으로 표시한 모든 번역이 완전히 제거됩니다. 해당 문자" "열이 도로 추가되면 다시 번역해야 합니다." msgid "Keep" msgstr "그대로 유지" msgid "Purge" msgstr "제거" msgid "Copy from source text" msgstr "소스 텍스트에서 복사" msgid "Copy from Source Text" msgstr "소스 텍스트에서 복사" #. TRANSLATORS: This is the key shortcut used in menus on Windows, some languages call them differently #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Ctrl+" msgstr "Ctrl+" msgid "Clear translation" msgstr "번역 지우기" msgid "Clear Translation" msgstr "번역 지우기" msgid "Edit comment" msgstr "주석 편집" msgid "Edit Comment" msgstr "주석 편집" msgid "References:" msgstr "참조:" msgid "&Bookmarks" msgstr "책갈피(&B)" #. TRANSLATORS: This is the key shortcut used in menus on Windows, some languages call them differently #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Alt+" msgstr "Alt+" #, c-format msgid "Set bookmark %i" msgstr "책갈피 %i번으로 설정" #, c-format msgid "Go to bookmark %i" msgstr "책갈피 %i번으로 이동" #, c-format msgid "Set Bookmark %i" msgstr "책갈피 %i번으로 설정" #, c-format msgid "Go to Bookmark %i" msgstr "책갈피 %i번으로 이동" msgid "Hide Sidebar" msgstr "사이드바 숨김" msgid "Show Sidebar" msgstr "사이드바 표시" msgid "Hide Status Bar" msgstr "상태 표시줄 숨기기" msgid "Show Status Bar" msgstr "상태 표시줄 표시" msgid "Source text:" msgstr "원본 텍스트:" msgid "Singular:" msgstr "단수:" msgid "Plural:" msgstr "복수:" msgid "Translation:" msgstr "번역:" msgid "Pre-translated" msgstr "사전 번역함" msgid "Needs Work" msgstr "작업 필요" #. TRANSLATORS: This indicates that the string's translation isn't final #. and has known problems. For example, it might be machine translated or #. fuzzy matched from an older string. The translation should be short and #. convey this. If it's problematic to translate it, "Needs review" is #. acceptable substitute, but note that the meaning is subtly different: #. "needs review" implies that somebody else should review the string after #. I am done with it (i.e. consider it good), while "needs work" implies I #. need to return to it and finish the translation. msgid "Needs work" msgstr "작업 필요" msgid "" "POT files are only templates and don’t contain any translations themselves.\n" "To make a translation, create a new PO file based on the template." msgstr "" "POT 파일은 양식일 뿐이며 어떤 번역 내용도 들어있지 않습니다.\n" "번역하려면 이 양식을 기반으로 새 PO 파일을 만드십시오." msgid "Create New Translation" msgstr "새 번역 만들기" msgid "Create new translation" msgstr "새 번역 만들기" msgid "Everything" msgstr "모두" #, c-format msgid "Form %i" msgstr "%i번 양식" msgid "Singular" msgstr "단수" msgid "Zero" msgstr "영" msgid "One" msgstr "하나" msgid "Two" msgstr "둘" msgid "Plural" msgstr "복수" msgid "Other" msgstr "기타" #, c-format msgid "%s Format" msgstr "%s Format" #. TRANSLATORS: %s is replaced with language name, e.g. "PHP" or "C", so "PHP Format" etc." #, c-format msgid "%s format" msgstr "%s 형식" msgid "Source text" msgstr "원본 텍스트" #, c-format msgid "Translation — %s" msgstr "번역 — %s" msgid "ID" msgstr "ID" #, c-format msgid "Source text — %s" msgstr "원본 텍스트 — %s" msgid "unknown language" msgstr "알 수 없는 언어" #, c-format msgid "Failed command: %s" msgstr "오류 발생: %s" msgid "Failed to merge gettext catalogs." msgstr "gettext 카탈로그 병합에 실패했습니다." msgid "Source file" msgstr "원본 파일" msgid "Source file occurrence:" msgstr "원본 파일 발견 횟수:" msgid "Open in Editor" msgstr "편집기에서 열기" msgid "Open in editor" msgstr "편집기에서 열기" msgid "No references for the selected item." msgstr "선택한 항목의 참조가 없습니다." #, c-format msgid "Error opening file %s!" msgstr "%s 파일을 여는 중 오류 발생!" msgid "Find" msgstr "찾기" msgid "Replace" msgstr "바꾸기" #. TRANSLATORS: Expander in Find window for additional options (case sensitive etc.) msgid "Options" msgstr "설정" msgid "Ignore case" msgstr "대소문자 무시" msgid "Wrap around" msgstr "자동 줄 바꾸기" msgid "Whole words only" msgstr "단어 단위로 검색" msgid "Find in source texts" msgstr "원본 문자열에서 찾기" msgid "Find in translations" msgstr "번역에서 찾기" msgid "Find in comments" msgstr "주석에서 찾기" msgid "Close" msgstr "닫기" msgid "Replace &All" msgstr "모두 바꾸기(&A)" msgid "Replace &all" msgstr "모두 바꾸기(&A)" msgid "&Replace" msgstr "바꾸기(&R)" msgid "< &Previous" msgstr "< 이전(&P)" msgid "&Next >" msgstr "다음(&N) >" msgid "String to find" msgstr "찾을 문자열" msgid "Replacement string" msgstr "바꿀 문자열" #, c-format msgid "Cannot execute program: %s" msgstr "프로그램을 실행할 수 없습니다: %s" msgid "Language Code or Name (e.g. en_GB)" msgstr "언어 코드 또는 이름(예 en_GB)" msgid "Translation Language" msgstr "번역 언어" msgid "Language of the translation:" msgstr "번역 언어:" msgid "Poedit - Catalogs manager" msgstr "Poedit - 카탈로그 관리자" msgid "Catalog" msgstr "카탈로그" msgid "Total" msgstr "전체" msgid "Untrans" msgstr "미번역" msgid "Errors" msgstr "오류" msgid "Last modified" msgstr "최종 편집" msgid "Select directory" msgstr "디렉터리 선택" msgid "Directories:" msgstr "디렉터리:" msgid "" msgstr "<이름 없음>" msgid "Do you want to delete the project?" msgstr "프로젝트를 삭제하시겠습니까?" msgid "Confirmation" msgstr "확인" msgid "" "Do you really want to do mass update of\n" "all catalogs in this project?" msgstr "" "정말로 이 프로젝트의 모든 카탈로그를\n" "통째로 업데이트 하시겠습니까?" msgid "Information about the translator" msgstr "번역자 정보" msgid "Name:" msgstr "이름:" msgid "Your Name" msgstr "이름" msgid "Email:" msgstr "이메일:" msgid "your_email@example.com" msgstr "your_email@example.com" msgid "" "Your name and email address are only used to set the Last-Translator header " "of GNU gettext files." msgstr "" "이름 및 이메일 주소는 GNU gettext 파일의 Last-Translator 헤더를 설정할 때만 " "사용됩니다." msgid "Editing" msgstr "편집 중" msgid "Automatically compile MO file when saving" msgstr "저장할 때 MO 파일 자동 컴파일" msgid "Show summary after catalog update" msgstr "카탈로그 업데이트 후 요약 정보 보기" msgid "Check spelling" msgstr "철자 검사" msgid "Always change focus to text input field" msgstr "항상 포커스를 입력 창으로 옮김" msgid "" "Never let the list of strings take focus. If enabled, you must use Ctrl-" "arrows for keyboard navigation but you can also type text immediately, " "without having to press Tab to change focus." msgstr "" "문자열 목록에 포커스가 가지 않게 합니다. 이 상태에서는 키보드 상의 Ctrl-화살" "표를 눌러 이동한 후 문자열을 편집해야 합니다. 탭 키를 누르실 필요는 없습니다." msgid "Appearance" msgstr "모양새" msgid "Use custom list font:" msgstr "목록에 사용자 지정 글꼴 사용:" msgid "Use custom text fields font:" msgstr "텍스트 입력 창에 사용자 지정 글꼴 사용:" msgid "Change UI language" msgstr "사용자 언어 바꾸기" #. TRANSLATORS: This is a note appended to "Check spelling" when running on older Windows versions msgid "(requires Windows 8 or newer)" msgstr "(Windows 8 이상 필요)" msgid "General" msgstr "일반" msgid "Use translation memory" msgstr "번역 기억 장소 사용" msgid "Learn From Files…" msgstr "파일에서 체득…" msgid "Learn from files…" msgstr "파일에서 체득…" #. TRANSLATORS: This is a button that deletes everything in the translation memory (i.e. clears/resets it). msgid "Reset" msgstr "초기화" #. TRANSLATORS: Followed by "match translations within the file" or "pre-translate from TM" msgid "When updating from sources" msgstr "원본 업데이트 방식" #. TRANSLATORS: Preceded by "When updating from sources" msgid "fuzzy match within the file" msgstr "파일내 퍼지 일치" #. TRANSLATORS: Preceded by "When updating from sources" msgid "pre-translate from TM" msgstr "번역 기억 장소의 사전 번역" msgid "" "Poedit can attempt to fill in new entries from only previous translations in " "the file or from your entire translation memory. Using the TM won’t be very " "effective if it’s near-empty, but it will get better as you add more " "translations to it." msgstr "" "Poedit은 해당 파일의 이전 번역만을 활용하거나 보유한 번역 기억 장소 전체를 활" "용하여 새 항목 채우기를 시도할 수 있습니다. 번역 기억 장소가 거의 비어 있을 " "경우 효율적이지는 않지만, 번역을 더 많이 저장하면 좋은 결과를 얻을 수 있습니" "다." msgid "Stored translations:" msgstr "저장한 번역:" msgid "Database size on disk:" msgstr "디스크의 데이터베이스 크기:" msgid "Select translation files to import" msgstr "가져올 번역 파일을 선택하세요" msgid "Translation Memory" msgstr "번역 기억 장소(TM)" msgid "Importing translations…" msgstr "번역 가져오는 중…" msgid "Finalizing…" msgstr "마무리 중…" msgid "Reset translation memory" msgstr "번역 기억장소 초기화" msgid "Are you sure you want to reset the translation memory?" msgstr "번역 기억 장소를 초기화하시겠습니까?" msgid "" "Resetting the translation memory will irrevocably delete all stored " "translations from it. You can’t undo this operation." msgstr "" "번역 기억 장소를 초기화하면 저장된 모든 번역이 완전히 삭제됩니다. 이 동작은 " "취소할 수 없습니다." msgid "Cancel" msgstr "취소" #. TRANSLATORS: This is abbreviation of "Translation Memory" used in Preferences on macOS. #. Long text looks weird there, too short (like TM) too, but less so. "General" is about ideal #. length there. msgid "TM" msgstr "TM" msgid "" "Source code extractors are used to find translatable strings in the source " "code files and extract them so that they can be translated." msgstr "" "소스 코드 추출 프로그램은 소스 코드 파일에서 번역할 수 있는 문자열을 찾고 추" "출하여 번역할 수 있게 합니다." msgid "Custom Extractors:" msgstr "사용자 지정 추출 프로그램:" msgid "Custom extractors:" msgstr "사용자 지정 추출 프로그램:" msgid "Edit…" msgstr "수정…" msgid "GNU gettext" msgstr "GNU gettext" msgid "" "Supports all programming languages recognized by GNU gettext tools (PHP, C/C+" "+, C#, Perl, Python, Java, JavaScript and others)." msgstr "" "GNU gettext 도구에서 인식하는 모든 프로그래밍 언어(PHP, C/C++, C#, Perl, " "Python, Java, JavaScript 등)를 지원합니다." msgid "Delete extractor" msgstr "추출 프로그램 삭제" #, c-format msgid "Are you sure you want to delete the “%s” extractor?" msgstr "정말로 “%s” 추출 프로그램을 삭제하시겠습니까?" msgid "Extractors" msgstr "추출 프로그램" msgid "Accounts" msgstr "계정" msgid "Automatically check for updates" msgstr "업데이트 자동 확인" msgid "Include beta versions" msgstr "베타 버전 포함" msgid "" "Beta versions contain the latest new features and improvements, but may be a " "bit less stable." msgstr "베타 버전에는 최신 기능과 개선 사항이 있지만, 덜 안정적일 수 있습니다." msgid "Updates" msgstr "업데이트" msgid "" "These settings affect internal formatting of PO files. Adjust them if you " "have specific requirements e.g. because of version control." msgstr "" "이 설정은 PO 파일 내부 형식에 영향을 줍니다. 버전 관리 등의 특별한 필요성이 " "있다면 값을 설정하십시오." msgid "Line endings:" msgstr "행 마무리 문자:" msgid "Unix (recommended)" msgstr "Unix (추천)" msgid "Windows" msgstr "윈도우" #. TRANSLATORS: Followed by text control for entering number; wraps text at given width msgid "Wrap at:" msgstr "줄 바꿈 위치:" msgid "Preserve formatting of existing files" msgstr "기존 파일 서식 유지" msgid "Advanced" msgstr "고급" msgid "Pre-translating…" msgstr "사전 번역 중…" #, c-format msgid "Pre-translated %u string" msgid_plural "Pre-translated %u strings" msgstr[0] "사전 번역한 문자열 %u개" #. TRANSLATORS: This is a somewhat common term describing the action where #. you apply the translation memory and/or machine translation to all of the #. strings you're translating as the first step, followed by correcting, #. improving etc., i.e. actually translating the strings. This may be tricky #. to express in other languages as simply as in English, but please try to #. keep it similarly concise. Please try to avoid, if possible, describing it #. as "auto-translation" and similar, because such terminology would mislead #. some users into thinking it's all that needs to be done (spoken from #. experience). "Pre-translate" nicely expresses that it's only the step done #. *before* actual translation. msgid "Pre-translate" msgstr "사전 번역" msgid "Only fill in exact matches" msgstr "정확하게 일치하는 내용만 채우기" msgid "" "By default, inaccurate results are filled in as well and marked as needing " "work. Check this option to only include accurate matches." msgstr "" "기본 설정으로, 있는 그대로의 부정확한 결과로 채우며 작업 필요로 표시합니다. " "정확하게 일치하는 내용만 포함하려면 이 설정을 켜세요." msgid "Don’t mark exact matches as needing work" msgstr "정확하게 일치하는 내용은 작업 필요로 표시하지 않기" msgid "" "Only enable if you trust the quality of your TM. By default, all matches " "from the TM are marked as needing work and should be reviewed before use." msgstr "" "기본 설정으로는 번역 기억 장소에서 가져온 모든 일치 항목은 작업 필요 항목으" "로 표시하여 활용 전에 검토해야 합니다. 번역 기억 장소 품질을 신뢰하는 경우에" "만 이 설정을 켜세요." msgid "" "Pre-translation automatically finds exact or fuzzy matches for untranslated " "strings in the translation memory and fills in their translations." msgstr "" "사전 번역은 번역 기억 장소에서 번역하지 않은 문자열과 정확하거나 모호하게 일" "치하는 번역을 자동으로 찾아 번역 내용을 채웁니다." #, c-format msgid "%d entry was pre-translated." msgid_plural "%d entries were pre-translated." msgstr[0] "항목 %d개를 사전 번역했습니다." msgid "" "The translations were marked as needing work, because they may be " "inaccurate. You should review them for correctness." msgstr "" "부정확할지도 모르는 번역을 '작업 필요'로 표시했습니다. 정확성 여부를 검토하시" "는 것이 좋습니다." msgid "No entries could be pre-translated." msgstr "사전 번역할 수 있는 항목이 없습니다." msgid "" "The TM doesn’t contain any strings similar to the content of this file. It " "is only effective for semi-automatic translations after Poedit learns enough " "from files that you translated manually." msgstr "" "번역 기억 장소에 이 파일의 내용과 유사한 문자열이 없습니다. Poedit이 수동으" "로 번역한 파일에서 충분히 학습되어야 반자동 번역을 제대로 활용할 수 있습니다." msgid "" "Drag and Drop Folders Here\n" "\n" "or use the + button" msgstr "" "여기에 폴더를 끌어 놓거나,\n" "\n" "+ 단추를 사용하세요" msgid "" "Drag and drop folders here\n" "\n" "or use the + button" msgstr "" "여기에 폴더를 끌어 놓거나,\n" "\n" "+ 단추를 사용하세요" msgid "Add Folders…" msgstr "폴더 추가…" msgid "Add folders…" msgstr "폴더 추가…" msgid "Add Files…" msgstr "파일 추가…" msgid "Add files…" msgstr "파일 추가…" msgid "Add Wildcard…" msgstr "와일드카드 추가…" msgid "Add wildcard…" msgstr "와일드카드 추가…" msgid "Paths" msgstr "경로" msgid "Excluded paths" msgstr "제외 경로" msgid "Advanced extraction settings" msgstr "고급 추출 설정" msgid "Extract notes for translators from:" msgstr "번역 참고 주석 추출 대상:" msgid "Comments prefixed with:" msgstr "다음 접두부를 붙인 주석:" msgid "All comments" msgstr "모든 주석" msgid "Additional xgettext flags:" msgstr "xgettext 추가 플래그:" msgid "Additional keywords" msgstr "추가 키워드" msgid "Name of the project the translation is for" msgstr "번역 프로젝트 이름" msgid "Team name and email address or URL" msgstr "팀 이름과 이메일 주소 또는 URL" msgid "e.g. nplurals=2; plural=(n > 1);" msgstr "예: nplurals=2; plural=(n > 1);" msgid "UTF-8 (recommended)" msgstr "UTF-8 (추천)" msgid "Please save the file first. This section cannot be edited until then." msgstr "" "먼저 파일을 저장하세요. 저장하기 전까지는 이 구역을 편집할 수 없습니다." msgid "Not all plural forms are translated." msgstr "모든 서수 형식이 번역되지 않았습니다." msgid "The translation should start as a sentence." msgstr "번역문은 문장으로 시작되어야 합니다." msgid "The translation should start with a lowercase character." msgstr "번역문은 소문자로 시작되어야 합니다." msgid "The translation doesn’t start with a space." msgstr "번역문은 공백으로 시작하지 않습니다." msgid "The translation starts with a space, but the source text doesn’t." msgstr "번역문은 공백으로 시작되나 원문은 공백으로 시작하지 않습니다." msgid "The translation is missing a newline at the end." msgstr "번역문의 끝에 줄 바꿈이 없습니다." msgid "The translation ends with a newline, but the source text doesn’t." msgstr "번역문의 끝은 줄 바꿈이 되나 원문은 줄 바꿈이 되지 않습니다." msgid "The translation is missing a space at the end." msgstr "번역문의 끝에 공백이 없습니다." msgid "The translation ends with a space, but the source text doesn’t." msgstr "번역문의 긑에 공백이 있지만 원문은 공백이 없습니다." #, c-format msgid "The translation should end with “%s”." msgstr "번역문은 \"%s\"로 시작되어야 합니다." #, c-format msgid "The translation should not end with “%s”." msgstr "번역문은 \"%s\"로 끝나지 말아야 합니다." #, c-format msgid "The translation ends with “%s”, but the source text ends with “%s”." msgstr "번역문은 \"%s\"로 끝나나 원문은 \"%s\"로 끝나지 않습니다." msgid "Comment:" msgstr "주석:" msgid "OK" msgstr "확인" msgid "C&lear" msgstr "지우기(&L)" msgid "Clear the comment" msgstr "주석 지우기" msgid "New" msgstr "새 파일" msgid "Create new translations project" msgstr "새 번역 프로젝트 만들기" msgid "Edit" msgstr "편집" msgid "Edit the project" msgstr "프로젝트 편집" msgid "Delete the project" msgstr "프로젝트 삭제" msgid "Update all" msgstr "모두 업데이트" msgid "Update all catalogs in the project" msgstr "이 프로젝트의 모든 카탈로그 업데이트" msgid "Edit project" msgstr "프로젝트 편집" msgid "Project name:" msgstr "프로젝트 이름:" msgid "Browse" msgstr "찾아보기" msgid "Add directory to the list" msgstr "디렉터리를 목록에 추가" msgid "&New…" msgstr "새 항목(%N)…" msgid "New from &POT/PO file…" msgstr "POT/PO 파일에서 새 항목 생성(&P)…" msgid "New From &POT/PO File…" msgstr "POT/PO 파일에서 새 항목 생성(&P)…" msgid "&Open…" msgstr "열기(&O)…" msgid "Open Recent" msgstr "최근 파일 열기" msgid "Open from Crowdin…" msgstr "Crowdin에서 열기…" msgid "Open From Crowdin…" msgstr "Crowdin에서 열기…" msgid "&Close" msgstr "닫기(&C)" msgid "&Save" msgstr "저장(&S)" msgid "Save &as…" msgstr "다른 이름으로 저장(&A)…" msgid "Save &As…" msgstr "다른 이름으로 저장(&A)…" msgid "Compile to MO…" msgstr "MO로 컴파일…" msgid "E&xport as HTML…" msgstr "HTML로 내보내기(&X)…" msgid "Check for updates…" msgstr "업데이트 확인…" msgid "&Preferences…" msgstr "설정(&P)…" msgid "Catalogs &manager" msgstr "카탈로그 관리자(&M)" msgid "Catalogs &Manager" msgstr "카탈로그 관리자(&M)" msgid "E&xit" msgstr "나가기(&X)" msgid "Quit" msgstr "종료" msgid "Copy from singular" msgstr "단수 표현 복사" msgid "Copy From Singular" msgstr "단수 표현 복사" msgid "Translation needs &work" msgstr "작업이 필요한 번역(&W)" msgid "Translation Needs &Work" msgstr "작업이 필요한 번역(&W)" msgid "Edit &comment" msgstr "주석 편집(&C)" msgid "Edit &Comment" msgstr "주석 편집(&C)" msgid "Suggestions" msgstr "제안" msgid "&Find…" msgstr "찾기(&F)…" msgid "Replace…" msgstr "바꾸기…" msgid "Find next" msgstr "다음 찾기" msgid "Find previous" msgstr "이전 찾기" msgid "Find and Replace…" msgstr "찾고 바꾸기…" msgid "Find Next" msgstr "다음 찾기" msgid "Find Previous" msgstr "이전 찾기" msgid "&Preferences" msgstr "설정(&P)" msgid "Display entry &IDs" msgstr "항목 ID 표시(&I)" msgid "Display Entry &IDs" msgstr "항목 ID 표시(&I)" msgid "Sort by &file order" msgstr "파일순 정렬(&F)" msgid "Sort by &File Order" msgstr "파일순 정렬(&F)" msgid "Sort by &source" msgstr "원본순 정렬(&S)" msgid "Sort by &Source" msgstr "원본순 정렬(&S)" msgid "Sort by &translation" msgstr "번역순 정렬(&T)" msgid "Sort by &Translation" msgstr "번역순 정렬(&T)" msgid "&Group by context" msgstr "상태별 모음(&G)" msgid "&Group By Context" msgstr "상태별 모음(&G)" msgid "Entries with errors first" msgstr "오류 항목을 우선 표시" msgid "Entries with Errors First" msgstr "오류 항목을 우선 표시" msgid "&Untranslated entries first" msgstr "번역하지 않은 항목 먼저(&U)" msgid "&Untranslated Entries First" msgstr "번역하지 않은 항목 먼저(&U)" msgid "&Show references" msgstr "참조 보기(&S)" msgid "&Show References" msgstr "참조 보기(&S)" msgid "Show sidebar" msgstr "가장자리 표시줄 표시" msgid "Show status bar" msgstr "상태 표시줄 표시" msgid "C&atalog" msgstr "카탈로그(&A)" msgid "&Update from sources" msgstr "원본으로 업데이트(&U)" msgid "&Update from Sources" msgstr "원본으로 업데이트(&U)" msgid "Update from &POT file…" msgstr "POT 파일에서 업데이트(&P)…" msgid "Update from &POT File…" msgstr "POT 파일에서 업데이트(&P)…" msgid "Sync with Crowdin" msgstr "Crowdin 동기화" msgid "Pre-&translate…" msgstr "사전 번역(&T)…" msgid "&Purge deleted translations" msgstr "삭제한 번역을 완전히 제거(&P)" msgid "&Purge Deleted Translations" msgstr "삭제한 번역을 완전히 제거(&P)" msgid "&Validate translations" msgstr "번역 검증(&V)" msgid "&Validate Translations" msgstr "번역 검증(&V)" msgid "&Properties…" msgstr "속성(&P)…" msgid "&Done and next" msgstr "끝내고 다음으로 진행(&D)" msgid "&Done and Next" msgstr "끝내고 다음으로 진행(&D)" msgid "&Previous translation" msgstr "이전 번역(&P)" msgid "&Previous Translation" msgstr "이전 번역(&P)" msgid "&Next translation" msgstr "다음 번역(&N)" msgid "&Next Translation" msgstr "다음 번역(&N)" msgid "P&revious unfinished" msgstr "이전 미완료(&R)" msgid "P&revious Unfinished" msgstr "이전 미완료(&R)" msgid "Ne&xt unfinished" msgstr "다음 미완료(&X)" msgid "Ne&xt Unfinished" msgstr "다음 미완료(&X)" msgid "Previous plural form" msgstr "이전 복수 형태" msgid "Previous Plural Form" msgstr "이전 복수 형태" msgid "Next plural form" msgstr "다음 복수 형태" msgid "Next Plural Form" msgstr "다음 복수 형태" msgid "&Online help" msgstr "온라인 도움말(&O)" msgid "&Online Help" msgstr "온라인 도움말(&O)" msgid "&GNU gettext manual" msgstr "GNU gettext 설명서(&G)" msgid "&GNU gettext Manual" msgstr "GNU gettext 설명서(&G)" msgid "&About Poedit" msgstr "Poedit 정보(&A)" msgid "&About" msgstr "정보(&A)" msgid "Extractor setup" msgstr "추출 프로그램 설정" msgid "List of extensions separated by semicolons (e.g. *.cpp;*.h):" msgstr "세미콜론(;)으로 구분한 확장자 목록(예 *.cpp;*.h):" msgid "Invocation:" msgstr "실행:" msgid "Command to extract translations:" msgstr "번역을 추출할 명령:" msgid "" "This is the command used to launch the extractor.\n" "%o expands to the name of output file, %K to list\n" "of keywords, %F to list of input files,\n" "%C to charset flag (see below)." msgstr "" "이 명령은 추출 프로그램을 실행할 때 사용합니다.\n" "%o는 출력 파일의 이름, %K는 키워드 목록,\n" "%F는 입력 파일 목록, %C는 문자 집합 플래그\n" "입니다(하단 참조)." msgid "An item in keywords list:" msgstr "키워드 목록의 항목:" msgid "" "This will be attached to the command line once\n" "for each keyword. %k expands to the keyword." msgstr "" "키워드 명령줄에 하나 붙일 수 있습니다.\n" "%k는 키워드를 의미합니다." msgid "An item in input files list:" msgstr "입력 파일 목록의 항목:" #, c-format msgid "" "This will be attached to the command line once\n" "for each input file. %f expands to the filename." msgstr "" "각 입력 파일 명령줄에 하나 붙일 수 있습니다.\n" "%f는 파일 이름을 의미합니다." msgid "Source code charset:" msgstr "소스 코드 문자 집합:" #, c-format msgid "" "This will be attached to the command line\n" "only if source code charset was given. %c expands to charset value." msgstr "" "소스 코드 문자 집합을 지정했을 경우에만\n" "명령줄에 붙일 수 있습니다. %c는 문자 집합을 의미합니다." msgid "Catalog properties" msgstr "카탈로그 속성" msgid "Project name and version:" msgstr "프로젝트 이름과 버전:" msgid "Language team:" msgstr "언어 팀:" msgid "Plural forms:" msgstr "복수 형태:" msgid "Use default rules for this language" msgstr "이 언어에 기본 규칙 사용" msgid "Use custom expression" msgstr "사용자 정의 표현식 사용" msgid "Learn about plural forms" msgstr "서수 형식 알아보기" msgid "Charset:" msgstr "문자 집합:" msgid "Advanced Extraction Settings…" msgstr "고급 확장 프로그램 설정…" msgid "Advanced extraction settings…" msgstr "고급 확장 프로그램 설정…" msgid "Translation Properties" msgstr "번역 속성" msgid "Translation properties" msgstr "번역 속성" msgid "Sources Paths" msgstr "소스 경로" msgid "Sources paths" msgstr "소스 경로" msgid "Extract text from source files in the following directories:" msgstr "다음 디렉터리의 소스 파일에서 텍스트를 추출합니다:" msgid "Base path:" msgstr "기본 경로:" msgid "Sources Keywords" msgstr "소스 키워드" msgid "Sources keywords" msgstr "소스 키워드" msgid "" "Use these keywords (function names) to recognize translatable strings\n" "in source files:" msgstr "" "다음 키워드(함수 이름)를 사용하여 소스 파일에서\n" "번역할 문자열을 인식합니다:" msgid "Also use default keywords for supported languages" msgstr "지원되는 언어의 기본 키워드 또한 사용" msgid "Learn About Gettext Keywords" msgstr "Gettext 키워드 더 알아보기" msgid "Learn about gettext keywords" msgstr "gettext 키워드에 대해 알아보기" msgid "Update summary" msgstr "업데이트 요약" msgid "" "These strings were found in the sources but were not in the catalog.\n" "Poedit will add them to the catalog now." msgstr "" "이 문자열은 소스에 있지만 카탈로그에는 없습니다.\n" "Poedit이 해당 문자열을 카탈로그에 추가합니다." msgid "New strings" msgstr "새 문자열" msgid "" "These strings are no longer in the sources.\n" "Poedit will remove them from the catalog now." msgstr "" "이 문자열이 더 이상 소스에 없습니다.\n" "Poedit이 카탈로그에서 해당 문자열을 제거합니다." msgid "Obsolete strings" msgstr "제거한 문자열" msgid "(0 new, 0 obsolete)" msgstr "(신규 0, 제거 0)" msgid "Open" msgstr "열기" msgid "Save catalog" msgstr "카탈로그 저장" msgid "Validate" msgstr "검증하기" msgid "Check for errors in the translation" msgstr "번역 오류 검사" msgid "Update" msgstr "업데이트" msgid "Update catalog - synchronize it with sources" msgstr "카탈로그 업데이트 - 소스와 동기화합니다" msgid "Sidebar" msgstr "사이드바" msgid "Show or hide the sidebar" msgstr "사이드바를 표시하거나 숨깁니다" #. TRANSLATORS: "Previous" as in used in the past, now replaced with newer. msgid "Previous source text:" msgstr "이전 원본 텍스트:" msgid "" "The old source text (before it changed during an update) that the now-" "inaccurate translation corresponds to." msgstr "" "부정확한 번역을 채워둔, 업데이트하여 바뀌기 전의 오래된 원본 텍스트입니다." msgid "Notes for translators:" msgstr "번역 참고:" msgid "Add comment" msgstr "주석 추가" msgid "Add Comment" msgstr "주석 추가" msgid "Translation suggestions:" msgstr "번역 제안:" #. TRANSLATORS: This is shown when no translation suggestions can be found in the TM (Windows). msgid "No matches found" msgstr "일치하는 결과가 없습니다" #. TRANSLATORS: This is shown when no translation suggestions can be found in the TM (macOS, Linux). msgid "No Matches Found" msgstr "일치하는 결과 없음" msgid "This string was found in Poedit’s translation memory." msgstr "이 문자열은 Poedit의 번역 기억 장소에 있습니다." msgid "Cannot create temporary directory." msgstr "임시 디렉터리를 만들 수 없습니다." msgid "Welcome to Poedit" msgstr "Poedit에 잘 오셨습니다" #. TRANSLATORS: This is version information in about dialog, "%s" will be #. version number when used #, c-format msgid "Version %s" msgstr "버전 %s" msgid "Edit a Translation" msgstr "번역 편집" msgid "Edit a translation" msgstr "번역 편집" msgid "Open an existing PO file and edit the translation." msgstr "기존 PO 파일을 열어 번역을 편집합니다." msgid "" "Take an existing PO file or POT template and create a new translation from " "it." msgstr "기존 PO 파일 또는 POT 양식을 취하여 새 번역을 만듭니다." msgid "Collaborate on a Translation with Others" msgstr "다른 사람과 공동 번역" msgid "Collaborate on a translation with others" msgstr "다른 사람과 공동 번역" msgid "" "Download a file from Crowdin project, translate and sync your changes back." msgstr "" "Crowdin 프로젝트에서 파일을 다운로드하여 번역하고, 동기화하여 파일을 되돌려 " "보냅니다." msgid "What is Crowdin?" msgstr "Crowdin이 무엇인가요?" msgid "There are no translations. That’s unusual." msgstr "번역이 없습니다. 흔한 일은 아니네요." msgid "" "Translatable entries aren’t added manually in the Gettext system, but are " "automatically extracted\n" "from source code. This way, they stay up to date and accurate.\n" "Translators typically use PO template files (POTs) prepared for them by the " "developer." msgstr "" "소스 코드에서 번역 가능한 항목은 Gettext 시스템이 자동으로 추출합니다.\n" "이 방법으로 최신 버전으로 정확하게 유지할 수 있습니다.\n" "번역자들은 보통 개발자들이 준비한 PO 양식 파일(POT)를 사용합니다." msgid "(Learn more about GNU gettext)" msgstr "(GNU gettext에 대해 자세히 알아보기)" msgid "The simplest way to fill this catalog is to update it from a POT:" msgstr "카탈로그를 손쉽게 채우려면 POT에서 업데이트하세요:" msgid "Update from POT" msgstr "POT 파일로 업데이트" msgid "Take translatable strings from an existing POT template." msgstr "기존 POT 양식에서 번역할 수 있는 문자열을 가져옵니다." msgid "" "You can also extract translatable strings directly from the source code:" msgstr "소스 코드에서 직접 번역 가능 문자열을 가져올 수도 있습니다:" msgid "Extract from sources" msgstr "소스에서 가져오기" msgid "Configure source code extraction in Properties." msgstr "속성에서 소스 코드 추출을 설정합니다." msgid "Sync" msgstr "동기화" msgid "Synchronize the translation with Crowdin" msgstr "Crowdin과 번역 동기화" #. TRANSLATORS: This is titlebar of about dialog, "%s" is application name #. ("Poedit" here, but please use "%s") #, c-format msgid "About %s" msgstr "%s 정보" #. TRANSLATORS: Title of the preferences window on Windows and Linux. "%s" is replaced with "Poedit" when running. #, c-format msgid "%s Preferences" msgstr "%s 설정" #. TRANSLATORS: macOS item in app menu msgid "Services" msgstr "서비스" #. TRANSLATORS: macOS item in app menu, %s is replaced with "Poedit" #, c-format msgid "Hide %s" msgstr "%s 숨기기" #. TRANSLATORS: macOS item in app menu msgid "Hide Others" msgstr "다른 항목 숨기기" #. TRANSLATORS: macOS item in app menu msgid "Show All" msgstr "모두 표시" #. TRANSLATORS: macOS item in app menu, %s is replaced with "Poedit" #, c-format msgid "Quit %s" msgstr "%s 끝내기" #. TRANSLATORS: macOS item in app menu msgid "Preferences…" msgstr "설정…" msgid "Preferences..." msgstr "설정…" #. TRANSLATORS: Title of a category in Windows task menu (right-click icon in taskbar) msgid "Recent" msgstr "최근 목록" #. TRANSLATORS: Title of a category in Windows task menu (right-click icon in taskbar) msgid "Frequent" msgstr "자주 보는 항목" msgid "&Apply" msgstr "적용(&A)" msgid "Apply" msgstr "적용" msgid "&Back" msgstr "뒤로(&B)" msgid "Back" msgstr "뒤로" msgid "&Cancel" msgstr "취소(&C)" msgid "&Clear" msgstr "지우기(&C)" msgid "Clear" msgstr "지우기" msgid "Copy" msgstr "복사" msgid "Cu&t" msgstr "잘라내기(&T)" msgid "Cut" msgstr "잘라내기" msgid "&Delete" msgstr "삭제(&D)" msgid "&Quit" msgstr "종료(&Q)" msgid "File" msgstr "파일" msgid "Help" msgstr "도움말" msgid "&New" msgstr "새로 만들기(&N)" msgid "&No" msgstr "아니요(&N)" msgid "No" msgstr "아니요" msgid "&OK" msgstr "확인(&O)" msgid "Open…" msgstr "열기…" msgid "&Open..." msgstr "열기(&O)..." msgid "Open..." msgstr "열기..." msgid "&Paste" msgstr "붙여넣기(&P)" msgid "Paste" msgstr "붙여넣기" msgid "Preferences" msgstr "설정" msgid "&Redo" msgstr "다시 실행(&R)" msgid "Refresh" msgstr "새로 고침" msgid "&Save as" msgstr "다른 이름으로 저장(&S)" msgid "Save as" msgstr "다른 이름으로 저장" msgid "Select &All" msgstr "모두 선택(&A)" msgid "Select All" msgstr "모두 선택" msgid "&Undo" msgstr "실행 취소(&U)" msgid "&Yes" msgstr "예(&Y)" msgid "Yes" msgstr "예" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Shift+" msgstr "Shift+" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Enter" msgstr "Enter" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Up" msgstr "윗화살표" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Down" msgstr "아랫화살표" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Left" msgstr "왼쪽 화살표" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Right" msgstr "오른쪽 화살표" #. TRANSLATORS: Keyboard shortcut, must correspond to translation of "Ctrl+" msgid "ctrl" msgstr "ctrl" #. TRANSLATORS: Keyboard shortcut, must correspond to translation of "Alt+" msgid "alt" msgstr "alt" #. TRANSLATORS: Keyboard shortcut, must correspond to translation of "Shift+" msgid "shift" msgstr "shift" poedit-2.0.6/locales/cs.po0000664000372000037200000015410513230132075012315 00000000000000msgid "" msgstr "" "Project-Id-Version: poedit\n" "Report-Msgid-Bugs-To: help@poedit.net\n" "POT-Creation-Date: 2017-12-05 15:52+0100\n" "PO-Revision-Date: 2017-12-05 09:48-0500\n" "Last-Translator: vslavik \n" "Language-Team: Czech\n" "Language: cs_CZ\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" "X-Generator: crowdin.com\n" "X-Crowdin-Project: poedit\n" "X-Crowdin-Language: cs\n" "X-Crowdin-File: /locales/poedit.pot\n" msgid "Hide this notification message" msgstr "Schovat toto oznámení" msgid "Don’t Show Again" msgstr "Příště nezobrazovat" msgid "Don’t show again" msgstr "Příště nezobrazovat" #, c-format msgid "(New: %i, obsolete: %i)" msgstr "(Nové: %i, zastaralé: %i)" msgid "Updating catalog" msgstr "Probíhá aktualizace katalogu" msgid "Collecting source files…" msgstr "Probíhá shromažďování zdrojových souborů…" msgid "Extracting translatable strings…" msgstr "Probíhá extrakce přeložitelných řetězců…" msgid "Failed to load extracted catalog." msgstr "Při načítání extrahovaného katalogu došlo k chybě." msgid "Merging differences…" msgstr "Slučování rozdílů…" #, c-format msgid "“%s” is not a valid POT file." msgstr "POT soubor „%s“ je poškozený." #, c-format msgid "%i line of file “%s” was not loaded correctly." msgid_plural "%i lines of file “%s” were not loaded correctly." msgstr[0] "%i řádek souboru „%s“ nebyl načten správně." msgstr[1] "%i řádky souboru „%s“ nebyly načteny správně." msgstr[2] "%i řádků souboru „%s“ nebylo načteno správně." #, c-format msgid "Line %d of file “%s” is corrupted (not valid %s data)." msgstr "Řádek %d souboru „%s“ je poškozený (neplatná data v %s)." #, c-format msgid "Malformed header: “%s”" msgstr "Poškozená hlavička: „%s“" msgid "" "Broken catalog file: singular form msgstr used together with msgid_plural" msgstr "Špatný katalog: verze msgstr pro singulár použita spolu s msgid_plural" msgid "Broken catalog file: plural form msgstr used without msgid_plural" msgstr "Špatný katalog: verze msgstr pro plurál použita bez msgid_plural" msgid "" "There were errors when loading the catalog. Some data may be missing or " "corrupted as the result." msgstr "" "Při načítání katalogu došlo k chybě. Některé překlady mohou chybět nebo být " "poškozené." #, c-format msgid "Couldn’t load file %s, it is probably corrupted." msgstr "Soubor %s nelze načíst, pravděpodobně je poškozený." #, c-format msgid "" "File “%s” is read-only and cannot be saved.\n" "Please save it under different name." msgstr "" "Soubor „%s“ je jen pro čtení a není možné jej přepsat.\n" "\n" "Uložte katalog pod jiným názvem." #, c-format msgid "Couldn’t save file %s." msgstr "Soubor %s nelze uložit." msgid "" "There was a problem formatting the file nicely (but it was saved all right)." msgstr "Při formátování souboru došlo k chybě (ale byl úspěšně uložen)." #, c-format msgid "" "The catalog couldn’t be saved in “%s” charset as specified in catalog " "settings.\n" "\n" "It was saved in UTF-8 instead and the setting was modified accordingly." msgstr "" "Katalog nemohl být uložen ve znakové sadě „%s“ zadané ve vlastnostech " "katalogu.\n" "\n" "Místo toho byl uložen v UTF-8 a nastavení bylo příslušně změněno." msgid "Error saving catalog" msgstr "Při ukládání katalogu došlo k chybě" msgid "PO Translation Files" msgstr "Soubory překladů PO" msgid "POT Translation Templates" msgstr "Šablony překladů POT" msgid "All Translation Files" msgstr "Všechny překladové soubory" msgid "(Use default language)" msgstr "(výchozí jazyk)" msgid "Select your preferred language" msgstr "Vyberte preferovaný jazyk" msgid "Language selection" msgstr "Výběr jazyka" msgid "You must restart Poedit for this change to take effect." msgstr "Tato změna se projeví až po opětovném spuštění Poeditu." msgid "Syncing" msgstr "Probíhá synchronizace" #. TRANSLATORS: %s is a cloud destination, e.g. "Crowdin" or ftp.wordpress.com etc. #, c-format msgid "Syncing with %s…" msgstr "Probíhá synchronizace s %s…" #. TRANSLATORS: %s is a cloud destination, e.g. "Crowdin" or ftp.wordpress.com etc. #, c-format msgid "Syncing with %s failed." msgstr "Synchronizace s %s se nezdařila." msgid "Syncing error" msgstr "Chyba synchronizace" msgid "Downloading translations is disabled in this project." msgstr "Stahování překladů je pro tento projekt zakázáno." msgid "Not authorized, please sign in again." msgstr "Nedostatečná oprávnění, zkuste se znovu přihlásit." msgid "" "Crowdin is an online localization management platform and collaborative " "translation tool. Poedit can seamlessly sync PO files managed at Crowdin." msgstr "" "Crowdin je online platforma pro správu lokalizací a nástroj pro spolupráci " "na překladu. Poedit umožňuje jednoduchou synchronizaci PO souborů " "spravovaných prostřednictvím Crowdin." msgid "Sign In" msgstr "Přihlásit se" msgid "Sign in" msgstr "Přihlásit se" msgid "Sign Out" msgstr "Odhlásit se" msgid "Sign out" msgstr "Odhlásit se" msgid "Waiting for authentication…" msgstr "Čekání na ověření…" msgid "Updating user information…" msgstr "Aktualizace informací o uživateli…" msgid "Signed in as:" msgstr "Přihlášen jako:" msgid "Learn More About Crowdin" msgstr "Další informace o Crowdin" msgid "Learn more about Crowdin" msgstr "Další informace o Crowdin" msgid "Sign in to Crowdin" msgstr "Přihlásit se do Crowdin" msgid "Open Crowdin translation" msgstr "Otevřít Crowdin překlad" msgid "Project:" msgstr "Projekt:" msgid "Language:" msgstr "Jazyk:" msgid "File:" msgstr "Soubor:" msgid "No translation projects listed in your Crowdin account." msgstr "Ve vašem Crowdin účtu nemáte nastaveny žádné překladové projekty." msgid "This project has no files that can be translated in Poedit." msgstr "" "Projekt neobsahuje žádné soubory, které by bylo možné přeložit " "prostřednictvím programu Poedit." msgid "This file can only be edited in Crowdin’s web interface." msgstr "" "Tento soubor lze upravit pouze prostřednictvím webového rozhraní Crowdin." msgid "Downloading latest translations…" msgstr "Stahování nejnovějších překladů…" msgid "Syncing with Crowdin failed." msgstr "Synchronizace s Crowdin se nezdařila." msgid "Crowdin error" msgstr "Crowdin chyba" msgid "Uploading translations…" msgstr "Odesílání překladů…" msgid "&Copy" msgstr "&Kopírovat" msgid "Learn more" msgstr "Další informace" msgid "Learn More" msgstr "Další informace" msgid "&Help" msgstr "&Nápověda" msgid "MO files can’t be directly edited in Poedit." msgstr "Poedit nepodporuje přímou úpravu MO souborů." msgid "Error opening file" msgstr "Při otevírání souboru došlo k chybě" msgid "" "Please open and edit the corresponding PO file instead. When you save it, " "the MO file will be updated as well." msgstr "" "Místo toho otevřete a upravte odpovídající soubor PO. Poté co ho uložíte, " "bude automaticky aktualizován i soubor MO." msgid "don’t delete temporary files (for debugging)" msgstr "nemazat dočasné soubory (kvůli ladění)" msgid "handle a poedit:// URI" msgstr "zpracovat poedit:// URI" msgid "go to item at given line number" msgstr "přejít na položku na daném řádku" msgid "Failed to communicate with Poedit process." msgstr "Nelze komunikovat s procesem Poeditu." #, c-format msgid "Unhandled exception occurred: %s" msgstr "Došlo k neošetřené výjimce: %s" msgid "Open catalog" msgstr "Otevřít katalog" #, c-format msgid "File “%s” doesn’t exist." msgstr "Soubor „%s“ neexistuje." msgid "Poedit is an easy to use translations editor." msgstr "Poedit je jednoduchý editor překladů." msgid "Catalogs Manager" msgstr "Správce katalogů" msgid "Check for Updates…" msgstr "Vyhledat aktualizace…" msgid "&Edit" msgstr "Úpra&vy" msgid "Undo" msgstr "Zpět" msgid "Redo" msgstr "Znovu" msgid "Paste and Match Style" msgstr "Vložit a přizpůsobit styl" msgid "Delete" msgstr "Smazat" msgid "Spelling and Grammar" msgstr "Pravopis a gramatika" msgid "Show Spelling and Grammar" msgstr "Zobrazit pravopis a gramatiku" msgid "Check Document Now" msgstr "Zkontrolovat dokument" msgid "Check Spelling While Typing" msgstr "Kontrolovat pravopis během psaní" msgid "Check Grammar With Spelling" msgstr "Kontrolovat i gramatiku" msgid "Correct Spelling Automatically" msgstr "Automaticky opravovat pravopis" msgid "Substitutions" msgstr "Náhrady" msgid "Show Substitutions" msgstr "Zobrazit náhrady" msgid "Smart Copy/Paste" msgstr "Chytré kopírování/vkládání" msgid "Smart Quotes" msgstr "Chytré uvozovky" msgid "Smart Dashes" msgstr "Chytré pomlčky" msgid "Smart Links" msgstr "Chytré odkazy" msgid "Text Replacement" msgstr "Náhrady textu" msgid "Transformations" msgstr "Transformace" msgid "Make Upper Case" msgstr "Všechna písmena velká" msgid "Make Lower Case" msgstr "Všechna písmena malá" msgid "Capitalize" msgstr "První písmena velká" msgid "Speech" msgstr "Předčítání" msgid "Start Speaking" msgstr "Spustit předčítání" msgid "Stop Speaking" msgstr "Ukončit předčítání" msgid "&View" msgstr "&Zobrazení" msgid "Enter Full Screen" msgstr "Zobrazit na celou obrazovku" msgid "Window" msgstr "Okno" msgid "Minimize" msgstr "Minimalizovat" msgid "Zoom" msgstr "Přepnout velikost" msgid "Bring All to Front" msgstr "Přenést vše do popředí" #. TRANSLATORS:File kind displayed in Finder/Explorer msgid "PO Translation" msgstr "Překlady PO" msgid "The file cannot be opened." msgstr "Soubor nelze otevřít." msgid "Invalid file" msgstr "Neplatný soubor" msgid "" "The file may be either corrupted or in a format not recognized by Poedit." msgstr "Soubor je poškozen, nebo používá neznámý formát." msgid "You can’t drop more than one file on Poedit window." msgstr "Na okno Poeditu nelze přetáhnou více než jeden soubor." #, c-format msgid "File “%s” is not a message catalog." msgstr "Soubor „%s“ není překladový katalog." msgid "Poedit" msgstr "Poedit" msgid "&File" msgstr "&Soubor" msgid "&Go" msgstr "Pře&jít" #. TRANSLATORS: %s is language name in its basic form (as you #. would see e.g. in a list of supported languages). You may need #. to rephrase it, e.g. to an equivalent of "for language %s". #, c-format msgid "" "Spellchecking is disabled, because the dictionary for %s isn’t installed." msgstr "" "Kontrola pravopisu je zakázána, protože slovník pro jazyk %s není " "nainstalován." msgid "Install" msgstr "Nainstalovat" msgid "Catalog modified. Do you want to save changes?" msgstr "Katalog byl změněn. Chcete změny uložit?" msgid "Save changes" msgstr "Uložit změny" msgid "Your changes will be lost if you don’t save them." msgstr "Pokud je neuložíte, přijdete o všechny změny." msgid "Save" msgstr "Uložit" msgid "Don’t save" msgstr "Neukládat" msgid "Don’t Save" msgstr "Neukládat" msgid "Save as…" msgstr "Uložit jako…" msgid "Compile to…" msgstr "Zkompilovat do…" msgid "Compiled Translation Files" msgstr "Zkompilované překladové soubory" msgid "Export as…" msgstr "Exportovat jako…" msgid "HTML Files" msgstr "Soubory HTML" msgid "Open catalog template" msgstr "Otevřít šablonu katalogu" msgid "Source code not available." msgstr "Zdrojový kód není k dispozici." msgid "Updating failed" msgstr "Aktualizace selhala" msgid "" "Translations couldn’t be updated from the source code, because no code was " "found in the location specified in the catalog’s Properties." msgstr "" "Aktualizace překladu ze zdrojového kódu se nezdařila, protože v umístěních " "uvedených ve vlastnostech katalogu nebyl nalezen žádný kód." msgid "Entries in the catalog are probably incorrect." msgstr "Položky katalogu jsou pravděpodobně chybné." msgid "Updating the catalog failed. Click on 'Details >>' for details." msgstr "" "Aktualizace katalogu selhala. Podrobnosti zobrazíte kliknutím na tlačítko " "'Detaily >>'." #, c-format msgid "%d issue with the translation found." msgid_plural "%d issues with the translation found." msgstr[0] "Nalezen %d problém s překladem." msgstr[1] "Nalezeny %d problémy s překladem." msgstr[2] "Nalezeno %d problémů s překladem." msgid "Validation results" msgstr "Výsledky kontroly" msgid "" "Entries with errors were marked in red in the list. Details of the error " "will be shown when you select such an entry." msgstr "" "Položky obsahující chyby byly v seznamu zvýrazněny červenou barvou. " "Podrobnosti o chybě se zobrazí po vybrání chybné položky." msgid "The file was saved safely." msgstr "Soubor byl úspěšně uložen." msgid "" "The file was saved safely and compiled into the MO format, but it will " "probably not work correctly." msgstr "" "Soubor byl úspěšně uložen a zkompilován do formátu MO, ale pravděpodobně " "nebude fungovat správně." msgid "" "The file was saved safely, but it cannot be compiled into the MO format and " "used." msgstr "" "Soubor byl úspěšně uložen, ale nepůjde jej zkompilovat do formátu MO a " "používat." msgid "" "The file was compiled into the MO format, but it will probably not work " "correctly." msgstr "" "Soubor byl zkompilován do formátu MO, ale pravděpodobně nebude pracovat " "správně." msgid "The file cannot be compiled into the MO format and used." msgstr "" "Soubor se nepodařilo zkompilovat do formátu MO a není tak možné ho použít." msgid "No problems with the translation found." msgstr "V překladu nebyly nalezeny žádné problémy." #, c-format msgid "The translation is ready for use, but %d entry is not translated yet." msgid_plural "" "The translation is ready for use, but %d entries are not translated yet." msgstr[0] "" "Překlad je připraven k použití, ale %d položka ještě není přeložená." msgstr[1] "" "Překlad je připraven k použití, ale %d položky ještě nejsou přeloženy." msgstr[2] "" "Překlad je připraven k použití, ale %d položek ještě není přeloženo." msgid "The translation is ready for use." msgstr "Překlad je připraven k použití." #, c-format msgid "Poedit automatically fixed invalid content in the file “%s”." msgstr "Poedit automaticky opravil chybný obsah souboru „%s“." msgid "" "The file contained duplicate items, which is not allowed in PO files and " "would prevent the file from being used. Poedit fixed the issue, but you " "should review translations of any items marked as needing work and correct " "them if necessary." msgstr "" "Soubor obsahoval duplicitní položky, což není v PO souborech povoleno a " "zabránilo by to jejich použití. Poedit tento problém opravil, ale měli byste " "zkontrolovat všechny překlady označené jako vyžadující pozornost a v případě " "potřeby je opravit." msgid "Language of the translation isn’t set." msgstr "Jazyk překladu není nastaven." msgid "Set Language" msgstr "Nastavit jazyk" msgid "Set language" msgstr "Nastavit jazyk" #. TRANSLATORS: This is shown underneath "Language of the translation isn't set (or ...is the same as source language)." msgid "" "Suggestions are not available if the translation language is not set " "correctly. Other features, such as plural forms, may be affected as well." msgstr "" "Pokud není správně nastaven jazyk překladu, nejsou k dispozici návrhy. " "Ovlivněny mohou být i další funkce, jako například formy plurálu." msgid "Language of the translation is the same as source language." msgstr "Jazyk překladu je shodný s jazykem zdroje." msgid "Fix Language" msgstr "Opravit jazyk" msgid "Fix language" msgstr "Opravit jazyk" msgid "" "This catalog has entries with plural forms, but doesn’t have Plural-Forms " "header configured." msgstr "" "V katalogu jsou položky s plurály, ale není nastavená hlavička Plural-Forms." msgid "" "Entries in this catalog have different plural forms count from what " "catalog’s Plural-Forms header says" msgstr "" "U položek katalogu je použit jiný počet forem plurálu, než jaký je nastaven " "v hlavičce Plural-Forms" msgid "Required header Plural-Forms is missing." msgstr "V hlavičce chybí povinná položka Plural-Forms." #, c-format msgid "Syntax error in Plural-Forms header (\"%s\")." msgstr "Syntaktická chyba v hlavičce Plural-Forms („%s“)." msgid "Fix the Header" msgstr "Opravit hlavičku" msgid "Fix the header" msgstr "Opravit hlavičku" #. TRANSLATORS: %s is language name in its basic form (as you #. would see e.g. in a list of supported languages). You may need #. to rephrase it, e.g. to an equivalent of "for language %s". #, c-format msgid "Plural forms expression used by the catalog is unusual for %s." msgstr "Výraz pro formy plurálu používá pro jazyk %s nezvyklý formát." #. TRANSLATORS: A verb, shown as action button with ""Plural forms expression used by the catalog is unusual for %s.")" msgid "Review" msgstr "Zkontrolovat" #, c-format msgid "Error loading message catalog file “%s”." msgstr "Při načítání katalogu „%s“ došlo k chybě." #, c-format msgid "Translated: %d of %d (%d %%)" msgstr "Přeloženo: %d z %d (%d %%)" #, c-format msgid "Remaining: %d" msgstr "Zbývá: %d" #, c-format msgid "%d error" msgid_plural "%d errors" msgstr[0] "%d chyba" msgstr[1] "%d chyby" msgstr[2] "%d chyb" #, c-format msgid "%d entry" msgid_plural "%d entries" msgstr[0] "%d položka" msgstr[1] "%d položky" msgstr[2] "%d položek" msgid " (unsaved)" msgstr " (neuloženo)" msgid " (modified)" msgstr " (změněno)" #, c-format msgid "Failed to update translation memory: %s" msgstr "Aktualizace překladové paměti se nezdařila: %s" msgid "Purge deleted translations" msgstr "&Smazat staré překlady" msgid "Do you want to remove all translations that are no longer used?" msgstr "Chcete odstranit všechny již nepoužívané překlady?" msgid "" "If you continue with purging, all translations marked as deleted will be " "permanently removed. You will have to translate them again if they are added " "back in the future." msgstr "" "Pokud budete pokračovat, všechny překlady označené jako smazané budou " "natrvalo odstraněny. Pokud budou příslušné řetězce později přidány zpět, tak " "je budete muset znovu přeložit." msgid "Keep" msgstr "Ponechat" msgid "Purge" msgstr "Smazat" msgid "Copy from source text" msgstr "Zkopírovat ze zdrojového textu" msgid "Copy from Source Text" msgstr "Zkopírovat ze zdrojového textu" #. TRANSLATORS: This is the key shortcut used in menus on Windows, some languages call them differently #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Ctrl+" msgstr "Ctrl+" msgid "Clear translation" msgstr "Smazat překlad" msgid "Clear Translation" msgstr "Smazat překlad" msgid "Edit comment" msgstr "Upravit komentář" msgid "Edit Comment" msgstr "Upravit komentář" msgid "References:" msgstr "Odkazy:" msgid "&Bookmarks" msgstr "&Záložky" #. TRANSLATORS: This is the key shortcut used in menus on Windows, some languages call them differently #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Alt+" msgstr "Alt+" #, c-format msgid "Set bookmark %i" msgstr "Nastavit záložku %i" #, c-format msgid "Go to bookmark %i" msgstr "Přejít na záložku %i" #, c-format msgid "Set Bookmark %i" msgstr "Nastavit záložku %i" #, c-format msgid "Go to Bookmark %i" msgstr "Přejít na záložku %i" msgid "Hide Sidebar" msgstr "Skrýt postranní panel" msgid "Show Sidebar" msgstr "Zobrazit postranní panel" msgid "Hide Status Bar" msgstr "Skrýt stavový řádek" msgid "Show Status Bar" msgstr "Zobrazit stavový řádek" msgid "Source text:" msgstr "Zdrojový text:" msgid "Singular:" msgstr "Singulár:" msgid "Plural:" msgstr "Plurál:" msgid "Translation:" msgstr "Překlad:" msgid "Pre-translated" msgstr "Před-přeloženo" msgid "Needs Work" msgstr "Vyžaduje pozornost" #. TRANSLATORS: This indicates that the string's translation isn't final #. and has known problems. For example, it might be machine translated or #. fuzzy matched from an older string. The translation should be short and #. convey this. If it's problematic to translate it, "Needs review" is #. acceptable substitute, but note that the meaning is subtly different: #. "needs review" implies that somebody else should review the string after #. I am done with it (i.e. consider it good), while "needs work" implies I #. need to return to it and finish the translation. msgid "Needs work" msgstr "Vyžaduje úpravu" msgid "" "POT files are only templates and don’t contain any translations themselves.\n" "To make a translation, create a new PO file based on the template." msgstr "" "Soubory POT jsou jen šablony a samy o sobě neobsahují žádné překlady.\n" "Pro vytvoření překladu vytvořte na základě šablony nový PO soubor." msgid "Create New Translation" msgstr "Vytvořit nový překlad" msgid "Create new translation" msgstr "Vytvořit nový překlad" msgid "Everything" msgstr "Vše" #, c-format msgid "Form %i" msgstr "Forma %i" msgid "Singular" msgstr "Singulár" msgid "Zero" msgstr "Nula" msgid "One" msgstr "Jeden" msgid "Two" msgstr "Dva" msgid "Plural" msgstr "Plurál" msgid "Other" msgstr "Ostatní" #, c-format msgid "%s Format" msgstr "%s formát" #. TRANSLATORS: %s is replaced with language name, e.g. "PHP" or "C", so "PHP Format" etc." #, c-format msgid "%s format" msgstr "%s formát" msgid "Source text" msgstr "Zdrojový text" #, c-format msgid "Translation — %s" msgstr "Překlad — %s" msgid "ID" msgstr "ID" #, c-format msgid "Source text — %s" msgstr "Zdrojový text — %s" msgid "unknown language" msgstr "neznámý jazyk" #, c-format msgid "Failed command: %s" msgstr "Příkaz selhal: %s" msgid "Failed to merge gettext catalogs." msgstr "Při slučování gettext katalogů došlo k chybě." msgid "Source file" msgstr "Zdrojový soubor" msgid "Source file occurrence:" msgstr "Výskyt ve zdrojovém kódu:" msgid "Open in Editor" msgstr "Otevřít v editoru" msgid "Open in editor" msgstr "Otevřít v editoru" msgid "No references for the selected item." msgstr "Žádné výskyty vybrané položky." #, c-format msgid "Error opening file %s!" msgstr "Při otevírání souboru %s došlo k chybě!" msgid "Find" msgstr "Najít" msgid "Replace" msgstr "Nahradit" #. TRANSLATORS: Expander in Find window for additional options (case sensitive etc.) msgid "Options" msgstr "Možnosti" msgid "Ignore case" msgstr "Ignorovat velikost písmen" msgid "Wrap around" msgstr "Po dosažení konce hledat od začátku" msgid "Whole words only" msgstr "Jen celá slova" msgid "Find in source texts" msgstr "Hledat ve zdrojových textech" msgid "Find in translations" msgstr "Hledat v překladech" msgid "Find in comments" msgstr "Hledat v komentářích" msgid "Close" msgstr "Zavřít" msgid "Replace &All" msgstr "N&ahradit vše" msgid "Replace &all" msgstr "N&ahradit vše" msgid "&Replace" msgstr "Nah&radit" msgid "< &Previous" msgstr "< &Předchozí" msgid "&Next >" msgstr "&Další >" msgid "String to find" msgstr "Hledaný řetězec" msgid "Replacement string" msgstr "Nahradit za" #, c-format msgid "Cannot execute program: %s" msgstr "Není možné spustit program: %s" msgid "Language Code or Name (e.g. en_GB)" msgstr "Kód, nebo název jazyku (např. cs_CZ)" msgid "Translation Language" msgstr "Jazyk překladu" msgid "Language of the translation:" msgstr "Jazyk překladu:" msgid "Poedit - Catalogs manager" msgstr "Poedit - správce katalogů" msgid "Catalog" msgstr "Katalog" msgid "Total" msgstr "Celkem" msgid "Untrans" msgstr "Nepřelož" msgid "Errors" msgstr "Chyby" msgid "Last modified" msgstr "Poslední změna" msgid "Select directory" msgstr "Vyberte adresář" msgid "Directories:" msgstr "Adresáře:" msgid "" msgstr "" msgid "Do you want to delete the project?" msgstr "Opravdu chcete vybraný projekt smazat?" msgid "Confirmation" msgstr "Potvrzení" msgid "" "Do you really want to do mass update of\n" "all catalogs in this project?" msgstr "" "Opravdu chcete provést hromadnou aktualizaci všech\n" "katalogů ve vybraném projektu?" msgid "Information about the translator" msgstr "Informace o překladateli" msgid "Name:" msgstr "Jméno:" msgid "Your Name" msgstr "Vaše jméno" msgid "Email:" msgstr "E-mail:" msgid "your_email@example.com" msgstr "vas_email@example.com" msgid "" "Your name and email address are only used to set the Last-Translator header " "of GNU gettext files." msgstr "" "Vaše jméno a e-mail budou použity pouze k nastavení položky Last-Translator " "v hlavičce souborů GNU gettext." msgid "Editing" msgstr "Editace" msgid "Automatically compile MO file when saving" msgstr "Při uložení automaticky zkompilovat MO soubor" msgid "Show summary after catalog update" msgstr "Po aktualizaci katalogu zobrazit přehled změn" msgid "Check spelling" msgstr "Kontrolovat pravopis" msgid "Always change focus to text input field" msgstr "Vždy zaměřovat vstupní pole pro překlad" msgid "" "Never let the list of strings take focus. If enabled, you must use Ctrl-" "arrows for keyboard navigation but you can also type text immediately, " "without having to press Tab to change focus." msgstr "" "Nikdy nezaměří seznam s řetězci. Pokud je tato volba aktivní, je k pohybu v " "seznamu řetězců pomocí klávesnice nutné použít Ctrl+šipky. Na druhou stranu " "ale umožňuje rovnou začít psát text, bez nutnosti mačkat Tab." msgid "Appearance" msgstr "Vzhled" msgid "Use custom list font:" msgstr "Použít vlastní písmo pro seznam:" msgid "Use custom text fields font:" msgstr "Použít vlastní písmo pro textová pole:" msgid "Change UI language" msgstr "Změnit jazyk" #. TRANSLATORS: This is a note appended to "Check spelling" when running on older Windows versions msgid "(requires Windows 8 or newer)" msgstr "(vyžaduje Windows 8 nebo novější)" msgid "General" msgstr "Obecné" msgid "Use translation memory" msgstr "Použít překladovou paměť" msgid "Learn From Files…" msgstr "Načíst ze souborů…" msgid "Learn from files…" msgstr "Načíst ze souborů…" #. TRANSLATORS: This is a button that deletes everything in the translation memory (i.e. clears/resets it). msgid "Reset" msgstr "Vymazat" #. TRANSLATORS: Followed by "match translations within the file" or "pre-translate from TM" msgid "When updating from sources" msgstr "Při aktualizaci ze zdrojových souborů" #. TRANSLATORS: Preceded by "When updating from sources" msgid "fuzzy match within the file" msgstr "před-přeložit s pomocí podobných překladů v souboru" #. TRANSLATORS: Preceded by "When updating from sources" msgid "pre-translate from TM" msgstr "před-přeložit z překladové paměti" msgid "" "Poedit can attempt to fill in new entries from only previous translations in " "the file or from your entire translation memory. Using the TM won’t be very " "effective if it’s near-empty, but it will get better as you add more " "translations to it." msgstr "" "Poedit se může pokusit předvyplnit nové položky s pomocí předchozích " "překladů v souboru, nebo s pomocí celé vaší překladové paměti. Použití " "překladové paměti nebude ze začátku příliš efektivní, ale jak jí postupně " "naplníte překlady, bude se její efektivita zlepšovat." msgid "Stored translations:" msgstr "Uložené překlady:" msgid "Database size on disk:" msgstr "Velikost databáze:" msgid "Select translation files to import" msgstr "Vyberte překladové soubory, které chcete importovat" msgid "Translation Memory" msgstr "Překladová paměť" msgid "Importing translations…" msgstr "Probíhá import překladů…" msgid "Finalizing…" msgstr "Dokončování…" msgid "Reset translation memory" msgstr "Vymazat překladovou paměť" msgid "Are you sure you want to reset the translation memory?" msgstr "Opravdu chcete překladovou paměť vymazat?" msgid "" "Resetting the translation memory will irrevocably delete all stored " "translations from it. You can’t undo this operation." msgstr "" "Vymazáním překladové paměti nenávratně smažete všechny v ní uložené " "překlady. Po provedení této akce už neexistuje žádná možnost obnovy." msgid "Cancel" msgstr "Storno" #. TRANSLATORS: This is abbreviation of "Translation Memory" used in Preferences on macOS. #. Long text looks weird there, too short (like TM) too, but less so. "General" is about ideal #. length there. msgid "TM" msgstr "TM" msgid "" "Source code extractors are used to find translatable strings in the source " "code files and extract them so that they can be translated." msgstr "" "Extraktory zdrojového kódu slouží k vyhledání přeložitelných řetězců v " "souborech zdrojového kódu a jejich extrakci pro účely překladu." msgid "Custom Extractors:" msgstr "Uživatelské extraktory:" msgid "Custom extractors:" msgstr "Uživatelské extraktory:" msgid "Edit…" msgstr "Upravit…" msgid "GNU gettext" msgstr "GNU gettext" msgid "" "Supports all programming languages recognized by GNU gettext tools (PHP, C/C+" "+, C#, Perl, Python, Java, JavaScript and others)." msgstr "" "Podporuje všechny jazyky podporované nástroji GNU gettext (PHP, C/C++, C#, " "Perl, Python, Java, JavaScript a další)." msgid "Delete extractor" msgstr "Smazat extraktor" #, c-format msgid "Are you sure you want to delete the “%s” extractor?" msgstr "Opravdu chcete „%s“ extraktor smazat?" msgid "Extractors" msgstr "Extraktory" msgid "Accounts" msgstr "Účty" msgid "Automatically check for updates" msgstr "Automaticky kontrolovat dostupnost aktualizací" msgid "Include beta versions" msgstr "Upozorňovat na beta verze" msgid "" "Beta versions contain the latest new features and improvements, but may be a " "bit less stable." msgstr "" "Beta verze obsahují nejnovější funkce a vylepšení, ale mohou mít problémy se " "spolehlivostí." msgid "Updates" msgstr "Aktualizace" msgid "" "These settings affect internal formatting of PO files. Adjust them if you " "have specific requirements e.g. because of version control." msgstr "" "Tato nastavení ovlivňují formátování PO souborů. Upravte je pokud máte " "specifické požadavky například kvůli správě verzí." msgid "Line endings:" msgstr "Konce řádků:" msgid "Unix (recommended)" msgstr "Unix (doporučeno)" msgid "Windows" msgstr "Windows" #. TRANSLATORS: Followed by text control for entering number; wraps text at given width msgid "Wrap at:" msgstr "Zalomit po:" msgid "Preserve formatting of existing files" msgstr "Zachovat stávající formátování souboru" msgid "Advanced" msgstr "Pokročilé" msgid "Pre-translating…" msgstr "Probíhá předběžný překlad…" #, c-format msgid "Pre-translated %u string" msgid_plural "Pre-translated %u strings" msgstr[0] "Před-přeložen %u řetězec" msgstr[1] "Před-přeloženy %u řetězce" msgstr[2] "Před-přeloženo %u řetězců" #. TRANSLATORS: This is a somewhat common term describing the action where #. you apply the translation memory and/or machine translation to all of the #. strings you're translating as the first step, followed by correcting, #. improving etc., i.e. actually translating the strings. This may be tricky #. to express in other languages as simply as in English, but please try to #. keep it similarly concise. Please try to avoid, if possible, describing it #. as "auto-translation" and similar, because such terminology would mislead #. some users into thinking it's all that needs to be done (spoken from #. experience). "Pre-translate" nicely expresses that it's only the step done #. *before* actual translation. msgid "Pre-translate" msgstr "Před-přeložit" msgid "Only fill in exact matches" msgstr "Doplnit pouze při přesné shodě" msgid "" "By default, inaccurate results are filled in as well and marked as needing " "work. Check this option to only include accurate matches." msgstr "" "Ve výchozím nastavení jsou doplněny i nepřesné výsledky, které jsou označeny " "jako vyžadující pozornost. Zaškrtněte tuto volbu, pokud chcete zahrnout " "pouze přesné shody." msgid "Don’t mark exact matches as needing work" msgstr "Přesné shody neoznačovat jako vyžadující pozornost" msgid "" "Only enable if you trust the quality of your TM. By default, all matches " "from the TM are marked as needing work and should be reviewed before use." msgstr "" "Povolte pouze pokud důvěřujete kvalitě použité překladové paměti. Ve " "výchozím nastavení jsou všechny překlady doplněné z překladové paměti " "označeny jako vyžadující pozornost a měly by být před použitím zkontrolovány." msgid "" "Pre-translation automatically finds exact or fuzzy matches for untranslated " "strings in the translation memory and fills in their translations." msgstr "" "Před-překlad automaticky vyhledá přesné a přibližné shody pro nepřeložené " "řetězce v překladové paměti a vyplní jejich překlady." #, c-format msgid "%d entry was pre-translated." msgid_plural "%d entries were pre-translated." msgstr[0] "Byla před-přeložena %d položka." msgstr[1] "Byly před-přeloženy %d položky." msgstr[2] "Bylo před-přeloženo %d položek." msgid "" "The translations were marked as needing work, because they may be " "inaccurate. You should review them for correctness." msgstr "" "Překlady byly označeny jako vyžadující pozornost, protože mohou být " "nepřesné. Měli byste je zkontrolovat." msgid "No entries could be pre-translated." msgstr "Nebyly před-přeloženy žádné položky." msgid "" "The TM doesn’t contain any strings similar to the content of this file. It " "is only effective for semi-automatic translations after Poedit learns enough " "from files that you translated manually." msgstr "" "Překladová paměť neobsahuje žádné texty podobné obsahu tohoto souboru. " "Poloautomaticky je schopna efektivně překládat teprve poté, co se Poedit " "naučí dostatek dat z ručně přeložených souborů." msgid "" "Drag and Drop Folders Here\n" "\n" "or use the + button" msgstr "" "Sem přetáhněte adresáře\n" "\n" "nebo použijte tlačítko +" msgid "" "Drag and drop folders here\n" "\n" "or use the + button" msgstr "" "Sem přetáhněte adresáře\n" "\n" "nebo použijte tlačítko +" msgid "Add Folders…" msgstr "Přidat adresáře…" msgid "Add folders…" msgstr "Přidat adresáře…" msgid "Add Files…" msgstr "Přidat soubory…" msgid "Add files…" msgstr "Přidat soubory…" msgid "Add Wildcard…" msgstr "Přidat zástupný řetězec…" msgid "Add wildcard…" msgstr "Přidat zástupný řetězec…" msgid "Paths" msgstr "Cesty" msgid "Excluded paths" msgstr "Ignorovat cesty" msgid "Advanced extraction settings" msgstr "Pokročilá nastavení extrakce" msgid "Extract notes for translators from:" msgstr "Extrahovat poznámky pro překladatele z:" msgid "Comments prefixed with:" msgstr "Komentáře začínající řetězcem:" msgid "All comments" msgstr "Všechny komentáře" msgid "Additional xgettext flags:" msgstr "Další parametry pro xgettext:" msgid "Additional keywords" msgstr "Další klíčová slova" msgid "Name of the project the translation is for" msgstr "Název projektu, pro který je překlad určen" msgid "Team name and email address or URL" msgstr "Název týmu a e-mailová adresa nebo URL" msgid "e.g. nplurals=2; plural=(n > 1);" msgstr "například nplurals=2; plural=(n > 1);" msgid "UTF-8 (recommended)" msgstr "UTF-8 (doporučeno)" msgid "Please save the file first. This section cannot be edited until then." msgstr "Nejdříve soubor uložte, jinak nebude možné tuto sekci editovat." msgid "Not all plural forms are translated." msgstr "Nejsou přeloženy všechny formy plurálu." msgid "The translation should start as a sentence." msgstr "Překlad by měl začínat jako věta." msgid "The translation should start with a lowercase character." msgstr "Překlad by měl začínat malým písmenem." msgid "The translation doesn’t start with a space." msgstr "Na začátku překladu chybí mezera." msgid "The translation starts with a space, but the source text doesn’t." msgstr "Na začátku překladu je mezera, která není ve zdrojovém textu." msgid "The translation is missing a newline at the end." msgstr "Na konci překladu chybí odřádkování." msgid "The translation ends with a newline, but the source text doesn’t." msgstr "Na konci překladu je odřádkování, které není ve zdrojovém textu." msgid "The translation is missing a space at the end." msgstr "Na konci překladu chybí mezera." msgid "The translation ends with a space, but the source text doesn’t." msgstr "Na konci překladu je mezera, která není ve zdrojovém textu." #, c-format msgid "The translation should end with “%s”." msgstr "Překlad by měl být ukončen „%s“." #, c-format msgid "The translation should not end with “%s”." msgstr "Překlad by neměl být ukončen „%s“." #, c-format msgid "The translation ends with “%s”, but the source text ends with “%s”." msgstr "Překlad je ukončen „%s“, ale zdrojový text je ukončen „%s“." msgid "Comment:" msgstr "Komentář:" msgid "OK" msgstr "OK" msgid "C&lear" msgstr "&Smazat" msgid "Clear the comment" msgstr "Odstranit komentář" msgid "New" msgstr "Nový" msgid "Create new translations project" msgstr "Vytvořit nový překladový projekt" msgid "Edit" msgstr "Upravit" msgid "Edit the project" msgstr "Upravit projekt" msgid "Delete the project" msgstr "Smazat projekt" msgid "Update all" msgstr "Aktualizovat všechny katalogy" msgid "Update all catalogs in the project" msgstr "Aktualizovat všechny katalogy v projektu" msgid "Edit project" msgstr "Upravit projekt" msgid "Project name:" msgstr "Název projektu:" msgid "Browse" msgstr "Procházet" msgid "Add directory to the list" msgstr "Přidat adresář do seznamu" msgid "&New…" msgstr "&Nový…" msgid "New from &POT/PO file…" msgstr "Nový z &POT/PO souboru…" msgid "New From &POT/PO File…" msgstr "Nový z &POT/PO souboru…" msgid "&Open…" msgstr "&Otevřít…" msgid "Open Recent" msgstr "Otevřít poslední položku" msgid "Open from Crowdin…" msgstr "Otevřít z Crowdin…" msgid "Open From Crowdin…" msgstr "Otevřít z Crowdin…" msgid "&Close" msgstr "&Zavřít" msgid "&Save" msgstr "&Uložit" msgid "Save &as…" msgstr "Uložit j&ako…" msgid "Save &As…" msgstr "Uložit j&ako…" msgid "Compile to MO…" msgstr "Zkompilovat do MO…" msgid "E&xport as HTML…" msgstr "E&xportovat jako HTML…" msgid "Check for updates…" msgstr "Vyhledat aktualizace…" msgid "&Preferences…" msgstr "Nasta&vení…" msgid "Catalogs &manager" msgstr "Správce &katalogů" msgid "Catalogs &Manager" msgstr "Správce &katalogů" msgid "E&xit" msgstr "&Konec" msgid "Quit" msgstr "Ukončit" msgid "Copy from singular" msgstr "Zkopírovat ze singuláru" msgid "Copy From Singular" msgstr "Zkopírovat ze singuláru" msgid "Translation needs &work" msgstr "&Překlad vyžaduje pozornost" msgid "Translation Needs &Work" msgstr "&Překlad vyžaduje pozornost" msgid "Edit &comment" msgstr "Upravit &komentář" msgid "Edit &Comment" msgstr "Upravit &komentář" msgid "Suggestions" msgstr "Návrhy" msgid "&Find…" msgstr "&Najít…" msgid "Replace…" msgstr "Na&hradit…" msgid "Find next" msgstr "Najít další" msgid "Find previous" msgstr "Najít předchozí" msgid "Find and Replace…" msgstr "Najít a nahradit…" msgid "Find Next" msgstr "Najít další" msgid "Find Previous" msgstr "Najít předchozí" msgid "&Preferences" msgstr "Nasta&vení" msgid "Display entry &IDs" msgstr "Zobrazit &ID položek" msgid "Display Entry &IDs" msgstr "Zobrazit &ID položek" msgid "Sort by &file order" msgstr "Seřadit podle pořadí v &souboru" msgid "Sort by &File Order" msgstr "Seřadit podle pořadí v &souboru" msgid "Sort by &source" msgstr "Seřadit podle &zdrojového textu" msgid "Sort by &Source" msgstr "Seřadit podle &zdrojového textu" msgid "Sort by &translation" msgstr "Seřadit podle &překladu" msgid "Sort by &Translation" msgstr "Seřadit podle &překladu" msgid "&Group by context" msgstr "S&eskupit podle kontextu" msgid "&Group By Context" msgstr "S&eskupit podle kontextu" msgid "Entries with errors first" msgstr "Položky s chybami jako první" msgid "Entries with Errors First" msgstr "Položky s chybami jako první" msgid "&Untranslated entries first" msgstr "&Nepřeložené položky jako první" msgid "&Untranslated Entries First" msgstr "&Nepřeložené položky jako první" msgid "&Show references" msgstr "&Zobrazit odkazy" msgid "&Show References" msgstr "&Zobrazit odkazy" msgid "Show sidebar" msgstr "Zobrazit postranní panel" msgid "Show status bar" msgstr "Zobrazit stavový řádek" msgid "C&atalog" msgstr "&Katalog" msgid "&Update from sources" msgstr "&Aktualizovat ze zdrojového kódu" msgid "&Update from Sources" msgstr "&Aktualizovat ze zdrojového kódu" msgid "Update from &POT file…" msgstr "Aktualizovat z &POT souboru…" msgid "Update from &POT File…" msgstr "Aktualizovat z &POT souboru…" msgid "Sync with Crowdin" msgstr "Synchronizovat s Crowdin" msgid "Pre-&translate…" msgstr "Před-přeloži&t…" msgid "&Purge deleted translations" msgstr "&Smazat staré překlady" msgid "&Purge Deleted Translations" msgstr "&Smazat staré překlady" msgid "&Validate translations" msgstr "&Zkontrolovat překlad" msgid "&Validate Translations" msgstr "&Zkontrolovat překlad" msgid "&Properties…" msgstr "&Vlastnosti…" msgid "&Done and next" msgstr "&Hotovo a další" msgid "&Done and Next" msgstr "&Hotovo a další" msgid "&Previous translation" msgstr "&Předchozí překlad" msgid "&Previous Translation" msgstr "&Předchozí překlad" msgid "&Next translation" msgstr "&Další překlad" msgid "&Next Translation" msgstr "&Další překlad" msgid "P&revious unfinished" msgstr "Předchozí ne&dokončená" msgid "P&revious Unfinished" msgstr "Předchozí ne&dokončená" msgid "Ne&xt unfinished" msgstr "Další &nedokončená" msgid "Ne&xt Unfinished" msgstr "Další &nedokončená" msgid "Previous plural form" msgstr "Předchozí forma plurálu" msgid "Previous Plural Form" msgstr "Předchozí forma plurálu" msgid "Next plural form" msgstr "Další forma plurálu" msgid "Next Plural Form" msgstr "Další forma plurálu" msgid "&Online help" msgstr "&Nápověda online" msgid "&Online Help" msgstr "&Nápověda online" msgid "&GNU gettext manual" msgstr "Dokumentace GNU gettext" msgid "&GNU gettext Manual" msgstr "Dokumentace GNU gettext" msgid "&About Poedit" msgstr "&O aplikaci Poedit" msgid "&About" msgstr "&O aplikaci" msgid "Extractor setup" msgstr "Nastavení extraktoru" msgid "List of extensions separated by semicolons (e.g. *.cpp;*.h):" msgstr "Seznam přípon oddělených středníky (např. *.cpp;*.h):" msgid "Invocation:" msgstr "Spuštění:" msgid "Command to extract translations:" msgstr "Příkaz pro extrakci překladů:" msgid "" "This is the command used to launch the extractor.\n" "%o expands to the name of output file, %K to list\n" "of keywords, %F to list of input files,\n" "%C to charset flag (see below)." msgstr "" "Tento příkaz bude použit ke spuštění extraktoru.\n" "%o bude nahrazeno názvem výstupního souboru,\n" "%K seznamem klíčových slov, %F seznamem\n" "vstupních souborů a %C parametrem znakové sady (viz níže)." msgid "An item in keywords list:" msgstr "Položka seznamu klíčových slov:" msgid "" "This will be attached to the command line once\n" "for each keyword. %k expands to the keyword." msgstr "" "Tento parametr bude do příkazové řádky vložen jednou pro každé\n" "klíčové slovo. %k bude nahrazeno klíčovým slovem." msgid "An item in input files list:" msgstr "Položka seznamu vstupních souborů:" #, c-format msgid "" "This will be attached to the command line once\n" "for each input file. %f expands to the filename." msgstr "" "Tento parametr bude do příkazové řádky vložen jednou pro každý\n" "vstupní soubor. %f bude nahrazeno názvem souboru." msgid "Source code charset:" msgstr "Znaková sada zdrojáků:" #, c-format msgid "" "This will be attached to the command line\n" "only if source code charset was given. %c expands to charset value." msgstr "" "Tento parametr bude do příkazové řádky vložen jen pokud byla zadána\n" "znaková sada zdrojových souborů. %c bude nahrazeno znakovou sadou." msgid "Catalog properties" msgstr "Vlastnosti katalogu" msgid "Project name and version:" msgstr "Název a verze projektu:" msgid "Language team:" msgstr "Překladatelský tým:" msgid "Plural forms:" msgstr "Formy plurálu:" msgid "Use default rules for this language" msgstr "Použít výchozí pravidla pro tento jazyk" msgid "Use custom expression" msgstr "Použít vlastní výraz" msgid "Learn about plural forms" msgstr "Podrobnosti o formách plurálu" msgid "Charset:" msgstr "Znaková sada:" msgid "Advanced Extraction Settings…" msgstr "Pokročilá nastavení extrakce…" msgid "Advanced extraction settings…" msgstr "Pokročilá nastavení extrakce…" msgid "Translation Properties" msgstr "Vlastnosti překladu" msgid "Translation properties" msgstr "Vlastnosti překladu" msgid "Sources Paths" msgstr "Prohledávané cesty" msgid "Sources paths" msgstr "Prohledávané cesty" msgid "Extract text from source files in the following directories:" msgstr "Extrahovat text ze zdrojových souborů v těchto adresářích:" msgid "Base path:" msgstr "Základní cesta:" msgid "Sources Keywords" msgstr "Klíčová slova" msgid "Sources keywords" msgstr "Klíčová slova" msgid "" "Use these keywords (function names) to recognize translatable strings\n" "in source files:" msgstr "" "Uvedená klíčová slova (názvy funkcí) se použijí k rozeznání přeložitelných\n" "řetězců ve zdrojovém kódu:" msgid "Also use default keywords for supported languages" msgstr "Použít také výchozí klíčová slova pro podporované jazyky" msgid "Learn About Gettext Keywords" msgstr "Podrobnosti o klíčových slovech gettext" msgid "Learn about gettext keywords" msgstr "Podrobnosti o klíčových slovech gettext" msgid "Update summary" msgstr "Výsledek aktualizace" msgid "" "These strings were found in the sources but were not in the catalog.\n" "Poedit will add them to the catalog now." msgstr "" "Tyto řetězce se vyskytují ve zdrojácích, ale nejsou v katalogu.\n" "Poedit je nyní do katalogu přidá." msgid "New strings" msgstr "Nové řetězce" msgid "" "These strings are no longer in the sources.\n" "Poedit will remove them from the catalog now." msgstr "" "Tyto řetězce již nejsou ve zdrojácích.\n" "Poedit je nyní z katalogu odstraní." msgid "Obsolete strings" msgstr "Odstraněné řetězce" msgid "(0 new, 0 obsolete)" msgstr "(0 nových, 0 odstraněných)" msgid "Open" msgstr "Otevřít" msgid "Save catalog" msgstr "Uložit katalog" msgid "Validate" msgstr "Zkontrolovat" msgid "Check for errors in the translation" msgstr "Zkontrolovat, zda překlad neobsahuje chyby" msgid "Update" msgstr "Aktualizovat" msgid "Update catalog - synchronize it with sources" msgstr "Aktualizovat katalog - synchronizovat jej se zdrojovými kódy" msgid "Sidebar" msgstr "Postranní panel" msgid "Show or hide the sidebar" msgstr "Zobrazit nebo skrýt postranní panel" #. TRANSLATORS: "Previous" as in used in the past, now replaced with newer. msgid "Previous source text:" msgstr "Původní zdrojový text:" msgid "" "The old source text (before it changed during an update) that the now-" "inaccurate translation corresponds to." msgstr "" "Původní zdrojový text (než byl při aktualizaci změněn), kterému odpovídá " "použitý a nyní nepřesný překlad." msgid "Notes for translators:" msgstr "Poznámky pro překladatele:" msgid "Add comment" msgstr "Přidat komentář" msgid "Add Comment" msgstr "Přidat komentář" msgid "Translation suggestions:" msgstr "Návrhy překladu:" #. TRANSLATORS: This is shown when no translation suggestions can be found in the TM (Windows). msgid "No matches found" msgstr "Nenalezena žádná shoda" #. TRANSLATORS: This is shown when no translation suggestions can be found in the TM (macOS, Linux). msgid "No Matches Found" msgstr "Nenalezena žádná shoda" msgid "This string was found in Poedit’s translation memory." msgstr "Tento řetězec byl nalezen v překladové paměti Poeditu." msgid "Cannot create temporary directory." msgstr "Nelze vytvořit adresář na dočasné soubory." msgid "Welcome to Poedit" msgstr "Vítá vás Poedit" #. TRANSLATORS: This is version information in about dialog, "%s" will be #. version number when used #, c-format msgid "Version %s" msgstr "Verze %s" msgid "Edit a Translation" msgstr "Upravit překlad" msgid "Edit a translation" msgstr "Upravit překlad" msgid "Open an existing PO file and edit the translation." msgstr "Otevře existující PO katalog a umožní jeho úpravu." msgid "" "Take an existing PO file or POT template and create a new translation from " "it." msgstr "" "Použije existující soubor PO nebo POT jako šablonu pro vytvoření nového " "překladu." msgid "Collaborate on a Translation with Others" msgstr "Spolupracovat na překladu s ostatními" msgid "Collaborate on a translation with others" msgstr "Spolupracovat na překladu s ostatními" msgid "" "Download a file from Crowdin project, translate and sync your changes back." msgstr "" "Stáhne soubor z Crowdin projektu a po jeho překladu synchronizuje provedené " "změny zpět." msgid "What is Crowdin?" msgstr "Co je Crowdin?" msgid "There are no translations. That’s unusual." msgstr "V souboru nejsou žádné překlady. To je neobvyklé." msgid "" "Translatable entries aren’t added manually in the Gettext system, but are " "automatically extracted\n" "from source code. This way, they stay up to date and accurate.\n" "Translators typically use PO template files (POTs) prepared for them by the " "developer." msgstr "" "Při použití systému gettext nejsou položky překladu přidávány ručně, ale " "jsou\n" "automaticky extrahovány ze zdrojového kódu. Tak zůstávají aktuální a " "přesné.\n" "Překladatelé většinou používají PO šablony (soubory POT) připravené vývojáři." msgid "(Learn more about GNU gettext)" msgstr "(další informace o GNU gettext)" msgid "The simplest way to fill this catalog is to update it from a POT:" msgstr "" "Nejjednodušším způsobem naplnění tohoto katalogu je jeho aktualizace z POT " "souboru:" msgid "Update from POT" msgstr "Aktualizovat z POT souboru" msgid "Take translatable strings from an existing POT template." msgstr "Načte přeložitelné řetězce z existující POT šablony." msgid "" "You can also extract translatable strings directly from the source code:" msgstr "Přeložitelné řetězce můžete také extrahovat přímo ze zdrojového kódu:" msgid "Extract from sources" msgstr "Extrahovat ze zdrojových souborů" msgid "Configure source code extraction in Properties." msgstr "" "Parametry pro extrakci ze zdrojového kódu nastavte ve Vlastnostech katalogu." msgid "Sync" msgstr "Synchronizovat" msgid "Synchronize the translation with Crowdin" msgstr "Synchronizovat překlad s Crowdin" #. TRANSLATORS: This is titlebar of about dialog, "%s" is application name #. ("Poedit" here, but please use "%s") #, c-format msgid "About %s" msgstr "O aplikaci %s" #. TRANSLATORS: Title of the preferences window on Windows and Linux. "%s" is replaced with "Poedit" when running. #, c-format msgid "%s Preferences" msgstr "Nastavení %su" #. TRANSLATORS: macOS item in app menu msgid "Services" msgstr "Služby" #. TRANSLATORS: macOS item in app menu, %s is replaced with "Poedit" #, c-format msgid "Hide %s" msgstr "Skrýt %s" #. TRANSLATORS: macOS item in app menu msgid "Hide Others" msgstr "Skrýt ostatní" #. TRANSLATORS: macOS item in app menu msgid "Show All" msgstr "Zobrazit vše" #. TRANSLATORS: macOS item in app menu, %s is replaced with "Poedit" #, c-format msgid "Quit %s" msgstr "Ukončit %s" #. TRANSLATORS: macOS item in app menu msgid "Preferences…" msgstr "Nasta&vení…" msgid "Preferences..." msgstr "Předvolby..." #. TRANSLATORS: Title of a category in Windows task menu (right-click icon in taskbar) msgid "Recent" msgstr "Poslední" #. TRANSLATORS: Title of a category in Windows task menu (right-click icon in taskbar) msgid "Frequent" msgstr "Časté" msgid "&Apply" msgstr "&Použít" msgid "Apply" msgstr "Použít" msgid "&Back" msgstr "&Zpět" msgid "Back" msgstr "Zpět" msgid "&Cancel" msgstr "&Storno" msgid "&Clear" msgstr "&Vymazat" msgid "Clear" msgstr "Vymazat" msgid "Copy" msgstr "Kopírovat" msgid "Cu&t" msgstr "Vyjmou&t" msgid "Cut" msgstr "Vyjmout" msgid "&Delete" msgstr "&Smazat" msgid "&Quit" msgstr "&Konec" msgid "File" msgstr "Soubor" msgid "Help" msgstr "Nápověda" msgid "&New" msgstr "&Nový" msgid "&No" msgstr "N&e" msgid "No" msgstr "Ne" msgid "&OK" msgstr "&OK" msgid "Open…" msgstr "Otevřít…" msgid "&Open..." msgstr "&Otevřít..." msgid "Open..." msgstr "Otevřít..." msgid "&Paste" msgstr "&Vložit" msgid "Paste" msgstr "Vložit" msgid "Preferences" msgstr "Předvolby" msgid "&Redo" msgstr "P&rovést znovu" msgid "Refresh" msgstr "Aktualizovat" msgid "&Save as" msgstr "Uložit &jako" msgid "Save as" msgstr "Uložit jako" msgid "Select &All" msgstr "Vybr&at vše" msgid "Select All" msgstr "Vybrat vše" msgid "&Undo" msgstr "&Zpět" msgid "&Yes" msgstr "&Ano" msgid "Yes" msgstr "Ano" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Shift+" msgstr "Shift+" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Enter" msgstr "Enter" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Up" msgstr "Nahoru" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Down" msgstr "Dolů" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Left" msgstr "Doleva" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Right" msgstr "Doprava" #. TRANSLATORS: Keyboard shortcut, must correspond to translation of "Ctrl+" msgid "ctrl" msgstr "ctrl" #. TRANSLATORS: Keyboard shortcut, must correspond to translation of "Alt+" msgid "alt" msgstr "alt" #. TRANSLATORS: Keyboard shortcut, must correspond to translation of "Shift+" msgid "shift" msgstr "shift" poedit-2.0.6/locales/README0000664000372000037200000000042013230131554012217 00000000000000 Poedit translations are managed at Crowdin and the best way to contribute translations is to do it over there: https://crowdin.com/project/poedit (Note that you can download the PO file, edit it in Poedit and upload back; you don't have to use the web interface.) poedit-2.0.6/locales/ru.po0000664000372000037200000020706213230131554012340 00000000000000msgid "" msgstr "" "Project-Id-Version: poedit\n" "Report-Msgid-Bugs-To: help@poedit.net\n" "POT-Creation-Date: 2017-12-05 15:52+0100\n" "PO-Revision-Date: 2017-12-05 09:49-0500\n" "Last-Translator: vslavik \n" "Language-Team: Russian\n" "Language: ru_RU\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" "%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" "X-Generator: crowdin.com\n" "X-Crowdin-Project: poedit\n" "X-Crowdin-Language: ru\n" "X-Crowdin-File: /locales/poedit.pot\n" msgid "Hide this notification message" msgstr "Не показывать это уведомление" msgid "Don’t Show Again" msgstr "Больше не показывать" msgid "Don’t show again" msgstr "Больше не показывать" #, c-format msgid "(New: %i, obsolete: %i)" msgstr "(Новых: %i, устаревших: %i)" msgid "Updating catalog" msgstr "Обновление каталога" msgid "Collecting source files…" msgstr "Сбор данных в исходных файлах…" msgid "Extracting translatable strings…" msgstr "Извлечение переводимых строк…" msgid "Failed to load extracted catalog." msgstr "Не удалось загрузить извлечённый каталог." msgid "Merging differences…" msgstr "Слияние различий…" #, c-format msgid "“%s” is not a valid POT file." msgstr "«%s» не является корректным POT-файлом." #, c-format msgid "%i line of file “%s” was not loaded correctly." msgid_plural "%i lines of file “%s” were not loaded correctly." msgstr[0] "%i строка файла \"%s\" не была корректно загружена." msgstr[1] "%i строк файла \"%s\" не была корректно загружено." msgstr[2] "%i строк файла \"%s\" не было корректно загружено." #, c-format msgid "Line %d of file “%s” is corrupted (not valid %s data)." msgstr "" "Строка %d файла «%s» повреждена (недопустимая последовательность в %s)." #, c-format msgid "Malformed header: “%s”" msgstr "Недопустимый формат заголовка: «%s»" msgid "" "Broken catalog file: singular form msgstr used together with msgid_plural" msgstr "" "Ошибка в файле каталога: форма единственного числа msgstr использована " "вместе с msgid_plural" msgid "Broken catalog file: plural form msgstr used without msgid_plural" msgstr "" "Ошибка в файле каталога: форма множественного числа msgstr использована без " "msgid_plural" msgid "" "There were errors when loading the catalog. Some data may be missing or " "corrupted as the result." msgstr "" "При загрузке каталога возникли ошибки. В результате некоторые данные могут " "быть повреждены или отсутствовать." #, c-format msgid "Couldn’t load file %s, it is probably corrupted." msgstr "Не удалось загрузить файл %s. Возможно, он повреждён." #, c-format msgid "" "File “%s” is read-only and cannot be saved.\n" "Please save it under different name." msgstr "" "Файл «%s» доступен только для чтения, и его нельзя сохранить.\n" "Сохраните файл под другим именем." #, c-format msgid "Couldn’t save file %s." msgstr "Не удалось сохранить файл %s." msgid "" "There was a problem formatting the file nicely (but it was saved all right)." msgstr "" "Возникла проблема при форматировании файла (но он был успешно сохранён)." #, c-format msgid "" "The catalog couldn’t be saved in “%s” charset as specified in catalog " "settings.\n" "\n" "It was saved in UTF-8 instead and the setting was modified accordingly." msgstr "" "Каталог не удалось сохранить в кодировке «%s», как указано в его " "настройках.\n" "\n" "Вместо этого он был сохранён в кодировке UTF-8 и настройки были " "соответственно изменены." msgid "Error saving catalog" msgstr "Не удалось сохранить каталог" msgid "PO Translation Files" msgstr "Файлы перевода PO" msgid "POT Translation Templates" msgstr "Шаблоны перевода POT" msgid "All Translation Files" msgstr "Все файлы переводов" msgid "(Use default language)" msgstr "(Использовать язык по умолчанию)" msgid "Select your preferred language" msgstr "Выберите предпочитаемый язык" msgid "Language selection" msgstr "Выбор языка" msgid "You must restart Poedit for this change to take effect." msgstr "Чтобы это изменение вступило в силу, необходимо перезапустить Poedit." msgid "Syncing" msgstr "Синхронизация" #. TRANSLATORS: %s is a cloud destination, e.g. "Crowdin" or ftp.wordpress.com etc. #, c-format msgid "Syncing with %s…" msgstr "Синхронизация с %s…" #. TRANSLATORS: %s is a cloud destination, e.g. "Crowdin" or ftp.wordpress.com etc. #, c-format msgid "Syncing with %s failed." msgstr "Не удалось синхронизировать с %s." msgid "Syncing error" msgstr "Ошибка синхронизации" msgid "Downloading translations is disabled in this project." msgstr "Загрузка переводов отключена в этом проекте." msgid "Not authorized, please sign in again." msgstr "Не авторизовано, пожалуйста войдите снова." msgid "" "Crowdin is an online localization management platform and collaborative " "translation tool. Poedit can seamlessly sync PO files managed at Crowdin." msgstr "" "Crowdin — это онлайн-платформа локализации и совместного перевода. Poedit " "может синхронизировать PO-файлы с Crowdin." msgid "Sign In" msgstr "Войти в систему" msgid "Sign in" msgstr "Войти" msgid "Sign Out" msgstr "Выйти" msgid "Sign out" msgstr "Выйти" msgid "Waiting for authentication…" msgstr "Ожидание аутентификации…" msgid "Updating user information…" msgstr "Обновление информации о пользователе…" msgid "Signed in as:" msgstr "Вы вошли как:" msgid "Learn More About Crowdin" msgstr "Подробнее о Crowdin" msgid "Learn more about Crowdin" msgstr "Подробнее о Crowdin" msgid "Sign in to Crowdin" msgstr "Войти в Crowdin" msgid "Open Crowdin translation" msgstr "Открыть перевод Crowdin" msgid "Project:" msgstr "Проект:" msgid "Language:" msgstr "Язык:" msgid "File:" msgstr "Файл:" msgid "No translation projects listed in your Crowdin account." msgstr "В вашей учетной записи Crowdin нет проектов перевода." msgid "This project has no files that can be translated in Poedit." msgstr "В этом проекте нет файлов, которые можно перевести в Poedit." msgid "This file can only be edited in Crowdin’s web interface." msgstr "Этот файл можно править только в веб-интерфейсе Crowdin." msgid "Downloading latest translations…" msgstr "Загружаются последние переводы…" msgid "Syncing with Crowdin failed." msgstr "Синхронизация с Crowdin не удалась." msgid "Crowdin error" msgstr "Ошибка Crowdin" msgid "Uploading translations…" msgstr "Выгрузка переводов…" msgid "&Copy" msgstr "&Копировать" msgid "Learn more" msgstr "Подробнее" msgid "Learn More" msgstr "Узнать больше" msgid "&Help" msgstr "&Справка" msgid "MO files can’t be directly edited in Poedit." msgstr "Файлы MO нельзя редактировать непосредственно в Poedit." msgid "Error opening file" msgstr "Ошибка при открытии файла" msgid "" "Please open and edit the corresponding PO file instead. When you save it, " "the MO file will be updated as well." msgstr "" "Вместо этого откройте и измените соответствующий файл PO. Когда вы сохраните " "его, файл MO тоже обновится." msgid "don’t delete temporary files (for debugging)" msgstr "не удалять временные файлы (для отладки)" msgid "handle a poedit:// URI" msgstr "открывать адреса poedit://" msgid "go to item at given line number" msgstr "перейти к элементу с заданным номером строки" msgid "Failed to communicate with Poedit process." msgstr "Не удалось подключиться к процессу Poedit." #, c-format msgid "Unhandled exception occurred: %s" msgstr "Произошло непредвиденное исключение: %s" msgid "Open catalog" msgstr "Открыть каталог" #, c-format msgid "File “%s” doesn’t exist." msgstr "Файл «%s» не существует." msgid "Poedit is an easy to use translations editor." msgstr "Poedit — это простой в использовании редактор переводов." msgid "Catalogs Manager" msgstr "Диспетчер каталогов" msgid "Check for Updates…" msgstr "Проверить наличие обновлений…" msgid "&Edit" msgstr "&Правка" msgid "Undo" msgstr "Отменить" msgid "Redo" msgstr "Вернуть" msgid "Paste and Match Style" msgstr "Стиль копирования и вставки" msgid "Delete" msgstr "Удалить" msgid "Spelling and Grammar" msgstr "Проверка правописания" msgid "Show Spelling and Grammar" msgstr "Показывать ошибки правописания" msgid "Check Document Now" msgstr "Проверить документ" msgid "Check Spelling While Typing" msgstr "Проверять правописание во время ввода" msgid "Check Grammar With Spelling" msgstr "Проверять также и грамматику" msgid "Correct Spelling Automatically" msgstr "Автоматически исправлять ошибки правописания" msgid "Substitutions" msgstr "Замены" msgid "Show Substitutions" msgstr "Показывать варианты замены" msgid "Smart Copy/Paste" msgstr "Интеллектуальное копирование и вставка" msgid "Smart Quotes" msgstr "Интеллектуальные кавычки" msgid "Smart Dashes" msgstr "Интеллектуальная расстановка переносов" msgid "Smart Links" msgstr "Интеллектуальные ссылки" msgid "Text Replacement" msgstr "Замена текста" msgid "Transformations" msgstr "Преобразования" msgid "Make Upper Case" msgstr "Прописные" msgid "Make Lower Case" msgstr "Строчные" msgid "Capitalize" msgstr "С заглавной буквы" msgid "Speech" msgstr "Речь" msgid "Start Speaking" msgstr "Начать озвучивание" msgid "Stop Speaking" msgstr "Остановить озвучивание" msgid "&View" msgstr "&Вид" msgid "Enter Full Screen" msgstr "Перейти в полноэкранный режим" msgid "Window" msgstr "Окно" msgid "Minimize" msgstr "Свернуть" msgid "Zoom" msgstr "Масштаб" msgid "Bring All to Front" msgstr "Поместить все окна на передний план" #. TRANSLATORS:File kind displayed in Finder/Explorer msgid "PO Translation" msgstr "Файл перевода PO" msgid "The file cannot be opened." msgstr "Не удается открыть файл." msgid "Invalid file" msgstr "Недопустимый файл" msgid "" "The file may be either corrupted or in a format not recognized by Poedit." msgstr "Файл, возможно, повреждён или имеет формат, не поддерживаемый Poedit." msgid "You can’t drop more than one file on Poedit window." msgstr "В окно Poedit можно перетащить только один файл." #, c-format msgid "File “%s” is not a message catalog." msgstr "Файл «%s» не является каталогом сообщений." msgid "Poedit" msgstr "Poedit" msgid "&File" msgstr "&Файл" msgid "&Go" msgstr "&Перейти" #. TRANSLATORS: %s is language name in its basic form (as you #. would see e.g. in a list of supported languages). You may need #. to rephrase it, e.g. to an equivalent of "for language %s". #, c-format msgid "" "Spellchecking is disabled, because the dictionary for %s isn’t installed." msgstr "" "Проверка правописания отключена, так как словарь для языка %s не установлен." msgid "Install" msgstr "Установить" msgid "Catalog modified. Do you want to save changes?" msgstr "Каталог изменён. Сохранить изменения?" msgid "Save changes" msgstr "Сохранение изменений" msgid "Your changes will be lost if you don’t save them." msgstr "Ваши изменения будут потеряны, если не сохранить их." msgid "Save" msgstr "Сохранить" msgid "Don’t save" msgstr "Не сохранять" msgid "Don’t Save" msgstr "Не сохранять" msgid "Save as…" msgstr "Сохранить как…" msgid "Compile to…" msgstr "Компилировать в…" msgid "Compiled Translation Files" msgstr "Скомпилированные файлы перевода" msgid "Export as…" msgstr "Экспортировать как…" msgid "HTML Files" msgstr "Файлы HTML" msgid "Open catalog template" msgstr "Открыть шаблон каталога" msgid "Source code not available." msgstr "Исходный код недоступен." msgid "Updating failed" msgstr "Не удалось обновить" msgid "" "Translations couldn’t be updated from the source code, because no code was " "found in the location specified in the catalog’s Properties." msgstr "" "Переводы не могут быть обновлены из исходного кода, т.к. исходный код не был " "найден в папке, указанной в свойствах каталога." msgid "Entries in the catalog are probably incorrect." msgstr "Элементы каталога, возможно, неверны." msgid "Updating the catalog failed. Click on 'Details >>' for details." msgstr "" "Не удалось обновить каталог. Нажмите кнопку «Подробности >>» для получения " "дополнительных сведений." #, c-format msgid "%d issue with the translation found." msgid_plural "%d issues with the translation found." msgstr[0] "В переводе найдена %d проблема." msgstr[1] "В переводе найдены %d проблемы." msgstr[2] "В переводе найдено %d проблем." msgid "Validation results" msgstr "Результаты проверки" msgid "" "Entries with errors were marked in red in the list. Details of the error " "will be shown when you select such an entry." msgstr "" "Записи с ошибками были выделены в списке красным цветом. Если выбрать такую " "запись, будут показаны подробные сведения об ошибке." msgid "The file was saved safely." msgstr "Файл был успешно сохранён." msgid "" "The file was saved safely and compiled into the MO format, but it will " "probably not work correctly." msgstr "" "Файл был сохранён и скомпилирован в формат MO. Но он может работать " "некорректно." msgid "" "The file was saved safely, but it cannot be compiled into the MO format and " "used." msgstr "" "Файл был сохранён, но его не удалось скомпилировать в формат MO и " "использовать." msgid "" "The file was compiled into the MO format, but it will probably not work " "correctly." msgstr "" "Файл был скомпилирован в формат MO, но скорее всего не будет правильно " "работать." msgid "The file cannot be compiled into the MO format and used." msgstr "" "Не удаётся скомпилировать данный файл в формат MO для дальнейшего " "использования." msgid "No problems with the translation found." msgstr "Не найдено проблем с переводом." #, c-format msgid "The translation is ready for use, but %d entry is not translated yet." msgid_plural "" "The translation is ready for use, but %d entries are not translated yet." msgstr[0] "Перевод готов к использованию, но %d запись ещё не переведена." msgstr[1] "Перевод готов к использованию, но %d записи ещё не переведено." msgstr[2] "Перевод готов к использованию, но %d записей ещё не переведено." msgid "The translation is ready for use." msgstr "Перевод готов к использованию." #, c-format msgid "Poedit automatically fixed invalid content in the file “%s”." msgstr "Poedit автоматически исправил неверное содержимое в файле «%s»." msgid "" "The file contained duplicate items, which is not allowed in PO files and " "would prevent the file from being used. Poedit fixed the issue, but you " "should review translations of any items marked as needing work and correct " "them if necessary." msgstr "" "Этот файл содержал в себе повторяющиеся элементы, которые недопустимы в " "файлах PO и могли бы помешать его использованию. Poedit исправил проблему, " "но следует просмотреть все переводы, помеченные как требующие доработки, и " "исправить их при необходимости." msgid "Language of the translation isn’t set." msgstr "Язык перевода не указан." msgid "Set Language" msgstr "Выбор языка" msgid "Set language" msgstr "Задать язык" #. TRANSLATORS: This is shown underneath "Language of the translation isn't set (or ...is the same as source language)." msgid "" "Suggestions are not available if the translation language is not set " "correctly. Other features, such as plural forms, may be affected as well." msgstr "" "Предложения недоступны, пока не выбран язык перевода. Также не будут " "поддерживаться формы множественного числа и другие функции." msgid "Language of the translation is the same as source language." msgstr "Язык перевода совпадает с исходным языком." msgid "Fix Language" msgstr "Исправить язык" msgid "Fix language" msgstr "Исправить язык" msgid "" "This catalog has entries with plural forms, but doesn’t have Plural-Forms " "header configured." msgstr "" "В данном каталоге есть записи с формами множественного числа, но нет " "заголовка Plural-Forms." msgid "" "Entries in this catalog have different plural forms count from what " "catalog’s Plural-Forms header says" msgstr "" "Записи в этом каталоге имеют количество форм множественного числа, отличное " "от указанного в заголовке Plural-Forms" msgid "Required header Plural-Forms is missing." msgstr "Необходимый заголовок Plural-Forms отсутствует." #, c-format msgid "Syntax error in Plural-Forms header (\"%s\")." msgstr "Ошибка синтаксиса в заголовке Plural-Forms («%s»)." msgid "Fix the Header" msgstr "Исправить заголовок" msgid "Fix the header" msgstr "Исправить заголовок" #. TRANSLATORS: %s is language name in its basic form (as you #. would see e.g. in a list of supported languages). You may need #. to rephrase it, e.g. to an equivalent of "for language %s". #, c-format msgid "Plural forms expression used by the catalog is unusual for %s." msgstr "" "Выражение формы множественного числа, используемое в каталоге, является " "необычным для языка %s." #. TRANSLATORS: A verb, shown as action button with ""Plural forms expression used by the catalog is unusual for %s.")" msgid "Review" msgstr "Проверить" #, c-format msgid "Error loading message catalog file “%s”." msgstr "Ошибка загрузки файла каталога сообщений «%s»." #, c-format msgid "Translated: %d of %d (%d %%)" msgstr "Переведено: %d из %d (%d %%)" #, c-format msgid "Remaining: %d" msgstr "Осталось: %d" #, c-format msgid "%d error" msgid_plural "%d errors" msgstr[0] "%d ошибка" msgstr[1] "%d ошибки" msgstr[2] "%d ошибок" #, c-format msgid "%d entry" msgid_plural "%d entries" msgstr[0] "%d запись" msgstr[1] "%d записи" msgstr[2] "%d записей" msgid " (unsaved)" msgstr " (не сохранён)" msgid " (modified)" msgstr " (изменён)" #, c-format msgid "Failed to update translation memory: %s" msgstr "Не удалось обновить память переводов: %s" msgid "Purge deleted translations" msgstr "Убрать удалённые переводы" msgid "Do you want to remove all translations that are no longer used?" msgstr "Действительно удалить все неиспользуемые переводы?" msgid "" "If you continue with purging, all translations marked as deleted will be " "permanently removed. You will have to translate them again if they are added " "back in the future." msgstr "" "Если продолжить, то все переводы, помеченные как удалённые, будут " "безвозвратно удалены. Если они будут повторно добавлены в будущем, их " "придётся заново переводить." msgid "Keep" msgstr "Оставить" msgid "Purge" msgstr "Очистить" msgid "Copy from source text" msgstr "Копировать исходный текст" msgid "Copy from Source Text" msgstr "Копировать исходный текст" #. TRANSLATORS: This is the key shortcut used in menus on Windows, some languages call them differently #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Ctrl+" msgstr "Ctrl+" msgid "Clear translation" msgstr "Удалить перевод" msgid "Clear Translation" msgstr "Удалить перевод" msgid "Edit comment" msgstr "Править комментарий" msgid "Edit Comment" msgstr "Править комментарий" msgid "References:" msgstr "Ссылки:" msgid "&Bookmarks" msgstr "Зак&ладки" #. TRANSLATORS: This is the key shortcut used in menus on Windows, some languages call them differently #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Alt+" msgstr "Alt+" #, c-format msgid "Set bookmark %i" msgstr "Добавить закладку %i" #, c-format msgid "Go to bookmark %i" msgstr "Перейти к закладке %i" #, c-format msgid "Set Bookmark %i" msgstr "Добавить закладку %i" #, c-format msgid "Go to Bookmark %i" msgstr "Перейти к закладке %i" msgid "Hide Sidebar" msgstr "Скрыть боковую панель" msgid "Show Sidebar" msgstr "Показать боковую панель" msgid "Hide Status Bar" msgstr "Скрыть строку состояния" msgid "Show Status Bar" msgstr "Показать строку состояния" msgid "Source text:" msgstr "Исходный текст:" msgid "Singular:" msgstr "Единственное:" msgid "Plural:" msgstr "Множественное:" msgid "Translation:" msgstr "Перевод:" msgid "Pre-translated" msgstr "Черновой перевод" msgid "Needs Work" msgstr "Требуется доработка" #. TRANSLATORS: This indicates that the string's translation isn't final #. and has known problems. For example, it might be machine translated or #. fuzzy matched from an older string. The translation should be short and #. convey this. If it's problematic to translate it, "Needs review" is #. acceptable substitute, but note that the meaning is subtly different: #. "needs review" implies that somebody else should review the string after #. I am done with it (i.e. consider it good), while "needs work" implies I #. need to return to it and finish the translation. msgid "Needs work" msgstr "Требует проверки" msgid "" "POT files are only templates and don’t contain any translations themselves.\n" "To make a translation, create a new PO file based on the template." msgstr "" "Файлы POT являются шаблонами и не содержат переводов.\n" "Чтобы сделать перевод создайте файл PO из шаблона." msgid "Create New Translation" msgstr "Создать новый перевод" msgid "Create new translation" msgstr "Создать новый перевод" msgid "Everything" msgstr "Всё" #, c-format msgid "Form %i" msgstr "Форма %i" msgid "Singular" msgstr "Единственное" msgid "Zero" msgstr "Ноль" msgid "One" msgstr "Один" msgid "Two" msgstr "Два" msgid "Plural" msgstr "Множественное" msgid "Other" msgstr "Другое" #, c-format msgid "%s Format" msgstr "%s формат" #. TRANSLATORS: %s is replaced with language name, e.g. "PHP" or "C", so "PHP Format" etc." #, c-format msgid "%s format" msgstr "%s формат" msgid "Source text" msgstr "Исходный текст" #, c-format msgid "Translation — %s" msgstr "Перевод — %s" msgid "ID" msgstr "Код" #, c-format msgid "Source text — %s" msgstr "Исходный текст — %s" msgid "unknown language" msgstr "неизвестный язык" #, c-format msgid "Failed command: %s" msgstr "Сбой команды: %s" msgid "Failed to merge gettext catalogs." msgstr "Не удалось объединить каталоги gettext." msgid "Source file" msgstr "Исходный файл" msgid "Source file occurrence:" msgstr "Вхождение исходного файла:" msgid "Open in Editor" msgstr "Открыть в редакторе" msgid "Open in editor" msgstr "Открыть в редакторе" msgid "No references for the selected item." msgstr "Нет упоминаний для выбранного элемента." #, c-format msgid "Error opening file %s!" msgstr "Не удалось открыть файл «%s»!" msgid "Find" msgstr "Искать" msgid "Replace" msgstr "Заменить" #. TRANSLATORS: Expander in Find window for additional options (case sensitive etc.) msgid "Options" msgstr "Настройки" msgid "Ignore case" msgstr "Не учитывать регистр" msgid "Wrap around" msgstr "Искать по кругу" msgid "Whole words only" msgstr "Только полные слова" msgid "Find in source texts" msgstr "Искать в исходных текстах" msgid "Find in translations" msgstr "Искать в переводах" msgid "Find in comments" msgstr "Искать в комментариях" msgid "Close" msgstr "Закрыть" msgid "Replace &All" msgstr "Заменить &все" msgid "Replace &all" msgstr "Заменить &все" msgid "&Replace" msgstr "&Заменить" msgid "< &Previous" msgstr "< &Предыдущий" msgid "&Next >" msgstr "&Следующий >" msgid "String to find" msgstr "Искомая строка" msgid "Replacement string" msgstr "Строка замены" #, c-format msgid "Cannot execute program: %s" msgstr "Не удаётся выполнить программу: %s" msgid "Language Code or Name (e.g. en_GB)" msgstr "Код языка (например, ru_RU)" msgid "Translation Language" msgstr "Язык перевода" msgid "Language of the translation:" msgstr "Язык перевода:" msgid "Poedit - Catalogs manager" msgstr "Poedit — диспетчер каталогов" msgid "Catalog" msgstr "Каталог" msgid "Total" msgstr "Всего" msgid "Untrans" msgstr "Не переведено" msgid "Errors" msgstr "Ошибки" msgid "Last modified" msgstr "Последнее изменение" msgid "Select directory" msgstr "Выберите папку" msgid "Directories:" msgstr "Папки:" msgid "" msgstr "<без имени>" msgid "Do you want to delete the project?" msgstr "Действительно удалить проект?" msgid "Confirmation" msgstr "Подтверждение" msgid "" "Do you really want to do mass update of\n" "all catalogs in this project?" msgstr "Действительно обновить все каталоги в этом проекте?" msgid "Information about the translator" msgstr "Информация о переводчике" msgid "Name:" msgstr "Имя:" msgid "Your Name" msgstr "Ваше имя" msgid "Email:" msgstr "Электронная почта:" msgid "your_email@example.com" msgstr "vash_email@domain.com" msgid "" "Your name and email address are only used to set the Last-Translator header " "of GNU gettext files." msgstr "" "Ваше имя и почта будут использоваться только при указании последнего " "переводчика в заголовках файлов GNU gettext." msgid "Editing" msgstr "Редактирование" msgid "Automatically compile MO file when saving" msgstr "Автоматически компилировать файл MO при сохранении" msgid "Show summary after catalog update" msgstr "Показывать сводку после обновления каталога" msgid "Check spelling" msgstr "Проверять правописание" msgid "Always change focus to text input field" msgstr "Всегда переключаться на поле ввода текста" msgid "" "Never let the list of strings take focus. If enabled, you must use Ctrl-" "arrows for keyboard navigation but you can also type text immediately, " "without having to press Tab to change focus." msgstr "" "Не фокусироваться на списке строк. Если включено, для перемещения с помощью " "клавиатуры необходимо нажимать Ctrl+стрелки, но при этом можно вводить текст " "немедленно, без переключения фокуса клавишей Tab." msgid "Appearance" msgstr "Внешний вид" msgid "Use custom list font:" msgstr "Использовать настраиваемый шрифт для списка:" msgid "Use custom text fields font:" msgstr "Шрифт полей ввода:" msgid "Change UI language" msgstr "Изменить язык интерфейса" #. TRANSLATORS: This is a note appended to "Check spelling" when running on older Windows versions msgid "(requires Windows 8 or newer)" msgstr "(требует Windows 8 или новее)" msgid "General" msgstr "Общее" msgid "Use translation memory" msgstr "Использовать память переводов" msgid "Learn From Files…" msgstr "Собрать из файлов…" msgid "Learn from files…" msgstr "Собрать из файлов…" #. TRANSLATORS: This is a button that deletes everything in the translation memory (i.e. clears/resets it). msgid "Reset" msgstr "Сброс" #. TRANSLATORS: Followed by "match translations within the file" or "pre-translate from TM" msgid "When updating from sources" msgstr "При обновлении из исходного кода" #. TRANSLATORS: Preceded by "When updating from sources" msgid "fuzzy match within the file" msgstr "подбирать похожий перевод внутри файла" #. TRANSLATORS: Preceded by "When updating from sources" msgid "pre-translate from TM" msgstr "переводить начерно из памяти переводов" msgid "" "Poedit can attempt to fill in new entries from only previous translations in " "the file or from your entire translation memory. Using the TM won’t be very " "effective if it’s near-empty, but it will get better as you add more " "translations to it." msgstr "" "Poedit может попытаться заполнить новые строки только предыдущими переводами " "из этого файла либо из вашей памяти переводов. Использование ПП будет не " "очень эффективным, если она почти пуста, но будет улучшаться по мере " "добавления переводов." msgid "Stored translations:" msgstr "Сохраненных переводов:" msgid "Database size on disk:" msgstr "Размер базы данных на диске:" msgid "Select translation files to import" msgstr "Выберите файлы переводов для импорта" msgid "Translation Memory" msgstr "Память переводов" msgid "Importing translations…" msgstr "Импорт переводов…" msgid "Finalizing…" msgstr "Завершение…" msgid "Reset translation memory" msgstr "Очистить память переводов" msgid "Are you sure you want to reset the translation memory?" msgstr "Вы уверены, что хотите очистить память переводов?" msgid "" "Resetting the translation memory will irrevocably delete all stored " "translations from it. You can’t undo this operation." msgstr "" "Очистка памяти переводов необратимо удалит все переводы, хранящиеся в ней. " "Вы не сможете отменить эту операцию." msgid "Cancel" msgstr "Отмена" #. TRANSLATORS: This is abbreviation of "Translation Memory" used in Preferences on macOS. #. Long text looks weird there, too short (like TM) too, but less so. "General" is about ideal #. length there. msgid "TM" msgstr "ПП" msgid "" "Source code extractors are used to find translatable strings in the source " "code files and extract them so that they can be translated." msgstr "" "Экстракторы используются для поиска переводимых строк в файлах исходного " "кода и извлекают их так, чтобы их можно было перевести." msgid "Custom Extractors:" msgstr "Пользовательские экстракторы:" msgid "Custom extractors:" msgstr "Пользовательские экстракторы:" msgid "Edit…" msgstr "Редактировать…" msgid "GNU gettext" msgstr "GNU gettext" msgid "" "Supports all programming languages recognized by GNU gettext tools (PHP, C/C+" "+, C#, Perl, Python, Java, JavaScript and others)." msgstr "" "Поддерживает все языки программирования, которые распознают инструменты GNU " "gettext (PHP, C/C++, C#, Perl, Python, Java, JavaScript и другие)." msgid "Delete extractor" msgstr "Удалить экстрактор" #, c-format msgid "Are you sure you want to delete the “%s” extractor?" msgstr "Вы уверены, что хотите удалить экстрактор «%s»?" msgid "Extractors" msgstr "Экстракторы" msgid "Accounts" msgstr "Учетные записи" msgid "Automatically check for updates" msgstr "Автоматически проверять наличие обновлений" msgid "Include beta versions" msgstr "Включая бета-версии" msgid "" "Beta versions contain the latest new features and improvements, but may be a " "bit less stable." msgstr "" "Бета-версии содержат новейшие функции и улучшения, но могут быть менее " "стабильными." msgid "Updates" msgstr "Обновления" msgid "" "These settings affect internal formatting of PO files. Adjust them if you " "have specific requirements e.g. because of version control." msgstr "" "Эти параметры влияют на внутреннее форматирование файлов PO. Скорректируйте " "их, если у вас есть специальные требования, например, если вы пользуетесь " "системой контроля версий." msgid "Line endings:" msgstr "Окончания строк:" msgid "Unix (recommended)" msgstr "Unix (рекомендуется)" msgid "Windows" msgstr "Windows" #. TRANSLATORS: Followed by text control for entering number; wraps text at given width msgid "Wrap at:" msgstr "Перенос:" msgid "Preserve formatting of existing files" msgstr "Сохранять форматирование существующих файлов" msgid "Advanced" msgstr "Дополнительно" msgid "Pre-translating…" msgstr "Выполнение чернового перевода…" #, c-format msgid "Pre-translated %u string" msgid_plural "Pre-translated %u strings" msgstr[0] "Начерно переведена %u строка" msgstr[1] "Начерно переведены %u строки" msgstr[2] "Начерно переведено %u строк" #. TRANSLATORS: This is a somewhat common term describing the action where #. you apply the translation memory and/or machine translation to all of the #. strings you're translating as the first step, followed by correcting, #. improving etc., i.e. actually translating the strings. This may be tricky #. to express in other languages as simply as in English, but please try to #. keep it similarly concise. Please try to avoid, if possible, describing it #. as "auto-translation" and similar, because such terminology would mislead #. some users into thinking it's all that needs to be done (spoken from #. experience). "Pre-translate" nicely expresses that it's only the step done #. *before* actual translation. msgid "Pre-translate" msgstr "Черновой перевод" msgid "Only fill in exact matches" msgstr "Только при точном совпадении" msgid "" "By default, inaccurate results are filled in as well and marked as needing " "work. Check this option to only include accurate matches." msgstr "" "По умолчанию не полностью совпадающие результаты также будут заполнены и " "помечены как требующие доработки. Отметьте этот вариант, чтобы заполнять " "только полные совпадения." msgid "Don’t mark exact matches as needing work" msgstr "Не помечать полные совпадения как требующие доработки" msgid "" "Only enable if you trust the quality of your TM. By default, all matches " "from the TM are marked as needing work and should be reviewed before use." msgstr "" "Включите это только если вы уверены в качестве вашей памяти переводов. По " "умолчанию все совпадения из памяти переводов отмечаются как требующие " "доработки и подлежат проверке перед использованием." msgid "" "Pre-translation automatically finds exact or fuzzy matches for untranslated " "strings in the translation memory and fills in their translations." msgstr "" "Предварительный перевод автоматически находит в памяти переводов точные или " "неточные совпадения для непереведенных строк и заполняет их переводами." #, c-format msgid "%d entry was pre-translated." msgid_plural "%d entries were pre-translated." msgstr[0] "%d строка была заполнена предварительным переводом." msgstr[1] "%d строки были заполнены предварительным переводом." msgstr[2] "%d строк были заполнены предварительным переводом." msgid "" "The translations were marked as needing work, because they may be " "inaccurate. You should review them for correctness." msgstr "" "Переводы были отмечены как требующие доработки. Проверьте их правильность." msgid "No entries could be pre-translated." msgstr "" "Строки, которые можно было бы заполнить предварительным переводом, " "отсутствуют." msgid "" "The TM doesn’t contain any strings similar to the content of this file. It " "is only effective for semi-automatic translations after Poedit learns enough " "from files that you translated manually." msgstr "" "Память переводов не содержит строк, похожих на содержимое этого файла. Она " "подходит только для полуавтоматического перевода после того, как Poedit " "соберёт достаточно данных из файлов, которые вы перевели вручную." msgid "" "Drag and Drop Folders Here\n" "\n" "or use the + button" msgstr "" "Перетащите папки сюда\n" "\n" "или нажмите кнопку +" msgid "" "Drag and drop folders here\n" "\n" "or use the + button" msgstr "" "Перетащите папки сюда\n" "\n" "или нажмите кнопку +" msgid "Add Folders…" msgstr "Добавить папки…" msgid "Add folders…" msgstr "Добавить папки…" msgid "Add Files…" msgstr "Добавить файлы…" msgid "Add files…" msgstr "Добавить файлы…" msgid "Add Wildcard…" msgstr "Добавить по шаблону…" msgid "Add wildcard…" msgstr "Добавить по шаблону…" msgid "Paths" msgstr "Папки" msgid "Excluded paths" msgstr "Исключенные пути" msgid "Advanced extraction settings" msgstr "Расширенные настройки извлечения" msgid "Extract notes for translators from:" msgstr "Извлекать пометки для переводчиков:" msgid "Comments prefixed with:" msgstr "Из комментариев, начинающихся с:" msgid "All comments" msgstr "Все комментарии" msgid "Additional xgettext flags:" msgstr "Дополнительные флаги xgettext:" msgid "Additional keywords" msgstr "Дополнительные ключевые слова" msgid "Name of the project the translation is for" msgstr "Название проекта перевода для" msgid "Team name and email address or URL" msgstr "Имя команды и адрес электронной почты или URL-адрес" msgid "e.g. nplurals=2; plural=(n > 1);" msgstr "например, nplurals=2; plural=(n > 1);" msgid "UTF-8 (recommended)" msgstr "UTF-8 (рекомендуется)" msgid "Please save the file first. This section cannot be edited until then." msgstr "Сначала нужно сохранить файл. До этого данный раздел нельзя изменить." msgid "Not all plural forms are translated." msgstr "Не все формы множественного числа переведены." msgid "The translation should start as a sentence." msgstr "Перевод должен начинаться как предложение." msgid "The translation should start with a lowercase character." msgstr "Перевод должен начинаться со строчного символа." msgid "The translation doesn’t start with a space." msgstr "Этот перевод не начинается с пробела." msgid "The translation starts with a space, but the source text doesn’t." msgstr "Перевод начинается с пробела, но исходная строка - нет." msgid "The translation is missing a newline at the end." msgstr "В переводе пропущена новая строка в конце." msgid "The translation ends with a newline, but the source text doesn’t." msgstr "Перевод заканчивается новой строкой, но исходный текст - нет." msgid "The translation is missing a space at the end." msgstr "В переводе пропущен пробел в конце." msgid "The translation ends with a space, but the source text doesn’t." msgstr "Перевод заканчивается пробелом, но исходная строка - нет." #, c-format msgid "The translation should end with “%s”." msgstr "Перевод должен заканчиваться на “%s”." #, c-format msgid "The translation should not end with “%s”." msgstr "Перевод не должен заканчиваться на “%s”." #, c-format msgid "The translation ends with “%s”, but the source text ends with “%s”." msgstr "" "Перевод заканчивается на “%s”, но исходный текст заканчивается на “%s”." msgid "Comment:" msgstr "Комментарий:" msgid "OK" msgstr "ОК" msgid "C&lear" msgstr "О&чистить" msgid "Clear the comment" msgstr "Удалить комментарий" msgid "New" msgstr "Создать" msgid "Create new translations project" msgstr "Создать новый проект переводов" msgid "Edit" msgstr "Править" msgid "Edit the project" msgstr "Править проект" msgid "Delete the project" msgstr "Удалить проект" msgid "Update all" msgstr "Обновить всё" msgid "Update all catalogs in the project" msgstr "Обновить все каталоги в этом проекте" msgid "Edit project" msgstr "Правка проекта" msgid "Project name:" msgstr "Название проекта:" msgid "Browse" msgstr "Обзор" msgid "Add directory to the list" msgstr "Добавить папку в список" msgid "&New…" msgstr "Создать…" msgid "New from &POT/PO file…" msgstr "Создать из &POT/PO файла…" msgid "New From &POT/PO File…" msgstr "Создать из файла &POT/PO…" msgid "&Open…" msgstr "&Открыть…" msgid "Open Recent" msgstr "Открыть последние файлы" msgid "Open from Crowdin…" msgstr "Открыть из Crowdin…" msgid "Open From Crowdin…" msgstr "Открыть из Crowdin…" msgid "&Close" msgstr "&Закрыть" msgid "&Save" msgstr "&Сохранить" msgid "Save &as…" msgstr "Сохранить &как…" msgid "Save &As…" msgstr "Сохранить &как…" msgid "Compile to MO…" msgstr "Компилировать в формат MO…" msgid "E&xport as HTML…" msgstr "Э&кспортировать как HTML…" msgid "Check for updates…" msgstr "Проверить наличие обновлений…" msgid "&Preferences…" msgstr "&Параметры…" msgid "Catalogs &manager" msgstr "&Диспетчер каталогов" msgid "Catalogs &Manager" msgstr "&Диспетчер каталогов" msgid "E&xit" msgstr "В&ыход" msgid "Quit" msgstr "Выход" msgid "Copy from singular" msgstr "Копировать форму единственного числа" msgid "Copy From Singular" msgstr "Копировать форму единственного числа" msgid "Translation needs &work" msgstr "Переводы, требующие &доработки" msgid "Translation Needs &Work" msgstr "Переводы, требующие &доработки" msgid "Edit &comment" msgstr "Править &комментарий" msgid "Edit &Comment" msgstr "Править &комментарий" msgid "Suggestions" msgstr "Предложения" msgid "&Find…" msgstr "&Найти…" msgid "Replace…" msgstr "Заменить…" msgid "Find next" msgstr "Далее" msgid "Find previous" msgstr "Назад" msgid "Find and Replace…" msgstr "Найти и заменить…" msgid "Find Next" msgstr "Далее" msgid "Find Previous" msgstr "Назад" msgid "&Preferences" msgstr "&Параметры" msgid "Display entry &IDs" msgstr "Показывать &номера строк" msgid "Display Entry &IDs" msgstr "Показывать &номера строк" msgid "Sort by &file order" msgstr "Сортировать как в &файле" msgid "Sort by &File Order" msgstr "Сортировать как в &файле" msgid "Sort by &source" msgstr "Сортировать по &исходному тексту" msgid "Sort by &Source" msgstr "Сортировать по &исходному тексту" msgid "Sort by &translation" msgstr "Сортировать по &переводу" msgid "Sort by &Translation" msgstr "Сортировать по &переводу" msgid "&Group by context" msgstr "&Группировать по контексту" msgid "&Group By Context" msgstr "&Группировать по контексту" msgid "Entries with errors first" msgstr "Сперва отображать записи с ошибками" msgid "Entries with Errors First" msgstr "Показывать записи с ошибками в начале" msgid "&Untranslated entries first" msgstr "Показывать &непереведённые записи в начале" msgid "&Untranslated Entries First" msgstr "Показывать &непереведённые записи в начале" msgid "&Show references" msgstr "&Показать ссылки" msgid "&Show References" msgstr "&Показать ссылки" msgid "Show sidebar" msgstr "Показать боковую панель" msgid "Show status bar" msgstr "Показать строку состояния" msgid "C&atalog" msgstr "&Каталог" msgid "&Update from sources" msgstr "&Обновить из исходного кода" msgid "&Update from Sources" msgstr "&Обновить из исходного кода" msgid "Update from &POT file…" msgstr "Обновить из файла &POT…" msgid "Update from &POT File…" msgstr "Обновить из файла &POT…" msgid "Sync with Crowdin" msgstr "Синхронизировать с Crowdin" msgid "Pre-&translate…" msgstr "Черновой перевод…" msgid "&Purge deleted translations" msgstr "&Уничтожить удалённые переводы" msgid "&Purge Deleted Translations" msgstr "&Уничтожить удалённые переводы" msgid "&Validate translations" msgstr "&Проверить перевод" msgid "&Validate Translations" msgstr "&Проверить перевод" msgid "&Properties…" msgstr "&Свойства…" msgid "&Done and next" msgstr "&Закончить и перейти к следующему" msgid "&Done and Next" msgstr "&Закончить и перейти к следующему" msgid "&Previous translation" msgstr "Предыдущий перевод" msgid "&Previous Translation" msgstr "Предыдущий перевод" msgid "&Next translation" msgstr "Следующий перевод" msgid "&Next Translation" msgstr "Следующий перевод" msgid "P&revious unfinished" msgstr "Пр&едыдущий незаконченный" msgid "P&revious Unfinished" msgstr "Пр&едыдущий незаконченный" msgid "Ne&xt unfinished" msgstr "С&ледующий незаконченный" msgid "Ne&xt Unfinished" msgstr "С&ледующий незаконченный" msgid "Previous plural form" msgstr "Предыдущая форма множественного числа" msgid "Previous Plural Form" msgstr "Предыдущая форма множественного числа" msgid "Next plural form" msgstr "Следующая форма множественного числа" msgid "Next Plural Form" msgstr "Следующая форма множественного числа" msgid "&Online help" msgstr "&Справка в интернете" msgid "&Online Help" msgstr "&Справка в интернете" msgid "&GNU gettext manual" msgstr "&Руководство по GNU gettext" msgid "&GNU gettext Manual" msgstr "&Руководство по GNU gettext" msgid "&About Poedit" msgstr "&Сведения о программе Poedit" msgid "&About" msgstr "&О программе" msgid "Extractor setup" msgstr "Настройка экстрактора" msgid "List of extensions separated by semicolons (e.g. *.cpp;*.h):" msgstr "" "Список расширений, разделённых точкой с запятой (например, *.cpp; *.h):" msgid "Invocation:" msgstr "Вызов:" msgid "Command to extract translations:" msgstr "Команда для извлечения перевода:" msgid "" "This is the command used to launch the extractor.\n" "%o expands to the name of output file, %K to list\n" "of keywords, %F to list of input files,\n" "%C to charset flag (see below)." msgstr "" "Эта команда запускает экстрактор.\n" "%o означает название выходного файла, %K — список\n" "ключевых слов, %F — список входных файлов,\n" "%C — кодировку (см. ниже)." msgid "An item in keywords list:" msgstr "Пункт в списке ключевых слов:" msgid "" "This will be attached to the command line once\n" "for each keyword. %k expands to the keyword." msgstr "" "Это будет добавлено в командную строку для каждого ключевого слова. %k " "означает ключевое слово." msgid "An item in input files list:" msgstr "Пункт в списке входных файлов:" #, c-format msgid "" "This will be attached to the command line once\n" "for each input file. %f expands to the filename." msgstr "" "Это будет добавлено в командную строку для каждого входного файла. %f " "означает название файла." msgid "Source code charset:" msgstr "Кодировка исходного кода:" #, c-format msgid "" "This will be attached to the command line\n" "only if source code charset was given. %c expands to charset value." msgstr "" "Это будет добавлено в командную строку, только если была указана кодировка " "оригинала. %c означает кодировку." msgid "Catalog properties" msgstr "Свойства каталога" msgid "Project name and version:" msgstr "Название и версия проекта:" msgid "Language team:" msgstr "Команда переводчиков:" msgid "Plural forms:" msgstr "Формы множественного числа:" msgid "Use default rules for this language" msgstr "Использование правила по умолчанию для этого языка" msgid "Use custom expression" msgstr "Пользовательское выражение" msgid "Learn about plural forms" msgstr "Узнать о формах множественного числа" msgid "Charset:" msgstr "Кодировка:" msgid "Advanced Extraction Settings…" msgstr "Расширенные настройки извлечения…" msgid "Advanced extraction settings…" msgstr "Расширенные настройки извлечения…" msgid "Translation Properties" msgstr "Свойства перевода" msgid "Translation properties" msgstr "Свойства перевода" msgid "Sources Paths" msgstr "Папки с исходными файлами" msgid "Sources paths" msgstr "Папки с исходными файлами" msgid "Extract text from source files in the following directories:" msgstr "Извлекать текст из исходных файлов в следующих папках:" msgid "Base path:" msgstr "Базовый путь:" msgid "Sources Keywords" msgstr "Ключевые слова исходных файлов" msgid "Sources keywords" msgstr "Ключевые слова исходных файлов" msgid "" "Use these keywords (function names) to recognize translatable strings\n" "in source files:" msgstr "" "Искать переводимые строки в исходных файлах по этим ключевым словам (именам " "функций):" msgid "Also use default keywords for supported languages" msgstr "" "Также использовать ключевые слова по умолчанию для поддерживаемых языков" msgid "Learn About Gettext Keywords" msgstr "Подробности о ключевых словах Gettext" msgid "Learn about gettext keywords" msgstr "Подробнее о ключевых словах gettext" msgid "Update summary" msgstr "Сводка об обновлении" msgid "" "These strings were found in the sources but were not in the catalog.\n" "Poedit will add them to the catalog now." msgstr "" "Эти строки были найдены в исходных файлах, но они отсутствуют в каталоге.\n" "Poedit сейчас добавит их в каталог." msgid "New strings" msgstr "Новые строки" msgid "" "These strings are no longer in the sources.\n" "Poedit will remove them from the catalog now." msgstr "" "Этих строк больше нет в исходных файлах.\n" "Poedit сейчас удалит их из каталога." msgid "Obsolete strings" msgstr "Устаревшие строки" msgid "(0 new, 0 obsolete)" msgstr "(0 новых, 0 устаревших)" msgid "Open" msgstr "Открыть" msgid "Save catalog" msgstr "Сохранить каталог" msgid "Validate" msgstr "Проверить" msgid "Check for errors in the translation" msgstr "Проверить наличие ошибок в переводе" msgid "Update" msgstr "Обновить" msgid "Update catalog - synchronize it with sources" msgstr "Обновить каталог — синхронизировать его с исходными файлами" msgid "Sidebar" msgstr "Боковая панель" msgid "Show or hide the sidebar" msgstr "Показать или скрыть боковую панель" #. TRANSLATORS: "Previous" as in used in the past, now replaced with newer. msgid "Previous source text:" msgstr "Предыдущая версия исходного текста:" msgid "" "The old source text (before it changed during an update) that the now-" "inaccurate translation corresponds to." msgstr "" "Старый исходный текст (до обновления), которому соответствует неточный " "перевод." msgid "Notes for translators:" msgstr "Примечания для переводчиков:" msgid "Add comment" msgstr "Добавить комментарий" msgid "Add Comment" msgstr "Добавить комментарий" msgid "Translation suggestions:" msgstr "Предлагаемые варианты перевода:" #. TRANSLATORS: This is shown when no translation suggestions can be found in the TM (Windows). msgid "No matches found" msgstr "Совпадений не найдено" #. TRANSLATORS: This is shown when no translation suggestions can be found in the TM (macOS, Linux). msgid "No Matches Found" msgstr "Совпадений не найдено" msgid "This string was found in Poedit’s translation memory." msgstr "Эта строка была найдена в памяти переводов Poedit." msgid "Cannot create temporary directory." msgstr "Не удаётся создать папку для временных файлов." msgid "Welcome to Poedit" msgstr "Добро пожаловать в Poedit" #. TRANSLATORS: This is version information in about dialog, "%s" will be #. version number when used #, c-format msgid "Version %s" msgstr "Версия %s" msgid "Edit a Translation" msgstr "Редактировать перевод" msgid "Edit a translation" msgstr "Правка перевода" msgid "Open an existing PO file and edit the translation." msgstr "Открыть имеющийся файл PO и править перевод." msgid "" "Take an existing PO file or POT template and create a new translation from " "it." msgstr "Создать перевод на основе имеющегося файла PO или шаблона POT." msgid "Collaborate on a Translation with Others" msgstr "Переводить совместно с другими переводчиками" msgid "Collaborate on a translation with others" msgstr "Переводить совместно с другими переводчиками" msgid "" "Download a file from Crowdin project, translate and sync your changes back." msgstr "" "Скачать файл из проекта Crowdin, перевести его и выгрузить изменения обратно." msgid "What is Crowdin?" msgstr "Что такое Crowdin?" msgid "There are no translations. That’s unusual." msgstr "Перевод отсутствует. Это странно." msgid "" "Translatable entries aren’t added manually in the Gettext system, but are " "automatically extracted\n" "from source code. This way, they stay up to date and accurate.\n" "Translators typically use PO template files (POTs) prepared for them by the " "developer." msgstr "" "Переводимые записи не добавляются вручную в систему Gettext, а автоматически " "извлекаются\n" "из исходного кода. Таким образом обеспечивается их актуальность и точность.\n" "Переводчики обычно работают с PO-файлами (POT-шаблоны), которые подготовил " "для них разработчик." msgid "(Learn more about GNU gettext)" msgstr "(Подробнее о GNU gettext)" msgid "The simplest way to fill this catalog is to update it from a POT:" msgstr "Самый простой способ заполнить этот каталог — обновить его из POT:" msgid "Update from POT" msgstr "Обновить из POT-файла" msgid "Take translatable strings from an existing POT template." msgstr "Извлечь переводимые строки из имеющегося шаблона POT." msgid "" "You can also extract translatable strings directly from the source code:" msgstr "" "Переводимые строки можно также извлечь непосредственно из исходного кода:" msgid "Extract from sources" msgstr "Извлечь из исходного кода" msgid "Configure source code extraction in Properties." msgstr "Настройте извлечение исходного кода в разделе «Свойства»." msgid "Sync" msgstr "Синхронизация" msgid "Synchronize the translation with Crowdin" msgstr "Синхронизировать перевод с Crowdin" #. TRANSLATORS: This is titlebar of about dialog, "%s" is application name #. ("Poedit" here, but please use "%s") #, c-format msgid "About %s" msgstr "О программе %s" #. TRANSLATORS: Title of the preferences window on Windows and Linux. "%s" is replaced with "Poedit" when running. #, c-format msgid "%s Preferences" msgstr "Параметры %s" #. TRANSLATORS: macOS item in app menu msgid "Services" msgstr "Сервисы" #. TRANSLATORS: macOS item in app menu, %s is replaced with "Poedit" #, c-format msgid "Hide %s" msgstr "Скрыть %s" #. TRANSLATORS: macOS item in app menu msgid "Hide Others" msgstr "Скрыть остальное" #. TRANSLATORS: macOS item in app menu msgid "Show All" msgstr "Показать всё" #. TRANSLATORS: macOS item in app menu, %s is replaced with "Poedit" #, c-format msgid "Quit %s" msgstr "Выйти из %s" #. TRANSLATORS: macOS item in app menu msgid "Preferences…" msgstr "Настройки…" msgid "Preferences..." msgstr "Настройки..." #. TRANSLATORS: Title of a category in Windows task menu (right-click icon in taskbar) msgid "Recent" msgstr "Недавние" #. TRANSLATORS: Title of a category in Windows task menu (right-click icon in taskbar) msgid "Frequent" msgstr "Часто вызываемые" msgid "&Apply" msgstr "Применить" msgid "Apply" msgstr "Принять" msgid "&Back" msgstr "Назад" msgid "Back" msgstr "Назад" msgid "&Cancel" msgstr "Отмена" msgid "&Clear" msgstr "Очистить" msgid "Clear" msgstr "Ясно" msgid "Copy" msgstr "Копировать" msgid "Cu&t" msgstr "Выреза&ть" msgid "Cut" msgstr "Вырезать" msgid "&Delete" msgstr "&Удалить" msgid "&Quit" msgstr "Выход" msgid "File" msgstr "Файл" msgid "Help" msgstr "Помощь" msgid "&New" msgstr "&Создать" msgid "&No" msgstr "Нет" msgid "No" msgstr "Нет" msgid "&OK" msgstr "&ОК" msgid "Open…" msgstr "Открыть…" msgid "&Open..." msgstr "&Открыть..." msgid "Open..." msgstr "Открыть..." msgid "&Paste" msgstr "&Вставить" msgid "Paste" msgstr "Вставить" msgid "Preferences" msgstr "Настройки" msgid "&Redo" msgstr "&Повторить" msgid "Refresh" msgstr "Обновить" msgid "&Save as" msgstr "Сохранить как" msgid "Save as" msgstr "Сохранить как" msgid "Select &All" msgstr "Выбрать &все" msgid "Select All" msgstr "Выбрать все" msgid "&Undo" msgstr "&Отменить" msgid "&Yes" msgstr "Да" msgid "Yes" msgstr "Да" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Shift+" msgstr "Shift+" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Enter" msgstr "Enter" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Up" msgstr "Стрелка вверх" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Down" msgstr "Стрелка вниз" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Left" msgstr "Влево" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Right" msgstr "Вправо" #. TRANSLATORS: Keyboard shortcut, must correspond to translation of "Ctrl+" msgid "ctrl" msgstr "ctrl" #. TRANSLATORS: Keyboard shortcut, must correspond to translation of "Alt+" msgid "alt" msgstr "alt" #. TRANSLATORS: Keyboard shortcut, must correspond to translation of "Shift+" msgid "shift" msgstr "shift" poedit-2.0.6/locales/is.mo0000664000372000037200000014152013230132076012316 00000000000000P%1 1 11<11J 2gW2 22 22 222 3333%3+333B3Q3W3]3f3z333333333333 3 44 4)4 04=4M4c4y44444444445 5(5D5Y5n55555555 6 '6:36:n6 666 6 666 6 7 #707?7O7c7~77777 71898'>8f88 8878689)=9g9 l9]w99A9I*:t:{:; ;;";:; U;`;.h;;;;;;;;<*<F<#[<<<<<<<<(<(=7= R=s=|== ==/= = >>#>9>L>b>2>>>>> ?)???????@@@ 2@?@R@Ee@"@?@ AA*.A YAfAyAK~A"A5A#B)BHAH HHI 'IHI PI ]IiI"nI;I(IIJ&J 5J ?JMJjJ ~JJJJJ JJK:K PK<^K.KKKKLL*%LPLVLgL xL LLJMNMgM MMMMM#MM'M$N7DN$|N%NNNNNNOOOO O2O P#P9PNP]PlPtP|PPPPPPPPQQQnQERZR>aR RRRR@RS-T(Q+z!-@S(X(" ");;Y Մ$4&[x"υˆ :C\Xu·@ '24C x[5LTlsω (173Fz6,‹ $*OV[v*7Ɍ 5@*V1/*%.cT ̎ Ҏ ߎ, A NZix  Տ  '9O^!5Mg );ԑ%6M] ny ’͒ 9DZ<bH7/Ib 4Ք۔ -:@[v.Ŗ)$8@]$(×  ',) JOg |<ƙۙ  ,4 <FM_ q~BH`lim֛ DQN  œ8C&` *מz "Οޟ++ <FLe ly ɠ۠ % !-IС١  / @ L W2d ע #!7Yl1ţ   # 8BU]f ~ˤ*BY -: R\ mx֦eۦA \iy zN ɨӨ" /N#c+ b>#0b Co!լCޭS"^v`ծ6hT_ M>@HͰ1$Hm,)).S((AԲ/dzVxNǴsVtʵ|?ANԷ1#Uvo^ι ӹ .O g ƻѻv| #ȼ -76n ӽ߽W #e"'ܾ/_4  ̿ؿ!;NU]m}H>E O,] %)0. _(4D}],6 9BW6tC3H>C'# )h?*Kq#-0^aG2zFYblx&2LADZ.EwPi=Ab[kv @4uh~ uL@|pnf.nTN? QI2:qOKcajd F!p ]U>T+rXi=J%Vxz51^s4 NH/F"8/XJ`om #UwQk :Gs$ 8jL!~I1,(<D-9B>|;$H(E?g<y!dYgIo \ <eN+rM5&cM5 :"K-A+EmZ7C"603B $%RfRVeyOG*S@ M,4}_{O%W91J)S[`' 7)v &;*{(l_.03=\7P8/t';P (modified) (unsaved)%d entry%d entries%d entry was pre-translated.%d entries were pre-translated.%d error%d errors%d issue with the translation found.%d issues with the translation found.%i line of file “%s” was not loaded correctly.%i lines of file “%s” were not loaded correctly.%s Format%s Preferences%s format&About&About Poedit&Apply&Back&Bookmarks&Cancel&Clear&Close&Copy&Delete&Done and Next&Done and next&Edit&File&Find…&GNU gettext Manual&GNU gettext manual&Go&Group By Context&Group by context&Help&New&New…&Next >&Next Translation&Next translation&No&OK&Online Help&Online help&Open...&Open…&Paste&Preferences&Preferences…&Previous Translation&Previous translation&Properties…&Purge Deleted Translations&Purge deleted translations&Quit&Redo&Replace&Save&Save as&Show References&Show references&Undo&Untranslated Entries First&Untranslated entries first&Update from Sources&Update from sources&Validate Translations&Validate translations&View&Yes(0 new, 0 obsolete)(Learn more about GNU gettext)(New: %i, obsolete: %i)(Use default language)(requires Windows 8 or newer)< &PreviousDrag and Drop Folders Here or use the + buttonDrag and drop folders here or use the + buttonAbout %sAccountsAdd CommentAdd Files…Add Folders…Add Wildcard…Add commentAdd directory to the listAdd files…Add folders…Add wildcard…Additional keywordsAdditional xgettext flags:AdvancedAdvanced Extraction Settings…Advanced extraction settingsAdvanced extraction settings…All Translation FilesAll commentsAlso use default keywords for supported languagesAlt+Always change focus to text input fieldAn item in input files list:An item in keywords list:AppearanceApplyAre you sure you want to delete the “%s” extractor?Are you sure you want to reset the translation memory?Automatically check for updatesAutomatically compile MO file when savingBackBase path:Beta versions contain the latest new features and improvements, but may be a bit less stable.Bring All to FrontBroken catalog file: plural form msgstr used without msgid_pluralBroken catalog file: singular form msgstr used together with msgid_pluralBrowseBy default, inaccurate results are filled in as well and marked as needing work. Check this option to only include accurate matches.C&atalogC&learCancelCannot create temporary directory.Cannot execute program: %sCapitalizeCatalogCatalog modified. Do you want to save changes?Catalog propertiesCatalogs &ManagerCatalogs &managerCatalogs ManagerChange UI languageCharset:Check Document NowCheck Grammar With SpellingCheck Spelling While TypingCheck for Updates…Check for errors in the translationCheck for updates…Check spellingClearClear TranslationClear the commentClear translationCloseCollaborate on a Translation with OthersCollaborate on a translation with othersCollecting source files…Command to extract translations:Comment:Comments prefixed with:Compile to MO…Compile to…Compiled Translation FilesConfigure source code extraction in Properties.ConfirmationCopyCopy From SingularCopy from Source TextCopy from singularCopy from source textCorrect Spelling AutomaticallyCouldn’t load file %s, it is probably corrupted.Couldn’t save file %s.Create New TranslationCreate new translationCreate new translations projectCrowdin errorCrowdin is an online localization management platform and collaborative translation tool. Poedit can seamlessly sync PO files managed at Crowdin.Ctrl+Cu&tCustom Extractors:Custom extractors:CutDatabase size on disk:DeleteDelete extractorDelete the projectDirectories:Display Entry &IDsDisplay entry &IDsDo you really want to do mass update of all catalogs in this project?Do you want to delete the project?Do you want to remove all translations that are no longer used?Don’t SaveDon’t Show AgainDon’t mark exact matches as needing workDon’t saveDon’t show againDownDownload a file from Crowdin project, translate and sync your changes back.Downloading latest translations…Downloading translations is disabled in this project.E&xitE&xport as HTML…EditEdit &CommentEdit &commentEdit CommentEdit a TranslationEdit a translationEdit commentEdit projectEdit the projectEditingEdit…Email:EnterEnter Full ScreenEntries in the catalog are probably incorrect.Entries in this catalog have different plural forms count from what catalog’s Plural-Forms header saysEntries with Errors FirstEntries with errors firstEntries with errors were marked in red in the list. Details of the error will be shown when you select such an entry.Error loading message catalog file “%s”.Error opening fileError opening file %s!Error saving catalogErrorsEverythingExcluded pathsExport as…Extract from sourcesExtract notes for translators from:Extract text from source files in the following directories:Extracting translatable strings…Extractor setupExtractorsFailed command: %sFailed to communicate with Poedit process.Failed to load extracted catalog.Failed to merge gettext catalogs.Failed to update translation memory: %sFileFile “%s” doesn’t exist.File “%s” is not a message catalog.File “%s” is read-only and cannot be saved. Please save it under different name.File:Finalizing…FindFind NextFind PreviousFind and Replace…Find in commentsFind in source textsFind in translationsFind nextFind previousFix LanguageFix languageFix the HeaderFix the headerForm %iFrequentGNU gettextGeneralGo to Bookmark %iGo to bookmark %iHTML FilesHelpHide %sHide OthersHide SidebarHide Status BarHide this notification messageIDIf you continue with purging, all translations marked as deleted will be permanently removed. You will have to translate them again if they are added back in the future.Ignore caseImporting translations…Include beta versionsInformation about the translatorInstallInvalid fileInvocation:KeepLanguage Code or Name (e.g. en_GB)Language of the translation is the same as source language.Language of the translation isn’t set.Language of the translation:Language selectionLanguage team:Language:Last modifiedLearn About Gettext KeywordsLearn From Files…Learn MoreLearn More About CrowdinLearn about gettext keywordsLearn about plural formsLearn from files…Learn moreLearn more about CrowdinLeftLine %d of file “%s” is corrupted (not valid %s data).Line endings:List of extensions separated by semicolons (e.g. *.cpp;*.h):MO files can’t be directly edited in Poedit.Make Lower CaseMake Upper CaseMalformed header: “%s”Merging differences…MinimizeName of the project the translation is forName:Ne&xt UnfinishedNe&xt unfinishedNeeds WorkNeeds workNever let the list of strings take focus. If enabled, you must use Ctrl-arrows for keyboard navigation but you can also type text immediately, without having to press Tab to change focus.NewNew From &POT/PO File…New from &POT/PO file…New stringsNext Plural FormNext plural formNoNo Matches FoundNo entries could be pre-translated.No matches foundNo problems with the translation found.No references for the selected item.No translation projects listed in your Crowdin account.Not all plural forms are translated.Not authorized, please sign in again.Notes for translators:OKObsolete stringsOneOnly enable if you trust the quality of your TM. By default, all matches from the TM are marked as needing work and should be reviewed before use.Only fill in exact matchesOpenOpen Crowdin translationOpen From Crowdin…Open RecentOpen an existing PO file and edit the translation.Open catalogOpen catalog templateOpen from Crowdin…Open in EditorOpen in editorOpen...Open…OptionsOtherP&revious UnfinishedP&revious unfinishedPO TranslationPO Translation FilesPOT Translation TemplatesPOT files are only templates and don’t contain any translations themselves. To make a translation, create a new PO file based on the template.PastePaste and Match StylePathsPlease open and edit the corresponding PO file instead. When you save it, the MO file will be updated as well.Please save the file first. This section cannot be edited until then.PluralPlural forms expression used by the catalog is unusual for %s.Plural forms:Plural:PoeditPoedit - Catalogs managerPoedit automatically fixed invalid content in the file “%s”.Poedit can attempt to fill in new entries from only previous translations in the file or from your entire translation memory. Using the TM won’t be very effective if it’s near-empty, but it will get better as you add more translations to it.Poedit is an easy to use translations editor.Pre-&translate…Pre-translatePre-translatedPre-translated %u stringPre-translated %u stringsPre-translating…Pre-translation automatically finds exact or fuzzy matches for untranslated strings in the translation memory and fills in their translations.PreferencesPreferences...Preferences…Preserve formatting of existing filesPrevious Plural FormPrevious plural formPrevious source text:Project name and version:Project name:Project:PurgePurge deleted translationsQuitQuit %sRecentRedoReferences:RefreshRemaining: %dReplaceReplace &AllReplace &allReplacement stringReplace…Required header Plural-Forms is missing.ResetReset translation memoryResetting the translation memory will irrevocably delete all stored translations from it. You can’t undo this operation.ReviewRightSaveSave &As…Save &as…Save asSave as…Save catalogSave changesSelect &AllSelect AllSelect directorySelect translation files to importSelect your preferred languageServicesSet Bookmark %iSet LanguageSet bookmark %iSet languageShift+Show AllShow SidebarShow Spelling and GrammarShow Status BarShow SubstitutionsShow or hide the sidebarShow sidebarShow status barShow summary after catalog updateSidebarSign InSign OutSign inSign in to CrowdinSign outSigned in as:SingularSingular:Smart Copy/PasteSmart DashesSmart LinksSmart QuotesSort by &File OrderSort by &SourceSort by &TranslationSort by &file orderSort by &sourceSort by &translationSource code charset:Source code extractors are used to find translatable strings in the source code files and extract them so that they can be translated.Source code not available.Source fileSource file occurrence:Source textSource text — %sSource text:Sources KeywordsSources PathsSources keywordsSources pathsSpeechSpellchecking is disabled, because the dictionary for %s isn’t installed.Spelling and GrammarStart SpeakingStop SpeakingStored translations:String to findSubstitutionsSuggestionsSuggestions are not available if the translation language is not set correctly. Other features, such as plural forms, may be affected as well.Supports all programming languages recognized by GNU gettext tools (PHP, C/C++, C#, Perl, Python, Java, JavaScript and others).SyncSync with CrowdinSynchronize the translation with CrowdinSyncingSyncing errorSyncing with %s failed.Syncing with %s…Syncing with Crowdin failed.Syntax error in Plural-Forms header ("%s").TMTake an existing PO file or POT template and create a new translation from it.Take translatable strings from an existing POT template.Team name and email address or URLText ReplacementThe TM doesn’t contain any strings similar to the content of this file. It is only effective for semi-automatic translations after Poedit learns enough from files that you translated manually.The catalog couldn’t be saved in “%s” charset as specified in catalog settings. It was saved in UTF-8 instead and the setting was modified accordingly.The file cannot be compiled into the MO format and used.The file cannot be opened.The file contained duplicate items, which is not allowed in PO files and would prevent the file from being used. Poedit fixed the issue, but you should review translations of any items marked as needing work and correct them if necessary.The file may be either corrupted or in a format not recognized by Poedit.The file was compiled into the MO format, but it will probably not work correctly.The file was saved safely and compiled into the MO format, but it will probably not work correctly.The file was saved safely, but it cannot be compiled into the MO format and used.The file was saved safely.The old source text (before it changed during an update) that the now-inaccurate translation corresponds to.The simplest way to fill this catalog is to update it from a POT:The translation doesn’t start with a space.The translation ends with a newline, but the source text doesn’t.The translation ends with a space, but the source text doesn’t.The translation ends with “%s”, but the source text ends with “%s”.The translation is missing a newline at the end.The translation is missing a space at the end.The translation is ready for use, but %d entry is not translated yet.The translation is ready for use, but %d entries are not translated yet.The translation is ready for use.The translation should end with “%s”.The translation should not end with “%s”.The translation should start as a sentence.The translation should start with a lowercase character.The translation starts with a space, but the source text doesn’t.The translations were marked as needing work, because they may be inaccurate. You should review them for correctness.There are no translations. That’s unusual.There was a problem formatting the file nicely (but it was saved all right).There were errors when loading the catalog. Some data may be missing or corrupted as the result.These settings affect internal formatting of PO files. Adjust them if you have specific requirements e.g. because of version control.These strings are no longer in the sources. Poedit will remove them from the catalog now.These strings were found in the sources but were not in the catalog. Poedit will add them to the catalog now.This catalog has entries with plural forms, but doesn’t have Plural-Forms header configured.This file can only be edited in Crowdin’s web interface.This is the command used to launch the extractor. %o expands to the name of output file, %K to list of keywords, %F to list of input files, %C to charset flag (see below).This project has no files that can be translated in Poedit.This string was found in Poedit’s translation memory.This will be attached to the command line only if source code charset was given. %c expands to charset value.This will be attached to the command line once for each input file. %f expands to the filename.This will be attached to the command line once for each keyword. %k expands to the keyword.TotalTransformationsTranslatable entries aren’t added manually in the Gettext system, but are automatically extracted from source code. This way, they stay up to date and accurate. Translators typically use PO template files (POTs) prepared for them by the developer.Translated: %d of %d (%d %%)Translation LanguageTranslation MemoryTranslation Needs &WorkTranslation PropertiesTranslation needs &workTranslation propertiesTranslation suggestions:Translation — %sTranslation:Translations couldn’t be updated from the source code, because no code was found in the location specified in the catalog’s Properties.TwoUTF-8 (recommended)UndoUnhandled exception occurred: %sUnix (recommended)UntransUpUpdateUpdate allUpdate all catalogs in the projectUpdate catalog - synchronize it with sourcesUpdate from &POT File…Update from &POT file…Update from POTUpdate summaryUpdatesUpdating catalogUpdating failedUpdating the catalog failed. Click on 'Details >>' for details.Updating user information…Uploading translations…Use custom expressionUse custom list font:Use custom text fields font:Use default rules for this languageUse these keywords (function names) to recognize translatable strings in source files:Use translation memoryValidateValidation resultsVersion %sWaiting for authentication…Welcome to PoeditWhat is Crowdin?When updating from sourcesWhole words onlyWindowWindowsWrap aroundWrap at:YesYou can also extract translatable strings directly from the source code:You can’t drop more than one file on Poedit window.You must restart Poedit for this change to take effect.Your NameYour changes will be lost if you don’t save them.Your name and email address are only used to set the Last-Translator header of GNU gettext files.ZeroZoomaltctrldon’t delete temporary files (for debugging)e.g. nplurals=2; plural=(n > 1);fuzzy match within the filego to item at given line numberhandle a poedit:// URIpre-translate from TMshiftunknown languageyour_email@example.com“%s” is not a valid POT file.Project-Id-Version: poedit Report-Msgid-Bugs-To: help@poedit.net POT-Creation-Date: 2017-12-05 15:52+0100 PO-Revision-Date: 2017-09-21 11:21-0400 Last-Translator: vslavik Language-Team: Icelandic Language: is_IS MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=(n != 1); X-Generator: crowdin.com X-Crowdin-Project: poedit X-Crowdin-Language: is X-Crowdin-File: /locales/poedit.pot (breytt) (óvistað)%d færsla%d færslur%d færsla var forþýdd.%d færslur voru forþýddar.%d villa%d villur%d galli fannst á þýðingunni.%d gallar fundust á þýðingunni.%i lína úr skránni '%s' var ekki lesin rétt inn.%i línur úr skránni '%s' voru ekki lesnar rétt inn.%s sniðKjörstillingar %s%s snið&Um forritið&Um PoeditVirkj&aTil &baka&Bókamerki&Hætta viðHre&insa&Loka&Afrita&Eyða&Lokið og næsta&Lokið og næstaBr&eyta&Skrá&Finna…&GNU gettext handbók&GNU gettext handbók&Fara&Hópa eftir samhengi&Hópa eftir samhengi&Hjálp&Nýtt&Nýtt…&Næsta >&Næsta þýðing&Næsta þýðing&NeiÍ &lagi&Hjálp á netinu&Hjálp á netinu&Opna...&Opna…&LímaS&tillingar&Kjörstillingar…&Fyrri þýðing&Fyrri þýðing&Eiginleikar…&Henda eyddum þýðingum&Henda eyddum þýðingum&HættaEndu&rtakaSki&pta útVi&staVi&sta sem&Sýna tilvísanir&Sýna tilvísanir&AfturkallaÓþýddar &færslur fyrstÓþýddar &færslur fyrst&Uppfæra frá uppruna&Uppfæra frá frumkóða&Sannreyna þýðingar&Sannreyna þýðingarS&koða&Já(0 nýjar, 0 úreltar)(Læra meira um GNU gettext)(Nýtt: %i, úrelt: %i)(Nota sjálfgefið tungumál)(krefst Windows 8 eða nýrra)< &FyrraDragðu og slepptu möppum hér eða notaðu + hnappinnDragðu og slepptu möppum hér eða notaðu + hnappinn<ónefnt>Um %sAðgangarBæta við athugasemdBæta við skrám…Bæta við möppum…Bæta við algildistákni…Bæta við athugasemdBæta möppu við á listaBæta við skrám…Bæta við möppum…Bæta við algildistákni…Aukaleg stikkorð:Viðbótar xgettext flögg:ÍtarlegtÍtarlegar þáttunarstillingar…Ítarlegar þáttunarstillingarÍtarlegar þáttunarstillingar…Allar þýðingaskrárAllar athugasemdirEinnig nota sjálfgefin stikkorð fyrir studd tungumálAlt+Ávallt setja virkni á innsláttarreitAtriði í lista yfir inntaksskrár:Atriði í lista yfir stikkorð:ÚtlitVirkjaErtu viss um að þú viljir eyða “%s” þáttaranum?Ertu viss um að þú viljir núllstilla þýðingaminnið?Athuga sjálfvirkt með uppfærslurVistþýða sjálfkrafa MO-skrár við vistunTil bakaGrunnslóð:Beta-útgáfur innihalda nýjustu eiginleika og bætingu á þeim sem fyrir voru, en gætu verið óstöðugri.Færa allt fremstSkemmd þýðingaskrá: fleirtöluform msgstr notað án msgid_pluralSkemmd þýðingaskrá: eintöluform msgstr notað með msgid_pluralVeljaSjálfgefið eru ónákvæmar niðurstöður settar inn og merktar eins og þær þarfnist lagfæringa. Hakaðu við þennan valkost til að einungis nákvæmar samsvaranir séu settar inn.Þýðing&askrá&HreinsaHætta viðEkki tókst að búa til bráðabirgðamöppu.Ekki tókst að ræsa forrit: %sByrja öll orð á hástafÞýðingaskráÞýðingaskrá hefur verið breytt. Viltu vista breytingar?Eiginleikar þýðingaskrárÞýðingas&kráastjórnÞýðingas&kráastjórnÞýðingaskráastjórnVeldu tungumál fyrir notendaviðmótStafatafla:Athuga skjal núnaYfirfara málfræði ásamt stafsetninguYfirfara stafsetningu á meðan skrifað erAthuga með uppfærslur…Athuga með villur í þýðingumAthuga með uppfærslur…Athuga stafsetninguHreinsaHreinsa þýðinguHreinsa athugasemdHreinsa þýðinguLokaVinna þýðingu í samstarfi við aðraVinna þýðingu í samstarfi við aðraSafna upprunaskrám…Skipun til að ná í þýðingar:Athugasemd:Athugasemdir eru með forskeytinu:Vistþýða sem MO…Vistþýða í…Vistþýddar þýðingaskrárStilla útdrátt/þáttun upprunakóða í kjörstillingum.StaðfestingAfritaAfrita úr eintöluAfrita úr upprunatextaAfrita úr eintöluAfrita úr upprunatextaLeiðrétta stafsetningu sjálfvirktGat ekki lesið skrána %s, hún er líklega skemmd.Gat ekki vistað skrána %s.Búa til nýja þýðinguBúa til nýja þýðinguBúa til nýtt þýðingarverkefniVilla í CrowdinCrowdin er staðfærslu- og þýðingakerfi á netinu, sem hjálpar til við samstarf þýðenda og umsýslu. Poedit getur samstillt hnökralaust við PO-skrár sem haldið er utan um á Crowdin.Ctrl+&KlippaSérsniðnir þáttarar:Sérsniðnir þáttarar:KlippaStærð gagnagrunns á diski:EyðaEyða þáttaraEyða þýðingaverkefninuMöppur:Birta &auðkenni færsluBirta &auðkenni færsluViltu virkilega framkvæma fjöldauppfærslu á öllum þýðingaskrám í þessu verki?Viltu eyða verkefninu?Viltu fjarlægja allar þýðingar sem ekki eru lengur notaðar?Ekki vistaEkki birta afturEkki merkja nákvæmar samsvaranir sem ófullgerðarEkki vistaEkki birta afturNiðurNáðu í skrá úr Crowdin-verkefni, þýddu og samstilltu breytingarnar þínar til baka.Næ í nýjustu þýðingar…Ekki er hægt að sækja þýðingar í þessu verki.&Hætta&Flytja út sem HTML…BreytaBreyta &athugasemdBreyta &athugasemdBreyta athugasemdBreyta þýðinguBreyta þýðinguBreyta athugasemdBreyta þýðingaverkefniBreyta þýðingarverkefniVinnslaBreyta…Netfang:EnterFylla skjáinnFærslur í þýðingaskránni eru líklega rangar.Færslur í þessari þýðingaskrá eru með annan fleirtölufjölda en þann sem tiltekinn er í Plural-Forms-línu skráarhaussinsFærslur með villum fyrstFærslur með villum fyrstFærslur með villum eru auðkenndar með rauðum lit í listanum. Nánari upplýsingar um villurnar birtast þegar slík færsla er valin.Villa við hleðslu á þýðingaskrá '%s'.Villa við að opna skráVilla við opnun á skránni %s!Villa við vistun á þýðingaskráVillurAlltSlóðir sem á að sleppaFlytja út sem…Ná í úr frumkóðaNá í minnispunkta fyrir þýðendur úr:Ná í texta úr upprunaskrám í eftirfarandi möppum:Næ í þýðanlega strengi…Uppsetning þáttaraÞáttararMislukkuð skipun: %sGat ekki átt samskipti við Poedit-ferli.Mistókst að hlaða inn lesinni þýðingaskrá.Mistókst að sameina gettext þýðingaskrár.Mistókst að uppfæra þýðingaminni: %sSkráSkráin '%s' finnst ekki.Skráin '%s' er ekki þýðingaskrá.Skráin '%s' er einungis lesanleg og er ekki hægt að vista hana. Vistaðu hana með öðru heiti.Skrá:Geng frá…FinnaFinna næstaFinna fyrraFinna og skipta út…Finna í athugasemdumFinna í frumtextumFinna í þýðingumFinna næstaFinna fyrraLaga tungumálLaga tungumálLaga skráarhausinnLaga hausinnForm %iAlgengtGNU gettextAlmenntFara á bókamerkið %iFara á bókamerkið %iHTML skrárHjálpFela %sFela annaðFela hliðarspjaldFela stöðustikuFela þessi skilaboðAuðkenni (ID)Ef þú heldur áfram að henda, verður öllum þýðingum sem merktar eru til að eyða endanlega eytt. Þú munt þurfa að þýða þær alveg aftur ef þeim verður bætt inn aftur síðar.Hunsa há/lágstafiFlyt inn þýðingar…Beta-útgáfur meðtaldarUpplýsingar um þýðandannSetja uppÓgild skráRæsing:HaldaKóði eða heiti tungumáls (t.d. is_IS)Tungumál þýðingar er það sama og upprunatungumálið.Tungumál þýðingar er ekki stillt.Tungumál þýðingar:Velja tungumálTungumálateymi:Tungumál:Síðast breyttVita meira um gettext stikkorðLæra út frá skrám…Vita meiraVita meira um CrowdinVita meira um gettext stikkorðVita meira um fleirtöluformLæra út frá skrám…Vita meiraVita meira um CrowdinVinstriLína “%d í skránni '%s' er skemmd (ekki gild %s gögn).Línuendingar:Listi yfir skráaendingar aðskilið með semikommu (dæmi. *.cpp, *.h):Ekki er hægt að vinna beint með MO-skrár í Poedit.Gera allt að lágstöfumGera allt að hástöfumRangt formaður haus: “%s”Samþætti mismun…LágmarkaHeiti þýðingaverkefnis sem þýðingin er ætluðNafn:&Næsta óklárað&Næsta ókláraðÞarfnast lagfæringaÞarfnast lagfæringaAldrei að leyfa lista yfir strengi að yfirtaka virkni. Ef þetta er virkjað, verður þú að nota CTRL-örvar til að flakka með lyklaborði, en þú getur líka slegið inn texta samstundis án þess að þurfa að þrýsta á TAB til að breyta hvar virknin er.NýttNýtt úr &POT/PO skrá…Nýtt úr &POT/PO skrá…Nýir strengirNæsta fleirtalaNæsta fleirtalaNeiEngar samsvaranir fundustEkki var hægt að forþýða neinar færslur.Engar samsvaranir fundustEngin vandamál fundust í þýðingunni.Engar tilvísanir í valið atriði.Engin þýðingarverkefni eru skráð á þínu Crowdin svæði.Ekki eru öll fleirtöluform þýdd.Ekki leyfilegt, skráðu þig aftur inn.Minnispunktar fyrir þýðendur:Í lagiÚreltir strengirEinnEinungis virkja þetta ef þú treystir þýðingaminninu þínu. Sjálfgefið eru allar samsvaranir úr þýðingaminninu merktar eins og þær þarfnist lagfæringa, því ætti að yfirfara þær og leiðrétta áður en þær eru notaðar.Einungis fylla inn nákvæmar samsvaranirOpnaOpna Crowdin þýðinguOpna frá Crowdin…Opna nýlegtOpna PO-skrá sem er til staðar og sýsla með þýðingar.Opna þýðingaskráOpna þýðingaskráarsniðmátOpna frá Crowdin…Opna í ritliOpna í ritliOpna...Opna…ValkostirAnnað&Fyrri ókláruð&Fyrri ókláruðPO þýðingPO þýðingaskrárPOT þýðingasniðmátPOT skrár eru aðeins þýðingasniðmát og innihalda engar þýðingar. Til að þýða verður að búa til nýja PO skrá byggða á sniðmátinu.LímaLíma og samsvara stílSlóðirOpnaðu frekar og breyttu samsvarandi PO-skrá. Þegar þú vistar hana, verður MO-skráin líka uppfærð.Endilega vistaðu skrána fyrst. Ekki er hægt að sýsla með þennan hluta fyrr en það hefur verið gert.FleirtalaFleirtöluformssniðið sem notað er í þýðingaskránni er óvenjulegt í %s.Fleirtöluform:Fleirtala:PoeditPoedit - ÞýðingaskráastjórnPoedit lagaði sjálfkrafa ógilt efni í '%s' skránni.Poedit getur reynt að fylla inn í nýjar þýðingar með eingöngu fyrri þýðingum í skránni, eða með færslum úr þýðingaminninu þínu. Að nota þýðingaminnið er ekkert sérstaklega öflugt ef það er hálftómt, en þessi aðgerð verður smátt og smátt betri eftir því sem þýðingar bætast við.Poedit er auðveldur þýðingaritill.F&or-þýða…ForþýðaForþýttForþýddi %u strengForþýddi %u strengiForþýðing…Forþýðing finnur sjálfvirkt í þýðingaminni nákvæmar eða loðnar samsvaranir fyrir óþýdda strengi og setur þær inn sem þýðingar.KjörstillingarStillingar...Kjörstillingar…Vernda snið fyrirliggjandi skráaFyrri fleirtalaFyrri fleirtalaFyrri frumtexti:Nafn þýðingaverkefnis og útgáfunúmer:Heiti verkefnis:Verkefni:HendaHenda eyddum þýðingumHættaHætta í %sNýlegtEndurtakaTilvísanir:EndurlesaEftir: %dSkipta útSkipt&a út ölluSkipt&a út ölluÚtskiptistrengurSkipta út…Höfuðstrenginn Plural-Forms vantar.EndurstillaNúllstilla þýðingaminniNúllstilling þýðingaminnis mun endanlega eyða öllum geymdum þýðingum úr því. Ekki er hægt að afturkalla þessa aðgerð.YfirfaraHægriVistaVist&a sem...Vist&a sem...Vista semVista sem…Vista þýðingaskráVista breytingarVelja &alltVelja alltVeldu möppuVeldu þær þýðingaskrár sem á að flytja innVeldu aðaltungumálið þittÞjónusturSetja bókamerkið %iSettu inn tungumálSetja bókamerkið %iVeldu tungumálShift+Birta alltBirta hliðarspjaldBirta stafsetningu og málfræðiBirta stöðustikuBirta útskiptingarBirta eða fela hliðarspjaldBirta hliðarspjaldBirta stöðustikuBirta samantekt eftir uppfærslu þýðingaskráaHliðarspjaldSkrá innSkrá útSkrá innSkrá inn í CrowdinSkrá útSkráður inn sem:EintalaEintala:Snjöll afritun/límingSnjöll strikSnjallir tenglarSnjallar gæsalappirRaða eftir s&kráaröðRaða eftir &frumtexta&Raða eftir þýðinguRaða eftir s&kráaröðRaða eftir &frumtexta&Raða eftir þýðinguStafatafla frumkóða:Frumkóðaþáttarar (source code extractors) eru notaðir til að finna þýðanlega strengi inni í frumkóðaskrám og setja í nýjar skrár svo hægt sé að þýða strengina.Upprunakóði ekki tiltækur.UpprunaskráTilvik í upprunaskrá:FrumtextiFrumtexti — %sFrumtexti:Stikkorð upprunaskráaSlóðir upprunaskráaStikkorð upprunaskráaSlóðir upprunaskráaTalaStafsetningaryfirferð er óvirk, því ekki er búið að setja upp orðasafn fyrir tungumálið %s.Stafsetning og málfræðiHefja lesturStöðva lesturGeymdar þýðingar:Finna strengÚtskiptingarTillögurTillögur eru ekki í boði ef tungumál þýðinga er ekki rétt skilgreint. Aðrir eiginleikar eins og fleirtöluform, gætu einnig valdið vandræðum.Styður öll forritunarmál sem GNU-gettext verkfærin þekkja (PHP, C/C++, C#, Perl, Python, Java, JavaScript og fleiri).SamstillaSamstilla við CrowdinSamræma þýðinguna með CrowdinSamstillingVilla í samstillinguSamstilling við %s mistókst.Samstilli við %s…Samstilling við Crowdin mistókst.Formvilla í Plural-Forms hauslínu ("%s").Þýð.minniTaka PO-skrá eða POT-sniðmát sem er til staðar og búa til nýjar þýðingar út frá því.Taka þýðanlega strengi úr POT sniðmáti sem til er fyrir.Heiti á teymi og tölvupóstfang eða vefslóðÚtskipting textaÞýðingaminnið inniheldur ekki neina strengi sem líkjast innihaldi þessarar skráar. Þýðingaminnið er aðeins nothæft til hálf-sjálfvirkra þýðinga þegar Poedit er búið að læra nógu mikið af þýðingum sem þú ert búinn að framkvæma handvirkt.Ekki tókst að vista þýðingaskrá með '%s' stafatöflu eins og tiltekið er í kjörstillingum. Skráin var þess vegna vistuð í UTF-8 og stillingum breytt í samræmi við það.Ekki er hægt að vistþýða skrána yfir á MO-form til notkunar.Ekki hægt að opna þessa skrá.Skráin inniheldur tvítekin atriði sem er ekki leyfilegt í PO-skrám og sem myndi koma í veg fyrir að hægt sé að nota skrána. Poedit lagaði þetta, en þú ættir að yfirfara þau atriði sem merkt eru til athugunar og leiðrétta þau ef þörf krefur.Skráin gæti verið skemmd eða á sniði sem Poedit þekkir ekki.Skráin var sannlega vistþýdd yfir á MO-form , en mun líklega ekki virka rétt.Skráin var sannlega vistuð og vistþýdd yfir á MO-form , en mun líklega ekki virka rétt.Skráin var sannlega vistuð, en ekki er hægt að vistþýða hana yfir á MO-form til notkunarSkráin var sannlega vistuð.Eldri frumtextinn (áður en hann breyttist við uppfærslu) sem þýðingin (núna ónákvæm) á við.Einfaldasta leiðin til að fylla þessa þýðingaskrá er að uppfæra hana frá a POT skrá:Þýðingin byrjar ekki á bili.Þýðingin endar með línuskiptitákni, en upprunatextinn gerir það ekki.Þýðingin endar með bili, en upprunatextinn gerir það ekki.Þýðingin byrjar með “%s”, en upprunatextinn endar með “%s”.Þýðinguna vantar línuskiptitákn við endann.Þýðinguna vantar bil við endann.Þýðingin er tilbúin til notkunar, en %d færsla er samt óþýdd.Þýðingin er tilbúin til notkunar, en %d færslur er samt óþýddar.Þýðingaminnið er tilbúið til notkunar.Þýðingin ætti að enda með “%s”.Þýðingin ætti ekki að enda með “%s”.Þýðingin ætti að byrja sem setning.Þýðingin ætti að byrja á lágstaf.Þýðingin byrjar með bili, en upprunatextinn gerir það ekki.Þýðingarnar voru merktar eins og þær þarfnist lagfæringa vegna þess að þær gætu verið ónákvæmar. Þú ættir að yfirfara þær og leiðrétta ef þörf krefur.Það eru engar þýðingar. Mjög óvenjulegt.Það kom upp vandamál við að forma skrána rétt (en hún var samt vistuð rétt).Það komu upp villur við að hlaða inn þýðingaskránni. Einhver gögn gæti vantað eða hafa skemmst við þetta.Þessar stillingar hafa áhrif á innra snið PO-skráa. Breyttu þeim ef þú hefur sértækar þarfir eins og t.d. vegna útgáfustýringar.Þessir strengir eru ekki lengur í upprunaskrám. Poedit mun nú fjarlægja þessa strengi úr þýðingaskránni.Þessir strengir fundust í kóða, en fundust ekki í þýðingaskrá. Poedit mun nú bæta við þessum strengjum.Þessi þýðingaskrá er með færslum sem hafa fleirtöluform, en hún er ekki með skilgreiningu á Plural-Forms í haus.Þessari skrá er aðeins hægt að breyta á vefsvæði Crowdin.Þetta er skipunin sem notuð er til að ræsa þáttarann. %o stendur fyrir úttaksheiti skráar, %K fyrir lista af stikkorðum, %F fyrir lista af inntaksskrám, %C fyrir flagg stafatöflu (sjá hér að neðan).Þetta verkefni er ekki með neinar skrár sem hægt er að þýða í Poedit.Þessi strengur fannst í þýðingaminni Poedit.Þetta mun verða viðhengt á skipanalínu, einungis ef upprunaleg stafatafla hefur verið gefið upp. %c kemur í stað gildis stafatöflunnar.Þetta mun verða viðhengt á skipanalínu, einu sinni fyrir hverja inntaksskrá. %f kemur í stað skráarheitisins.Þetta mun verða viðhengt á skipanalínu, einu sinni fyrir hvert stikkorð. %k kemur í stað stikkorðsins.AllsUmbreytingarÞýðanlegum færslum er ekki bætt handvirkt inn í Gettext kerfinu, heldur er náð í þær sjálfvirkt úr grunnkóða. Þannig eykst nákvæmni og þær eru alltaf uppfærðar. Þýðendur nota venjulega PO-sniðmát (POT) sem forritarar hafa útbúið fyrir þá.Þýtt: %d af %d (%d %%)Tungumál þýðingarÞýðingaminniÞýðin&g þarfnast lagfæringaEiginleikar þýðingarÞýðin&g þarfnast lagfæringaEiginleikar þýðingarÞýðingatillögur:Þýðing — %sÞýðing:Ekki var hægt að uppfæra þýðingar úr frumkóða, vegna þess að enginn kóði fannst á þeim stað sem tilgreindur er í eiginleikum þýðingaskrárinnar.TveirUTF-8 (mælt er með þessu)AfturkallaÓmeðhöndlað frávik kom upp: %sUnix (mælt er með þessu)ÓþýttUppUppfæraUppfæra alltUppfæra allar þýðingaskrár í verkefninuUppfæra þýðingaskrár - samræma við upprunaskrárUppfæra frá &POT skrá…Uppfæra frá &POT skrá…Uppfæra frá POT skráSamantekt uppfærsluUppfærslurUppfæri þýðingaskráUppfærsla mistókstUppfærsla á þýðingaskrá mistókst. Ýttu á 'Meira>>' fyrir frekari upplýsingar.Uppfæri upplýsingar um notanda…Sendi inn þýðingar…Nota sérsniðna segðNota sérsniðið letur í listum:Nota sérsniðið letur í textareitum:Nota sjálfgefnar reglur fyrir þetta tungumálNota þessi stikkorð (aðgerðaheiti) til að auðkenna þýðanlega strengi í upprunaskrám:Nota þýðingaminniSannreynaNiðurstöður prófunarÚtgáfa %sBíð eftir auðkenningu…Velkomin í PoeditHvað er Crowdin?Þegar frumtextar eru uppfærðirAðeins stök orðGluggiGluggarUmbrjóta textaUmbrjóta við:JáÞú getur líka náð í þýðanlega strengi beint úr grunnkóðanum:Þú getur ekki sleppt fleiri en einni skrá í Poedit glugga.Þú þarft að endurræsa Poedit til að þessi breyting taki gildi.Nafnið þittBreytingar tapast ef þú vistar þær ekki.Nafn þitt og netfang hér að neðan eru einungis til að fylla út höfuðstrenginn Last-Translator í skráarhaus GNU-gettext-skráa.NúllAðdrátturaltctrlekki eyða bráðabirgðaskrám (fyrir aflúsun)t.d. nplurals=2; plural=(n > 1);nota loðna þýðingu í skráfara á atriði á tilteknu línunúmerimeðhöndla poedit:// URIforþýða úr þýðingaminnishiftóþekkt tungumáltolvupostfang@midlari.is“%s" er ógild POT skrá.poedit-2.0.6/locales/et.po0000664000372000037200000013650513230132076012325 00000000000000msgid "" msgstr "" "Project-Id-Version: poedit\n" "Report-Msgid-Bugs-To: help@poedit.net\n" "POT-Creation-Date: 2017-12-05 15:52+0100\n" "PO-Revision-Date: 2017-07-27 03:14-0400\n" "Last-Translator: vslavik \n" "Language-Team: Estonian\n" "Language: et_EE\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: crowdin.com\n" "X-Crowdin-Project: poedit\n" "X-Crowdin-Language: et\n" "X-Crowdin-File: /locales/poedit.pot\n" msgid "Hide this notification message" msgstr "Selle teate peitmine" msgid "Don’t Show Again" msgstr "Ära enam näita" msgid "Don’t show again" msgstr "Ära enam näita" #, c-format msgid "(New: %i, obsolete: %i)" msgstr "(Uus: %i, vananenud: %i)" msgid "Updating catalog" msgstr "Kataloogi uuendamine" msgid "Collecting source files…" msgstr "Lähtefailide kogumine…" msgid "Extracting translatable strings…" msgstr "" msgid "Failed to load extracted catalog." msgstr "Viga kataloogi lahtipakkimisel." msgid "Merging differences…" msgstr "Erinevuste ühendamine…" #, c-format msgid "“%s” is not a valid POT file." msgstr "'%s' pole korrektne POT fail." #, c-format msgid "%i line of file “%s” was not loaded correctly." msgid_plural "%i lines of file “%s” were not loaded correctly." msgstr[0] "%i rida failis \"%s\" mis ei ole laetud korrektselt." msgstr[1] "%i rida failis \"%s\" mis ei ole laetud korrektselt." #, c-format msgid "Line %d of file “%s” is corrupted (not valid %s data)." msgstr "Rida %d failis \"%s\" on vigane (ei ole kehtivad %s andmed)." #, c-format msgid "Malformed header: “%s”" msgstr "Vigane päis: \"%s\"" msgid "" "Broken catalog file: singular form msgstr used together with msgid_plural" msgstr "Katkine kataloogi fail: msgstr vormi on kasutatud koos msgid_plural" msgid "Broken catalog file: plural form msgstr used without msgid_plural" msgstr "Katkine kataloogi fail: msgstr vorm ilma msgid_plural" msgid "" "There were errors when loading the catalog. Some data may be missing or " "corrupted as the result." msgstr "" "Mõned vead tekkisid kataloogi laadimisel. Mõned andmed on puudu või vigase " "tulemusega." #, c-format msgid "Couldn’t load file %s, it is probably corrupted." msgstr "Ei saadud laadida faili %s, see on tõenäoliselt vigane." #, c-format msgid "" "File “%s” is read-only and cannot be saved.\n" "Please save it under different name." msgstr "" #, c-format msgid "Couldn’t save file %s." msgstr "Faili %s pole võimalik salvestada." msgid "" "There was a problem formatting the file nicely (but it was saved all right)." msgstr "Faili kauni vormindusega tekkis viga (kuid see salvestati edukalt)." #, c-format msgid "" "The catalog couldn’t be saved in “%s” charset as specified in catalog " "settings.\n" "\n" "It was saved in UTF-8 instead and the setting was modified accordingly." msgstr "" msgid "Error saving catalog" msgstr "Tõrge kataloogi salvestamisel" msgid "PO Translation Files" msgstr "PO tõlkefailid" msgid "POT Translation Templates" msgstr "POT tõlkemallid" msgid "All Translation Files" msgstr "Kõik tõlkefailid" msgid "(Use default language)" msgstr "(Kasuta vaikekeelt)" msgid "Select your preferred language" msgstr "Vali enda meeliskeel" msgid "Language selection" msgstr "Keelevalik" msgid "You must restart Poedit for this change to take effect." msgstr "Selle muudatuse jõustumiseks peab Poedit-i taaskäivitama." msgid "Syncing" msgstr "Sünkroniseerimine" #. TRANSLATORS: %s is a cloud destination, e.g. "Crowdin" or ftp.wordpress.com etc. #, c-format msgid "Syncing with %s…" msgstr "Sünkrooniseerimine %s…" #. TRANSLATORS: %s is a cloud destination, e.g. "Crowdin" or ftp.wordpress.com etc. #, c-format msgid "Syncing with %s failed." msgstr "%s sünkrooniseerimine nurjus." msgid "Syncing error" msgstr "Sünkrooniseerimise tõrge" msgid "Downloading translations is disabled in this project." msgstr "Tõlgete allalaadimine on selles projektis keelatud." msgid "Not authorized, please sign in again." msgstr "Pole lubatud, palun logi uuesti sisse." msgid "" "Crowdin is an online localization management platform and collaborative " "translation tool. Poedit can seamlessly sync PO files managed at Crowdin." msgstr "" "Crowdin on veebipõhine tõlgete haldamise platform ja ühiskasutatav " "tõlkevahend. Poedit suudab sujuvalt sünkroonida Crowdinis olevaid PO faile." msgid "Sign In" msgstr "Logi sisse" msgid "Sign in" msgstr "Logi sisse" msgid "Sign Out" msgstr "Logi Välja" msgid "Sign out" msgstr "Logi välja" msgid "Waiting for authentication…" msgstr "Autentimise ootamine…" msgid "Updating user information…" msgstr "Kasutaja info uuendamine…" msgid "Signed in as:" msgstr "Sisse logitud kasutajana:" msgid "Learn More About Crowdin" msgstr "Lisateave Crowdini kohta" msgid "Learn more about Crowdin" msgstr "Lisateave Crowdini kohta" msgid "Sign in to Crowdin" msgstr "Logi Crowdinisse sisse" msgid "Open Crowdin translation" msgstr "Ava Crowdin tõlge" msgid "Project:" msgstr "Projekt:" msgid "Language:" msgstr "Keel:" msgid "File:" msgstr "Fail:" msgid "No translation projects listed in your Crowdin account." msgstr "Sinu Crowdin kasutajakontol pole ühtegi tõlkeprojekti." msgid "This project has no files that can be translated in Poedit." msgstr "Sellel projektil pole faile ja seda ei saa Poeditiga tõlkida." msgid "This file can only be edited in Crowdin’s web interface." msgstr "Seda faili saab muuta ainult Crowdini veebiliideses." msgid "Downloading latest translations…" msgstr "Viimaste tõlgete allalaadimine…" msgid "Syncing with Crowdin failed." msgstr "Crowdiniga sünkronimine ebaõnnestus." msgid "Crowdin error" msgstr "Crowdini tõrge" msgid "Uploading translations…" msgstr "Tõlgete üles laadimine…" msgid "&Copy" msgstr "&Kopeeri" msgid "Learn more" msgstr "Uuri lähemalt" msgid "Learn More" msgstr "Uuri lähemalt" msgid "&Help" msgstr "A&bi" msgid "MO files can’t be directly edited in Poedit." msgstr "MO faile ei saa otse Poeditis muuta." msgid "Error opening file" msgstr "Tõrge faili avamisel" msgid "" "Please open and edit the corresponding PO file instead. When you save it, " "the MO file will be updated as well." msgstr "" "Palun ava hoopis vastav PO fail. Kui sa selle salvestad, siis uuendatakse ka " "MO faili." msgid "don’t delete temporary files (for debugging)" msgstr "ajutisi faile ei kustutata (silumiseks)" msgid "handle a poedit:// URI" msgstr "" msgid "go to item at given line number" msgstr "" msgid "Failed to communicate with Poedit process." msgstr "Poediti protsessiga suhtlemine ebaõnnestus." #, c-format msgid "Unhandled exception occurred: %s" msgstr "" msgid "Open catalog" msgstr "Kataloogi avamine" #, c-format msgid "File “%s” doesn’t exist." msgstr "Faili \"%s\" pole olemas." msgid "Poedit is an easy to use translations editor." msgstr "Poedit on lihtne tõlkimise abivahend." msgid "Catalogs Manager" msgstr "Kataloogide haldamine" msgid "Check for Updates…" msgstr "Uuenduste kontroll…" msgid "&Edit" msgstr "&Redigeerimine" msgid "Undo" msgstr "Taasta" msgid "Redo" msgstr "Korda" msgid "Paste and Match Style" msgstr "" msgid "Delete" msgstr "Kustuta" msgid "Spelling and Grammar" msgstr "Õigekiri ja grammatika" msgid "Show Spelling and Grammar" msgstr "Näita õigekirja ja grammatikat" msgid "Check Document Now" msgstr "Kontrolli dokumenti kohe" msgid "Check Spelling While Typing" msgstr "Kontrolli õigekirja kirjutamise ajal" msgid "Check Grammar With Spelling" msgstr "Kontrolli grammatikat koos õigekirja kontrollimisega" msgid "Correct Spelling Automatically" msgstr "Paranda õigekirja automaatselt" msgid "Substitutions" msgstr "Asendused" msgid "Show Substitutions" msgstr "Näita asendusi" msgid "Smart Copy/Paste" msgstr "Nutikas kopeerimine ja asetamine" msgid "Smart Quotes" msgstr "Nutikad jutumärkid" msgid "Smart Dashes" msgstr "Nutikad mõttekriipsud" msgid "Smart Links" msgstr "d li" msgid "Text Replacement" msgstr "Teksti asendamine" msgid "Transformations" msgstr "Teisendused" msgid "Make Upper Case" msgstr "Tee suurtähtedeks" msgid "Make Lower Case" msgstr "Tee väiketähtedeks" msgid "Capitalize" msgstr "Suure algus tähega" msgid "Speech" msgstr "Kõne" msgid "Start Speaking" msgstr "Alusta rääkimist" msgid "Stop Speaking" msgstr "Lõpeta rääkimine" msgid "&View" msgstr "&Vaade" msgid "Enter Full Screen" msgstr "Aktiveeri täisekraan" msgid "Window" msgstr "Aken" msgid "Minimize" msgstr "Minimeeri" msgid "Zoom" msgstr "Suurendus" msgid "Bring All to Front" msgstr "Too kõik ette" #. TRANSLATORS:File kind displayed in Finder/Explorer msgid "PO Translation" msgstr "PO tõlge" msgid "The file cannot be opened." msgstr "Faili ei saa avada." msgid "Invalid file" msgstr "Vigane fail" msgid "" "The file may be either corrupted or in a format not recognized by Poedit." msgstr "" msgid "You can’t drop more than one file on Poedit window." msgstr "Poedit aknasse saab lohistada vaid ühe faili." #, c-format msgid "File “%s” is not a message catalog." msgstr "Fail \"%s\" pole sõnumikataloogis." msgid "Poedit" msgstr "Poedit" msgid "&File" msgstr "&Fail" msgid "&Go" msgstr "&Liikumine" #. TRANSLATORS: %s is language name in its basic form (as you #. would see e.g. in a list of supported languages). You may need #. to rephrase it, e.g. to an equivalent of "for language %s". #, c-format msgid "" "Spellchecking is disabled, because the dictionary for %s isn’t installed." msgstr "Õigekirjakontroll on keelatud, kuna %s sõnastikku pole paigaldatud." msgid "Install" msgstr "Paigalda" msgid "Catalog modified. Do you want to save changes?" msgstr "Kataloogi on muudetud. Kas soovid muudatused salvestada?" msgid "Save changes" msgstr "Salvesta muudatused" msgid "Your changes will be lost if you don’t save them." msgstr "Tehtud muudatused lähevad kaotsi, kui neid ei salvestata." msgid "Save" msgstr "Salvesta" msgid "Don’t save" msgstr "Ära salvesta" msgid "Don’t Save" msgstr "Ära salvesta" msgid "Save as…" msgstr "Salvesta kui…" msgid "Compile to…" msgstr "Kompileeri…" msgid "Compiled Translation Files" msgstr "Kompileeritud tõlkefailid" msgid "Export as…" msgstr "Ekspordi kui…" msgid "HTML Files" msgstr "HTML-failid" msgid "Open catalog template" msgstr "Kataloogimalli avamine" msgid "Source code not available." msgstr "Lähtekood pole saadaval." msgid "Updating failed" msgstr "Uuendamine ebaõnnestus" msgid "" "Translations couldn’t be updated from the source code, because no code was " "found in the location specified in the catalog’s Properties." msgstr "" "Tõlked ei saanud värskendada lähtekoodist, sest määratud kaustast ei leitud " "koodi." msgid "Entries in the catalog are probably incorrect." msgstr "Kirjed kataloogis on tõenäoliselt vigased." msgid "Updating the catalog failed. Click on 'Details >>' for details." msgstr "" "Kataloogi uuendamine nurjus. Täpsustuse jaoks klõpsa nupule \"Üksikasjad >>" "\"." #, c-format msgid "%d issue with the translation found." msgid_plural "%d issues with the translation found." msgstr[0] "Tõlkest leiti %d probleem." msgstr[1] "Tõlkest leiti %d probleemi." msgid "Validation results" msgstr "Kontrolli tulemused" msgid "" "Entries with errors were marked in red in the list. Details of the error " "will be shown when you select such an entry." msgstr "" "Vigadega tekstid märgiti loendis punasega. Vea üksikasju kuvatakse teksti " "märkimisel." msgid "The file was saved safely." msgstr "Fail on salvestatud." msgid "" "The file was saved safely and compiled into the MO format, but it will " "probably not work correctly." msgstr "" msgid "" "The file was saved safely, but it cannot be compiled into the MO format and " "used." msgstr "" "Fail salvestati edukalt, kuid seda polnud võimalik kompileerida MO " "vormingusse ning kasutusele võtta." msgid "" "The file was compiled into the MO format, but it will probably not work " "correctly." msgstr "" msgid "The file cannot be compiled into the MO format and used." msgstr "Faili ei saa kasutada ja MO failiks kompileerida." msgid "No problems with the translation found." msgstr "Tõlgetest ei leitud vigu." #, c-format msgid "The translation is ready for use, but %d entry is not translated yet." msgid_plural "" "The translation is ready for use, but %d entries are not translated yet." msgstr[0] "" msgstr[1] "" msgid "The translation is ready for use." msgstr "Tõlge on kasutamiseks valmis." #, c-format msgid "Poedit automatically fixed invalid content in the file “%s”." msgstr "Poedit parandas automaatselt vigase sisu failis “%s”." msgid "" "The file contained duplicate items, which is not allowed in PO files and " "would prevent the file from being used. Poedit fixed the issue, but you " "should review translations of any items marked as needing work and correct " "them if necessary." msgstr "" msgid "Language of the translation isn’t set." msgstr "Tõlke keel on määramata." msgid "Set Language" msgstr "Määra keel" msgid "Set language" msgstr "Määra keel" #. TRANSLATORS: This is shown underneath "Language of the translation isn't set (or ...is the same as source language)." msgid "" "Suggestions are not available if the translation language is not set " "correctly. Other features, such as plural forms, may be affected as well." msgstr "" "Soovitused pole saadaval, kui tõlkekeel pole õigesti seadistatud. See võib " "mõjutada ka teisi funktsioone nagu näiteks mitmuse vormid." msgid "Language of the translation is the same as source language." msgstr "Tõlke keel on sama kui lähtekeel." msgid "Fix Language" msgstr "Paranda keel" msgid "Fix language" msgstr "Paranda keel" msgid "" "This catalog has entries with plural forms, but doesn’t have Plural-Forms " "header configured." msgstr "" "Kataloogis on tekste mitmusvormidega, kuid sel pole Plural-Forms päis " "seadistatud." msgid "" "Entries in this catalog have different plural forms count from what " "catalog’s Plural-Forms header says" msgstr "" "Selle kataloogi tekstide mitmusvormide arv erineb Plural-Forms päises " "määratust" msgid "Required header Plural-Forms is missing." msgstr "Vajalik päis Plural-Forms (mitmusvormid) puudub." #, c-format msgid "Syntax error in Plural-Forms header (\"%s\")." msgstr "Süntaksi viga Plural-Forms päises (\"%s\")." msgid "Fix the Header" msgstr "Paranda päis" msgid "Fix the header" msgstr "Paranda päis" #. TRANSLATORS: %s is language name in its basic form (as you #. would see e.g. in a list of supported languages). You may need #. to rephrase it, e.g. to an equivalent of "for language %s". #, c-format msgid "Plural forms expression used by the catalog is unusual for %s." msgstr "Kataloogis kasutatud mitmuse väljendid on %s keele jaoks ebatavalised." #. TRANSLATORS: A verb, shown as action button with ""Plural forms expression used by the catalog is unusual for %s.")" msgid "Review" msgstr "Vaata üle" #, c-format msgid "Error loading message catalog file “%s”." msgstr "Viga sõnumi laadimisel failis \"%s\"." #, c-format msgid "Translated: %d of %d (%d %%)" msgstr "Tõlgitud: %d / %d (%d %%)" #, c-format msgid "Remaining: %d" msgstr "Jäänud: %d" #, c-format msgid "%d error" msgid_plural "%d errors" msgstr[0] "%d viga" msgstr[1] "%d viga" #, c-format msgid "%d entry" msgid_plural "%d entries" msgstr[0] "%d kirje" msgstr[1] "%d kirjet" msgid " (unsaved)" msgstr " (salvestamata)" msgid " (modified)" msgstr " (muudetud)" #, c-format msgid "Failed to update translation memory: %s" msgstr "Tõlkemälu uuendamine ebaõnnestus: %s" msgid "Purge deleted translations" msgstr "Kustutatud tõlgete puhastamine" msgid "Do you want to remove all translations that are no longer used?" msgstr "Kas tahad eemaldada tõlked, mida enam ei kasutata?" msgid "" "If you continue with purging, all translations marked as deleted will be " "permanently removed. You will have to translate them again if they are added " "back in the future." msgstr "" "Kui sa jätkad puhastamisega, eemaldatakse kõik kustutatuks märgitud tõlked " "lõplikult. Kui need kunagi uuesti lisatakse, pead need uuesti tõlkima." msgid "Keep" msgstr "Säilita" msgid "Purge" msgstr "Puhasta" msgid "Copy from source text" msgstr "Lähteteksti kopeerimine" msgid "Copy from Source Text" msgstr "Kopeeri lähtetekst" #. TRANSLATORS: This is the key shortcut used in menus on Windows, some languages call them differently #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Ctrl+" msgstr "Ctrl+" msgid "Clear translation" msgstr "Tõlke eemaldamine" msgid "Clear Translation" msgstr "Eemalda tõlge" msgid "Edit comment" msgstr "Kommentaari muutmine" msgid "Edit Comment" msgstr "Kommentaari muutmine" msgid "References:" msgstr "Viited:" msgid "&Bookmarks" msgstr "&Järjehoidjad" #. TRANSLATORS: This is the key shortcut used in menus on Windows, some languages call them differently #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Alt+" msgstr "Alt+" #, c-format msgid "Set bookmark %i" msgstr "Lisa järjehoidja %i" #, c-format msgid "Go to bookmark %i" msgstr "Mine järjehoidjale %i" #, c-format msgid "Set Bookmark %i" msgstr "Lisa järjehoidja %i" #, c-format msgid "Go to Bookmark %i" msgstr "Mine järjehoidjale %i" msgid "Hide Sidebar" msgstr "Peida külgriba" msgid "Show Sidebar" msgstr "Näita külgriba" msgid "Hide Status Bar" msgstr "Peida olekuriba" msgid "Show Status Bar" msgstr "Näita olekuriba" msgid "Source text:" msgstr "Originaaltekst:" msgid "Singular:" msgstr "Ainsus:" msgid "Plural:" msgstr "Mitmus:" msgid "Translation:" msgstr "Tõlge:" msgid "Pre-translated" msgstr "Eel-tõlge" msgid "Needs Work" msgstr "Vajab tööd" #. TRANSLATORS: This indicates that the string's translation isn't final #. and has known problems. For example, it might be machine translated or #. fuzzy matched from an older string. The translation should be short and #. convey this. If it's problematic to translate it, "Needs review" is #. acceptable substitute, but note that the meaning is subtly different: #. "needs review" implies that somebody else should review the string after #. I am done with it (i.e. consider it good), while "needs work" implies I #. need to return to it and finish the translation. msgid "Needs work" msgstr "Vajab tööd" msgid "" "POT files are only templates and don’t contain any translations themselves.\n" "To make a translation, create a new PO file based on the template." msgstr "" "POT failid on ainult mallid ja neis endis pole mingeid tõlkeid.\n" "Tõlke tegemiseks loo palun selle malli põhjal uus PO fail." msgid "Create New Translation" msgstr "Loo uus tõlge" msgid "Create new translation" msgstr "Loo uus tõlge" msgid "Everything" msgstr "Kõik" #, c-format msgid "Form %i" msgstr "%i vorm" msgid "Singular" msgstr "Ainsus" msgid "Zero" msgstr "Null" msgid "One" msgstr "Üks" msgid "Two" msgstr "Kaks" msgid "Plural" msgstr "Mitmus" msgid "Other" msgstr "Muu" #, c-format msgid "%s Format" msgstr "%s formaadis" #. TRANSLATORS: %s is replaced with language name, e.g. "PHP" or "C", so "PHP Format" etc." #, c-format msgid "%s format" msgstr "%s formaadis" msgid "Source text" msgstr "Originaaltekst" #, c-format msgid "Translation — %s" msgstr "Tõlge — %s" msgid "ID" msgstr "ID" #, c-format msgid "Source text — %s" msgstr "Lähtetekst — %s" msgid "unknown language" msgstr "tundmatu keel" #, c-format msgid "Failed command: %s" msgstr "Käsuviga: %s" msgid "Failed to merge gettext catalogs." msgstr "Viga teksti ühildumisel antud kataloogis." msgid "Source file" msgstr "Lähtefail" msgid "Source file occurrence:" msgstr "Lähtefaili esinemine:" msgid "Open in Editor" msgstr "Ava redaktoris" msgid "Open in editor" msgstr "Ava redaktoris" msgid "No references for the selected item." msgstr "Valitud kirjetele viiteid pole." #, c-format msgid "Error opening file %s!" msgstr "Tõrge faili %s avamisel!" msgid "Find" msgstr "Leia" msgid "Replace" msgstr "Asenda" #. TRANSLATORS: Expander in Find window for additional options (case sensitive etc.) msgid "Options" msgstr "Valikud" msgid "Ignore case" msgstr "Ignoreeri tähesuurust" msgid "Wrap around" msgstr "Alusta otsast peale" msgid "Whole words only" msgstr "Ainult terved sõnad" msgid "Find in source texts" msgstr "Otsi lähtetekstidest" msgid "Find in translations" msgstr "Otsi tõlgetest" msgid "Find in comments" msgstr "Otsitakse kommentaaridest" msgid "Close" msgstr "Sulge" msgid "Replace &All" msgstr "&Asenda kõik" msgid "Replace &all" msgstr "&Asenda kõik" msgid "&Replace" msgstr "A&senda" msgid "< &Previous" msgstr "< &Eelmine" msgid "&Next >" msgstr "&Järgmine >" msgid "String to find" msgstr "Otsisõna" msgid "Replacement string" msgstr "Asenda sellega" #, c-format msgid "Cannot execute program: %s" msgstr "Programmi pole võimalik käivitada: %s" msgid "Language Code or Name (e.g. en_GB)" msgstr "Keele kood või nimi (nt en_GB)" msgid "Translation Language" msgstr "Tõlkekeel" msgid "Language of the translation:" msgstr "Keel, millesse tõlgitakse:" msgid "Poedit - Catalogs manager" msgstr "Poedit - Kataloogihaldur" msgid "Catalog" msgstr "Kataloog" msgid "Total" msgstr "Kokku" msgid "Untrans" msgstr "Tõlkimata" msgid "Errors" msgstr "Vead" msgid "Last modified" msgstr "Viimati muudetud" msgid "Select directory" msgstr "Kataloogi valimine" msgid "Directories:" msgstr "Kataloogid:" msgid "" msgstr "" msgid "Do you want to delete the project?" msgstr "Kas sa soovid selle projekti kustutada?" msgid "Confirmation" msgstr "Kinnitus" msgid "" "Do you really want to do mass update of\n" "all catalogs in this project?" msgstr "" "Kas sa soovid tõesti massuuendada\n" "kõiki katalooge selles projektis?" msgid "Information about the translator" msgstr "Info tõlkija kohta" msgid "Name:" msgstr "Nimi:" msgid "Your Name" msgstr "Sinu nimi" msgid "Email:" msgstr "E-post:" msgid "your_email@example.com" msgstr "sinu_epost@domeen.ee" msgid "" "Your name and email address are only used to set the Last-Translator header " "of GNU gettext files." msgstr "" "Sinu nime ja e-posti kasutatakse ainult viimase tõlkija kohal GNU gettext " "failide päises." msgid "Editing" msgstr "Muutmine" msgid "Automatically compile MO file when saving" msgstr "Salvestamisel luuakse automaatselt MO fail" msgid "Show summary after catalog update" msgstr "Kokkuvõte kataloogi uuendamise järel" msgid "Check spelling" msgstr "Kontrolli õigekirja" msgid "Always change focus to text input field" msgstr "Fookus on alati tekstisisestusväljal" msgid "" "Never let the list of strings take focus. If enabled, you must use Ctrl-" "arrows for keyboard navigation but you can also type text immediately, " "without having to press Tab to change focus." msgstr "" "Ära luba tekstinimekirjal fookust haarata. Kui sisse lülitatud, pead " "kasutama klaviatuuriga navigeerimiseks Ctrl-nooli, kuid teksti võib " "sisestada ka vahetult, ilma Tab-klahviga fookust vahetamata." msgid "Appearance" msgstr "Välimus" msgid "Use custom list font:" msgstr "Kasuta kohandatud loend fonti:" msgid "Use custom text fields font:" msgstr "Kasuta kohandatud teksti väljade fonti:" msgid "Change UI language" msgstr "Muuda kasutajaliidese keelt" #. TRANSLATORS: This is a note appended to "Check spelling" when running on older Windows versions msgid "(requires Windows 8 or newer)" msgstr "(nõuab Windows 8 või uuemat)" msgid "General" msgstr "Üldine" msgid "Use translation memory" msgstr "Kasuta tõlkemälu" msgid "Learn From Files…" msgstr "Õpi failidest…" msgid "Learn from files…" msgstr "Õpi failidest…" #. TRANSLATORS: This is a button that deletes everything in the translation memory (i.e. clears/resets it). msgid "Reset" msgstr "Lähtesta" #. TRANSLATORS: Followed by "match translations within the file" or "pre-translate from TM" msgid "When updating from sources" msgstr "Allikatest uuendamisel" #. TRANSLATORS: Preceded by "When updating from sources" msgid "fuzzy match within the file" msgstr "hägus vaste failis" #. TRANSLATORS: Preceded by "When updating from sources" msgid "pre-translate from TM" msgstr "eel-tõlge tõlkemälust" msgid "" "Poedit can attempt to fill in new entries from only previous translations in " "the file or from your entire translation memory. Using the TM won’t be very " "effective if it’s near-empty, but it will get better as you add more " "translations to it." msgstr "" msgid "Stored translations:" msgstr "Salvestatud tõlked:" msgid "Database size on disk:" msgstr "Andmebaasi suurus kettal:" msgid "Select translation files to import" msgstr "Vali tõlkefailid, mida importida" msgid "Translation Memory" msgstr "Tõlkemälu" msgid "Importing translations…" msgstr "Tõlgete importimine…" msgid "Finalizing…" msgstr "Lõpetamine…" msgid "Reset translation memory" msgstr "Nulli tõlkemälu" msgid "Are you sure you want to reset the translation memory?" msgstr "Oled sa kindel, et soovid tõlkemälu nullida?" msgid "" "Resetting the translation memory will irrevocably delete all stored " "translations from it. You can’t undo this operation." msgstr "" "Tõlkemälu nullimine kustutab sellest pöördumatult kõik tõlked. Seda tegevust " "ei saa tagasi võtta." msgid "Cancel" msgstr "Katkesta" #. TRANSLATORS: This is abbreviation of "Translation Memory" used in Preferences on macOS. #. Long text looks weird there, too short (like TM) too, but less so. "General" is about ideal #. length there. msgid "TM" msgstr "TM" msgid "" "Source code extractors are used to find translatable strings in the source " "code files and extract them so that they can be translated." msgstr "" msgid "Custom Extractors:" msgstr "" msgid "Custom extractors:" msgstr "" msgid "Edit…" msgstr "Redigeeri…" msgid "GNU gettext" msgstr "GNU gettext" msgid "" "Supports all programming languages recognized by GNU gettext tools (PHP, C/C+" "+, C#, Perl, Python, Java, JavaScript and others)." msgstr "" msgid "Delete extractor" msgstr "" #, c-format msgid "Are you sure you want to delete the “%s” extractor?" msgstr "" msgid "Extractors" msgstr "" msgid "Accounts" msgstr "Kontod" msgid "Automatically check for updates" msgstr "Kontrolli automaatselt uuendusi automaatselt" msgid "Include beta versions" msgstr "Kaasa beetaversioonid" msgid "" "Beta versions contain the latest new features and improvements, but may be a " "bit less stable." msgstr "" "Beetaversioonides on uuemad funktsioonid ja täiendused, aga nad ei pruugi " "olla nii stabiilsed." msgid "Updates" msgstr "Uuendused" msgid "" "These settings affect internal formatting of PO files. Adjust them if you " "have specific requirements e.g. because of version control." msgstr "" msgid "Line endings:" msgstr "Realõpud:" msgid "Unix (recommended)" msgstr "Unix (soovituslik)" msgid "Windows" msgstr "Windows" #. TRANSLATORS: Followed by text control for entering number; wraps text at given width msgid "Wrap at:" msgstr "Reamurdmine:" msgid "Preserve formatting of existing files" msgstr "Säilite olemasolevate failide vorming" msgid "Advanced" msgstr "Lisavalikud" msgid "Pre-translating…" msgstr "Eel-tõlkimine…" #, c-format msgid "Pre-translated %u string" msgid_plural "Pre-translated %u strings" msgstr[0] "Eeltõlgitud %u tekst" msgstr[1] "Eeltõlgitud %u tekstid" #. TRANSLATORS: This is a somewhat common term describing the action where #. you apply the translation memory and/or machine translation to all of the #. strings you're translating as the first step, followed by correcting, #. improving etc., i.e. actually translating the strings. This may be tricky #. to express in other languages as simply as in English, but please try to #. keep it similarly concise. Please try to avoid, if possible, describing it #. as "auto-translation" and similar, because such terminology would mislead #. some users into thinking it's all that needs to be done (spoken from #. experience). "Pre-translate" nicely expresses that it's only the step done #. *before* actual translation. msgid "Pre-translate" msgstr "Eel-tõlge" msgid "Only fill in exact matches" msgstr "Täida ainult täpsed vasted" msgid "" "By default, inaccurate results are filled in as well and marked as needing " "work. Check this option to only include accurate matches." msgstr "" msgid "Don’t mark exact matches as needing work" msgstr "Ära märgi täpseid vasteid tööd vajavateks tõlgeteks" msgid "" "Only enable if you trust the quality of your TM. By default, all matches " "from the TM are marked as needing work and should be reviewed before use." msgstr "" msgid "" "Pre-translation automatically finds exact or fuzzy matches for untranslated " "strings in the translation memory and fills in their translations." msgstr "" #, c-format msgid "%d entry was pre-translated." msgid_plural "%d entries were pre-translated." msgstr[0] "%d sissekanne eeltõlgiti." msgstr[1] "%d sissekannet eeltõlgiti." msgid "" "The translations were marked as needing work, because they may be " "inaccurate. You should review them for correctness." msgstr "" msgid "No entries could be pre-translated." msgstr "Ühtegi sissekannet ei saanud eel-tõlkida." msgid "" "The TM doesn’t contain any strings similar to the content of this file. It " "is only effective for semi-automatic translations after Poedit learns enough " "from files that you translated manually." msgstr "" msgid "" "Drag and Drop Folders Here\n" "\n" "or use the + button" msgstr "" "Lohista kaustad siia\n" "\n" "või kasuta + nuppu" msgid "" "Drag and drop folders here\n" "\n" "or use the + button" msgstr "" "Lohista kaustad siia\n" "\n" "või kasuta + nuppu" msgid "Add Folders…" msgstr "Lisa kaustad…" msgid "Add folders…" msgstr "Lisa kaustad…" msgid "Add Files…" msgstr "Lisa failid…" msgid "Add files…" msgstr "Lisa failid…" msgid "Add Wildcard…" msgstr "Lisa metamärk…" msgid "Add wildcard…" msgstr "Lisa metamärk…" msgid "Paths" msgstr "Rajad" msgid "Excluded paths" msgstr "Välja jäetud kaustateed" msgid "Advanced extraction settings" msgstr "" msgid "Extract notes for translators from:" msgstr "" msgid "Comments prefixed with:" msgstr "Kommentaarid eesliitega:" msgid "All comments" msgstr "Kõik kommentaarid" msgid "Additional xgettext flags:" msgstr "Täiendavad xgettext lipud:" msgid "Additional keywords" msgstr "Täiendavad märksõnad" msgid "Name of the project the translation is for" msgstr "Tõlgitava projekti nimi" msgid "Team name and email address or URL" msgstr "Meeskonna nimi ja e-posti aadress või link" msgid "e.g. nplurals=2; plural=(n > 1);" msgstr "nt. nplurals=2; plural=(n > 1);" msgid "UTF-8 (recommended)" msgstr "UTF-8 (soovituslik)" msgid "Please save the file first. This section cannot be edited until then." msgstr "" "Palun salvesta esmalt fail. Seda sektsiooni ei saa enne salvestamist muuta." msgid "Not all plural forms are translated." msgstr "Kõik mitmuse vormid pole tõlgitud." msgid "The translation should start as a sentence." msgstr "Tõlge peaks algama nagu lause." msgid "The translation should start with a lowercase character." msgstr "Tõlge peaks algama väiketähega." msgid "The translation doesn’t start with a space." msgstr "Tõlge ei alga tühikuga." msgid "The translation starts with a space, but the source text doesn’t." msgstr "Tõlge algab tühikuga, aga lähtekeeles seal tühikut pole." msgid "The translation is missing a newline at the end." msgstr "Tõlke lõpus puudub uue rea märk." msgid "The translation ends with a newline, but the source text doesn’t." msgstr "Tõlge lõpeb uue rea märgiga, aga lähtekeeles seda seal pole." msgid "The translation is missing a space at the end." msgstr "Tõlke lõpus puudub tühik." msgid "The translation ends with a space, but the source text doesn’t." msgstr "Tõlge lõpeb tühikuga, aga lähteteksti lõpus tühikut pole." #, c-format msgid "The translation should end with “%s”." msgstr "Tõlke peab lõppema \"%s\"-ga." #, c-format msgid "The translation should not end with “%s”." msgstr "Tõlke ei peaks lõppema \"%s\"-ga." #, c-format msgid "The translation ends with “%s”, but the source text ends with “%s”." msgstr "Tõlke lõpus on “%s”, aga lähteteksti lõpus on “%s”." msgid "Comment:" msgstr "Kommentaar:" msgid "OK" msgstr "OK" msgid "C&lear" msgstr "&Tühjenda" msgid "Clear the comment" msgstr "Tühjenda kommentaar" msgid "New" msgstr "Uus" msgid "Create new translations project" msgstr "Loo uus tõlkeprojekt" msgid "Edit" msgstr "Muuda" msgid "Edit the project" msgstr "Projekti muutmine" msgid "Delete the project" msgstr "Kustuta projekt" msgid "Update all" msgstr "Uuenda kõik" msgid "Update all catalogs in the project" msgstr "Uuenda kõiki projekti katalooge" msgid "Edit project" msgstr "Projekti muutmine" msgid "Project name:" msgstr "Projekti nimetus:" msgid "Browse" msgstr "Lehitse" msgid "Add directory to the list" msgstr "Lisa kataloog nimistusse" msgid "&New…" msgstr "&Uus…" msgid "New from &POT/PO file…" msgstr "Uus & POT/PO-failist…" msgid "New From &POT/PO File…" msgstr "Uus & POT/PO-failist…" msgid "&Open…" msgstr "&Ava…" msgid "Open Recent" msgstr "Ava hiljutised" msgid "Open from Crowdin…" msgstr "Ava Crowdinist…" msgid "Open From Crowdin…" msgstr "Ava Crowdinist…" msgid "&Close" msgstr "Su&lge" msgid "&Save" msgstr "&Salvesta" msgid "Save &as…" msgstr "Salvesta &kui…" msgid "Save &As…" msgstr "Salvesta &kui…" msgid "Compile to MO…" msgstr "Kompileeri MO…" msgid "E&xport as HTML…" msgstr "&Ekspordi HTML-ina…" msgid "Check for updates…" msgstr "Uuenduste kontroll…" msgid "&Preferences…" msgstr "&Eelistused…" msgid "Catalogs &manager" msgstr "&Kataloogihaldur" msgid "Catalogs &Manager" msgstr "&Kataloogihaldur" msgid "E&xit" msgstr "&Välju" msgid "Quit" msgstr "Lõpeta" msgid "Copy from singular" msgstr "Kopeeri ainsusest" msgid "Copy From Singular" msgstr "Kopeeri ainsusest" msgid "Translation needs &work" msgstr "Tõlge vajab veel &tööd" msgid "Translation Needs &Work" msgstr "Tõlge vajab veel &tööd" msgid "Edit &comment" msgstr "Redigeeri ko&mmentaari" msgid "Edit &Comment" msgstr "Muuda &kommentaari" msgid "Suggestions" msgstr "Soovitused" msgid "&Find…" msgstr "&Otsi…" msgid "Replace…" msgstr "Asenda…" msgid "Find next" msgstr "Leia järgmine" msgid "Find previous" msgstr "Leia eelmine" msgid "Find and Replace…" msgstr "Otsi ja asenda…" msgid "Find Next" msgstr "Leia järgmine" msgid "Find Previous" msgstr "Leia eelmine" msgid "&Preferences" msgstr "&Eelistused" msgid "Display entry &IDs" msgstr "Näita kirje ID-sid" msgid "Display Entry &IDs" msgstr "Näita kirje ID-sid" msgid "Sort by &file order" msgstr "Sortimine &failide järgi" msgid "Sort by &File Order" msgstr "Sortimine &failide järgi" msgid "Sort by &source" msgstr "Sortimine &lähtekoodi järgi" msgid "Sort by &Source" msgstr "Sortimine &lähtekoodi järgi" msgid "Sort by &translation" msgstr "Sortimine &tõlke järgi" msgid "Sort by &Translation" msgstr "Sortimine &tõlke järgi" msgid "&Group by context" msgstr "&Rühmita konteksti järgi" msgid "&Group By Context" msgstr "&Rühmita konteksti järgi" msgid "Entries with errors first" msgstr "Vigadega sissekanded eespool" msgid "Entries with Errors First" msgstr "Vigadega sissekanded eespool" msgid "&Untranslated entries first" msgstr "&Tõlkimata tekstid eespool" msgid "&Untranslated Entries First" msgstr "Tõlkimata tekstid &eespool" msgid "&Show references" msgstr "&Näita viiteid" msgid "&Show References" msgstr "&Näita viiteid" msgid "Show sidebar" msgstr "Näita külgriba" msgid "Show status bar" msgstr "Näita olekuriba" msgid "C&atalog" msgstr "&Kataloog" msgid "&Update from sources" msgstr "&Uuenda lähtekoodist" msgid "&Update from Sources" msgstr "&Uuenda lähtekoodist" msgid "Update from &POT file…" msgstr "Uuenda &POT failist…" msgid "Update from &POT File…" msgstr "Uuenda &POT failist…" msgid "Sync with Crowdin" msgstr "Sünkroonimine Crowdiniga" msgid "Pre-&translate…" msgstr "Eel-tõlge…" msgid "&Purge deleted translations" msgstr "&Puhasta kustutatud tõlked" msgid "&Purge Deleted Translations" msgstr "&Puhasta kustutatud tõlgetest" msgid "&Validate translations" msgstr "&Kontrolli tõlkeid" msgid "&Validate Translations" msgstr "&Kontrolli tõlkeid" msgid "&Properties…" msgstr "&Omadused…" msgid "&Done and next" msgstr "&Valmis, järgmine" msgid "&Done and Next" msgstr "&Valmis, järgmine" msgid "&Previous translation" msgstr "&Eelmine tõlge" msgid "&Previous Translation" msgstr "&Eelmine tõlge" msgid "&Next translation" msgstr "&Järgmine tõlge" msgid "&Next Translation" msgstr "&Järgmine tõlge" msgid "P&revious unfinished" msgstr "Eel&mine lõpetamata" msgid "P&revious Unfinished" msgstr "Eel&mine lõpetamata" msgid "Ne&xt unfinished" msgstr "Järgmine &lõpetamata" msgid "Ne&xt Unfinished" msgstr "Järgmine &lõpetamata" msgid "Previous plural form" msgstr "Eelmine mitmusevorm" msgid "Previous Plural Form" msgstr "Eelmine mitmusevorm" msgid "Next plural form" msgstr "Järgmine mitmusevorm" msgid "Next Plural Form" msgstr "Järgmine mitmusevorm" msgid "&Online help" msgstr "&Veebiabi" msgid "&Online Help" msgstr "&Veebiabi" msgid "&GNU gettext manual" msgstr "& GNU gettext juhend" msgid "&GNU gettext Manual" msgstr "& GNU gettext juhend" msgid "&About Poedit" msgstr "&Poeditist" msgid "&About" msgstr "&Programmist" msgid "Extractor setup" msgstr "" msgid "List of extensions separated by semicolons (e.g. *.cpp;*.h):" msgstr "Laiendite nimistu, eraldaja semikoolon (nt *.cpp;*.h):" msgid "Invocation:" msgstr "Käivitamine:" msgid "Command to extract translations:" msgstr "" msgid "" "This is the command used to launch the extractor.\n" "%o expands to the name of output file, %K to list\n" "of keywords, %F to list of input files,\n" "%C to charset flag (see below)." msgstr "" msgid "An item in keywords list:" msgstr "Liige võtmesõnade nimistus:" msgid "" "This will be attached to the command line once\n" "for each keyword. %k expands to the keyword." msgstr "" "See lisatakse käsureale üks kord iga võtmesõna\n" "kohta. %k asendatakse võtmesõnaga." msgid "An item in input files list:" msgstr "Liige sisendfailide nimistus:" #, c-format msgid "" "This will be attached to the command line once\n" "for each input file. %f expands to the filename." msgstr "" "See lisatakse käsureale üks kord iga sisendfaili\n" "kohta. %f asendatakse sisendfaili nimega." msgid "Source code charset:" msgstr "Lähtekoodi märgistik:" #, c-format msgid "" "This will be attached to the command line\n" "only if source code charset was given. %c expands to charset value." msgstr "" "See lisatakse käsureale ainult siis, kui on toodud algteksti\n" "märgistik. %c asendatakse märgistiku väärtusega." msgid "Catalog properties" msgstr "Kataloogi omadused" msgid "Project name and version:" msgstr "Projekti nimi ja versioon:" msgid "Language team:" msgstr "Keele meeskond:" msgid "Plural forms:" msgstr "Mitmuse vormid:" msgid "Use default rules for this language" msgstr "Kasuta selle keele jaoks vaikimisi reegleid" msgid "Use custom expression" msgstr "Kasuta kohandatud väljendeid" msgid "Learn about plural forms" msgstr "Mitmuse vormide kohta lähemalt uurimine" msgid "Charset:" msgstr "Märgistik:" msgid "Advanced Extraction Settings…" msgstr "" msgid "Advanced extraction settings…" msgstr "" msgid "Translation Properties" msgstr "Tõlke omadused" msgid "Translation properties" msgstr "Tõlke omadused" msgid "Sources Paths" msgstr "Lähtekoodi asukohad" msgid "Sources paths" msgstr "Otsingurajad" msgid "Extract text from source files in the following directories:" msgstr "Teksti otsitakse järgnevates kataloogides asuvast lähtekoodist:" msgid "Base path:" msgstr "Baasrada:" msgid "Sources Keywords" msgstr "Lähtekoodi märksõnad" msgid "Sources keywords" msgstr "Lähtekoodi võtmesõnad" msgid "" "Use these keywords (function names) to recognize translatable strings\n" "in source files:" msgstr "" "Kasuta neid võtmesõnu (funktsioonide nimesid) leidmaks lähtekoodist\n" "tõlgitavaid sõnesid:" msgid "Also use default keywords for supported languages" msgstr "" msgid "Learn About Gettext Keywords" msgstr "Vaata lisainfot Gettexti märksõnade kohta" msgid "Learn about gettext keywords" msgstr "Vaata lisainfot Gettexti märksõnade kohta" msgid "Update summary" msgstr "Uuendamise kokkuvõte" msgid "" "These strings were found in the sources but were not in the catalog.\n" "Poedit will add them to the catalog now." msgstr "" "Need tekstid leiti lähtekoodist, kuid ei ole kataloogis.\n" "Poedit lisab need nüüd kataloogi." msgid "New strings" msgstr "Uued tekstid" msgid "" "These strings are no longer in the sources.\n" "Poedit will remove them from the catalog now." msgstr "" "Need tekstid pole enam lähtekoodis.\n" "Poedit eemaldab need nüüd kataloogist." msgid "Obsolete strings" msgstr "Iganenud tekstid" msgid "(0 new, 0 obsolete)" msgstr "(uusi 0, iganenuid 0)" msgid "Open" msgstr "Ava" msgid "Save catalog" msgstr "Salvesta kataloog" msgid "Validate" msgstr "Kontrolli" msgid "Check for errors in the translation" msgstr "Tõlkest vigade otsimine" msgid "Update" msgstr "Uuenda" msgid "Update catalog - synchronize it with sources" msgstr "Uuenda kataloog - sünkroniseeri lähtekoodiga" msgid "Sidebar" msgstr "Külgriba" msgid "Show or hide the sidebar" msgstr "Näita või peida külgriba" #. TRANSLATORS: "Previous" as in used in the past, now replaced with newer. msgid "Previous source text:" msgstr "Eelmine lähtetekst:" msgid "" "The old source text (before it changed during an update) that the now-" "inaccurate translation corresponds to." msgstr "" msgid "Notes for translators:" msgstr "Märkused tõlkijate jaoks:" msgid "Add comment" msgstr "Lisa kommentaar" msgid "Add Comment" msgstr "Lisa kommentaar" msgid "Translation suggestions:" msgstr "Tõlkesoovitused:" #. TRANSLATORS: This is shown when no translation suggestions can be found in the TM (Windows). msgid "No matches found" msgstr "Vasteid ei leitud" #. TRANSLATORS: This is shown when no translation suggestions can be found in the TM (macOS, Linux). msgid "No Matches Found" msgstr "Vasteid ei leitud" msgid "This string was found in Poedit’s translation memory." msgstr "See tekst leiti Poediti tõlkemälust." msgid "Cannot create temporary directory." msgstr "Pole võimalik luua ajutist kataloogi." msgid "Welcome to Poedit" msgstr "Tere tulemast Poeditisse" #. TRANSLATORS: This is version information in about dialog, "%s" will be #. version number when used #, c-format msgid "Version %s" msgstr "Versioon %s" msgid "Edit a Translation" msgstr "Muuda tõlget" msgid "Edit a translation" msgstr "Muuda tõlget" msgid "Open an existing PO file and edit the translation." msgstr "Ava olemasolev PO fail ja muuda tõlget." msgid "" "Take an existing PO file or POT template and create a new translation from " "it." msgstr "Võta olemasolev PO või POT mall ja loo selle põhjal uus tõlge." msgid "Collaborate on a Translation with Others" msgstr "Tee teistega tõlkimisel koostööd" msgid "Collaborate on a translation with others" msgstr "Tee teistega tõlkimisel koostööd" msgid "" "Download a file from Crowdin project, translate and sync your changes back." msgstr "" "Laadi fail Crowdini projektist alla, tõlgi ning sünkrooni oma muudatused " "tagasi." msgid "What is Crowdin?" msgstr "Mis on Crowdin?" msgid "There are no translations. That’s unusual." msgstr "Ühtegi tõlget pole. See on küll ebatavaline." msgid "" "Translatable entries aren’t added manually in the Gettext system, but are " "automatically extracted\n" "from source code. This way, they stay up to date and accurate.\n" "Translators typically use PO template files (POTs) prepared for them by the " "developer." msgstr "" msgid "(Learn more about GNU gettext)" msgstr "(Vaata insainfot GNU gettexti kohta)" msgid "The simplest way to fill this catalog is to update it from a POT:" msgstr "" "Lihtsaim viis selle kataloogi täitmiseks on selle uuendamine POT failist:" msgid "Update from POT" msgstr "Uuenda POT failist" msgid "Take translatable strings from an existing POT template." msgstr "Tõlgitavad failid olemasolevast POT failist." msgid "" "You can also extract translatable strings directly from the source code:" msgstr "" msgid "Extract from sources" msgstr "" msgid "Configure source code extraction in Properties." msgstr "" msgid "Sync" msgstr "Sünkroonimine" msgid "Synchronize the translation with Crowdin" msgstr "Sünkrooni tõlge Crowdiniga" #. TRANSLATORS: This is titlebar of about dialog, "%s" is application name #. ("Poedit" here, but please use "%s") #, c-format msgid "About %s" msgstr "Programmist %s" #. TRANSLATORS: Title of the preferences window on Windows and Linux. "%s" is replaced with "Poedit" when running. #, c-format msgid "%s Preferences" msgstr "%s Eelistused" #. TRANSLATORS: macOS item in app menu msgid "Services" msgstr "Teenused" #. TRANSLATORS: macOS item in app menu, %s is replaced with "Poedit" #, c-format msgid "Hide %s" msgstr "Peida %s" #. TRANSLATORS: macOS item in app menu msgid "Hide Others" msgstr "Peida teised" #. TRANSLATORS: macOS item in app menu msgid "Show All" msgstr "Näita kõiki" #. TRANSLATORS: macOS item in app menu, %s is replaced with "Poedit" #, c-format msgid "Quit %s" msgstr "Lõpeta %s" #. TRANSLATORS: macOS item in app menu msgid "Preferences…" msgstr "Eelistused…" msgid "Preferences..." msgstr "Eelistused..." #. TRANSLATORS: Title of a category in Windows task menu (right-click icon in taskbar) msgid "Recent" msgstr "Hiljutised" #. TRANSLATORS: Title of a category in Windows task menu (right-click icon in taskbar) msgid "Frequent" msgstr "Sagedased" msgid "&Apply" msgstr "&Rakenda" msgid "Apply" msgstr "Rakenda" msgid "&Back" msgstr "Tagasi" msgid "Back" msgstr "Tagasi" msgid "&Cancel" msgstr "Katkesta" msgid "&Clear" msgstr "Tühjenda" msgid "Clear" msgstr "Tühjenda" msgid "Copy" msgstr "Kopeeri" msgid "Cu&t" msgstr "Lõik&a" msgid "Cut" msgstr "Lõika" msgid "&Delete" msgstr "K&ustuta" msgid "&Quit" msgstr "Lõpeta" msgid "File" msgstr "Fail" msgid "Help" msgstr "Abi" msgid "&New" msgstr "&Uus" msgid "&No" msgstr "&Nr" msgid "No" msgstr "Ei" msgid "&OK" msgstr "&OK" msgid "Open…" msgstr "Ava…" msgid "&Open..." msgstr "&Avamine..." msgid "Open..." msgstr "&Ava..." msgid "&Paste" msgstr "&Aseta" msgid "Paste" msgstr "Aseta" msgid "Preferences" msgstr "Eelistused" msgid "&Redo" msgstr "&Tee uuesti" msgid "Refresh" msgstr "Värskenda" msgid "&Save as" msgstr "Salvesta kui" msgid "Save as" msgstr "Salvesta kui" msgid "Select &All" msgstr "V&ali kõik" msgid "Select All" msgstr "Vali kõik" msgid "&Undo" msgstr "&Võta tagasi" msgid "&Yes" msgstr "Jah" msgid "Yes" msgstr "Jah" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Shift+" msgstr "Shift+" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Enter" msgstr "Enter" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Up" msgstr "Üles" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Down" msgstr "Alla" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Left" msgstr "Vasak" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Right" msgstr "Parem" #. TRANSLATORS: Keyboard shortcut, must correspond to translation of "Ctrl+" msgid "ctrl" msgstr "ctrl" #. TRANSLATORS: Keyboard shortcut, must correspond to translation of "Alt+" msgid "alt" msgstr "alt" #. TRANSLATORS: Keyboard shortcut, must correspond to translation of "Shift+" msgid "shift" msgstr "shift" poedit-2.0.6/locales/el.mo0000664000372000037200000011600513230132076012303 000000000000004 Lp q }   J g b! i! w!!!!!!!!!!!!! ! """ %"2"N"j"p"y"""""""" # #7#=#Q#p### # #### $$)$'.$V$s$ $ $$A$I$B%I%R%Y%"`%% %%.%%%&&(&;&D&W&s&&#&&&&& ''.' 7'E'/`' '''''''(,(C(Z( z(() )%)))@)G) Z)g)z)E)")?) 6*C* V*c*v*"{*5*** * * *+ + (+5+F+N+V+]+c+.u+++u+N,a,x, , ,,<,",-*--!X-!z-'---- - -. . !. /. <.I.X.g.o. w.... N/Z/ p// / //"/(/0 0 30 =0K0 _0j000 00<0.1I1Y1i11*111112 222'272%*3P3g3j3{33323 333344+4:4O4i4455E5b5>i5555-556)6 C6Q6Z6`6{66 6 66 6 6(667 7 7 7 '7 47 @7K7"\77 7 7777 77! 8+838<8D8W8 `8n8 w88 8 8 8888899*9?9 Z9f9 ~9 99 99K9 :: -:;: P:^:p: x::::+:N:8I;;;I;R;cK<Q<=A=!^=,=L=`=Y[>m>:#?;^?m?_@[h@@@@@ AA 2A?ACAWA \A}AAAA A"A,AA BB-B?=B}BBB#BVBEC\CeC xCCCCCC CHC7(D `DjDoDtDxD.}D DDDE EE!2ETE+G IG#jG#G}G0H H'H I)I;IOI=aI=II IUJGYJJJJ&J&J#K6KLKLdKLKKL.L)DL"nLLBLBL,)M,VM1M1MM%MQN&oN/N2NNO+O1>O4pO!O-OOZOYUPUPQQ,3Q`QQRRRRiRG:S-SSzS%>T,dT,T+T T" U0.UF_UWU/U3.V%bV0V#V0VW5W UW cW@WdW*XAX$TX:yX$X:XEYAZY2Y2YCZFZ$bZ[[[K[[! \+\GJ\G\\C]]"\^"^"^"^^M^m?_ __-_&`,'`4T`%`'`'``a0a7a=agUa;a;a 5b?Ac4c6ccc'd~m/mDmnmYkn n(n$o4oaQo ooooqq0q0*rP[rgrTs<iss$sss)s|t!t2ttt$u$+uPu$fu'uuvGvw2wwxxx4xq y8}y8y0y z=zMzEbzzzzzz${$;{I`{:{{{|',|#T|x|||O|9}Q}o}}E}6}0~4B~`w~~~~# /D c p4~!D ,R6D,6(>_H(1B^-{$ ΂ۂ0((2B%a%8Ƅ#=#PadT+A'XA2tB&YiËtF\Ҏw/g0/O!#ŒߒB*mœMf/0%ǔ.$A@01:ba9ȗ)?:O+"٘# A Xcvz\0ܚ] %k:ʛM{U* V=I,-Gl vKsm(Qx:98P'N~VffyEK/Xg2%2?sTkupnJtrHJ w@!{03d:-h)6qY1F;<oyjz_HoG+L|5~pci]9TqNBIOB'+S#. *eXvLCcA(.lbP;S=O6<wgF\nD$Q W}d8R^%E[YU7 mDxaM`,W&a5t4ZbZ ]\ 0@} !&4"jAe1|r$? >z# `C^3i_"h[Rk7 )/u> (modified) (unsaved)%d entry%d entries%d error%d errors%d issue with the translation found.%d issues with the translation found.%i line of file “%s” was not loaded correctly.%i lines of file “%s” were not loaded correctly.&About&About Poedit&Bookmarks&Close&Copy&Delete&Done and Next&Done and next&Edit&File&GNU gettext Manual&GNU gettext manual&Go&Help&Next >&Online Help&Online help&Open...&Paste&Preferences&Purge Deleted Translations&Purge deleted translations&Redo&Replace&Save&Show References&Show references&Undo&Untranslated Entries First&Untranslated entries first&Update from Sources&Update from sources&Validate Translations&Validate translations&View(0 new, 0 obsolete)(Learn more about GNU gettext)(New: %i, obsolete: %i)(Use default language)(requires Windows 8 or newer)< &PreviousAbout %sAdd directory to the listAdditional keywordsAdvancedAll Translation FilesAlt+Always change focus to text input fieldAn item in input files list:An item in keywords list:AppearanceBase path:Bring All to FrontBroken catalog file: plural form msgstr used without msgid_pluralBroken catalog file: singular form msgstr used together with msgid_pluralBrowseC&atalogC&learCancelCannot create temporary directory.Cannot execute program: %sCapitalizeCatalogCatalog modified. Do you want to save changes?Catalog propertiesCatalogs &ManagerCatalogs &managerCatalogs ManagerChange UI languageCharset:Check Document NowCheck Grammar With SpellingCheck Spelling While TypingCheck for Updates…Check for errors in the translationCheck spellingClear TranslationClear the commentClear translationCloseCollecting source files…Comment:Compile to…Compiled Translation FilesConfigure source code extraction in Properties.ConfirmationCopyCopy From SingularCopy from Source TextCopy from singularCopy from source textCorrect Spelling AutomaticallyCouldn’t save file %s.Create New TranslationCreate new translationCreate new translations projectCrowdin errorCrowdin is an online localization management platform and collaborative translation tool. Poedit can seamlessly sync PO files managed at Crowdin.Ctrl+Cu&tCutDatabase size on disk:DeleteDelete the projectDirectories:Display Entry &IDsDisplay entry &IDsDo you really want to do mass update of all catalogs in this project?Do you want to delete the project?Do you want to remove all translations that are no longer used?Don’t SaveDon’t Show AgainDon’t saveDon’t show againDownDownloading latest translations…Downloading translations is disabled in this project.E&xitEditEdit &CommentEdit &commentEdit CommentEdit a translationEdit commentEdit projectEdit the projectEditingEdit…Email:EnterEnter Full ScreenEntries in the catalog are probably incorrect.Entries with Errors FirstEntries with errors firstEntries with errors were marked in red in the list. Details of the error will be shown when you select such an entry.Error opening fileError opening file %s!Error saving catalogEverythingExport as…Extract from sourcesExtract text from source files in the following directories:Extracting translatable strings…Failed command: %sFailed to communicate with Poedit process.Failed to load extracted catalog.Failed to merge gettext catalogs.Failed to update translation memory: %sFile “%s” doesn’t exist.File:FindFind NextFind PreviousFind in commentsFind nextFind previousFix LanguageFix languageFix the HeaderFix the headerForm %iGeneralHTML FilesHide this notification messageIDIf you continue with purging, all translations marked as deleted will be permanently removed. You will have to translate them again if they are added back in the future.Ignore caseInclude beta versionsInformation about the translatorInstallInvalid fileInvocation:KeepLanguage Code or Name (e.g. en_GB)Language of the translation isn’t set.Language of the translation:Language selectionLanguage:Last modifiedLearn From Files…Learn MoreLearn More About CrowdinLearn about gettext keywordsLearn about plural formsLearn moreLearn more about CrowdinList of extensions separated by semicolons (e.g. *.cpp;*.h):MO files can’t be directly edited in Poedit.Make Lower CaseMake Upper CaseMerging differences…MinimizeName of the project the translation is forName:Ne&xt UnfinishedNe&xt unfinishedNever let the list of strings take focus. If enabled, you must use Ctrl-arrows for keyboard navigation but you can also type text immediately, without having to press Tab to change focus.NewNew stringsNext Plural FormNext plural formNo problems with the translation found.No translation projects listed in your Crowdin account.Not authorized, please sign in again.Notes for translators:OKObsolete stringsOneOpenOpen Crowdin translationOpen an existing PO file and edit the translation.Open catalogOpen catalog templateOptionsOtherP&revious UnfinishedP&revious unfinishedPO TranslationPO Translation FilesPOT Translation TemplatesPOT files are only templates and don’t contain any translations themselves. To make a translation, create a new PO file based on the template.PastePaste and Match StylePathsPlease save the file first. This section cannot be edited until then.PluralPlural forms expression used by the catalog is unusual for %s.Plural:PoeditPoedit - Catalogs managerPoedit is an easy to use translations editor.Previous Plural FormPrevious plural formProject name and version:Project name:Project:PurgePurge deleted translationsQuitRedoReferences:Remaining: %dReplaceReplace &AllReplace &allRequired header Plural-Forms is missing.Reset translation memoryReviewSaveSave as…Save catalogSave changesSelect &AllSelect AllSelect directorySelect translation files to importSelect your preferred languageSet LanguageSet languageShift+Show Spelling and GrammarShow SubstitutionsShow sidebarShow status barShow summary after catalog updateSign InSign OutSign inSign in to CrowdinSign outSigned in as:SingularSingular:Smart Copy/PasteSmart DashesSmart LinksSmart QuotesSort by &File OrderSort by &SourceSort by &TranslationSort by &file orderSort by &sourceSort by &translationSource code charset:Source code not available.Source fileSource file occurrence:Source textSource text:Sources keywordsSources pathsSpeechSpellchecking is disabled, because the dictionary for %s isn’t installed.Spelling and GrammarStart SpeakingStop SpeakingStored translations:SubstitutionsSync with CrowdinSyncingSyncing errorSyncing with %s failed.Syncing with %s…Syncing with Crowdin failed.Syntax error in Plural-Forms header ("%s").Take an existing PO file or POT template and create a new translation from it.Take translatable strings from an existing POT template.Text ReplacementThe file cannot be opened.The file may be either corrupted or in a format not recognized by Poedit.The file was compiled into the MO format, but it will probably not work correctly.The file was saved safely and compiled into the MO format, but it will probably not work correctly.The file was saved safely, but it cannot be compiled into the MO format and used.The file was saved safely.The simplest way to fill this catalog is to update it from a POT:The translation is ready for use.There are no translations. That’s unusual.There was a problem formatting the file nicely (but it was saved all right).There were errors when loading the catalog. Some data may be missing or corrupted as the result.These strings are no longer in the sources. Poedit will remove them from the catalog now.These strings were found in the sources but were not in the catalog. Poedit will add them to the catalog now.This file can only be edited in Crowdin’s web interface.This project has no files that can be translated in Poedit.This will be attached to the command line only if source code charset was given. %c expands to charset value.This will be attached to the command line once for each input file. %f expands to the filename.This will be attached to the command line once for each keyword. %k expands to the keyword.TotalTransformationsTranslated: %d of %d (%d %%)Translation LanguageTranslation MemoryTranslation — %sTranslation:TwoUTF-8 (recommended)UndoUnhandled exception occurred: %sUnix (recommended)UntransUpUpdateUpdate allUpdate all catalogs in the projectUpdate catalog - synchronize it with sourcesUpdate from POTUpdate summaryUpdating catalogUpdating failedUpdating the catalog failed. Click on 'Details >>' for details.Updating user information…Uploading translations…Use custom expressionUse default rules for this languageUse these keywords (function names) to recognize translatable strings in source files:Use translation memoryValidateValidation resultsVersion %sWaiting for authentication…Welcome to PoeditWhole words onlyWindowWindowsWrap aroundYou can also extract translatable strings directly from the source code:You must restart Poedit for this change to take effect.Your NameZeroZoomaltctrldon’t delete temporary files (for debugging)e.g. nplurals=2; plural=(n > 1);go to item at given line numberhandle a poedit:// URIshiftunknown languageyour_email@example.com“%s” is not a valid POT file.Project-Id-Version: poedit Report-Msgid-Bugs-To: help@poedit.net POT-Creation-Date: 2017-12-05 15:52+0100 PO-Revision-Date: 2017-12-05 09:48-0500 Last-Translator: vslavik Language-Team: Greek Language: el_GR MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=(n != 1); X-Generator: crowdin.com X-Crowdin-Project: poedit X-Crowdin-Language: el X-Crowdin-File: /locales/poedit.pot (τροποποιήθηκε) (μη αποθηκευμένο)%d είσοδος%d είσοδοιΣφάλμα %dΣφάλματα %dΒρέθηκε %d ζήτημα στην μετάφραση.Βρέθηκαν %d ζητήματα στην μετάφραση.Η γραμμή %i του αρχείου '%s', δεν φορτώθηκε σωστά.%i γραμμές του αρχείου '%s', δεν φορτώθηκαν σωστά.&ΠερίΣχετικά με το Ποέντιτ&Σελιδοδείκτες&Κλείσιμο&Αντιγραφή&ΔιαγραφήΈ&γκριση και Μετάβαση στο ΕπόμενοΈ&γκριση και μετάβαση στο επόμενο&Επεξεργασία&ΑρχείοΟδηγίες Χρήσης του &ΤζιΕνΓιού γκέττεξτ (GNU gettext)Οδηγίες χρήσης του &ΤζιΕνΓιού γκέττεξτ&Μετάβαση&Βοήθεια&Επόμενο >&Διαδικτυακή Βοήθεια&Διαδικτυακή βοήθεια&Άνοιγμα...&Επικόλληση&ΠροτιμήσειςΕ&κκαθάριση των Διαγραμμένων ΜεταφράσεωνΕ&κκαθάριση των διαγραμμένων μεταφράσεωνΕπαναφο&ρά&Αντικατάσταση&Αποθήκευση&Εμφάνιση των Αναφορών&Εμφάνιση αναφορών&ΑναίρεσηΠρώτα οι &Αμετάφραστες ΚαταχωρήσειςΠρώτα οι &αμετάφραστες καταχωρήσεις&Ενημέρωση από τις Πηγές&Ενημέρωση από τις πηγέςΕπι&κύρωση των ΜεταφράσεωνΕπι&κύρωση των μεταφράσεων&Προβολή(0 νέο, 0 εκτός χρήσης)(Μάθε περισσότερα για το ΤζιΕνΓιού γκέττεξτ)(Νέα: %i, παρωχημένα: %i)(Χρήση εξ ορισμού γλώσσας)(απαιτείται Windows 8 ή νεότερο)< &Προηγούμενο<δίχως όνομα>Περί του %sΠροσθήκη φακέλου στη λίσταΕπιπρόσθετες λέξεις-κλειδιάΓια προχωρημένουςΌλα τα αρχεία μετάφρασηςAlt+Πάντα αλλαγή εστίασης στο πεδίο εισόδου κειμένουΈνα αντικείμενο στη λίστα των αρχείων εισαγωγής:Ένα αντικείμενο στη λίστα των λέξεων κλειδιών:ΕμφάνισηΔιαδρομή βάσης:Φέρτε όλα προς τα εμπρόςΚατεστραμμένο αρχείο καταλόγου: ο πληθυντικός msgstr χρησιμοποιείται χωρίς msgid_pluralΚατεστραμμένο αρχείο καταλόγου: ο ενικός msgstr χρησιμοποιείται μαζί με msgid_plural ΕξερεύνησηΚ&ατάλογος&ΚαθαρισμόςΑκύρωσηΑδυναμία δημιουργίας του φακέλου των προσωρινών αρχείων.Αδυναμία εκτέλεσης του προγράμματος: %sΤο πρώτο γράμμα κεφαλαίοΚατάλογοςΟ κατάλογος τροποποιήθηκε. Θέλετε να γίνει αποθήκευση των αλλαγών;Ιδιότητες καταλόγου&Διαχειριστής Καταλόγων&Διαχειριστής ΚαταλόγωνΔιαχειριστής ΚαταλόγωνΕπιλογή γλώσσας UIΣύνολο Χαρακτήρων:Έλεγχος του Εγγράφου, ΤώραΈλεγχος της Γραμματικής με ΟρθογραφίαΈλεγχος της Ορθογραφίας Κατά την ΠληκτρολόγησηΈλεγχος για Ενημερώσεις…Έλεγχος λαθών στη μετάφρασηΈλεγχος ορθογραφίαςΕκκαθάριση της ΜετάφρασηςΚαθαρισμός σχολίουΕκκαθάριση της μετάφρασηςΚλείσιμοΣυλλογή αρχείων προέλευσης…Σχόλιο:Μεταγλώττιση σε…Μεταγλωττισμένα αρχεία μετάφρασηςΡύθμισε την εξαγωγή του πηγαίου κώδικα στις Ιδιότητες.ΕπιβεβαίωσηΑντιγραφήΑντιγραφή από ενικόΑντιγραφή από το Πηγαίο ΚείμενοΑντιγραφή από ενικόΑντιγραφή από το πηγαίο κείμενοΑυτόματη Επιδιόρθωση της ΟρθογραφίαςΑδυναμία αποθήκευσης του αρχείου %s.Δημιουργία νέας μετάφρασηςΔημιουργία νέας μετάφρασηςΔημιουργία νέας εργασίας μετάφρασηςΣφάλμα του CrodwinΤο Crodwin είναι μία online πλατφόρμα τοπκοποίησης και ένα συνεργατικό εργαλείο μεταφράσεων. Το Poedit μπορεί να συγχρονίσει αρχεία PO που βρίσκονται στο Crodwin με ευκολία.Ctrl+Απο&κοπήΑποκοπήΤο μέγεθος της βάσης δεδομένων στο δίσκο:ΔιαγραφήΔιαγραφή εργασίαςΦάκελοι αρχείων:Προβολή της Ταυτότητας του Ειση&γμένουΠροβολή της ταυτότητας του ειση&γμένουΘέλεις πραγματικά να κάνεις μαζική ενημέρωση σε όλους τους καταλόγους αυτής της εργασίας;Επιθυμείς να διαγράψεις την εργασία;Θα ήθελες να αφαιρεθούν όλες οι μεταφράσεις, οι οποίες έπαψαν να χρησιμοποιούνται;Να μην αποθηκευθείΜην το ξαναδείξειςΝα μην αποθηκευθείΜην το ξαναδείξειςΚάτωΓίνεται λήψη των τελευταίων μεταφράσεων…Η λήψη μεταφράσεων είναι απενεργοποιημένη για αυτό το έργο.Έ&ξοδοςΕπεξεργασίαΕπεξεργασία των Σ&χολίωνΕπεξεργασία &σχολίουΕπεξεργασία των ΣχολίωνΕπεξεργασία μιας μετάφρασηςΕπεξεργασία σχολίουΕπεξεργασία εργασίαςΕπεξεργασία εργασίαςΕπεξεργασίαΕπεξεργασία…Email:EnterΠλήρης οθόνηΟι καταχωρήσεις στον κατάλογο είναι μάλλον λανθασμένες.Καταχωρήσεις με σφάλματα πρώτεςΚαταχωρήσεις με σφάλματα πρώτεςΟι θέσεις με σφάλματα έχουν επισημανθεί με κόκκινο στην λίστα. Οι λεπτομέρειες του σφάλματος θα εμφανιστούν, όταν επιλέξεις τη συγκεκριμένη θέση.Σφάλμα κατά το άνοιγμα του αρχείουΣφάλμα ανοίγματος αρχείου %s!Σφάλμα αποθήκευσης καταλόγουΤα πάνταΕξαγωγή ως…Εξαγωγή από τις πηγέςΕξαγωγή του κειμένου από τα πηγαία αρχεία στους ακόλουθους φακέλους:Εξαγωγή μεταφράσιμων συμβολοσειρών…Αποτυχία τη εντολής: %sΑδυναμία επικοινωνίας με τη διεργασία Poedit.Αποτυχία στη φόρτωση του εξαγόμενου κατάλογου.Αποτυχία στη συγχώνευση των καταλόγων gettext.Αδυναμία ενημέρωσης της μεταφραστικής μνήμης: %sΤο αρχείο “%s” δεν υπάρχει.Αρχείο:ΕύρεσηΕύρεση ΕπόμενουΕύρεση ΠροηγούμενουΑνεύρεση στα σχόλιαΕύρεση επόμενουΕύρεση προηγούμενουΕπιδιόρθωση γλώσσαςΕπιδιόρθωση γλώσσαςΕπιδιόρθωση της κεφαλίδαςΕπιδιόρθωση της κεφαλίδαςΜορφή %iΓενικές ρυθμίσειςΑρχεία HTMLΑπόκρυψη του παρόντος μηνύματος επισήμανσηςΤαυτότηταΑν συνεχίσεις με την εκκαθάριση, θα απομακρυνθούν όλες τις μεταφράσεις οι οποίες έχουν επισημανθεί ως διαγραμμένες. Θα πρέπει να ξανακάνεις τις μεταφράσεις, από την αρχή, αν προστεθούν ξανά στο μέλλον.Αγνόηση κεφαλαιοποίησηςΠεριλαμβανομένων των δοκιμαστικών εκδόσεωνΠληροφορίες σχετικά με το μεταφραστήΕγκατάστασηΜη έγκυρο αρχείοΚλήση:ΔιατήρησηΚωδικός ή Όνομα της γλώσσας (πχ, en_GB)Δεν έχει οριστεί η γλώσσα της μετάφρασης.Γλώσσα της μετάφρασης:Επιλογή ΓλώσσαςΓλώσσα:Τελευταία τροποποίησηΕκμάθηση από Αρχεία…Μάθετε ΠερισσότεραΜάθετε περισσότερα σχετικά με το CrowdinΕκμάθηση από λέξεις-κλειδιά του γκέττεξτΠληροφορίες για τις Μορφές ΠληθυντικούΠερισσότερες πληροφορίεςΜάθετε περισσότερα σχετικά με το CrowdinΗ λίστα των επεκτάσεων χωρίζεται από άνω τελείες (πχ *.cpp · *.h):Δεν είναι δυνατή η επεξεργασία αρχείων MO στο Poedit.Μετατροπή σε ΠεζάΜετατροπή σε ΚεφαλαίαΣυνένωση διαφορών…ΕλαχιστοποίησηΤο όνομα της εργασίας για την οποία είναι η μετάφρασηΌνομα:&Επόμενο Ατελές&Επόμενο ατελέςΠοτέ μην αφήνετε τη λίστα των στίχων να εστιαστεί. Αν ενεργοποιηθεί, πρέπει να χρησιμοποιήσετε το Ctrl-βελάκια για πλοήγηση μέσω πληκτρολογίου, αλλά μπορείτε επίσης να πληκτρολογήσετε κείμενο αμέσως, χωρίς να χρειαστεί να πατήσετε το πλήκτρο Tab για αλλαγή εστίασης.ΝέοΝέοι στίχοιΕπόμενη μορφή πληθυντικούΕπόμενη μορφή πληθυντικούΔεν βρέθηκε κανένα πρόβλημα στην μετάφραση.Δεν υπάρχουν μεταφραστικά έργα στον Crowdin λογαριασμό σας.Δεν επιτρέπεται, Παρακαλούμε συνδεθείτε ξανά.Σημειώσεις για τους Μεταφραστές:ΕντάξειΣτίχοι εκτός χρήσηςΈναΆνοιγμαΑνοικτή μετάφραση CrowdinΆνοιγμα ενός υπάρχοντος αρχείου .PO, και επεξεργασία της μετάφρασης. Άνοιγμα καταλόγουΆνοιγμα προτύπου καταλόγουΕπιλογέςΆλλο&Προηγούμενο Ατελές&Προηγούμενο ατελέςΜετάφραση POΑρχεία μετάφρασης POΠρότυπα μετάφρασης POTΤα αρχεία POT είναι μόνο πρότυπα και δεν περιέχουν μεταφράσεις. Για να κάνετε μια μετάφραση, δημιουργήστε ένα νέο αρχείο PO που βασίζεται στο πρότυπο.ΕπικόλλησηΕπικόλληση και Ταίριασμα ΤεχνοτροπίαςΔιαδρομέςΠαρακαλώ αποθήκευσε αυτό το αρχείο, πρώτα, ώστε να μπορεί να γίνει, μετά, επεξεργασία αυτού του τμήματος.ΠληθυντικόςΟι μορφές πληθυντικού, οι οποίες χρησιμοποιούνται για τον κατάλογο, είναι ασυνήθιστες για το %s.Πληθυντικός:PoeditPoedit - Διαχειριστής καταλόγωνΤο Poedit είναι ένας εύκολος στη χρήση επεξεργαστής μεταφράσεων.Προηγούμενη μορφή πληθυντικούΠροηγούμενη μορφή πληθυντικούΌνομα εργασίας και έκδοση:Όνομα εργασίας:Εργασία:ΕκκαθάρισηΕ&κκαθάριση διαγραμμένων μεταφράσεωνΤερματισμόςΕπαναφοράΑναφορές:Απομένουν: %dΑντικατάστασηΑντικατάσταση &ΌλωνΑντικατάσταση &όλωνΛείπει η απαιτούμενη κεφαλίδα «Plural-Forms».Επαναφορά μεταφραστικής μνήμηςΕπισκόπησηΑποθήκευσηΑποθήκευση ως…Αποθήκευση καταλόγουΑποθήκευση αλλαγώνΕπιλογή Ό&λωνΕπιλογή όλωνΕπιλογή φακέλουΕπέλεξε τα αρχεία μετάφρασης προς εισαγωγήΕπιλογή της γλώσσας προτίμησηςΟρισμός γλώσσαςΟρισμός γλώσσαςShift+Εμφάνιση Ορθογραφίας και ΓραμματικήςΕμφάνιση των ΑντικαταστάσεωνΕμφάνιση πλευρικής μπάραςΕμφάνιση γραμμής κατάστασηςΕμφάνιση περίληψης μετά την ενημέρωση του καταλόγουΣύνδεσηΑποσύνδεσηΣύνδεσηΣυνδεθείτε στο CrowdinΑποσύνδεσηΣυνδεδεμένος ως:ΕνικόςΕνικός:Έξυπνη Αντιγραφή/ΕπικόλλησηΈξυπνες ΠαύλεςΈξυπνοι ΔεσμοίΈξυπνα ΕισαγωγικάΤαξινόμηση κατά τη Σειρά των &ΑρχείωνΤαξινόμηση κατά τη &ΠηγήΤαξινόμηση κατά τη &ΜετάφρασηΤαξινόμηση κατά τη σειρά των &σρχείωνΤαξινόμηση κατά τη &πηγήΤαξινόμηση κατά τη &μετάφρασηΣύνολο χαρακτήρων πηγαίου κώδικα:Ο πηγαίος κώδικας δεν είναι διαθέσιμος.Αρχείο πηγαίου κώδικαΣυνύπαρξη πηγαίου αρχείου:Πηγαίο κείμενοΠηγαίο κείμενο:Λέξεις-κλειδιά των πηγώνΔιαδρομές των πηγώνΟμιλίαΟ ορθογραφικός έλεγχος είναι απενεργοποιημένος, επειδή το λεξικό για %s δεν είναι εγκατεστημένο.Ορθογραφία και ΓραμματικήΑρχίνισμα της ΟμιλίαςΣταμάτημα της ΟμιλίαςΑποθηκευμένες μεταφράσεις:ΑντικαταστάσειςΣυγχρονισμός με CrowdinΣυγχρονισμόςΣφάλμα συγχρονισμούΟ συγχρονισμός με το %s απέτυχε.Συγχρονισμός με %s…Ο συγχρονισμός με το Crowdin απέτυχε.Σφάλμα σύνταξης στην κεφαλίδα «Plural-Forms» ("%s").Χρησιμοποίησε ένα υπάρχον αρχείο .PO, ή ένα πρότυπο .POT, και δημιούργησε μία νέα μετάφραση.Πάρε μεταφράσιμους στίχους από ένα υπάρχον πρότυπο .POT.Αντικατάσταση ΚειμένουΤο αρχείο δεν μπορεί να να ανοιχτεί.Το αρχείο μπορεί είτε να είναι φθαρμένο, ή να είναι σε μία μορφή, την οποία δεν αναγνωρίζει το Ποέντιτ. Το αρχείο μεταγλωττίστηκε σε μορφή MO, αλλά κατά πάσα πιθανότητα δεν θα λειτουργήσει σωστά.Το αρχείο σώθηκε με ασφάλεια και μεταγλωττίστηκε σε μορφή MO, αλλά κατά πάσα πιθανότητα δεν θα λειτουργήσει σωστά.Το αρχείο αποθηκεύθηκε επιτυχώς, όμως δεν μπορεί να γίνει σύνθεση του αρχείου σε μορφή MO, ώστε, μετά, να χρησιμοποιηθεί.Το αρχείο αποθηκεύθηκε με ασφάλεια.Ο πιο απλός τρόπος για να γεμίσεις αυτό τον κατάλογο, είναι να κάνεις ενημέρωση από ένα αρχείο .POT:Η μετάφραση είναι έτοιμη προς χρήση.Δεν υπάρχουν μεταφράσεις. Αυτό είναι ασυνήθιστο.Υπήρξε ένα πρόβλημα στην καλή μορφοποίηση του αρχείου (αλλά, κατά τα άλλα, αποθηκεύθηκε εντάξει).Υπήρξαν λάθη κατά το φόρτωμα του καταλόγου. Κατά συνέπεια κάποια δεδομένα μπορεί να λείπουν ή να είναι αλλοιωμένα.Αυτοί οι στίχοι δεν υπάρχουν πλέον στα πηγαία αρχεία. Το Poedit θα τους αφαιρέσει τώρα από τον κατάλογο.Αυτοί οι στίχοι βρέθηκαν στα πηγαία αρχεία αλλά δεν ήταν στον κατάλογο. Το Poedit θα τους προσθέσει στον κατάλογο τώρα.Η επεξεργασία του αρχείου πρέπει να γίνει στο Crowdin.Αυτό το έργο δεν έχει αρχεία, που μπορούν να μεταφραστούν στο Poedit.Αυτό θα προσαρτηθεί στη γραμμή εντολών μόνο αν δοθεί το σύνολο χαρακτήρων πηγαίου κώδικα. Το %c αναπτύσσει την τιμή του συνόλου χαρακτήρων.Αυτό θα προσαρτηθεί στη γραμμή εντολών μία φορά για κάθε αρχείο εισόδου. Το %f αναπτύσσει το όνομα αρχείου.Αυτό θα προσαρτηθεί στη γραμμή εντολών μία φορά για κάθε λέξη κλειδί. Το %k αναπτύσσει τη λέξη κλειδί.ΣυνολικάΜετασχηματισμοίΜεταφράστηκαν %d από %d (%d %%)Γλώσσα ΜετάφρασηςΜεταφραστική ΜνήμηΜετάφραση — %sΜετάφραση:ΔύοUTF-8 (προτείνεται)ΑναίρεσηΠαρουσιάστηκε ανεπίλυτη εξαίρεση: %sUNIX (προτείνεται)Μη μεταφρασμένοΠάνωΕνημέρωσηΕνημέρωση όλωνΕνημέρωση όλων των καταλόγων στην εργασίαΕνημέρωση καταλόγου - συγχρονισμός με τον πηγαίο κώδικαΕνημέρωση από το αρχείο POΤΠερίληψη ενημέρωσηςΕνημερώνεται ο κατάλογοςΗ ενημέρωση απέτυχεΗ ενημέρωση του καταλόγου απέτυχε. Για περισσότερες πληροφορίες, κλίκαρε στο 'Λεπτομέρειες >>' .Ενημέρωση των πληροφοριών χρήστη…Μεταφόρτωση μεταφράσεων…Χρήση προσαρμοσμένων εκφράσεωνΧρήση των προκαθορισμένων κανόνων για αυτή τη γλώσσαΧρήση αυτών των λέξεων κλειδιών (ονόματα συναρτήσεων) προς αναγνώριση μεταφράσιμων στίχων στα πηγαία αρχεία:Χρήση της μεταφραστικής μνήμηςΕπικύρωσηΑποτέλεσμα επικύρωσηςΈκδοση %sΑναμονή για έλεγχο ταυτότητας…Καλώς ήρθες στο ΠοέντιτΠλήρης λέξεις μόνοΠαράθυροMicrosoft WindowsΞεκίνα από την αρχήΜπορείς, επίσης να εξάγεις μεταφράσιμους στίχους, κατευθείαν από τον πηγαίο κώδικα:Πρέπει να γίνει επανεκκίνηση του Poedit, ώστε αυτή η αλλαγή να έχει επίδραση.Το Όνομά σαςΜηδένΜεγέθυνσηaltctrlμη διαγράψεις προσωρινά αρχεία (γι' αποσφαλμάτωση)παράδειγμα nplurals=2; plural=(n > 1);μετάβαση στο στοιχείο, στο δεδομένο αριθμό γραμμήςΧειρίσου ένα poedit:// URIshiftάγνωστη γλώσσαyour_email@example.comΤο '%s' δεν είναι έγκυρο αρχείο POT.poedit-2.0.6/locales/es.mo0000664000372000037200000014260613230132076012320 00000000000000P%1 1 11<11J 2gW2 22 22 222 3333%3+333B3Q3W3]3f3z333333333333 3 44 4)4 04=4M4c4y44444444445 5(5D5Y5n55555555 6 '6:36:n6 666 6 666 6 7 #707?7O7c7~77777 71898'>8f88 8878689)=9g9 l9]w99A9I*:t:{:; ;;";:; U;`;.h;;;;;;;;<*<F<#[<<<<<<<<(<(=7= R=s=|== ==/= = >>#>9>L>b>2>>>>> ?)???????@@@ 2@?@R@Ee@"@?@ AA*.A YAfAyAK~A"A5A#B)BHAH HHI 'IHI PI ]IiI"nI;I(IIJ&J 5J ?JMJjJ ~JJJJJ JJK:K PK<^K.KKKKLL*%LPLVLgL xL LLJMNMgM MMMMM#MM'M$N7DN$|N%NNNNNNOOOO O2O P#P9PNP]PlPtP|PPPPPPPPQQQnQERZR>aR RRRR@RS-Tv7UvvZvxv uww w wwww w wwww wxx(x0x 9xDx[xnxwxxxx x xxxxxyy %y /y9y @yNy_yuyyyyyy yy y zz 4z>z]z|zzzzzzz%z${@{#]{ {>{>{ | |%|-|@|T|h||||||||!} #}$-}!R}$t}!}}M}~,$~/Q~*~ ~~3~<~'02XoH)PrÀ̀ }&$ <:Tj˂'. HiɃ܃&& )1$[ "Ʉ: '5<Pj~%A%&>#Vz)/7So%v ͇$ׇ$V!x; ӈވ4 '2FUL.?щ,3FYkΊ ׊@~W ֋ {<ь)3;@ P^/{H! 2>.Q(,4֎ 10]bɏ؏ߏ1Pgx̐ Ր  ( .9J`x!Ln!’˒ *?%1eƓݓ51I[1{'Ք G)qD;˕ '9a {9ǖߖ  ?^m'1128d/3͙!37 (?6Oʛݛ '>Pk5r;OKQckrM ݞ3 / ;3H| :GW/gáڡ  ? E Q[ c p {  Ƣ/Ԣ "}3ɣڣ *<M9c! ɤۤ & <]u"ĥ,ܥ %-?EZ cmŦڦ0*It&: Lm}ըOVo ͩ٩i &$K[!t&>իM@eƬܬ=}ٮFWr^YѰ(+{TNб*KJAMز6&)]')(Q+z/6ִB {P$̵OdA^Cvk?Ÿ9@Ϲsg¼ۼ *C^z @DX+a  ,Ͼ5 2 StпU+?k!+4* l6 /%Bh O>9G *6;BF2K#~(-07J$aD}],6 9BW6tC3H>C'# )h?*Kq#-0^aG2zFYblx&2LADZ.EwPi=Ab[kv @4uh~ uL@|pnf.nTN? QI2:qOKcajd F!p ]U>T+rXi=J%Vxz51^s4 NH/F"8/XJ`om #UwQk :Gs$ 8jL!~I1,(<D-9B>|;$H(E?g<y!dYgIo \ <eN+rM5&cM5 :"K-A+EmZ7C"603B $%RfRVeyOG*S@ M,4}_{O%W91J)S[`' 7)v &;*{(l_.03=\7P8/t';P (modified) (unsaved)%d entry%d entries%d entry was pre-translated.%d entries were pre-translated.%d error%d errors%d issue with the translation found.%d issues with the translation found.%i line of file “%s” was not loaded correctly.%i lines of file “%s” were not loaded correctly.%s Format%s Preferences%s format&About&About Poedit&Apply&Back&Bookmarks&Cancel&Clear&Close&Copy&Delete&Done and Next&Done and next&Edit&File&Find…&GNU gettext Manual&GNU gettext manual&Go&Group By Context&Group by context&Help&New&New…&Next >&Next Translation&Next translation&No&OK&Online Help&Online help&Open...&Open…&Paste&Preferences&Preferences…&Previous Translation&Previous translation&Properties…&Purge Deleted Translations&Purge deleted translations&Quit&Redo&Replace&Save&Save as&Show References&Show references&Undo&Untranslated Entries First&Untranslated entries first&Update from Sources&Update from sources&Validate Translations&Validate translations&View&Yes(0 new, 0 obsolete)(Learn more about GNU gettext)(New: %i, obsolete: %i)(Use default language)(requires Windows 8 or newer)< &PreviousDrag and Drop Folders Here or use the + buttonDrag and drop folders here or use the + buttonAbout %sAccountsAdd CommentAdd Files…Add Folders…Add Wildcard…Add commentAdd directory to the listAdd files…Add folders…Add wildcard…Additional keywordsAdditional xgettext flags:AdvancedAdvanced Extraction Settings…Advanced extraction settingsAdvanced extraction settings…All Translation FilesAll commentsAlso use default keywords for supported languagesAlt+Always change focus to text input fieldAn item in input files list:An item in keywords list:AppearanceApplyAre you sure you want to delete the “%s” extractor?Are you sure you want to reset the translation memory?Automatically check for updatesAutomatically compile MO file when savingBackBase path:Beta versions contain the latest new features and improvements, but may be a bit less stable.Bring All to FrontBroken catalog file: plural form msgstr used without msgid_pluralBroken catalog file: singular form msgstr used together with msgid_pluralBrowseBy default, inaccurate results are filled in as well and marked as needing work. Check this option to only include accurate matches.C&atalogC&learCancelCannot create temporary directory.Cannot execute program: %sCapitalizeCatalogCatalog modified. Do you want to save changes?Catalog propertiesCatalogs &ManagerCatalogs &managerCatalogs ManagerChange UI languageCharset:Check Document NowCheck Grammar With SpellingCheck Spelling While TypingCheck for Updates…Check for errors in the translationCheck for updates…Check spellingClearClear TranslationClear the commentClear translationCloseCollaborate on a Translation with OthersCollaborate on a translation with othersCollecting source files…Command to extract translations:Comment:Comments prefixed with:Compile to MO…Compile to…Compiled Translation FilesConfigure source code extraction in Properties.ConfirmationCopyCopy From SingularCopy from Source TextCopy from singularCopy from source textCorrect Spelling AutomaticallyCouldn’t load file %s, it is probably corrupted.Couldn’t save file %s.Create New TranslationCreate new translationCreate new translations projectCrowdin errorCrowdin is an online localization management platform and collaborative translation tool. Poedit can seamlessly sync PO files managed at Crowdin.Ctrl+Cu&tCustom Extractors:Custom extractors:CutDatabase size on disk:DeleteDelete extractorDelete the projectDirectories:Display Entry &IDsDisplay entry &IDsDo you really want to do mass update of all catalogs in this project?Do you want to delete the project?Do you want to remove all translations that are no longer used?Don’t SaveDon’t Show AgainDon’t mark exact matches as needing workDon’t saveDon’t show againDownDownload a file from Crowdin project, translate and sync your changes back.Downloading latest translations…Downloading translations is disabled in this project.E&xitE&xport as HTML…EditEdit &CommentEdit &commentEdit CommentEdit a TranslationEdit a translationEdit commentEdit projectEdit the projectEditingEdit…Email:EnterEnter Full ScreenEntries in the catalog are probably incorrect.Entries in this catalog have different plural forms count from what catalog’s Plural-Forms header saysEntries with Errors FirstEntries with errors firstEntries with errors were marked in red in the list. Details of the error will be shown when you select such an entry.Error loading message catalog file “%s”.Error opening fileError opening file %s!Error saving catalogErrorsEverythingExcluded pathsExport as…Extract from sourcesExtract notes for translators from:Extract text from source files in the following directories:Extracting translatable strings…Extractor setupExtractorsFailed command: %sFailed to communicate with Poedit process.Failed to load extracted catalog.Failed to merge gettext catalogs.Failed to update translation memory: %sFileFile “%s” doesn’t exist.File “%s” is not a message catalog.File “%s” is read-only and cannot be saved. Please save it under different name.File:Finalizing…FindFind NextFind PreviousFind and Replace…Find in commentsFind in source textsFind in translationsFind nextFind previousFix LanguageFix languageFix the HeaderFix the headerForm %iFrequentGNU gettextGeneralGo to Bookmark %iGo to bookmark %iHTML FilesHelpHide %sHide OthersHide SidebarHide Status BarHide this notification messageIDIf you continue with purging, all translations marked as deleted will be permanently removed. You will have to translate them again if they are added back in the future.Ignore caseImporting translations…Include beta versionsInformation about the translatorInstallInvalid fileInvocation:KeepLanguage Code or Name (e.g. en_GB)Language of the translation is the same as source language.Language of the translation isn’t set.Language of the translation:Language selectionLanguage team:Language:Last modifiedLearn About Gettext KeywordsLearn From Files…Learn MoreLearn More About CrowdinLearn about gettext keywordsLearn about plural formsLearn from files…Learn moreLearn more about CrowdinLeftLine %d of file “%s” is corrupted (not valid %s data).Line endings:List of extensions separated by semicolons (e.g. *.cpp;*.h):MO files can’t be directly edited in Poedit.Make Lower CaseMake Upper CaseMalformed header: “%s”Merging differences…MinimizeName of the project the translation is forName:Ne&xt UnfinishedNe&xt unfinishedNeeds WorkNeeds workNever let the list of strings take focus. If enabled, you must use Ctrl-arrows for keyboard navigation but you can also type text immediately, without having to press Tab to change focus.NewNew From &POT/PO File…New from &POT/PO file…New stringsNext Plural FormNext plural formNoNo Matches FoundNo entries could be pre-translated.No matches foundNo problems with the translation found.No references for the selected item.No translation projects listed in your Crowdin account.Not all plural forms are translated.Not authorized, please sign in again.Notes for translators:OKObsolete stringsOneOnly enable if you trust the quality of your TM. By default, all matches from the TM are marked as needing work and should be reviewed before use.Only fill in exact matchesOpenOpen Crowdin translationOpen From Crowdin…Open RecentOpen an existing PO file and edit the translation.Open catalogOpen catalog templateOpen from Crowdin…Open in EditorOpen in editorOpen...Open…OptionsOtherP&revious UnfinishedP&revious unfinishedPO TranslationPO Translation FilesPOT Translation TemplatesPOT files are only templates and don’t contain any translations themselves. To make a translation, create a new PO file based on the template.PastePaste and Match StylePathsPlease open and edit the corresponding PO file instead. When you save it, the MO file will be updated as well.Please save the file first. This section cannot be edited until then.PluralPlural forms expression used by the catalog is unusual for %s.Plural forms:Plural:PoeditPoedit - Catalogs managerPoedit automatically fixed invalid content in the file “%s”.Poedit can attempt to fill in new entries from only previous translations in the file or from your entire translation memory. Using the TM won’t be very effective if it’s near-empty, but it will get better as you add more translations to it.Poedit is an easy to use translations editor.Pre-&translate…Pre-translatePre-translatedPre-translated %u stringPre-translated %u stringsPre-translating…Pre-translation automatically finds exact or fuzzy matches for untranslated strings in the translation memory and fills in their translations.PreferencesPreferences...Preferences…Preserve formatting of existing filesPrevious Plural FormPrevious plural formPrevious source text:Project name and version:Project name:Project:PurgePurge deleted translationsQuitQuit %sRecentRedoReferences:RefreshRemaining: %dReplaceReplace &AllReplace &allReplacement stringReplace…Required header Plural-Forms is missing.ResetReset translation memoryResetting the translation memory will irrevocably delete all stored translations from it. You can’t undo this operation.ReviewRightSaveSave &As…Save &as…Save asSave as…Save catalogSave changesSelect &AllSelect AllSelect directorySelect translation files to importSelect your preferred languageServicesSet Bookmark %iSet LanguageSet bookmark %iSet languageShift+Show AllShow SidebarShow Spelling and GrammarShow Status BarShow SubstitutionsShow or hide the sidebarShow sidebarShow status barShow summary after catalog updateSidebarSign InSign OutSign inSign in to CrowdinSign outSigned in as:SingularSingular:Smart Copy/PasteSmart DashesSmart LinksSmart QuotesSort by &File OrderSort by &SourceSort by &TranslationSort by &file orderSort by &sourceSort by &translationSource code charset:Source code extractors are used to find translatable strings in the source code files and extract them so that they can be translated.Source code not available.Source fileSource file occurrence:Source textSource text — %sSource text:Sources KeywordsSources PathsSources keywordsSources pathsSpeechSpellchecking is disabled, because the dictionary for %s isn’t installed.Spelling and GrammarStart SpeakingStop SpeakingStored translations:String to findSubstitutionsSuggestionsSuggestions are not available if the translation language is not set correctly. Other features, such as plural forms, may be affected as well.Supports all programming languages recognized by GNU gettext tools (PHP, C/C++, C#, Perl, Python, Java, JavaScript and others).SyncSync with CrowdinSynchronize the translation with CrowdinSyncingSyncing errorSyncing with %s failed.Syncing with %s…Syncing with Crowdin failed.Syntax error in Plural-Forms header ("%s").TMTake an existing PO file or POT template and create a new translation from it.Take translatable strings from an existing POT template.Team name and email address or URLText ReplacementThe TM doesn’t contain any strings similar to the content of this file. It is only effective for semi-automatic translations after Poedit learns enough from files that you translated manually.The catalog couldn’t be saved in “%s” charset as specified in catalog settings. It was saved in UTF-8 instead and the setting was modified accordingly.The file cannot be compiled into the MO format and used.The file cannot be opened.The file contained duplicate items, which is not allowed in PO files and would prevent the file from being used. Poedit fixed the issue, but you should review translations of any items marked as needing work and correct them if necessary.The file may be either corrupted or in a format not recognized by Poedit.The file was compiled into the MO format, but it will probably not work correctly.The file was saved safely and compiled into the MO format, but it will probably not work correctly.The file was saved safely, but it cannot be compiled into the MO format and used.The file was saved safely.The old source text (before it changed during an update) that the now-inaccurate translation corresponds to.The simplest way to fill this catalog is to update it from a POT:The translation doesn’t start with a space.The translation ends with a newline, but the source text doesn’t.The translation ends with a space, but the source text doesn’t.The translation ends with “%s”, but the source text ends with “%s”.The translation is missing a newline at the end.The translation is missing a space at the end.The translation is ready for use, but %d entry is not translated yet.The translation is ready for use, but %d entries are not translated yet.The translation is ready for use.The translation should end with “%s”.The translation should not end with “%s”.The translation should start as a sentence.The translation should start with a lowercase character.The translation starts with a space, but the source text doesn’t.The translations were marked as needing work, because they may be inaccurate. You should review them for correctness.There are no translations. That’s unusual.There was a problem formatting the file nicely (but it was saved all right).There were errors when loading the catalog. Some data may be missing or corrupted as the result.These settings affect internal formatting of PO files. Adjust them if you have specific requirements e.g. because of version control.These strings are no longer in the sources. Poedit will remove them from the catalog now.These strings were found in the sources but were not in the catalog. Poedit will add them to the catalog now.This catalog has entries with plural forms, but doesn’t have Plural-Forms header configured.This file can only be edited in Crowdin’s web interface.This is the command used to launch the extractor. %o expands to the name of output file, %K to list of keywords, %F to list of input files, %C to charset flag (see below).This project has no files that can be translated in Poedit.This string was found in Poedit’s translation memory.This will be attached to the command line only if source code charset was given. %c expands to charset value.This will be attached to the command line once for each input file. %f expands to the filename.This will be attached to the command line once for each keyword. %k expands to the keyword.TotalTransformationsTranslatable entries aren’t added manually in the Gettext system, but are automatically extracted from source code. This way, they stay up to date and accurate. Translators typically use PO template files (POTs) prepared for them by the developer.Translated: %d of %d (%d %%)Translation LanguageTranslation MemoryTranslation Needs &WorkTranslation PropertiesTranslation needs &workTranslation propertiesTranslation suggestions:Translation — %sTranslation:Translations couldn’t be updated from the source code, because no code was found in the location specified in the catalog’s Properties.TwoUTF-8 (recommended)UndoUnhandled exception occurred: %sUnix (recommended)UntransUpUpdateUpdate allUpdate all catalogs in the projectUpdate catalog - synchronize it with sourcesUpdate from &POT File…Update from &POT file…Update from POTUpdate summaryUpdatesUpdating catalogUpdating failedUpdating the catalog failed. Click on 'Details >>' for details.Updating user information…Uploading translations…Use custom expressionUse custom list font:Use custom text fields font:Use default rules for this languageUse these keywords (function names) to recognize translatable strings in source files:Use translation memoryValidateValidation resultsVersion %sWaiting for authentication…Welcome to PoeditWhat is Crowdin?When updating from sourcesWhole words onlyWindowWindowsWrap aroundWrap at:YesYou can also extract translatable strings directly from the source code:You can’t drop more than one file on Poedit window.You must restart Poedit for this change to take effect.Your NameYour changes will be lost if you don’t save them.Your name and email address are only used to set the Last-Translator header of GNU gettext files.ZeroZoomaltctrldon’t delete temporary files (for debugging)e.g. nplurals=2; plural=(n > 1);fuzzy match within the filego to item at given line numberhandle a poedit:// URIpre-translate from TMshiftunknown languageyour_email@example.com“%s” is not a valid POT file.Project-Id-Version: poedit Report-Msgid-Bugs-To: help@poedit.net POT-Creation-Date: 2017-12-05 15:52+0100 PO-Revision-Date: 2018-01-18 07:55-0500 Last-Translator: vslavik Language-Team: Spanish Language: es_ES MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=(n != 1); X-Generator: crowdin.com X-Crowdin-Project: poedit X-Crowdin-Language: es-ES X-Crowdin-File: /locales/poedit.pot (modificado) (sin guardar)%d entrada%d entradasSe pretradujo %d entrada.Se pretradujeron %d entradas.%d error%d erroresSe encontró %d problema en la traducción.Se encontraron %d problemas en la traducción.No se cargó %i línea del archivo “%s” correctamente.No se cargaron %i renglones del archivo «%s» correctamente.Formato %sPreferencias de %sFormato %sA&cerca deA&cerca de Poedit&Aplicar&Volver&Marcadores&Cancelar&Vaciar&Cerrar&Copiar&Eliminar&Hecho, siguiente&Hecho, siguiente&Editar&Archivo&Buscar…Manual de &GNU gettextManual de &Gettext&NavegarA&grupar por contextoA&grupar por contextoAy&uda&Nuevo&Nuevo…&Siguiente >Traducción &siguienteTraducción &siguiente&No&Aceptar&Ayuda en línea&Ayuda en línea&Abrir…&Abrir…&Pegar&Preferencias&Preferencias…Traducción &anteriorTraducción &anterior&Propiedades…&Purgar traducciones sin usar&Purgar traducciones sin usar&Salir&Rehacer&Reemplazar&GuardarG&uardar como&Mostrar referencias&Mostrar referencias&DeshacerEntradas &sin traducir primeroEntradas &sin traducir primeroActualizar desde &fuentesActualizar desde &fuentes&Validar traducciones&Validar traducciones&Ver&Sí(0 nuevas, 0 obsoletas)(Más información sobre GNU gettext)(Nuevas: %i, obsoletas: %i)(Usar idioma predeterminado)(se necesita Windows 8 o posterior)< &AnteriorArrastre y suelte carpetas aquí o use el botón +Arrastre y suelte carpetas aquí o use el botón +Acerca de %sCuentasAñadir comentarioAñadir archivos…Añadir carpetas…Añadir comodín…Añadir comentarioAñadir carpeta a la listaAñadir archivos…Añadir carpetas…Añadir comodín…Palabras clave adicionalesSeñales de xgettext adicionales:AvanzadasOpciones avanzadas de extracción…Opciones avanzadas de extracciónOpciones avanzadas de extracción…Todos los archivos de traducciónTodos los comentariosUtilizar también las palabras clave predeterminadas en los idiomas admitidosAlt+Enfocar siempre el campo de entrada de textoUn elemento de la lista de archivos de entrada:Un elemento de la lista de palabras clave:AparienciaAplicar¿Confirma que quiere eliminar el extractor «%s»?¿Confirma que quiere restablecer la memoria de traducción?Buscar actualizaciones automáticamenteCompilar automáticamente el archivo MO al guardarVolverDirectorio raíz:Las versiones beta contienen las funcionalidades y mejoras más recientes, pero pueden resultar menos estables.Traer todo al frenteArchivo de catálogo dañado: forma plural msgstr usada sin msgid_pluralArchivo de catálogo dañado: forma singular msgstr usada junto con msgid_pluralExaminarDe manera predeterminada, se incluyen también los resultados aproximados y se marcan como pendientes de revisión. Active esta opción para incluir solo coincidencias exactas.&Catálogo&VaciarCancelarNo se puede crear la carpeta temporal.No se puede ejecutar el programa: %sA mayúsculasCatálogoSe ha modificado el catálogo. ¿Quiere guardar los cambios?Propiedades del catálogo&Gestor de catálogos&Gestor de catálogosGestor de catálogosCambiar idioma de la interfazConjunto de caracteres:Revisar el documento ahoraComprobar gramática con la ortografíaRevisar ortografía al escribirBuscar actualizaciones…Buscar errores en la traducciónBuscar actualizaciones…Revisar la ortografíaVaciarVaciar traducciónBorrar el comentarioVaciar traducciónCerrarColaborar en una traducción con otrosColaborar en una traducción con otrosRecopilando archivos de código fuente…Orden para extraer las traducciones:Comentario:Comentarios con el prefijo:Compilar en MO…Compilar en…Archivos de traducción compiladosConfigure la extracción de código fuente en Propiedades.ConfirmaciónCopiarCopiar del singularCopiar del texto originalCopiar del singularCopiar del texto originalCorregir ortografía automáticamenteNo se pudo cargar el archivo «%s»; probablemente esté dañado.No se pudo guardar el archivo «%s».Crear traducción nuevaCrear traducción nuevaCrear proyecto de traducción nuevoError de CrowdinCrowdin es una plataforma de gestión de regionalización y traducción colaborativa en línea. Poedit puede sincronizar archivos PO gestionados con Crowdin.Ctrl+Cor&tarExtractores personalizados:Extractores personalizados:CortarTamaño de base de datos en el disco:EliminarEliminar extractorEliminar el proyectoCarpetas:Mostrar &identificadores de entradasMostrar &identificadores de entradas¿Quiere realizar una actualización en masa de todos los catálogos de este proyecto?¿Quiere eliminar el proyecto?¿Quiere eliminar todas las traducciones que ya no se usan?No guardarNo mostrar de nuevoNo marcar las coincidencias exactas como por revisarNo guardarNo mostrar de nuevoAbajoDescargue un archivo de un proyecto de Crowdin, tradúzcalo y sincronice sus cambios.Descargando las traducciones más recientes…La descarga de traducciones está desactivada en este proyecto.&SalirE&xportar a HTML…EditarEditar &comentarioEditar &comentarioEditar comentarioEditar una traducciónEditar una traducciónEditar comentarioEditar proyectoEditar el proyectoEdiciónEditar…Correo electrónico:IntroModo de pantalla completaEs probable que algunos mensajes del catálogo sean incorrectos.Hay entradas en este catálogo con una cantidad de formas de plural distinta de la establecida en la cabecera «Plural-Forms»Primero las entradas con erroresPrimero las entradas con erroresLas entradas con errores se han marcado en rojo en la lista. Se mostrarán detalles del error cuando seleccione la entrada.Ocurrió un error al cargar el catálogo de mensajes «%s».Error al abrir el archivoOcurrió un error al abrir el archivo %s.Error al guardar el catálogoErroresTodoRutas excluidasExportar a…Extraer desde código fuenteExtraer las notas para traductores a partir de:Extraer textos de archivos de código fuente en las carpetas siguientes:Extrayendo cadenas traducibles…Configuración de extractorExtractoresOrden errónea: %sNo se pudo comunicar con el proceso de Poedit.Falló la carga del catálogo extraído.Error al combinar los catálogos de Gettext.No se pudo actualizar la memoria de traducciones: %sArchivoNo existe el archivo «%s».El archivo «%s» no es un catálogo de mensajes.El archivo «%s» es de solo lectura y no se puede guardar. Guárdelo con un nombre distinto.Archivo:Finalizando…BuscarBuscar siguienteBuscar anteriorBuscar y reemplazar…Buscar en los comentariosEncontrar en textos originalesBuscar en traduccionesBuscar siguienteBuscar anteriorCorregir idiomaCorregir idiomaCorregir cabeceraCorregir cabeceraForma %iFrecuentesGNU gettextGeneralesIr al marcador %iIr al marcador %iArchivos HTMLAyudaOcultar %sOcultar el restoOcultar barra lateralOcultar barra de estadoOcultar esta notificaciónId.Si continúa con el purgado se eliminarán permanentemente todas las traducciones no utilizadas. Si las cadenas correspondientes se vuelven a añadir, deberá traducirlas de nuevo.Ignorar mayúsculas y minúsculasImportando traducciones…Incluir versiones betaInformación acerca del traductorInstalarEl archivo no es válidoEjecución:ConservarCódigo o nombre de idioma (p. ej., es_MX)El idioma de la traducción es igual que el del texto original.No se ha establecido el idioma de la traducción.Idioma de la traducción:Selección de idiomaEquipo de traductores:Idioma:Última modificaciónMás información sobre las palabras clave de gettextAprender de archivos…Más informaciónMás información sobre CrowdinMás información sobre palabras clave de gettextMás información sobre formas pluralesAprender de archivos…Más informaciónMás información sobre CrowdinIzquierdaEl renglón %d del archivo «%s» está dañado (datos %s no válidos).Finales de renglón:Lista de extensiones separadas por punto y coma (p. ej., *.cpp;*.h):No se pueden editar los archivos MO directamente en Poedit.Convertir en minúsculasConvertir en mayúsculasCabecera con formato incorrecto: «%s»Combinando diferencias…MinimizarEl nombre del proyecto al que se destina esta traducciónNombre:Siguien&te sin terminarSiguien&te sin terminarNecesita trabajoPor revisarNo dejar que la lista de cadenas retenga el enfoque. Si se activa esta opción, debe usar Ctrl + teclas de dirección para moverse por la lista, pero también puede comenzar a teclear inmediatamente sin necesidad de oprimir el tabulador para cambiar el enfoque.NuevoNueva desde archivo &POT/PO…Nueva desde archivo &POT/PO…Cadenas nuevasForma plural siguienteForma plural siguienteNoNo se hallaron coincidenciasNo se pudo pretraducir ninguna entrada.No se hallaron coincidenciasNo se encontraron problemas con esta traducción.No hay referencias para el elemento seleccionado.No hay proyectos de traducción en su cuenta de Crowdin.No todas las formas plurales están traducidas.Acción no autorizada. Acceda a la cuenta de nuevo.Notas para traductores:AceptarCadenas obsoletasUnoActive esta opción si confía en la calidad de la TM. De manera predeterminada, todas las coincidencias de TM son marcadas como por revisar y deben revisarse antes de su uso.Solo correspondencias exactasAbrirAbrir traducción de CrowdinAbrir desde Crowdin…Abrir recientesAbrir un archivo PO existente y editar la traducción.Abrir catálogoAbrir plantilla de catálogoAbrir desde Crowdin…Abrir en el editorAbrir en el editorAbrir…Abrir…OpcionesOtroAnte&rior sin terminarAnte&rior sin terminarTraducción en POArchivos de traducción POPlantillas de traducción POTLos archivos POT son plantillas; no contienen traducciones. Para realizar una traducción, cree un archivo PO nuevo basado en la plantilla.PegarPegar con el mismo estiloRutasEn su lugar, abra y edite el archivo PO correspondiente. Cuando lo guarde, el archivo MO se actualizará también.Guarde el archivo primero. No se podrá editar esta sección hasta que lo haga.PluralLa expresión de formas plurales usada en el catálogo es inusual en el %s.Formas de plural:Plural:PoeditPoedit: Gestor de catálogosPoedit corrigió automáticamente el contenido no válido del archivo «%s».Poedit puede intentar rellenar las entradas nuevas solo a partir de traducciones anteriores en el archivo o desde su memoria de traducción entera. Si la MT está casi vacía, la operación no será muy efectiva, pero mejorará a medida que le añada más traducciones.Poedit es un editor de traducciones fácil de usar.Pre&traducir…PretraducirPretraducidaSe pretradujo %u cadenaSe pretradujeron %u cadenasPretraduciendo…La pretraducción encuentra automáticamente en la memoria de la traducción coincidencias exactas o por revisar de cadenas sin traducir y las incluye en sus traducciones.PreferenciasPreferencias…Preferencias…Conservar el formato de los archivos existentesForma plural anteriorForma plural anteriorTexto fuente anterior:Nombre del proyecto y versión:Nombre del proyecto:Proyecto:PurgarPurgar traducciones eliminadasSalirSalir de %sRecientesRehacerReferencias:ActualizarQuedan: %dReemplazarReemplazar &todoReemplazar &todoTexto de reemplazoReemplazar…Falta la cabecera obligatoria «Plural-Forms».RestablecerRestablecer memoria de traducciónAl reiniciar la memoria de traducción se borrarán todas las traducciones almacenadas. Esta operación no se puede deshacer.RevisarDerechaGuardarG&uardar como…G&uardar como…Guardar comoGuardar como…Guardar catálogoGuardar cambiosSeleccionar &todoSeleccionar todoSeleccione la carpetaSeleccione los archivos de traducción que se importaránSeleccione el idioma que prefieraServiciosCrear marcador %iEstablecer idiomaCrear marcador %iEstablecer idiomaMayús+Mostrar todoMostrar barra lateralMostrar ortografía y gramáticaMostrar barra de estadoMostrar sustitucionesMostrar u ocultar la barra lateralMostrar barra lateralMostrar barra de estadoMostrar resumen tras actualizar el catálogoBarra lateralAccederSalirAccederAcceder a CrowdinSalirSe identificó como:SingularSingular:Copipegado inteligenteGuiones inteligentesEnlaces inteligentesComillas tipográficasOrdenar por &archivoOrdenar por &origenOrdenar por &traducciónOrdenar por &archivoOrdenar por &origenOrdenar por &traducciónConjunto de caracteres del código fuente:Los extractores de código fuente se usan para encontrar los mensajes traducibles en los archivos de código fuente y extraerlos para permitir su traducción.El código fuente no está disponible.Archivo de origenOcurrencia en archivo de fuente:Texto de origenTexto de origen: %sTexto de origen:Palabras clave de las fuentesRutas de las fuentesPalabras clave originalesRutas de fuentesHablaSe desactivó la revisión ortográfica porque falta el diccionario para el %s.Ortografía y gramáticaComenzar a hablarDejar de hablarTraducciones almacenadas:Texto que encontrarSustitucionesSugerenciasSi el idioma de traducción no se configura correctamente, se afectarán funcionalidades como las sugerencias y la gestión de formas plurales.Admite todos los lenguajes de programación que reconocen las herramientas gettext de GNU (PHP, C/C++, C#, Perl, Python, Java, JavaScript y más).SincronizaciónSincronizar con CrowdinSincronizar la traducción con CrowdinSincronizaciónError de sincronizaciónFalló la sincronización con %s.Sincronizando con %s…Falló la sincronización con Crowdin.Error de sintaxis en la cabecera de formas de plural («%s»).MTTomar un archivo PO o POT existente y crear una traducción a partir de este.Tomar las cadenas traducibles desde una plantilla POT existente.Nombre de equipo y correo o URLSustitución de textoLa MT no contiene ninguna cadena similar al contenido de este archivo. Solo será efectiva para traducciones semiautomáticas después de que Poedit haya aprendido lo suficiente de archivos traducidos manualmente por el usuario.No se pudo guardar el catálogo en el conjunto de caracteres «%s» como se especificó en sus preferencias. Como consecuencia, se ha guardado en UTF-8 y se ha modificado la preferencia.El archivo no se puede compilar en el archivo MO para su uso.No se puede abrir el archivo.El archivo contenía elementos duplicados, lo que impediría su funcionamiento. Poedit ha corregido el problema, pero debe revisar las traducciones de cualesquier elementos marcados como por revisar y corregirlas si es necesario.El archivo puede estar dañado o en un formato que Poedit no reconoce.El archivo se compiló en el formato MO, pero es posible que no funcione correctamente.El archivo se guardó con seguridad y se compiló en el formato MO, pero es posible que no funcione correctamente.El archivo se guardó con seguridad, pero no puede compilarse en el formato MO ni usarse.Se ha guardado el archivo con seguridad.El texto original anterior (antes de que cambiase en una actualización) al que corresponde la traducción ahora imprecisa.La manera más simple de rellenar este catálogo es actualizarlo desde un POT:La traducción no comienza con un espacio.La traducción termina con un salto de renglón, pero el texto original no.La traducción termina con un espacio, pero el texto original no.La traducción termina con «%s», pero el texto original termina con «%s».Falta un salto de renglón al final en la traducción.Falta un espacio final en la traducción.La traducción está lista para su uso, pero aún no se ha traducido %d cadena.La traducción está lista para su uso, pero aún no se han traducido %d cadenas.La traducción está lista para su uso.La traducción debe terminar con «%s».La traducción no debe terminar con «%s».La traducción debe comenzar como una oración.La traducción debe comenzar con una letra minúscula.La traducción comienza con un espacio, pero el texto original no.Las traducciones fueron marcadas como por revisar ya que pueden ser imprecisas. Debe revisarlas para asegurar la exactitud.No hay traducciones. Eso es inusual.Ocurrió un problema al dar formato al archivo (pero se guardó correctamente).Se produjeron errores al leer el catálogo. Es posible que algunos datos se hayan perdido o dañado.Estos valores afectan el formato interno de los archivos PO. Ajústelos si usted tiene requisitos específicos; por ejemplo, debido al control de versiones.Estas cadenas ya no se encuentran en los archivos fuente. Poedit las eliminará del catálogo.Estas cadenas aparecen en los archivos fuente pero no están en el catálogo. Poedit los añadirá ahora al catálogo.Este catálogo tiene entradas con formas en plural, pero no tiene configurada la cabecera «Plural-Forms».Este archivo solo puede editarse en la interfaz web de Crowdin.Esta orden se utiliza para abrir el extractor. %o expande el nombre del archivo de salida, %K muestra las palabras clave, %F enlista los archivos de entrada y %C define el conjunto de caracteres (vea abajo).Este proyecto no contiene archivos traducibles en Poedit.Esta cadena se encontró en la memoria de traducción de Poedit.Esto se adjuntará a la línea de órdenes solo si se proporcionó el conjunto de caracteres del código fuente. %c expande al valor del conjunto.Esto se añadirá a la línea de órdenes una vez por cada archivo de entrada. %f se expande al nombre del archivo.Esto se añadirá a la línea de órdenes una vez por cada palabra clave. %k contiene la palabra clave.TotalTransformacionesLas entradas traducibles no se añaden manualmente en el sistema Gettext, sino que se extraen automáticamente del código fuente. Así se mantienen actualizadas y precisas. Los traductores normalmente emplean plantillas de PO (POT) que proporcionan los desarrolladores.Traducidas: %d de %d (%d %%)Idioma de la traducciónMemoria de traduccionesTraducción por re&visarPropiedades de la traducciónTraducción por re&visarPropiedades de traducciónSugerencias de traducción:Traducción: %sTraducción:No se pudieron actualizar las traducciones a partir del código fuente porque no se encontró el código en la ubicación especificada en las propiedades del catálogo.DosUTF-8 (recomendado)DeshacerSe produjo una excepción no controlada: %sUnix (recomendado)Sin traducirArribaActualizarActualizar todoActualizar todos los catálogos del proyectoActualizar catálogo: sincronizarlo con los orígenesActualizar desde archivo &POT…Actualizar desde archivo &POT…Actualizar desde POTResumen de la actualizaciónActualizacionesActualizando el catálogoFalló la actualizaciónFalló la actualización del catálogo. Pulse en «Detalles» para más información.Actualizando la información del usuario…Cargando las traducciones…Usar una expresión personalizadaUsar tipo de letra personalizado en listas:Usar tipo de letra personalizado en campos de texto:Usar reglas predeterminadas de este idiomaUsar estas palabras clave (nombres de funciones) para reconocer mensajes traducibles en los archivos fuente:Usar memoria de traducciónValidarResultados de la validaciónVersión %sEsperando la autenticación…Le damos la bienvenida a Poedit¿Qué es Crowdin?Al actualizar desde el código fuenteSolo palabras completasVentanaWindowsBúsqueda bidireccionalAjustar en:SíTambién puede extraer las cadenas traducibles directamente del código fuente:No se puede soltar más de un archivo en la ventana de Poedit.Debe reiniciar Poedit para que los cambios surtan efecto.Su nombreLos cambios se perderán si no los guarda.Estos datos se utilizan únicamente para establecer el valor de la cabecera «Last-Translator» de los archivos de GNU gettext.CeroEscalaaltctrlno eliminar archivos temporales (para depuración)p. ej., nplurals=2; plural=(n > 1);incluir coincidencias aprox. del archivoir al elemento en el número de renglón dadomanejar un URI poedit://pretraducir a partir de la MTmayúsidioma desconocidodirección@ejemplo.com«%s» no es un archivo POT válido.poedit-2.0.6/locales/zh_CN.mo0000664000372000037200000013212413230132042012675 00000000000000P%1 1 11<11J 2gW2 22 22 222 3333%3+333B3Q3W3]3f3z333333333333 3 44 4)4 04=4M4c4y44444444445 5(5D5Y5n55555555 6 '6:36:n6 666 6 666 6 7 #707?7O7c7~77777 71898'>8f88 8878689)=9g9 l9]w99A9I*:t:{:; ;;";:; U;`;.h;;;;;;;;<*<F<#[<<<<<<<<(<(=7= R=s=|== ==/= = >>#>9>L>b>2>>>>> ?)???????@@@ 2@?@R@Ee@"@?@ AA*.A YAfAyAK~A"A5A#B)BHAH HHI 'IHI PI ]IiI"nI;I(IIJ&J 5J ?JMJjJ ~JJJJJ JJK:K PK<^K.KKKKLL*%LPLVLgL xL LLJMNMgM MMMMM#MM'M$N7DN$|N%NNNNNNOOOO O2O P#P9PNP]PlPtP|PPPPPPPPQQQnQERZR>aR RRRR@RS-TMӃ ك!9@ P ]gxI!ӄ3 ) 3$@ e o|Tօ! "8?P a n {  Іֆ$\ko2F\y Ј-!< LV#h!"͉)H< Ɗي% 5 BO _ is z  ʋ׋ ʌ݌ ,!Hj  ͍ !:M `mLَ:,$ Q ^k  ɏ ǐ  "8<Ok~3!$4JQdh$+AW/g ͓  2 ISctX?sC 98r1@r rʗ = G Ta}ؘ  #* 1; BNUfw "fљ8?CJ[ l v  !ޚ  +8 ?L\r!Λ !(8 ?I] m zɜ u!  ʝԝ  :'b r ux6ɟ '3C wE8ʠ( ,9+ТA@^3IܤTGP<67+cCߦ 7$V-{`$ H/BxsV/hV6F}5$1ZaXUG έ խ  * : H]RƮ#ͮ   #$Bg ȯ ۯ?(DZ!s$NͰ/ 6 CMi} DZ Ա?8%;^ -`ղ6:AE'J%rͳ +(D}],6 9BW6tC3H>C'# )h?*Kq#-0^aG2zFYblx&2LADZ.EwPi=Ab[kv @4uh~ uL@|pnf.nTN? QI2:qOKcajd F!p ]U>T+rXi=J%Vxz51^s4 NH/F"8/XJ`om #UwQk :Gs$ 8jL!~I1,(<D-9B>|;$H(E?g<y!dYgIo \ <eN+rM5&cM5 :"K-A+EmZ7C"603B $%RfRVeyOG*S@ M,4}_{O%W91J)S[`' 7)v &;*{(l_.03=\7P8/t';P (modified) (unsaved)%d entry%d entries%d entry was pre-translated.%d entries were pre-translated.%d error%d errors%d issue with the translation found.%d issues with the translation found.%i line of file “%s” was not loaded correctly.%i lines of file “%s” were not loaded correctly.%s Format%s Preferences%s format&About&About Poedit&Apply&Back&Bookmarks&Cancel&Clear&Close&Copy&Delete&Done and Next&Done and next&Edit&File&Find…&GNU gettext Manual&GNU gettext manual&Go&Group By Context&Group by context&Help&New&New…&Next >&Next Translation&Next translation&No&OK&Online Help&Online help&Open...&Open…&Paste&Preferences&Preferences…&Previous Translation&Previous translation&Properties…&Purge Deleted Translations&Purge deleted translations&Quit&Redo&Replace&Save&Save as&Show References&Show references&Undo&Untranslated Entries First&Untranslated entries first&Update from Sources&Update from sources&Validate Translations&Validate translations&View&Yes(0 new, 0 obsolete)(Learn more about GNU gettext)(New: %i, obsolete: %i)(Use default language)(requires Windows 8 or newer)< &PreviousDrag and Drop Folders Here or use the + buttonDrag and drop folders here or use the + buttonAbout %sAccountsAdd CommentAdd Files…Add Folders…Add Wildcard…Add commentAdd directory to the listAdd files…Add folders…Add wildcard…Additional keywordsAdditional xgettext flags:AdvancedAdvanced Extraction Settings…Advanced extraction settingsAdvanced extraction settings…All Translation FilesAll commentsAlso use default keywords for supported languagesAlt+Always change focus to text input fieldAn item in input files list:An item in keywords list:AppearanceApplyAre you sure you want to delete the “%s” extractor?Are you sure you want to reset the translation memory?Automatically check for updatesAutomatically compile MO file when savingBackBase path:Beta versions contain the latest new features and improvements, but may be a bit less stable.Bring All to FrontBroken catalog file: plural form msgstr used without msgid_pluralBroken catalog file: singular form msgstr used together with msgid_pluralBrowseBy default, inaccurate results are filled in as well and marked as needing work. Check this option to only include accurate matches.C&atalogC&learCancelCannot create temporary directory.Cannot execute program: %sCapitalizeCatalogCatalog modified. Do you want to save changes?Catalog propertiesCatalogs &ManagerCatalogs &managerCatalogs ManagerChange UI languageCharset:Check Document NowCheck Grammar With SpellingCheck Spelling While TypingCheck for Updates…Check for errors in the translationCheck for updates…Check spellingClearClear TranslationClear the commentClear translationCloseCollaborate on a Translation with OthersCollaborate on a translation with othersCollecting source files…Command to extract translations:Comment:Comments prefixed with:Compile to MO…Compile to…Compiled Translation FilesConfigure source code extraction in Properties.ConfirmationCopyCopy From SingularCopy from Source TextCopy from singularCopy from source textCorrect Spelling AutomaticallyCouldn’t load file %s, it is probably corrupted.Couldn’t save file %s.Create New TranslationCreate new translationCreate new translations projectCrowdin errorCrowdin is an online localization management platform and collaborative translation tool. Poedit can seamlessly sync PO files managed at Crowdin.Ctrl+Cu&tCustom Extractors:Custom extractors:CutDatabase size on disk:DeleteDelete extractorDelete the projectDirectories:Display Entry &IDsDisplay entry &IDsDo you really want to do mass update of all catalogs in this project?Do you want to delete the project?Do you want to remove all translations that are no longer used?Don’t SaveDon’t Show AgainDon’t mark exact matches as needing workDon’t saveDon’t show againDownDownload a file from Crowdin project, translate and sync your changes back.Downloading latest translations…Downloading translations is disabled in this project.E&xitE&xport as HTML…EditEdit &CommentEdit &commentEdit CommentEdit a TranslationEdit a translationEdit commentEdit projectEdit the projectEditingEdit…Email:EnterEnter Full ScreenEntries in the catalog are probably incorrect.Entries in this catalog have different plural forms count from what catalog’s Plural-Forms header saysEntries with Errors FirstEntries with errors firstEntries with errors were marked in red in the list. Details of the error will be shown when you select such an entry.Error loading message catalog file “%s”.Error opening fileError opening file %s!Error saving catalogErrorsEverythingExcluded pathsExport as…Extract from sourcesExtract notes for translators from:Extract text from source files in the following directories:Extracting translatable strings…Extractor setupExtractorsFailed command: %sFailed to communicate with Poedit process.Failed to load extracted catalog.Failed to merge gettext catalogs.Failed to update translation memory: %sFileFile “%s” doesn’t exist.File “%s” is not a message catalog.File “%s” is read-only and cannot be saved. Please save it under different name.File:Finalizing…FindFind NextFind PreviousFind and Replace…Find in commentsFind in source textsFind in translationsFind nextFind previousFix LanguageFix languageFix the HeaderFix the headerForm %iFrequentGNU gettextGeneralGo to Bookmark %iGo to bookmark %iHTML FilesHelpHide %sHide OthersHide SidebarHide Status BarHide this notification messageIDIf you continue with purging, all translations marked as deleted will be permanently removed. You will have to translate them again if they are added back in the future.Ignore caseImporting translations…Include beta versionsInformation about the translatorInstallInvalid fileInvocation:KeepLanguage Code or Name (e.g. en_GB)Language of the translation is the same as source language.Language of the translation isn’t set.Language of the translation:Language selectionLanguage team:Language:Last modifiedLearn About Gettext KeywordsLearn From Files…Learn MoreLearn More About CrowdinLearn about gettext keywordsLearn about plural formsLearn from files…Learn moreLearn more about CrowdinLeftLine %d of file “%s” is corrupted (not valid %s data).Line endings:List of extensions separated by semicolons (e.g. *.cpp;*.h):MO files can’t be directly edited in Poedit.Make Lower CaseMake Upper CaseMalformed header: “%s”Merging differences…MinimizeName of the project the translation is forName:Ne&xt UnfinishedNe&xt unfinishedNeeds WorkNeeds workNever let the list of strings take focus. If enabled, you must use Ctrl-arrows for keyboard navigation but you can also type text immediately, without having to press Tab to change focus.NewNew From &POT/PO File…New from &POT/PO file…New stringsNext Plural FormNext plural formNoNo Matches FoundNo entries could be pre-translated.No matches foundNo problems with the translation found.No references for the selected item.No translation projects listed in your Crowdin account.Not all plural forms are translated.Not authorized, please sign in again.Notes for translators:OKObsolete stringsOneOnly enable if you trust the quality of your TM. By default, all matches from the TM are marked as needing work and should be reviewed before use.Only fill in exact matchesOpenOpen Crowdin translationOpen From Crowdin…Open RecentOpen an existing PO file and edit the translation.Open catalogOpen catalog templateOpen from Crowdin…Open in EditorOpen in editorOpen...Open…OptionsOtherP&revious UnfinishedP&revious unfinishedPO TranslationPO Translation FilesPOT Translation TemplatesPOT files are only templates and don’t contain any translations themselves. To make a translation, create a new PO file based on the template.PastePaste and Match StylePathsPlease open and edit the corresponding PO file instead. When you save it, the MO file will be updated as well.Please save the file first. This section cannot be edited until then.PluralPlural forms expression used by the catalog is unusual for %s.Plural forms:Plural:PoeditPoedit - Catalogs managerPoedit automatically fixed invalid content in the file “%s”.Poedit can attempt to fill in new entries from only previous translations in the file or from your entire translation memory. Using the TM won’t be very effective if it’s near-empty, but it will get better as you add more translations to it.Poedit is an easy to use translations editor.Pre-&translate…Pre-translatePre-translatedPre-translated %u stringPre-translated %u stringsPre-translating…Pre-translation automatically finds exact or fuzzy matches for untranslated strings in the translation memory and fills in their translations.PreferencesPreferences...Preferences…Preserve formatting of existing filesPrevious Plural FormPrevious plural formPrevious source text:Project name and version:Project name:Project:PurgePurge deleted translationsQuitQuit %sRecentRedoReferences:RefreshRemaining: %dReplaceReplace &AllReplace &allReplacement stringReplace…Required header Plural-Forms is missing.ResetReset translation memoryResetting the translation memory will irrevocably delete all stored translations from it. You can’t undo this operation.ReviewRightSaveSave &As…Save &as…Save asSave as…Save catalogSave changesSelect &AllSelect AllSelect directorySelect translation files to importSelect your preferred languageServicesSet Bookmark %iSet LanguageSet bookmark %iSet languageShift+Show AllShow SidebarShow Spelling and GrammarShow Status BarShow SubstitutionsShow or hide the sidebarShow sidebarShow status barShow summary after catalog updateSidebarSign InSign OutSign inSign in to CrowdinSign outSigned in as:SingularSingular:Smart Copy/PasteSmart DashesSmart LinksSmart QuotesSort by &File OrderSort by &SourceSort by &TranslationSort by &file orderSort by &sourceSort by &translationSource code charset:Source code extractors are used to find translatable strings in the source code files and extract them so that they can be translated.Source code not available.Source fileSource file occurrence:Source textSource text — %sSource text:Sources KeywordsSources PathsSources keywordsSources pathsSpeechSpellchecking is disabled, because the dictionary for %s isn’t installed.Spelling and GrammarStart SpeakingStop SpeakingStored translations:String to findSubstitutionsSuggestionsSuggestions are not available if the translation language is not set correctly. Other features, such as plural forms, may be affected as well.Supports all programming languages recognized by GNU gettext tools (PHP, C/C++, C#, Perl, Python, Java, JavaScript and others).SyncSync with CrowdinSynchronize the translation with CrowdinSyncingSyncing errorSyncing with %s failed.Syncing with %s…Syncing with Crowdin failed.Syntax error in Plural-Forms header ("%s").TMTake an existing PO file or POT template and create a new translation from it.Take translatable strings from an existing POT template.Team name and email address or URLText ReplacementThe TM doesn’t contain any strings similar to the content of this file. It is only effective for semi-automatic translations after Poedit learns enough from files that you translated manually.The catalog couldn’t be saved in “%s” charset as specified in catalog settings. It was saved in UTF-8 instead and the setting was modified accordingly.The file cannot be compiled into the MO format and used.The file cannot be opened.The file contained duplicate items, which is not allowed in PO files and would prevent the file from being used. Poedit fixed the issue, but you should review translations of any items marked as needing work and correct them if necessary.The file may be either corrupted or in a format not recognized by Poedit.The file was compiled into the MO format, but it will probably not work correctly.The file was saved safely and compiled into the MO format, but it will probably not work correctly.The file was saved safely, but it cannot be compiled into the MO format and used.The file was saved safely.The old source text (before it changed during an update) that the now-inaccurate translation corresponds to.The simplest way to fill this catalog is to update it from a POT:The translation doesn’t start with a space.The translation ends with a newline, but the source text doesn’t.The translation ends with a space, but the source text doesn’t.The translation ends with “%s”, but the source text ends with “%s”.The translation is missing a newline at the end.The translation is missing a space at the end.The translation is ready for use, but %d entry is not translated yet.The translation is ready for use, but %d entries are not translated yet.The translation is ready for use.The translation should end with “%s”.The translation should not end with “%s”.The translation should start as a sentence.The translation should start with a lowercase character.The translation starts with a space, but the source text doesn’t.The translations were marked as needing work, because they may be inaccurate. You should review them for correctness.There are no translations. That’s unusual.There was a problem formatting the file nicely (but it was saved all right).There were errors when loading the catalog. Some data may be missing or corrupted as the result.These settings affect internal formatting of PO files. Adjust them if you have specific requirements e.g. because of version control.These strings are no longer in the sources. Poedit will remove them from the catalog now.These strings were found in the sources but were not in the catalog. Poedit will add them to the catalog now.This catalog has entries with plural forms, but doesn’t have Plural-Forms header configured.This file can only be edited in Crowdin’s web interface.This is the command used to launch the extractor. %o expands to the name of output file, %K to list of keywords, %F to list of input files, %C to charset flag (see below).This project has no files that can be translated in Poedit.This string was found in Poedit’s translation memory.This will be attached to the command line only if source code charset was given. %c expands to charset value.This will be attached to the command line once for each input file. %f expands to the filename.This will be attached to the command line once for each keyword. %k expands to the keyword.TotalTransformationsTranslatable entries aren’t added manually in the Gettext system, but are automatically extracted from source code. This way, they stay up to date and accurate. Translators typically use PO template files (POTs) prepared for them by the developer.Translated: %d of %d (%d %%)Translation LanguageTranslation MemoryTranslation Needs &WorkTranslation PropertiesTranslation needs &workTranslation propertiesTranslation suggestions:Translation — %sTranslation:Translations couldn’t be updated from the source code, because no code was found in the location specified in the catalog’s Properties.TwoUTF-8 (recommended)UndoUnhandled exception occurred: %sUnix (recommended)UntransUpUpdateUpdate allUpdate all catalogs in the projectUpdate catalog - synchronize it with sourcesUpdate from &POT File…Update from &POT file…Update from POTUpdate summaryUpdatesUpdating catalogUpdating failedUpdating the catalog failed. Click on 'Details >>' for details.Updating user information…Uploading translations…Use custom expressionUse custom list font:Use custom text fields font:Use default rules for this languageUse these keywords (function names) to recognize translatable strings in source files:Use translation memoryValidateValidation resultsVersion %sWaiting for authentication…Welcome to PoeditWhat is Crowdin?When updating from sourcesWhole words onlyWindowWindowsWrap aroundWrap at:YesYou can also extract translatable strings directly from the source code:You can’t drop more than one file on Poedit window.You must restart Poedit for this change to take effect.Your NameYour changes will be lost if you don’t save them.Your name and email address are only used to set the Last-Translator header of GNU gettext files.ZeroZoomaltctrldon’t delete temporary files (for debugging)e.g. nplurals=2; plural=(n > 1);fuzzy match within the filego to item at given line numberhandle a poedit:// URIpre-translate from TMshiftunknown languageyour_email@example.com“%s” is not a valid POT file.Project-Id-Version: poedit Report-Msgid-Bugs-To: help@poedit.net POT-Creation-Date: 2017-12-05 15:52+0100 PO-Revision-Date: 2017-09-21 11:38-0400 Last-Translator: vslavik Language-Team: Chinese Simplified Language: zh_CN MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=1; plural=0; X-Generator: crowdin.com X-Crowdin-Project: poedit X-Crowdin-Language: zh-CN X-Crowdin-File: /locales/poedit.pot (已修改) (未保存)%d 条目%d 个条目已进行预翻译。%d 错误在翻译中发现了 %d 个问题。文件“%2$s”的第 %1$i 行未能正确加载。%s 格式%s 首选项%s 格式关于(&A)关于 Poedit (&A)应用(&A)返回(&B)书签(&B)取消(&C)清除(&C)关闭(&C)复制(&C)刪除(&D)完成并转到下一个(&D)完成并转到下一个(&D)编辑(&E)文件(&F)查找(&F)…&GNU gettext 手册&GNU gettext 手册转到(&G)按上下文分组(&G)按上下文分组(&G)帮助(&H)新建(&N)新建…下一个(&N) >下一个翻译(&N)下一个翻译(&N)否(&N)确定(&O)在线帮助(&O)在线帮助(&O)打开(&O)...打开(&O)…粘贴(&P)首选项(&P)首选项(&P)…前一个翻译(&P)前一个翻译(&P)属性(&P)…清除已删除的翻译(&P)清除已删除的翻译(&P)退出(&Q)恢复(&R)替换(&R)保存(&S)另存为(&S)显示引用(&S)显示引用(&S)撤销(&U)未翻译条目优先(&U)未翻译条目优先(&U)从源文更新(&U)从源文更新(&U)验证翻译(&V)验证翻译(&V)查看(&V)是(&Y)(0 个新建,0 个已废弃)(了解更多关于 GNU gettext 的内容)(新条目:%i 项;已过时:%i 项)(使用默认语言)(需要 Windows 8 或更高版本)< 上一个(&P)拖放文件夹到这里 或者使用 + 按钮拖放文件夹到这里 或者使用 + 按钮<未命名>关于 %s账号添加注释添加文件…添加文件夹…添加通配符…添加注释将目录添加到列表添加文件…添加文件夹…添加通配符…额外的关键字额外的 xgettext 标志︰高级高级提取设置…高级提取设置高级提取设置…所有翻译文件所有评论支持的语言也使用默认的关键字Alt+总是将焦点移动到文本输入字段在输入文件列表中的项:在关键字列表中的项:外观应用您确定要删除“%s”提取器吗?你确定你要重置翻译记忆库吗?自动检查更新在保存时自动编译 MO 文件返回基本路径:测试版包含最新功能和改进,但可能有点不太稳定。全部带到最前方编目文件不当:复数形式的 msgstr 被用在没有 msgid_plural 的位置编目文件不当:单数形式的 msgstr 被用在 msgid_plural浏览默认情况下,不准确的结果被填补并标记为需要处理。选中此选项只包括精确匹配的项。编目(&A)清除(&L)取消不能创建临时目录。不能执行程序: %s大写编目编目已修改。您想要保存更改吗?编目属性编目管理器(&M)编目管理器(&M)编目管理器更改用户界面语言字符集:立即检查文档检查拼写和语法在输入时检查拼写检查更新…检查翻译中的错误检查更新…检查拼写清除清除翻译清除注释清除翻译关闭与其他人协作翻译与其他人协作一个翻译正在收集源文件…提取翻译的命令:注释:有前缀的评论:编译为 MO…编译到…已编译的翻译文件在属性中配置源代码提取。确认复制复制单数复制源文本复制单数复制源文本自动更正拼写错误不能加载文件 %s,它可能已损坏。不能保存文件 %s。创建新的翻译创建新的翻译创建新的翻译项目Crowdin 错误Crowdin 是一个在线的本地化管理平台和协作翻译工具。Poedit 可以无缝同步在 Crowdin 上管理的 PO 文件。Ctrl+剪切(&T)自定义提取器︰自定义提取器︰剪切磁盘上数据文件的大小:删除删除提取器删除项目目录:显示条目 &ID显示条目 &ID您确定要对这个项目中的所有编目执行 大规模更新吗?您确定要删除此项目吗?您确定要移除所有不再使用的翻译吗?不保存不再显示不将精确匹配标为需要处理不保存不再显示Down从 Crowdin 项目下载一个文件、翻译,然后将您的更改同步回去。正在下载最新的翻译…此项目禁用了下载翻译。退出(&X)导出为 HTML(&X)…编辑编辑注释(&C)编辑注释(&C)编辑注释编辑翻译编辑翻译编辑注释编辑项目编辑项目编辑编辑…电子邮件:Enter进入全屏模式编目中的条目可能不正确。这个编目中的条目的复数形式数量与编目的 Plural-Forms 头所说明的不同带有错误的条目优先带有错误的条目优先有错误的条目在列表中被标记为红色。您选择这样的条目时将显示错误的详细信息。加载消息编目文件“%s”时遇到错误。打开文件时出错打开文件 %s 时出错!保存编目时出错错误一切排除的路径导出为…从源代码中提取为译者提取注释自:从下列目录中的源文件提取文本:正在提取可翻译字符串…提取器安装提取器命令失败:%s与 Poedit 进程的通信失败。加载已提取的编目失败。合并 gettext 编目失败。更新翻译记忆库失败: %s 文件文件“%s”不存在。文件“%s”不是一个消息编目。文件“%s”为只读,不能保存。 请使用其他名称保存。文件:正在完成…查找查找下一个查找上一个查找和替换…在注释中查找在源文本中查找在翻译中查找查找下一个查找上一个修复语言修复语言修复文件头修正头表格 %i频繁GNU gettext常规转至书签 %i转至书签 %iHTML 文件帮助隐藏 %s隐藏其他隐藏侧边栏隐藏状态栏隐藏这条消息ID如果您继续清除,则所有被标记为已删除的翻译都将被永久移除。如果未来它们被添加回来,您必须再翻译一遍。忽略大小写正在导入翻译…包括测试版本关于翻译者的信息安装无效文件调用:保持语言的代码或名称(例如:en_GB)翻译语言与源语言相同。翻译语言未设置。要翻译的语言:语言选择语言团队:语言:最后修改了解 Gettext 关键字从文件学习…了解更多了解更多有关 Crowdin了解 gettext 关键字了解复数形式从文件学习…了解更多了解更多有关 Crowdin左文件“%2$s”的第 %1$d 行已损坏(不是有效的 %3$s 数据)。行结束符:用分号分隔的扩展名列表(例如 *.cpp;*.h):MO 文件不能直接在 Poedit 中编辑。转为小写转为大写首部格式异常:“%s”正在合并差异…最小化翻译的项目名称名称:下一个未完成(&X)下一个未完成(&X)需要处理需要处理从不让字串列表取得焦点。如果启用,您必须使用 “Ctrl-方向键” 进行键盘导航,但您也可以立即输入文本,不用按 Tab 改变焦点。新建从 &POT/PO 文件新建…从 &POT/PO 文件新建…新建字串下一个复数形式下一个复数形式否未找到匹配项没有条目可预翻译。未找到匹配项翻译中未发现问题。没有对选定项的引用。您的 Crowdin 账户中没有列出翻译项目。复数形式不需全部翻译。未授权,请尝试重新登录。给译员的注释:确定已废弃的字串一仅在您信任你的翻译记忆的质量时启用。默认情况下,从翻译记忆匹配的所有条目被标记为模糊,在使用前应加以审查。仅填补完全匹配的项打开打开 Crowdin 翻译从 Crowdin 打开…打开最近的打开一个现有的PO文件并编辑翻译。打开编目打开编目模板从 Crowdin 打开…在编辑器中打开在编辑器中打开打开...打开…选项其他上一个未完成(&R)上一个未完成(&R)PO 翻译PO 翻译文件POT 翻译模板POT 文件只是模板,不包含任何翻译内容。 若要制作一个翻译,请基于模板创建一个新的 PO 文件。粘贴粘贴并匹配样式路径请打开并编辑对应的 PO 文件。当你保存它时,MO 文件也将被更新。请先保存文件。以下内容在此之前不能被编辑。复数该目录中所使用的复数形式对于 %s 是不同寻常的。复数形式:复数:PoeditPoedit - 编目管理器Poedit 自动修复了“%s”文件中的无效内容。Poedit 可以根据以前的翻译文件或你的翻译记忆库来尝试填写新条目。接近空的翻译记忆库不会很有效,但如果你为它添加了更多的翻译,它也会变得更好。Poedit 是一个易于使用的翻译编辑器。预翻译(&T)…预翻译已预翻译已预翻译 %u 个字符串正在预翻译…预翻译自动在翻译记忆库中查找未翻译字符串的精确或模糊匹配项,并将其填入翻译。首选项首选项...首选项…保留现有文件的格式上一个复数形式上一个复数形式上一个源文本:项目名称和版本:项目名称:项目:清除清除已删除的翻译退出退出 %s最近重做引用:刷新剩余:%d替换全部替换(&A)全部替换(&A)替换字符串替换…缺少必需的头 Plural-Forms。重置重置翻译记忆库重置翻译记忆库将无可挽回地删除其中存储的所有翻译。你无法撤消此操作。检查右保存另存为(&A)…另存为(&A)…另存为另存为…保存编目保存更改全选(&A)全选选择目录选择需要导入的翻译文件选择您的首选语言服务设置书签 %i设置语言设置书签 %i选择语言Shift+全部显示显示侧边栏显示拼写和语法显示状态栏显示替换项目显示或隐藏侧边栏显示侧边栏显示状态栏在编目更新之后显示摘要侧边栏登录登出登录登录到 Crowdin登出已登录为:单数单数:智能复制/粘贴智能短划线智能链接智能引号按文件顺序排序(&F)按源文排序(&S)按翻译排序(&T)按文件顺序排序(&F)按源文排序(&S)按翻译排序(&T)源代码字符集:源代码提取器用于在源代码文件中找到可翻译字符串和提取它们,以便它们可以被翻译。源代码不可用。源文件源文件出现:源文本源文本 — %s源文本:源关键字源路径源关键字源路径朗读拼写检查被禁用,因为 %s 的字典没有安装。拼写和语法开始朗读停止朗读存储翻译:要查找的字符串替换建议如果翻译语言设置不正确,建议将不可用。其他特性(例如复数形式)也可能受到影响。支持 GNU gettext 工具可识别的所有编程语言(PHP、C/C++、C#、Perl、Python、Java、JavaScript 等)。同步与 Crowdin 同步与 Crowdin 同步翻译同步中同步出错与 %s 同步失败。正在与 %s 同步…与 Crowdin 同步失败。在 Plural-Forms 头中存在语法错误 ("%s")。翻译记忆利用现有的 PO 文件或者 POT 模板创建一个新的翻译。从现有的 POT 模板中提取可翻译的字符串。团队名称和电子邮件地址或 URL文本替换翻译记忆库中没有包含任何与此文件内容相似的字符串。 Poedit 需要通过你手动翻译的文件来得到充分的学习,然后才能在半自动翻译中发挥作用。不能按编目设置中所指定的将编目保存为 “%s” 字符集。 将保存为 UTF-8 字符集,设置也会相应地被修改。文件不能编译成 MO 格式并使用。该文件无法打开。该文件中包含重复的项目,这是不允许的,并且影响了该文件被使用。Poedit 修复了该问题,但您应该审阅任何已被标记为“需要处理”的翻译和纠正它们(如有必要)。该文件可能已损坏或不是 Poedit 所能识别的格式。文件被编译成 MO 格式,但它可能不能正确工作。文件已安全地保存,并编译成 MO 格式的文件,但它可能不能正常工作。文件已安全地保存,但它不能被编译成 MO 格式并使用。文件已被安全地保存。现在不准确的翻译对应的旧的源文本(在此次更新的变更前)。填补这个编目的最简单的办法是从一个 POT 文件更新:翻译没有以空格开头。翻译以换行符结尾,但是源文本没有换行符。翻译以空格结尾,但是源文本没有空格。翻译以“%s”结尾,但是源文本是“%s”。翻译结尾缺少换行。翻译结尾缺少空格。翻译可以使用了,不过还有 %d 个条目没有被翻译。翻译可以使用了。翻译应以“%s”结尾。翻译不应以“%s”结尾。翻译应该为一个句子。翻译开头应该为小写字母。翻译开头存在源文本没有的空格。这些翻译被标记为需要处理,因为其可能不准确。请检查它们的准确性。找不到翻译文件,这不正常在精确格式化文件时有一个问题(但文件保存正确)。加载编目时遇到错误。有些数据可能缺失或损坏。这些设置会影响 PO 文件的内部格式。如果你有特定的要求例如版本控制时,调整它们。源文件中不再有这些字串。 Poedit 现在将从编目中移除这些字串。在源文中找到这些字串,但编目中没有。 Poedit 现在将把这些字串添加到编目。这个编目有带有复数形式的条目,但没有已配置的 Plural-Forms 头。只能在 Crowdin 的网页界面中编辑此文件。这是用来启动提取器的命令。 %o 提取到输出文件的名称,%K 关键字的列表,%F 输入文件的列表,%C 字符集标记(见下面)。此项目没有可以在 Poedit 中翻译的文件。Poedit 的翻译记忆库中找到此字符串。仅在指定了源代码字符集时,这才被附加到命令行。 %c 展开成字符集值。对于每个输入文件,这将被附加到命令行一次。 %f 展开成文件名。对于每个关键字,这将被附加到命令行一次。 %k 展开成关键字。总计转换翻译条目不会在 Gettext 系统中手动添加条目,但是会自动从源代码中提取。 这样一来,我们可以掌握最新和最准确的需要翻译的条目。 翻译人员通常使用由开发商为他们准备PO模板文件(POTS)。已翻译:%d 共计 %d (%d %%)翻译翻译记忆翻译需要处理(&W)翻译属性翻译需要处理(&W)翻译属性翻译建议:翻译 — %s翻译:不能从源代码更新翻译,因为在目录属性中指定的位置没有发现代码。二UTF-8(推荐)撤销发生了不能处理的异常:%sUnix(推荐)未翻译Up更新更新全部更新项目中的所有编目更新编目 - 将其与源文同步从 POT 文件更新(&P)…从 POT 文件更新(&P)…从 POT 文件更新更新摘要更新正在更新编目更新失败更新编目失败。点击“详细资料 >>”了解详情。正在更新用户信息…正在上传翻译…使用自定义表达式使用自定义的列表字体:使用自定义的文本框字体:使用默认语言使用这些关键字(函数名)来识别源文件中的可翻译字串:使用翻译记忆验证验证结果版本 %s正在等待身份验证…欢迎使用 PoeditCrowdin 是什么?当从源文更新时仅整个单词窗口Windows全字匹配换行在:是你也可以直接从源代码中提取可翻译的字符串:您不能拖放一个以上的文件到 Poedit 窗口。您必须重新启动 Poedit 才能使这个更改生效。你的名字如果您不保存,您的更改将丢失。你的名称和电子邮件地址仅用于设置 GNU gettext 文件的 Last-Translator 信息。零缩放altctrl不删除临时文件(用于调试)例如: nplurals=2; plural=(n > 1);在文件内模糊匹配跳转到给定行号项目处理 poedit:// URI根据翻译记忆预翻译shift未知语言your_email@example.com“%s”不是一个有效的 POT 文件。poedit-2.0.6/locales/sr.po0000664000372000037200000016736213230131554012346 00000000000000msgid "" msgstr "" "Project-Id-Version: poedit\n" "Report-Msgid-Bugs-To: help@poedit.net\n" "POT-Creation-Date: 2017-12-05 15:52+0100\n" "PO-Revision-Date: 2017-07-27 03:15-0400\n" "Last-Translator: vslavik \n" "Language-Team: Serbian (Cyrillic)\n" "Language: sr_SP\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" "%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" "X-Generator: crowdin.com\n" "X-Crowdin-Project: poedit\n" "X-Crowdin-Language: sr\n" "X-Crowdin-File: /locales/poedit.pot\n" msgid "Hide this notification message" msgstr "Сакриј ово обавештење" msgid "Don’t Show Again" msgstr "Не приказуј поново" msgid "Don’t show again" msgstr "Не приказуј поново" #, c-format msgid "(New: %i, obsolete: %i)" msgstr "(нових: %i, застарелих: %i)" msgid "Updating catalog" msgstr "Ажурирање каталога" msgid "Collecting source files…" msgstr "Прикупљам изворне датотеке..." msgid "Extracting translatable strings…" msgstr "Извлачим преводиве ниске..." msgid "Failed to load extracted catalog." msgstr "Не могу да учитам издвојени каталог." msgid "Merging differences…" msgstr "Упоређујем разлике..." #, c-format msgid "“%s” is not a valid POT file." msgstr "„%s“ није ваљана датотека ПОТ-а." #, c-format msgid "%i line of file “%s” was not loaded correctly." msgid_plural "%i lines of file “%s” were not loaded correctly." msgstr[0] "%i линија датотеке „%s“ није учитана тачно." msgstr[1] "%i линије датотеке „%s“ нису учитане тачно." msgstr[2] "%i линија датотеке „%s“ нису учитане тачно." #, c-format msgid "Line %d of file “%s” is corrupted (not valid %s data)." msgstr "Линија %d датотеке „%s“ је кварна (нису ваљани подаци %s)." #, c-format msgid "Malformed header: “%s”" msgstr "Кварно заглавље „%s“" msgid "" "Broken catalog file: singular form msgstr used together with msgid_plural" msgstr "" "Грешка у датотеци каталога: msgstr за једнински облик је употребљен заједно " "са msgid_plural" msgid "Broken catalog file: plural form msgstr used without msgid_plural" msgstr "" "Грешка у датотеци каталога: msgstr за множинске облике је употребљен без " "msgid_plural" msgid "" "There were errors when loading the catalog. Some data may be missing or " "corrupted as the result." msgstr "" "Дошло је до проблема при учитавању каталога. Неки подаци можда недостају или " "су оштећени." #, c-format msgid "Couldn’t load file %s, it is probably corrupted." msgstr "Нисам успео учитати датотеку „%s“, вероватно је неисправна" #, c-format msgid "" "File “%s” is read-only and cannot be saved.\n" "Please save it under different name." msgstr "" #, c-format msgid "Couldn’t save file %s." msgstr "Нисам успео сачувати датотеку„%s“." msgid "" "There was a problem formatting the file nicely (but it was saved all right)." msgstr "" "Дошло је до проблема при форматирању датотеке, али је успешно сачувана." #, c-format msgid "" "The catalog couldn’t be saved in “%s” charset as specified in catalog " "settings.\n" "\n" "It was saved in UTF-8 instead and the setting was modified accordingly." msgstr "" msgid "Error saving catalog" msgstr "Грешка при чувању каталога" msgid "PO Translation Files" msgstr "PO датотеке превода" msgid "POT Translation Templates" msgstr "POT шаблони превода" msgid "All Translation Files" msgstr "Све датотеке превода" msgid "(Use default language)" msgstr "(подразумевани језик)" msgid "Select your preferred language" msgstr "Избор жељеног језика" msgid "Language selection" msgstr "Избор језика" msgid "You must restart Poedit for this change to take effect." msgstr "" "Потребно је да поново покренете Poedit како би ова измена ступила на снагу." msgid "Syncing" msgstr "Усклађивање" #. TRANSLATORS: %s is a cloud destination, e.g. "Crowdin" or ftp.wordpress.com etc. #, c-format msgid "Syncing with %s…" msgstr "Усклађујем са %s…" #. TRANSLATORS: %s is a cloud destination, e.g. "Crowdin" or ftp.wordpress.com etc. #, c-format msgid "Syncing with %s failed." msgstr "Усклађивање са %s није успело." msgid "Syncing error" msgstr "Грешка усклађивања" msgid "Downloading translations is disabled in this project." msgstr "Преузимање превода је онемогућено у овом пројекту." msgid "Not authorized, please sign in again." msgstr "Немате овлашћења. Поново се пријавите." msgid "" "Crowdin is an online localization management platform and collaborative " "translation tool. Poedit can seamlessly sync PO files managed at Crowdin." msgstr "" "Crowdin је интернет платформа за заједничку локализацију и превод. Poedit " "може аутоматски да синхронизује PO датотеке са Crowdin-ом." msgid "Sign In" msgstr "Пријави ме" msgid "Sign in" msgstr "Пријави ме" msgid "Sign Out" msgstr "Одјави ме" msgid "Sign out" msgstr "Одјави ме" msgid "Waiting for authentication…" msgstr "Чекам на потврду аутентичности…" msgid "Updating user information…" msgstr "Ажурирам информације о кориснику…" msgid "Signed in as:" msgstr "Пријављени сте као:" msgid "Learn More About Crowdin" msgstr "Детаљније о Crowdin-у" msgid "Learn more about Crowdin" msgstr "Детаљније о Crowdin-у" msgid "Sign in to Crowdin" msgstr "Пријава на Crowdin" msgid "Open Crowdin translation" msgstr "Отвори превод са Crowdin-а" msgid "Project:" msgstr "Пројекат:" msgid "Language:" msgstr "Језик:" msgid "File:" msgstr "Датотека:" msgid "No translation projects listed in your Crowdin account." msgstr "Нема преводилачких пројеката на вашем налогу на Crowdin-у." msgid "This project has no files that can be translated in Poedit." msgstr "У овом пројекту нема датотека које је могуће превести у Poedit-у." msgid "This file can only be edited in Crowdin’s web interface." msgstr "Ову датотеку је могуће уређивати само на Crowdin-у." msgid "Downloading latest translations…" msgstr "Преузимам најновије преводе…" msgid "Syncing with Crowdin failed." msgstr "Синхронизација са Crowdin-ом није успела." msgid "Crowdin error" msgstr "Грешка на Crowdin-у" msgid "Uploading translations…" msgstr "Отпремам преводе…" msgid "&Copy" msgstr "&Копирај" msgid "Learn more" msgstr "Детаљније" msgid "Learn More" msgstr "Детаљније" msgid "&Help" msgstr "&Помоћ" msgid "MO files can’t be directly edited in Poedit." msgstr "MO датотеке се не могу директно уређивати у Poedit-у." msgid "Error opening file" msgstr "Грешка при отварању датотеке" msgid "" "Please open and edit the corresponding PO file instead. When you save it, " "the MO file will be updated as well." msgstr "" "Отворите и уређујте одговарајућу PO датотеку. Када је сачувате, MO датотека " "ће такође бити ажурирана." msgid "don’t delete temporary files (for debugging)" msgstr "не бриши привремене датотеке (ради праћења грешака)" msgid "handle a poedit:// URI" msgstr "отварај адресу poedit://" msgid "go to item at given line number" msgstr "" msgid "Failed to communicate with Poedit process." msgstr "Не могу да комуницирам са процесом Poedit-а." #, c-format msgid "Unhandled exception occurred: %s" msgstr "Дошло је до неочекиваног изузетка: %s" msgid "Open catalog" msgstr "Отварање каталога" #, c-format msgid "File “%s” doesn’t exist." msgstr "Датотека „%s“ не постоји." msgid "Poedit is an easy to use translations editor." msgstr "Poedit је једноставан уређивач превода." msgid "Catalogs Manager" msgstr "Менаџер каталога" msgid "Check for Updates…" msgstr "Провери надградње..." msgid "&Edit" msgstr "&Уређивање" msgid "Undo" msgstr "Опозови" msgid "Redo" msgstr "Понови" msgid "Paste and Match Style" msgstr "Налепи у тренутном стилу" msgid "Delete" msgstr "&Избриши" msgid "Spelling and Grammar" msgstr "Провера правописа" msgid "Show Spelling and Grammar" msgstr "Прикажи &правописне грешке" msgid "Check Document Now" msgstr "Провери документ" msgid "Check Spelling While Typing" msgstr "Провери правопис при уносу" msgid "Check Grammar With Spelling" msgstr "Провери граматику уз правопис" msgid "Correct Spelling Automatically" msgstr "Аутоматски исправи правописне грешке" msgid "Substitutions" msgstr "Замене" msgid "Show Substitutions" msgstr "Прикажи &замене" msgid "Smart Copy/Paste" msgstr "Паметно копирање/налепљивање" msgid "Smart Quotes" msgstr "Паметни наводници" msgid "Smart Dashes" msgstr "Паметне црте" msgid "Smart Links" msgstr "Паметни линкови" msgid "Text Replacement" msgstr "Замена текста" msgid "Transformations" msgstr "Трансформације" msgid "Make Upper Case" msgstr "Претвори у велика слова" msgid "Make Lower Case" msgstr "Претвори у мала слова" msgid "Capitalize" msgstr "Претвори у велика почетна слова" msgid "Speech" msgstr "Говор" msgid "Start Speaking" msgstr "Покрени модул за говор" msgid "Stop Speaking" msgstr "Заустави модул за говор" msgid "&View" msgstr "&Приказ" msgid "Enter Full Screen" msgstr "Пређи у режим целог екрана" msgid "Window" msgstr "Прозор" msgid "Minimize" msgstr "Умањи" msgid "Zoom" msgstr "Зумирање" msgid "Bring All to Front" msgstr "Постави све у предњи план" #. TRANSLATORS:File kind displayed in Finder/Explorer msgid "PO Translation" msgstr "PO превод" msgid "The file cannot be opened." msgstr "Не могу да отворим датотеку." msgid "Invalid file" msgstr "Неисправна датотека" msgid "" "The file may be either corrupted or in a format not recognized by Poedit." msgstr "Датотека је оштећена или је у формату који Poedit не препознаје." msgid "You can’t drop more than one file on Poedit window." msgstr "" #, c-format msgid "File “%s” is not a message catalog." msgstr "Датотека „%s“ није збирка ниски." msgid "Poedit" msgstr "Poedit" msgid "&File" msgstr "&Датотека" msgid "&Go" msgstr "&Навигација" #. TRANSLATORS: %s is language name in its basic form (as you #. would see e.g. in a list of supported languages). You may need #. to rephrase it, e.g. to an equivalent of "for language %s". #, c-format msgid "" "Spellchecking is disabled, because the dictionary for %s isn’t installed." msgstr "" "Провера правописа је онемогућена јер није инсталиран речник за %s језик." msgid "Install" msgstr "Инсталирај" msgid "Catalog modified. Do you want to save changes?" msgstr "Каталог је измењен. Желите ли да сачувате измене?" msgid "Save changes" msgstr "Чување измена" msgid "Your changes will be lost if you don’t save them." msgstr "Измене ће бити изгубљене ако их не сачувате." msgid "Save" msgstr "&Сачувај" msgid "Don’t save" msgstr "Не чувај" msgid "Don’t Save" msgstr "Не чувај" msgid "Save as…" msgstr "Сачувај као..." msgid "Compile to…" msgstr "Преведи у..." msgid "Compiled Translation Files" msgstr "Компилиране датотеке превода" msgid "Export as…" msgstr "Извези као..." msgid "HTML Files" msgstr "HTML датотеке" msgid "Open catalog template" msgstr "Отварање шаблона каталога" msgid "Source code not available." msgstr "Изворни кôд је недоступан." msgid "Updating failed" msgstr "Ажурирање није успело" msgid "" "Translations couldn’t be updated from the source code, because no code was " "found in the location specified in the catalog’s Properties." msgstr "" "Преводи не могу бити ажурирани из изворног кода јер он није пронађен на " "локацији која је наведена у својствима каталога." msgid "Entries in the catalog are probably incorrect." msgstr "Уноси у каталогу су вероватни нетачни." msgid "Updating the catalog failed. Click on 'Details >>' for details." msgstr "" "Не могу да ажурирам каталог. За више информација, кликните на „Детаљи >>“." #, c-format msgid "%d issue with the translation found." msgid_plural "%d issues with the translation found." msgstr[0] "У преводу је пронађен %d проблем." msgstr[1] "У преводу су пронађена %d проблема." msgstr[2] "У преводу је пронађено %d проблема." msgid "Validation results" msgstr "Резултати провере ваљаности" msgid "" "Entries with errors were marked in red in the list. Details of the error " "will be shown when you select such an entry." msgstr "" "Уноси са грешкама су означени црвеном бојом.\n" "Детаљи грешке ће бити приказани када изаберете такав унос." msgid "The file was saved safely." msgstr "Датотека је сачувана." msgid "" "The file was saved safely and compiled into the MO format, but it will " "probably not work correctly." msgstr "" "Датотека је сачувана и компилирана у MO формат, али вероватно неће исправно " "радити." msgid "" "The file was saved safely, but it cannot be compiled into the MO format and " "used." msgstr "" "Датотека је сачувана, али не може бити компилирана у MO формат за каснију " "употребу." msgid "" "The file was compiled into the MO format, but it will probably not work " "correctly." msgstr "" "Датотека је компилирана у MO формат, али вероватно неће исправно радити." msgid "The file cannot be compiled into the MO format and used." msgstr "Датотека не може бити компилирана у MO формат за каснију употребу." msgid "No problems with the translation found." msgstr "У преводу нема проблема." #, c-format msgid "The translation is ready for use, but %d entry is not translated yet." msgid_plural "" "The translation is ready for use, but %d entries are not translated yet." msgstr[0] "Превод је спреман за коришћење, али %d унос још није преведен." msgstr[1] "Превод је спреман за коришћење, али %d уноса још нису преведена." msgstr[2] "Превод је спреман за коришћење, али %d уноса још није преведено." msgid "The translation is ready for use." msgstr "Превод је спреман за коришћење." #, c-format msgid "Poedit automatically fixed invalid content in the file “%s”." msgstr "Poedit је аутоматски исправио неисправан садржај у датотеци „%s“." msgid "" "The file contained duplicate items, which is not allowed in PO files and " "would prevent the file from being used. Poedit fixed the issue, but you " "should review translations of any items marked as needing work and correct " "them if necessary." msgstr "" msgid "Language of the translation isn’t set." msgstr "Језик још увек није постављен." msgid "Set Language" msgstr "Постави језик" msgid "Set language" msgstr "Постави језик" #. TRANSLATORS: This is shown underneath "Language of the translation isn't set (or ...is the same as source language)." msgid "" "Suggestions are not available if the translation language is not set " "correctly. Other features, such as plural forms, may be affected as well." msgstr "" "Предлози нису доступни ако језик превода није исправно постављен. Друге " "функције такође могу бити недоступне, попут множинских облика." msgid "Language of the translation is the same as source language." msgstr "Језик превода се поклапа са изворним језиком." msgid "Fix Language" msgstr "Исправи језик" msgid "Fix language" msgstr "Исправи језик" msgid "" "This catalog has entries with plural forms, but doesn’t have Plural-Forms " "header configured." msgstr "" "Ова збирка има уносе у облицима множине, али нема подешено заглавље облика " "множине." msgid "" "Entries in this catalog have different plural forms count from what " "catalog’s Plural-Forms header says" msgstr "" "Уноси у овој збирци имају другачије бројеве облика множине од оног које је " "уписано у заглављу облика множине." msgid "Required header Plural-Forms is missing." msgstr "Недостаје обавезно заглавље за множинске облике." #, c-format msgid "Syntax error in Plural-Forms header (\"%s\")." msgstr "Синтактичка грешка у заглављу за множинске облике („%s“)." msgid "Fix the Header" msgstr "Исправи заглавље" msgid "Fix the header" msgstr "Исправи заглавље" #. TRANSLATORS: %s is language name in its basic form (as you #. would see e.g. in a list of supported languages). You may need #. to rephrase it, e.g. to an equivalent of "for language %s". #, c-format msgid "Plural forms expression used by the catalog is unusual for %s." msgstr "Израз за множинске облике у каталогу није уобичајен за %s језик." #. TRANSLATORS: A verb, shown as action button with ""Plural forms expression used by the catalog is unusual for %s.")" msgid "Review" msgstr "Провери" #, c-format msgid "Error loading message catalog file “%s”." msgstr "Десила се грешка при учитавању датотеке збирке „%s“." #, c-format msgid "Translated: %d of %d (%d %%)" msgstr "Преведено: %d од %d (%d %%)" #, c-format msgid "Remaining: %d" msgstr "Преостало: %d" #, c-format msgid "%d error" msgid_plural "%d errors" msgstr[0] "%d грешка" msgstr[1] "%d грешке" msgstr[2] "%d грешака" #, c-format msgid "%d entry" msgid_plural "%d entries" msgstr[0] "%d унос" msgstr[1] "%d уноса" msgstr[2] "%d уноса" msgid " (unsaved)" msgstr " (није сачувано)" msgid " (modified)" msgstr " (измењено)" #, c-format msgid "Failed to update translation memory: %s" msgstr "Не могу да ажурирам преводилачку меморију: %s" msgid "Purge deleted translations" msgstr "Чишћење избрисаних превода" msgid "Do you want to remove all translations that are no longer used?" msgstr "Желите ли да уклоните све преводе који се више не користе?" msgid "" "If you continue with purging, all translations marked as deleted will be " "permanently removed. You will have to translate them again if they are added " "back in the future." msgstr "" "Ако наставите са чишћењем, сви преводи означени као избрисани ће бити трајно " "уклоњени. Мораћете их поново превести ако буду враћени у будућности." msgid "Keep" msgstr "&Задржи" msgid "Purge" msgstr "&Очисти" msgid "Copy from source text" msgstr "&Копирај из изворног текста" msgid "Copy from Source Text" msgstr "&Копирај из изворног текста" #. TRANSLATORS: This is the key shortcut used in menus on Windows, some languages call them differently #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Ctrl+" msgstr "Ctrl+" msgid "Clear translation" msgstr "&Очисти превод" msgid "Clear Translation" msgstr "&Очисти превод" msgid "Edit comment" msgstr "Уређивање коментара" msgid "Edit Comment" msgstr "Уреди коментар" msgid "References:" msgstr "Референце:" msgid "&Bookmarks" msgstr "&Обележивачи" #. TRANSLATORS: This is the key shortcut used in menus on Windows, some languages call them differently #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Alt+" msgstr "Alt+" #, c-format msgid "Set bookmark %i" msgstr "Постави обележивач %i" #, c-format msgid "Go to bookmark %i" msgstr "Пређи на обележивач %i" #, c-format msgid "Set Bookmark %i" msgstr "Постави обележивач %i" #, c-format msgid "Go to Bookmark %i" msgstr "Пређи на обележивач %i" msgid "Hide Sidebar" msgstr "Сакриј бочну траку" msgid "Show Sidebar" msgstr "Прикажи бочну траку" msgid "Hide Status Bar" msgstr "Сакриј статусну траку" msgid "Show Status Bar" msgstr "Прикажи статусну траку" msgid "Source text:" msgstr "Изворни текст:" msgid "Singular:" msgstr "Једнина:" msgid "Plural:" msgstr "Множина:" msgid "Translation:" msgstr "Превод:" msgid "Pre-translated" msgstr "Претпревод" msgid "Needs Work" msgstr "Захтева дораду" #. TRANSLATORS: This indicates that the string's translation isn't final #. and has known problems. For example, it might be machine translated or #. fuzzy matched from an older string. The translation should be short and #. convey this. If it's problematic to translate it, "Needs review" is #. acceptable substitute, but note that the meaning is subtly different: #. "needs review" implies that somebody else should review the string after #. I am done with it (i.e. consider it good), while "needs work" implies I #. need to return to it and finish the translation. msgid "Needs work" msgstr "Требује рад" msgid "" "POT files are only templates and don’t contain any translations themselves.\n" "To make a translation, create a new PO file based on the template." msgstr "" "POT датотеке су само шаблони и они не садрже преводе.\n" "Да бисте израдили превод, направите нову PO датотеку засновану на шаблону." msgid "Create New Translation" msgstr "Направи нови превод" msgid "Create new translation" msgstr "Направи нови превод" msgid "Everything" msgstr "Све" #, c-format msgid "Form %i" msgstr "Облик %i" msgid "Singular" msgstr "Једнина" msgid "Zero" msgstr "Нула" msgid "One" msgstr "Један" msgid "Two" msgstr "Два" msgid "Plural" msgstr "Множина" msgid "Other" msgstr "Друго" #, c-format msgid "%s Format" msgstr "Облик %s" #. TRANSLATORS: %s is replaced with language name, e.g. "PHP" or "C", so "PHP Format" etc." #, c-format msgid "%s format" msgstr "облик „%s“" msgid "Source text" msgstr "Изворни текст" #, c-format msgid "Translation — %s" msgstr "Превод – %s" msgid "ID" msgstr "ID" #, c-format msgid "Source text — %s" msgstr "Изворни текст – %s" msgid "unknown language" msgstr "непознат језик" #, c-format msgid "Failed command: %s" msgstr "Неуспела команда: %s" msgid "Failed to merge gettext catalogs." msgstr "Не могу да објединим gettext каталоге." msgid "Source file" msgstr "Изворна датотека" msgid "Source file occurrence:" msgstr "Појављивање изворне датотеке:" msgid "Open in Editor" msgstr "Отвори у уређивачу" msgid "Open in editor" msgstr "Отвори у уређивачу" msgid "No references for the selected item." msgstr "За изабрану ставку нема референци." #, c-format msgid "Error opening file %s!" msgstr "Грешка при отварању датотеке „%s“." msgid "Find" msgstr "П&ронађи" msgid "Replace" msgstr "Замени" #. TRANSLATORS: Expander in Find window for additional options (case sensitive etc.) msgid "Options" msgstr "Опције" msgid "Ignore case" msgstr "Занемари величину слова" msgid "Wrap around" msgstr "Тражи укруг" msgid "Whole words only" msgstr "&Само целе речи" msgid "Find in source texts" msgstr "&Изворни текст" msgid "Find in translations" msgstr "&Преводи" msgid "Find in comments" msgstr "&Коментари" msgid "Close" msgstr "&Затвори" msgid "Replace &All" msgstr "Замени &све" msgid "Replace &all" msgstr "Замени &све" msgid "&Replace" msgstr "&замени" msgid "< &Previous" msgstr "< П&ретходно" msgid "&Next >" msgstr "&Следеће >" msgid "String to find" msgstr "Стринг за претрагу" msgid "Replacement string" msgstr "Стринг за замену" #, c-format msgid "Cannot execute program: %s" msgstr "Не могу да извршим програм: %s" msgid "Language Code or Name (e.g. en_GB)" msgstr "Име или кôд језика (нпр. sr_RS)" msgid "Translation Language" msgstr "Језик превода" msgid "Language of the translation:" msgstr "Језик превода:" msgid "Poedit - Catalogs manager" msgstr "Poedit – менаџер каталога" msgid "Catalog" msgstr "Каталог" msgid "Total" msgstr "Укупно" msgid "Untrans" msgstr "Непреведено" msgid "Errors" msgstr "Грешке" msgid "Last modified" msgstr "Последња измена" msgid "Select directory" msgstr "Избор фасцикле" msgid "Directories:" msgstr "Фасцикле:" msgid "" msgstr "<неименовано>" msgid "Do you want to delete the project?" msgstr "Желите ли да избришете пројекат?" msgid "Confirmation" msgstr "Потврда" msgid "" "Do you really want to do mass update of\n" "all catalogs in this project?" msgstr "Заиста желите да ажурирате све каталоге у овом пројекту?" msgid "Information about the translator" msgstr "Информације о преводиоцу" msgid "Name:" msgstr "Име:" msgid "Your Name" msgstr "Ваше име" msgid "Email:" msgstr "Имејл:" msgid "your_email@example.com" msgstr "adresa@primer.rs" msgid "" "Your name and email address are only used to set the Last-Translator header " "of GNU gettext files." msgstr "" "Ваше име и имејл-адреса се користе само за постављање последњег преводиоца у " "заглављу GNU gettext датотека." msgid "Editing" msgstr "Уређивање" msgid "Automatically compile MO file when saving" msgstr "Аутоматски компилирај MO датотеку при чувању" msgid "Show summary after catalog update" msgstr "Прикажи &резиме након ажурирања каталога" msgid "Check spelling" msgstr "Проверавај правопис" msgid "Always change focus to text input field" msgstr "Увек пребаци &фокус на поље за унос текста" msgid "" "Never let the list of strings take focus. If enabled, you must use Ctrl-" "arrows for keyboard navigation but you can also type text immediately, " "without having to press Tab to change focus." msgstr "" "Не дозвољава да списак стрингова заузме фокус. Ако је омогућено, мораћете да " "користите Ctrl и стрелице за навигацију, али нећете морати да притискате Tab " "за унос текста." msgid "Appearance" msgstr "Изглед" msgid "Use custom list font:" msgstr "Фонт за списак:" msgid "Use custom text fields font:" msgstr "Фонт за текстуална поља:" msgid "Change UI language" msgstr "&Промени језик интерфејса" #. TRANSLATORS: This is a note appended to "Check spelling" when running on older Windows versions msgid "(requires Windows 8 or newer)" msgstr "(Windows 8 или новији)" msgid "General" msgstr "Опште" msgid "Use translation memory" msgstr "&Користи преводилачку меморију" msgid "Learn From Files…" msgstr "Проучи из датотека..." msgid "Learn from files…" msgstr "Проучи из датотека..." #. TRANSLATORS: This is a button that deletes everything in the translation memory (i.e. clears/resets it). msgid "Reset" msgstr "Очисти" #. TRANSLATORS: Followed by "match translations within the file" or "pre-translate from TM" msgid "When updating from sources" msgstr "" #. TRANSLATORS: Preceded by "When updating from sources" msgid "fuzzy match within the file" msgstr "" #. TRANSLATORS: Preceded by "When updating from sources" msgid "pre-translate from TM" msgstr "" msgid "" "Poedit can attempt to fill in new entries from only previous translations in " "the file or from your entire translation memory. Using the TM won’t be very " "effective if it’s near-empty, but it will get better as you add more " "translations to it." msgstr "" msgid "Stored translations:" msgstr "Сачувани преводи:" msgid "Database size on disk:" msgstr "Величина базе података:" msgid "Select translation files to import" msgstr "Избор датотеке превода за увоз" msgid "Translation Memory" msgstr "Преводилачка меморија" msgid "Importing translations…" msgstr "Увозим преводе..." msgid "Finalizing…" msgstr "Завршавам..." msgid "Reset translation memory" msgstr "Очисти преводилачку меморију" msgid "Are you sure you want to reset the translation memory?" msgstr "Желите ли да очистите преводилачку меморију?" msgid "" "Resetting the translation memory will irrevocably delete all stored " "translations from it. You can’t undo this operation." msgstr "" "Ако поништите преводилачку меморију, обрисаћете све преводе у њој. Ова радња " "је неповратна." msgid "Cancel" msgstr "&Откажи" #. TRANSLATORS: This is abbreviation of "Translation Memory" used in Preferences on macOS. #. Long text looks weird there, too short (like TM) too, but less so. "General" is about ideal #. length there. msgid "TM" msgstr "Меморија" msgid "" "Source code extractors are used to find translatable strings in the source " "code files and extract them so that they can be translated." msgstr "" "Модули за издвајање се користе за проналажење и издвајање стрингова за " "превођење у датотекама изворног кода." msgid "Custom Extractors:" msgstr "" msgid "Custom extractors:" msgstr "" msgid "Edit…" msgstr "Уреди..." msgid "GNU gettext" msgstr "Опширније о Гнуовом геттексту" msgid "" "Supports all programming languages recognized by GNU gettext tools (PHP, C/C+" "+, C#, Perl, Python, Java, JavaScript and others)." msgstr "" msgid "Delete extractor" msgstr "Обриши издвајач" #, c-format msgid "Are you sure you want to delete the “%s” extractor?" msgstr "Заиста желите да обришете издвајач „%s“?" msgid "Extractors" msgstr "Издвајачи" msgid "Accounts" msgstr "Налози" msgid "Automatically check for updates" msgstr "Аутоматски проверавај има ли ажурирања" msgid "Include beta versions" msgstr "Укључи &бета верзије" msgid "" "Beta versions contain the latest new features and improvements, but may be a " "bit less stable." msgstr "" "Бета верзије садрже најновије функције и побољшања, али могу бити мање " "стабилне." msgid "Updates" msgstr "Ажурирања" msgid "" "These settings affect internal formatting of PO files. Adjust them if you " "have specific requirements e.g. because of version control." msgstr "" "Ове поставке утичу на унутрашње обликовање PO датотека. Прилагодите их " "својим потребама, нпр. ако користите систем за контролу верзија." msgid "Line endings:" msgstr "Завршеци редова:" msgid "Unix (recommended)" msgstr "Unix (препоручује се)" msgid "Windows" msgstr "Windows" #. TRANSLATORS: Followed by text control for entering number; wraps text at given width msgid "Wrap at:" msgstr "Прелом:" msgid "Preserve formatting of existing files" msgstr "Очувај обликовање постојећих датотека" msgid "Advanced" msgstr "Напредно" msgid "Pre-translating…" msgstr "Претпревод..." #, c-format msgid "Pre-translated %u string" msgid_plural "Pre-translated %u strings" msgstr[0] "" msgstr[1] "" msgstr[2] "" #. TRANSLATORS: This is a somewhat common term describing the action where #. you apply the translation memory and/or machine translation to all of the #. strings you're translating as the first step, followed by correcting, #. improving etc., i.e. actually translating the strings. This may be tricky #. to express in other languages as simply as in English, but please try to #. keep it similarly concise. Please try to avoid, if possible, describing it #. as "auto-translation" and similar, because such terminology would mislead #. some users into thinking it's all that needs to be done (spoken from #. experience). "Pre-translate" nicely expresses that it's only the step done #. *before* actual translation. msgid "Pre-translate" msgstr "Претпреведи" msgid "Only fill in exact matches" msgstr "Копирај само тачна подударања" msgid "" "By default, inaccurate results are filled in as well and marked as needing " "work. Check this option to only include accurate matches." msgstr "" msgid "Don’t mark exact matches as needing work" msgstr "" msgid "" "Only enable if you trust the quality of your TM. By default, all matches " "from the TM are marked as needing work and should be reviewed before use." msgstr "" msgid "" "Pre-translation automatically finds exact or fuzzy matches for untranslated " "strings in the translation memory and fills in their translations." msgstr "" #, c-format msgid "%d entry was pre-translated." msgid_plural "%d entries were pre-translated." msgstr[0] "" msgstr[1] "" msgstr[2] "" msgid "" "The translations were marked as needing work, because they may be " "inaccurate. You should review them for correctness." msgstr "" msgid "No entries could be pre-translated." msgstr "Нема претпреводивих ставки." msgid "" "The TM doesn’t contain any strings similar to the content of this file. It " "is only effective for semi-automatic translations after Poedit learns enough " "from files that you translated manually." msgstr "" "Преводилачка меморија не садржи стрингове који су слични онима у тренутној " "датотеци. Ова опција је корисна за полуаутоматске преводе тек након што " "Poedit научи довољно из датотека које сте ручно превели." msgid "" "Drag and Drop Folders Here\n" "\n" "or use the + button" msgstr "" "Овде превуците фасцикле\n" "\n" "или кликните на дугме „+“" msgid "" "Drag and drop folders here\n" "\n" "or use the + button" msgstr "" "Овде превуците фасцикле\n" "\n" "или кликните на дугме „+“" msgid "Add Folders…" msgstr "Додај омоте..." msgid "Add folders…" msgstr "Додај омоте..." msgid "Add Files…" msgstr "Додај датотеке..." msgid "Add files…" msgstr "Додај датотеке..." msgid "Add Wildcard…" msgstr "" msgid "Add wildcard…" msgstr "" msgid "Paths" msgstr "Путање" msgid "Excluded paths" msgstr "Изузете путање" msgid "Advanced extraction settings" msgstr "" msgid "Extract notes for translators from:" msgstr "" msgid "Comments prefixed with:" msgstr "" msgid "All comments" msgstr "Све напомене" msgid "Additional xgettext flags:" msgstr "" msgid "Additional keywords" msgstr "Додатне кључне речи" msgid "Name of the project the translation is for" msgstr "Име пројекта који се преводи." msgid "Team name and email address or URL" msgstr "" msgid "e.g. nplurals=2; plural=(n > 1);" msgstr "нпр. nplurals=2; plural=(n > 1);" msgid "UTF-8 (recommended)" msgstr "UTF-8 (препоручује се)" msgid "Please save the file first. This section cannot be edited until then." msgstr "" "Прво сачувајте датотеку. Овај одељак не може да се уређује док то не урадите." msgid "Not all plural forms are translated." msgstr "Нису сви облици множине преведени" msgid "The translation should start as a sentence." msgstr "Превод би требао почињати као реченица." msgid "The translation should start with a lowercase character." msgstr "Превод би требао почињати као мало слово." msgid "The translation doesn’t start with a space." msgstr "Превод не почиње размаком." msgid "The translation starts with a space, but the source text doesn’t." msgstr "Превод почиње размаком, али извод не." msgid "The translation is missing a newline at the end." msgstr "Превод нема нову линију на крају." msgid "The translation ends with a newline, but the source text doesn’t." msgstr "Превод почиње новом линијом, али извод не." msgid "The translation is missing a space at the end." msgstr "Превод нема празнину на концу." msgid "The translation ends with a space, but the source text doesn’t." msgstr "Превод почиње размаком, али извод не." #, c-format msgid "The translation should end with “%s”." msgstr "Превод би требало да се завршава са „%s“." #, c-format msgid "The translation should not end with “%s”." msgstr "Превод не би требало да се завршава са „%s“." #, c-format msgid "The translation ends with “%s”, but the source text ends with “%s”." msgstr "Превод се завршава са „%s“, али изворни натпис се завршава са „%s“." msgid "Comment:" msgstr "Коментар:" msgid "OK" msgstr "&У реду" msgid "C&lear" msgstr "О&чисти" msgid "Clear the comment" msgstr "Очистите коментар." msgid "New" msgstr "&Ново" msgid "Create new translations project" msgstr "Направите нови пројекат за превођење." msgid "Edit" msgstr "&Уреди" msgid "Edit the project" msgstr "Уредите пројекат." msgid "Delete the project" msgstr "Обришите пројекат." msgid "Update all" msgstr "А&журирај све" msgid "Update all catalogs in the project" msgstr "Ажурирајте све каталоге у пројекту." msgid "Edit project" msgstr "Уређивање пројекта" msgid "Project name:" msgstr "Име пројекта:" msgid "Browse" msgstr "&Потражи…" msgid "Add directory to the list" msgstr "Додајте фасциклу на списак." msgid "&New…" msgstr "" msgid "New from &POT/PO file…" msgstr "" msgid "New From &POT/PO File…" msgstr "" msgid "&Open…" msgstr "" msgid "Open Recent" msgstr "Отварање недавне датотеке" msgid "Open from Crowdin…" msgstr "" msgid "Open From Crowdin…" msgstr "" msgid "&Close" msgstr "&Затвори" msgid "&Save" msgstr "&Сачувај" msgid "Save &as…" msgstr "" msgid "Save &As…" msgstr "" msgid "Compile to MO…" msgstr "" msgid "E&xport as HTML…" msgstr "" msgid "Check for updates…" msgstr "" msgid "&Preferences…" msgstr "" msgid "Catalogs &manager" msgstr "&Управљач каталозима" msgid "Catalogs &Manager" msgstr "&Управљач каталозима" msgid "E&xit" msgstr "&Изађи" msgid "Quit" msgstr "Изађи" msgid "Copy from singular" msgstr "Копирај једнину" msgid "Copy From Singular" msgstr "Копирај једнину" msgid "Translation needs &work" msgstr "Превод захтева &дораду" msgid "Translation Needs &Work" msgstr "Превод захтева &дораду" msgid "Edit &comment" msgstr "Уреди &коментар" msgid "Edit &Comment" msgstr "Уреди &коментар" msgid "Suggestions" msgstr "Предлози" msgid "&Find…" msgstr "" msgid "Replace…" msgstr "" msgid "Find next" msgstr "Пронађи &следеће" msgid "Find previous" msgstr "Пронађи пр&етходно" msgid "Find and Replace…" msgstr "" msgid "Find Next" msgstr "Пронађи &следеће" msgid "Find Previous" msgstr "Пронађи пр&етходно" msgid "&Preferences" msgstr "&Жељене поставке" msgid "Display entry &IDs" msgstr "&Идентификатори ставки" msgid "Display Entry &IDs" msgstr "И&дентификатори ставки" msgid "Sort by &file order" msgstr "Сортирај по &реду у датотеци" msgid "Sort by &File Order" msgstr "Сортирај по &реду у датотеци" msgid "Sort by &source" msgstr "Сортирај по &извору" msgid "Sort by &Source" msgstr "Сортирај по &извору" msgid "Sort by &translation" msgstr "Сортирај по &преводу" msgid "Sort by &Translation" msgstr "Сортирај по &преводу" msgid "&Group by context" msgstr "&Групиши по контексту" msgid "&Group By Context" msgstr "&Групиши по контексту" msgid "Entries with errors first" msgstr "Прво ставке са грешкама" msgid "Entries with Errors First" msgstr "Прво ставке са грешкама" msgid "&Untranslated entries first" msgstr "Прво н&епреведене ставке" msgid "&Untranslated Entries First" msgstr "Прво н&епреведене ставке" msgid "&Show references" msgstr "Прикажи &референце" msgid "&Show References" msgstr "Прикажи &референце" msgid "Show sidebar" msgstr "Прикажи бочну траку" msgid "Show status bar" msgstr "Прикажи статусну траку" msgid "C&atalog" msgstr "&Каталог" msgid "&Update from sources" msgstr "Ажурирај из &извора" msgid "&Update from Sources" msgstr "Ажурирај из &извора" msgid "Update from &POT file…" msgstr "" msgid "Update from &POT File…" msgstr "" msgid "Sync with Crowdin" msgstr "Синхронизуј са Crowdin-ом" msgid "Pre-&translate…" msgstr "" msgid "&Purge deleted translations" msgstr "&Очисти обрисане преводе" msgid "&Purge Deleted Translations" msgstr "&Очисти обрисане преводе" msgid "&Validate translations" msgstr "Провери &ваљаност превода" msgid "&Validate Translations" msgstr "Провери &ваљаност превода" msgid "&Properties…" msgstr "" msgid "&Done and next" msgstr "Примени и &настави" msgid "&Done and Next" msgstr "Примени и &настави" msgid "&Previous translation" msgstr "&Претходни превод" msgid "&Previous Translation" msgstr "&Претходни превод" msgid "&Next translation" msgstr "&Следећи превод" msgid "&Next Translation" msgstr "&Следећи превод" msgid "P&revious unfinished" msgstr "П&ретходна недовршена" msgid "P&revious Unfinished" msgstr "П&ретходна недовршена" msgid "Ne&xt unfinished" msgstr "С&ледећа недовршена" msgid "Ne&xt Unfinished" msgstr "С&ледећа недовршена" msgid "Previous plural form" msgstr "Претходни множински облик" msgid "Previous Plural Form" msgstr "Претходни множински облик" msgid "Next plural form" msgstr "Следећи множински облик" msgid "Next Plural Form" msgstr "Следећи множински облик" msgid "&Online help" msgstr "&Помоћ на мрежи" msgid "&Online Help" msgstr "&Помоћ на мрежи" msgid "&GNU gettext manual" msgstr "Упутство за &GNU gettext" msgid "&GNU gettext Manual" msgstr "Упутство за &GNU gettext" msgid "&About Poedit" msgstr "&О Poedit-у" msgid "&About" msgstr "&О програму" msgid "Extractor setup" msgstr "Подешавање издвајача" msgid "List of extensions separated by semicolons (e.g. *.cpp;*.h):" msgstr "Списак наставака одвојених тачка-зарезом (нпр. *.cpp;*.h):" msgid "Invocation:" msgstr "Позивање" msgid "Command to extract translations:" msgstr "Команда за издвајање изворног текста:" msgid "" "This is the command used to launch the extractor.\n" "%o expands to the name of output file, %K to list\n" "of keywords, %F to list of input files,\n" "%C to charset flag (see below)." msgstr "" "Ова команда се користи за покретање издвајача.\n" "%o означава име излазне датотеке, %K списак\n" "кључних речи, %F списак улазних датотека,\n" "%C ознаку кодирања (погледајте испод)." msgid "An item in keywords list:" msgstr "Ставка у списку кључних речи:" msgid "" "This will be attached to the command line once\n" "for each keyword. %k expands to the keyword." msgstr "" "Ово ће бити прикачено на командну линију по једном\n" "за сваку кључну реч. Ознака %k представља кључну реч." msgid "An item in input files list:" msgstr "Ставка у списку улазних датотека:" #, c-format msgid "" "This will be attached to the command line once\n" "for each input file. %f expands to the filename." msgstr "" "Ово ће бити прикачено на командну линију по једном\n" "за сваку улазну датотеку. Ознака %f представља име датотеке." msgid "Source code charset:" msgstr "Кодирање изворног кода:" #, c-format msgid "" "This will be attached to the command line\n" "only if source code charset was given. %c expands to charset value." msgstr "" "Ово ће бити додато на командну линију\n" "само ако је наведено кодирање извора. Ознака %c представља вредност кодирања." msgid "Catalog properties" msgstr "Својства каталога" msgid "Project name and version:" msgstr "Име пројекта и верзија:" msgid "Language team:" msgstr "Језичка задруга:" msgid "Plural forms:" msgstr "Облици множине:" msgid "Use default rules for this language" msgstr "&Подразумевана правила за овај језик" msgid "Use custom expression" msgstr "Прилагођени &израз:" msgid "Learn about plural forms" msgstr "Више о облицима за множину" msgid "Charset:" msgstr "Кодирање:" msgid "Advanced Extraction Settings…" msgstr "" msgid "Advanced extraction settings…" msgstr "" msgid "Translation Properties" msgstr "Својства превода" msgid "Translation properties" msgstr "Својства превода" msgid "Sources Paths" msgstr "Путање извора" msgid "Sources paths" msgstr "Путање извора" msgid "Extract text from source files in the following directories:" msgstr "Издвојте текст из изворних датотека у следеће фасцикле." msgid "Base path:" msgstr "Основна путања:" msgid "Sources Keywords" msgstr "Кључне речи извора" msgid "Sources keywords" msgstr "Кључне речи извора" msgid "" "Use these keywords (function names) to recognize translatable strings\n" "in source files:" msgstr "" "Користите ове кључне речи (имена функција) за препознавање стрингова за " "превођење у датотекама изворног кода:" msgid "Also use default keywords for supported languages" msgstr "" msgid "Learn About Gettext Keywords" msgstr "Више о кључним речима геттекста" msgid "Learn about gettext keywords" msgstr "Више о кључним речима gettext-а" msgid "Update summary" msgstr "Резиме ажурирања" msgid "" "These strings were found in the sources but were not in the catalog.\n" "Poedit will add them to the catalog now." msgstr "" "Ови стрингови су пронађени у изворним датотекама,\n" "али их нема у каталогу. Сада ће бити додати." msgid "New strings" msgstr "Нови стрингови" msgid "" "These strings are no longer in the sources.\n" "Poedit will remove them from the catalog now." msgstr "" "Ови стрингови више нису у изворним датотекама.\n" "Сада ће бити уклоњени из каталога." msgid "Obsolete strings" msgstr "Застарели стрингови" msgid "(0 new, 0 obsolete)" msgstr "(0 нових, 0 застарелих)" msgid "Open" msgstr "Отвори" msgid "Save catalog" msgstr "Сачувајте каталог." msgid "Validate" msgstr "Провери ваљаност" msgid "Check for errors in the translation" msgstr "Проверите има ли грешака у преводу." msgid "Update" msgstr "Ажурирај" msgid "Update catalog - synchronize it with sources" msgstr "Ажурирајте каталог и ускладите га са изворима." msgid "Sidebar" msgstr "Бочна трака" msgid "Show or hide the sidebar" msgstr "Прикажите или сакријте бочну траку." #. TRANSLATORS: "Previous" as in used in the past, now replaced with newer. msgid "Previous source text:" msgstr "Претходна верзија изворног текста:" msgid "" "The old source text (before it changed during an update) that the now-" "inaccurate translation corresponds to." msgstr "" msgid "Notes for translators:" msgstr "Напомене за преводиоце:" msgid "Add comment" msgstr "Додај коментар" msgid "Add Comment" msgstr "Додај коментар" msgid "Translation suggestions:" msgstr "Предлози преводa:" #. TRANSLATORS: This is shown when no translation suggestions can be found in the TM (Windows). msgid "No matches found" msgstr "Нема резултата" #. TRANSLATORS: This is shown when no translation suggestions can be found in the TM (macOS, Linux). msgid "No Matches Found" msgstr "Нема резултата" msgid "This string was found in Poedit’s translation memory." msgstr "Овај стринг је пронађен у Poedit-овој преводилачкој меморији." msgid "Cannot create temporary directory." msgstr "Не могу да креирам привремену фасциклу." msgid "Welcome to Poedit" msgstr "Добро дошли у Poedit" #. TRANSLATORS: This is version information in about dialog, "%s" will be #. version number when used #, c-format msgid "Version %s" msgstr "Верзија %s" msgid "Edit a Translation" msgstr "Уреди превод" msgid "Edit a translation" msgstr "Уреди превод" msgid "Open an existing PO file and edit the translation." msgstr "Отворите постојећу PO датотеку и уредите превод." msgid "" "Take an existing PO file or POT template and create a new translation from " "it." msgstr "Направите нови превод из постојеће PO или POT датотеке." msgid "Collaborate on a Translation with Others" msgstr "Сарађујте у превођењу са другима" msgid "Collaborate on a translation with others" msgstr "Преводите заједно с другима" msgid "" "Download a file from Crowdin project, translate and sync your changes back." msgstr "" "Преузмите датотеку са пројекта Crowdin, преведите је и синхронизујте своје " "измене." msgid "What is Crowdin?" msgstr "Шта је Crowdin?" msgid "There are no translations. That’s unusual." msgstr "Нема превода. То је необично." msgid "" "Translatable entries aren’t added manually in the Gettext system, but are " "automatically extracted\n" "from source code. This way, they stay up to date and accurate.\n" "Translators typically use PO template files (POTs) prepared for them by the " "developer." msgstr "" msgid "(Learn more about GNU gettext)" msgstr "Детаљније о GNU gettext-у" msgid "The simplest way to fill this catalog is to update it from a POT:" msgstr "" "Најједноставнији начин да попуните овај каталог јесте да га ажурирате помоћу " "POT датотеке:" msgid "Update from POT" msgstr "Ажурирај помоћу POT датотеке" msgid "Take translatable strings from an existing POT template." msgstr "Копирајте стрингове за превођење из постојећег POT шаблона." msgid "" "You can also extract translatable strings directly from the source code:" msgstr "Стрингове за превођење можете издвојити и директно из изворног кода:" msgid "Extract from sources" msgstr "Издвој из извора" msgid "Configure source code extraction in Properties." msgstr "Подесите издвајање из изворног кода у „Својствима“." msgid "Sync" msgstr "Синхронизација" msgid "Synchronize the translation with Crowdin" msgstr "Синхронизујте превод са Crowdin-ом" #. TRANSLATORS: This is titlebar of about dialog, "%s" is application name #. ("Poedit" here, but please use "%s") #, c-format msgid "About %s" msgstr "О %s-у" #. TRANSLATORS: Title of the preferences window on Windows and Linux. "%s" is replaced with "Poedit" when running. #, c-format msgid "%s Preferences" msgstr "Поставке %s-а" #. TRANSLATORS: macOS item in app menu msgid "Services" msgstr "Услуге" #. TRANSLATORS: macOS item in app menu, %s is replaced with "Poedit" #, c-format msgid "Hide %s" msgstr "Сакриј %s" #. TRANSLATORS: macOS item in app menu msgid "Hide Others" msgstr "Сакриј друге" #. TRANSLATORS: macOS item in app menu msgid "Show All" msgstr "Прикажи све" #. TRANSLATORS: macOS item in app menu, %s is replaced with "Poedit" #, c-format msgid "Quit %s" msgstr "Изађи из %s-а" #. TRANSLATORS: macOS item in app menu msgid "Preferences…" msgstr "" msgid "Preferences..." msgstr "Подешавања..." #. TRANSLATORS: Title of a category in Windows task menu (right-click icon in taskbar) msgid "Recent" msgstr "Скорашње" #. TRANSLATORS: Title of a category in Windows task menu (right-click icon in taskbar) msgid "Frequent" msgstr "Често коришћено" msgid "&Apply" msgstr "&Примени" msgid "Apply" msgstr "Примени" msgid "&Back" msgstr "&Назад" msgid "Back" msgstr "Назад" msgid "&Cancel" msgstr "&Откажи" msgid "&Clear" msgstr "&Очисти" msgid "Clear" msgstr "Очисти" msgid "Copy" msgstr "Копирај" msgid "Cu&t" msgstr "&Исеци" msgid "Cut" msgstr "Исеци" msgid "&Delete" msgstr "&Обриши" msgid "&Quit" msgstr "&Одустани" msgid "File" msgstr "Датотека" msgid "Help" msgstr "Помоћ" msgid "&New" msgstr "&Ново" msgid "&No" msgstr "&Не" msgid "No" msgstr "Не" msgid "&OK" msgstr "&У реду" msgid "Open…" msgstr "" msgid "&Open..." msgstr "&Отвори…" msgid "Open..." msgstr "Отвори" msgid "&Paste" msgstr "&Налепи" msgid "Paste" msgstr "Налепи" msgid "Preferences" msgstr "Подешавања" msgid "&Redo" msgstr "&Понови" msgid "Refresh" msgstr "Овежи" msgid "&Save as" msgstr "&Сачувај као" msgid "Save as" msgstr "Сачувај као" msgid "Select &All" msgstr "Изабери &све" msgid "Select All" msgstr "Изабери све" msgid "&Undo" msgstr "&Опозови" msgid "&Yes" msgstr "&Да" msgid "Yes" msgstr "Да" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Shift+" msgstr "Shift+" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Enter" msgstr "Enter" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Up" msgstr "Up" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Down" msgstr "Down" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Left" msgstr "лево" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Right" msgstr "десно" #. TRANSLATORS: Keyboard shortcut, must correspond to translation of "Ctrl+" msgid "ctrl" msgstr "ctrl" #. TRANSLATORS: Keyboard shortcut, must correspond to translation of "Alt+" msgid "alt" msgstr "alt" #. TRANSLATORS: Keyboard shortcut, must correspond to translation of "Shift+" msgid "shift" msgstr "shift" poedit-2.0.6/locales/de.mo0000664000372000037200000014524213230132076012300 00000000000000P%1 1 11<11J 2gW2 22 22 222 3333%3+333B3Q3W3]3f3z333333333333 3 44 4)4 04=4M4c4y44444444445 5(5D5Y5n55555555 6 '6:36:n6 666 6 666 6 7 #707?7O7c7~77777 71898'>8f88 8878689)=9g9 l9]w99A9I*:t:{:; ;;";:; U;`;.h;;;;;;;;<*<F<#[<<<<<<<<(<(=7= R=s=|== ==/= = >>#>9>L>b>2>>>>> ?)???????@@@ 2@?@R@Ee@"@?@ AA*.A YAfAyAK~A"A5A#B)BHAH HHI 'IHI PI ]IiI"nI;I(IIJ&J 5J ?JMJjJ ~JJJJJ JJK:K PK<^K.KKKKLL*%LPLVLgL xL LLJMNMgM MMMMM#MM'M$N7DN$|N%NNNNNNOOOO O2O P#P9PNP]PlPtP|PPPPPPPPQQQnQERZR>aR RRRR@RS-T~X~Gh~~*~&~'/@@IK(-- 5rCPրQ' y; D N5X,ׂ)߂ 2EW n{1,ă & 9Z r} 6DŽ6!5)W  х: -:CYo"M- :T$p_ es ) 3BF"B?Ue{n1C#gp ֋. AL[ck0tp3P*ԍ%&Cjqw-;1%W my00Ə48,ek'Z $+Fbzڑ*AX` r ~ ˒ ђߒ %!GJ! $/To !>ޔ.L ft3Օ3%%Yϖ@Ֆ B#<f&ݗ #39MaznrΙ007G-D+3Rpsf:ܜ'>Vh z ̝ܝ ݞ^cŸ;ɟ "M;::ġ $<2o 6DV,hѣ  # 0 8CU f p~ Ȥ;դ #C  /?Se{/" $6O a ky&̧$+2 ^kt} Ǩ5Keϩ) ˪  ! ,!8 Zf]n̫ ) B NZ,#B,^8ĮbǮD**o FR&NPt`xճrN#Jg5OM8G1ζ/0') /7*g;Oθ4ZcPrT~ǻvFIXF[e)l(F[&q& #1 +-> CQ)d5 ""EV%pg-%,&R4y8,n !9KS[vZ@C$h@qz- 2?C5H!~,3-KTg$}D}],6 9BW6tC3H>C'# )h?*Kq#-0^aG2zFYblx&2LADZ.EwPi=Ab[kv @4uh~ uL@|pnf.nTN? QI2:qOKcajd F!p ]U>T+rXi=J%Vxz51^s4 NH/F"8/XJ`om #UwQk :Gs$ 8jL!~I1,(<D-9B>|;$H(E?g<y!dYgIo \ <eN+rM5&cM5 :"K-A+EmZ7C"603B $%RfRVeyOG*S@ M,4}_{O%W91J)S[`' 7)v &;*{(l_.03=\7P8/t';P (modified) (unsaved)%d entry%d entries%d entry was pre-translated.%d entries were pre-translated.%d error%d errors%d issue with the translation found.%d issues with the translation found.%i line of file “%s” was not loaded correctly.%i lines of file “%s” were not loaded correctly.%s Format%s Preferences%s format&About&About Poedit&Apply&Back&Bookmarks&Cancel&Clear&Close&Copy&Delete&Done and Next&Done and next&Edit&File&Find…&GNU gettext Manual&GNU gettext manual&Go&Group By Context&Group by context&Help&New&New…&Next >&Next Translation&Next translation&No&OK&Online Help&Online help&Open...&Open…&Paste&Preferences&Preferences…&Previous Translation&Previous translation&Properties…&Purge Deleted Translations&Purge deleted translations&Quit&Redo&Replace&Save&Save as&Show References&Show references&Undo&Untranslated Entries First&Untranslated entries first&Update from Sources&Update from sources&Validate Translations&Validate translations&View&Yes(0 new, 0 obsolete)(Learn more about GNU gettext)(New: %i, obsolete: %i)(Use default language)(requires Windows 8 or newer)< &PreviousDrag and Drop Folders Here or use the + buttonDrag and drop folders here or use the + buttonAbout %sAccountsAdd CommentAdd Files…Add Folders…Add Wildcard…Add commentAdd directory to the listAdd files…Add folders…Add wildcard…Additional keywordsAdditional xgettext flags:AdvancedAdvanced Extraction Settings…Advanced extraction settingsAdvanced extraction settings…All Translation FilesAll commentsAlso use default keywords for supported languagesAlt+Always change focus to text input fieldAn item in input files list:An item in keywords list:AppearanceApplyAre you sure you want to delete the “%s” extractor?Are you sure you want to reset the translation memory?Automatically check for updatesAutomatically compile MO file when savingBackBase path:Beta versions contain the latest new features and improvements, but may be a bit less stable.Bring All to FrontBroken catalog file: plural form msgstr used without msgid_pluralBroken catalog file: singular form msgstr used together with msgid_pluralBrowseBy default, inaccurate results are filled in as well and marked as needing work. Check this option to only include accurate matches.C&atalogC&learCancelCannot create temporary directory.Cannot execute program: %sCapitalizeCatalogCatalog modified. Do you want to save changes?Catalog propertiesCatalogs &ManagerCatalogs &managerCatalogs ManagerChange UI languageCharset:Check Document NowCheck Grammar With SpellingCheck Spelling While TypingCheck for Updates…Check for errors in the translationCheck for updates…Check spellingClearClear TranslationClear the commentClear translationCloseCollaborate on a Translation with OthersCollaborate on a translation with othersCollecting source files…Command to extract translations:Comment:Comments prefixed with:Compile to MO…Compile to…Compiled Translation FilesConfigure source code extraction in Properties.ConfirmationCopyCopy From SingularCopy from Source TextCopy from singularCopy from source textCorrect Spelling AutomaticallyCouldn’t load file %s, it is probably corrupted.Couldn’t save file %s.Create New TranslationCreate new translationCreate new translations projectCrowdin errorCrowdin is an online localization management platform and collaborative translation tool. Poedit can seamlessly sync PO files managed at Crowdin.Ctrl+Cu&tCustom Extractors:Custom extractors:CutDatabase size on disk:DeleteDelete extractorDelete the projectDirectories:Display Entry &IDsDisplay entry &IDsDo you really want to do mass update of all catalogs in this project?Do you want to delete the project?Do you want to remove all translations that are no longer used?Don’t SaveDon’t Show AgainDon’t mark exact matches as needing workDon’t saveDon’t show againDownDownload a file from Crowdin project, translate and sync your changes back.Downloading latest translations…Downloading translations is disabled in this project.E&xitE&xport as HTML…EditEdit &CommentEdit &commentEdit CommentEdit a TranslationEdit a translationEdit commentEdit projectEdit the projectEditingEdit…Email:EnterEnter Full ScreenEntries in the catalog are probably incorrect.Entries in this catalog have different plural forms count from what catalog’s Plural-Forms header saysEntries with Errors FirstEntries with errors firstEntries with errors were marked in red in the list. Details of the error will be shown when you select such an entry.Error loading message catalog file “%s”.Error opening fileError opening file %s!Error saving catalogErrorsEverythingExcluded pathsExport as…Extract from sourcesExtract notes for translators from:Extract text from source files in the following directories:Extracting translatable strings…Extractor setupExtractorsFailed command: %sFailed to communicate with Poedit process.Failed to load extracted catalog.Failed to merge gettext catalogs.Failed to update translation memory: %sFileFile “%s” doesn’t exist.File “%s” is not a message catalog.File “%s” is read-only and cannot be saved. Please save it under different name.File:Finalizing…FindFind NextFind PreviousFind and Replace…Find in commentsFind in source textsFind in translationsFind nextFind previousFix LanguageFix languageFix the HeaderFix the headerForm %iFrequentGNU gettextGeneralGo to Bookmark %iGo to bookmark %iHTML FilesHelpHide %sHide OthersHide SidebarHide Status BarHide this notification messageIDIf you continue with purging, all translations marked as deleted will be permanently removed. You will have to translate them again if they are added back in the future.Ignore caseImporting translations…Include beta versionsInformation about the translatorInstallInvalid fileInvocation:KeepLanguage Code or Name (e.g. en_GB)Language of the translation is the same as source language.Language of the translation isn’t set.Language of the translation:Language selectionLanguage team:Language:Last modifiedLearn About Gettext KeywordsLearn From Files…Learn MoreLearn More About CrowdinLearn about gettext keywordsLearn about plural formsLearn from files…Learn moreLearn more about CrowdinLeftLine %d of file “%s” is corrupted (not valid %s data).Line endings:List of extensions separated by semicolons (e.g. *.cpp;*.h):MO files can’t be directly edited in Poedit.Make Lower CaseMake Upper CaseMalformed header: “%s”Merging differences…MinimizeName of the project the translation is forName:Ne&xt UnfinishedNe&xt unfinishedNeeds WorkNeeds workNever let the list of strings take focus. If enabled, you must use Ctrl-arrows for keyboard navigation but you can also type text immediately, without having to press Tab to change focus.NewNew From &POT/PO File…New from &POT/PO file…New stringsNext Plural FormNext plural formNoNo Matches FoundNo entries could be pre-translated.No matches foundNo problems with the translation found.No references for the selected item.No translation projects listed in your Crowdin account.Not all plural forms are translated.Not authorized, please sign in again.Notes for translators:OKObsolete stringsOneOnly enable if you trust the quality of your TM. By default, all matches from the TM are marked as needing work and should be reviewed before use.Only fill in exact matchesOpenOpen Crowdin translationOpen From Crowdin…Open RecentOpen an existing PO file and edit the translation.Open catalogOpen catalog templateOpen from Crowdin…Open in EditorOpen in editorOpen...Open…OptionsOtherP&revious UnfinishedP&revious unfinishedPO TranslationPO Translation FilesPOT Translation TemplatesPOT files are only templates and don’t contain any translations themselves. To make a translation, create a new PO file based on the template.PastePaste and Match StylePathsPlease open and edit the corresponding PO file instead. When you save it, the MO file will be updated as well.Please save the file first. This section cannot be edited until then.PluralPlural forms expression used by the catalog is unusual for %s.Plural forms:Plural:PoeditPoedit - Catalogs managerPoedit automatically fixed invalid content in the file “%s”.Poedit can attempt to fill in new entries from only previous translations in the file or from your entire translation memory. Using the TM won’t be very effective if it’s near-empty, but it will get better as you add more translations to it.Poedit is an easy to use translations editor.Pre-&translate…Pre-translatePre-translatedPre-translated %u stringPre-translated %u stringsPre-translating…Pre-translation automatically finds exact or fuzzy matches for untranslated strings in the translation memory and fills in their translations.PreferencesPreferences...Preferences…Preserve formatting of existing filesPrevious Plural FormPrevious plural formPrevious source text:Project name and version:Project name:Project:PurgePurge deleted translationsQuitQuit %sRecentRedoReferences:RefreshRemaining: %dReplaceReplace &AllReplace &allReplacement stringReplace…Required header Plural-Forms is missing.ResetReset translation memoryResetting the translation memory will irrevocably delete all stored translations from it. You can’t undo this operation.ReviewRightSaveSave &As…Save &as…Save asSave as…Save catalogSave changesSelect &AllSelect AllSelect directorySelect translation files to importSelect your preferred languageServicesSet Bookmark %iSet LanguageSet bookmark %iSet languageShift+Show AllShow SidebarShow Spelling and GrammarShow Status BarShow SubstitutionsShow or hide the sidebarShow sidebarShow status barShow summary after catalog updateSidebarSign InSign OutSign inSign in to CrowdinSign outSigned in as:SingularSingular:Smart Copy/PasteSmart DashesSmart LinksSmart QuotesSort by &File OrderSort by &SourceSort by &TranslationSort by &file orderSort by &sourceSort by &translationSource code charset:Source code extractors are used to find translatable strings in the source code files and extract them so that they can be translated.Source code not available.Source fileSource file occurrence:Source textSource text — %sSource text:Sources KeywordsSources PathsSources keywordsSources pathsSpeechSpellchecking is disabled, because the dictionary for %s isn’t installed.Spelling and GrammarStart SpeakingStop SpeakingStored translations:String to findSubstitutionsSuggestionsSuggestions are not available if the translation language is not set correctly. Other features, such as plural forms, may be affected as well.Supports all programming languages recognized by GNU gettext tools (PHP, C/C++, C#, Perl, Python, Java, JavaScript and others).SyncSync with CrowdinSynchronize the translation with CrowdinSyncingSyncing errorSyncing with %s failed.Syncing with %s…Syncing with Crowdin failed.Syntax error in Plural-Forms header ("%s").TMTake an existing PO file or POT template and create a new translation from it.Take translatable strings from an existing POT template.Team name and email address or URLText ReplacementThe TM doesn’t contain any strings similar to the content of this file. It is only effective for semi-automatic translations after Poedit learns enough from files that you translated manually.The catalog couldn’t be saved in “%s” charset as specified in catalog settings. It was saved in UTF-8 instead and the setting was modified accordingly.The file cannot be compiled into the MO format and used.The file cannot be opened.The file contained duplicate items, which is not allowed in PO files and would prevent the file from being used. Poedit fixed the issue, but you should review translations of any items marked as needing work and correct them if necessary.The file may be either corrupted or in a format not recognized by Poedit.The file was compiled into the MO format, but it will probably not work correctly.The file was saved safely and compiled into the MO format, but it will probably not work correctly.The file was saved safely, but it cannot be compiled into the MO format and used.The file was saved safely.The old source text (before it changed during an update) that the now-inaccurate translation corresponds to.The simplest way to fill this catalog is to update it from a POT:The translation doesn’t start with a space.The translation ends with a newline, but the source text doesn’t.The translation ends with a space, but the source text doesn’t.The translation ends with “%s”, but the source text ends with “%s”.The translation is missing a newline at the end.The translation is missing a space at the end.The translation is ready for use, but %d entry is not translated yet.The translation is ready for use, but %d entries are not translated yet.The translation is ready for use.The translation should end with “%s”.The translation should not end with “%s”.The translation should start as a sentence.The translation should start with a lowercase character.The translation starts with a space, but the source text doesn’t.The translations were marked as needing work, because they may be inaccurate. You should review them for correctness.There are no translations. That’s unusual.There was a problem formatting the file nicely (but it was saved all right).There were errors when loading the catalog. Some data may be missing or corrupted as the result.These settings affect internal formatting of PO files. Adjust them if you have specific requirements e.g. because of version control.These strings are no longer in the sources. Poedit will remove them from the catalog now.These strings were found in the sources but were not in the catalog. Poedit will add them to the catalog now.This catalog has entries with plural forms, but doesn’t have Plural-Forms header configured.This file can only be edited in Crowdin’s web interface.This is the command used to launch the extractor. %o expands to the name of output file, %K to list of keywords, %F to list of input files, %C to charset flag (see below).This project has no files that can be translated in Poedit.This string was found in Poedit’s translation memory.This will be attached to the command line only if source code charset was given. %c expands to charset value.This will be attached to the command line once for each input file. %f expands to the filename.This will be attached to the command line once for each keyword. %k expands to the keyword.TotalTransformationsTranslatable entries aren’t added manually in the Gettext system, but are automatically extracted from source code. This way, they stay up to date and accurate. Translators typically use PO template files (POTs) prepared for them by the developer.Translated: %d of %d (%d %%)Translation LanguageTranslation MemoryTranslation Needs &WorkTranslation PropertiesTranslation needs &workTranslation propertiesTranslation suggestions:Translation — %sTranslation:Translations couldn’t be updated from the source code, because no code was found in the location specified in the catalog’s Properties.TwoUTF-8 (recommended)UndoUnhandled exception occurred: %sUnix (recommended)UntransUpUpdateUpdate allUpdate all catalogs in the projectUpdate catalog - synchronize it with sourcesUpdate from &POT File…Update from &POT file…Update from POTUpdate summaryUpdatesUpdating catalogUpdating failedUpdating the catalog failed. Click on 'Details >>' for details.Updating user information…Uploading translations…Use custom expressionUse custom list font:Use custom text fields font:Use default rules for this languageUse these keywords (function names) to recognize translatable strings in source files:Use translation memoryValidateValidation resultsVersion %sWaiting for authentication…Welcome to PoeditWhat is Crowdin?When updating from sourcesWhole words onlyWindowWindowsWrap aroundWrap at:YesYou can also extract translatable strings directly from the source code:You can’t drop more than one file on Poedit window.You must restart Poedit for this change to take effect.Your NameYour changes will be lost if you don’t save them.Your name and email address are only used to set the Last-Translator header of GNU gettext files.ZeroZoomaltctrldon’t delete temporary files (for debugging)e.g. nplurals=2; plural=(n > 1);fuzzy match within the filego to item at given line numberhandle a poedit:// URIpre-translate from TMshiftunknown languageyour_email@example.com“%s” is not a valid POT file.Project-Id-Version: poedit Report-Msgid-Bugs-To: help@poedit.net POT-Creation-Date: 2017-12-05 15:52+0100 PO-Revision-Date: 2017-12-05 09:48-0500 Last-Translator: vslavik Language-Team: German Language: de_DE MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=(n != 1); X-Generator: crowdin.com X-Crowdin-Project: poedit X-Crowdin-Language: de X-Crowdin-File: /locales/poedit.pot (geändert) (ungespeichert)%d Eintrag%d Einträge%d Eintrag wurde vorübersetzt.%d Einträge wurden vorübersetzt.%d Fehler%d FehlerEs wurde %d Problem mit der Übersetzung gefunden.Es wurden %d Probleme mit der Übersetzung gefunden.%i Zeile der Datei »%s« wurde nicht korrekt geladen.%i Zeilen der Datei »%s« wurden nicht korrekt geladen.%s-Format%s-Einstellungen%s-Format&Über&Über Poedit&Anwenden&Zurück&LesezeichenA&bbrechen&BereinigenS&chließen&Kopieren&Löschen&Erledigt und weiter&Erledigt und weiter&Bearbeiten&Datei&Suchen …&GNU gettext Dokumentation&GNU gettext Dokumentation&NavigierenNach Zusammenhang &gruppierenNach Zusammenhang &gruppieren&Hilfe&Neu&Neu …&Weiter >&Nächste Übersetzung&Nächste Übersetzung&Nein&OK&Online-Hilfe&Online-HilfeÖ&ffnen …Ö&ffnen …E&infügen&Einstellungen&Einstellungen …&Vorherige Übersetzung&Vorherige Übersetzung&Eigenschaften …&Ungenutzte Übersetzungen entfernen&Ungenutzte Übersetzungen entfernen&Beenden&WiederherstellenErset&zen&SpeichernSpeichern &unter&Verweise anzeigen&Verweise anzeigen&Rückgängig&Nicht übersetzte Einträge zuerst&Nicht übersetzte Einträge zuerst&Aus Quellen aktualisieren&Aus Quellen aktualisieren&Übersetzungen prüfen&Übersetzungen prüfen&Ansicht&Ja(0 neu, 0 veraltet)(Mehr über GNU gettext erfahren)(Neu: %i, veraltet: %i)(Standardsprache verwenden)(benötigt Windows 8 oder neuer)< &ZurückZiehen und legen Sie Ordner hier ab oder verwenden Sie den + KnopfZiehen und legen Sie Ordner hier ab oder verwenden Sie den + KnopfÜber %sKontenKommentar hinzufügenDateien hinzufügen …Ordner hinzufügen …Platzhalter hinzufügen …Kommentar hinzufügenOrdner zur Liste hinzufügenDateien hinzufügen …Ordner hinzufügen …Platzhalter hinzufügen …Zusätzliche SchlüsselwörterZusätzliche xgettext-Parameter:ErweitertErweiterte Extraktionseinstellungen …Erweiterte ExtraktionseinstellungenErweiterte Extraktionseinstellungen …Alle ÜbersetzungsdateienAlle KommentareStandard-Schlüsselwörter ebenso für unterstützte Sprachen verwendenAlt+Den Fokus immer auf das Eingabefeld setzenEin Eintrag in der Eingabedatei-Liste:Ein Eintrag in der Schlüsselwortliste:ErscheinungsbildAnwendenSind Sie sicher, dass der Extraktor »%s« entfernt werden soll?Sind Sie sicher, dass der Übersetzungsspeicher zurückgesetzt werden soll?Automatisch nach Aktualisierungen suchenMO-Datei beim Speichern automatisch erstellenZurückAusgangspfad:Beta-Versionen enthalten die neuesten Funktionen und Verbesserungen, können allerdings etwas weniger stabil sein.Alle in den Vordergrund bringenBeschädigte Katalogdatei: Verwendung von msgstr in Pluralform ohne msgid_pluralBeschädigte Katalogdatei: Verwendung von msgstr in Singularform mit msgid_pluralDurchsuchenStandardmäßig werden ungenaue Ergebnisse auch übernommen und mit »Benötigt Überarbeitung« markiert. Wählen Sie diese Option, um nur exakte Übereinstimmungen zu übernehmen.&Katalog&LöschenAbbrechenTemporäres Verzeichnis konnte nicht erstellt werden.Programm konnte nicht ausgeführt werden: %sWortanfänge großschreibenKatalogKatalog geändert. Änderungen speichern?Katalog-Eigenschaften&Katalogverwaltung&KatalogverwaltungKatalogverwaltungGUI-Sprache auswählenZeichensatz:Dokument jetzt prüfenGrammatik zusätzlich zur Rechtschreibung prüfenRechtschreibung während der Eingabe prüfenAuf Aktualisierungen prüfen …Auf Fehler in der Übersetzung prüfenAuf Aktualisierungen prüfen …Rechtschreibung prüfenBereinigenÜbersetzung löschenKommentar löschenÜbersetzung löschenSchließenGemeinsam mit anderen bei einer Übersetzung mitwirkenGemeinsam mit anderen bei einer Übersetzung mitwirkenQuelldateien werden gesammelt …Befehl, um Übersetzungen zu extrahieren:Kommentar:Anmerkungen mit Präfix:MO-Datei erstellen …Kompilieren nach …Kompilierte ÜbersetzungsdateienQuellcode-Extrahierung in den Einstellungen konfigurieren.BestätigungKopierenVon Singular kopierenQuelltext übernehmenVon Singular kopierenQuelltext übernehmenAutomatische RechtschreibkorrekturDie Datei »%s« konnte nicht geladen werden. Sie ist vermutlich beschädigt.Datei »%s« konnte nicht gespeichert werden.Neue Übersetzung anlegenNeue Übersetzung erstellenNeues Übersetzungsprojekt erstellenCrowdin FehlerCrowdin ist eine Onlineplattform zur Lokalisierung und ein Werkzeug zum gemeinsamen Übersetzen. Poedit kann PO-Dateien, die mittels Crowdin verwaltet werden, problemlos synchronisieren.Strg+&AusschneidenBenutzerdefinierte Extraktoren:Benutzerdefinierte Extraktoren:AusschneidenGröße der Datenbank auf der Festplatte:LöschenExtraktor entfernenProjekt löschenOrdner:Zeige Eintrag-&IDsZeige Eintrag-&IDsMöchten Sie wirklich alle Kataloge dieses Projekts aktualisieren?Möchten Sie das Projekt löschen?Sollen alle nicht mehr verwendeten Übersetzungen entfernt werden?Nicht speichernNicht erneut anzeigenGenaue Treffer nicht mit »Benötigt Überarbeitung« markierenNicht speichernNicht erneut anzeigenRunterHerunterladen einer Datei aus einem Crowdin Projekt, übersetzen und zurücksynchronisieren Ihrer Änderungen.Neueste Übersetzungen werden heruntergeladen …Herunterladen von Übersetzungen ist in diesem Projekt deaktiviert.&BeendenE&xportieren als HTML …Bearbeiten&Kommentar bearbeiten&Kommentar bearbeitenKommentar bearbeitenÜbersetzung bearbeitenÜbersetzung bearbeitenKommentar bearbeitenProjekt bearbeitenProjekt bearbeitenBearbeitenBearbeiten …E-Mail:EingabeVollbildKatalogeinträge sind möglicherweise ungültig.Einträge in diesem Katalog haben eine andere Anzahl an Plural-Formen als im Kopfbereich des Kataloges angegebenEinträge mit Fehlern zuerstEinträge mit Fehlern zuerstFehlerhafte Einträge wurden in der Liste rot markiert. Beim Auswählen eines dieser Einträge werden Details zum Fehler angezeigt.Fehler beim Laden der Katalogdatei »%s«.Fehler beim Öffnen der DateiFehler beim Öffnen der Datei »%s«.Fehler beim Speichern der KatalogdateiFehlerAllesAusgeschlossene PfadeExportieren als …Aus Quellcode extrahierenAnmerkungen für Übersetzer extrahieren aus:Text aus Quelldateien in den folgenden Ordnern extrahieren:Übersetzbare Zeichenketten werden extrahiert …Extraktor-EinrichtungExtraktorenFehlgeschlagener Befehl: %sKommunikation mit Poedit-Prozess fehlgeschlagen.Laden des extrahierten Kataloges fehlgeschlagen.Zusammenführen der gettext-Kataloge fehlgeschlagen.Fehler beim Aktualisieren des Übersetzungsspeichers: %sDateiDatei »%s« existiert nicht.Die Datei »%s« ist kein Text-Katalog.Die Datei »%s« ist schreibgeschützt. Bitte speichern Sie sie unter einem anderen Namen.Datei:Abschließen …SuchenNächstes Vorkommen suchenVorheriges Vorkommen suchenSuchen und Ersetzen …In Kommentaren suchenIn Quelltexten suchenIn Übersetzungen suchenNächstes Vorkommen suchenVorheriges Vorkommen suchenSprache korrekt festlegenSprache korrekt festlegenKopfbereich reparierenKopfbereich reparierenForm %iHäufig verwendetGNU gettextAllgemeinZu Lesezeichen %i springenZu Lesezeichen %i springenHTML-DateienHilfe%s ausblendenAndere ausblendenSeitenleiste ausblendenStatusleiste ausblendenDiese Benachrichtigung nicht anzeigenIDWenn Sie mit dem Bereinigen fortfahren, werden alle als gelöscht markierten Texte endgültig gelöscht. Wenn die Texte in Zukunft wieder hinzugefügt werden, müssen Sie sie erneut übersetzen.Groß-/Kleinschreibung ignorierenÜbersetzungen werden importiert …Beta-Versionen einbeziehenInformationen zum ÜbersetzerInstallierenUngültige DateiAufruf:BehaltenSprachcode oder Name (z.B. de_DE)Sprache der Übersetzung ist dieselbe wie die Ausgangssprache.Sprache der Übersetzung ist nicht festgelegt.Sprache der Übersetzung:SprachauswahlÜbersetzungsteam:Sprache:Letzte ÄnderungWeitere Informationen zu gettext-SchlüsselwörternAus Dateien befüllen …Weitere InformationenErfahren Sie mehr über CrowdinWeitere Informationen zu gettext-SchlüsselwörternWeitere Informationen zu PluralformenAus Dateien befüllen …Weitere InformationenErfahren Sie mehr über CrowdinLinksZeile %d der Datei »%s« ist beschädigt (ungültige %s-Daten).Zeilenenden:Durch Semikola getrennte Liste der Dateiendungen (z.B. *.cpp;*.h):MO-Dateien können nicht direkt in Poedit bearbeitet werden.KleinschreibenGroßschreibenFehlerhafter Header: »%s«Änderungen werden zusammengefügt …MinimierenName des Projektes der ÜbersetzungName:N&ächste unfertigeN&ächste unfertigeBenötigt ÜberarbeitungBenötigt ÜberarbeitungDer Zeichenkettenliste nie den Fokus geben. Wenn aktiviert, müssen Sie Strg-Pfeiltasten zur Navigation benutzen. Sie können jedoch auch sofort Text eingeben, ohne vorher zum Ändern des Fokus Tab drücken zu müssen.NeuNeu aus &POT/PO Datei …Neu aus &POT/PO Datei …Neue ZeichenkettenNächste Plural-FormNächste Plural-FormNeinKeine Treffer gefundenEs konnten keine Einträge vorübersetzt werden.Keine Treffer gefundenEs wurden keine Probleme mit der Übersetzung gefunden.Keine Verweise für das ausgewählte Element.Es sind keine Übersetzungsprojekte in Ihrem Crowdin-Konto gelistet.Es sind nicht alle Pluralformen übersetzt.Nicht autorisiert, bitte melden Sie sich erneut an.Anmerkungen für Übersetzer:OKVeraltete ZeichenkettenSingularNur aktivieren, wenn Sie der Qualität Ihres Übersetzungsspeichers vertrauen. Standardmäßig werden alle automatischen Übersetzungen mit »Benötigt Überarbeitung« markiert und sollten überprüft werden.Nur genaue Treffer ausfüllenÖffnenCrowdin-Übersetzung öffnenVon Crowdin öffnen …Zuletzt geöffnete DateienExistierende PO-Datei öffnen und Übersetzung bearbeiten.Katalog öffnenKatalogvorlage öffnenVon Crowdin öffnen …In Editor öffnenIn Editor öffnenÖffnen …Öffnen …OptionenPluralV&orherige unfertigeV&orherige unfertigePO-ÜbersetzungPO-ÜbersetzungsdateienPOT-ÜbersetzungsvorlagenPOT-Dateien sind nur Vorlagen, sie enthalten selbst keine Übersetzungen. Um eine Übersetzung zu starten, legen Sie eine neue PO-Datei an, die auf der Vorlage basiert.EinfügenEinsetzen und Stil anpassenPfadeBitte öffnen Sie stattdessen die zugehörige PO-Datei. Wenn Sie die Datei speichern, wird die MO-Datei ebenfalls aktualisiert.Bitte speichern Sie die Datei vorher. Dieser Abschnitt kann bis dahin nicht bearbeitet werden.PluralVerwendete Plural-Form des Kataloges ist unüblich für %s.Pluralformen:Plural:PoeditPoedit-KatalogverwaltungUngültige Inhalte der Datei »%s« wurden von Poedit automatisch korrigiert.Poedit kann versuchen, neue Einträge ausschließlich mit früheren Übersetzungen aus der Datei zu befüllen oder den gesamten Übersetzungsspeicher zu nutzen. Der Übersetzungsspeicher wird nicht sehr effektiv sein, wenn dieser nahezu leer ist, wird aber immer besser, je mehr Übersetzungen hinzugefügt werden.Poedit ist ein einfach zu benutzender Übersetzungseditor.Vorüberse&tzung …VorübersetzungVorübersetzt%u Zeichenkette vorübersetzt%u Zeichenketten vorübersetztVorübersetzen …Die Vorübersetzung findet automatisch übereinstimmende oder ungenaue Treffer für unübersetzte Zeichenketten im Übersetzungsspeicher und befüllt die fehlenden Übersetzungen.EinstellungenEinstellungen …Einstellungen …Formatierung vorhandener Dateien beibehaltenVorige Plural-FormVorige Plural-FormBisheriger Quelltext:Projektname und -version:Projektname:Projekt:BereinigenUngenutzte Übersetzungen entfernenBeenden%s beendenZuletzt verwendetWiederherstellenVerweise:AktualisierenVerbleibend: %dErsetzen&Alle ersetzen&Alle ersetzenErsatzzeichenketteErsetzen …Im Kopfbereich der Datei fehlt die Angabe »Plural-Forms«.ZurücksetzenÜbersetzungsspeicher zurücksetzenDas Zurücksetzen des Übersetzungsspeichers löscht alle darin gespeicherten Übersetzungen unwiderruflich. Dieser Schritt kann nicht rückgängig gemacht werden.ÜberprüfenRechtsSpeichernSpeichern &unter …Speichern &unter …Speichern unterSpeichern unter …Katalog speichernÄnderungen speichern&Alles auswählenAlles auswählenOrdner auswählenÜbersetzungsdateien zum Importieren auswählenBitte wählen Sie Ihre Sprache ausDiensteLesezeichen %i festlegenSprache festlegenLesezeichen %i festlegenSprache festlegenUmschalt+Alle anzeigenSeitenleiste anzeigenRechtschreibung und Grammatik anzeigenStatusleiste anzeigenErsetzungen anzeigenSeitenleiste anzeigen oder verbergenSeitenleiste anzeigenStatusleiste anzeigenBericht nach Katalogaktualisierung anzeigenSeitenleisteAnmeldenAbmeldenAnmeldenBei Crowdin anmeldenAbmeldenAngemeldet als:SingularSingular:Intelligentes Kopieren/EinsetzenIntelligente BindestricheIntelligente LinksIntelligente AnführungszeichenNach &Datei sortierenNach &Quelltext sortierenNach &Übersetzung sortierenNach &Datei sortierenNach &Quelltext sortierenNach &Übersetzung sortierenZeichensatz des Quellcodes:Quellcode-Extraktoren werden verwendet, um übersetzbare Zeichenketten in den Quellcode-Dateien zu suchen und diese zu extrahieren, so dass sie übersetzt werden können.Der Quellcode steht nicht zur Verfügung.QuelldateiVorkommen in Quelldatei:QuelltextQuelltext — %sQuelltext:Schlüsselwörter aus QuelltextenQuell-PfadeSchlüsselwörter aus QuelltextenQuell-PfadeSpracheDie Rechtschreibprüfung ist deaktiviert, weil das Wörterbuch für %s nicht installiert ist.Rechtschreibung und GrammatikSprechen startenSprechen stoppenGespeicherte Übersetzungen:Zu suchende ZeichenketteErsetzungenVorschlägeVorschläge sind nicht verfügbar, wenn die Übersetzungssprache nicht richtig eingestellt ist. Andere Funktionen wie z.B. Pluralformen, können ebenfalls betroffen sein.Unterstützt alle Programmiersprachen, die von GNU gettext Werkzeugen erkannt werden (PHP, C/C++, C#, Perl, Python, Java, JavaScript und weitere).SyncMit Crowdin synchronisierenSynchronisieren der Übersetzung mit CrowdinSynchronisierung läuftFehler bei der SynchronisierungFehler beim Synchronisieren mit %s.Synchronisierung mit %s …Fehler bei der Synchronisierung mit Crowdin.Syntaxfehler im Dateikopf bei »Plural-Forms« (»%s«).TMEine existierende PO-Datei oder POT-Vorlage verwenden und eine neue Übersetzung daraus erstellen.Übersetzbare Zeichenketten aus existierender POT-Vorlage verwenden.Name des Teams und E-Mail-Adresse oder URLTextersetzungDer Übersetzungsspeicher beinhaltet keine Zeichenketten, die dem Inhalt dieser Datei ähneln. Der Übersetzungsspeicher kann erst dann effizient bei semi-automatischen Übersetzungen helfen, wenn Poedit ausreichend von den bisherigen Übersetzungen gelernt hat.Der Katalog konnte nicht im Zeichensatz »%s« gespeichert werden. Er wurde stattdessen in UTF-8 gespeichert, die Katalog-Optionen wurden entsprechend angepasst.Die Datei kann nicht in das MO-Format kompiliert und verwendet werden.Die Datei kann nicht geöffnet werden.Die Datei enthält doppelte Einträge, die in PO-Dateien nicht zulässig sind und dazu führen würden, dass die Datei nicht verwendet werden kann. Dieses Problem wurde von Poedit behoben. Sie sollten allerdings Übersetzungen, die mit »Benötigt Überarbeitung« markiert sind, überprüfen und diese falls erforderlich korrigieren.Die Datei ist entweder beschädigt oder Poedit konnte das Format nicht erkennen.Die Datei wurde in das MO-Format kompiliert, allerdings wird sie wahrscheinlich nicht ordnungsgemäß funktionieren.Die Datei wurde sicher gespeichert und in das MO-Format konvertiert, aber möglicherweise funktioniert es nicht korrekt.Die Datei wurde gespeichert, aber das Kompilieren ins MO-Format schlug fehl und kann daher nicht verwendet werden.Die Datei wurde sicher gespeichert.Der frühere Quelltext (bevor er durch eine Aktualisierung geändert wurde), auf den sich die jetzt unklare Übersetzung bezieht.Der einfachste Weg, den Katalog zu aktualisieren, ist aus einer POT-Datei:Die Übersetzung beginnt nicht mit einem Leerzeichen.Die Übersetzung endet mit einem Zeilenumbruch, der Quelltext allerdings nicht.Die Übersetzung endet mit einem Leerzeichen, der Quelltext allerdings nicht.Die Übersetzung endet mit »%s«, aber der Quelltext endet mit »%s«.Am Ende der Übersetzung fehlt ein Zeilenumbruch.Am Ende der Übersetzung fehlt ein Leerzeichen.Die Übersetzung ist bereit für die Nutzung, aber %d Eintrag ist noch nicht übersetzt.Die Übersetzung ist bereit für die Nutzung, aber %d Einträge sind noch nicht übersetzt.Die Übersetzung kann verwendet werden.Die Übersetzung sollte mit »%s« enden.Die Übersetzung sollte nicht mit »%s« enden.Die Übersetzung sollte als Satz beginnen.Die Übersetzung sollte mit einem Kleinbuchstaben beginnen.Die Übersetzung beginnt mit einem Leerzeichen, der Quelltext allerdings nicht.Die Übersetzungen wurden mit »Benötigt Überarbeitung« markiert, weil sie ungenau sein könnten. Sie sollten die Einträge auf ihre Richtigkeit überprüfen.Es gibt keine Übersetzungen. Das ist ungewöhnlich.Es gab einen Fehler beim Schön-Formatieren der Datei, sie wurde aber korrekt gespeichert.Beim Laden des Katalogs sind Fehler aufgetreten. Einige Daten können fehlen oder beschädigt sein.Diese Einstellungen betreffen die interne Formatierung der PO-Dateien. Passen Sie sie an, wenn Sie, z.B. für Versionskontrolle, bestimmte Anforderungen haben.Diese Zeichenketten befinden sich nicht mehr in den Quelldateien. Poedit wird sie jetzt aus dem Katalog entfernen.Diese Zeichenketten wurden in den Quelldateien gefunden, aber nicht im Katalog. Poedit wird sie jetzt dem Katalog hinzufügen.Dieser Katalog hat Einträge mit Plural-Formen, jedoch sind im Kopfbereich der Datei keine Plural-Formen eingerichtet.Diese Datei kann nur in der Weboberfläche von Crowdin bearbeitet werden.Mit diesem Befehl wird der Extraktor gestartet, wobei die folgenden Ersetzungen stattfinden: %o durch den Namen der Ausgabedatei, %K durch die Liste der Schlüsselwörter, %F durch die Liste der Eingabedateien, %C durch den Zeichensatz (siehe unten).In diesem Projekt befinden sich keine Dateien, die mit Poedit übersetzt werden können.Diese Zeichenkette wurde im Übersetzungsspeicher von Poedit gefunden.Wird nur dann an die Kommandozeile angefügt, wenn der Zeichensatz des Quellcodes übergeben wurde. %c repräsentiert den Zeichensatz.Wird für jede Eingabedatei einmal an die Kommandozeile angehängt. %f repräsentiert den Dateinamen.Wird für jedes Schlüsselwort einmal an die Kommandozeile angehängt. %k repräsentiert das Schlüsselwort.GesamtTransformationenÜbersetzbare Einträge werden nicht manuell in das Gettext-System hinzugefügt, sondern automatisch aus dem Quellcode extrahiert. So bleibt immer alles aktuell und genau. Übersetzer verwenden üblicherweise PO-Vorlagen (POTs), welche von Programmierern vorbereitet werden.Übersetzt: %d von %d (%d %%)ÜbersetzungsspracheÜbersetzungsspeicherÜbersetzung benötigt &ÜberarbeitungÜbersetzungseigenschaftenÜbersetzung benötigt &ÜberarbeitungÜbersetzungseinstellungenÜbersetzungsvorschläge:Übersetzung – %sÜbersetzung:Übersetzungen konnten nicht aus dem Quellcode aktualisiert werden, weil kein Quellcode an dem in den Katalogeinstellungen angegebenen Ort gefunden wurde.ZweiUTF-8 (empfohlen)RückgängigEin unerwarteter Fehler ist aufgetreten: %sUnix (empfohlen)Nicht übersetztHochAktualisierenAlle aktualisierenAlle Kataloge des Projektes aktualisierenKatalog aktualisieren – mit Quellen synchronisierenAus &POT-Datei aktualisieren …Aus &POT-Datei aktualisieren …Aus POT-Datei aktualisierenZusammenfassung der AktualisierungAktualisierungenKatalog wird aktualisiertDie Aktualisierung ist fehlgeschlagenAktualisierung des Kataloges fehlgeschlagen. Klicken Sie für weitere Informationen auf »Details >>«.Benutzerinformationen werden aktualisiert …Übersetzungen werden hochgeladen …Benutzerdefinierten Ausdruck verwendenBenutzerdefinierte Schriftart für Listen verwenden:Benutzerdefinierte Schriftart für Textfelder verwenden:Standard-Regeln für diese Sprache verwendenDiese Schlüsselwörter (Funktionsnamen) benutzen, um übersetzbare Zeichenketten in Quelldateien zu erkennen:Übersetzungsspeicher verwendenPrüfenÜberprüfungsergebnisseVersion %sAuf Authentifizierung warten …Willkommen bei PoeditWas ist Crowdin?Beim Aktualisieren von QuelldatenNur ganze WörterFensterWindowsAm Ende von vorne beginnenUmbrechen bei:JaSie können die zu übersetzenden Zeichenketten auch direkt aus dem Quellcode extrahieren:Sie können nicht mehr als eine Datei ins Poedit-Fenster ziehen.Sie müssen Poedit neu starten, damit diese Änderung wirksam wird.Ihr NameIhre Änderungen gehen verloren, wenn Sie diese nicht speichern.Ihr Name und die E-Mail-Adresse werden nur verwendet, um den »Last-Translator«-Eintrag in GNU gettext-Dateien zu setzen.NullVergrößernaltstrgTemporäre Dateien nicht entfernen (für Fehlersuche)z.B. nplurals=2; plural=(n != 1);unklare Übereinstimmung innerhalb der Dateizu Element in der angegebenen Zeilennummer springenpoedit:// Adresse verwendenVorübersetzung aus dem Übersetzungsspeicherumschaltunbekannte Spracheihr_name@beispiel.org»%s« ist keine gültige POT-Datei.poedit-2.0.6/locales/gl.mo0000664000372000037200000014200513230132076012304 00000000000000P%1 1 11<11J 2gW2 22 22 222 3333%3+333B3Q3W3]3f3z333333333333 3 44 4)4 04=4M4c4y44444444445 5(5D5Y5n55555555 6 '6:36:n6 666 6 666 6 7 #707?7O7c7~77777 71898'>8f88 8878689)=9g9 l9]w99A9I*:t:{:; ;;";:; U;`;.h;;;;;;;;<*<F<#[<<<<<<<<(<(=7= R=s=|== ==/= = >>#>9>L>b>2>>>>> ?)???????@@@ 2@?@R@Ee@"@?@ AA*.A YAfAyAK~A"A5A#B)BHAH HHI 'IHI PI ]IiI"nI;I(IIJ&J 5J ?JMJjJ ~JJJJJ JJK:K PK<^K.KKKKLL*%LPLVLgL xL LLJMNMgM MMMMM#MM'M$N7DN$|N%NNNNNNOOOO O2O P#P9PNP]PlPtP|PPPPPPPPQQQnQERZR>aR RRRR@RS-T Tu"ɤߤ5 /=EKSek ¥٥1G[$s5T(c  ҧXrĨը ;G$_ *Ѫ 1 <N?;7ʫ?حM׮X%r~b'Tq|J&9>`6Dֱ/(Kt')?-i.-Ƴ6r+,L˴azN aZiB&i8I7pLg%, =HezԻ 'ȼͼ- +8 ?J*Z5$$3C\[s)Ͼ!!60X3r 0QY s  H#>l8 3#6#!(/Jz'D}],6 9BW6tC3H>C'# )h?*Kq#-0^aG2zFYblx&2LADZ.EwPi=Ab[kv @4uh~ uL@|pnf.nTN? QI2:qOKcajd F!p ]U>T+rXi=J%Vxz51^s4 NH/F"8/XJ`om #UwQk :Gs$ 8jL!~I1,(<D-9B>|;$H(E?g<y!dYgIo \ <eN+rM5&cM5 :"K-A+EmZ7C"603B $%RfRVeyOG*S@ M,4}_{O%W91J)S[`' 7)v &;*{(l_.03=\7P8/t';P (modified) (unsaved)%d entry%d entries%d entry was pre-translated.%d entries were pre-translated.%d error%d errors%d issue with the translation found.%d issues with the translation found.%i line of file “%s” was not loaded correctly.%i lines of file “%s” were not loaded correctly.%s Format%s Preferences%s format&About&About Poedit&Apply&Back&Bookmarks&Cancel&Clear&Close&Copy&Delete&Done and Next&Done and next&Edit&File&Find…&GNU gettext Manual&GNU gettext manual&Go&Group By Context&Group by context&Help&New&New…&Next >&Next Translation&Next translation&No&OK&Online Help&Online help&Open...&Open…&Paste&Preferences&Preferences…&Previous Translation&Previous translation&Properties…&Purge Deleted Translations&Purge deleted translations&Quit&Redo&Replace&Save&Save as&Show References&Show references&Undo&Untranslated Entries First&Untranslated entries first&Update from Sources&Update from sources&Validate Translations&Validate translations&View&Yes(0 new, 0 obsolete)(Learn more about GNU gettext)(New: %i, obsolete: %i)(Use default language)(requires Windows 8 or newer)< &PreviousDrag and Drop Folders Here or use the + buttonDrag and drop folders here or use the + buttonAbout %sAccountsAdd CommentAdd Files…Add Folders…Add Wildcard…Add commentAdd directory to the listAdd files…Add folders…Add wildcard…Additional keywordsAdditional xgettext flags:AdvancedAdvanced Extraction Settings…Advanced extraction settingsAdvanced extraction settings…All Translation FilesAll commentsAlso use default keywords for supported languagesAlt+Always change focus to text input fieldAn item in input files list:An item in keywords list:AppearanceApplyAre you sure you want to delete the “%s” extractor?Are you sure you want to reset the translation memory?Automatically check for updatesAutomatically compile MO file when savingBackBase path:Beta versions contain the latest new features and improvements, but may be a bit less stable.Bring All to FrontBroken catalog file: plural form msgstr used without msgid_pluralBroken catalog file: singular form msgstr used together with msgid_pluralBrowseBy default, inaccurate results are filled in as well and marked as needing work. Check this option to only include accurate matches.C&atalogC&learCancelCannot create temporary directory.Cannot execute program: %sCapitalizeCatalogCatalog modified. Do you want to save changes?Catalog propertiesCatalogs &ManagerCatalogs &managerCatalogs ManagerChange UI languageCharset:Check Document NowCheck Grammar With SpellingCheck Spelling While TypingCheck for Updates…Check for errors in the translationCheck for updates…Check spellingClearClear TranslationClear the commentClear translationCloseCollaborate on a Translation with OthersCollaborate on a translation with othersCollecting source files…Command to extract translations:Comment:Comments prefixed with:Compile to MO…Compile to…Compiled Translation FilesConfigure source code extraction in Properties.ConfirmationCopyCopy From SingularCopy from Source TextCopy from singularCopy from source textCorrect Spelling AutomaticallyCouldn’t load file %s, it is probably corrupted.Couldn’t save file %s.Create New TranslationCreate new translationCreate new translations projectCrowdin errorCrowdin is an online localization management platform and collaborative translation tool. Poedit can seamlessly sync PO files managed at Crowdin.Ctrl+Cu&tCustom Extractors:Custom extractors:CutDatabase size on disk:DeleteDelete extractorDelete the projectDirectories:Display Entry &IDsDisplay entry &IDsDo you really want to do mass update of all catalogs in this project?Do you want to delete the project?Do you want to remove all translations that are no longer used?Don’t SaveDon’t Show AgainDon’t mark exact matches as needing workDon’t saveDon’t show againDownDownload a file from Crowdin project, translate and sync your changes back.Downloading latest translations…Downloading translations is disabled in this project.E&xitE&xport as HTML…EditEdit &CommentEdit &commentEdit CommentEdit a TranslationEdit a translationEdit commentEdit projectEdit the projectEditingEdit…Email:EnterEnter Full ScreenEntries in the catalog are probably incorrect.Entries in this catalog have different plural forms count from what catalog’s Plural-Forms header saysEntries with Errors FirstEntries with errors firstEntries with errors were marked in red in the list. Details of the error will be shown when you select such an entry.Error loading message catalog file “%s”.Error opening fileError opening file %s!Error saving catalogErrorsEverythingExcluded pathsExport as…Extract from sourcesExtract notes for translators from:Extract text from source files in the following directories:Extracting translatable strings…Extractor setupExtractorsFailed command: %sFailed to communicate with Poedit process.Failed to load extracted catalog.Failed to merge gettext catalogs.Failed to update translation memory: %sFileFile “%s” doesn’t exist.File “%s” is not a message catalog.File “%s” is read-only and cannot be saved. Please save it under different name.File:Finalizing…FindFind NextFind PreviousFind and Replace…Find in commentsFind in source textsFind in translationsFind nextFind previousFix LanguageFix languageFix the HeaderFix the headerForm %iFrequentGNU gettextGeneralGo to Bookmark %iGo to bookmark %iHTML FilesHelpHide %sHide OthersHide SidebarHide Status BarHide this notification messageIDIf you continue with purging, all translations marked as deleted will be permanently removed. You will have to translate them again if they are added back in the future.Ignore caseImporting translations…Include beta versionsInformation about the translatorInstallInvalid fileInvocation:KeepLanguage Code or Name (e.g. en_GB)Language of the translation is the same as source language.Language of the translation isn’t set.Language of the translation:Language selectionLanguage team:Language:Last modifiedLearn About Gettext KeywordsLearn From Files…Learn MoreLearn More About CrowdinLearn about gettext keywordsLearn about plural formsLearn from files…Learn moreLearn more about CrowdinLeftLine %d of file “%s” is corrupted (not valid %s data).Line endings:List of extensions separated by semicolons (e.g. *.cpp;*.h):MO files can’t be directly edited in Poedit.Make Lower CaseMake Upper CaseMalformed header: “%s”Merging differences…MinimizeName of the project the translation is forName:Ne&xt UnfinishedNe&xt unfinishedNeeds WorkNeeds workNever let the list of strings take focus. If enabled, you must use Ctrl-arrows for keyboard navigation but you can also type text immediately, without having to press Tab to change focus.NewNew From &POT/PO File…New from &POT/PO file…New stringsNext Plural FormNext plural formNoNo Matches FoundNo entries could be pre-translated.No matches foundNo problems with the translation found.No references for the selected item.No translation projects listed in your Crowdin account.Not all plural forms are translated.Not authorized, please sign in again.Notes for translators:OKObsolete stringsOneOnly enable if you trust the quality of your TM. By default, all matches from the TM are marked as needing work and should be reviewed before use.Only fill in exact matchesOpenOpen Crowdin translationOpen From Crowdin…Open RecentOpen an existing PO file and edit the translation.Open catalogOpen catalog templateOpen from Crowdin…Open in EditorOpen in editorOpen...Open…OptionsOtherP&revious UnfinishedP&revious unfinishedPO TranslationPO Translation FilesPOT Translation TemplatesPOT files are only templates and don’t contain any translations themselves. To make a translation, create a new PO file based on the template.PastePaste and Match StylePathsPlease open and edit the corresponding PO file instead. When you save it, the MO file will be updated as well.Please save the file first. This section cannot be edited until then.PluralPlural forms expression used by the catalog is unusual for %s.Plural forms:Plural:PoeditPoedit - Catalogs managerPoedit automatically fixed invalid content in the file “%s”.Poedit can attempt to fill in new entries from only previous translations in the file or from your entire translation memory. Using the TM won’t be very effective if it’s near-empty, but it will get better as you add more translations to it.Poedit is an easy to use translations editor.Pre-&translate…Pre-translatePre-translatedPre-translated %u stringPre-translated %u stringsPre-translating…Pre-translation automatically finds exact or fuzzy matches for untranslated strings in the translation memory and fills in their translations.PreferencesPreferences...Preferences…Preserve formatting of existing filesPrevious Plural FormPrevious plural formPrevious source text:Project name and version:Project name:Project:PurgePurge deleted translationsQuitQuit %sRecentRedoReferences:RefreshRemaining: %dReplaceReplace &AllReplace &allReplacement stringReplace…Required header Plural-Forms is missing.ResetReset translation memoryResetting the translation memory will irrevocably delete all stored translations from it. You can’t undo this operation.ReviewRightSaveSave &As…Save &as…Save asSave as…Save catalogSave changesSelect &AllSelect AllSelect directorySelect translation files to importSelect your preferred languageServicesSet Bookmark %iSet LanguageSet bookmark %iSet languageShift+Show AllShow SidebarShow Spelling and GrammarShow Status BarShow SubstitutionsShow or hide the sidebarShow sidebarShow status barShow summary after catalog updateSidebarSign InSign OutSign inSign in to CrowdinSign outSigned in as:SingularSingular:Smart Copy/PasteSmart DashesSmart LinksSmart QuotesSort by &File OrderSort by &SourceSort by &TranslationSort by &file orderSort by &sourceSort by &translationSource code charset:Source code extractors are used to find translatable strings in the source code files and extract them so that they can be translated.Source code not available.Source fileSource file occurrence:Source textSource text — %sSource text:Sources KeywordsSources PathsSources keywordsSources pathsSpeechSpellchecking is disabled, because the dictionary for %s isn’t installed.Spelling and GrammarStart SpeakingStop SpeakingStored translations:String to findSubstitutionsSuggestionsSuggestions are not available if the translation language is not set correctly. Other features, such as plural forms, may be affected as well.Supports all programming languages recognized by GNU gettext tools (PHP, C/C++, C#, Perl, Python, Java, JavaScript and others).SyncSync with CrowdinSynchronize the translation with CrowdinSyncingSyncing errorSyncing with %s failed.Syncing with %s…Syncing with Crowdin failed.Syntax error in Plural-Forms header ("%s").TMTake an existing PO file or POT template and create a new translation from it.Take translatable strings from an existing POT template.Team name and email address or URLText ReplacementThe TM doesn’t contain any strings similar to the content of this file. It is only effective for semi-automatic translations after Poedit learns enough from files that you translated manually.The catalog couldn’t be saved in “%s” charset as specified in catalog settings. It was saved in UTF-8 instead and the setting was modified accordingly.The file cannot be compiled into the MO format and used.The file cannot be opened.The file contained duplicate items, which is not allowed in PO files and would prevent the file from being used. Poedit fixed the issue, but you should review translations of any items marked as needing work and correct them if necessary.The file may be either corrupted or in a format not recognized by Poedit.The file was compiled into the MO format, but it will probably not work correctly.The file was saved safely and compiled into the MO format, but it will probably not work correctly.The file was saved safely, but it cannot be compiled into the MO format and used.The file was saved safely.The old source text (before it changed during an update) that the now-inaccurate translation corresponds to.The simplest way to fill this catalog is to update it from a POT:The translation doesn’t start with a space.The translation ends with a newline, but the source text doesn’t.The translation ends with a space, but the source text doesn’t.The translation ends with “%s”, but the source text ends with “%s”.The translation is missing a newline at the end.The translation is missing a space at the end.The translation is ready for use, but %d entry is not translated yet.The translation is ready for use, but %d entries are not translated yet.The translation is ready for use.The translation should end with “%s”.The translation should not end with “%s”.The translation should start as a sentence.The translation should start with a lowercase character.The translation starts with a space, but the source text doesn’t.The translations were marked as needing work, because they may be inaccurate. You should review them for correctness.There are no translations. That’s unusual.There was a problem formatting the file nicely (but it was saved all right).There were errors when loading the catalog. Some data may be missing or corrupted as the result.These settings affect internal formatting of PO files. Adjust them if you have specific requirements e.g. because of version control.These strings are no longer in the sources. Poedit will remove them from the catalog now.These strings were found in the sources but were not in the catalog. Poedit will add them to the catalog now.This catalog has entries with plural forms, but doesn’t have Plural-Forms header configured.This file can only be edited in Crowdin’s web interface.This is the command used to launch the extractor. %o expands to the name of output file, %K to list of keywords, %F to list of input files, %C to charset flag (see below).This project has no files that can be translated in Poedit.This string was found in Poedit’s translation memory.This will be attached to the command line only if source code charset was given. %c expands to charset value.This will be attached to the command line once for each input file. %f expands to the filename.This will be attached to the command line once for each keyword. %k expands to the keyword.TotalTransformationsTranslatable entries aren’t added manually in the Gettext system, but are automatically extracted from source code. This way, they stay up to date and accurate. Translators typically use PO template files (POTs) prepared for them by the developer.Translated: %d of %d (%d %%)Translation LanguageTranslation MemoryTranslation Needs &WorkTranslation PropertiesTranslation needs &workTranslation propertiesTranslation suggestions:Translation — %sTranslation:Translations couldn’t be updated from the source code, because no code was found in the location specified in the catalog’s Properties.TwoUTF-8 (recommended)UndoUnhandled exception occurred: %sUnix (recommended)UntransUpUpdateUpdate allUpdate all catalogs in the projectUpdate catalog - synchronize it with sourcesUpdate from &POT File…Update from &POT file…Update from POTUpdate summaryUpdatesUpdating catalogUpdating failedUpdating the catalog failed. Click on 'Details >>' for details.Updating user information…Uploading translations…Use custom expressionUse custom list font:Use custom text fields font:Use default rules for this languageUse these keywords (function names) to recognize translatable strings in source files:Use translation memoryValidateValidation resultsVersion %sWaiting for authentication…Welcome to PoeditWhat is Crowdin?When updating from sourcesWhole words onlyWindowWindowsWrap aroundWrap at:YesYou can also extract translatable strings directly from the source code:You can’t drop more than one file on Poedit window.You must restart Poedit for this change to take effect.Your NameYour changes will be lost if you don’t save them.Your name and email address are only used to set the Last-Translator header of GNU gettext files.ZeroZoomaltctrldon’t delete temporary files (for debugging)e.g. nplurals=2; plural=(n > 1);fuzzy match within the filego to item at given line numberhandle a poedit:// URIpre-translate from TMshiftunknown languageyour_email@example.com“%s” is not a valid POT file.Project-Id-Version: poedit Report-Msgid-Bugs-To: help@poedit.net POT-Creation-Date: 2017-12-05 15:52+0100 PO-Revision-Date: 2017-12-05 09:50-0500 Last-Translator: vslavik Language-Team: Galician Language: gl_ES MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=(n != 1); X-Generator: crowdin.com X-Crowdin-Project: poedit X-Crowdin-Language: gl X-Crowdin-File: /locales/poedit.pot (modificado) (sen gardar)%d entrada%d entradas%d entrada foi pre-traducida.%d entradas foron pre-traducidas.%d erro%d errosatopouse %d problema coa traduciónatopáronse %d problemas coa tradución.Non se cargou de maneira correcta %i liña do ficheiro «%s».Non se cargaron de maneira correcta %i liñas do ficheiro «%s».Formato %sPreferencias do %sformato %s&Sobre&Sobre Poedit&Aplicar&Volver&Marcadores&Cancelar&Limpar&Pechar&Copiar&Eliminar&Feito e seguinte&Feito e continuar coa seguinte&Editar&Ficheiro&Buscar…Manual de &GNU gettextManual de &GNU gettext&Ir aA&grupar por contextoA&grupar por contexto&Axuda&Novo&Novo…&Seguinte >Tradución &seguinteTradución &seguinte&Non&AceptarAxuda &en InternetAxuda &en Internet&Abrir...A&brir…&Pegar&Preferencias&Preferencias…Tradución &anteriorTradución &anterior&Propiedades…&Purgar as traducións eliminadas&Purgar as traducións eliminadas&Saír&Refacer&Substituír&GardarGardar &comoMo&strar as referenciasMo&strar as referencias&DesfacerEntradas &sen traducir primeiroEntradas &sen traducir primeiroAct&ualizar desde as fontesAct&ualizar desde as fontes&Validar as traducións&Validar as traducións&Ver&Si(0 novas, 0 obsoletas)(Saber máis sobre o GNU gettext)(Novas: %i, obsoletas: %i)(Usar idioma predeterminado)(cómpre Windows 8 ou posterior)< &AnteriorArrastre e solte cartafoles aquí ou utilice o botón +Arrastre e solte cartafoles aquí ou utilice o botón +Sobre %sContasEngadir comentarioEngadir cartafoles…Engadir cartafoles…Engadir comodín…Engadir comentarioEngadir directorio á listaEngadir cartafoles…Engadir cartafoles…Engadir comodín…Palabras clave adicionaisBandeiras xgettext adicionais:AvanzadoAxustes avanzados de extracción…Axustes avanzados de extracciónAxustes avanzados de extracción…Todos os ficheiros de traduciónTodos os comentariosUse tamén as palabras clave predeterminadas nos idiomas aceptadosAlt+Cambiar o foco sempre ao campo da entrada de textoUn elemento da lista de ficheiros de entrada:Un elemento da lista de palabras clave:AparenciaAplicarTen a certeza de querer eliminar o extractor "%s"?Ten a certeza de querer restablecer a memoria de tradución?Mirar de actualizacións automaticamenteCompilar automaticamente o ficheiro MO ao gardarVolverRuta base:As versións beta conteñen as funcionalidades e melloras máis recentes, mais poden resultar menos estables.Traer todo á fronteO ficheiro do catálogo está corrompido: emprégase a forma plural de msgstr sen existir msgid_pluralO ficheiro do catálogo está corrompido: emprégase a foma singular de msgstr xunto con msgid_pluralExplorarDe modo predeterminado, os resultados inexactos tamén se completan e son marcados como dubidosos. Marque esta opción para incluír só coincidencias exactas.C&atálogo&BorrarCancelarNon foi posíbel crear o directorio temporal.Non foi posíbel executar o programa: %sMaiúsculasCatálogoModificouse o catálogo. Desexa gardar as modificacións?Propiedades do catálogoXestor de &catálogos&Xestor de proxectosXestor de catálogosCambiar o idioma da interfaceXogo de caracteres:Comprobar documento agoraRevisar gramática e ortografíaRevisar ortografía mentres se escribeBuscar actualizacións…Buscar erros na traduciónBuscar actualizacións…Revisar a ortografíaLimparBorrar a traduciónBorrar o comentarioBorrar a traduciónPecharColabore con outras persoas nas traduciónsColaborar nunha tradución con outrosRecompilando ficheiros orixe…Comando para extraer as traducións:Comentario:Comentarios prefixados con:Compilar a MO…Compilar a…Ficheiros de tradución compiladosConfigure a extracción de código fonte en Propiedades.ConfirmaciónCopiarCopiar do singularCopiar o texto orixeCopiar do singularCopiar o texto orixeCorrixir ortografía automaticamenteNon foi posible cargar o ficheiro %s, probablemente estea corrompido.Non foi posible gardar o ficheiro %s.Crear unha nova traduciónCrear unha nova traduciónCrear novo proxecto de traduciónErro de CrowdinCrowdin é unha plataforma de xestión de localización e tradución colaborativas en liña. Poedit pode sincronizar ficheiros PO xestionados con Crowdin.Ctrl+Cor&tarExtractores personalizados:Extractores personalizados:CortarTamaño da base de datos no disco:EliminarEliminar extractorEliminar o proxectoDirectorios:Mostrar &ID das entradasMostrar &ID das entradasDesexa facer unha actualización masiva de todos os catálogos do proxecto?Desexa eliminar o proxecto?Desexa eliminar todas as traducións que xa non se empregan?Non gardarNon mostrar novamenteNon marcar coincidencias exactas como dubidosasNon gardarNon mostrar novamenteAbaixoDescargue un ficheiro desde Crowdin, traduza e sincronice os cambios.Descargando as traducións máis recentes…A descarga de traducións está deshabilitada neste proxecto.&SaírE&xportar como HTML…EditarEditar &comentarioEditar o &comentarioEditar o comentarioEditar a traduciónEditar unha traduciónEditar o comentarioEditar o proxectoEditar o proxectoEdiciónEditar…Correo electrónico:IntroModo de pantalla completaProbabelmente as entradas do catálogo sexan incorrectas.As entradas deste catálogo teñen un número de formas plurais diferente ao que indica a cabeceira de formas do pluralPrimeiro as entradas con errosPrimeiro as entradas con errosAs entradas con erros márcanse en vermello na lista. Os detalles do erro mostraranse cando seleccione unha destas entradas.Produciuse un erro cargando o ficheiro do catálogo das mensaxes «%s».Erro ao abrir o ficheiroProduciuse un erro ao abrir o ficheiro %s!Produciuse un erro ao gardar o catálogoErrosTodoCamiños excluídosExportar como…Extraer desde as fontesExtraer notas para tradutores de:Extraer textos dos ficheiros de código fonte que están nos seguintes directorios:Extraendo cadeas traducíbeis…Configuración do extractorExtractoresProduciuse un erro ao executar a orde: %sErro de comunicación co proceso do Poedit.Produciuse un erro ao cargar o catálogo extraído.Produciuse un erro ao fusionar os catálogos gettext.Erro ao actualizar a memoria de tradución: %sFicheiroO ficheiro «%s» non existe.O ficheiro «%s» non é un catálogo de mensaxes.O ficheiro «%s» é de só lectura e non é posible gardalo. Gárdeo cun nome diferente.Ficheiro:Rematando…BuscarBuscar seguinteBuscar anteriorBuscar e substituír…Buscar nos comentariosAtopar nos textos fonteBuscar nas traduciónsBuscar seguinteBuscar anteriorSolucionar idiomaSolucionar idiomaCorrixir a cabeceiraArranxar a cabeceiraForma %iFrecuentesGNU gettextXeralIr ao marcador %iIr ao marcador %iFicheiros HTMLAxudaAgochar %sAgochar outrosAgochar barra lateralAgochar a barra de estadoOcultar esta mensaxe de notificaciónIDSe continua coa purga, todas as traducións marcadas para eliminar retiraranse permanentemente do ficheiro. Terá que traducilas outra vez se se volven engadir no futuro.Ignorar maiúsculas e minúsculasImportando as traducións…Incluír versións betaInformación acerca do/a tradutor/aInstalarFicheiro non válidoInvocación:ManterCódigo ou nome do idioma (ex.: GL)O idioma da tradución é o mesmo que o de orixe.O idioma da tradución está sen definir.Idioma da tradución:Selección de idiomaEquipo de idioma:Idioma:Última modificaciónSaiba máis sobre as palabras clave de GettextAprender dos ficheiros…Saber máisMáis información sobre CrowdinSaber máis sobre as palabras clave de gettextAprenda sobre as formas do pluralAprender dos ficheiros…Aprender máisMáis información sobre CrowdinEsquerdaA liña %d do ficheiro «%s» está danada (datos %s non válidos).Finais de liña:Lista de extensións separadas con punto e coma (p.ex. *.cpp; *.h):Os ficheiros MO non se poden editar directamente en Poedit.Converter a minúsculasConverter a maiúsculasCabeceira mal formada: «%s»Fusionando as diferenzas…MinimizarO nome do proxecto ao que pertence esta traduciónNome:Seguin&te sen rematarSeguin&te sen rematarDubidosaDubidosaNunca deixar que a lista de mensaxes teña o foco. Se está activado, debe usar Ctrl-frechas para navegar co teclado pero tamén poderá introducir texto inmediatamente, sen ter que premer Tabulación para cambiar o foco.NovoNova a partir dun ficheiro &POT/PO…Nova a partir dun ficheiro &POT/PO…Novas cadeasForma plural seguinteForma plural seguinteNonNon se atoparon coincidenciasNon foi posíbel pre-traducir entrada ningunha.Non se atoparon coincidenciasNon se atoparon problemas coa tradución.Non hai referencias para o elemento seleccionado.Ningún proxecto de tradución listado na súa conta de Crowdin.Non se traduciron todas as formas do plural.Acción non autorizada; accede de novo.Notas para os tradutores:AceptarCadeas obsoletasUnActive isto unicamente se confía na calidade da súa MT. Predeterminadamente, todas as coincidencias coa MT márcanse como dubidosas e deben revisarse antes do seu uso.Só aquelas correspondencias exactasAbrirAbrir tradución de CrowdinAbrir desde Crowdin…Abrir recentesAbrir un ficheiro PO existente e editar a tradución.Abrir catálogoAbrir o modelo de catálogoAbrir desde Crowdin…Abrir no editorAbrir no editorAbrir...Abrir…OpciónsOutro&Anterior sen rematar&Anterior sen rematarTradución POFicheiros de tradución POModelos de tradución POTOs ficheiros POT son unicamente modelos e non conteñen traducións. Para traducir, cree un novo ficheiro PO con base no modelo.PegarPegar e coincidir estiloRutasPor favor, abra e edite no seu lugar o ficheiro PO correspondente. Cando o garde, o ficheiro MO actualizarase tamén.Por favor, garde o ficheiro primeiro. Esta sección non pode ser editar ata que o faga.PluralA expresión de formas plurais usada no catálogo non é habitual no %s.Formas do plural:Plural:PoeditPoedit - Xestor de catálogosPoedit corrixiu automaticamente o contido non válido do ficheiro "%s".Poedit pode tentar completar as novas entradas desde traducións previas no ficheiro ou desde a memoria de tradución completa. Usar a MT non será efectivo se está case baleira pero mellorará a medida que se lle engadan traducións.Poedit é un editor de traducións fácil de usar.Pre-&traducir…Pre-traducirPre-traducidoPre-traduciuse %u cadeaPre-traducíronse %u cadeasPre-traducindo…A Pre-tradución automaticamente atopa coincidencias exactas ou dubidosas na memoria de tradución para as cadeas sen rematar e úsaas para completar a tradución.PreferenciasPreferencias...Preferencias…Conservar o formato dos ficheiros existentesForma plural anteriorForma plural anteriorTexto fonte anterior:Nome e versión do proxecto:Nome do proxecto:Proxecto:PurgarPurgar as traducións eliminadasSaírSaír do %sRecentesRefacerReferencias:ActualizarPendente: %dSubstituírSubstituír &todoSubstituír &todoTexto de substituciónSubstituír…Falta a cabeceira requirida de formas do plural.RestablecerRestablecer memoria de traduciónAo restablecer a memoria de tradución, borraranse todas as traducións almacenadas. Esta operación non se pode desfacer.AvaliarDereitaGardarGard&ar como…Gard&ar como…Gardar comoGardar como…Gardar o catálogoGardar os cambiosSeleccionar &todoSeleccionar todoSeleccione un directorioSeleccione os ficheiros de tradución para importarSeleccione o seu idioma preferidoServizosDefinir marcador %iDefinir idiomaDefinir marcador %iDefinir o idiomaMaiús+Mostrar todoMostrar barra lateralMostrar ortografía e gramáticaMostrar a barra de estadoMostrar substituciónsMostrar ou agochar a barra lateralMostrar barra lateralMostrar a barra de estadoMostrar resumo despois da actualización do catálogoBarra lateralAccederSaírAccederAcceder a CrowdinSaírSesión iniciada como:SingularSingular:Copiar/pegar intelixenteTrazos intelixentesLigazóns intelixentesComiñas intelixentesOrdenar por &ficheiroOrdenar pola &orixeOrdenar por &traduciónOrdenar por &ficheiroOrdenar pola &orixeOrdenar por &traduciónXogo de caracteres do código fonte:Os extractores de código fonte utilízanse para atopar as mensaxes traducibles nos ficheiros de código fonte, extraelas e así permitir a súa tradución.Código fonte non dispoñible.Ficheiro fonteAparición en ficheiro de código fonte:Texto orixeTexto fonte — %sTexto orixe:Palabras clave das orixesRutas das orixesPalabras clave das orixesRutas do código fonteFalaDesactivouse a revisión ortográfica porque non está instalado o dicionario para o %s.Ortografía e gramáticaComezar a falarDeixar de falarTraducións almacenadas:Texto que atoparSubstituciónsSuxestiónsAs suxestións non están dispoñibles se o idioma de tradución non está definido correctamente. Outras funcionalidades, tales como as formas plurais, tamén poden verse afectadas.Acepta todos as linguaxes de programación recoñecidas polas ferramentas de GNU gettext (PHP, C/C++, C#, Perl, Python, Java, JavaScript e outras).SincronizarSincronizar con CrowdinSincronizar a tradución con CrowdinSincronizandoErro ao sincronizarProduciuse un fallo ao sincronizar con %s.Sincronizando con %s…Erro ao sincronizar con Crowdin.Erro de sintaxe na cabeceira Plural-Forms ("%s").MTTomar un ficheiro PO ou POT existente e crear unha traducción a partir deste.Tomar as cadeas traducibles desde un patrón POT existente.Nome do equipo e enderezo de correo electrónico ou URLSubstitución de textoA MT non contén ningunha cadea similar ao contido deste ficheiro. Só será efectiva para traducións semiautomáticas logo de que Poedit aprenda o suficiente de ficheiros traducidos manualmente polo usuario.Non foi posible gardar o catálogo co xogo de caracteres «%s» tal como se especificou nos axustes do catálogo. Gardouse en UTF-8 e en consecuencia modificouse o axuste.O ficheiro non pode ser compilado ao formato MO para o seu uso.Non se pode abrir o ficheiro.O ficheiro contiña elementos duplicados, non permitidos nos ficheiros PO que impedirían o seu uso. Poedit solucionou o problema, mais debe revisar as traducións marcadas como dubidosas e corrixilas no caso de ser preciso.Pode ser que o ficheiro estea danado ou nun formato que Poedit non recoñece.O ficheiro foi compilado ao formato MO, mais é posíbel que non funcione correctamente.O ficheiro gardouse satisfactoriamente e compilouse no formato MO, mais é posible que non funcione correctamente.O ficheiro gardouse de forma segura, pero non foi posíbel compilalo ao formato MO para utilizalo.O ficheiro gardouse satisfactoriamente.Texto fonte antigo (antes de cambiar durante unha actualización) ao que corresponde a agora inexacta tradución.O xeito máis simple de encher este catálogo é actualizalo desde un POT:A tradución non comeza por un espazo.A tradución remata cun salto de liña pero o texto orixe non.A tradución remata cun espazo pero o texto orixe non.A tradución remata con «%s» pero o texto orixe remata con «%s».Falta o salto de liña ao remate da tradución.Falta un espazo ao remate da tradución.A tradución está pronta para o seu uso, mais aínda hai %d cadea sen traducir.A tradución está pronta para o seu uso, mais aínda hai %d cadeas sen traducir.A tradución está lista para utilizar.A tradución debería rematar con «%s».A tradución non debería rematar con «%s».A tradución debería comezar como unha frase.A tradución debería comezar con minúscula.A tradución comeza cun espazo pero o texto orixe non.As traducións marcáronse como dubidosas porque poden ser inexactas. Debería revisalas e no seu caso corrixilas.Non hai traducións. Isto non é o habitual.Produciuse un problema ao formatar o ficheiro (pero gardouse correctamente).Producíronse erros ao cargar o catálogo. Pode que se perderan ou corromperan algúns dos datos.Estes valores afectan ao formato interno dos ficheiros PO. Axústaos se tes requisitos específicos; por exemplo, debido ao control de versión.Estas cadeas xa non están nas fontes. Poedit eliminaráas do catálogo agora.Atopáronse estas cadeas nas fontes pero non no catálogo. Poedit engadiráas agora ao catálogo.Este catálogo ten entradas con formas plurais, pero non ten configurada a cabeceira de formas do plural.Este ficheiro só se pode editar desde a interface web de Crowdin.Este comando emprégase para abrir o extractor. %o expande o nome do ficheiro de saída, %K mostra as palabras clave, %F fai unha listaxe dos ficheiros de entrada e %C define o conxunto de caracteres (véxase máis abaixo).Este proxecto non ten ficheiros para traducir en Poedit.Esta cadea atopouse na memoria de tradución de Poedit.Isto engadirase á liña de ordes só se se proporciona o xogo de caracteres do código fonte. %c substituirase polo valor do xogo de caracteres.Isto engadirase á liña de ordes unha vez por cada ficheiro de entrada. %f substituirase polo nome de ficheiro.Isto engadirase á liña de ordes unha vez por cada palabra clave. %k substituirase pola palabra clave.Total TransformaciónsAs entradas traducibles non se engaden manualmente no sistema Gettext, senón que se extraen automaticamente do código. Así, mantéñense actualizadas e precisas. Quen traduce, normalmente emprega os modelos de ficheiros PO (POT) proporcionados polo desenvolvedor.Traducidas: %d de %d (%d %%)Idioma da traduciónMemoria de traduciónTradución du&bidosaPropiedades da traduciónTradución du&bidosaPropiedades da traduciónSuxestións de tradución:Tradución — %sTradución:Non se puideron actualizar as traducións a partir do código fonte porque non se atopou tal código na localización especificada nas propiedades do catálogo.DousUTF-8 (recomendado)DesfacerProduciuse unha excepción non controlada: %sUnix (recomendado)Sen traducirArribaActualizarActualizar todoActualizar todos os catálogos do proxectoActualizar catálogo - sincronizalo coas súas fontesActualizar desde un ficheiro &POT…Actualizar desde un ficheiro &POT…Actualizar desde POTResumo da actualizaciónActualizaciónsActualizando o catálogoErro na actualizaciónProduciuse un erro ao actualizar o catálogo. Prema en «Detalles>>» para ver os detalles.Actualizando a información do usuario…Cargando as traducións…Utilizar expresión personalizadaFonte personalizada nas listaxes:Tipo de letra personalizado nos campos de texto:Utilizar as regras predeterminadas para este idiomaUse estas palabras clave (nomes de funcións) para recoñecer cadeas intraducibles nos ficheiros de código fonte:Utilizar a memoria de traduciónValidarResultados da validaciónVersión %sAgardando a autenticación…Benvido/a a PoeditQue é Crowdin?Cando actualice desde as fontesSó palabras completasXanelaWindowsBusca circularAxustar a:SiTamén pode extraer as cadeas traducibles directamente do código fonte:Non pode arrastrar máis dun ficheiro a unha xanela de Poedit.Debe reiniciar Poedit para que este cambio teña efecto.O seu nomeOs cambios perderanse a menos que vostede os garde.Estes datos (nome e correo electrónico) empréganse unicamente para establecer o valor da cabeceira «Last-Translator» dos ficheiros de GNU gettext.CeroZoomaltctrlnon eliminar os ficheiros temporais (para depuración)p. ex., nplurals=2; plural=(n > 1);coincidencia dubidosa no ficheiroir ao elemento dun número de liña determinadomanexar un URI de poedit://pre-traducir da MTmaiúsidioma descoñecidoo_seu_correo@exemplo.com«%s» non é un ficheiro POT correcto.poedit-2.0.6/locales/sv.po0000664000372000037200000015056213230131554012344 00000000000000msgid "" msgstr "" "Project-Id-Version: poedit\n" "Report-Msgid-Bugs-To: help@poedit.net\n" "POT-Creation-Date: 2017-12-05 15:52+0100\n" "PO-Revision-Date: 2017-12-05 09:50-0500\n" "Last-Translator: vslavik \n" "Language-Team: Swedish\n" "Language: sv_SE\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: crowdin.com\n" "X-Crowdin-Project: poedit\n" "X-Crowdin-Language: sv-SE\n" "X-Crowdin-File: /locales/poedit.pot\n" msgid "Hide this notification message" msgstr "Dölj det här meddelandet" msgid "Don’t Show Again" msgstr "Visa inte igen" msgid "Don’t show again" msgstr "Visa inte igen" #, c-format msgid "(New: %i, obsolete: %i)" msgstr "(Nya: %i, föråldrade: %i)" msgid "Updating catalog" msgstr "Uppdaterar katalog" msgid "Collecting source files…" msgstr "Samlar in källfiler…" msgid "Extracting translatable strings…" msgstr "Extraherar översättbara strängar…" msgid "Failed to load extracted catalog." msgstr "Det gick inte att läsa extraherad katalog." msgid "Merging differences…" msgstr "Sammanfogar skillnader…" #, c-format msgid "“%s” is not a valid POT file." msgstr "\"%s\" är inte en giltig POT-fil." #, c-format msgid "%i line of file “%s” was not loaded correctly." msgid_plural "%i lines of file “%s” were not loaded correctly." msgstr[0] "Rad %i i filen \"%s\" kunde inte laddades korrekt." msgstr[1] "Raderna %i i filen \"%s\" kunde inte laddades korrekt." #, c-format msgid "Line %d of file “%s” is corrupted (not valid %s data)." msgstr "Rad %d i filen '%s' är felaktig (inte giltig %s-data)." #, c-format msgid "Malformed header: “%s”" msgstr "Felaktigt huvud: \"%s\"" msgid "" "Broken catalog file: singular form msgstr used together with msgid_plural" msgstr "" "Trasig katalogfil: singularformen msgstr används tillsammans med msgid_plural" msgid "Broken catalog file: plural form msgstr used without msgid_plural" msgstr "Trasig katalogfil: pluralformen msgstr används utan msgid_plural" msgid "" "There were errors when loading the catalog. Some data may be missing or " "corrupted as the result." msgstr "" "Det uppstod fel vid läsning av katalogen. Som resultat kan vissa uppgifter " "saknas eller ha skadats." #, c-format msgid "Couldn’t load file %s, it is probably corrupted." msgstr "Kunde inte ladda filen %s, den är förmodligen skadad." #, c-format msgid "" "File “%s” is read-only and cannot be saved.\n" "Please save it under different name." msgstr "" "Filen \"%s\" är skrivskyddad och kan inte sparas.\n" "Vänligen spara den under ett annat namn." #, c-format msgid "Couldn’t save file %s." msgstr "Kunde inte spara filen %s." msgid "" "There was a problem formatting the file nicely (but it was saved all right)." msgstr "" "Det uppstod ett problem med att formatera filen snyggt (men den sparades " "okej)." #, c-format msgid "" "The catalog couldn’t be saved in “%s” charset as specified in catalog " "settings.\n" "\n" "It was saved in UTF-8 instead and the setting was modified accordingly." msgstr "" "Katalogen kunde inte sparas med teckenkodningen \"%s\" som specificerats i " "kataloginställningar.\n" "\n" "Den sparades därför istället i UTF-8 och inställningen ändrades därefter." msgid "Error saving catalog" msgstr "Fel vid sparande av katalog" msgid "PO Translation Files" msgstr "PO-översättningsfiler" msgid "POT Translation Templates" msgstr "POT-översättningsmallar" msgid "All Translation Files" msgstr "Alla översättningsfiler" msgid "(Use default language)" msgstr "(Använd standardspråk)" msgid "Select your preferred language" msgstr "Välj önskat språk" msgid "Language selection" msgstr "Språkval" msgid "You must restart Poedit for this change to take effect." msgstr "Du måste starta om Poedit för att denna ändring ska träda i kraft." msgid "Syncing" msgstr "Synkar" #. TRANSLATORS: %s is a cloud destination, e.g. "Crowdin" or ftp.wordpress.com etc. #, c-format msgid "Syncing with %s…" msgstr "Synkroniserar med %s…" #. TRANSLATORS: %s is a cloud destination, e.g. "Crowdin" or ftp.wordpress.com etc. #, c-format msgid "Syncing with %s failed." msgstr "Synkning med %s misslyckades." msgid "Syncing error" msgstr "Synkningsfel" msgid "Downloading translations is disabled in this project." msgstr "Nedladdning av översättningar är inaktiverade i detta projekt." msgid "Not authorized, please sign in again." msgstr "Inte behörig, vänligen logga in igen." msgid "" "Crowdin is an online localization management platform and collaborative " "translation tool. Poedit can seamlessly sync PO files managed at Crowdin." msgstr "" "Crowdin är en online plattform för att hantera översättningar och ett " "verktyg för att samarbeta med översättningar. Poedit kan smidigt " "synkronisera PO-filer som hanteras på Crowdin." msgid "Sign In" msgstr "Logga in" msgid "Sign in" msgstr "Logga in" msgid "Sign Out" msgstr "Logga ut" msgid "Sign out" msgstr "Logga ut" msgid "Waiting for authentication…" msgstr "Väntar på verifiering…" msgid "Updating user information…" msgstr "Uppdaterar användarinformation…" msgid "Signed in as:" msgstr "Inloggad som:" msgid "Learn More About Crowdin" msgstr "Lär dig mer om Crowdin" msgid "Learn more about Crowdin" msgstr "Lär dig mer om Crowdin" msgid "Sign in to Crowdin" msgstr "Logga in till Crowdin" msgid "Open Crowdin translation" msgstr "Öppna Crowdin-översättning" msgid "Project:" msgstr "Projekt:" msgid "Language:" msgstr "Språk:" msgid "File:" msgstr "Fil:" msgid "No translation projects listed in your Crowdin account." msgstr "Inga översättningsprojekt finns på ditt Crowdin-konto." msgid "This project has no files that can be translated in Poedit." msgstr "Detta projekt har inga filer som kan översättas i Poedit." msgid "This file can only be edited in Crowdin’s web interface." msgstr "Denna fil kan endast redigeras i Crowdin:s webbgränssnitt." msgid "Downloading latest translations…" msgstr "Hämtar senaste översättning…" msgid "Syncing with Crowdin failed." msgstr "Synkronisering med Crowdin misslyckades." msgid "Crowdin error" msgstr "Crowdin-fel" msgid "Uploading translations…" msgstr "Laddar upp översättning…" msgid "&Copy" msgstr "&Kopiera" msgid "Learn more" msgstr "Läs mer" msgid "Learn More" msgstr "Lär mer" msgid "&Help" msgstr "&Hjälp" msgid "MO files can’t be directly edited in Poedit." msgstr "MO-filer kan inte öppnas med Poedit." msgid "Error opening file" msgstr "Problem när filen lästes in" msgid "" "Please open and edit the corresponding PO file instead. When you save it, " "the MO file will be updated as well." msgstr "" "Öppna och redigera motsvarande PO-fil i stället. När du sparar den, " "uppdateras MO-filen också." msgid "don’t delete temporary files (for debugging)" msgstr "ta inte bort temporära filer (för felsökning)" msgid "handle a poedit:// URI" msgstr "hantera en poedit:// URI" msgid "go to item at given line number" msgstr "gå till post på givet radnummer" msgid "Failed to communicate with Poedit process." msgstr "Misslyckades att kommunicera med Poedit-processen." #, c-format msgid "Unhandled exception occurred: %s" msgstr "Ohanterat undantag inträffade: %s" msgid "Open catalog" msgstr "Öppna katalog" #, c-format msgid "File “%s” doesn’t exist." msgstr "Filen \"%s\" finns inte." msgid "Poedit is an easy to use translations editor." msgstr "Poedit är en lättanvänd översättningseditor." msgid "Catalogs Manager" msgstr "Kataloghanterare" msgid "Check for Updates…" msgstr "Sök efter uppdateringar…" msgid "&Edit" msgstr "&Redigera" msgid "Undo" msgstr "Ångra" msgid "Redo" msgstr "Gör om" msgid "Paste and Match Style" msgstr "Klistra in och matcha stil" msgid "Delete" msgstr "Ta bort" msgid "Spelling and Grammar" msgstr "Stavning och grammatik" msgid "Show Spelling and Grammar" msgstr "Visa stavning och grammatik" msgid "Check Document Now" msgstr "Kontrollera dokumentet nu" msgid "Check Spelling While Typing" msgstr "Kontrollera stavning medan jag skriver" msgid "Check Grammar With Spelling" msgstr "Kontrollera grammatik tillsammans med stavning" msgid "Correct Spelling Automatically" msgstr "Korrigera stavning automatiskt" msgid "Substitutions" msgstr "Ersättningar" msgid "Show Substitutions" msgstr "Visa ersättningar" msgid "Smart Copy/Paste" msgstr "Smart kopiera/klistra in" msgid "Smart Quotes" msgstr "Typografiska citattecken" msgid "Smart Dashes" msgstr "Smarta streck" msgid "Smart Links" msgstr "Smarta länkar" msgid "Text Replacement" msgstr "Textersättning" msgid "Transformations" msgstr "Transformeringar" msgid "Make Upper Case" msgstr "Gör till versaler" msgid "Make Lower Case" msgstr "Gör till gemener" msgid "Capitalize" msgstr "Kapitalisera" msgid "Speech" msgstr "Tal" msgid "Start Speaking" msgstr "Börja tala" msgid "Stop Speaking" msgstr "Sluta tala" msgid "&View" msgstr "&Visa" msgid "Enter Full Screen" msgstr "Helskärm" msgid "Window" msgstr "Fönster" msgid "Minimize" msgstr "Minimera" msgid "Zoom" msgstr "Zooma" msgid "Bring All to Front" msgstr "Lägg alla överst" #. TRANSLATORS:File kind displayed in Finder/Explorer msgid "PO Translation" msgstr "PO-översättning" msgid "The file cannot be opened." msgstr "Filen kan inte öppnas." msgid "Invalid file" msgstr "Ogiltig fil" msgid "" "The file may be either corrupted or in a format not recognized by Poedit." msgstr "" "Filen kan vara skadad eller i ett format som inte känns igen av Poedit." msgid "You can’t drop more than one file on Poedit window." msgstr "Du kan inte släppa mer än en fil i Poedit-fönstret." #, c-format msgid "File “%s” is not a message catalog." msgstr "Filen '%s' är inte en meddelandekatalog." msgid "Poedit" msgstr "Poedit" msgid "&File" msgstr "&Arkiv" msgid "&Go" msgstr "&Gå till" #. TRANSLATORS: %s is language name in its basic form (as you #. would see e.g. in a list of supported languages). You may need #. to rephrase it, e.g. to an equivalent of "for language %s". #, c-format msgid "" "Spellchecking is disabled, because the dictionary for %s isn’t installed." msgstr "" "Stavningskontroll är inaktiverad, eftersom ordboken för %s inte är " "installerad." msgid "Install" msgstr "Installera" msgid "Catalog modified. Do you want to save changes?" msgstr "Katalog ändrad. Vill du spara ändringar?" msgid "Save changes" msgstr "Spara ändringar" msgid "Your changes will be lost if you don’t save them." msgstr "Dina ändringar går förlorade om du inte sparar dem." msgid "Save" msgstr "Spara" msgid "Don’t save" msgstr "Spara inte" msgid "Don’t Save" msgstr "Spara inte" msgid "Save as…" msgstr "Spara som…" msgid "Compile to…" msgstr "Kompilera till…" msgid "Compiled Translation Files" msgstr "Kompilerade översättningsfiler" msgid "Export as…" msgstr "Exportera som…" msgid "HTML Files" msgstr "HTML-filer" msgid "Open catalog template" msgstr "Öppna mall för katalog" msgid "Source code not available." msgstr "Ingen källkod tillgänglig." msgid "Updating failed" msgstr "Uppdatering misslyckades" msgid "" "Translations couldn’t be updated from the source code, because no code was " "found in the location specified in the catalog’s Properties." msgstr "" "Översättningar kunde inte uppdateras från källkoden, eftersom ingen kod " "hittades i den plats som anges i katalogens egenskaper." msgid "Entries in the catalog are probably incorrect." msgstr "Poster i katalogen är troligen fel." msgid "Updating the catalog failed. Click on 'Details >>' for details." msgstr "" "Uppdatering av katalogen misslyckades. Klicka på 'Detaljer >>' för detaljer." #, c-format msgid "%d issue with the translation found." msgid_plural "%d issues with the translation found." msgstr[0] "%d problem med översättningen hittades." msgstr[1] "%d problem med översättningen hittades." msgid "Validation results" msgstr "Valideringsresultat" msgid "" "Entries with errors were marked in red in the list. Details of the error " "will be shown when you select such an entry." msgstr "" "Poster med fel har rödmarkerats i listan. Detaljer om felet visas då en " "sådan post väljs." msgid "The file was saved safely." msgstr "Filen har sparats på ett säkert sätt." msgid "" "The file was saved safely and compiled into the MO format, but it will " "probably not work correctly." msgstr "" "Filen sparades säkert och kompilerades till MO-format, men den kommer " "förmodligen inte fungera korrekt." msgid "" "The file was saved safely, but it cannot be compiled into the MO format and " "used." msgstr "" "Filen sparades säkert, men den kan inte kompileras till MO-formatet och " "användas." msgid "" "The file was compiled into the MO format, but it will probably not work " "correctly." msgstr "" "Filen kompilerades till MO-format, men den kommer förmodligen inte fungera " "korrekt." msgid "The file cannot be compiled into the MO format and used." msgstr "Filen kan inte kompileras till MO-format och användas." msgid "No problems with the translation found." msgstr "Inga problem med översättningen hittades." #, c-format msgid "The translation is ready for use, but %d entry is not translated yet." msgid_plural "" "The translation is ready for use, but %d entries are not translated yet." msgstr[0] "" "Översättningen är klar att användas, men %d post är ännu inte översatt." msgstr[1] "" "Översättningen är klar att användas, men %d poster är ännu inte översatta." msgid "The translation is ready for use." msgstr "Översättningen är klar för användning." #, c-format msgid "Poedit automatically fixed invalid content in the file “%s”." msgstr "Poedit fixade automatiskt ogiltigt innehåll i filen \"%s\"." msgid "" "The file contained duplicate items, which is not allowed in PO files and " "would prevent the file from being used. Poedit fixed the issue, but you " "should review translations of any items marked as needing work and correct " "them if necessary." msgstr "" "Filen innehöll dubbletter, vilket inte är tillåtet i PO-filer och förhindrar " "att filen används. Poedit fixade problemet, men du bör granska " "översättningar av alla objekt som markerats som behöver arbete och korrigera " "dem om så behövs." msgid "Language of the translation isn’t set." msgstr "Språket i översättningen har inte angetts." msgid "Set Language" msgstr "Ange språk" msgid "Set language" msgstr "Ange språk" #. TRANSLATORS: This is shown underneath "Language of the translation isn't set (or ...is the same as source language)." msgid "" "Suggestions are not available if the translation language is not set " "correctly. Other features, such as plural forms, may be affected as well." msgstr "" "Förslag är inte tillgängliga om översättningsspråket inte är inställt på " "rätt sätt. Andra funktioner, såsom pluralformer, kan påverkas också." msgid "Language of the translation is the same as source language." msgstr "Språket i översättningen är samma som källspråket." msgid "Fix Language" msgstr "Fixa språk" msgid "Fix language" msgstr "Fixa språk" msgid "" "This catalog has entries with plural forms, but doesn’t have Plural-Forms " "header configured." msgstr "" "Denna katalog innehåller poster med pluralformer, men har inte Plural-Former " "headern konfigurerad." msgid "" "Entries in this catalog have different plural forms count from what " "catalog’s Plural-Forms header says" msgstr "" "Poster i denna katalog har olika antal pluralformer än vad som anges i " "Plural-Former headern" msgid "Required header Plural-Forms is missing." msgstr "Nödvändig Plural-forms header saknas." #, c-format msgid "Syntax error in Plural-Forms header (\"%s\")." msgstr "Syntaxfel i Plural-Former headern (\"%s\")." msgid "Fix the Header" msgstr "Fixa header" msgid "Fix the header" msgstr "Fixa header" #. TRANSLATORS: %s is language name in its basic form (as you #. would see e.g. in a list of supported languages). You may need #. to rephrase it, e.g. to an equivalent of "for language %s". #, c-format msgid "Plural forms expression used by the catalog is unusual for %s." msgstr "Pluralformsuttryck som används av katalogen är ovanligt för %s." #. TRANSLATORS: A verb, shown as action button with ""Plural forms expression used by the catalog is unusual for %s.")" msgid "Review" msgstr "Granska" #, c-format msgid "Error loading message catalog file “%s”." msgstr "Fel vid laddning av meddelandekatalogfil '%s'." #, c-format msgid "Translated: %d of %d (%d %%)" msgstr "Översatt: %d av %d (%d %%)" #, c-format msgid "Remaining: %d" msgstr "Återstår: %d" #, c-format msgid "%d error" msgid_plural "%d errors" msgstr[0] "%d fel" msgstr[1] "%d fel" #, c-format msgid "%d entry" msgid_plural "%d entries" msgstr[0] "%d post" msgstr[1] "%d poster" msgid " (unsaved)" msgstr " (ej sparad)" msgid " (modified)" msgstr " (ändrad)" #, c-format msgid "Failed to update translation memory: %s" msgstr "Det gick inte att uppdatera översättningsminne: %s" msgid "Purge deleted translations" msgstr "Rensa borttagna översättningar" msgid "Do you want to remove all translations that are no longer used?" msgstr "Vill du ta bort alla översättningar som inte längre används?" msgid "" "If you continue with purging, all translations marked as deleted will be " "permanently removed. You will have to translate them again if they are added " "back in the future." msgstr "" "Om du fortsätter med rensningen kommer alla översättningar som är markerade " "för borttagning att tas bort permanent. Du måste översätta dem igen om de " "läggs tillbaka i framtiden." msgid "Keep" msgstr "Behåll" msgid "Purge" msgstr "Rensa" msgid "Copy from source text" msgstr "Kopiera från källtext" msgid "Copy from Source Text" msgstr "Kopiera från källtext" #. TRANSLATORS: This is the key shortcut used in menus on Windows, some languages call them differently #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Ctrl+" msgstr "Ctrl+" msgid "Clear translation" msgstr "Rensa översättning" msgid "Clear Translation" msgstr "Rensa översättning" msgid "Edit comment" msgstr "Redigera kommentar" msgid "Edit Comment" msgstr "Redigera kommentar" msgid "References:" msgstr "Hänvisningar:" msgid "&Bookmarks" msgstr "&Bokmärken" #. TRANSLATORS: This is the key shortcut used in menus on Windows, some languages call them differently #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Alt+" msgstr "Alt+" #, c-format msgid "Set bookmark %i" msgstr "Ange bokmärke %i" #, c-format msgid "Go to bookmark %i" msgstr "Gå till bokmärke %i" #, c-format msgid "Set Bookmark %i" msgstr "Ange bokmärke %i" #, c-format msgid "Go to Bookmark %i" msgstr "Gå till bokmärke %i" msgid "Hide Sidebar" msgstr "Dölj sidofält" msgid "Show Sidebar" msgstr "Visa sidofält" msgid "Hide Status Bar" msgstr "Dölj statusfältet" msgid "Show Status Bar" msgstr "Visa statusfältet" msgid "Source text:" msgstr "Källtext:" msgid "Singular:" msgstr "Singular:" msgid "Plural:" msgstr "Plural:" msgid "Translation:" msgstr "Översättning:" msgid "Pre-translated" msgstr "Förhandsöversatt" msgid "Needs Work" msgstr "Behöver arbete" #. TRANSLATORS: This indicates that the string's translation isn't final #. and has known problems. For example, it might be machine translated or #. fuzzy matched from an older string. The translation should be short and #. convey this. If it's problematic to translate it, "Needs review" is #. acceptable substitute, but note that the meaning is subtly different: #. "needs review" implies that somebody else should review the string after #. I am done with it (i.e. consider it good), while "needs work" implies I #. need to return to it and finish the translation. msgid "Needs work" msgstr "Behöver arbete" msgid "" "POT files are only templates and don’t contain any translations themselves.\n" "To make a translation, create a new PO file based on the template." msgstr "" "POT-filer är endast mallar och innehåller inte själv några översättningar.\n" "För att göra en översättning, skapa en ny PO-fil baserad på mallen." msgid "Create New Translation" msgstr "Skapa ny översättning" msgid "Create new translation" msgstr "Skapa ny översättning" msgid "Everything" msgstr "Allt" #, c-format msgid "Form %i" msgstr "Form %i" msgid "Singular" msgstr "Singular" msgid "Zero" msgstr "Noll" msgid "One" msgstr "Ett" msgid "Two" msgstr "Två" msgid "Plural" msgstr "Plural" msgid "Other" msgstr "Övrigt" #, c-format msgid "%s Format" msgstr "%s format" #. TRANSLATORS: %s is replaced with language name, e.g. "PHP" or "C", so "PHP Format" etc." #, c-format msgid "%s format" msgstr "%s format" msgid "Source text" msgstr "Källtext" #, c-format msgid "Translation — %s" msgstr "Översättning — %s" msgid "ID" msgstr "ID" #, c-format msgid "Source text — %s" msgstr "Källtext — %s" msgid "unknown language" msgstr "okänt språk" #, c-format msgid "Failed command: %s" msgstr "Kommando misslyckades: %s" msgid "Failed to merge gettext catalogs." msgstr "Det gick inte att sammanfoga gettext kataloger." msgid "Source file" msgstr "Källfil" msgid "Source file occurrence:" msgstr "Förekomster källfil:" msgid "Open in Editor" msgstr "Öppna i editor" msgid "Open in editor" msgstr "Öppna i editor" msgid "No references for the selected item." msgstr "Inga referenser för det markerade objektet." #, c-format msgid "Error opening file %s!" msgstr "Fel vid öppning av fil %s!" msgid "Find" msgstr "Hitta" msgid "Replace" msgstr "Ersätt" #. TRANSLATORS: Expander in Find window for additional options (case sensitive etc.) msgid "Options" msgstr "Alternativ" msgid "Ignore case" msgstr "Ignorera gemen/versal" msgid "Wrap around" msgstr "Loopa" msgid "Whole words only" msgstr "Endast hela ord" msgid "Find in source texts" msgstr "Hitta i källtexter" msgid "Find in translations" msgstr "Sök i översättningar" msgid "Find in comments" msgstr "Sök i kommentarer" msgid "Close" msgstr "Stäng" msgid "Replace &All" msgstr "Ersätt &alla" msgid "Replace &all" msgstr "Ersätt &alla" msgid "&Replace" msgstr "&Ersätt" msgid "< &Previous" msgstr "" msgstr "&Nästa >" msgid "String to find" msgstr "Sträng att hitta" msgid "Replacement string" msgstr "Ersättningssträng" #, c-format msgid "Cannot execute program: %s" msgstr "Kan inte köra program: %s" msgid "Language Code or Name (e.g. en_GB)" msgstr "Språkkod eller namn (t.ex. en_GB)" msgid "Translation Language" msgstr "Översättningsspråk" msgid "Language of the translation:" msgstr "Språk i översättningen:" msgid "Poedit - Catalogs manager" msgstr "Poedit - Kataloghanterare" msgid "Catalog" msgstr "Katalog" msgid "Total" msgstr "Totalt" msgid "Untrans" msgstr "Oöversatt" msgid "Errors" msgstr "Fel" msgid "Last modified" msgstr "Senast ändrad" msgid "Select directory" msgstr "Välj katalog" msgid "Directories:" msgstr "Kataloger:" msgid "" msgstr "" msgid "Do you want to delete the project?" msgstr "Vill du ta bort projektet?" msgid "Confirmation" msgstr "Bekräftelse" msgid "" "Do you really want to do mass update of\n" "all catalogs in this project?" msgstr "" "Vill du verkligen göra en massuppdatering av\n" "alla kataloger i detta projekt?" msgid "Information about the translator" msgstr "Information om översättaren" msgid "Name:" msgstr "Namn:" msgid "Your Name" msgstr "Ditt namn" msgid "Email:" msgstr "E-post:" msgid "your_email@example.com" msgstr "your_email@example.com" msgid "" "Your name and email address are only used to set the Last-Translator header " "of GNU gettext files." msgstr "" "Ditt namn och e-postadress används endast att ställa in i sista-översättare " "huvudet på GNU gettext-filer." msgid "Editing" msgstr "Redigering" msgid "Automatically compile MO file when saving" msgstr "Kompilera MO-fil automatiskt vid sparning" msgid "Show summary after catalog update" msgstr "Visa sammanfattning efter kataloguppdatering" msgid "Check spelling" msgstr "Kontrollera stavning" msgid "Always change focus to text input field" msgstr "Ändra alltid fokus till textinmatningsfältet" msgid "" "Never let the list of strings take focus. If enabled, you must use Ctrl-" "arrows for keyboard navigation but you can also type text immediately, " "without having to press Tab to change focus." msgstr "" "Låt aldrig listan med strängar ta fokus. Om det är aktiverat, måste du " "använda Ctrl-pilar för tangentbordsnavigering men du kan också skriva text " "direkt, utan att behöva trycka Tabb för att byta fokus." msgid "Appearance" msgstr "Utseende" msgid "Use custom list font:" msgstr "Använd anpassat typsnitt i lista:" msgid "Use custom text fields font:" msgstr "Använd anpassat typsnitt i textfält:" msgid "Change UI language" msgstr "Ändra UI-språk" #. TRANSLATORS: This is a note appended to "Check spelling" when running on older Windows versions msgid "(requires Windows 8 or newer)" msgstr "(kräver Windows 8 eller nyare)" msgid "General" msgstr "Allmänt" msgid "Use translation memory" msgstr "Använda översättningsminne" msgid "Learn From Files…" msgstr "Lär av filer…" msgid "Learn from files…" msgstr "Lär av filer…" #. TRANSLATORS: This is a button that deletes everything in the translation memory (i.e. clears/resets it). msgid "Reset" msgstr "Återställ" #. TRANSLATORS: Followed by "match translations within the file" or "pre-translate from TM" msgid "When updating from sources" msgstr "När du uppdaterar från källor" #. TRANSLATORS: Preceded by "When updating from sources" msgid "fuzzy match within the file" msgstr "fuzzy matchning i filen" #. TRANSLATORS: Preceded by "When updating from sources" msgid "pre-translate from TM" msgstr "förhandsöversatt från TM" msgid "" "Poedit can attempt to fill in new entries from only previous translations in " "the file or from your entire translation memory. Using the TM won’t be very " "effective if it’s near-empty, but it will get better as you add more " "translations to it." msgstr "" "Poedit kan försöka fylla i nya poster från endast tidigare översättningar i " "filen eller hela översättningsminnet. Med att använda TM är inte effektivt, " "men det kommer bli bättre när du lägger till fler översättningar till det." msgid "Stored translations:" msgstr "Lagrade översättningar:" msgid "Database size on disk:" msgstr "Databasstorlek på disk:" msgid "Select translation files to import" msgstr "Välj översättningsfiler att importera" msgid "Translation Memory" msgstr "Översättningsminne (TM)" msgid "Importing translations…" msgstr "Importerar översättningar…" msgid "Finalizing…" msgstr "Slutför…" msgid "Reset translation memory" msgstr "Återställ översättningsminne" msgid "Are you sure you want to reset the translation memory?" msgstr "Är du säker på att du vill återställa översättningsminnet?" msgid "" "Resetting the translation memory will irrevocably delete all stored " "translations from it. You can’t undo this operation." msgstr "" "Återställa översättningsminnet kommer oåterkalleligen ta bort alla lagrade " "översättningar från den. Du kan inte ångra åtgärden." msgid "Cancel" msgstr "Avbryt" #. TRANSLATORS: This is abbreviation of "Translation Memory" used in Preferences on macOS. #. Long text looks weird there, too short (like TM) too, but less so. "General" is about ideal #. length there. msgid "TM" msgstr "TM" msgid "" "Source code extractors are used to find translatable strings in the source " "code files and extract them so that they can be translated." msgstr "" "Källkodsextrahering används för att hitta översättbara strängar i " "källkodsfiler och extrahera dem så att de kan översättas." msgid "Custom Extractors:" msgstr "Anpassade extraherare:" msgid "Custom extractors:" msgstr "Anpassade extraherare:" msgid "Edit…" msgstr "Redigera…" msgid "GNU gettext" msgstr "GNU gettext" msgid "" "Supports all programming languages recognized by GNU gettext tools (PHP, C/C+" "+, C#, Perl, Python, Java, JavaScript and others)." msgstr "" "Stöder alla programmeringsspråk som känns igen av GNU gettext-verktyg (PHP, " "C/C++, C#, Perl, Python, Java, JavaScript och andra)." msgid "Delete extractor" msgstr "Ta bort extraherare" #, c-format msgid "Are you sure you want to delete the “%s” extractor?" msgstr "Är du säker på att du vill ta bort extraherare \"%s\"?" msgid "Extractors" msgstr "Extraherare" msgid "Accounts" msgstr "Konton" msgid "Automatically check for updates" msgstr "Sök efter uppdateringar automatiskt" msgid "Include beta versions" msgstr "Inkludera betaversioner" msgid "" "Beta versions contain the latest new features and improvements, but may be a " "bit less stable." msgstr "" "Betaversioner innehåller de senaste nya funktionerna och förbättringarna, " "men kan vara lite mindre stabila." msgid "Updates" msgstr "Uppdateringar" msgid "" "These settings affect internal formatting of PO files. Adjust them if you " "have specific requirements e.g. because of version control." msgstr "" "Dessa inställningar påverkar den interna formateringen av PO-filer. Justera " "dem om du har särskilda önskemål t.ex. på grund av versionskontroll." msgid "Line endings:" msgstr "Radslut:" msgid "Unix (recommended)" msgstr "Unix (rekommenderas)" msgid "Windows" msgstr "Windows" #. TRANSLATORS: Followed by text control for entering number; wraps text at given width msgid "Wrap at:" msgstr "Radbryt efter:" msgid "Preserve formatting of existing files" msgstr "Bevara formateringen av befintliga filer" msgid "Advanced" msgstr "Avancerat" msgid "Pre-translating…" msgstr "Förhandsöversätter…" #, c-format msgid "Pre-translated %u string" msgid_plural "Pre-translated %u strings" msgstr[0] "Förhandsöversatte %u sträng" msgstr[1] "Förhandsöversatte %u strängar" #. TRANSLATORS: This is a somewhat common term describing the action where #. you apply the translation memory and/or machine translation to all of the #. strings you're translating as the first step, followed by correcting, #. improving etc., i.e. actually translating the strings. This may be tricky #. to express in other languages as simply as in English, but please try to #. keep it similarly concise. Please try to avoid, if possible, describing it #. as "auto-translation" and similar, because such terminology would mislead #. some users into thinking it's all that needs to be done (spoken from #. experience). "Pre-translate" nicely expresses that it's only the step done #. *before* actual translation. msgid "Pre-translate" msgstr "Förhandsöversatt" msgid "Only fill in exact matches" msgstr "Fyll endast i exakta matchningar" msgid "" "By default, inaccurate results are filled in as well and marked as needing " "work. Check this option to only include accurate matches." msgstr "" "Som standard, fylls felaktiga resultat i och markeras som behöver arbete. " "Markera det här alternativet för att endast inkludera exakta matchningar." msgid "Don’t mark exact matches as needing work" msgstr "Markera inte exakta matchningar som att de behöver arbete" msgid "" "Only enable if you trust the quality of your TM. By default, all matches " "from the TM are marked as needing work and should be reviewed before use." msgstr "" "Aktivera endast om du litar på kvaliteten på ditt TM. Som standard, alla " "matchningar från TM markeras som behöver arbete och bör ses över innan " "användning." msgid "" "Pre-translation automatically finds exact or fuzzy matches for untranslated " "strings in the translation memory and fills in their translations." msgstr "" "Förhandsöversättning söker automatiskt efter exakta eller ungefärliga " "matchningar för oöversatta strängar i översättningsminnet och fyller i dessa " "översättningar." #, c-format msgid "%d entry was pre-translated." msgid_plural "%d entries were pre-translated." msgstr[0] "%d post förhandsöversattes." msgstr[1] "%d poster förhandsöversattes." msgid "" "The translations were marked as needing work, because they may be " "inaccurate. You should review them for correctness." msgstr "" "Översättningarna markerades som att de behöver arbete, eftersom de kan vara " "felaktiga. Du bör granska dem för korrekthet." msgid "No entries could be pre-translated." msgstr "Inga poster kan förhandsöversättas." msgid "" "The TM doesn’t contain any strings similar to the content of this file. It " "is only effective for semi-automatic translations after Poedit learns enough " "from files that you translated manually." msgstr "" "Översättningsminnet innehåller inga matchande strängar till innehållet i " "denna fil. Detta är bara effektivt för semi-automatiska översättningar efter " "att Poedit har lärt sig från filer som du tidigare har översatt manuellt." msgid "" "Drag and Drop Folders Here\n" "\n" "or use the + button" msgstr "" "Dra och Släpp Mappar Här\n" "\n" "eller använd +-knappen" msgid "" "Drag and drop folders here\n" "\n" "or use the + button" msgstr "" "Dra och släpp mappar här\n" "\n" "eller använd +-knappen" msgid "Add Folders…" msgstr "Lägg till mappar…" msgid "Add folders…" msgstr "Lägg till mappar…" msgid "Add Files…" msgstr "Lägg till filer…" msgid "Add files…" msgstr "Lägg till filer…" msgid "Add Wildcard…" msgstr "Lägg till jokertecken…" msgid "Add wildcard…" msgstr "Lägg till jokertecken…" msgid "Paths" msgstr "Sökväg" msgid "Excluded paths" msgstr "Undantagna sökvägar" msgid "Advanced extraction settings" msgstr "Avancerade extraheringsinställningar" msgid "Extract notes for translators from:" msgstr "Extrahera anteckningar för översättare från:" msgid "Comments prefixed with:" msgstr "Kommentarer som börjar med:" msgid "All comments" msgstr "Alla kommentarer" msgid "Additional xgettext flags:" msgstr "Ytterligare xgettext-flaggor:" msgid "Additional keywords" msgstr "Ytterligare sökord" msgid "Name of the project the translation is for" msgstr "Namnet på projektet översättningen är för" msgid "Team name and email address or URL" msgstr "Gruppnamn och e-postadress eller webbadress" msgid "e.g. nplurals=2; plural=(n > 1);" msgstr "t.ex. nplurals = 2; plural = (n > 1);" msgid "UTF-8 (recommended)" msgstr "UTF-8 (rekommenderas)" msgid "Please save the file first. This section cannot be edited until then." msgstr "" "Vänligen spara filen först. Det här avsnittet kan inte redigeras tills dess." msgid "Not all plural forms are translated." msgstr "Inte alla pluralformer är översätta." msgid "The translation should start as a sentence." msgstr "Översättningen bör inledas som en mening." msgid "The translation should start with a lowercase character." msgstr "Översättningen bör inledas med en liten bokstav." msgid "The translation doesn’t start with a space." msgstr "Översättningen börjar inte med ett mellanslag." msgid "The translation starts with a space, but the source text doesn’t." msgstr "Översättningen börjar med ett mellanslag, vilket källtexten ej gör." msgid "The translation is missing a newline at the end." msgstr "Översättning saknar ett radslut i slutet." msgid "The translation ends with a newline, but the source text doesn’t." msgstr "Översättningen slutar med ett radslut, vilket källtexten ej gör." msgid "The translation is missing a space at the end." msgstr "Översättning saknar ett mellanslag i slutet." msgid "The translation ends with a space, but the source text doesn’t." msgstr "Översättningen slutar med ett mellanslag, vilket källtexten ej gör." #, c-format msgid "The translation should end with “%s”." msgstr "Översättningen bör avslutas med \"%s\"." #, c-format msgid "The translation should not end with “%s”." msgstr "Översättningen bör ej avslutas med \"%s\"." #, c-format msgid "The translation ends with “%s”, but the source text ends with “%s”." msgstr "" "Översättningen avslutas med \"%s\", medan källtexten avslutas med \"%s\"." msgid "Comment:" msgstr "Kommentar:" msgid "OK" msgstr "OK" msgid "C&lear" msgstr "&Rensa" msgid "Clear the comment" msgstr "Rensa kommentaren" msgid "New" msgstr "Ny" msgid "Create new translations project" msgstr "Skapa ett nytt översättningsprojekt" msgid "Edit" msgstr "Redigera" msgid "Edit the project" msgstr "Redigera projektet" msgid "Delete the project" msgstr "Ta bort projektet" msgid "Update all" msgstr "Uppdatera alla" msgid "Update all catalogs in the project" msgstr "Uppdatera alla kataloger i projektet" msgid "Edit project" msgstr "Redigera projekt" msgid "Project name:" msgstr "Projektnamn:" msgid "Browse" msgstr "Bläddra" msgid "Add directory to the list" msgstr "Lägg till katalog till listan" msgid "&New…" msgstr "&Nytt…" msgid "New from &POT/PO file…" msgstr "Nytt från &POT/PO-fil…" msgid "New From &POT/PO File…" msgstr "Nytt från &POT/PO-fil…" msgid "&Open…" msgstr "&Öppna…" msgid "Open Recent" msgstr "Öppna senaste" msgid "Open from Crowdin…" msgstr "Öppna från Crowdin…" msgid "Open From Crowdin…" msgstr "Öppna från Crowdin…" msgid "&Close" msgstr "&Stäng" msgid "&Save" msgstr "&Spara" msgid "Save &as…" msgstr "Spar&a som…" msgid "Save &As…" msgstr "Spar&a som…" msgid "Compile to MO…" msgstr "Kompilera till MO…" msgid "E&xport as HTML…" msgstr "E&xportera som HTML…" msgid "Check for updates…" msgstr "Sök efter uppdateringar…" msgid "&Preferences…" msgstr "&Inställningar…" msgid "Catalogs &manager" msgstr "&Kataloghanterare" msgid "Catalogs &Manager" msgstr "&Kataloghanterare" msgid "E&xit" msgstr "&Avsluta" msgid "Quit" msgstr "Avsluta" msgid "Copy from singular" msgstr "Kopiera från singular" msgid "Copy From Singular" msgstr "Kopiera från singular" msgid "Translation needs &work" msgstr "Översättning behöver &arbete" msgid "Translation Needs &Work" msgstr "Översättning behöver &arbete" msgid "Edit &comment" msgstr "Redigera &kommentar" msgid "Edit &Comment" msgstr "Redigera &Kommentar" msgid "Suggestions" msgstr "Förslag" msgid "&Find…" msgstr "&Sök…" msgid "Replace…" msgstr "Ersätt…" msgid "Find next" msgstr "Sök nästa" msgid "Find previous" msgstr "Sök föregående" msgid "Find and Replace…" msgstr "Sök och ersätt…" msgid "Find Next" msgstr "Sök nästa" msgid "Find Previous" msgstr "Sök föregående" msgid "&Preferences" msgstr "&Inställningar" msgid "Display entry &IDs" msgstr "Visa post-&ID" msgid "Display Entry &IDs" msgstr "Visa post-&ID" msgid "Sort by &file order" msgstr "Sortera efter &filordning" msgid "Sort by &File Order" msgstr "Sortera efter &filordning" msgid "Sort by &source" msgstr "Sortera efter &källa" msgid "Sort by &Source" msgstr "Sortera efter &källa" msgid "Sort by &translation" msgstr "Sortera efter ö&versättning" msgid "Sort by &Translation" msgstr "Sortera efter ö&versättning" msgid "&Group by context" msgstr "&Gruppera efter innehåll" msgid "&Group By Context" msgstr "&Gruppera efter innehåll" msgid "Entries with errors first" msgstr "Poster med fel först" msgid "Entries with Errors First" msgstr "Poster med fel först" msgid "&Untranslated entries first" msgstr "&Oöversatta poster först" msgid "&Untranslated Entries First" msgstr "&Oöversatta poster först" msgid "&Show references" msgstr "&Visa källor" msgid "&Show References" msgstr "&Visa Källor" msgid "Show sidebar" msgstr "Visa sidofält" msgid "Show status bar" msgstr "Visa statusfältet" msgid "C&atalog" msgstr "&Katalog" msgid "&Update from sources" msgstr "&Uppdatera från källor" msgid "&Update from Sources" msgstr "&Uppdatera från Källor" msgid "Update from &POT file…" msgstr "Uppdatera från &POT-fil…" msgid "Update from &POT File…" msgstr "Uppdatera från &POT-fil…" msgid "Sync with Crowdin" msgstr "Synkronisera med Crowdin" msgid "Pre-&translate…" msgstr "Förhandsöversa&tt…" msgid "&Purge deleted translations" msgstr "&Rensa borttagna översättningar" msgid "&Purge Deleted Translations" msgstr "&Rensa Borttagna Översättningar" msgid "&Validate translations" msgstr "&Validera översättningar" msgid "&Validate Translations" msgstr "&Validera översättningar" msgid "&Properties…" msgstr "&Egenskaper…" msgid "&Done and next" msgstr "&Klar och nästa" msgid "&Done and Next" msgstr "&Klar och nästa" msgid "&Previous translation" msgstr "&Föregående översättning" msgid "&Previous Translation" msgstr "&Föregående översättning" msgid "&Next translation" msgstr "&Nästa översättning" msgid "&Next Translation" msgstr "&Nästa översättning" msgid "P&revious unfinished" msgstr "Fö®ående ofärdig" msgid "P&revious Unfinished" msgstr "Fö®ående ofärdig" msgid "Ne&xt unfinished" msgstr "Nä&sta ofärdig" msgid "Ne&xt Unfinished" msgstr "Nä&sta ofärdig" msgid "Previous plural form" msgstr "Föregående pluralform" msgid "Previous Plural Form" msgstr "Föregående pluralform" msgid "Next plural form" msgstr "Nästa pluralform" msgid "Next Plural Form" msgstr "Nästa pluralform" msgid "&Online help" msgstr "&Hjälp på nätet" msgid "&Online Help" msgstr "&Hjälp på nätet" msgid "&GNU gettext manual" msgstr "&GNU gettext manual" msgid "&GNU gettext Manual" msgstr "&GNU gettext manual" msgid "&About Poedit" msgstr "&Om Poedit" msgid "&About" msgstr "&Om" msgid "Extractor setup" msgstr "Konfigurera extraherare" msgid "List of extensions separated by semicolons (e.g. *.cpp;*.h):" msgstr "Lista över tillägg avgränsas med semikolon (t.ex. *.cpp;*.h):" msgid "Invocation:" msgstr "Anrop:" msgid "Command to extract translations:" msgstr "Kommando för att extrahera översättningar:" msgid "" "This is the command used to launch the extractor.\n" "%o expands to the name of output file, %K to list\n" "of keywords, %F to list of input files,\n" "%C to charset flag (see below)." msgstr "" "Detta är kommandot som används för att starta extraheraren.\n" "%o expanderar till namnet på utdatafilen, %K till listan\n" "av sökord, %F till listan över indatafiler,\n" "%C till charset-flaggan (se nedan)." msgid "An item in keywords list:" msgstr "Ett objekt i sökordslistan:" msgid "" "This will be attached to the command line once\n" "for each keyword. %k expands to the keyword." msgstr "" "Detta kommer att bifogas till kommandoraden en\n" "gång för varje sökord. %k expanderar till sökordet." msgid "An item in input files list:" msgstr "Ett objekt i indatafilslistan:" #, c-format msgid "" "This will be attached to the command line once\n" "for each input file. %f expands to the filename." msgstr "" "Detta kommer att bifogas till kommandoraden en\n" "gång för varje indatafil. %f expanderar till filnamnet." msgid "Source code charset:" msgstr "Källkod teckenuppsättning:" #, c-format msgid "" "This will be attached to the command line\n" "only if source code charset was given. %c expands to charset value." msgstr "" "Detta kommer att bifogas till kommandoraden\n" "endast om källkodsteckenuppsättningen har angetts. %c expanderar till " "teckenuppsättningsvärdet." msgid "Catalog properties" msgstr "Katalogegenskaper" msgid "Project name and version:" msgstr "Projektnamn och version:" msgid "Language team:" msgstr "Språkgrupper:" msgid "Plural forms:" msgstr "Flertalsformer:" msgid "Use default rules for this language" msgstr "Använd standardregler för detta språk" msgid "Use custom expression" msgstr "Använd anpassat uttryck" msgid "Learn about plural forms" msgstr "Lär dig mer om flertalsformer" msgid "Charset:" msgstr "Teckenuppsättning:" msgid "Advanced Extraction Settings…" msgstr "Avancerade extraheringsinställningar…" msgid "Advanced extraction settings…" msgstr "Avancerade extraheringsinställningar…" msgid "Translation Properties" msgstr "Översättningsegenskaper" msgid "Translation properties" msgstr "Översättningsegenskaper" msgid "Sources Paths" msgstr "Källor sökvägar" msgid "Sources paths" msgstr "Källor sökvägar" msgid "Extract text from source files in the following directories:" msgstr "Extrahera text från källfilen i följande kataloger:" msgid "Base path:" msgstr "Rotsökväg:" msgid "Sources Keywords" msgstr "Källor sökord" msgid "Sources keywords" msgstr "Källor sökord" msgid "" "Use these keywords (function names) to recognize translatable strings\n" "in source files:" msgstr "" "Använd dessa sökord (funktionsnamn) att känna igen översättningsbara " "strängar\n" "i källfiler:" msgid "Also use default keywords for supported languages" msgstr "Använda också standardsökord för språk som stöds" msgid "Learn About Gettext Keywords" msgstr "Läs mer om Gettext sökord" msgid "Learn about gettext keywords" msgstr "Lär dig mer om gettext sökord" msgid "Update summary" msgstr "Uppdatera sammanfattning" msgid "" "These strings were found in the sources but were not in the catalog.\n" "Poedit will add them to the catalog now." msgstr "" "Dessa strängar hittades i källorna, men var inte i katalogen.\n" "Poedit kommer att lägga till dem i katalogen nu." msgid "New strings" msgstr "Nya strängar" msgid "" "These strings are no longer in the sources.\n" "Poedit will remove them from the catalog now." msgstr "" "Dessa strängar är inte i källorna längre.\n" "Poedit tar bort dem från katalogen nu." msgid "Obsolete strings" msgstr "Föråldrade strängar" msgid "(0 new, 0 obsolete)" msgstr "(0 nya, 0 föråldrade)" msgid "Open" msgstr "Öppna" msgid "Save catalog" msgstr "Spara katalog" msgid "Validate" msgstr "Validera" msgid "Check for errors in the translation" msgstr "Leta efter fel i översättning" msgid "Update" msgstr "Uppdatera" msgid "Update catalog - synchronize it with sources" msgstr "Uppdatera katalog - synkronisera den med källor" msgid "Sidebar" msgstr "Sidofält" msgid "Show or hide the sidebar" msgstr "Visa eller dölj sidofält" #. TRANSLATORS: "Previous" as in used in the past, now replaced with newer. msgid "Previous source text:" msgstr "Tidigare källtext:" msgid "" "The old source text (before it changed during an update) that the now-" "inaccurate translation corresponds to." msgstr "" "Den gamla källtexten (innan den ändrades under en uppdatering) som den nu " "felaktiga översättningen motsvarar." msgid "Notes for translators:" msgstr "Anteckningar för översättare:" msgid "Add comment" msgstr "Lägg till kommentar" msgid "Add Comment" msgstr "Lägg till kommentar" msgid "Translation suggestions:" msgstr "Översättningsförslag:" #. TRANSLATORS: This is shown when no translation suggestions can be found in the TM (Windows). msgid "No matches found" msgstr "Inga träffar hittades" #. TRANSLATORS: This is shown when no translation suggestions can be found in the TM (macOS, Linux). msgid "No Matches Found" msgstr "Inga träffar hittades" msgid "This string was found in Poedit’s translation memory." msgstr "Den här strängen hittades i Poedit:s översättningsminne." msgid "Cannot create temporary directory." msgstr "Kan inte skapa temporär katalog." msgid "Welcome to Poedit" msgstr "Välkommen till Poedit" #. TRANSLATORS: This is version information in about dialog, "%s" will be #. version number when used #, c-format msgid "Version %s" msgstr "Version %s" msgid "Edit a Translation" msgstr "Redigera en översättning" msgid "Edit a translation" msgstr "Redigera en översättning" msgid "Open an existing PO file and edit the translation." msgstr "Öppna en befintlig PO-fil och redigera översättningen." msgid "" "Take an existing PO file or POT template and create a new translation from " "it." msgstr "" "Ta en befintlig PO-fil eller POT-mall och skapa en ny översättning från den." msgid "Collaborate on a Translation with Others" msgstr "Samarbeta på en översättning med andra" msgid "Collaborate on a translation with others" msgstr "Samarbeta på en översättning med andra" msgid "" "Download a file from Crowdin project, translate and sync your changes back." msgstr "" "Hämta en fil från ett Crowdin-projekt, översätt och synkronisera ändringarna." msgid "What is Crowdin?" msgstr "Vad är Crowdin?" msgid "There are no translations. That’s unusual." msgstr "Det finns inga översättningar. Det är ovanligt." msgid "" "Translatable entries aren’t added manually in the Gettext system, but are " "automatically extracted\n" "from source code. This way, they stay up to date and accurate.\n" "Translators typically use PO template files (POTs) prepared for them by the " "developer." msgstr "" "Översättningsbara poster läggs inte till manuellt i Gettext-systemet, utan " "extraheras automatiskt\n" "från källkod. På detta sätt hålls de uppdaterade och korrekta.\n" "Översättare använder vanligtvis mallfiler (POTs) som har förberetts av " "utvecklaren." msgid "(Learn more about GNU gettext)" msgstr "(Läs mer om GNU gettext)" msgid "The simplest way to fill this catalog is to update it from a POT:" msgstr "" "Det enklaste sättet att fylla denna katalog är att uppdatera den från en POT:" msgid "Update from POT" msgstr "Uppdatera från POT" msgid "Take translatable strings from an existing POT template." msgstr "Ta översättningsbara strängar från en befintlig POT-mall." msgid "" "You can also extract translatable strings directly from the source code:" msgstr "" "Du kan också extrahera översättningsbara strängar direkt från källkoden:" msgid "Extract from sources" msgstr "Extrahera från källor" msgid "Configure source code extraction in Properties." msgstr "Konfigurera källkodsextrahering i egenskaper." msgid "Sync" msgstr "Synkronisera" msgid "Synchronize the translation with Crowdin" msgstr "Synkronisera översättningen med Crowdin" #. TRANSLATORS: This is titlebar of about dialog, "%s" is application name #. ("Poedit" here, but please use "%s") #, c-format msgid "About %s" msgstr "Om %s" #. TRANSLATORS: Title of the preferences window on Windows and Linux. "%s" is replaced with "Poedit" when running. #, c-format msgid "%s Preferences" msgstr "Inställningar %s" #. TRANSLATORS: macOS item in app menu msgid "Services" msgstr "Tjänster" #. TRANSLATORS: macOS item in app menu, %s is replaced with "Poedit" #, c-format msgid "Hide %s" msgstr "Dölj %s" #. TRANSLATORS: macOS item in app menu msgid "Hide Others" msgstr "Dölj andra" #. TRANSLATORS: macOS item in app menu msgid "Show All" msgstr "Visa alla" #. TRANSLATORS: macOS item in app menu, %s is replaced with "Poedit" #, c-format msgid "Quit %s" msgstr "Avsluta %s" #. TRANSLATORS: macOS item in app menu msgid "Preferences…" msgstr "Inställningar…" msgid "Preferences..." msgstr "Inställningar..." #. TRANSLATORS: Title of a category in Windows task menu (right-click icon in taskbar) msgid "Recent" msgstr "Senaste" #. TRANSLATORS: Title of a category in Windows task menu (right-click icon in taskbar) msgid "Frequent" msgstr "Frekventa" msgid "&Apply" msgstr "&Tillämpa" msgid "Apply" msgstr "Tillämpa" msgid "&Back" msgstr "&Tillbaka" msgid "Back" msgstr "Tillbaka" msgid "&Cancel" msgstr "&Avbryt" msgid "&Clear" msgstr "&Rensa" msgid "Clear" msgstr "Rensa" msgid "Copy" msgstr "Kopiera" msgid "Cu&t" msgstr "Kl&ipp ut" msgid "Cut" msgstr "Klipp ut" msgid "&Delete" msgstr "&Ta bort" msgid "&Quit" msgstr "&Avsluta" msgid "File" msgstr "Arkiv" msgid "Help" msgstr "Hjälp" msgid "&New" msgstr "&Ny" msgid "&No" msgstr "&Nej" msgid "No" msgstr "Nej" msgid "&OK" msgstr "&OK" msgid "Open…" msgstr "Öppna…" msgid "&Open..." msgstr "&Öppna..." msgid "Open..." msgstr "Öppna..." msgid "&Paste" msgstr "&Klistra in" msgid "Paste" msgstr "Klistra in" msgid "Preferences" msgstr "Inställningar" msgid "&Redo" msgstr "&Gör om" msgid "Refresh" msgstr "Uppdatera" msgid "&Save as" msgstr "&Spara som" msgid "Save as" msgstr "Spara som" msgid "Select &All" msgstr "Välj &alla" msgid "Select All" msgstr "Markera allt" msgid "&Undo" msgstr "&Ångra" msgid "&Yes" msgstr "& Ja" msgid "Yes" msgstr "Ja" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Shift+" msgstr "Skift+" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Enter" msgstr "Enter" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Up" msgstr "Upp" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Down" msgstr "Ner" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Left" msgstr "Vänster" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Right" msgstr "Höger" #. TRANSLATORS: Keyboard shortcut, must correspond to translation of "Ctrl+" msgid "ctrl" msgstr "ctrl" #. TRANSLATORS: Keyboard shortcut, must correspond to translation of "Alt+" msgid "alt" msgstr "alt" #. TRANSLATORS: Keyboard shortcut, must correspond to translation of "Shift+" msgid "shift" msgstr "skift" poedit-2.0.6/locales/ro.mo0000664000372000037200000014220113230132042012311 00000000000000P%1 1 11<11J 2gW2 22 22 222 3333%3+333B3Q3W3]3f3z333333333333 3 44 4)4 04=4M4c4y44444444445 5(5D5Y5n55555555 6 '6:36:n6 666 6 666 6 7 #707?7O7c7~77777 71898'>8f88 8878689)=9g9 l9]w99A9I*:t:{:; ;;";:; U;`;.h;;;;;;;;<*<F<#[<<<<<<<<(<(=7= R=s=|== ==/= = >>#>9>L>b>2>>>>> ?)???????@@@ 2@?@R@Ee@"@?@ AA*.A YAfAyAK~A"A5A#B)BHAH HHI 'IHI PI ]IiI"nI;I(IIJ&J 5J ?JMJjJ ~JJJJJ JJK:K PK<^K.KKKKLL*%LPLVLgL xL LLJMNMgM MMMMM#MM'M$N7DN$|N%NNNNNNOOOO O2O P#P9PNP]PlPtP|PPPPPPPPQQQnQERZR>aR RRRR@RS-TQa hs ӑ֑ Ȓ   .8#gÓʓ+ܓ#3+R%~ϔ8/AC0 ʕ *=CYo~ Зܗ)*T*m-5Ƙ(6%\vy!.PYt5Қ& : FR[aw }ǛE*WK_Lfĝ̝#ӝF>3X 9 ,  %= Xf oy  ɡ ڡ &/7gpp  ) 8 ESe}6 $2 CQ Xb.x'Ϥ /"R a o {  ȥҥ'G_z#ͦq c  ϧܧ)R1'ĨӨ  7<!T v&˪8+O.8~+<ӭIRM{[5xtZ#$~;?߱F1f-Ʋ *ֳ-4/6d;z״'RMzrȵ;LǶhZ}>ط;6)`tlfӺ ٺ*,<Ql ˼ ؼpt#Ž̽ нܽ+1!L!n žپL,@m"*1տ3s;  +&<c yHDH? 3u>CHL1Q !4+1E"^D}],6 9BW6tC3H>C'# )h?*Kq#-0^aG2zFYblx&2LADZ.EwPi=Ab[kv @4uh~ uL@|pnf.nTN? QI2:qOKcajd F!p ]U>T+rXi=J%Vxz51^s4 NH/F"8/XJ`om #UwQk :Gs$ 8jL!~I1,(<D-9B>|;$H(E?g<y!dYgIo \ <eN+rM5&cM5 :"K-A+EmZ7C"603B $%RfRVeyOG*S@ M,4}_{O%W91J)S[`' 7)v &;*{(l_.03=\7P8/t';P (modified) (unsaved)%d entry%d entries%d entry was pre-translated.%d entries were pre-translated.%d error%d errors%d issue with the translation found.%d issues with the translation found.%i line of file “%s” was not loaded correctly.%i lines of file “%s” were not loaded correctly.%s Format%s Preferences%s format&About&About Poedit&Apply&Back&Bookmarks&Cancel&Clear&Close&Copy&Delete&Done and Next&Done and next&Edit&File&Find…&GNU gettext Manual&GNU gettext manual&Go&Group By Context&Group by context&Help&New&New…&Next >&Next Translation&Next translation&No&OK&Online Help&Online help&Open...&Open…&Paste&Preferences&Preferences…&Previous Translation&Previous translation&Properties…&Purge Deleted Translations&Purge deleted translations&Quit&Redo&Replace&Save&Save as&Show References&Show references&Undo&Untranslated Entries First&Untranslated entries first&Update from Sources&Update from sources&Validate Translations&Validate translations&View&Yes(0 new, 0 obsolete)(Learn more about GNU gettext)(New: %i, obsolete: %i)(Use default language)(requires Windows 8 or newer)< &PreviousDrag and Drop Folders Here or use the + buttonDrag and drop folders here or use the + buttonAbout %sAccountsAdd CommentAdd Files…Add Folders…Add Wildcard…Add commentAdd directory to the listAdd files…Add folders…Add wildcard…Additional keywordsAdditional xgettext flags:AdvancedAdvanced Extraction Settings…Advanced extraction settingsAdvanced extraction settings…All Translation FilesAll commentsAlso use default keywords for supported languagesAlt+Always change focus to text input fieldAn item in input files list:An item in keywords list:AppearanceApplyAre you sure you want to delete the “%s” extractor?Are you sure you want to reset the translation memory?Automatically check for updatesAutomatically compile MO file when savingBackBase path:Beta versions contain the latest new features and improvements, but may be a bit less stable.Bring All to FrontBroken catalog file: plural form msgstr used without msgid_pluralBroken catalog file: singular form msgstr used together with msgid_pluralBrowseBy default, inaccurate results are filled in as well and marked as needing work. Check this option to only include accurate matches.C&atalogC&learCancelCannot create temporary directory.Cannot execute program: %sCapitalizeCatalogCatalog modified. Do you want to save changes?Catalog propertiesCatalogs &ManagerCatalogs &managerCatalogs ManagerChange UI languageCharset:Check Document NowCheck Grammar With SpellingCheck Spelling While TypingCheck for Updates…Check for errors in the translationCheck for updates…Check spellingClearClear TranslationClear the commentClear translationCloseCollaborate on a Translation with OthersCollaborate on a translation with othersCollecting source files…Command to extract translations:Comment:Comments prefixed with:Compile to MO…Compile to…Compiled Translation FilesConfigure source code extraction in Properties.ConfirmationCopyCopy From SingularCopy from Source TextCopy from singularCopy from source textCorrect Spelling AutomaticallyCouldn’t load file %s, it is probably corrupted.Couldn’t save file %s.Create New TranslationCreate new translationCreate new translations projectCrowdin errorCrowdin is an online localization management platform and collaborative translation tool. Poedit can seamlessly sync PO files managed at Crowdin.Ctrl+Cu&tCustom Extractors:Custom extractors:CutDatabase size on disk:DeleteDelete extractorDelete the projectDirectories:Display Entry &IDsDisplay entry &IDsDo you really want to do mass update of all catalogs in this project?Do you want to delete the project?Do you want to remove all translations that are no longer used?Don’t SaveDon’t Show AgainDon’t mark exact matches as needing workDon’t saveDon’t show againDownDownload a file from Crowdin project, translate and sync your changes back.Downloading latest translations…Downloading translations is disabled in this project.E&xitE&xport as HTML…EditEdit &CommentEdit &commentEdit CommentEdit a TranslationEdit a translationEdit commentEdit projectEdit the projectEditingEdit…Email:EnterEnter Full ScreenEntries in the catalog are probably incorrect.Entries in this catalog have different plural forms count from what catalog’s Plural-Forms header saysEntries with Errors FirstEntries with errors firstEntries with errors were marked in red in the list. Details of the error will be shown when you select such an entry.Error loading message catalog file “%s”.Error opening fileError opening file %s!Error saving catalogErrorsEverythingExcluded pathsExport as…Extract from sourcesExtract notes for translators from:Extract text from source files in the following directories:Extracting translatable strings…Extractor setupExtractorsFailed command: %sFailed to communicate with Poedit process.Failed to load extracted catalog.Failed to merge gettext catalogs.Failed to update translation memory: %sFileFile “%s” doesn’t exist.File “%s” is not a message catalog.File “%s” is read-only and cannot be saved. Please save it under different name.File:Finalizing…FindFind NextFind PreviousFind and Replace…Find in commentsFind in source textsFind in translationsFind nextFind previousFix LanguageFix languageFix the HeaderFix the headerForm %iFrequentGNU gettextGeneralGo to Bookmark %iGo to bookmark %iHTML FilesHelpHide %sHide OthersHide SidebarHide Status BarHide this notification messageIDIf you continue with purging, all translations marked as deleted will be permanently removed. You will have to translate them again if they are added back in the future.Ignore caseImporting translations…Include beta versionsInformation about the translatorInstallInvalid fileInvocation:KeepLanguage Code or Name (e.g. en_GB)Language of the translation is the same as source language.Language of the translation isn’t set.Language of the translation:Language selectionLanguage team:Language:Last modifiedLearn About Gettext KeywordsLearn From Files…Learn MoreLearn More About CrowdinLearn about gettext keywordsLearn about plural formsLearn from files…Learn moreLearn more about CrowdinLeftLine %d of file “%s” is corrupted (not valid %s data).Line endings:List of extensions separated by semicolons (e.g. *.cpp;*.h):MO files can’t be directly edited in Poedit.Make Lower CaseMake Upper CaseMalformed header: “%s”Merging differences…MinimizeName of the project the translation is forName:Ne&xt UnfinishedNe&xt unfinishedNeeds WorkNeeds workNever let the list of strings take focus. If enabled, you must use Ctrl-arrows for keyboard navigation but you can also type text immediately, without having to press Tab to change focus.NewNew From &POT/PO File…New from &POT/PO file…New stringsNext Plural FormNext plural formNoNo Matches FoundNo entries could be pre-translated.No matches foundNo problems with the translation found.No references for the selected item.No translation projects listed in your Crowdin account.Not all plural forms are translated.Not authorized, please sign in again.Notes for translators:OKObsolete stringsOneOnly enable if you trust the quality of your TM. By default, all matches from the TM are marked as needing work and should be reviewed before use.Only fill in exact matchesOpenOpen Crowdin translationOpen From Crowdin…Open RecentOpen an existing PO file and edit the translation.Open catalogOpen catalog templateOpen from Crowdin…Open in EditorOpen in editorOpen...Open…OptionsOtherP&revious UnfinishedP&revious unfinishedPO TranslationPO Translation FilesPOT Translation TemplatesPOT files are only templates and don’t contain any translations themselves. To make a translation, create a new PO file based on the template.PastePaste and Match StylePathsPlease open and edit the corresponding PO file instead. When you save it, the MO file will be updated as well.Please save the file first. This section cannot be edited until then.PluralPlural forms expression used by the catalog is unusual for %s.Plural forms:Plural:PoeditPoedit - Catalogs managerPoedit automatically fixed invalid content in the file “%s”.Poedit can attempt to fill in new entries from only previous translations in the file or from your entire translation memory. Using the TM won’t be very effective if it’s near-empty, but it will get better as you add more translations to it.Poedit is an easy to use translations editor.Pre-&translate…Pre-translatePre-translatedPre-translated %u stringPre-translated %u stringsPre-translating…Pre-translation automatically finds exact or fuzzy matches for untranslated strings in the translation memory and fills in their translations.PreferencesPreferences...Preferences…Preserve formatting of existing filesPrevious Plural FormPrevious plural formPrevious source text:Project name and version:Project name:Project:PurgePurge deleted translationsQuitQuit %sRecentRedoReferences:RefreshRemaining: %dReplaceReplace &AllReplace &allReplacement stringReplace…Required header Plural-Forms is missing.ResetReset translation memoryResetting the translation memory will irrevocably delete all stored translations from it. You can’t undo this operation.ReviewRightSaveSave &As…Save &as…Save asSave as…Save catalogSave changesSelect &AllSelect AllSelect directorySelect translation files to importSelect your preferred languageServicesSet Bookmark %iSet LanguageSet bookmark %iSet languageShift+Show AllShow SidebarShow Spelling and GrammarShow Status BarShow SubstitutionsShow or hide the sidebarShow sidebarShow status barShow summary after catalog updateSidebarSign InSign OutSign inSign in to CrowdinSign outSigned in as:SingularSingular:Smart Copy/PasteSmart DashesSmart LinksSmart QuotesSort by &File OrderSort by &SourceSort by &TranslationSort by &file orderSort by &sourceSort by &translationSource code charset:Source code extractors are used to find translatable strings in the source code files and extract them so that they can be translated.Source code not available.Source fileSource file occurrence:Source textSource text — %sSource text:Sources KeywordsSources PathsSources keywordsSources pathsSpeechSpellchecking is disabled, because the dictionary for %s isn’t installed.Spelling and GrammarStart SpeakingStop SpeakingStored translations:String to findSubstitutionsSuggestionsSuggestions are not available if the translation language is not set correctly. Other features, such as plural forms, may be affected as well.Supports all programming languages recognized by GNU gettext tools (PHP, C/C++, C#, Perl, Python, Java, JavaScript and others).SyncSync with CrowdinSynchronize the translation with CrowdinSyncingSyncing errorSyncing with %s failed.Syncing with %s…Syncing with Crowdin failed.Syntax error in Plural-Forms header ("%s").TMTake an existing PO file or POT template and create a new translation from it.Take translatable strings from an existing POT template.Team name and email address or URLText ReplacementThe TM doesn’t contain any strings similar to the content of this file. It is only effective for semi-automatic translations after Poedit learns enough from files that you translated manually.The catalog couldn’t be saved in “%s” charset as specified in catalog settings. It was saved in UTF-8 instead and the setting was modified accordingly.The file cannot be compiled into the MO format and used.The file cannot be opened.The file contained duplicate items, which is not allowed in PO files and would prevent the file from being used. Poedit fixed the issue, but you should review translations of any items marked as needing work and correct them if necessary.The file may be either corrupted or in a format not recognized by Poedit.The file was compiled into the MO format, but it will probably not work correctly.The file was saved safely and compiled into the MO format, but it will probably not work correctly.The file was saved safely, but it cannot be compiled into the MO format and used.The file was saved safely.The old source text (before it changed during an update) that the now-inaccurate translation corresponds to.The simplest way to fill this catalog is to update it from a POT:The translation doesn’t start with a space.The translation ends with a newline, but the source text doesn’t.The translation ends with a space, but the source text doesn’t.The translation ends with “%s”, but the source text ends with “%s”.The translation is missing a newline at the end.The translation is missing a space at the end.The translation is ready for use, but %d entry is not translated yet.The translation is ready for use, but %d entries are not translated yet.The translation is ready for use.The translation should end with “%s”.The translation should not end with “%s”.The translation should start as a sentence.The translation should start with a lowercase character.The translation starts with a space, but the source text doesn’t.The translations were marked as needing work, because they may be inaccurate. You should review them for correctness.There are no translations. That’s unusual.There was a problem formatting the file nicely (but it was saved all right).There were errors when loading the catalog. Some data may be missing or corrupted as the result.These settings affect internal formatting of PO files. Adjust them if you have specific requirements e.g. because of version control.These strings are no longer in the sources. Poedit will remove them from the catalog now.These strings were found in the sources but were not in the catalog. Poedit will add them to the catalog now.This catalog has entries with plural forms, but doesn’t have Plural-Forms header configured.This file can only be edited in Crowdin’s web interface.This is the command used to launch the extractor. %o expands to the name of output file, %K to list of keywords, %F to list of input files, %C to charset flag (see below).This project has no files that can be translated in Poedit.This string was found in Poedit’s translation memory.This will be attached to the command line only if source code charset was given. %c expands to charset value.This will be attached to the command line once for each input file. %f expands to the filename.This will be attached to the command line once for each keyword. %k expands to the keyword.TotalTransformationsTranslatable entries aren’t added manually in the Gettext system, but are automatically extracted from source code. This way, they stay up to date and accurate. Translators typically use PO template files (POTs) prepared for them by the developer.Translated: %d of %d (%d %%)Translation LanguageTranslation MemoryTranslation Needs &WorkTranslation PropertiesTranslation needs &workTranslation propertiesTranslation suggestions:Translation — %sTranslation:Translations couldn’t be updated from the source code, because no code was found in the location specified in the catalog’s Properties.TwoUTF-8 (recommended)UndoUnhandled exception occurred: %sUnix (recommended)UntransUpUpdateUpdate allUpdate all catalogs in the projectUpdate catalog - synchronize it with sourcesUpdate from &POT File…Update from &POT file…Update from POTUpdate summaryUpdatesUpdating catalogUpdating failedUpdating the catalog failed. Click on 'Details >>' for details.Updating user information…Uploading translations…Use custom expressionUse custom list font:Use custom text fields font:Use default rules for this languageUse these keywords (function names) to recognize translatable strings in source files:Use translation memoryValidateValidation resultsVersion %sWaiting for authentication…Welcome to PoeditWhat is Crowdin?When updating from sourcesWhole words onlyWindowWindowsWrap aroundWrap at:YesYou can also extract translatable strings directly from the source code:You can’t drop more than one file on Poedit window.You must restart Poedit for this change to take effect.Your NameYour changes will be lost if you don’t save them.Your name and email address are only used to set the Last-Translator header of GNU gettext files.ZeroZoomaltctrldon’t delete temporary files (for debugging)e.g. nplurals=2; plural=(n > 1);fuzzy match within the filego to item at given line numberhandle a poedit:// URIpre-translate from TMshiftunknown languageyour_email@example.com“%s” is not a valid POT file.Project-Id-Version: poedit Report-Msgid-Bugs-To: help@poedit.net POT-Creation-Date: 2017-12-05 15:52+0100 PO-Revision-Date: 2017-09-21 11:18-0400 Last-Translator: vslavik Language-Team: Romanian Language: ro_RO MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=3; plural=(n==1 ? 0 : (n==0 || (n%100>0 && n%100<20)) ? 1 : 2); X-Generator: crowdin.com X-Crowdin-Project: poedit X-Crowdin-Language: ro X-Crowdin-File: /locales/poedit.pot (modificat) (nesalvat)intrarea %d%d intrări%d intrări%d intrarea a fost pre-tradusa.%d intrările au fost pre-traduse.%d intrările au fost pre-traduse.%d eroare%d erori%d erori%d problemă cu traducerea a fost găsită.%d probleme cu traducerea au fost găsite.%d de probleme cu traducerea au fost găsite.%i linia de fișier "%s" nu a fost încărcată corect.%i liniile de fișier "%s" nu au fost încărcate corect.%i liniile de fișier "%s" nu au fost încărcate corect.%s Format%s Preferințe%s format&Despre&Despre Poedit&Aplică&Înapoi&Semne de carte&Anulează&Curăță&Închide&Copie&Sterge&Gata și următorul&Gata și următorul&Editare&Fișier&Găsește…Documentație &GNU gettextDocumentație &GNU gettext&Du-te&Grupează după context&Grupează după context&Ajutor&Nou&Nou…&Următoarea >&Următoarea traducere&Următoarea traducere&No&OK&Ajutor online&Ajutor online&Deschide...&Deschide…&Lipește&Preferințe&Preferințe…&Traducerea anterioară&Traducerea anterioară&Proprietăți…&Curăță traducerile șterse&Curăță traducerile șterse&Renunță&Refacere&Înlocuiește&Salvează&Salvare ca&Arată referințe&Arată referințe&Inapoi&Întâi intrările netraduse&Întâi intrările netraduse&Actualizare din surse&Actualizare din surse&Validează traducerile&Validează traducerile&Vizualizare&Da(0 noi, 0 învechite)(Afla mai multe despre GNU gettext)(Noi: %i, vechi: %i)(Folosește limba implicită)(necesită Windows 8 sau mai nou)< &AnteriorAdu și pune dosar aici sau folosește butonul +Adu și pune dosar aici sau folosește butonul +Despre %sConturiAdaugă comentariuAdaugă Fișiere…Adaugă Dosare…Adaugă Wildcard…Adaugă comentariuAdaugă directorul la listăAdaugă fișiere…Adaugă dosare…Adauga wildcard…Cuvinte cheie suplimentareFlaguri xgettext adiționale:AvansatSetări Avansate de Extragere…Setări avansate de extragereSetări avansate de extragere…Toate fișierele pentru traducereToate comentariileUtiliza cuvinte cheie implicite pentru limbile suportateAlt+Pune mereu focalizarea pe cîmpul de introducere a textuluiUn element în lista de fișiere de intrare:Un element în lista de cuvinte-cheie:AspectAplicăEști sigur că dorești să ștergi extractor "%s"?Ești sigur că vrei să resetezi memoria de traducere?Căutare automata de actualizăriCompilează automat fișierul MO la salvareÎnapoiCale de bază:Versiunile beta conține ultimele noi caracteristici și îmbunatățiri, dar poate fi putin mai instabil.Aduce tot in fataFișier catalog deteriorat: forma de plural msgtr a fost folosită fără msgid_pluralFișier catalog stricat: forma de singular msgtr a fost folosită împreună cu msgid_pluralRăscoleșteÎn mod implicit, rezultate inexacte sunt completate, precum și marcate ca necesitând munca. Bifează aceasta opțiune pentru a include numai potriviri exacte.C&atalogCurățăAnuleazăNu se poate crea directorul temporar.Nu se poate executa programul: %sValorificaCatalogCatalog modificat. Doriți să salvați schimbările?Propietăți catalogAdministrator &cataloageAdministrator &cataloageManager de cataloageSchimbă limba InterfețeiSet de caractere:Verifică documentul acumVerifica gramatica cu ortografieVerificarea ortografiei în timpul tastăriiVerificare actualizări…Verificați după erori în traducereVerifica actualizări…Verificarea ortograficăCurățăCurăță traducereaCurăță comentariulCurăță traducereaÎnchideColaborează la o traducere cu alțiiColaborează la o traducere cu alțiiColectare fișierele sursă…Comanda de extras traduceri:Comentariu:Comentarii începute cu:Compila pentru MO…Compila pentru…Compilate traducere fişiereConfigurează extragerea codului sursa în Proprietăți.ConfirmareCopiaţiCopie la singularCopiază din textul sursăCopie la singularCopiază din textul sursăCorectează ortografia automatNu se poate încărca fișierul %s, probabil este corupt.Nu sa putut salva fișierul %s.Creați Traducere NouăCreați traducere nouăCreează un nou proiect de traduceriCrowdin eroareCrowdin este o platformă online de management a localizării şi un instrument de traducere colaborativ. Poedit se poate sincroniza perfect cu fişierele PO gestionate de Crowdin.Ctrl+&DecupeazăExtractoare personalizate:Extractoare personalizate:DecupeazăBaza de date pe disk:ȘtergeŞtergeţi extractorȘterge proiectDirectoare:Afișare Intrare &IDAfișare intrare &IDSigur doriți să actualizați în ansamblu toate cataloagele din acest proiect?Doriți să ștergeți proiectul?Doriți să eliminați toate traducerile care nu mai sunt folosite?Nu SalvaNu mai afișaNu marca potriviri exacte ca nevoie de muncăNu salvaNu mai afișaJosDescarca un fișier din proiectul Crowdin, tradu și sincronizează schimbările efectuate.Descărcare ultimele traduceri...Descărcare traduceri este dezactivată în acest proiect.IeșireE&xport ca HTML…EditareEditare &comentariuEditare &comentariuEditare comentariuEditează o traducereEditează o traducereEditare comentariuEditare proiectEditează proiectulIn editareEditare…E-mail:EnterIntrati in ecran completIntrările din catalog sînt probabil incorecte.Intrările din acest catalog au diferite forme de plural conta din ce catalog forme de Plural antet spuneMai întâi intrările cu eroriMai întâi intrările cu eroriIntrările cu erori au fost marcate cu roșu în listă. Detaliile erorii va fi arătate când selectați o astfel de intrare.Eroare la încărcarea mesaj catalog fișier "%s".Eroare de deschidere fişierEroare la deschiderea fișierului %s!Eroare la salvarea cataloguluiEroriTotulCăi excluseExport ca…Extrage din surseExtrage comentarii de la traducători:Extrage textul din fișierele sursă în următoarele directoare:Extrag șirurile de tradus…Configurare extractorExtractoriComandă eșuată: %sAm eșuat în a comunica cu procesul Poedit.Încărcarea catalogului extras a eșuat.Unirea cataloagelor gettext a eșuat.Imposibil de actualizat memorie de traducere: %sFișierFișierul "%s" nu există.Fișierul "%s" nu este un mesaj de catalog.Файл «%s» доступен только для чтения, поэтому его невозможно сохранить. Сохраните этот файл под другим именем.Fişier:Finalizare…CautăGăsește următorulGăsește anteriorulCaută și Înlocuiește…Găsește în comentariiGăsește în textele sursăGăseşte în traduceriGăsește următorulGăsește anteriorRepara LimbaRepara limbaRepară antetulRepară antetulForma %iFrecventGNU gettextGeneralMergi la Marcaj %iMergi la marcaj %iFişierele HTMLAjutorAscunde %sAscunde alteleAscunde Bara LateralăAscundere Bară de StareAscunde acest mesaj de informareIDDacă veți continua cu curățarea, toate traducerile marcate ca șterse vor fi definitiv eliminate. Va trebui să le traduceți din nou dacă vor fi adăugate înapoi în viitor.Ignora casetaImportare traduceri…Include versiunile betaInformații despre traducătorInstalaţiFişier nevalidInvocare:PăstreazăCod limbă sau nume (ex. en_GB)Limbaj traducerii este la fel ca limba sursă.Limba de traducere nu este setată.Limba traducerii:Selectare limbăEchipa de traducere:Limba:Ultima modificareÎnvățați despre cuvintele cheie gettextÎnvață de la Fișier…Află mai multeAflă mai multe despre CrowdinÎnvățați despre cuvintele cheie gettextÎnvățați despre formele de pluralÎnvață de la fișier…Află mai multeAflă mai multe despre CrowdinStângaLinia %d de fișier "%s" este corupa (data %s invalida).Sfârșit de linii:Lista de extensii separate cu punct și virgulă (ex. *.cpp;*.h):MO fişiere nu pot fi editate direct în Poedit.MinusculeMajusculeAntetului incorect format: "%s"Fuzionarea diferențele…MinimizeazăNumele proiectului de unde vine traducereaNume:Următorul neterminatUrmătorul neterminatNecesita lucruNecesita lucruNu lasă niciodată lista de șiruri să preia focalizarea. Dacă este activată, trebuie să folosiți Ctrl-săgeți pentru navigarea cu tastatura dar puteți de asemenea să scrieți textul imediat, fără a trebui să apăsați Tab pentru a schimba focalizarea.NouNou Din &POT/PO Fișier…Nou din &POT/PO fișier…Șiruri noiForma de plural viitoareForma de plural viitoareNuNici o potrivire găsitaNici o intrare nu a putut fi pre-tradusa.Nici o potrivire găsitaNu au fost găsite probleme cu traducerea.Nici o referință pentru elementul selectat.Nu sunt proiecte de traducere în contul tau Crowdin.Nu toate formele de plural sunt traduse.Neautorizat, vă rugăm să faceţi "sign in" din nou.Note pentru traducători:OKȘiruri învechiteUnuPermite numai dacă ai încredere în MT. Implicit, toate potrivirile din MT sunt marcate ca necesita munca și ar trebui reexaminată înainte de utilizare.Completați doar potriviri exacteDeschideDeschide traducere CrowdinDeschide Din Crowdin…Deschide RecentDeschide un fişier existent PO şi edita traducerea.Deschide catalogDeschide model catalogDeschide din Crowdin…Deschide în EditorDeschide în editorDeschide...Deschide…OpţiuniAltulAnteriorul neterminatAnteriorul neterminatTraducere PODosar de traducere POŞabloane de traducereDosarele POT sunt doar template-uri și nu conțin traduceri. To fa o traducere, crează un fișier PO nou bazat pe șablon.Lipire / adaugareLipește și potrivește stilului existentCăiVă rugăm să deschideţi şi editaţi fişierul PO corespunzător. Atunci când îl salvaţi, fişierul MO va fi actualizat, de asemenea.Salvează fișierul. Această secțiune nu poate fi editată până atunci.PluralExpresia formelor de plural folosită de catalog este neobișnuit pentru %s.Forme de plural:Plural:PoeditPoedit - Administrator de cataloagePoedit corectează automat conținutul invalid în fișierul “%s”.Poedit poate încerca să completeze intrări noi doar de la traducerile anterioare din fișier sau din întreaga ta memorie de traducere. Folosind MT nu va fi foarte eficienta în cazul în care este aproape goala, dar acesta va fi mai buna pe măsură adaugi mai multe traduceri.Podit este un editor de traduceri ușor de folosit.Pre-&traduce…Pre-traducerePre-tradusPre-tras %u sirPre-tradus %u siruriPre-tradus %u siruriPre-traducere…Pre-traducerea găsește automat potrivirile exacte sau neclare pentru șiruri netraduse de caractere din memoria de traducere completându-le automat.PreferințePreferințe...Preferințe…Păstrează formatarea fișierelor existenteForma de plural anterioaraForma de plural anterioaraTextul sursă anterior:Nume și versiune proiect:Nume proiect:Proiect:CurățăCurăță traducerile șterseTerminăRenunță %sRecentRefacereReferințe:ReîmprospătareRămase: %dÎnlocuieșteÎnlocuire &TotÎnlocuire &totŞir de înlocuitÎnlocuiește…Lipsește antetul formelor de plural solicitat.ResetareResetare memorie de traducereResetarea memoriei de traducere va șterge definitiv toate traducerile stocate în ea. Nu poți anula operația.RevizuireDreptaSalveazăSalvare &Ca…Salvare &ca…Salvează caSalvare ca…Salvează catalogSalvează modificărileSelectează &TotSelectează totSelectează directorulSelectați fișierele de traducere pentru a le importaSelectați limba preferatăServiciiSetează marcaj %iSetare limbăSetare marcaj %iSetare limbăShift+Arata totArată Bara LateralăArată corectare ortografică și gramaticalăArată Bara de StareArată substituiriAfişaţi sau ascundeţi bara lateralăArată bara lateralăArată bara de stareArată rezumatul după actualizarea cataloguluiBara LateralăAutentificareDeconectareAutentificareAutentificare pe CrowdinDeconectareAutentificat ca:SingularSingular:Copiere/lipire inteligentăCratime inteligenteSmart link-uriGhilimele inteligenteSortează după &ordine fișierSortează după &sursăSortează după &traducereSortează după &ordine fișierSortează după &sursăSortează după &traducereSet de caractere al codului sursă:Extractoarele de cod sursa sunt folosite sa găsească șiruri de cod sursa și le extrag ca sa poate fi traduse.Codul sursă nu este disponibil.Fișier sursăApariția fișierului sursă:Text sursăSursa text — %sText sursă:Sursele cuvintelor cheieCăile SurselorSurse cuvinte-cheieCăile surselorDiscursSpellchecking este dezactivat, pentru că dicţionarul pentru %s nu este instalat.Corectare ortografică și gramaticalăÎncepeți să vorbiţiOprire vorbireTraduceri stocate:Șir de găsitSubstituiriSugestiiSugestiile nu sunt disponibile în cazul în care limba de traducere nu este setata corect. Alte caracteristici, cum ar fi forme de plural, pot fi afectate.Suportă toate limbajele de programare, recunoscut de instrumentele de GNU gettext (PHP, C/C++, C#, Perl, Python, Java, JavaScript și altele).SincSincronizare cu CrowdinSincronizare traducere cu CrowdinSincronizareEroare sincronizareSincronizarea cu %s a eșuat.Sincronizare cu %s…Sincronizarea cu Crowdin nu a reușit.Eroare de sintaxă în cadrul formelor de plural ("%s").MTIa un fișier existent PO sau șablon POT și crează o nouă traducere din el.Ia șirurile traductibile de pe un șablon POT existent.Numele echipei și adresa de E-mail sau urlÎnlocuire textMT nu conține niciun sir de caractere similare cu conținutul acestui acest fișier. Este eficient doar pentru traducerile semi-automat pe care Poedit le-a învățat din fișierele traduse manual.Catalogul nu a putut fi salvat cu setul de caractere "%s", specificat în setările de catalog. Acesta a fost salvat în UTF-8 și această schimbare a fost actualizată în mod corespunzător în setările de catalog.Fişierul nu poate fi compilat în formatul MO şi utilizat.Imposibil de deschis fișierul.Fișierul conținea elemente duplicate, care nu este permis în fișiere PO și ar împiedica utilizarea fișierului. Poedit a rezolvat problema, dar ar trebui să revizuiești traducerile din orice elemente marcat ca necesită muncă și corecteazale dacă este necesar.Fişierul poate sa fie corupt sau într-un format nerecunoscut de Poedit.Fişierul a fost compilat în formatul MO, dar, probabil, nu va funcţiona corect.Fişierul a fost salvat în condiţii de siguranţă şi compilate în formatul MO, dar, probabil, nu va funcţiona corect.Fișierul a fost salvat în siguranță, dar nu poate fi compilat in format MO și folosit.Fişierul a fost salvat în condiţii de siguranţă.Vechiul text sursa (înainte de a fi schimbat în timpul unei actualizări) care corespunde traducere acum inexacte.Cel mai simplu mod pentru a umple acest catalog este de al actualiza dintr-un fișier POT:Traducerea nu începe cu un spațiu.Traducerea începe cu un newline, dar nu și textul sursă.Traducerea se termină cu un spațiu, dar nu și textul sursă.Traducerea se termină cu "%s", dar textul-sursă se termină cu "%s".Traducerea îi lipsește un newline la sfârșit.Traducerii îi lipsește un spațiu la final.Traducerea este gata pentru utilizare, dar %d intrare nu este tradus încă.Traducerea este gata pentru utilizare, dar %d intrările nu sunt traduse încă.Traducerea este gata pentru utilizare, dar %d intrările nu sunt traduse încă.Traducerea este gata de folosit.Traducerea trebuie să se termine cu "%s".Traducerea nu trebuie să se termine cu "%s".Traducerea ar trebui să înceapă ca o propoziție.Traducerea ar trebui să înceapă cu un caracter mic.Traducerea începe cu un spațiu, dar nu și textul sursă.Traducerile au fost marcate ca necesita munca, deoarece acestea pot fi inexacte. Ar trebui revizuite pentru corectitudine.Nu există traduceri. Este neobișnuit.A fost o problemă la formatarea fișierului (dar a fost salvat în regulă).Au apărut unele erori la încărcarea catalogului. E posibil ca unele date să lipseasca sau să fie deteriorate.Aceste setări afectează formatarea interne de fișiere PO. Ajusteazale dacă ai cerințe specifice ex. din cauza controlului versiunilor.Aceste șiruri nu mai sunt în surse. Poedit le va elimina acum din catalog.Aceste șiruri au fost găsite în surse, dar nu erau în catalog. Poedit le va adăuga acum la catalog.Acest catalog are intrări cu forme de plural, dar nu are antetul Plural-Forms configurat.Acest fișier poate fi editat doar în interfața web Crowdin.Aceasta este comanda folosită pentru a lansa extractorul. %o se extinde la numele fișierului de ieșire, %K la lista de cuvinte-cheie, %F la lista de fișiere de intrare, %C la setul de caractere (vezi mai jos).Acest proiect nu are dosare care pot fi traduse în Poedit.Acest şir s-a găsit în memoria de traducere Poedit.Aceasta va fi atașată la linia de comandă doar dacă setul de caractere al sursei a fost dat. %c se extinde la valoarea setului de caractere.Aceasta va fi atașată la linia de comandă pentru fiecare fișier de intrare. %f se extinde la numele fișierului.Aceasta va fi atașată la linia de comandă pentru fiecare cuvânt-cheie. %k se extinde la cuvântul-cheie.TotalTransformăriÎnregistrările traductibile nu sunt adăugate manual în sistemul Gettext, ci sunt extrase în mod automat din codul sursă. În acest mod, acestea rămân actualizate și exacte. Traducătorii folosesc de regulă fișiere șablon PO (POT-uri), pregătite pentru acest scop de către dezvoltator.Tradus: %d în %d (%d %%)Limba TraducereMemorie de traducereTraducere necesita &muncăProprietăți traducereTraducere necesita &muncăProprietăți traducereSugestii traducere:Traducere-%sTraducere:Versiunea nu a putut fi actualizata la codul sursă, deoarece codul nu a fost găsit în locaţia specificată în catalog pe proprietăţi.DoiUTF-8 (recomandat)DesfaceExcepție netratată s-a produs: %sUnix (recomandat)NetradSusActualizareActualizează totActualizează toate cataloagele din proiectActualizare catalog - sincronizează-l cu surseleActualizează din Fișier &POT…Actualizează din fișier &POT…Actualizare din POTActualizare rezumatActualizăriActualizare catalogActualizarea nu a reușitA eșuat actualizarea catalogului. Apăsați pe 'Detalii >>' pentru detalii.Actualizarea informațiilor de utilizator...Încărcarea traduceri...Utilizarea expresiei personalizateUtilizare listă de font particularizată:Utilizați fontul câmpurilor text personalizate:Utilizaţi regulile implicit pentru această limbăFolosește aceste cuvinte-cheie (nume de funcții) pentru a recunoaște șirurile traductibile în fișiere sursă:Memorie de traducereValideazăValidarea rezultatelorVersiunea %sAutentificare în așteptare…Bine ai venit la PoeditCe este Crowdin?Atunci când se actualizeaza din surseDoar cuvinte întregiFereastrăWindowsCăutare similarăÎncadrare la:DaDe asemenea, poți extrage șiruri traductibile direct din codul sursă:Nu puteți să lăsați mai mult de un fișier în fereastra Poedit.Redeschideți Poedit pentru ca această schimbare să intre în vigoare.Numele tăuModificările vor fi pierdute dacă nu le salvați.Numele și adresa de e-mail sunt folosite doar pentru a configura antetul Last-Translator din fișierele GNU gettext.ZeroZoomaltctrlnu șterge fișierele temporare (pentru depanare)e.g. nplurals=2; plural=(n > 1);potrivirea în cadrul fișieruluisari la elementul de pe linia cu numărul specificatfolosirea unui URI poedit://pre-traduce din MTshiftlimbă necunoscutăe-mailul_tau@exemplu.com"%s" nu este un fișier POT valid.poedit-2.0.6/locales/kab.po0000664000372000037200000014703213230132077012450 00000000000000msgid "" msgstr "" "Project-Id-Version: poedit\n" "Report-Msgid-Bugs-To: help@poedit.net\n" "POT-Creation-Date: 2017-12-05 15:52+0100\n" "PO-Revision-Date: 2017-12-05 09:51-0500\n" "Last-Translator: vslavik \n" "Language-Team: Kabyle\n" "Language: kab_KAB\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: crowdin.com\n" "X-Crowdin-Project: poedit\n" "X-Crowdin-Language: kab\n" "X-Crowdin-File: /locales/poedit.pot\n" msgid "Hide this notification message" msgstr "Ffer izen-agi n ulɣu" msgid "Don’t Show Again" msgstr "Ur d-skan ara tikelt-nniḍen" msgid "Don’t show again" msgstr "Ur d-skan ara tikelt-nniḍen" #, c-format msgid "(New: %i, obsolete: %i)" msgstr "(Amaynut : %i, yezri : %i)" msgid "Updating catalog" msgstr "Aleqqem n ukaram" msgid "Collecting source files…" msgstr "Alqaḍ n ifuyla iɣbula…" msgid "Extracting translatable strings…" msgstr "Asuffeɣ n izriren ara yettwasuqlen…" msgid "Failed to load extracted catalog." msgstr "Tuccḍa deg weɛebbi n ukaram yettwassefen." msgid "Merging differences…" msgstr "Asdukel n wayen imgaraden…" #, c-format msgid "“%s” is not a valid POT file." msgstr "“%s” mačči d afaylu POT ameɣtu." #, c-format msgid "%i line of file “%s” was not loaded correctly." msgid_plural "%i lines of file “%s” were not loaded correctly." msgstr[0] "%i n izirig n ufaylu “%s” ur d-yuli ara akken iwata." msgstr[1] "%i n izirigen n ufaylu “%s” ur d-ulin ara akken iwata." #, c-format msgid "Line %d of file “%s” is corrupted (not valid %s data)." msgstr "Ajerriḍ %d n ufaylu '%s'  yerreẓ (isefka n %s d urmeɣtuyen)." #, c-format msgid "Malformed header: “%s”" msgstr "Inixef ur yemsil ara akken ilaq:'%s'" msgid "" "Broken catalog file: singular form msgstr used together with msgid_plural" msgstr "" "Afaylu akaram yerreẓ : talɣa n wasuf msgstr tettwaseqdec lwaḥid akked " "msgid_plural" msgid "Broken catalog file: plural form msgstr used without msgid_plural" msgstr "" "Afaylu akaram yerreẓ : talɣa n wesget msgstr tettwaseqdec war msgid_plural" msgid "" "There were errors when loading the catalog. Some data may be missing or " "corrupted as the result." msgstr "" "Llan inezriyen deg weɛebbi n ukaram. Kra n isefka ad ilin xuṣen neɣ errẓen." #, c-format msgid "Couldn’t load file %s, it is probably corrupted." msgstr "D awezɣi asali n ufaylu %s, izmer ad yili yerreẓ." #, c-format msgid "" "File “%s” is read-only and cannot be saved.\n" "Please save it under different name." msgstr "" "Afaylu '%s' i tɣuri kan ihi ur tezmireḍ ara ad t-teskelseḍ-t.\n" "Ttxil-k skels-it s yisem-nniḍen." #, c-format msgid "Couldn’t save file %s." msgstr "D awezɣi asekles n ufaylu %s." msgid "" "There was a problem formatting the file nicely (but it was saved all right)." msgstr "Yella wugur deg wemsal n ufaylu (maca yettwasekles akken ilaq)." #, c-format msgid "" "The catalog couldn’t be saved in “%s” charset as specified in catalog " "settings.\n" "\n" "It was saved in UTF-8 instead and the setting was modified accordingly." msgstr "" "Akaram yugi ad yekles s tegrumma n isekkilen '%s',\n" "am akken i yettwamel deg iɣewwaren ukaram. Yettwasekles s tegrumma n " "isekkilen UTF-8\n" "yerna tettwabeddel twila." msgid "Error saving catalog" msgstr "Tuccḍa deg wesekles n ukaram" msgid "PO Translation Files" msgstr "Ifuyla n tsuqqilt PO" msgid "POT Translation Templates" msgstr "Tineɣrufin POT n usuqqel" msgid "All Translation Files" msgstr "Ifuyla merra n tsuqqilt" msgid "(Use default language)" msgstr "(Seqdec tutlayt n lexṣas)" msgid "Select your preferred language" msgstr "Fren tutlayt-ik tamenyaft" msgid "Language selection" msgstr "Afran n tutlayt" msgid "You must restart Poedit for this change to take effect." msgstr "Ilaq ad talseḍ asekker n Poedit iwakken ad yeddu ubeddil-agi." msgid "Syncing" msgstr "Amtawi" #. TRANSLATORS: %s is a cloud destination, e.g. "Crowdin" or ftp.wordpress.com etc. #, c-format msgid "Syncing with %s…" msgstr "Amtawi akked %s…" #. TRANSLATORS: %s is a cloud destination, e.g. "Crowdin" or ftp.wordpress.com etc. #, c-format msgid "Syncing with %s failed." msgstr "Amtawi akked %s yecceḍ." msgid "Syncing error" msgstr "Tuccḍa n umtawi" msgid "Downloading translations is disabled in this project." msgstr "Azdam n tsuqqilin yensa deg wesenfar-agi." msgid "Not authorized, please sign in again." msgstr "Yegdel, ttxil-k qqen tikkelt-nniḍen." msgid "" "Crowdin is an online localization management platform and collaborative " "translation tool. Poedit can seamlessly sync PO files managed at Crowdin." msgstr "" "Crowdin d agens n usefrek n tsuqqilin ɣef uzeṭṭa u d allal n usuqqel ideg " "zemren ad kkin aṭas n medden. Poedit yezmer ad yesemtawi akken ilaq ifuyla " "PO di Crowdin." msgid "Sign In" msgstr "Kcem" msgid "Sign in" msgstr "Kcem" msgid "Sign Out" msgstr "Ffeɣ" msgid "Sign out" msgstr "Ffeɣ" msgid "Waiting for authentication…" msgstr "Araǧu n usesteb..." msgid "Updating user information…" msgstr "Aleqqem n telɣut n useqdac…" msgid "Signed in as:" msgstr "Teqqneḍ s yisem:" msgid "Learn More About Crowdin" msgstr "Issin ugar ɣef Crowdin" msgid "Learn more about Crowdin" msgstr "Issin ugar ɣef Crowdin" msgid "Sign in to Crowdin" msgstr "Qqen ɣer Crowdin" msgid "Open Crowdin translation" msgstr "Ldi tasuqilt Crowdin" msgid "Project:" msgstr "Asenfar :" msgid "Language:" msgstr "Tutlayt:" msgid "File:" msgstr "Afaylu :" msgid "No translation projects listed in your Crowdin account." msgstr "Ulac isenfaren n tsuqqilt deg wemiḍan-inek n Crowdin." msgid "This project has no files that can be translated in Poedit." msgstr "Asenfar-agi ur yesɛi ara ifuyla i tzemreḍ ad tsuqqleḍ s Poedit." msgid "This file can only be edited in Crowdin’s web interface." msgstr "Afaylu-agi tzemreḍ ad t-tẓergeḍ ḥaca deg wegrudem n web n Crowdin." msgid "Downloading latest translations…" msgstr "Asider n tsuqqilin tingurra..." msgid "Syncing with Crowdin failed." msgstr "Amtawi akked Crowdin yerreẓ." msgid "Crowdin error" msgstr "Tuccḍa n Crowdin" msgid "Uploading translations…" msgstr "Asali n tsuqilin…" msgid "&Copy" msgstr "&Nɣel" msgid "Learn more" msgstr "Ẓer ugar" msgid "Learn More" msgstr "Ẓer ugar" msgid "&Help" msgstr "&Tallelt" msgid "MO files can’t be directly edited in Poedit." msgstr "Ifuyla MO ur tezmireḍ ara ad ten-ẓergeḍ srid di Poedit." msgid "Error opening file" msgstr "Tuccḍa di tulya n ufaylu" msgid "" "Please open and edit the corresponding PO file instead. When you save it, " "the MO file will be updated as well." msgstr "" "Ttxil-k ldi u ẓreg afaylu PO anmeɣray. Mi ara t-teskelseḍ, afaylu MO ad " "yemucceḍ daɣen." msgid "don’t delete temporary files (for debugging)" msgstr "ur tekkes ara ifuyla ikudanen (i weseɣti)" msgid "handle a poedit:// URI" msgstr "gère une poedit: // URI" msgid "go to item at given line number" msgstr "ddu ar uferdis n izirig d-ittunefken" msgid "Failed to communicate with Poedit process." msgstr "Tuccḍa di teɣwalt akked Poedit." #, c-format msgid "Unhandled exception occurred: %s" msgstr "Teḍra-d tsureft ur nsefrak ara : %s" msgid "Open catalog" msgstr "Ldi akaram" #, c-format msgid "File “%s” doesn’t exist." msgstr "Afaylu “%s” ulac-it." msgid "Poedit is an easy to use translations editor." msgstr "Poedit d amaẓrag n tsuqqilin yeshel i weseqdec." msgid "Catalogs Manager" msgstr "Amsefrak n ikaramen" msgid "Check for Updates…" msgstr "Nadi ileqman…" msgid "&Edit" msgstr "&Ẓreg" msgid "Undo" msgstr "Sefsex" msgid "Redo" msgstr "Err-d" msgid "Paste and Match Style" msgstr "Senṭeḍ s uḥraz n uɣanib" msgid "Delete" msgstr "Kkes" msgid "Spelling and Grammar" msgstr "Taɣdirawt akked tjerrumt" msgid "Show Spelling and Grammar" msgstr "Ur skan ar taɣdirawt akked tjerrumt" msgid "Check Document Now" msgstr "Senqed isemli tura" msgid "Check Spelling While Typing" msgstr "Selken taɣdirawt di lawan n tira" msgid "Check Grammar With Spelling" msgstr "Selken taɣdirawt akked tajerrumt" msgid "Correct Spelling Automatically" msgstr "Aseɣti awurman n teɣdirawt" msgid "Substitutions" msgstr "Isemselsiyen" msgid "Show Substitutions" msgstr "Sken isemselsiyen" msgid "Smart Copy/Paste" msgstr "Anɣel/asenteḍ amegzu " msgid "Smart Quotes" msgstr "Tiskarin timegza" msgid "Smart Dashes" msgstr "Ijerriḍen imegza" msgid "Smart Links" msgstr "Izdayen imegza" msgid "Text Replacement" msgstr "Asemselsi n uḍris" msgid "Transformations" msgstr "Aselket" msgid "Make Upper Case" msgstr "Selket s asekkil ameqran" msgid "Make Lower Case" msgstr "Selket s asekkil amecṭuḥ" msgid "Capitalize" msgstr "Selket s asekkil ameqran" msgid "Speech" msgstr "Ameslay" msgid "Start Speaking" msgstr "Bdu ameslay" msgid "Stop Speaking" msgstr "Ḥbes ameslay" msgid "&View" msgstr "Ti&meẓriwt" msgid "Enter Full Screen" msgstr "Ɛeddi ɣer ugdil aččuran" msgid "Window" msgstr "Asfaylu" msgid "Minimize" msgstr "Simẓi" msgid "Zoom" msgstr "Simɣur" msgid "Bring All to Front" msgstr "Sɛeddi kulec ɣer uɣawas amezwaru" #. TRANSLATORS:File kind displayed in Finder/Explorer msgid "PO Translation" msgstr "Tasuqilt PO" msgid "The file cannot be opened." msgstr "Afaylu yugi ad yeldi." msgid "Invalid file" msgstr "Afaylu d urmeɣtu" msgid "" "The file may be either corrupted or in a format not recognized by Poedit." msgstr "" "Afaylu izmer ad yili yerreẓ neɣ amasal-ines ur t-yesemmezdey ara Poedit." msgid "You can’t drop more than one file on Poedit window." msgstr "Ur tezmireḍ ar ad tserseḍ ugar n yiwen n ufaylu deg wesfaylu n Poedit." #, c-format msgid "File “%s” is not a message catalog." msgstr "Afaylu '%s' mači d akaram n yizen." msgid "Poedit" msgstr "Poedit" msgid "&File" msgstr "Afa&ylu" msgid "&Go" msgstr "&Bdu" #. TRANSLATORS: %s is language name in its basic form (as you #. would see e.g. in a list of supported languages). You may need #. to rephrase it, e.g. to an equivalent of "for language %s". #, c-format msgid "" "Spellchecking is disabled, because the dictionary for %s isn’t installed." msgstr "Aseɣtay n teɣdirawt yensa, acku amawal i %s ur yettusbedd ara." msgid "Install" msgstr "Sbedd" msgid "Catalog modified. Do you want to save changes?" msgstr "Akaram yettwabeddel. Tebɣiḍ ad teskelseḍ ibeddilen ?" msgid "Save changes" msgstr "Sekles ibeddilen" msgid "Your changes will be lost if you don’t save them." msgstr "Ibeddilen-ik ad ruḥen ma yella ur ten-teskelseḍ ara." msgid "Save" msgstr "Sekles" msgid "Don’t save" msgstr "Ur seklas ara" msgid "Don’t Save" msgstr "Ur seklas ara" msgid "Save as…" msgstr "Sekles s yisem…" msgid "Compile to…" msgstr "Sefsu ɣer…" msgid "Compiled Translation Files" msgstr "Afaylu n tsuqqilt yefsa" msgid "Export as…" msgstr "Sifeḍ ar…" msgid "HTML Files" msgstr "Ifuyla HTML" msgid "Open catalog template" msgstr "Ldi tamudimt n ukaram" msgid "Source code not available." msgstr "Tangalt taɣbalut ur tewjid ara." msgid "Updating failed" msgstr "Aleqqem yecceḍ" msgid "" "Translations couldn’t be updated from the source code, because no code was " "found in the location specified in the catalog’s Properties." msgstr "" "Tisuqqilin ugint ad muccḍent seg tengalt taɣbalut, acku ur d-nufi ara " "tangalt deg yideg i d-yettunefken deg iraten n ukaram." msgid "Entries in the catalog are probably incorrect." msgstr "Inekcumen deg ukaram zemren ad ilin d urmeɣtuyen." msgid "Updating the catalog failed. Click on 'Details >>' for details." msgstr "" "Aleqqem n ukaram yecceḍ. Senned ɣef « Talqayt>> » akken ad teẓreḍ ugar." #, c-format msgid "%d issue with the translation found." msgid_plural "%d issues with the translation found." msgstr[0] "%d n wugur i d-nufa di tsuqqilt." msgstr[1] "%d n wuguren i d-nufa di tsuqqilt." msgid "Validation results" msgstr "Igmaḍ n useɣbel" msgid "" "Entries with errors were marked in red in the list. Details of the error " "will be shown when you select such an entry." msgstr "" "Inekcumen yesɛan tuccḍiwin ttucerḍen s uzeggaɣ di tebdart. Isalen ɣef ɣef " "tuccḍa ad d-baben mi ara tferneḍ anekcum." msgid "The file was saved safely." msgstr "Afaylu yettwasekles s tɣellist." msgid "" "The file was saved safely and compiled into the MO format, but it will " "probably not work correctly." msgstr "" "Afaylu yettwasekles s tɣellist u yefsa ɣer umasal MO, maca wissen ma ad iddu " "akken ilaq." msgid "" "The file was saved safely, but it cannot be compiled into the MO format and " "used." msgstr "" "Afaylu yettwasekles s tɣellist, maca yugi ad yefsu ɣer umasal MO yerna ur " "yezmir ara ad yettwaseqdec." msgid "" "The file was compiled into the MO format, but it will probably not work " "correctly." msgstr "Afaylu yefsa ɣer umasal MO, maca wissen ma ad yeddu akken ilaq." msgid "The file cannot be compiled into the MO format and used." msgstr "Afaylu ur yezmir ara ad yefsu ɣer umasal MO u ad yettwaseqdec." msgid "No problems with the translation found." msgstr "Ur d-nufi ula d ugur di tsuqqilt." #, c-format msgid "The translation is ready for use, but %d entry is not translated yet." msgid_plural "" "The translation is ready for use, but %d entries are not translated yet." msgstr[0] "Tasuqilt tewjed i wseqdec, maca %d n unekcum ur yettwasuqqel ara." msgstr[1] "" "Tasuqilt tewjed i wseqdec, maca, %d n inekcumen ur ttwasuqqelen ara." msgid "The translation is ready for use." msgstr "Tasuqilt tewjed i wseqdec." #, c-format msgid "Poedit automatically fixed invalid content in the file “%s”." msgstr "Poedit yeseɣti i yiman-is agbur urmeɣtu n ufaylu “%s”." msgid "" "The file contained duplicate items, which is not allowed in PO files and " "would prevent the file from being used. Poedit fixed the issue, but you " "should review translations of any items marked as needing work and correct " "them if necessary." msgstr "" "Afaylu yesɛa iferdisen usligen, ayen i yegedlen deg yifuyla PO u yettqerriɛ " "asqedc n ufaylu. Poedit yefra ugur, maca ilaq ad tselkeneḍ tisuqqilin i " "yettwacerḍen d timawaẓin u ad tent-teseɣtiḍ ma yelaq." msgid "Language of the translation isn’t set." msgstr "Ulac asbadu n tutlayt n tsuqilt." msgid "Set Language" msgstr "Sbadu tutlayt" msgid "Set language" msgstr "Sbadu tutlayt" #. TRANSLATORS: This is shown underneath "Language of the translation isn't set (or ...is the same as source language)." msgid "" "Suggestions are not available if the translation language is not set " "correctly. Other features, such as plural forms, may be affected as well." msgstr "" "Isumar ur ttawjaden ara ma yella ulac asbadu n tutlayt n tsuqqilt. Ayagi, " "yezmer ad iḥaz timeẓliyin-nniḍen, am talɣiwin n wesget." msgid "Language of the translation is the same as source language." msgstr "Tutlayt n tsuqqilt kifkif-itt akked tutlayt taɣbalut." msgid "Fix Language" msgstr "Sbadu tutlayt" msgid "Fix language" msgstr "Sbadu tutlayt" msgid "" "This catalog has entries with plural forms, but doesn’t have Plural-Forms " "header configured." msgstr "" "Akaram-agi yesɛa inekcumen n wesget, maca ulac tawila n inixef Plural-Forms." msgid "" "Entries in this catalog have different plural forms count from what " "catalog’s Plural-Forms header says" msgstr "" "Inekcumen deg ukaram-agi sɛan amḍan n talɣiwin n wesget i yemgarraden ɣef " "win i yettwamellan deg inixef Plural-Forms" msgid "Required header Plural-Forms is missing." msgstr "Tasenṭiḍt Plural-Forms i yelaqen txuṣ." #, c-format msgid "Syntax error in Plural-Forms header (\"%s\")." msgstr "Tuccḍa n tseddast di tsenṭiḍt Plural-Forms (\"%s\")." msgid "Fix the Header" msgstr "Seɣti tasenṭiḍt" msgid "Fix the header" msgstr "Seɣti tasenṭiḍt" #. TRANSLATORS: %s is language name in its basic form (as you #. would see e.g. in a list of supported languages). You may need #. to rephrase it, e.g. to an equivalent of "for language %s". #, c-format msgid "Plural forms expression used by the catalog is unusual for %s." msgstr "Talɣiwin n wesget i yeseqdec ukaram-agi ulac-itent di tnumi n %s." #. TRANSLATORS: A verb, shown as action button with ""Plural forms expression used by the catalog is unusual for %s.")" msgid "Review" msgstr "Cegger" #, c-format msgid "Error loading message catalog file “%s”." msgstr "Tuccḍa deg usali n ufaylu akaram '%s'." #, c-format msgid "Translated: %d of %d (%d %%)" msgstr "Tasuqilt n: %d seg %d (%d %%)" #, c-format msgid "Remaining: %d" msgstr "Yeggra-d : %d" #, c-format msgid "%d error" msgid_plural "%d errors" msgstr[0] "%d n tuccḍa" msgstr[1] "%d n tuccḍiwin" #, c-format msgid "%d entry" msgid_plural "%d entries" msgstr[0] "%d n unekcum" msgstr[1] "%d n inekcumen" msgid " (unsaved)" msgstr " (ur yettwasekles ara)" msgid " (modified)" msgstr " (yettwabeddel)" #, c-format msgid "Failed to update translation memory: %s" msgstr "Aleqqem n tkatut n tsuqilin ur yeddi ara: %s" msgid "Purge deleted translations" msgstr "Sfeḍ tisuqqilin yettwakksen" msgid "Do you want to remove all translations that are no longer used?" msgstr "Tebɣiḍ ad tekkseḍ tisuqqilin merra ur nettwaseqdac ara ?" msgid "" "If you continue with purging, all translations marked as deleted will be " "permanently removed. You will have to translate them again if they are added " "back in the future." msgstr "" "Ma tkemmeleḍ asizdeg, tisuqqilin merra i yettwacerḍen amzun ttwakksent ad " "ttwakksent i lebda. Asmi ara tebɣuḍ ad tent-ternuḍ ilaq ak ad tent-" "tesuqqeleḍ tikkelt-nniḍen." msgid "Keep" msgstr "Eǧǧ" msgid "Purge" msgstr "Sfeḍ" msgid "Copy from source text" msgstr "Nɣel seg weḍris aɣbalu" msgid "Copy from Source Text" msgstr "Nɣel seg weḍris aɣbalu" #. TRANSLATORS: This is the key shortcut used in menus on Windows, some languages call them differently #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Ctrl+" msgstr "Ctrl+" msgid "Clear translation" msgstr "Sfeḍ tasuqqilt" msgid "Clear Translation" msgstr "Sfeḍ tasuqqilt" msgid "Edit comment" msgstr "Ẓreg awennit" msgid "Edit Comment" msgstr "Ẓreg awennit" msgid "References:" msgstr "Timsisɣal:" msgid "&Bookmarks" msgstr "Ti&craḍ" #. TRANSLATORS: This is the key shortcut used in menus on Windows, some languages call them differently #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Alt+" msgstr "Alt+" #, c-format msgid "Set bookmark %i" msgstr "Sbadu asɣal %i" #, c-format msgid "Go to bookmark %i" msgstr "Ruḥ ɣer wesɣal %i" #, c-format msgid "Set Bookmark %i" msgstr "Sbadu asɣal %i" #, c-format msgid "Go to Bookmark %i" msgstr "Ruḥ ɣer wesɣal %i" msgid "Hide Sidebar" msgstr "Ffer agalis n yidis" msgid "Show Sidebar" msgstr "Sken agalis n yidis" msgid "Hide Status Bar" msgstr "Ffer tafeggagt n waddad" msgid "Show Status Bar" msgstr "Sken tafeggagt n waddad" msgid "Source text:" msgstr "Aḍris aɣbalu :" msgid "Singular:" msgstr "Asuf :" msgid "Plural:" msgstr "Asget :" msgid "Translation:" msgstr "Tasuqilt :" msgid "Pre-translated" msgstr "Yečur s tzar-katut" msgid "Needs Work" msgstr "Yuḥwaǧ amahil" #. TRANSLATORS: This indicates that the string's translation isn't final #. and has known problems. For example, it might be machine translated or #. fuzzy matched from an older string. The translation should be short and #. convey this. If it's problematic to translate it, "Needs review" is #. acceptable substitute, but note that the meaning is subtly different: #. "needs review" implies that somebody else should review the string after #. I am done with it (i.e. consider it good), while "needs work" implies I #. need to return to it and finish the translation. msgid "Needs work" msgstr "Yuḥwaǧ amahil" msgid "" "POT files are only templates and don’t contain any translations themselves.\n" "To make a translation, create a new PO file based on the template." msgstr "" "Ifuyla POT d timudimin kan ur sɛin ara tisuqqilint. \n" "Iwakken ad tgeḍ tasuqqilt, snulfu-d afaylu amaynut PO seg tmudimt." msgid "Create New Translation" msgstr "Snulfu-d tasuqqilt tamaynut" msgid "Create new translation" msgstr "Snulfu-d tasuqqilt tamaynut" msgid "Everything" msgstr "Akk" #, c-format msgid "Form %i" msgstr "Talɣa %i" msgid "Singular" msgstr "Asuf" msgid "Zero" msgstr "Ilem" msgid "One" msgstr "Yiwen" msgid "Two" msgstr "Sin" msgid "Plural" msgstr "Asget" msgid "Other" msgstr "Wayeḍ" #, c-format msgid "%s Format" msgstr "Amasal %s" #. TRANSLATORS: %s is replaced with language name, e.g. "PHP" or "C", so "PHP Format" etc." #, c-format msgid "%s format" msgstr "Amasal %s" msgid "Source text" msgstr "Aḍris aɣbalu" #, c-format msgid "Translation — %s" msgstr "Tasuqilt — %s" msgid "ID" msgstr "ID" #, c-format msgid "Source text — %s" msgstr "Aḍris aɣbalu — %s" msgid "unknown language" msgstr "Tutlayt ur nettwassen ara" #, c-format msgid "Failed command: %s" msgstr "Taladna terreẓ : %s" msgid "Failed to merge gettext catalogs." msgstr "Tuccḍa deg wezday n ikaramen gettext." msgid "Source file" msgstr "Afaylu aɣbalu" msgid "Source file occurrence:" msgstr "Tummant n ufaylu aɣbalu:" msgid "Open in Editor" msgstr "Ldi deg wemaẓrag" msgid "Open in editor" msgstr "Ldi deg wemaẓrag" msgid "No references for the selected item." msgstr "Ulac tiwelhiwin i weferdis yettwafernen." #, c-format msgid "Error opening file %s!" msgstr "Tuccḍa di tulya n ufaylu %s !" msgid "Find" msgstr "Nadi" msgid "Replace" msgstr "Semselsi" #. TRANSLATORS: Expander in Find window for additional options (case sensitive etc.) msgid "Options" msgstr "Iɣewwaṛen" msgid "Ignore case" msgstr "Ur ttaqaṛ ara taruẓi n usekkil" msgid "Wrap around" msgstr "Qfel" msgid "Whole words only" msgstr "Awalen ummiden kan" msgid "Find in source texts" msgstr "Nadi deg yiḍrisen iɣbula" msgid "Find in translations" msgstr "Nadi di tsuqilin" msgid "Find in comments" msgstr "Nadi deg yiwenniten" msgid "Close" msgstr "Mdel" msgid "Replace &All" msgstr "Semselsi i &meṛṛa" msgid "Replace &all" msgstr "Semselsi i &meṛṛa" msgid "&Replace" msgstr "Se&mselsi" msgid "< &Previous" msgstr "< &Ɣer deffir" msgid "&Next >" msgstr "Ɣer &zdat>" msgid "String to find" msgstr "Izraren ara tnadiḍ" msgid "Replacement string" msgstr "Izraren n usemselsi" #, c-format msgid "Cannot execute program: %s" msgstr "Ulamek aselkem n wahil : %s" msgid "Language Code or Name (e.g. en_GB)" msgstr "Tangalt neɣ isem n tutlayt (amedya. kab_Kab)" msgid "Translation Language" msgstr "Tutlayt n tsuqqilt" msgid "Language of the translation:" msgstr "Tutlayt n tsuqqilt :" msgid "Poedit - Catalogs manager" msgstr "Poedit - Asefrak n ikaramen" msgid "Catalog" msgstr "Akaram" msgid "Total" msgstr "Uɣrid" msgid "Untrans" msgstr "Ur yettwasuqqel ara" msgid "Errors" msgstr "Inezriyen" msgid "Last modified" msgstr "Abeddel angarru" msgid "Select directory" msgstr "Fren akaram" msgid "Directories:" msgstr "Ikaramen:" msgid "" msgstr "" msgid "Do you want to delete the project?" msgstr "tebɣiḍ ad tekkeseḍ asenfar-agi ?" msgid "Confirmation" msgstr "Asentem" msgid "" "Do you really want to do mass update of\n" "all catalogs in this project?" msgstr "" "D tidett tebɣiḍ ad tgeḍ amucceḍ\n" "n ikaramen merra n usenfar-agi ?" msgid "Information about the translator" msgstr "Isalen ɣef umsuqqel" msgid "Name:" msgstr "Isem :" msgid "Your Name" msgstr "Nekwa" msgid "Email:" msgstr "Imayl:" msgid "your_email@example.com" msgstr "tansa-k.e-maill@amedya.com" msgid "" "Your name and email address are only used to set the Last-Translator header " "of GNU gettext files." msgstr "" "Isem-ik akked tansa-inek e-mail ad ttwasqedcen kan i wesbadu n tsenṭiḍt Last-" "Translator n yifuyla GNU gettext." msgid "Editing" msgstr "Asiẓreg" msgid "Automatically compile MO file when saving" msgstr "Asefsu awurman n ufaylu MO deg wesekles" msgid "Show summary after catalog update" msgstr "Sken agzul mbaɛd amucceḍ n ukaram" msgid "Check spelling" msgstr "Senqed aaɣdirawt" msgid "Always change focus to text input field" msgstr "Yalas sermad taɣzut n usekcem n uḍris" msgid "" "Never let the list of strings take focus. If enabled, you must use Ctrl-" "arrows for keyboard navigation but you can also type text immediately, " "without having to press Tab to change focus." msgstr "" "Ne jamais laisser la main à la liste des chaînes. Lorsqu'elle est activée, " "il faut utiliser les touches Ctrl + Haut/Bas de navigation, mais vous pouvez " "aussi taper le texte directement sans avoir à utiliser la touche de " "tabulation pour activer la zone de traduction." msgid "Appearance" msgstr "Timeẓri" msgid "Use custom list font:" msgstr "Seqdec tasefsit yugnen :" msgid "Use custom text fields font:" msgstr "Seqdec tasefsit yugnen i teɣzuyin n uḍris :" msgid "Change UI language" msgstr "Beddel tutlayt n ugrudem" #. TRANSLATORS: This is a note appended to "Check spelling" when running on older Windows versions msgid "(requires Windows 8 or newer)" msgstr "(yesra Windows 8 neɣ amaynut)" msgid "General" msgstr "Amatu" msgid "Use translation memory" msgstr "Seqdec takatut n tsuqqilt" msgid "Learn From Files…" msgstr "Lmed seg yifuyla…" msgid "Learn from files…" msgstr "Lmed seg yifuyla…" #. TRANSLATORS: This is a button that deletes everything in the translation memory (i.e. clears/resets it). msgid "Reset" msgstr "Ales awennez" #. TRANSLATORS: Followed by "match translations within the file" or "pre-translate from TM" msgid "When updating from sources" msgstr "Mi ara yili umucceḍ seg yiɣbula" #. TRANSLATORS: Preceded by "When updating from sources" msgid "fuzzy match within the file" msgstr "taččart ittemcabin deg ufaylu" #. TRANSLATORS: Preceded by "When updating from sources" msgid "pre-translate from TM" msgstr "tasuqilt tuzwirt si TM" msgid "" "Poedit can attempt to fill in new entries from only previous translations in " "the file or from your entire translation memory. Using the TM won’t be very " "effective if it’s near-empty, but it will get better as you add more " "translations to it." msgstr "" "Poedit yezmer ad yeɛreḍ ad yačar inekcumen imaynuten, ḥaca si tsuqilin n " "ufaylu-agi neɣ si tkatut n tsuqilt. Iwakken takatut-inek n tsuqilt ad " "tgerrez ilaq ad s-ternuḍ aṭas n inekcumen." msgid "Stored translations:" msgstr "Tisuqqilin yettwaḥerzen :" msgid "Database size on disk:" msgstr "Tiddi n uzadur n isefka ɣef uḍebsi :" msgid "Select translation files to import" msgstr "Fren ifuyla n tsuqqilt ara tketreḍ" msgid "Translation Memory" msgstr "Takatut n tsuqqilt" msgid "Importing translations…" msgstr "Akter n tsuqqilin…" msgid "Finalizing…" msgstr "Akemmel…" msgid "Reset translation memory" msgstr "Ales awennez n tkatut n tsuqqilt" msgid "Are you sure you want to reset the translation memory?" msgstr "D tidett tebɣiḍ ad talseḍ awennez n tkatut n tsuqqilit ?" msgid "" "Resetting the translation memory will irrevocably delete all stored " "translations from it. You can’t undo this operation." msgstr "" "Alus n uwennez n tkatut n tsuqqilt ad yesfeḍ i lebda tisuqqilin i " "yettwaḥerzen degs. Tamhelt-agi ur tesɛi ara tuɣalin ɣer deffir ." msgid "Cancel" msgstr "Sefsex" #. TRANSLATORS: This is abbreviation of "Translation Memory" used in Preferences on macOS. #. Long text looks weird there, too short (like TM) too, but less so. "General" is about ideal #. length there. msgid "TM" msgstr "MT" msgid "" "Source code extractors are used to find translatable strings in the source " "code files and extract them so that they can be translated." msgstr "" "Imassafen n tengalt taɣbalut seqdacen-ten i wenadi di tengalt taɣbalut ɣef " "izraren n tsuqqilt iwakken ad ttwassfen yerna ad ttwasuqqlen." msgid "Custom Extractors:" msgstr "Imassafen yugnen:" msgid "Custom extractors:" msgstr "Imassafen yugnen:" msgid "Edit…" msgstr "Ẓreg…" msgid "GNU gettext" msgstr "GNU gettext" msgid "" "Supports all programming languages recognized by GNU gettext tools (PHP, C/C+" "+, C#, Perl, Python, Java, JavaScript and others)." msgstr "" "Iteddu s tmeslayin merra n usihel n ifecka GNU gettext (PHP, C/C++, C#, " "Perl, Python, Java, JavaScript d wiyaḍ)." msgid "Delete extractor" msgstr "Kkes amassaf" #, c-format msgid "Are you sure you want to delete the “%s” extractor?" msgstr "S tidett tebɣiḍ ad tekkseḍ amassaf “%s” ?" msgid "Extractors" msgstr "Imassafen" msgid "Accounts" msgstr "Imiḍanen" msgid "Automatically check for updates" msgstr "Anadi awurman n umucceḍ" msgid "Include beta versions" msgstr "Seddu ileqman bêta" msgid "" "Beta versions contain the latest new features and improvements, but may be a " "bit less stable." msgstr "" "Ileqman bta gebren amaynut d usnerni aneggaru, acu kan zemren ar rkiden ara." msgid "Updates" msgstr "Amucceḍ" msgid "" "These settings affect internal formatting of PO files. Adjust them if you " "have specific requirements e.g. because of version control." msgstr "" "Iɣewaren-agi ad beddelen amsal adigan n ifuyla PO. Beddil-iten ma yella " "tella sebbat tulmisin amedya asenqed n lqem." msgid "Line endings:" msgstr "Tagarra n ujerriḍ :" msgid "Unix (recommended)" msgstr "Unix (asemter)" msgid "Windows" msgstr "Windows" #. TRANSLATORS: Followed by text control for entering number; wraps text at given width msgid "Wrap at:" msgstr "Tuɣalin s ajerriḍ di :" msgid "Preserve formatting of existing files" msgstr "Ḥrez amsal n ifuyla i yellan" msgid "Advanced" msgstr "Anaẓi" msgid "Pre-translating…" msgstr "Tazar-suqilt…" #, c-format msgid "Pre-translated %u string" msgid_plural "Pre-translated %u strings" msgstr[0] "%u n uzrar yettwasuqqel" msgstr[1] "%u n izraren ttwasuqqlen" #. TRANSLATORS: This is a somewhat common term describing the action where #. you apply the translation memory and/or machine translation to all of the #. strings you're translating as the first step, followed by correcting, #. improving etc., i.e. actually translating the strings. This may be tricky #. to express in other languages as simply as in English, but please try to #. keep it similarly concise. Please try to avoid, if possible, describing it #. as "auto-translation" and similar, because such terminology would mislead #. some users into thinking it's all that needs to be done (spoken from #. experience). "Pre-translate" nicely expresses that it's only the step done #. *before* actual translation. msgid "Pre-translate" msgstr "Tasuqilt tuzwirt" msgid "Only fill in exact matches" msgstr "Aččar ḥaca tinmeɣrayin tiseddiyin" msgid "" "By default, inaccurate results are filled in as well and marked as needing " "work. Check this option to only include accurate matches." msgstr "" "S lexṣas, igmaḍ urmeɣtuyen ddan u ttwacerḍen d imewẓiyen u ḥwaǧen tasnilest. " "Fren taxṭirt-agi ma yella tebɣiḍ ad tsedduḍ ḥaca tinmeɣrayin tiseddiyin." msgid "Don’t mark exact matches as needing work" msgstr "Ur cerreḍ ara tisuqqilin tiseddiyin d timewẓiyin" msgid "" "Only enable if you trust the quality of your TM. By default, all matches " "from the TM are marked as needing work and should be reviewed before use." msgstr "" "Sermed kan ma yella tetḥeqqeḍ belli Takatut n Tsuqilt inek tgerrez. S lexṣas " "akk inmeɣriyen n Tkatut n Tsuqilt ad ttwacerḍen uḥwaǧen amahil yerna ilaq ad " "ttwasqerdcen send aseqdec-nnsen." msgid "" "Pre-translation automatically finds exact or fuzzy matches for untranslated " "strings in the translation memory and fills in their translations." msgstr "" "Tasuqilt tuzwirt tawurmant tettaf di tkatut n isuqilt inmeɣriyen iseddiyen " "neɣ imewẓiyen i inekcumen ilmawen akken ad ten-taččar yis-n." #, c-format msgid "%d entry was pre-translated." msgid_plural "%d entries were pre-translated." msgstr[0] "%d n unekcum ičur." msgstr[1] "%d n inekcumen čuren." msgid "" "The translations were marked as needing work, because they may be " "inaccurate. You should review them for correctness." msgstr "" "Tisuqilin ttwacerḍent uḥwaǧent amahil, acku zemrent ad ilint d timewẓiyin. " "Ilaq ad tent-talseḍ tamuɣli." msgid "No entries could be pre-translated." msgstr "Ulac inekcumen i yzemren ad ačarent." msgid "" "The TM doesn’t contain any strings similar to the content of this file. It " "is only effective for semi-automatic translations after Poedit learns enough " "from files that you translated manually." msgstr "" "Takatut n tsuqqilt MT ur tesɛi ara izraren yugdan ɣer ugbur n ufaylu-agi. " "Ayagi yettili-d i tsuqqilin tizgen-aymaniyin mi ara yelmed Poedit seg " "yifuyla yettwasuqqlen s ufus." msgid "" "Drag and Drop Folders Here\n" "\n" "or use the + button" msgstr "" "Zuɣer-sers ikaramen dagi\n" "\n" "neɣ seqdec tanast +" msgid "" "Drag and drop folders here\n" "\n" "or use the + button" msgstr "" "Zuɣer-sers ikaramen dagi\n" "\n" "neɣ seqdec tanast +" msgid "Add Folders…" msgstr "Rnu ikaramen…" msgid "Add folders…" msgstr "Rnu ikaramen…" msgid "Add Files…" msgstr "Rnu ifuyla…" msgid "Add files…" msgstr "Rnu ifuyla…" msgid "Add Wildcard…" msgstr "Rnu isekkilen n usemselsi…" msgid "Add wildcard…" msgstr "Rnu isekkilen n usemselsi…" msgid "Paths" msgstr "Iberdan" msgid "Excluded paths" msgstr "Iberdan ur nettki ara" msgid "Advanced extraction settings" msgstr "Iɣewwaṛen n tukkist leqqayen" msgid "Extract notes for translators from:" msgstr "Suffeɣ tizmilin i tsuqilin si:" msgid "Comments prefixed with:" msgstr "Iwenniten ibeddun s uzwir:" msgid "All comments" msgstr "Akk iwenniten" msgid "Additional xgettext flags:" msgstr "Anayen sgettxt-nniḍen:" msgid "Additional keywords" msgstr "Awalen yufraren imernanen" msgid "Name of the project the translation is for" msgstr "Isem n usenfar n tsuqqilt" msgid "Team name and email address or URL" msgstr "Isem n terbaɛt akked tansa email neɣ URL" msgid "e.g. nplurals=2; plural=(n > 1);" msgstr "amedya. nplurals=2; plural=(n > 1);" msgid "UTF-8 (recommended)" msgstr "UTF-8 (recommandé)" msgid "Please save the file first. This section cannot be edited until then." msgstr "Sekles qbel afaylu. Ur tezmireḍ ara ad tẓergeḍ tanegzumt-agi uqbel." msgid "Not all plural forms are translated." msgstr "Tilɣa n usget ur ttwasuqlent ara merra." msgid "The translation should start as a sentence." msgstr "Tasuqilt ilaq ad tebdu am tefyirt." msgid "The translation should start with a lowercase character." msgstr "Tasuqilt ilaq ad tebdu s usekkil amecṭuḥ." msgid "The translation doesn’t start with a space." msgstr "Tasuqilt ur tebdi ara s tallunt." msgid "The translation starts with a space, but the source text doesn’t." msgstr "Tasuqilt tabda s tallunt, ma d aḍris aɣbalu xaṭi." msgid "The translation is missing a newline at the end." msgstr "Ixuṣ wengaz n ujerriḍ di tagarra n tsuqqilt." msgid "The translation ends with a newline, but the source text doesn’t." msgstr "Tasuqilt tabda s wengaz n ujerriḍ, ma d aḍris aɣbalu xaṭi." msgid "The translation is missing a space at the end." msgstr "Txuṣ tallunt di tagarra n tsuqqilt." msgid "The translation ends with a space, but the source text doesn’t." msgstr "Tasuqilt tfukk s tallunt, ma d aḍris aɣbalu xaṭi." #, c-format msgid "The translation should end with “%s”." msgstr "Tasuqilt ilaq ad tfakk s “%s”." #, c-format msgid "The translation should not end with “%s”." msgstr "Tasuqilt ur ilaq ara ad tfak s “%s”." #, c-format msgid "The translation ends with “%s”, but the source text ends with “%s”." msgstr "Tasuqilt tfukk s “%s”, maca aḍris aɣbalu ifukk s “%s”." msgid "Comment:" msgstr "Awennit:" msgid "OK" msgstr "Ih" msgid "C&lear" msgstr "Sf&eḍ" msgid "Clear the comment" msgstr "Sfeḍ awennit" msgid "New" msgstr "Amaynut" msgid "Create new translations project" msgstr "Snulfu-d asenfar amaynut n tsuqqilin" msgid "Edit" msgstr "Ẓreg" msgid "Edit the project" msgstr "Ẓreg asenfar" msgid "Delete the project" msgstr "Kkes asenfar" msgid "Update all" msgstr "Leqqem Akk" msgid "Update all catalogs in the project" msgstr "Leqqem ikaramen merra n usenfar" msgid "Edit project" msgstr "Ẓreg asenfar" msgid "Project name:" msgstr "Isem n usenfar :" msgid "Browse" msgstr "Ḍum" msgid "Add directory to the list" msgstr "Rnu akaram ɣer tebdart" msgid "&New…" msgstr "Amaynut…" msgid "New from &POT/PO file…" msgstr "Amaynut seg ufaylu &POT/PO…" msgid "New From &POT/PO File…" msgstr "Amaynut seg ufaylu &POT/PO…" msgid "&Open…" msgstr "&Ldi…" msgid "Open Recent" msgstr "Récemment ouverts" msgid "Open from Crowdin…" msgstr "Ldi seg Crowdin…" msgid "Open From Crowdin…" msgstr "Ldi seg Crowdin…" msgid "&Close" msgstr "&Mdel" msgid "&Save" msgstr "&Sekles" msgid "Save &as…" msgstr "Sekles s y&isem…" msgid "Save &As…" msgstr "Sekles s y&isem…" msgid "Compile to MO…" msgstr "Sefsu ɣer MO…" msgid "E&xport as HTML…" msgstr "Sifeḍ s &talɣa HTML…" msgid "Check for updates…" msgstr "Nadi imucceḍen…" msgid "&Preferences…" msgstr "Imenyafen…" msgid "Catalogs &manager" msgstr "Asefrak n ikaramen" msgid "Catalogs &Manager" msgstr "Asefrak n ikaramen" msgid "E&xit" msgstr "Ff&eɣ" msgid "Quit" msgstr "Ffeɣ" msgid "Copy from singular" msgstr "Nɣel seg wasuf" msgid "Copy From Singular" msgstr "Nɣel seg wasuf" msgid "Translation needs &work" msgstr "Tasuqilt tuḥwaǧ asniles" msgid "Translation Needs &Work" msgstr "Tasuqilt tuḥwaǧ asniles" msgid "Edit &comment" msgstr "Ẓreg awennit" msgid "Edit &Comment" msgstr "&Ẓreg awennit" msgid "Suggestions" msgstr "Isumar" msgid "&Find…" msgstr "Nadi…" msgid "Replace…" msgstr "Semselsi…" msgid "Find next" msgstr "Nadi uḍfirt" msgid "Find previous" msgstr "Nadi uzwir" msgid "Find and Replace…" msgstr "Nadi semselsi…" msgid "Find Next" msgstr "Nadi uḍfir" msgid "Find Previous" msgstr "Nadi uzwir" msgid "&Preferences" msgstr "&Ismenyifen" msgid "Display entry &IDs" msgstr "Sken ID n inekcumen" msgid "Display Entry &IDs" msgstr "Sken ID n inekcumen" msgid "Sort by &file order" msgstr "Fren s umizzwer n ufaylu" msgid "Sort by &File Order" msgstr "Fren s umizzwer n ufaylu" msgid "Sort by &source" msgstr "Smizzwer s uɣbalu" msgid "Sort by &Source" msgstr "Smizzwer s uɣbalu" msgid "Sort by &translation" msgstr "Smi&zzwer s tsuqilt" msgid "Sort by &Translation" msgstr "Smi&zzwer s tsuqilt" msgid "&Group by context" msgstr "Se&grew s twennaḍt" msgid "&Group By Context" msgstr "Se&grew s twennaḍt" msgid "Entries with errors first" msgstr "Zwir inekcumen yesɛan tuccḍiwin" msgid "Entries with Errors First" msgstr "Zwir inekcumen yesɛan tuccḍiwin" msgid "&Untranslated entries first" msgstr "Zwir inekcumen ur nettwasuqqel ara" msgid "&Untranslated Entries First" msgstr "Zwir inekcumen ur nettwasuqqel ara" msgid "&Show references" msgstr "Ẓer tiwelhiwin" msgid "&Show References" msgstr "Ẓer tiwelhiwin" msgid "Show sidebar" msgstr "Sken agalis n yidis" msgid "Show status bar" msgstr "Sken tafeggagt n waddad" msgid "C&atalog" msgstr "Akaram" msgid "&Update from sources" msgstr "Leqqem seg yiɣbula" msgid "&Update from Sources" msgstr "Leqqem seg yiɣbula" msgid "Update from &POT file…" msgstr "Leqqem seg ufaylu POT…" msgid "Update from &POT File…" msgstr "Leqqem seg ufaylu POT…" msgid "Sync with Crowdin" msgstr "Amtawi akked Crowdin" msgid "Pre-&translate…" msgstr "Tazar-suqilt…" msgid "&Purge deleted translations" msgstr "Sfeḍ tisuqqilin yettwakksen" msgid "&Purge Deleted Translations" msgstr "Sfeḍ tisuqqilin yettwakksen" msgid "&Validate translations" msgstr "Sentem tisuqqilin" msgid "&Validate Translations" msgstr "Sentem tisuqqilin" msgid "&Properties…" msgstr "Iraten…" msgid "&Done and next" msgstr "Snes u kemmel" msgid "&Done and Next" msgstr "Snes u kemmel" msgid "&Previous translation" msgstr "Tasu&qilt yezrin" msgid "&Previous Translation" msgstr "Tasu&qilt yezrin" msgid "&Next translation" msgstr "Tasuqilt tuḍfirt" msgid "&Next Translation" msgstr "Tasuqilt tuḍfirt" msgid "P&revious unfinished" msgstr "Uzwir ur nemmid" msgid "P&revious Unfinished" msgstr "Uzwir ur nemmid" msgid "Ne&xt unfinished" msgstr "Uḍfir ur nemmidt" msgid "Ne&xt Unfinished" msgstr "Uḍfir ur nemmidt" msgid "Previous plural form" msgstr "Talgha n usget tuzwirt" msgid "Previous Plural Form" msgstr "Talgha n usget tuzwirt" msgid "Next plural form" msgstr "Talgha n usget tudfirt" msgid "Next Plural Form" msgstr "Talgha n usget tudfirt" msgid "&Online help" msgstr "Tallelt ɣef uẓṭṭa" msgid "&Online Help" msgstr "Tallelt ɣef uẓṭṭa" msgid "&GNU gettext manual" msgstr "Adlisfus n &GNU gettext" msgid "&GNU gettext Manual" msgstr "Adlisfus n &GNU gettext" msgid "&About Poedit" msgstr "Ɣef Poedit" msgid "&About" msgstr "Ɣef" msgid "Extractor setup" msgstr "Asebddi n umassaf" msgid "List of extensions separated by semicolons (e.g. *.cpp;*.h):" msgstr "Tabdart n imassafen berzen s tenqiḍt-ticcert (amedya. *.cpp;*.h) :" msgid "Invocation:" msgstr "Tiɣri:" msgid "Command to extract translations:" msgstr "Anzaḍ i tussfa n tsuqqilin :" msgid "" "This is the command used to launch the extractor.\n" "%o expands to the name of output file, %K to list\n" "of keywords, %F to list of input files,\n" "%C to charset flag (see below)." msgstr "" "Attaya tnezḍayt i yesekkaren amassaf.\n" "%o : smeɣred ɣer yisem n ufaylu n tuffɣa,\n" "%K : beqqeḍ awalen yufraren,\n" "%F : beqqeḍ ifuyla n unekcum,\n" "%C : tagrumma n isekkilen (ẓer uksar-agi)." msgid "An item in keywords list:" msgstr "Aferdis si tebdart n yismawen yufraren :" msgid "" "This will be attached to the command line once\n" "for each keyword. %k expands to the keyword." msgstr "" "Inséré dans la ligne de commande pour chaque\n" "mot clé. %k : le mot clé." msgid "An item in input files list:" msgstr "Aferdis si tebdart n yifuyla n unekcum :" #, c-format msgid "" "This will be attached to the command line once\n" "for each input file. %f expands to the filename." msgstr "" "Yettwager deg izirig n tladna i yal \n" "afaylu n unekcum. %f: isem n ufaylu." msgid "Source code charset:" msgstr "Tagrumma n isekkilen n tengalt taɣbalut :" #, c-format msgid "" "This will be attached to the command line\n" "only if source code charset was given. %c expands to charset value." msgstr "" "Inséré dans la ligne de commande lorsque le code de jeu de\n" "caractères de la source est fourni. %c : valeur du jeu de caractères." msgid "Catalog properties" msgstr "Iraten n ukaram" msgid "Project name and version:" msgstr "Isem akked lqem n usenfar :" msgid "Language team:" msgstr "Tarbaɛt n tutlayt:" msgid "Plural forms:" msgstr "Talɣiwin n wesget:" msgid "Use default rules for this language" msgstr "Seqdec alugen n lexṣas n tutlayt-agi" msgid "Use custom expression" msgstr "Seqdec tanfalit yugnen" msgid "Learn about plural forms" msgstr "Ẓer ugar ɣef talɣiwin n wesget" msgid "Charset:" msgstr "Tagrumma n isekkilen :" msgid "Advanced Extraction Settings…" msgstr "Iɣewwaṛen inaẓiyen n tukkist…" msgid "Advanced extraction settings…" msgstr "Iɣewwaṛen inaẓiyen n tukkist…" msgid "Translation Properties" msgstr "Iraten n tsuqqilt" msgid "Translation properties" msgstr "Iraten n tsuqqilt" msgid "Sources Paths" msgstr "Iberdan n iɣbula" msgid "Sources paths" msgstr "Iberdan n iɣbula" msgid "Extract text from source files in the following directories:" msgstr "Ssef aḍris seg yifuyla iɣbula deg yikaramen-agi :" msgid "Base path:" msgstr "Abrid agejdan :" msgid "Sources Keywords" msgstr "Awalen yufraren n iɣbula" msgid "Sources keywords" msgstr "Awalen yufraren n yiɣbula" msgid "" "Use these keywords (function names) to recognize translatable strings\n" "in source files:" msgstr "" "Seqdec awalen-agi yufraren (ismawen n twura) iwaken ad tɛeqleḍ izraren n " "usuqqel\n" "deg yifuyla iɣbula :" msgid "Also use default keywords for supported languages" msgstr "Seqdec daɣen awalen n tsarutt imezwar tutlayin yettwasefraken" msgid "Learn About Gettext Keywords" msgstr "Ẓer ugar ɣef awalen yufraren n Gettext" msgid "Learn about gettext keywords" msgstr "Ẓer ugar ɣef wawalen yufraren n gettext" msgid "Update summary" msgstr "Agzul n umucceḍ" msgid "" "These strings were found in the sources but were not in the catalog.\n" "Poedit will add them to the catalog now." msgstr "" "Izraen-agi nufa-ten-id deg yiɣbula maca ulac-iten deg ukaram.\n" "Poedit ad ten-yernu ɣer ukaram tura." msgid "New strings" msgstr "Izraren imaynuten" msgid "" "These strings are no longer in the sources.\n" "Poedit will remove them from the catalog now." msgstr "" "Izraren-agi ulac-iten tura deg yiɣbula.\n" "Poedit ad ten-yekkes seg ukaram." msgid "Obsolete strings" msgstr "Izriren yezrin" msgid "(0 new, 0 obsolete)" msgstr "(0 amaunyt, 0 yezri)" msgid "Open" msgstr "Ldi" msgid "Save catalog" msgstr "Sekles akaram" msgid "Validate" msgstr "Sentem" msgid "Check for errors in the translation" msgstr "Selken tuccḍiwin di tsuqqilin" msgid "Update" msgstr "Leqqem" msgid "Update catalog - synchronize it with sources" msgstr "Leqqem akaram - Mtawi akked yiɣbula" msgid "Sidebar" msgstr "Agalis n yidis" msgid "Show or hide the sidebar" msgstr "Sken neɣ ffer agalis n yidis" #. TRANSLATORS: "Previous" as in used in the past, now replaced with newer. msgid "Previous source text:" msgstr "Aḍris aɣbalu uzwir :" msgid "" "The old source text (before it changed during an update) that the now-" "inaccurate translation corresponds to." msgstr "" "Aɣbalu n uḍris aqbuṛ (send asnifel n lqem) anida tmeɣra tsuqilt ittemcabin." msgid "Notes for translators:" msgstr "Tamawt i yemsuqqlen :" msgid "Add comment" msgstr "Rnu awennit" msgid "Add Comment" msgstr "Rnu awennit" msgid "Translation suggestions:" msgstr "Isumar n tsuqqilt :" #. TRANSLATORS: This is shown when no translation suggestions can be found in the TM (Windows). msgid "No matches found" msgstr "Ur d-nufi ara inmeɣrayen" #. TRANSLATORS: This is shown when no translation suggestions can be found in the TM (macOS, Linux). msgid "No Matches Found" msgstr "Ur d-nufi ara inmeɣrayen" msgid "This string was found in Poedit’s translation memory." msgstr "Azrar-agi nufat-id di tkatut n tsuqqilt n Poedit." msgid "Cannot create temporary directory." msgstr "D awezɣi asnulfu n ukaram akudan." msgid "Welcome to Poedit" msgstr "Ansuf ɣer Poedit" #. TRANSLATORS: This is version information in about dialog, "%s" will be #. version number when used #, c-format msgid "Version %s" msgstr "Lqem %s" msgid "Edit a Translation" msgstr "Ẓreg tasuqilt" msgid "Edit a translation" msgstr "Ẓreg tasuqqilt" msgid "Open an existing PO file and edit the translation." msgstr "Ldi afaylu PO i yellan u ẓreg tasuqqilt." msgid "" "Take an existing PO file or POT template and create a new translation from " "it." msgstr "Ṭṭef afaylu PO neɣ tamudimt POT tesuffɣeḍ-d segs tasuqqilt tamaynut." msgid "Collaborate on a Translation with Others" msgstr "Ttekki di tsuqqilt akked wiyiḍ" msgid "Collaborate on a translation with others" msgstr "Ttekki di tsuqqilt akked wiyaḍ" msgid "" "Download a file from Crowdin project, translate and sync your changes back." msgstr "Zdem afaylu seg usenfar n Crowdin, suqqel u mtawi ibeddilen-ik." msgid "What is Crowdin?" msgstr "Acu-t Crowdin ?" msgid "There are no translations. That’s unusual." msgstr "Ulac tisuqqilin. Ayagi iffeɣ i lɛada." msgid "" "Translatable entries aren’t added manually in the Gettext system, but are " "automatically extracted\n" "from source code. This way, they stay up to date and accurate.\n" "Translators typically use PO template files (POTs) prepared for them by the " "developer." msgstr "" "Inekcam izzemren ad ttwasuqlen ur ttwarnan ara s ufus ar unagraw Gettext, " "acu kanttwakksen-d s wudem awurman\n" "seg tangagal aɣbalu. Akka, ad qqimen ttwaleqqmen, d iseddiyen.\n" "Imsuqal seqdacen ifuyla s tneɣruft PO (POTs) iheggan ineflayen." msgid "(Learn more about GNU gettext)" msgstr "(Ẓer ugar ɣef GNU gettext)" msgid "The simplest way to fill this catalog is to update it from a POT:" msgstr "Ma tebɣiḍ ad tačareḍ akaram-agi s shala mucceḍ-it seg ufaylu POT :" msgid "Update from POT" msgstr "Leqqem seg POT" msgid "Take translatable strings from an existing POT template." msgstr "Awi-d izraren n usuqqel n tmudimt POT i yellan yakan." msgid "" "You can also extract translatable strings directly from the source code:" msgstr "Tzemreḍ daɣen ad tessfeḍ izraren n usuqqel srid seg tengalt taɣbalut :" msgid "Extract from sources" msgstr "Ssef seg seg yiɣbula" msgid "Configure source code extraction in Properties." msgstr "Seɣwer tussfa n tengalt taɣbalut deg iraten." msgid "Sync" msgstr "Mtawi" msgid "Synchronize the translation with Crowdin" msgstr "Mtawi tisuqqilin akked Crowdin" #. TRANSLATORS: This is titlebar of about dialog, "%s" is application name #. ("Poedit" here, but please use "%s") #, c-format msgid "About %s" msgstr "Γef %s" #. TRANSLATORS: Title of the preferences window on Windows and Linux. "%s" is replaced with "Poedit" when running. #, c-format msgid "%s Preferences" msgstr "Ismenyifen n %s" #. TRANSLATORS: macOS item in app menu msgid "Services" msgstr "Imeẓluyen" #. TRANSLATORS: macOS item in app menu, %s is replaced with "Poedit" #, c-format msgid "Hide %s" msgstr "Ffer %s" #. TRANSLATORS: macOS item in app menu msgid "Hide Others" msgstr "Ffer ayen iqqimen" #. TRANSLATORS: macOS item in app menu msgid "Show All" msgstr "Sken akk" #. TRANSLATORS: macOS item in app menu, %s is replaced with "Poedit" #, c-format msgid "Quit %s" msgstr "Ffeɣ si %s" #. TRANSLATORS: macOS item in app menu msgid "Preferences…" msgstr "Imenyafen…" msgid "Preferences..." msgstr "Imenyafen..." #. TRANSLATORS: Title of a category in Windows task menu (right-click icon in taskbar) msgid "Recent" msgstr "Melmi kan" #. TRANSLATORS: Title of a category in Windows task menu (right-click icon in taskbar) msgid "Frequent" msgstr "Yettuɣal-d" msgid "&Apply" msgstr "Snes" msgid "Apply" msgstr "Snes" msgid "&Back" msgstr "Tuɣalin" msgid "Back" msgstr "Tuɣalin" msgid "&Cancel" msgstr "&Sefsex" msgid "&Clear" msgstr "&Sfeḍ" msgid "Clear" msgstr "Sfeḍ" msgid "Copy" msgstr "Nɣel" msgid "Cu&t" msgstr "G&zem" msgid "Cut" msgstr "Gzem" msgid "&Delete" msgstr "&Kkes" msgid "&Quit" msgstr "Ffeɣ" msgid "File" msgstr "Afaylu" msgid "Help" msgstr "Tallelt" msgid "&New" msgstr "&Amaynut" msgid "&No" msgstr "&Ala" msgid "No" msgstr "Ala" msgid "&OK" msgstr "&IH" msgid "Open…" msgstr "Ldi…" msgid "&Open..." msgstr "&di..." msgid "Open..." msgstr "Ldi..." msgid "&Paste" msgstr "Sen&teḍ" msgid "Paste" msgstr "Senteḍ" msgid "Preferences" msgstr "Ismenyifen" msgid "&Redo" msgstr "Err-&d" msgid "Refresh" msgstr "Sismeḍ" msgid "&Save as" msgstr "&Sekles am" msgid "Save as" msgstr "Sekles am" msgid "Select &All" msgstr "&Fren akk" msgid "Select All" msgstr "Fren akk" msgid "&Undo" msgstr "Se&fsex" msgid "&Yes" msgstr "&Ih" msgid "Yes" msgstr "Ih" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Shift+" msgstr "Maj+" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Enter" msgstr "Kcem" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Up" msgstr "Asawen" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Down" msgstr "Akesser" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Left" msgstr "Zelmaḍ" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Right" msgstr "Yefus" #. TRANSLATORS: Keyboard shortcut, must correspond to translation of "Ctrl+" msgid "ctrl" msgstr "ctrl" #. TRANSLATORS: Keyboard shortcut, must correspond to translation of "Alt+" msgid "alt" msgstr "alt" #. TRANSLATORS: Keyboard shortcut, must correspond to translation of "Shift+" msgid "shift" msgstr "maj" poedit-2.0.6/locales/lt.po0000664000372000037200000014066713230132077012341 00000000000000msgid "" msgstr "" "Project-Id-Version: poedit\n" "Report-Msgid-Bugs-To: help@poedit.net\n" "POT-Creation-Date: 2017-12-05 15:52+0100\n" "PO-Revision-Date: 2018-01-18 07:56-0500\n" "Last-Translator: vslavik \n" "Language-Team: Lithuanian\n" "Language: lt_LT\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n" "%100<10 || n%100>=20) ? 1 : 2);\n" "X-Generator: crowdin.com\n" "X-Crowdin-Project: poedit\n" "X-Crowdin-Language: lt\n" "X-Crowdin-File: /locales/poedit.pot\n" msgid "Hide this notification message" msgstr "Slėpti šį perspėjimą" msgid "Don’t Show Again" msgstr "Daugiau Neberodyti" msgid "Don’t show again" msgstr "Daugiau neberodyti" #, c-format msgid "(New: %i, obsolete: %i)" msgstr "(Naujas: %i, senasis: %i)" msgid "Updating catalog" msgstr "Atnaujinamas katalogas" msgid "Collecting source files…" msgstr "Renkami failai…" msgid "Extracting translatable strings…" msgstr "Išskleidžiami vertimo kintamieji…" msgid "Failed to load extracted catalog." msgstr "Nepavyko įkelti ištrauktų katalogų" msgid "Merging differences…" msgstr "Suliejami skirtumai…" #, c-format msgid "“%s” is not a valid POT file." msgstr "„%s“ nėra tinkamas POT failas." #, c-format msgid "%i line of file “%s” was not loaded correctly." msgid_plural "%i lines of file “%s” were not loaded correctly." msgstr[0] "Nepavyko perskaityti %i eilutės iš failo „%s“." msgstr[1] "Nepavyko perskaityti %i eilučių iš failo „%s“." msgstr[2] "Nepavyko perskaityti %i eilučių iš failo „%s“." #, c-format msgid "Line %d of file “%s” is corrupted (not valid %s data)." msgstr "Eilutė %d iš failo „%s“ sugadinta (netinkami %s duomenys)." #, c-format msgid "Malformed header: “%s”" msgstr "Netinkama antraštė: „%s“" msgid "" "Broken catalog file: singular form msgstr used together with msgid_plural" msgstr "" "Sugadintas katalogo failas: vienaskaitos forma msgstr turi msgid_plural" msgid "Broken catalog file: plural form msgstr used without msgid_plural" msgstr "" "Sugadintas katalogo failas: daugiskaitos forma msgstr neturi msgid_plural" msgid "" "There were errors when loading the catalog. Some data may be missing or " "corrupted as the result." msgstr "" "Skaitant katalogą įvyko klaidų. Kai kurių įrašų gali trūkti arba jie gali " "būti sugadinti." #, c-format msgid "Couldn’t load file %s, it is probably corrupted." msgstr "Nepavyko įkrauti failo %s, jis greičiausiai sugadintas." #, c-format msgid "" "File “%s” is read-only and cannot be saved.\n" "Please save it under different name." msgstr "" "Failas „%s“ skirtas tik skaitymui ir negali būti išsaugotas.\n" "Išsaugokite duomenis kitu vardu." #, c-format msgid "Couldn’t save file %s." msgstr "Nepavyko įrašyti failo %s." msgid "" "There was a problem formatting the file nicely (but it was saved all right)." msgstr "Kilo bėdų gražiai formatuojant failą (bet jis buvo išsaugotas)." #, c-format msgid "" "The catalog couldn’t be saved in “%s” charset as specified in catalog " "settings.\n" "\n" "It was saved in UTF-8 instead and the setting was modified accordingly." msgstr "" "Išsaugoti katalogo „%s“ su pasirinkta koduote nepavyko.\n" "\n" "Jis buvo išsaugotas UTF-8 koduote ir nustatymas atitinkamai pakeistas." msgid "Error saving catalog" msgstr "Klaida išsaugant katalogą" msgid "PO Translation Files" msgstr "PO vertimų failai" msgid "POT Translation Templates" msgstr "POT vertimų šablonai" msgid "All Translation Files" msgstr "Visi vertimų failai" msgid "(Use default language)" msgstr "(Naudoti numatytąją kalbą)" msgid "Select your preferred language" msgstr "Pasirinkite pagrindinę kalbą" msgid "Language selection" msgstr "Kalbos pasirinkimas" msgid "You must restart Poedit for this change to take effect." msgstr "Šis pakeitimas įsigalios paleidus \"Poedit\" iš naujo." msgid "Syncing" msgstr "Sinchronizuojama" #. TRANSLATORS: %s is a cloud destination, e.g. "Crowdin" or ftp.wordpress.com etc. #, c-format msgid "Syncing with %s…" msgstr "Sinchronizuojama su %s…" #. TRANSLATORS: %s is a cloud destination, e.g. "Crowdin" or ftp.wordpress.com etc. #, c-format msgid "Syncing with %s failed." msgstr "Sinchronizavimas su %s nepavyko." msgid "Syncing error" msgstr "Susinchronizuoti nepavyko" msgid "Downloading translations is disabled in this project." msgstr "Vertimų atsiuntimas šiame projekte yra išjungtas." msgid "Not authorized, please sign in again." msgstr "Nesankcionuota, prašome prisijungti dar kartą." msgid "" "Crowdin is an online localization management platform and collaborative " "translation tool. Poedit can seamlessly sync PO files managed at Crowdin." msgstr "" "Crowdin yra internetinė lokalizavimo valdymo platforma ir vertimų " "bendradarbiavimo priemonė. Poedit gali sklandžiai sinchronizuoti PO failus " "esančius Crowdin sistemoje." msgid "Sign In" msgstr "Prisijungti" msgid "Sign in" msgstr "Prisijungti" msgid "Sign Out" msgstr "Atsijungti" msgid "Sign out" msgstr "Atsijungti" msgid "Waiting for authentication…" msgstr "Laukiama tapatybės nustatymo…" msgid "Updating user information…" msgstr "Atnaujinama naudotojo informacija…" msgid "Signed in as:" msgstr "Prisijungęs kaip:" msgid "Learn More About Crowdin" msgstr "Sužinokite daugiau apie \"Crowdin\"" msgid "Learn more about Crowdin" msgstr "Sužinokite daugiau apie \"Crowdin\"" msgid "Sign in to Crowdin" msgstr "Prisijungti prie Crowdin" msgid "Open Crowdin translation" msgstr "Atidaryti Crowdin vertimą" msgid "Project:" msgstr "Projektas:" msgid "Language:" msgstr "Kalba:" msgid "File:" msgstr "Failas:" msgid "No translation projects listed in your Crowdin account." msgstr "Jūsų Crowdin paskyroje nėra vertimo projektų." msgid "This project has no files that can be translated in Poedit." msgstr "Projektas neturi jokių failų, kurie gali būti išversti su Poedit." msgid "This file can only be edited in Crowdin’s web interface." msgstr "Šį failą galima redaguoti tik per Crowdin tinklalapį." msgid "Downloading latest translations…" msgstr "Atsiunčiami naujausi vertimai…" msgid "Syncing with Crowdin failed." msgstr "Sinchronizacija su Crowdin nepavyko." msgid "Crowdin error" msgstr "Crowdin klaida" msgid "Uploading translations…" msgstr "Įkeliami vertimai..." msgid "&Copy" msgstr "&Kopijuoti" msgid "Learn more" msgstr "Sužinoti daugiau" msgid "Learn More" msgstr "Sužinoti daugiau" msgid "&Help" msgstr "&Žinynas" msgid "MO files can’t be directly edited in Poedit." msgstr "MO failai negali būti tiesiogiai redaguojami programoje Poedit." msgid "Error opening file" msgstr "Klaida atidarant failą" msgid "" "Please open and edit the corresponding PO file instead. When you save it, " "the MO file will be updated as well." msgstr "" "Prašome atidaryti ir redaguoti atitinkamą PO failą. Jei jį įrašysite, MO " "failas taip pat atnaujinamas." msgid "don’t delete temporary files (for debugging)" msgstr "netrinti laikinų failų (derinimui)" msgid "handle a poedit:// URI" msgstr "vykdyti poedit:// URI" msgid "go to item at given line number" msgstr "pereiti prie eilutės numeriu" msgid "Failed to communicate with Poedit process." msgstr "Nepavyko susisiekti su Poedit." #, c-format msgid "Unhandled exception occurred: %s" msgstr "Įvyko išimtinė klaida: %s" msgid "Open catalog" msgstr "Atverti katalogą" #, c-format msgid "File “%s” doesn’t exist." msgstr "Failas \"%s\" neegzistuoja." msgid "Poedit is an easy to use translations editor." msgstr "Poedit yra lengvai naudojamas vertimų redaktorius." msgid "Catalogs Manager" msgstr "Katalogų tvarkyklė" msgid "Check for Updates…" msgstr "Tikrinti, ar yra atnaujinimų…" msgid "&Edit" msgstr "&Taisa" msgid "Undo" msgstr "Atšaukti" msgid "Redo" msgstr "Pakartoti" msgid "Paste and Match Style" msgstr "Įklijuoti ir sutapatinti stilių" msgid "Delete" msgstr "Pašalinti" msgid "Spelling and Grammar" msgstr "Rašyba ir gramatika" msgid "Show Spelling and Grammar" msgstr "Rodyti rašybą ir gramatiką" msgid "Check Document Now" msgstr "Patikrinti dokumentą" msgid "Check Spelling While Typing" msgstr "Tikrinti rašybą rašant" msgid "Check Grammar With Spelling" msgstr "Tikrinti rašybą ir gramatiką" msgid "Correct Spelling Automatically" msgstr "Rašybą tikrinti automatiškai" msgid "Substitutions" msgstr "Pakeitimai" msgid "Show Substitutions" msgstr "Rodyti pakeitimus" msgid "Smart Copy/Paste" msgstr "Išmanus kopijavimas/įdėjimas" msgid "Smart Quotes" msgstr "Išmanios kabutės" msgid "Smart Dashes" msgstr "Išmanūs brūkšniai" msgid "Smart Links" msgstr "Išmonios nuorodos" msgid "Text Replacement" msgstr "Teksto pakeitimas" msgid "Transformations" msgstr "Transformacijos" msgid "Make Upper Case" msgstr "Didžiosiomis raidėmis" msgid "Make Lower Case" msgstr "Mažosiomis raidėmis" msgid "Capitalize" msgstr "Iš didžiosios raidės" msgid "Speech" msgstr "Kalba" msgid "Start Speaking" msgstr "Pradėti kalbėti" msgid "Stop Speaking" msgstr "Nebeskaityti" msgid "&View" msgstr "&Rodymas" msgid "Enter Full Screen" msgstr "Visas ekranas" msgid "Window" msgstr "Langas" msgid "Minimize" msgstr "Minimizuoti" msgid "Zoom" msgstr "Priartinti" msgid "Bring All to Front" msgstr "" #. TRANSLATORS:File kind displayed in Finder/Explorer msgid "PO Translation" msgstr "PO vertimas" msgid "The file cannot be opened." msgstr "Atverti failo nepavyko." msgid "Invalid file" msgstr "Netinkamas failas" msgid "" "The file may be either corrupted or in a format not recognized by Poedit." msgstr "" "Failas gali būti sugadintas arba tokio formato kurio Poedit nesupranta." msgid "You can’t drop more than one file on Poedit window." msgstr "" #, c-format msgid "File “%s” is not a message catalog." msgstr "„%s“ nėra pranešimų katalogo failas." msgid "Poedit" msgstr "Poedit" msgid "&File" msgstr "&Failas" msgid "&Go" msgstr "&Eiti" #. TRANSLATORS: %s is language name in its basic form (as you #. would see e.g. in a list of supported languages). You may need #. to rephrase it, e.g. to an equivalent of "for language %s". #, c-format msgid "" "Spellchecking is disabled, because the dictionary for %s isn’t installed." msgstr "" msgid "Install" msgstr "Įdiegti" msgid "Catalog modified. Do you want to save changes?" msgstr "Katalogas pakeistas. Ar norite išsaugoti pakeitimus?" msgid "Save changes" msgstr "Įrašyti pakeitimus" msgid "Your changes will be lost if you don’t save them." msgstr "Prarasite atliktus pakeitimus, jei jų neišsaugosite." msgid "Save" msgstr "Įrašyti" msgid "Don’t save" msgstr "Neįrašyti" msgid "Don’t Save" msgstr "Neįrašyti" msgid "Save as…" msgstr "Įrašyti kaip…" msgid "Compile to…" msgstr "Kompiliuoti į…" msgid "Compiled Translation Files" msgstr "Kompiliuoti vertimo failai" msgid "Export as…" msgstr "Iškelti kaip…" msgid "HTML Files" msgstr "HTML failai" msgid "Open catalog template" msgstr "Atverti katalogo šabloną" msgid "Source code not available." msgstr "Šaltinio kodas neprieinamas." msgid "Updating failed" msgstr "Atnaujinti nepavyko" msgid "" "Translations couldn’t be updated from the source code, because no code was " "found in the location specified in the catalog’s Properties." msgstr "" msgid "Entries in the catalog are probably incorrect." msgstr "Katalogo įrašai gali būti neteisingi." msgid "Updating the catalog failed. Click on 'Details >>' for details." msgstr "" "Katalogo atnaujinimas nepavyko. Norėdami sužinoti daugiau, spauskite " "„Daugiau >>“." #, c-format msgid "%d issue with the translation found." msgid_plural "%d issues with the translation found." msgstr[0] "Rasta %d vertimo problema." msgstr[1] "Rastos %d vertimo problemos." msgstr[2] "Rasta %d vertimo problemų." msgid "Validation results" msgstr "Patvirtinimo rezultatai" msgid "" "Entries with errors were marked in red in the list. Details of the error " "will be shown when you select such an entry." msgstr "" "Įrašai su klaidom pažymėti raudonai. Išsamiau apie klaidą bus parodyta " "pasirinkus įrašą." msgid "The file was saved safely." msgstr "Failas saugiai išsaugotas." msgid "" "The file was saved safely and compiled into the MO format, but it will " "probably not work correctly." msgstr "" "Failas saugiai išsaugotas ir sukompiliuotas į MO formatą, bet jis " "greičiausiai neveiks." msgid "" "The file was saved safely, but it cannot be compiled into the MO format and " "used." msgstr "" "Failas saugiai išsaugotas, bet jo neįmanoma sukompiliuoti į MO formatą ir " "naudoti." msgid "" "The file was compiled into the MO format, but it will probably not work " "correctly." msgstr "" "Failas buvo sukompiliuotas į MO formatą, tačiau jis tikriausiai neveiks " "teisingai." msgid "The file cannot be compiled into the MO format and used." msgstr "Failas negali būti sukompiliuotas į MO formatą naudojimui." msgid "No problems with the translation found." msgstr "Nerasta vertimo klaidų." #, c-format msgid "The translation is ready for use, but %d entry is not translated yet." msgid_plural "" "The translation is ready for use, but %d entries are not translated yet." msgstr[0] "Vertimas paruoštas naudoti, bet %d įrašas dar neišverstas." msgstr[1] "Vertimas paruoštas naudoti, bet %d įrašai dar neišversti." msgstr[2] "Vertimas paruoštas naudoti, bet %d įrašų dar neišversta." msgid "The translation is ready for use." msgstr "Vertimas paruoštas naudoti." #, c-format msgid "Poedit automatically fixed invalid content in the file “%s”." msgstr "" msgid "" "The file contained duplicate items, which is not allowed in PO files and " "would prevent the file from being used. Poedit fixed the issue, but you " "should review translations of any items marked as needing work and correct " "them if necessary." msgstr "" msgid "Language of the translation isn’t set." msgstr "Nenustatyta vertimo kalba." msgid "Set Language" msgstr "Nustatyti kalbą" msgid "Set language" msgstr "Nurodyti kalbą" #. TRANSLATORS: This is shown underneath "Language of the translation isn't set (or ...is the same as source language)." msgid "" "Suggestions are not available if the translation language is not set " "correctly. Other features, such as plural forms, may be affected as well." msgstr "" msgid "Language of the translation is the same as source language." msgstr "" msgid "Fix Language" msgstr "Pataisyti kalbą" msgid "Fix language" msgstr "Pataisyti kalbą" msgid "" "This catalog has entries with plural forms, but doesn’t have Plural-Forms " "header configured." msgstr "" msgid "" "Entries in this catalog have different plural forms count from what " "catalog’s Plural-Forms header says" msgstr "" msgid "Required header Plural-Forms is missing." msgstr "Trūksta būtinos „Plurar-Forms“ antraštės." #, c-format msgid "Syntax error in Plural-Forms header (\"%s\")." msgstr "Sintaksės klaida Plural-Forms antraštėje („%s“)." msgid "Fix the Header" msgstr "Pataisyti antraštę" msgid "Fix the header" msgstr "Pataisyti antraštę" #. TRANSLATORS: %s is language name in its basic form (as you #. would see e.g. in a list of supported languages). You may need #. to rephrase it, e.g. to an equivalent of "for language %s". #, c-format msgid "Plural forms expression used by the catalog is unusual for %s." msgstr "Daugiskaitos forma naudojama kataloge nėra įprasta %s kalbai." #. TRANSLATORS: A verb, shown as action button with ""Plural forms expression used by the catalog is unusual for %s.")" msgid "Review" msgstr "Peržiūrėti" #, c-format msgid "Error loading message catalog file “%s”." msgstr "" #, c-format msgid "Translated: %d of %d (%d %%)" msgstr "Išversta: %d iš %d (%d %%)" #, c-format msgid "Remaining: %d" msgstr "Liko: %d" #, c-format msgid "%d error" msgid_plural "%d errors" msgstr[0] "%d klaida" msgstr[1] "%d klaida" msgstr[2] "%d klaidos" #, c-format msgid "%d entry" msgid_plural "%d entries" msgstr[0] "%d įrašas" msgstr[1] "%d įrašų" msgstr[2] "%d įrašai" msgid " (unsaved)" msgstr " (neišsaugota)" msgid " (modified)" msgstr " (pakeista)" #, c-format msgid "Failed to update translation memory: %s" msgstr "Nepavyko atnaujinti vertimų atminties: %s" msgid "Purge deleted translations" msgstr "Pašalinti ištrintus vertimus" msgid "Do you want to remove all translations that are no longer used?" msgstr "Ar tikrai norite pašalinti visus nebenaudojamus vertimus?" msgid "" "If you continue with purging, all translations marked as deleted will be " "permanently removed. You will have to translate them again if they are added " "back in the future." msgstr "" "Jei tęsite šalinimą, visi vertimai pažymėti kaip „pašalinta“ bus visam " "laikui pašalinti. Jei ateityje jie bus pridėti turėsite juos versti iš naujo." msgid "Keep" msgstr "Palikti" msgid "Purge" msgstr "Išvalyti" msgid "Copy from source text" msgstr "Kopijuoti iš išeities tekstų" msgid "Copy from Source Text" msgstr "Kopijuoti iš išeities tekstų" #. TRANSLATORS: This is the key shortcut used in menus on Windows, some languages call them differently #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Ctrl+" msgstr "Ctrl+" msgid "Clear translation" msgstr "Valyti vertimą" msgid "Clear Translation" msgstr "Valyti vertimą" msgid "Edit comment" msgstr "Keisti komentarą" msgid "Edit Comment" msgstr "Keisti komentarą" msgid "References:" msgstr "Nuorodos:" msgid "&Bookmarks" msgstr "Ž&ymelės" #. TRANSLATORS: This is the key shortcut used in menus on Windows, some languages call them differently #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Alt+" msgstr "Alt+" #, c-format msgid "Set bookmark %i" msgstr "Nustatyti žymelę %i" #, c-format msgid "Go to bookmark %i" msgstr "Pereiti į žymelę %i" #, c-format msgid "Set Bookmark %i" msgstr "Nustatyti žymelę %i" #, c-format msgid "Go to Bookmark %i" msgstr "Pereiti į žymelę %i" msgid "Hide Sidebar" msgstr "Slėpti šoninę juostą" msgid "Show Sidebar" msgstr "Rodyti šoninę juostą" msgid "Hide Status Bar" msgstr "Slėpti būsenos juostą" msgid "Show Status Bar" msgstr "Rodyti būsenos juostą" msgid "Source text:" msgstr "Išeities tekstas:" msgid "Singular:" msgstr "Vienaskaita:" msgid "Plural:" msgstr "Daugiskaita:" msgid "Translation:" msgstr "Vertimas:" msgid "Pre-translated" msgstr "Išversta preliminariai" msgid "Needs Work" msgstr "Būtina peržiūrėti" #. TRANSLATORS: This indicates that the string's translation isn't final #. and has known problems. For example, it might be machine translated or #. fuzzy matched from an older string. The translation should be short and #. convey this. If it's problematic to translate it, "Needs review" is #. acceptable substitute, but note that the meaning is subtly different: #. "needs review" implies that somebody else should review the string after #. I am done with it (i.e. consider it good), while "needs work" implies I #. need to return to it and finish the translation. msgid "Needs work" msgstr "Būtina peržiūrėti" msgid "" "POT files are only templates and don’t contain any translations themselves.\n" "To make a translation, create a new PO file based on the template." msgstr "" msgid "Create New Translation" msgstr "Sukurti naują vertimą" msgid "Create new translation" msgstr "Sukurti naują vertimą" msgid "Everything" msgstr "Viskas" #, c-format msgid "Form %i" msgstr "Forma %i" msgid "Singular" msgstr "Vienaskaita" msgid "Zero" msgstr "Nulis" msgid "One" msgstr "Vienas" msgid "Two" msgstr "Du" msgid "Plural" msgstr "Daugiskaita" msgid "Other" msgstr "Kita" #, c-format msgid "%s Format" msgstr "%s Formatas" #. TRANSLATORS: %s is replaced with language name, e.g. "PHP" or "C", so "PHP Format" etc." #, c-format msgid "%s format" msgstr "%s formatas" msgid "Source text" msgstr "Išeities tekstas" #, c-format msgid "Translation — %s" msgstr "Vertimas - %s" msgid "ID" msgstr "ID" #, c-format msgid "Source text — %s" msgstr "Šaltinio tekstas — %s" msgid "unknown language" msgstr "nežinoma kalba" #, c-format msgid "Failed command: %s" msgstr "Nepavykus komanda: %s" msgid "Failed to merge gettext catalogs." msgstr "Nepavyko sujungti „gettext“ katalogų." msgid "Source file" msgstr "Išeities failas" msgid "Source file occurrence:" msgstr "Išeities failas pasikartojimai:" msgid "Open in Editor" msgstr "Atverti redaktoriuje" msgid "Open in editor" msgstr "Atverti redaktoriuje" msgid "No references for the selected item." msgstr "" #, c-format msgid "Error opening file %s!" msgstr "Klaida atveriant failą %s!" msgid "Find" msgstr "Ieškoti" msgid "Replace" msgstr "Pakeisti" #. TRANSLATORS: Expander in Find window for additional options (case sensitive etc.) msgid "Options" msgstr "Parinktys" msgid "Ignore case" msgstr "Nepaisyti raidžių dydžio" msgid "Wrap around" msgstr "Nekelti teksto aplink" msgid "Whole words only" msgstr "Tik pilnus žodžius" msgid "Find in source texts" msgstr "Ieškoti šaltinio tekstuose" msgid "Find in translations" msgstr "Ieškoti vertime" msgid "Find in comments" msgstr "Ieškoti komentaruose" msgid "Close" msgstr "Užverti" msgid "Replace &All" msgstr "Pakeisti &viską" msgid "Replace &all" msgstr "Pakeisti &viską" msgid "&Replace" msgstr "&Pakeisti" msgid "< &Previous" msgstr "< &Ansktesnis" msgid "&Next >" msgstr "&Sekantis >" msgid "String to find" msgstr "Ieškoma eilutė" msgid "Replacement string" msgstr "" #, c-format msgid "Cannot execute program: %s" msgstr "Įvykdyti programos nepavyko: %s" msgid "Language Code or Name (e.g. en_GB)" msgstr "Kalbos kodas arba pavadinimas (pvz., „lt-LT“)" msgid "Translation Language" msgstr "Vertimo kalba" msgid "Language of the translation:" msgstr "Vertimo kalba:" msgid "Poedit - Catalogs manager" msgstr "Poedit - katalogų tvarkyklė" msgid "Catalog" msgstr "Katalogas" msgid "Total" msgstr "Iš viso" msgid "Untrans" msgstr "Neverstos" msgid "Errors" msgstr "Klaidos" msgid "Last modified" msgstr "Paskutinis pakeitimas" msgid "Select directory" msgstr "Pasirinkite aplanką" msgid "Directories:" msgstr "Aplankai:" msgid "" msgstr "" msgid "Do you want to delete the project?" msgstr "Ar norite pašalinti projektą?" msgid "Confirmation" msgstr "Patvirtinimas" msgid "" "Do you really want to do mass update of\n" "all catalogs in this project?" msgstr "" "Ar tikrai norite masiškai atnaujinti\n" "visus šio projekto katalogus?" msgid "Information about the translator" msgstr "Informacija apie vertėją" msgid "Name:" msgstr "Vardas:" msgid "Your Name" msgstr "Jūsų vardas" msgid "Email:" msgstr "El. paštas:" msgid "your_email@example.com" msgstr "mano@adresas.lt" msgid "" "Your name and email address are only used to set the Last-Translator header " "of GNU gettext files." msgstr "" "Jūsų el. pašto adresas ir vardas bus naudojami tik paskutinio vertėjo " "nurodymui „GNU gettext“ failų antraštėse." msgid "Editing" msgstr "Taisymas" msgid "Automatically compile MO file when saving" msgstr "Automatiškai kompiliuoti MO failą išsaugant" msgid "Show summary after catalog update" msgstr "Atnaujinus katalogą, rodyti suvestinę" msgid "Check spelling" msgstr "Tikrinti _rašybą" msgid "Always change focus to text input field" msgstr "Visada aktyvuoti teksto įvedimo lauką" msgid "" "Never let the list of strings take focus. If enabled, you must use Ctrl-" "arrows for keyboard navigation but you can also type text immediately, " "without having to press Tab to change focus." msgstr "" "Niekada nefokusuoti eilučių sąrašo. Jei įjungta, turėsite naudoti Ctrl" "+rodyklės klaviatūros navigacijai, taip pat galėsite įvedinėti tekstą iš " "karto be TAB paspaudimo nekeičiant fokuso." msgid "Appearance" msgstr "Išvaizda" msgid "Use custom list font:" msgstr "Sąrašui naudoti savo šriftą:" msgid "Use custom text fields font:" msgstr "Įvedimo laukams naudoti savo šriftą:" msgid "Change UI language" msgstr "Keisti programos kalbą" #. TRANSLATORS: This is a note appended to "Check spelling" when running on older Windows versions msgid "(requires Windows 8 or newer)" msgstr "(būtina Windows 8 arba naujesnė versija)" msgid "General" msgstr "Bendra" msgid "Use translation memory" msgstr "Naudoti vertimų atminties pasiūlymus" msgid "Learn From Files…" msgstr "Mokytis iš failų…" msgid "Learn from files…" msgstr "Mokytis iš failų…" #. TRANSLATORS: This is a button that deletes everything in the translation memory (i.e. clears/resets it). msgid "Reset" msgstr "Iš naujo" #. TRANSLATORS: Followed by "match translations within the file" or "pre-translate from TM" msgid "When updating from sources" msgstr "Atnaujinant iš šaltinių" #. TRANSLATORS: Preceded by "When updating from sources" msgid "fuzzy match within the file" msgstr "" #. TRANSLATORS: Preceded by "When updating from sources" msgid "pre-translate from TM" msgstr "versti preliminariai iš VA" msgid "" "Poedit can attempt to fill in new entries from only previous translations in " "the file or from your entire translation memory. Using the TM won’t be very " "effective if it’s near-empty, but it will get better as you add more " "translations to it." msgstr "" msgid "Stored translations:" msgstr "Išsaugoti vertimai:" msgid "Database size on disk:" msgstr "Duomenų bazės dydis diske:" msgid "Select translation files to import" msgstr "Pasirinkite kokius vertimo failus importuosite" msgid "Translation Memory" msgstr "Vertimų atmintis" msgid "Importing translations…" msgstr "Įkeliami vertimai…" msgid "Finalizing…" msgstr "Užbaigiama…" msgid "Reset translation memory" msgstr "Atkurti vertimų atmintį" msgid "Are you sure you want to reset the translation memory?" msgstr "Ar tikrai norite atkurti vertimų atmintį?" msgid "" "Resetting the translation memory will irrevocably delete all stored " "translations from it. You can’t undo this operation." msgstr "" "Vertimų atminties atkūrimas negrįžtamai panaikins visus saugomus vertimus iš " "jos. Negalėsite atšaukti šios operacijos." msgid "Cancel" msgstr "Atsisakyti" #. TRANSLATORS: This is abbreviation of "Translation Memory" used in Preferences on macOS. #. Long text looks weird there, too short (like TM) too, but less so. "General" is about ideal #. length there. msgid "TM" msgstr "VA" msgid "" "Source code extractors are used to find translatable strings in the source " "code files and extract them so that they can be translated." msgstr "" msgid "Custom Extractors:" msgstr "Savo ekstraktoriai:" msgid "Custom extractors:" msgstr "Savo ekstraktoriai:" msgid "Edit…" msgstr "Redaguoti…" msgid "GNU gettext" msgstr "„GNU gettext“" msgid "" "Supports all programming languages recognized by GNU gettext tools (PHP, C/C+" "+, C#, Perl, Python, Java, JavaScript and others)." msgstr "" msgid "Delete extractor" msgstr "Pašalinti ekstraktorių" #, c-format msgid "Are you sure you want to delete the “%s” extractor?" msgstr "" msgid "Extractors" msgstr "Ekstraktoriai" msgid "Accounts" msgstr "Paskyros" msgid "Automatically check for updates" msgstr "Automatiškai tikrinti, ar yra naujinių" msgid "Include beta versions" msgstr "Įtraukti beta versijas" msgid "" "Beta versions contain the latest new features and improvements, but may be a " "bit less stable." msgstr "" msgid "Updates" msgstr "Atnaujinimai" msgid "" "These settings affect internal formatting of PO files. Adjust them if you " "have specific requirements e.g. because of version control." msgstr "" msgid "Line endings:" msgstr "Eilučių pabaigos:" msgid "Unix (recommended)" msgstr "Unix (rekomenduojama)" msgid "Windows" msgstr "Windows" #. TRANSLATORS: Followed by text control for entering number; wraps text at given width msgid "Wrap at:" msgstr "" msgid "Preserve formatting of existing files" msgstr "" msgid "Advanced" msgstr "Papildomai" msgid "Pre-translating…" msgstr "Verčiama preliminariai…" #, c-format msgid "Pre-translated %u string" msgid_plural "Pre-translated %u strings" msgstr[0] "Preliminariai išversta %u eilutė" msgstr[1] "Preliminariai išverstos %u eilutės" msgstr[2] "Preliminariai išversta %u eilučių" #. TRANSLATORS: This is a somewhat common term describing the action where #. you apply the translation memory and/or machine translation to all of the #. strings you're translating as the first step, followed by correcting, #. improving etc., i.e. actually translating the strings. This may be tricky #. to express in other languages as simply as in English, but please try to #. keep it similarly concise. Please try to avoid, if possible, describing it #. as "auto-translation" and similar, because such terminology would mislead #. some users into thinking it's all that needs to be done (spoken from #. experience). "Pre-translate" nicely expresses that it's only the step done #. *before* actual translation. msgid "Pre-translate" msgstr "Versti preliminariai" msgid "Only fill in exact matches" msgstr "" msgid "" "By default, inaccurate results are filled in as well and marked as needing " "work. Check this option to only include accurate matches." msgstr "" msgid "Don’t mark exact matches as needing work" msgstr "" msgid "" "Only enable if you trust the quality of your TM. By default, all matches " "from the TM are marked as needing work and should be reviewed before use." msgstr "" msgid "" "Pre-translation automatically finds exact or fuzzy matches for untranslated " "strings in the translation memory and fills in their translations." msgstr "" #, c-format msgid "%d entry was pre-translated." msgid_plural "%d entries were pre-translated." msgstr[0] "%d eilutė preliminariai išversta." msgstr[1] "%d eilutės preliminariai išverstos." msgstr[2] "%d eilučių preliminariai išversta." msgid "" "The translations were marked as needing work, because they may be " "inaccurate. You should review them for correctness." msgstr "" msgid "No entries could be pre-translated." msgstr "Nėra eilučių, kurias galima preliminariai išversti." msgid "" "The TM doesn’t contain any strings similar to the content of this file. It " "is only effective for semi-automatic translations after Poedit learns enough " "from files that you translated manually." msgstr "" "Vertimų atmintyje nėra eilučių panašių į šio failo turinį. Tai efektyvu tik " "pusiau automatiniam vertimui, kai Poedit pakankamai išmoks iš jūsų rankiniu " "būdu verstų failų." msgid "" "Drag and Drop Folders Here\n" "\n" "or use the + button" msgstr "" msgid "" "Drag and drop folders here\n" "\n" "or use the + button" msgstr "" msgid "Add Folders…" msgstr "Pridėti aplankus…" msgid "Add folders…" msgstr "Pridėti aplankus…" msgid "Add Files…" msgstr "Pridėti failus…" msgid "Add files…" msgstr "Pridėti failus…" msgid "Add Wildcard…" msgstr "" msgid "Add wildcard…" msgstr "" msgid "Paths" msgstr "Keliai" msgid "Excluded paths" msgstr "" msgid "Advanced extraction settings" msgstr "" msgid "Extract notes for translators from:" msgstr "" msgid "Comments prefixed with:" msgstr "" msgid "All comments" msgstr "Visi komentarai" msgid "Additional xgettext flags:" msgstr "" msgid "Additional keywords" msgstr "Papildomi raktažodžiai" msgid "Name of the project the translation is for" msgstr "Projekto vardas kuriam skirtas vertimas" msgid "Team name and email address or URL" msgstr "" msgid "e.g. nplurals=2; plural=(n > 1);" msgstr "pvz. nplurals=2; plural=(n > 1);" msgid "UTF-8 (recommended)" msgstr "UTF-8 (rekomenduojama)" msgid "Please save the file first. This section cannot be edited until then." msgstr "" "Prašom pirma išsaugoti failą. Kol neišsaugosite šio skyriaus bus negalima " "redaguoti." msgid "Not all plural forms are translated." msgstr "Ne visos daugiskaitos formos išverstos." msgid "The translation should start as a sentence." msgstr "" msgid "The translation should start with a lowercase character." msgstr "" msgid "The translation doesn’t start with a space." msgstr "" msgid "The translation starts with a space, but the source text doesn’t." msgstr "" msgid "The translation is missing a newline at the end." msgstr "" msgid "The translation ends with a newline, but the source text doesn’t." msgstr "" msgid "The translation is missing a space at the end." msgstr "" msgid "The translation ends with a space, but the source text doesn’t." msgstr "" #, c-format msgid "The translation should end with “%s”." msgstr "" #, c-format msgid "The translation should not end with “%s”." msgstr "" #, c-format msgid "The translation ends with “%s”, but the source text ends with “%s”." msgstr "" msgid "Comment:" msgstr "Komentaras:" msgid "OK" msgstr "Gerai" msgid "C&lear" msgstr "Iš&valyti" msgid "Clear the comment" msgstr "Išvalyti komentarą" msgid "New" msgstr "Naujas" msgid "Create new translations project" msgstr "Sukurti naują vertimų projektą" msgid "Edit" msgstr "Taisyti" msgid "Edit the project" msgstr "Keisti projektą" msgid "Delete the project" msgstr "Pašalinti projektą" msgid "Update all" msgstr "Atnaujinti viską" msgid "Update all catalogs in the project" msgstr "Atnaujinti visus projekto katalogus" msgid "Edit project" msgstr "Keisti projektą" msgid "Project name:" msgstr "Projekto pavadinimas:" msgid "Browse" msgstr "Naršyti" msgid "Add directory to the list" msgstr "Į sąrašą pridėti aplanką" msgid "&New…" msgstr "&Naujas…" msgid "New from &POT/PO file…" msgstr "" msgid "New From &POT/PO File…" msgstr "" msgid "&Open…" msgstr "&Atidaryti…" msgid "Open Recent" msgstr "Atverti paskiausiai naudotą" msgid "Open from Crowdin…" msgstr "Atverti naudojant Crowdin…" msgid "Open From Crowdin…" msgstr "Atverti naudojant Crowdin…" msgid "&Close" msgstr "&Užverti" msgid "&Save" msgstr "&Išsaugoti" msgid "Save &as…" msgstr "Įrašyti &kaip…" msgid "Save &As…" msgstr "Įrašyti &Kaip…" msgid "Compile to MO…" msgstr "" msgid "E&xport as HTML…" msgstr "E&ksportuoti kaip HTML…" msgid "Check for updates…" msgstr "Tikrinti, ar yra atnaujinimų…" msgid "&Preferences…" msgstr "&Nustatymai…" msgid "Catalogs &manager" msgstr "Katalogų &tvarkyklė" msgid "Catalogs &Manager" msgstr "Katalogų &tvarkyklė" msgid "E&xit" msgstr "&Išeiti" msgid "Quit" msgstr "Baigti darbą" msgid "Copy from singular" msgstr "Kopijuoti iš vienaskaitos" msgid "Copy From Singular" msgstr "Kopijuoti iš vienaskaitos" msgid "Translation needs &work" msgstr "" msgid "Translation Needs &Work" msgstr "" msgid "Edit &comment" msgstr "&Keisti komentarą" msgid "Edit &Comment" msgstr "Keisti &komentarą" msgid "Suggestions" msgstr "Pasiūlymai" msgid "&Find…" msgstr "&Rasti…" msgid "Replace…" msgstr "Sukeisti…" msgid "Find next" msgstr "Surasti kitą" msgid "Find previous" msgstr "Surasti ankstesnį" msgid "Find and Replace…" msgstr "Rasti ir pakeisti…" msgid "Find Next" msgstr "Surasti kitą" msgid "Find Previous" msgstr "Surasti ankstesnį" msgid "&Preferences" msgstr "&Nustatymai" msgid "Display entry &IDs" msgstr "Rodyti įrašų &identifikatorius" msgid "Display Entry &IDs" msgstr "Rodyti įrašų &identifikatorius" msgid "Sort by &file order" msgstr "Rikiuoti pagal &failų eilę" msgid "Sort by &File Order" msgstr "Rikiuoti pagal &Failų eilę" msgid "Sort by &source" msgstr "Rikiuoti pagal &šaltinį" msgid "Sort by &Source" msgstr "Rikiuoti pagal &Šaltinį" msgid "Sort by &translation" msgstr "Rikiuoti pagal &vertimą" msgid "Sort by &Translation" msgstr "Rikiuoti pagal &vertimą" msgid "&Group by context" msgstr "&Grupuoti pagal kontekstą" msgid "&Group By Context" msgstr "&Grupuoti pagal kontekstą" msgid "Entries with errors first" msgstr "Iš pradžių, įrašai su klaidomis" msgid "Entries with Errors First" msgstr "Iš pradžių, įrašai su klaidomis" msgid "&Untranslated entries first" msgstr "&Pirmiausia neišversti įrašai" msgid "&Untranslated Entries First" msgstr "&Pirmiausia neišversti įrašai" msgid "&Show references" msgstr "&Rodyti nuorodas" msgid "&Show References" msgstr "&Rodyti nuorodas" msgid "Show sidebar" msgstr "Rodyti šoninę juostą" msgid "Show status bar" msgstr "Rodyti būsenos juostą" msgid "C&atalog" msgstr "K&atalogas" msgid "&Update from sources" msgstr "&Atnaujinti iš išeities tekstų" msgid "&Update from Sources" msgstr "&Atnaujinti iš išeities tekstų" msgid "Update from &POT file…" msgstr "" msgid "Update from &POT File…" msgstr "" msgid "Sync with Crowdin" msgstr "Sinchronizuoti su Crowdin" msgid "Pre-&translate…" msgstr "Vers&ti preliminariai…" msgid "&Purge deleted translations" msgstr "&Pašalinti ištrintus vertimus" msgid "&Purge Deleted Translations" msgstr "&Pašalinti ištrintus vertimus" msgid "&Validate translations" msgstr "&Tvirtinti vertimą" msgid "&Validate Translations" msgstr "&Tvirtinti vertimą" msgid "&Properties…" msgstr "&Savybės…" msgid "&Done and next" msgstr "&Atlikta ir toliau" msgid "&Done and Next" msgstr "&Atlikta ir Toliau" msgid "&Previous translation" msgstr "&Ankstesnis vertimas" msgid "&Previous Translation" msgstr "&Ankstesnis vertimas" msgid "&Next translation" msgstr "&Kitas vertimas" msgid "&Next Translation" msgstr "&Kitas vertimas" msgid "P&revious unfinished" msgstr "&Ankstesnis nebaigtas" msgid "P&revious Unfinished" msgstr "&Ankstesnis nebaigtas" msgid "Ne&xt unfinished" msgstr "&Kitas nebaigtas" msgid "Ne&xt Unfinished" msgstr "&Kitas nebaigtas" msgid "Previous plural form" msgstr "Ankstesnė daugiskaitos forma" msgid "Previous Plural Form" msgstr "Ankstesnė daugiskaitos forma" msgid "Next plural form" msgstr "Kita daugiskaitos forma" msgid "Next Plural Form" msgstr "Kita daugiskaitos forma" msgid "&Online help" msgstr "&Pagalba internete" msgid "&Online Help" msgstr "&Pagalba internete" msgid "&GNU gettext manual" msgstr "„&GNU gettext“ žinynas" msgid "&GNU gettext Manual" msgstr "„&GNU gettext“ žinynas" msgid "&About Poedit" msgstr "&Apie Poedit" msgid "&About" msgstr "&Apie" msgid "Extractor setup" msgstr "Ekstraktoriaus nuostatos" msgid "List of extensions separated by semicolons (e.g. *.cpp;*.h):" msgstr "Plėtinių, atskirtų kabliataškiais, sąrašas (pvz., *.cpp;*.h):" msgid "Invocation:" msgstr "Iškvietimas:" msgid "Command to extract translations:" msgstr "" msgid "" "This is the command used to launch the extractor.\n" "%o expands to the name of output file, %K to list\n" "of keywords, %F to list of input files,\n" "%C to charset flag (see below)." msgstr "" msgid "An item in keywords list:" msgstr "Elementas raktažodžių sąraše:" msgid "" "This will be attached to the command line once\n" "for each keyword. %k expands to the keyword." msgstr "" "Tai bus pridėta komandinėje eilutėje po kartą\n" "kiekvienam raktiniam žodžiui. %k išplės į raktinį žodį." msgid "An item in input files list:" msgstr "Elementas įvedimo failų sąraše:" #, c-format msgid "" "This will be attached to the command line once\n" "for each input file. %f expands to the filename." msgstr "" "Tai bus pridėta komandinėje eilutėje po kartą\n" "kiekvienam duomenų failui. %f išplės į failo pavadinimą." msgid "Source code charset:" msgstr "Išeities tekstų koduotė:" #, c-format msgid "" "This will be attached to the command line\n" "only if source code charset was given. %c expands to charset value." msgstr "" "Tai bus pridėta komandinėje eilutėje po kartą\n" "kiekvienam duomenų failui. %c išplės į failo pavadinimą." msgid "Catalog properties" msgstr "Katalogo savybės" msgid "Project name and version:" msgstr "Projekto pavadinimas ir versija:" msgid "Language team:" msgstr "Vertėjų komanda:" msgid "Plural forms:" msgstr "Daugiskaitos formos:" msgid "Use default rules for this language" msgstr "Šiai kalbai naudoti numatytąsias taisykles" msgid "Use custom expression" msgstr "Naudoti savo išraišką" msgid "Learn about plural forms" msgstr "Sužinokite apie daugiskaitos formas" msgid "Charset:" msgstr "Koduotė:" msgid "Advanced Extraction Settings…" msgstr "" msgid "Advanced extraction settings…" msgstr "" msgid "Translation Properties" msgstr "Vertimo savybės" msgid "Translation properties" msgstr "Vertimo savybės" msgid "Sources Paths" msgstr "" msgid "Sources paths" msgstr "Išeities failų keliai" msgid "Extract text from source files in the following directories:" msgstr "Eksportuoti tekstą iš išeities failų esančių šiuose aplankaluose:" msgid "Base path:" msgstr "Pagrindinis kelias:" msgid "Sources Keywords" msgstr "" msgid "Sources keywords" msgstr "Išeities failų raktažodžiai" msgid "" "Use these keywords (function names) to recognize translatable strings\n" "in source files:" msgstr "" "Be standartinių, naudokite šiuos raktažodžius (funkcijų pavadinimus),\n" "verstinų išeities tekstuose eilučių atpažinimui:" msgid "Also use default keywords for supported languages" msgstr "Taip pat palaikomoms kalboms naudoti numatytuosius raktažodžius" msgid "Learn About Gettext Keywords" msgstr "Sužinokite daugiau apie „Gettext“ raktažodžius" msgid "Learn about gettext keywords" msgstr "Sužinokite daugiau apie „gettext“ raktažodžius" msgid "Update summary" msgstr "Atnaujinti santrauką" msgid "" "These strings were found in the sources but were not in the catalog.\n" "Poedit will add them to the catalog now." msgstr "" "Šios eilutės buvo rastos išeities tekstuose, tačiau neįtrauktos į katalogą.\n" "Dabar Poedit jas įtrauks į katalogą." msgid "New strings" msgstr "Naujos eilutės" msgid "" "These strings are no longer in the sources.\n" "Poedit will remove them from the catalog now." msgstr "" "Šių eilučių išeities tekstuose nebeliko.\n" "Dabar Poedit jas ištrins iš katalogo." msgid "Obsolete strings" msgstr "Seni žodžiai" msgid "(0 new, 0 obsolete)" msgstr "(0 naujų, 0 senų)" msgid "Open" msgstr "Atverti" msgid "Save catalog" msgstr "Išsaugoti katalogą" msgid "Validate" msgstr "Patvirtinti" msgid "Check for errors in the translation" msgstr "Tikrinti ar nėra vertimo klaidų" msgid "Update" msgstr "Atnaujinti" msgid "Update catalog - synchronize it with sources" msgstr "Atnaujinti katalogą - sinchronizuoti jį su išeities tekstais" msgid "Sidebar" msgstr "Šoninė juosta" msgid "Show or hide the sidebar" msgstr "Rodyti ar slėpti šoninę juostą" #. TRANSLATORS: "Previous" as in used in the past, now replaced with newer. msgid "Previous source text:" msgstr "Ankstesnis šaltinio tekstas:" msgid "" "The old source text (before it changed during an update) that the now-" "inaccurate translation corresponds to." msgstr "" msgid "Notes for translators:" msgstr "Pastabos vertėjams:" msgid "Add comment" msgstr "Pridėti komentarą" msgid "Add Comment" msgstr "Pridėti komentarą" msgid "Translation suggestions:" msgstr "Vertimų siūlymai:" #. TRANSLATORS: This is shown when no translation suggestions can be found in the TM (Windows). msgid "No matches found" msgstr "Atitikmenų nerasta" #. TRANSLATORS: This is shown when no translation suggestions can be found in the TM (macOS, Linux). msgid "No Matches Found" msgstr "Atitikmenų nerasta" msgid "This string was found in Poedit’s translation memory." msgstr "Ši eilutė buvo rasta „Poedit“ vertimų atmintyje." msgid "Cannot create temporary directory." msgstr "Sukurti laikino aplanko nepavyko." msgid "Welcome to Poedit" msgstr "Jus sveikina Poedit" #. TRANSLATORS: This is version information in about dialog, "%s" will be #. version number when used #, c-format msgid "Version %s" msgstr "Versija %s" msgid "Edit a Translation" msgstr "Redaguoti vertimą" msgid "Edit a translation" msgstr "Keisti vertimą" msgid "Open an existing PO file and edit the translation." msgstr "Atverti egzistuojantį PO failą ir redaguoti vertimą." msgid "" "Take an existing PO file or POT template and create a new translation from " "it." msgstr "Paimti esamą PO ar POT failą ir sukurti iš jo naują vertimą." msgid "Collaborate on a Translation with Others" msgstr "" msgid "Collaborate on a translation with others" msgstr "" msgid "" "Download a file from Crowdin project, translate and sync your changes back." msgstr "" "Atsisiųsti failą iš Crowdin projekto, versti ir sinchronizuoti pakeitimus " "atgal." msgid "What is Crowdin?" msgstr "Kas yra Crowdin?" msgid "There are no translations. That’s unusual." msgstr "Nėra vertimų. Neįprasta." msgid "" "Translatable entries aren’t added manually in the Gettext system, but are " "automatically extracted\n" "from source code. This way, they stay up to date and accurate.\n" "Translators typically use PO template files (POTs) prepared for them by the " "developer." msgstr "" msgid "(Learn more about GNU gettext)" msgstr "(Sužinokite daugiau apie „GNU gettext“)" msgid "The simplest way to fill this catalog is to update it from a POT:" msgstr "Paprasčiausias būdas užpildyti šį katalogą yra atnaujinti jį iš POT:" msgid "Update from POT" msgstr "Atnaujinti failą pagal POT šabloną" msgid "Take translatable strings from an existing POT template." msgstr "Paimti verčiamas eilutes iš esamo POT šablono." msgid "" "You can also extract translatable strings directly from the source code:" msgstr "Taipogi galite ištraukti veričiamas eilutes tiesiai iš pradinio kodo:" msgid "Extract from sources" msgstr "Išskleisti iš šaltinių" msgid "Configure source code extraction in Properties." msgstr "Pradinio kodo ištraukimą galite sukonfigūruoti savybėse." msgid "Sync" msgstr "Sinchronizuoti" msgid "Synchronize the translation with Crowdin" msgstr "Sinchronizuoti vertimą su Crowdin" #. TRANSLATORS: This is titlebar of about dialog, "%s" is application name #. ("Poedit" here, but please use "%s") #, c-format msgid "About %s" msgstr "Apie %s" #. TRANSLATORS: Title of the preferences window on Windows and Linux. "%s" is replaced with "Poedit" when running. #, c-format msgid "%s Preferences" msgstr "%s nuostatos" #. TRANSLATORS: macOS item in app menu msgid "Services" msgstr "Paslaugos" #. TRANSLATORS: macOS item in app menu, %s is replaced with "Poedit" #, c-format msgid "Hide %s" msgstr "Slėpti %s" #. TRANSLATORS: macOS item in app menu msgid "Hide Others" msgstr "Slėpti kitus" #. TRANSLATORS: macOS item in app menu msgid "Show All" msgstr "Rodyti visus" #. TRANSLATORS: macOS item in app menu, %s is replaced with "Poedit" #, c-format msgid "Quit %s" msgstr "Baigti %s darbą" #. TRANSLATORS: macOS item in app menu msgid "Preferences…" msgstr "Nustatymai…" msgid "Preferences..." msgstr "Nuostatos..." #. TRANSLATORS: Title of a category in Windows task menu (right-click icon in taskbar) msgid "Recent" msgstr "Paskiausiai naudoti" #. TRANSLATORS: Title of a category in Windows task menu (right-click icon in taskbar) msgid "Frequent" msgstr "Dažnai naudoti" msgid "&Apply" msgstr "&Taikyti" msgid "Apply" msgstr "Taikyti" msgid "&Back" msgstr "&Atgal" msgid "Back" msgstr "Atgal" msgid "&Cancel" msgstr "&Atsisakyti" msgid "&Clear" msgstr "&Išvalyti" msgid "Clear" msgstr "Išvalyti" msgid "Copy" msgstr "Kopijuoti" msgid "Cu&t" msgstr "Iškirp&ti" msgid "Cut" msgstr "Iškirpti" msgid "&Delete" msgstr "&Ištrinti" msgid "&Quit" msgstr "&Baigti darbą" msgid "File" msgstr "Failas" msgid "Help" msgstr "Žinynas" msgid "&New" msgstr "&Naujas" msgid "&No" msgstr "&Ne" msgid "No" msgstr "Ne" msgid "&OK" msgstr "&Gerai" msgid "Open…" msgstr "Atidaryti…" msgid "&Open..." msgstr "&Atverti..." msgid "Open..." msgstr "Atverti..." msgid "&Paste" msgstr "Į&dėti" msgid "Paste" msgstr "Įklijuoti" msgid "Preferences" msgstr "Nuostatos" msgid "&Redo" msgstr "&Pakartoti" msgid "Refresh" msgstr "Įkelti iš naujo" msgid "&Save as" msgstr "Į&rašyti kaip" msgid "Save as" msgstr "Įrašyti kaip" msgid "Select &All" msgstr "Žymėti &viską" msgid "Select All" msgstr "Pažymėti viską" msgid "&Undo" msgstr "&Atšaukti" msgid "&Yes" msgstr "&Taip" msgid "Yes" msgstr "Taip" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Shift+" msgstr "Shift+" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Enter" msgstr "Enter" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Up" msgstr "Aukštyn" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Down" msgstr "Žemyn" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Left" msgstr "Kairė" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Right" msgstr "Dešinė" #. TRANSLATORS: Keyboard shortcut, must correspond to translation of "Ctrl+" msgid "ctrl" msgstr "ctrl" #. TRANSLATORS: Keyboard shortcut, must correspond to translation of "Alt+" msgid "alt" msgstr "alt" #. TRANSLATORS: Keyboard shortcut, must correspond to translation of "Shift+" msgid "shift" msgstr "shift" poedit-2.0.6/locales/ca.mo0000664000372000037200000013365013230132075012272 00000000000000-". . ..<..J/gO/ // // /// /0000#0+0:0I0O0U0i0}00000000000 0 0111 1,1<1R1h1w11111111111232H2]2t22222222 3:"3:]3 333 3 33 33 44424;4[4x44 4144'4575 Q5\57b5655)56 6]+66A6I6(7/7777"77 88.8K8^8p88888888#939H9W9]9o999(9(9 9 ::&:/A: q:~::::::2:';@;W;n; ;;.<4<9<L<_<c<z<<< <<<E<"=?A= ==*= ==K="8>5[>>>> > > >>> > ??)?1?9?@?F?.X?h?? @u$@,@@@@A AA 'A4A<IA"AA AA*A!B!$B'FBnBsB'BTBC C#C (C 2C@CQCfC {C C C CCCCCCCC DDD D ,D9DIDhDkD E!E;E QErE zE EE"E;E(E F=FPF _F iFwFF FFFFG G!G::G uG<G.GGGH*HAH*JHuH{HH H HHoIsII IIIII#I J'J$DJ7iJ%JJJJJJKKKK K2K L#L9LNL]LlLtL|LLLLLLLLMMMnMENZN>aNNNN@N O-P.P @PNP2]PPP 2Q>QMQ%\QQQQQ QQQQRR!R(R -R9R AROR WR dRqR(RRRzRGSNS SS _SkS sS ~S S S SS"SST T T(T 8TETLT UTbT|TTT TT!TTTUUU+U 4UBU KUUU fU sU UUUUUUUUVV VV VV VW W$W 5WCWKJWWW WWW W WXXX(XX XXYY+3Y_YNbY8Y"Y ZZZ8[[[I\R ]c`]Q]^A1^s^!_u$_,_L_``u`Y`mUa^a:"b]b; c7Ecm}c_c[Kddddddee1eIe`eye ee%f)f=f Bfcfvf~f f"f,ffffgg?(ghggggg#gV hchzhh hhhhhhii i)i2iH6i7i i3iaiWj\jajej.jj jjjjk kk!1kSk ,m 9mEm?\mm[m{ n nn nnnnn n nnno oo!o0o7o?oZouo}ooooo oooo oop!p*p3pyVykyy#yyy'y% z$2z(Wz$zzzzzz{){)0{(Z{ {{{6{ {| ||3|F|&Z|L|#|| }#$}H}Z}~~'~B~]~e~ ~~~ ~~~JS6o 3  ` 1; &:Mez؁߁8)˂|Eg+-ك-5<@Pa;y-  3#,W281`FȆΆ!9K\q ʇ҇  (?XswH&g Ɖщ %9"0\Њ؊4"9!J4l ‹ً!C PBc8ߌ1'C k+u ؍ ގ&& 0>Tj m' .׏0H72 ͐א-Ց 1,=\tђ /ēiFQHP e<Ö Ӗ ߖ;(A ڗ) 4J`q Ϙ Ԙ  2E1\ "JRWj}Қ20PXq ś#ݛ2Rj9 ʜܜ4L U_ŝ %6 Mn'; Wa r}ß ӟkMew Π u(š+ա'!),KAxF6-;iFF Q lBzZtV%P [1 l;'TЩp%T!`ve׫E=AaClxgMSc{¯ޯ. @L/6 G S^*p4б"+_H6#߲!0%4V+t,JQ l'w մ  2<C@> õ&ѵ:(۶!&@Z^p#, 7@2K3~t.Q^.XGs{1$ slS!)-e>")q5oZn\Uh c8Kz%o};U6Tku* ]0?Pad fC?y( $J6Mv [M:HAWLD},{9;_72"bR%'eC85HJgIpr!`//x,_ gz#`a&1:y([=4 BF<j*f>|h^A&OF kWxwvY(w<'DNu + EN-9 \#pi]SQmVn*iObRLd$+PXl '0!mE&V#)T| %4BcY3~rt-  @Z+Gq" j=I (modified) (unsaved)%d entry%d entries%d entry was pre-translated.%d entries were pre-translated.%d error%d errors%d issue with the translation found.%d issues with the translation found.%i line of file “%s” was not loaded correctly.%i lines of file “%s” were not loaded correctly.%s Format%s Preferences%s format&About&About Poedit&Apply&Back&Bookmarks&Cancel&Clear&Close&Copy&Delete&Done and Next&Done and next&Edit&File&GNU gettext Manual&GNU gettext manual&Go&Group By Context&Group by context&Help&New&New…&Next >&Next Translation&Next translation&No&OK&Online Help&Online help&Open...&Open…&Paste&Preferences&Preferences…&Previous Translation&Previous translation&Properties…&Purge Deleted Translations&Purge deleted translations&Quit&Redo&Replace&Save&Save as&Show References&Show references&Undo&Untranslated Entries First&Untranslated entries first&Update from Sources&Update from sources&Validate Translations&Validate translations&View&Yes(0 new, 0 obsolete)(Learn more about GNU gettext)(New: %i, obsolete: %i)(Use default language)(requires Windows 8 or newer)< &PreviousDrag and Drop Folders Here or use the + buttonDrag and drop folders here or use the + buttonAbout %sAccountsAdd CommentAdd Files…Add Folders…Add commentAdd directory to the listAdd files…Add folders…Additional keywordsAdvancedAdvanced Extraction Settings…Advanced extraction settingsAdvanced extraction settings…All Translation FilesAll commentsAlso use default keywords for supported languagesAlt+Always change focus to text input fieldAn item in input files list:An item in keywords list:AppearanceApplyAre you sure you want to delete the “%s” extractor?Are you sure you want to reset the translation memory?Automatically check for updatesAutomatically compile MO file when savingBackBase path:Beta versions contain the latest new features and improvements, but may be a bit less stable.Bring All to FrontBroken catalog file: plural form msgstr used without msgid_pluralBroken catalog file: singular form msgstr used together with msgid_pluralBrowseBy default, inaccurate results are filled in as well and marked as needing work. Check this option to only include accurate matches.C&atalogC&learCancelCannot create temporary directory.Cannot execute program: %sCapitalizeCatalogCatalog modified. Do you want to save changes?Catalog propertiesCatalogs &ManagerCatalogs &managerCatalogs ManagerChange UI languageCharset:Check Document NowCheck Grammar With SpellingCheck Spelling While TypingCheck for Updates…Check for errors in the translationCheck for updates…Check spellingClearClear TranslationClear the commentClear translationCloseCollaborate on a Translation with OthersCollaborate on a translation with othersCommand to extract translations:Comment:Compile to MO…Compiled Translation FilesConfigure source code extraction in Properties.ConfirmationCopyCopy From SingularCopy from Source TextCopy from singularCopy from source textCorrect Spelling AutomaticallyCouldn’t load file %s, it is probably corrupted.Couldn’t save file %s.Create New TranslationCreate new translationCreate new translations projectCrowdin errorCrowdin is an online localization management platform and collaborative translation tool. Poedit can seamlessly sync PO files managed at Crowdin.Ctrl+Cu&tCustom Extractors:Custom extractors:CutDatabase size on disk:DeleteDelete extractorDelete the projectDirectories:Display Entry &IDsDisplay entry &IDsDo you really want to do mass update of all catalogs in this project?Do you want to delete the project?Do you want to remove all translations that are no longer used?Don’t SaveDon’t Show AgainDon’t mark exact matches as needing workDon’t saveDon’t show againDownload a file from Crowdin project, translate and sync your changes back.Downloading latest translations…Downloading translations is disabled in this project.E&xitE&xport as HTML…EditEdit &CommentEdit &commentEdit CommentEdit a TranslationEdit a translationEdit commentEdit projectEdit the projectEditingEdit…Email:EnterEnter Full ScreenEntries in the catalog are probably incorrect.Entries in this catalog have different plural forms count from what catalog’s Plural-Forms header saysEntries with Errors FirstEntries with errors firstEntries with errors were marked in red in the list. Details of the error will be shown when you select such an entry.Error loading message catalog file “%s”.Error opening fileError opening file %s!Error saving catalogErrorsEverythingExcluded pathsExport as…Extract from sourcesExtract text from source files in the following directories:Extracting translatable strings…Extractor setupExtractorsFailed command: %sFailed to communicate with Poedit process.Failed to load extracted catalog.Failed to merge gettext catalogs.Failed to update translation memory: %sFileFile “%s” doesn’t exist.File “%s” is not a message catalog.File “%s” is read-only and cannot be saved. Please save it under different name.File:Finalizing…FindFind NextFind PreviousFind in commentsFind in source textsFind in translationsFind nextFind previousFix LanguageFix languageFix the HeaderFix the headerForm %iFrequentGeneralGo to Bookmark %iGo to bookmark %iHTML FilesHelpHide %sHide OthersHide SidebarHide Status BarHide this notification messageIDIf you continue with purging, all translations marked as deleted will be permanently removed. You will have to translate them again if they are added back in the future.Ignore caseImporting translations…Include beta versionsInformation about the translatorInstallInvalid fileInvocation:KeepLanguage Code or Name (e.g. en_GB)Language of the translation is the same as source language.Language of the translation isn’t set.Language of the translation:Language selectionLanguage team:Language:Last modifiedLearn About Gettext KeywordsLearn From Files…Learn MoreLearn More About CrowdinLearn about gettext keywordsLearn about plural formsLearn from files…Learn moreLearn more about CrowdinLine %d of file “%s” is corrupted (not valid %s data).Line endings:List of extensions separated by semicolons (e.g. *.cpp;*.h):MO files can’t be directly edited in Poedit.Make Lower CaseMake Upper CaseMalformed header: “%s”Merging differences…MinimizeName of the project the translation is forName:Ne&xt UnfinishedNe&xt unfinishedNeeds WorkNeeds workNever let the list of strings take focus. If enabled, you must use Ctrl-arrows for keyboard navigation but you can also type text immediately, without having to press Tab to change focus.NewNew From &POT/PO File…New from &POT/PO file…New stringsNext Plural FormNext plural formNoNo Matches FoundNo entries could be pre-translated.No matches foundNo problems with the translation found.No references for the selected item.No translation projects listed in your Crowdin account.Not authorized, please sign in again.Notes for translators:OKObsolete stringsOneOnly enable if you trust the quality of your TM. By default, all matches from the TM are marked as needing work and should be reviewed before use.Only fill in exact matchesOpenOpen Crowdin translationOpen From Crowdin…Open RecentOpen an existing PO file and edit the translation.Open catalogOpen catalog templateOpen from Crowdin…Open in EditorOpen in editorOpen...Open…OptionsOtherP&revious UnfinishedP&revious unfinishedPO TranslationPO Translation FilesPOT Translation TemplatesPOT files are only templates and don’t contain any translations themselves. To make a translation, create a new PO file based on the template.PastePaste and Match StylePathsPlease open and edit the corresponding PO file instead. When you save it, the MO file will be updated as well.Please save the file first. This section cannot be edited until then.PluralPlural forms expression used by the catalog is unusual for %s.Plural:PoeditPoedit - Catalogs managerPoedit automatically fixed invalid content in the file “%s”.Poedit can attempt to fill in new entries from only previous translations in the file or from your entire translation memory. Using the TM won’t be very effective if it’s near-empty, but it will get better as you add more translations to it.Poedit is an easy to use translations editor.Pre-&translate…Pre-translatePre-translatedPre-translated %u stringPre-translated %u stringsPre-translating…Pre-translation automatically finds exact or fuzzy matches for untranslated strings in the translation memory and fills in their translations.PreferencesPreferences...Preferences…Preserve formatting of existing filesPrevious Plural FormPrevious plural formPrevious source text:Project name and version:Project name:Project:PurgePurge deleted translationsQuitQuit %sRecentRedoReferences:RefreshRemaining: %dReplaceReplace &AllReplace &allReplacement stringRequired header Plural-Forms is missing.ResetReset translation memoryResetting the translation memory will irrevocably delete all stored translations from it. You can’t undo this operation.ReviewSaveSave &As…Save &as…Save asSave as…Save catalogSave changesSelect &AllSelect AllSelect directorySelect translation files to importSelect your preferred languageServicesSet Bookmark %iSet LanguageSet bookmark %iSet languageShift+Show AllShow SidebarShow Spelling and GrammarShow Status BarShow SubstitutionsShow or hide the sidebarShow sidebarShow status barShow summary after catalog updateSidebarSign InSign OutSign inSign in to CrowdinSign outSigned in as:SingularSingular:Smart Copy/PasteSmart DashesSmart LinksSmart QuotesSort by &File OrderSort by &SourceSort by &TranslationSort by &file orderSort by &sourceSort by &translationSource code charset:Source code extractors are used to find translatable strings in the source code files and extract them so that they can be translated.Source code not available.Source fileSource file occurrence:Source textSource text — %sSource text:Sources KeywordsSources PathsSources keywordsSources pathsSpeechSpellchecking is disabled, because the dictionary for %s isn’t installed.Spelling and GrammarStart SpeakingStop SpeakingStored translations:String to findSubstitutionsSuggestionsSuggestions are not available if the translation language is not set correctly. Other features, such as plural forms, may be affected as well.SyncSync with CrowdinSynchronize the translation with CrowdinSyncingSyncing errorSyncing with %s failed.Syncing with %s…Syncing with Crowdin failed.Syntax error in Plural-Forms header ("%s").TMTake an existing PO file or POT template and create a new translation from it.Take translatable strings from an existing POT template.Team name and email address or URLText ReplacementThe TM doesn’t contain any strings similar to the content of this file. It is only effective for semi-automatic translations after Poedit learns enough from files that you translated manually.The catalog couldn’t be saved in “%s” charset as specified in catalog settings. It was saved in UTF-8 instead and the setting was modified accordingly.The file cannot be compiled into the MO format and used.The file cannot be opened.The file contained duplicate items, which is not allowed in PO files and would prevent the file from being used. Poedit fixed the issue, but you should review translations of any items marked as needing work and correct them if necessary.The file may be either corrupted or in a format not recognized by Poedit.The file was compiled into the MO format, but it will probably not work correctly.The file was saved safely and compiled into the MO format, but it will probably not work correctly.The file was saved safely, but it cannot be compiled into the MO format and used.The file was saved safely.The simplest way to fill this catalog is to update it from a POT:The translation is ready for use, but %d entry is not translated yet.The translation is ready for use, but %d entries are not translated yet.The translation is ready for use.The translations were marked as needing work, because they may be inaccurate. You should review them for correctness.There are no translations. That’s unusual.There was a problem formatting the file nicely (but it was saved all right).There were errors when loading the catalog. Some data may be missing or corrupted as the result.These settings affect internal formatting of PO files. Adjust them if you have specific requirements e.g. because of version control.These strings are no longer in the sources. Poedit will remove them from the catalog now.These strings were found in the sources but were not in the catalog. Poedit will add them to the catalog now.This catalog has entries with plural forms, but doesn’t have Plural-Forms header configured.This file can only be edited in Crowdin’s web interface.This is the command used to launch the extractor. %o expands to the name of output file, %K to list of keywords, %F to list of input files, %C to charset flag (see below).This project has no files that can be translated in Poedit.This string was found in Poedit’s translation memory.This will be attached to the command line only if source code charset was given. %c expands to charset value.This will be attached to the command line once for each input file. %f expands to the filename.This will be attached to the command line once for each keyword. %k expands to the keyword.TotalTransformationsTranslated: %d of %d (%d %%)Translation LanguageTranslation MemoryTranslation Needs &WorkTranslation PropertiesTranslation needs &workTranslation propertiesTranslation suggestions:Translation — %sTranslation:Translations couldn’t be updated from the source code, because no code was found in the location specified in the catalog’s Properties.TwoUTF-8 (recommended)UndoUnhandled exception occurred: %sUnix (recommended)UntransUpdateUpdate allUpdate all catalogs in the projectUpdate catalog - synchronize it with sourcesUpdate from POTUpdate summaryUpdatesUpdating catalogUpdating failedUpdating the catalog failed. Click on 'Details >>' for details.Updating user information…Uploading translations…Use custom expressionUse custom list font:Use custom text fields font:Use default rules for this languageUse these keywords (function names) to recognize translatable strings in source files:Use translation memoryValidateValidation resultsVersion %sWaiting for authentication…Welcome to PoeditWhat is Crowdin?When updating from sourcesWhole words onlyWindowWindowsWrap aroundWrap at:YesYou can also extract translatable strings directly from the source code:You must restart Poedit for this change to take effect.Your NameYour changes will be lost if you don’t save them.Your name and email address are only used to set the Last-Translator header of GNU gettext files.ZeroZoomaltctrldon’t delete temporary files (for debugging)e.g. nplurals=2; plural=(n > 1);fuzzy match within the filehandle a poedit:// URIpre-translate from TMshiftunknown languageyour_email@example.com“%s” is not a valid POT file.Project-Id-Version: poedit Report-Msgid-Bugs-To: help@poedit.net POT-Creation-Date: 2017-12-05 15:52+0100 PO-Revision-Date: 2017-12-05 09:48-0500 Last-Translator: vslavik Language-Team: Catalan Language: ca_ES MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=(n != 1); X-Generator: crowdin.com X-Crowdin-Project: poedit X-Crowdin-Language: ca X-Crowdin-File: /locales/poedit.pot (modificat) (no desat)%d entrada%d entradesS’ha pretraduït %d entrada.S’han pretraduït %d entrades.%d error%d errorsS’ha trobat %d problema amb la traducció.S’han trobat %d problemes amb la traducció.No s’ha carregat %i línia del fitxer «%s» correctament.No s’han carregat %i línies del fitxer «%s» correctament.Format %sPreferències del %sformat %s&Quant a&Quant al Poedit&Aplica&Enrere&Marcadors&Cancel·la&Neteja&Tanca&Copia&Suprimeix&Fet, següent&Fet, següent&Edita&FitxerManual del &gettext de GNUManual del &gettext de GNU&NavegaA&grupa pel contextA&grupa pel context&Ajuda&Nou&Nova…&Següent >Traducció &següentTraducció &següent&No&D’acord&Ajuda en línia&Ajuda en línia&Obre...&Obre…&Enganxa&Preferències&Preferències…Traducció &anteriorTraducció &anterior&Propietats…&Purga les traduccions suprimides&Purga les traduccions suprimides&Surt&Refés&ReemplaçaDe&saAnomena i de&saMo&stra les referènciesMo&stra les referències&Desfés&Primer les entrades no trad&uïdes&Primer les entrades no trad&uïdesAct&ualitza des de les fontsAct&ualitza des de les fonts&Valida les traduccions&Valida les traduccions&Visualitza&Sí(0 noves, 0 obsoletes)(Apreneu més sobre el GNU gettext)(Noves: %i, obsoletes: %i)(Utilitza l’idioma per defecte)(necessita Windows 8 o superior)< &AnteriorArrossegueu i deixeu anar carpetes aquí o usa el botó +Arrossegueu i deixeu anar carpetes aquí o usa el botó +Quant al %sComptesAfegeix un comentariAfegeix fitxers…Afegeix carpetes…Afegeix un comentariAfegeix el directori a la llistaAfegeix fitxers…Afegeix carpetes…Paraules clau addicionalsAvançadesParàmetres d’extracció avançats…Configuració d'ubicació avançadaParàmetres d’extracció avançats…Tots els fitxers de traduccióTots els comentarisUtilitza també les paraules clau per defecte a les llengües admesesAlt+Canvia sempre el focus al camp d'introducció de textUn element de la llista dels fitxers d'entrada:Un element de la llista de paraules clau:AparençaAplicaEsteu segur que voleu suprimir l’extractor «%s»?Esteu segur que voleu reinicialitzar la memòria de traduccions?Comprova si hi ha actualitzacions automàticamentCompila el fitxer MO automàticament en desarEnrereCamí base:Les versions beta contenen les funcionalitats i millores més recents, però poden ser una mica menys estables.Envia tot al capdavantFitxer de catàleg malmès: la forma plural del msgstr s'ha fet servir sense msgid_pluralFitxer de catàleg malmès: la forma singular del msgstr s'ha fet servir conjuntament amb msgid_pluralNavegaPer defecte, els resultats inexactes s'omplen també i es marquen com a difuses. Seleccioneu aquesta opció per a incloure només coincidències exactes.&Catàleg&NetejaCancel·laNo s'ha pogut crear el directori temporal.No es pot executar el programa: %sMajúscules inicialsCatàlegS’ha modificat el catàleg. Voleu desar-ne els canvis?Propietats del catàleg&Gestor de catàlegs&Gestor de catàlegsGestor de catàlegsCanvia l’idioma de la interfícieJoc de caràcters:Comprova el document araComprova la gramàtica amb l'ortografiaComprova l'ortografia mentre s'escriuComprova si hi ha actualitzacions…Comprova si hi ha errors a la traduccióComprova si hi ha actualitzacions…Comprova l'ortografiaNetejaNeteja la traduccióNeteja el comentariNeteja la traduccióTancaCol·laboreu amb altres en una traduccióCol·laboreu amb altres en una traduccióOrdre d’extracció de les traduccions:Comentari:Compila com a MO…Fitxers de traducció compilatsConfigura l'extracció de codi font en els Propietats.ConfirmacióCopiaCopia del singularCopia del text fontCopia del singularCopia del text fontCorregeix l'ortografia automàticamentNo s’ha pogut carregar el fitxer «%s»; és probable que estigui malmès.No s’ha pogut desar el fitxer %s.Crea una traducció novaCrea una traducció novaCrea un nou projecte de traduccionsError del CrowdinEl Crowdin és una plataforma de gestió de localització en línia i una eina de traducció col·laborativa. El Poedit pot sincronitzar sense problema els fitxers PO gestionats al Crowdin.Ctrl+Re&tallaExtractors personalitzats:Extractors personalitzats:RetallaMida de base de dades en disc:SuprimeixSuprimeix l’extractorSuprimeix el projecteDirectoris:Mostra els &id. de les entradesMostra els &id. de les entradesSegur que voleu actualitzar en massa tots els catàlegs d'aquest projecte?Voleu suprimir el projecte?Voleu suprimir totes les traduccions que ja no s'usin?No ho desisNo tornis a mostrar-hoNo marquis les coincidències exactes com a difusesNo ho desisNo tornis a mostrar-hoBaixa el fitxer d'un projecte del Crowdin, traduïu-ho i sincronitzeu-ho amb els vostres canvis.S’estan baixant les traduccions més recents…Aquest projecte ha inhabilitat les baixades de traduccions.&SurtE&xporta com a HTML…Edita&Edita el comentari&Edita el comentariEdita el comentariModifica una traduccióEdita una traduccióEdita el comentariEdita el projecteEdita el projecteEdicióEdita…Adreça electrònica:RetornPantalla senceraLes entrades del catàleg són probablement incorrectes.Les entrades d’aquest catàleg tenen un nombre total de formes plurals diferent del que diu la capçalera Plural-Forms del catàlegEntrades amb errors primersPrimer les entrades amb errorsLes entrades amb errors s'han marcat en vermell a la llista. Els detalls de l'error es mostraran quan seleccioneu l'entrada.S’ha produït un error en carregar el catàleg de missatges «%s».S’ha produït un error en obrir el fitxerS'ha produït un error en obrir el fitxer %s!S’ha produït un error en desar el catàlegErrorsTotCamins exclososExporta com a…Extreu des de les fontsExtreu el text dels fitxers font dels següents directoris:S’estan extraient les cadenes traduibles…Paràmetres de l’extractorExtractorsHa fallat l’ordre: %sHa fallat la comunicació amb el procès de Poedit.No s’ha pogut carregar el catàleg extret.No s'han pogut fusionar els catàlegs del gettext.Ha fallat l'actualització de memòria de traducció: %sArxiuEl fitxer «%s» no existeix.El fitxer «%s» no és un catàleg de missatges.El fitxer «%s» és només de lectura i no es pot desar. Hauríeu de desar-lo amb un altre nom.Fitxer:S’està finalitzant…TrobaCerca el següentCerca l'anteriorCerca als comentarisTroba als texts d’origenTroba a les traduccionsCerca el següentCerca l'anteriorCorregeix l’idiomaCorregeix l’idiomaCorregeix la capçaleraCorregeix la capçaleraForma %iFreqüentsGeneralVés al marcador %iVés al marcador %iFitxers HTMLAjudaAmaga el %sAmaga la restaAmaga la barra lateralAmaga la barra d’estatAmaga aquesta notificacióId.Si continueu amb la purga, totes les traduccions marcades com a suprimides s'eliminaran permanentment. Si continueu amb la supressió les haureu de traduir de nou en cas que tornin a ser afegides en un futur.Ignora majúscules/minúsculesS’estan important les traduccions…Inclou les versions betaInformació sobre el traductorInstal·laEl fitxer no és vàlidInvocació:MantéCodi d’idioma o nom (p. ex., ca_ES)L'idioma de la traducció es el mateix que l'idioma font.No s’ha establert l’idioma de la traducció.Idioma de la traducció:Selecció d’idiomaEquip de traducció:Idioma:Darrera modificacióMés informació sobre les paraules clau del gettextAprèn dels fitxers…Més informacióMés informació sobre el CrowdinMés informació sobre les paraules clau del gettextApreneu sobre les formes pluralsAprèn dels fitxers…Més informacióMés informació sobre el CrowdinLa línia %d del fitxer «%s» està malmesa (dades %s no vàlids).Finals de línies:Llistat d'extensions separades per punt i coma (p. ex. *.cpp,*.h):Els fitxers MO no es poden editar directament al Poedit.Converteix a minúsculesConverteix a majúsculesEl format de la capçalera és incorrecte: «%s»S’estan fusionant les diferències…MinimitzaNom del projecte pel qual és la traduccióNom:&Següent no finalitzada&Següent no finalitzadaPer revisarPer revisarMai permetis que el llistat de cadenes obtingui el focus. Si està habilitat, haureu d'emprar les Ctrl+fletxes per la navegació amb el teclat, però també podreu escriure immediatament sense haver de prémer Tab per a canviar el focus.NouNova a partir d’un fitxer &POT/PO…Nova a partir d’un fitxer &POT/PO…Cadenes novesForma plural següentForma plural següentNoNo s’han trobat coincidènciesNo s’ha pogut pretraduir cap entrada.No s’han trobat coincidènciesNo s'ha trobat cap problema amb la traducció.No hi ha referències per a l'ítem seleccionat.No hi ha cap projecte de traducció llistat al vostre compte de Crowdin.Acció no autoritzada. Inicieu una sessió de nou.Notes per als traductors:D’acordCadenes obsoletesUnHabiliteu-la només si confieu en la qualitat de l’MT. Per defecte, totes les coincidències de l’MT es marquen com a difuses i es deuen revisar.Únicament emplena les coincidències exactesObreObre una traducció del CrowdinObre des del Crowdin…Obre recentsObre un fitxer PO existent i edita la traducció.Obre el catàlegObre una plantilla de catàlegObre des del Crowdin…Obre en l’editorObre en l’editorObre…Obre…OpcionsAltreAnte&rior no finalitzadaAnte&rior no finalitzadaTraducció POFitxers de traducció POPlantilles de traducció .POTEls fitxers POT només són plantilles i no contenen cap traducció. Per a fer una traducció, creeu un fitxer PO nou basat en la plantilla.EnganxaEnganxa amb el mateix estilCaminsObriu i editeu el fitxer .po corresponent en el seu lloc. Quan ho deseu, el fitxer .mo s’actualitzarà.Deseu el fitxer primer. No es pot editar aquesta secció fins llavors.PluralL'expressió de formes plurals usada pel catàleg és inusual per al %s.Plural:PoeditPoedit - Gestor de catàlegsEl Poedit ha corregit automàticament el contingut invàlid en el fitxer «%s».El Poedit pot intentar emplenar entrades noves només des de traduccions prèvies en el fitxer o des de la vostra memòria completa de traduccions. Utilitzar l’MT no serà gaire efectiu si la memòria està pràcticament buida, però millorarà a mesura que hi afegiu traduccions noves.El Poedit és un editor de traduccions fàcil de fer servir.Pre&tradueix…Pre-traduirPre-traduïtS’ha pretraduït %u cadenaS’han pretraduït %u cadenesS’està pretraduint…Pre-traducció automàticament detecta coincidències exactes o aproximades de cadenes sense traduir en la memòria de traducció i omple la traducció.PreferènciesPreferències...Preferències…Preserva el format dels fitxers existentsForma plural anteriorForma plural anteriorText font previ:Nom i versió del projecte:Nom del projecte:Projecte:PurgaPurga les traduccions obsoletesSurtSurt del %sRecentsRefésReferències:ActualitzaResten: %dSubstitueixReemplaça-ho &totReemplaça-ho &totCadena de substitucióFalta la capçalera necessària «Plural-Forms».ReinicialitzaEsborra la memòria de traduccionsRestablir la memòria de traducció irrevocablement en suprimirà totes les traduccions emmagatzemades. No podeu desfer aquesta operació.RepassaDesa&Anomena i desa…&Anomena i desa…Anomena i desaAnomena i desa…Desa el catàlegDesa els canvisSelecciona-ho &totSelecciona-ho totSeleccioneu el directoriSeleccioneu els fitxers de traducció que importarTrieu el vostre idioma preferitServeisEstableix el marcador %iEstableix l'idiomaEstableix el marcador %iSeleccioneu l'idiomaMaj+Mostra-ho totMostra la barra lateralMostra l'ortografia i la gramàticaMostra la barra d'estatMostra les substitucionsMostra o amaga la barra lateralMostra la barra lateralMostra la barra d'estatMostra el resum després de l'actualització del catàlegBarra lateralInicia la sessióFinalitza la sessióInicia la sessióInicia la sessió a CrowdinFinalitza la sessióSessió iniciada com a:SingularSingular:Copia/enganxa intel·ligentmentGuions intel·ligentsEnllaços intel·ligentsCometes tipogràfiquesOrdena per &ordre de fitxerOrdena per &fontOrdena per &traducció&Ordena per ordre de fitxerOrdena per &fontOrdena per &traduccióJoc de caràcters del codi font:Els extractors de codi font s’utilitzen per a trobar cadenes traduïbles dins els fitxers de codi font i extreure-les de manera que es puguin traduir.El codi font no és disponible.Fitxer de codi fontOcurrència al fitxer font:Text fontText font — %sText font:Paraules claus de les fontsRutes de les fontsParaules clau de fontsCamins de fontsVocalitzacióLa correcció ortogràfica está inhabilitada perquè no s’ha instal·lat el diccionari de l’idioma %s.Ortografia i gramàticaComença a parlarDeixa de parlarTraduccions emmagatzemades:Cadena a trobarSubstitucionsSuggerimentsEls suggeriments no es disposen si l'idioma de traducció no està establerta correctament. Altres característiques, com les formes plurals, també es poden afectar.SincronitzaSincronitza amb el CrowdinSincronitza la traducció amb el CrowdinSincronitzacióS’ha produït un error de sincronitzacióHa fallat la sincronització amb el %s.S’està sincronitzant amb %s…La sincronització amb el Crowdin ha fallat.Hi ha un error de sintaxis a la capçalera Plural-Forms («%s»).MTPren un fitxer PO o plantilla existent i crea’n una traducció nova.Pren cadenes traduïbles d'una plantilla POT existent.Nom de l’equip i adreça electrònica o URLSubstitució del textL’MT no conté cap cadena similar al contingut d’aquest fitxer. Només en serà efectiva per a traduccions semiautomàtiques quan el Poedit hagi après prou dels fitxers que traduïu manualment.No s’ha pogut desar el catàleg en el joc de caràcters «%s» com s’especifica en la configuració del catàleg. Se n’ha desat en UTF-8 i el paràmetre s’ha modificat en conseqüència.No és possible compilar el fitxer en el format MO per a utilitzar-lo.No es pot obrir el fitxer.El fitxer contenia elements duplicats. Això no es permet als fitxers PO; en cas contrari el fitxer no es podria fer servir. El Poedit ha corregit el problema, però hauríeu de revisar les traduccions de qualssevol elements marcats com a difusos i corregir-les si cal.El fitxer pot ser o malmès o d'un format no reconegut pel Poedit.El fitxer s’ha compilat en el format MO, però probablement no funcionarà correctament.El fitxer s’ha desat amb seguretat i compilat en el format MO, però és probable que no en funcioni correctament.El fitxer s’ha desat amb seguretat, però no es pot compilar i usar en el format MO.El fitxer s’ha desat amb seguretat.La manera més senzilla d'omplir aquest catàleg es actualitzar-lo des d'un POT:La traducció ja és a punt per ser usada, però encara no s’ha traduït %d cadena.La traducció ja és a punt per ser usada, però encara no s’han traduït %d cadenes.La traducció ja és a punt i podeu utilitzar-la.Les traduccions marcades com per revisar, ja que poden ser incorrectes. S'han de repassar per comprovar-les.No hi ha traduccions. Això es inusual.S’ha produït un problema en formatar el fitxer (però s’ha desat correctament).S’han produït errors en carregar el catàleg. És possible que manquin algunes dades o que estiguin malmeses.Aquests ajusts afecten el format intern dels fitxers PO. Ajusteu-los si teniu requisits específics, per exemple, pel control de versions.Aquestes cadenes ja no són al codi font. El Poedit les suprimirà del catàleg ara.Aquestes cadenes són al codi font però no al catàleg. El Poedit les afegirà al catàleg ara.Aquest catàleg té entrades amb formes plurals, però no té la capçalera Plural-Forms configurada.Aquest fitxer només es pot editar en la interfície web del Crowdin.Aquesta és l’ordre emprada per a iniciar l’extractor. %o s’expandeix al nom del fitxer de sortida, %K al llistat de paraules clau, %F al llistat de fitxers de sortida, %C al joc de caràcters (vegeu-ho més avall).Aquest projecte no té cap fitxer que es pugui traduir al Poedit.S'ha trobat aquesta cadena en la memòria de traducció del Poedit.Això s'adjuntarà a la línia d'ordres només si s'ha especificat el joc de caràcters d'origen. %c s'expandeix al valor del joc de caràcters.Això s'adjuntarà a la línia d'ordres un cop per cada fitxer de sortida. %f s'expandeix al nom del fitxer.Això s'adjuntarà a la línia d'ordres un cop per cada paraula clau. %k s'expandeix a la paraula clau.TotalTransformacionsTraduït: %d/%d (%d %%)Idioma de la traduccióMemòria de traduccióTraducció Per &RevisarPropietats de la traduccióTraducció per &revisarPropietats de la traduccióSuggeriments de traducció:Traducció — %sTraducció:No s’han pogut actualitzar les traduccions des del codi font perquè no s’ha trobat cap codi a la ubicació especificada a les propietats del catàleg.DosUTF-8 (recomanat)DesfésS’ha produït una excepció no controlada: %sUnix (recomanat)No traduïtActualitzaActualitza-ho totActualitza tots els catàlegs del projecteActualitza el catàleg - sincronitza'l amb les fontsActualitza des del POTActualitza resumActualitzacionsS’està actualitzant el catàlegL’actualització ha fallatHa fallat l'actualització del catàleg. Feu clic a 'Detalls >>' per a obtenir-ne més detalls.S’està actualitzant la informació de l’usuari…S’estan pujant les traduccions…Usa una expressió personalitzadaTipus de lletra personalitzat per a les llistes:Tipus de lletra personalitzat per als camps de text:Usa les regles per defecte en aquest idiomaUsa aquestes paraules clau (noms de funcions) per a reconèixer les cadenes traduïbles en els fitxers de codi font:Usa la memòria de traduccióValidaResultats de la validacióVersió %sS’està esperant l’autenticació…Us donem la benvinguda al PoeditQuè és el Crowdin?Quan actualitza de fontsNomés les paraules senceresFinestraWindowsEmbolcalla al voltantAjusta a:SíTambé pots extreure cadenes traduïbles directament del codi font:Heu de reiniciar el Poedit perquè aquest canvi tingui efecte.El vostre nomEls canvis es perdran si no els deseu.El vostre nom i adreça electrònica s’utilitzen només per a establir el valor de la capçalera «Last-Translator» als fitxers de GNU gettext.ZeroEscalaaltctrlno suprimeixis els fitxers temporals (per a la depuració)per exemple, nplurals=2; plural=(n > 1);incloure-hi per revisar a l'arxiugestiona un URI poedit://pretradueix des de l’MTmajidioma desconegutadreça@exemple.cat«%s» no és un fitxer POT vàlid.poedit-2.0.6/locales/poedit.pot0000664000372000037200000010451613230131554013362 00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the Poedit package. # FIRST AUTHOR , YEAR. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: Poedit 2.0.4\n" "Report-Msgid-Bugs-To: help@poedit.net\n" "POT-Creation-Date: 2017-12-05 15:52+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n" msgid "Hide this notification message" msgstr "" msgid "Don’t Show Again" msgstr "" msgid "Don’t show again" msgstr "" #, c-format msgid "(New: %i, obsolete: %i)" msgstr "" msgid "Updating catalog" msgstr "" msgid "Collecting source files…" msgstr "" msgid "Extracting translatable strings…" msgstr "" msgid "Failed to load extracted catalog." msgstr "" msgid "Merging differences…" msgstr "" #, c-format msgid "“%s” is not a valid POT file." msgstr "" #, c-format msgid "%i line of file “%s” was not loaded correctly." msgid_plural "%i lines of file “%s” were not loaded correctly." msgstr[0] "" msgstr[1] "" #, c-format msgid "Line %d of file “%s” is corrupted (not valid %s data)." msgstr "" #, c-format msgid "Malformed header: “%s”" msgstr "" msgid "" "Broken catalog file: singular form msgstr used together with msgid_plural" msgstr "" msgid "Broken catalog file: plural form msgstr used without msgid_plural" msgstr "" msgid "" "There were errors when loading the catalog. Some data may be missing or " "corrupted as the result." msgstr "" #, c-format msgid "Couldn’t load file %s, it is probably corrupted." msgstr "" #, c-format msgid "" "File “%s” is read-only and cannot be saved.\n" "Please save it under different name." msgstr "" #, c-format msgid "Couldn’t save file %s." msgstr "" msgid "" "There was a problem formatting the file nicely (but it was saved all right)." msgstr "" #, c-format msgid "" "The catalog couldn’t be saved in “%s” charset as specified in catalog " "settings.\n" "\n" "It was saved in UTF-8 instead and the setting was modified accordingly." msgstr "" msgid "Error saving catalog" msgstr "" msgid "PO Translation Files" msgstr "" msgid "POT Translation Templates" msgstr "" msgid "All Translation Files" msgstr "" msgid "(Use default language)" msgstr "" msgid "Select your preferred language" msgstr "" msgid "Language selection" msgstr "" msgid "You must restart Poedit for this change to take effect." msgstr "" msgid "Syncing" msgstr "" #. TRANSLATORS: %s is a cloud destination, e.g. "Crowdin" or ftp.wordpress.com etc. #, c-format msgid "Syncing with %s…" msgstr "" #. TRANSLATORS: %s is a cloud destination, e.g. "Crowdin" or ftp.wordpress.com etc. #, c-format msgid "Syncing with %s failed." msgstr "" msgid "Syncing error" msgstr "" msgid "Downloading translations is disabled in this project." msgstr "" msgid "Not authorized, please sign in again." msgstr "" msgid "" "Crowdin is an online localization management platform and collaborative " "translation tool. Poedit can seamlessly sync PO files managed at Crowdin." msgstr "" msgid "Sign In" msgstr "" msgid "Sign in" msgstr "" msgid "Sign Out" msgstr "" msgid "Sign out" msgstr "" msgid "Waiting for authentication…" msgstr "" msgid "Updating user information…" msgstr "" msgid "Signed in as:" msgstr "" msgid "Learn More About Crowdin" msgstr "" msgid "Learn more about Crowdin" msgstr "" msgid "Sign in to Crowdin" msgstr "" msgid "Open Crowdin translation" msgstr "" msgid "Project:" msgstr "" msgid "Language:" msgstr "" msgid "File:" msgstr "" msgid "No translation projects listed in your Crowdin account." msgstr "" msgid "This project has no files that can be translated in Poedit." msgstr "" msgid "This file can only be edited in Crowdin’s web interface." msgstr "" msgid "Downloading latest translations…" msgstr "" msgid "Syncing with Crowdin failed." msgstr "" msgid "Crowdin error" msgstr "" msgid "Uploading translations…" msgstr "" msgid "&Copy" msgstr "" msgid "Learn more" msgstr "" msgid "Learn More" msgstr "" msgid "&Help" msgstr "" msgid "MO files can’t be directly edited in Poedit." msgstr "" msgid "Error opening file" msgstr "" msgid "" "Please open and edit the corresponding PO file instead. When you save it, " "the MO file will be updated as well." msgstr "" msgid "don’t delete temporary files (for debugging)" msgstr "" msgid "handle a poedit:// URI" msgstr "" msgid "go to item at given line number" msgstr "" msgid "Failed to communicate with Poedit process." msgstr "" #, c-format msgid "Unhandled exception occurred: %s" msgstr "" msgid "Open catalog" msgstr "" #, c-format msgid "File “%s” doesn’t exist." msgstr "" msgid "Poedit is an easy to use translations editor." msgstr "" msgid "Catalogs Manager" msgstr "" msgid "Check for Updates…" msgstr "" msgid "&Edit" msgstr "" msgid "Undo" msgstr "" msgid "Redo" msgstr "" msgid "Paste and Match Style" msgstr "" msgid "Delete" msgstr "" msgid "Spelling and Grammar" msgstr "" msgid "Show Spelling and Grammar" msgstr "" msgid "Check Document Now" msgstr "" msgid "Check Spelling While Typing" msgstr "" msgid "Check Grammar With Spelling" msgstr "" msgid "Correct Spelling Automatically" msgstr "" msgid "Substitutions" msgstr "" msgid "Show Substitutions" msgstr "" msgid "Smart Copy/Paste" msgstr "" msgid "Smart Quotes" msgstr "" msgid "Smart Dashes" msgstr "" msgid "Smart Links" msgstr "" msgid "Text Replacement" msgstr "" msgid "Transformations" msgstr "" msgid "Make Upper Case" msgstr "" msgid "Make Lower Case" msgstr "" msgid "Capitalize" msgstr "" msgid "Speech" msgstr "" msgid "Start Speaking" msgstr "" msgid "Stop Speaking" msgstr "" msgid "&View" msgstr "" msgid "Enter Full Screen" msgstr "" msgid "Window" msgstr "" msgid "Minimize" msgstr "" msgid "Zoom" msgstr "" msgid "Bring All to Front" msgstr "" #. TRANSLATORS:File kind displayed in Finder/Explorer msgid "PO Translation" msgstr "" msgid "The file cannot be opened." msgstr "" msgid "Invalid file" msgstr "" msgid "" "The file may be either corrupted or in a format not recognized by Poedit." msgstr "" msgid "You can’t drop more than one file on Poedit window." msgstr "" #, c-format msgid "File “%s” is not a message catalog." msgstr "" msgid "Poedit" msgstr "" msgid "&File" msgstr "" msgid "&Go" msgstr "" #. TRANSLATORS: %s is language name in its basic form (as you #. would see e.g. in a list of supported languages). You may need #. to rephrase it, e.g. to an equivalent of "for language %s". #, c-format msgid "" "Spellchecking is disabled, because the dictionary for %s isn’t installed." msgstr "" msgid "Install" msgstr "" msgid "Catalog modified. Do you want to save changes?" msgstr "" msgid "Save changes" msgstr "" msgid "Your changes will be lost if you don’t save them." msgstr "" msgid "Save" msgstr "" msgid "Don’t save" msgstr "" msgid "Don’t Save" msgstr "" msgid "Save as…" msgstr "" msgid "Compile to…" msgstr "" msgid "Compiled Translation Files" msgstr "" msgid "Export as…" msgstr "" msgid "HTML Files" msgstr "" msgid "Open catalog template" msgstr "" msgid "Source code not available." msgstr "" msgid "Updating failed" msgstr "" msgid "" "Translations couldn’t be updated from the source code, because no code was " "found in the location specified in the catalog’s Properties." msgstr "" msgid "Entries in the catalog are probably incorrect." msgstr "" msgid "Updating the catalog failed. Click on 'Details >>' for details." msgstr "" #, c-format msgid "%d issue with the translation found." msgid_plural "%d issues with the translation found." msgstr[0] "" msgstr[1] "" msgid "Validation results" msgstr "" msgid "" "Entries with errors were marked in red in the list. Details of the error " "will be shown when you select such an entry." msgstr "" msgid "The file was saved safely." msgstr "" msgid "" "The file was saved safely and compiled into the MO format, but it will " "probably not work correctly." msgstr "" msgid "" "The file was saved safely, but it cannot be compiled into the MO format and " "used." msgstr "" msgid "" "The file was compiled into the MO format, but it will probably not work " "correctly." msgstr "" msgid "The file cannot be compiled into the MO format and used." msgstr "" msgid "No problems with the translation found." msgstr "" #, c-format msgid "The translation is ready for use, but %d entry is not translated yet." msgid_plural "" "The translation is ready for use, but %d entries are not translated yet." msgstr[0] "" msgstr[1] "" msgid "The translation is ready for use." msgstr "" #, c-format msgid "Poedit automatically fixed invalid content in the file “%s”." msgstr "" msgid "" "The file contained duplicate items, which is not allowed in PO files and " "would prevent the file from being used. Poedit fixed the issue, but you " "should review translations of any items marked as needing work and correct " "them if necessary." msgstr "" msgid "Language of the translation isn’t set." msgstr "" msgid "Set Language" msgstr "" msgid "Set language" msgstr "" #. TRANSLATORS: This is shown underneath "Language of the translation isn't set (or ...is the same as source language)." msgid "" "Suggestions are not available if the translation language is not set " "correctly. Other features, such as plural forms, may be affected as well." msgstr "" msgid "Language of the translation is the same as source language." msgstr "" msgid "Fix Language" msgstr "" msgid "Fix language" msgstr "" msgid "" "This catalog has entries with plural forms, but doesn’t have Plural-Forms " "header configured." msgstr "" msgid "" "Entries in this catalog have different plural forms count from what " "catalog’s Plural-Forms header says" msgstr "" msgid "Required header Plural-Forms is missing." msgstr "" #, c-format msgid "Syntax error in Plural-Forms header (\"%s\")." msgstr "" msgid "Fix the Header" msgstr "" msgid "Fix the header" msgstr "" #. TRANSLATORS: %s is language name in its basic form (as you #. would see e.g. in a list of supported languages). You may need #. to rephrase it, e.g. to an equivalent of "for language %s". #, c-format msgid "Plural forms expression used by the catalog is unusual for %s." msgstr "" #. TRANSLATORS: A verb, shown as action button with ""Plural forms expression used by the catalog is unusual for %s.")" msgid "Review" msgstr "" #, c-format msgid "Error loading message catalog file “%s”." msgstr "" #, c-format msgid "Translated: %d of %d (%d %%)" msgstr "" #, c-format msgid "Remaining: %d" msgstr "" #, c-format msgid "%d error" msgid_plural "%d errors" msgstr[0] "" msgstr[1] "" #, c-format msgid "%d entry" msgid_plural "%d entries" msgstr[0] "" msgstr[1] "" msgid " (unsaved)" msgstr "" msgid " (modified)" msgstr "" #, c-format msgid "Failed to update translation memory: %s" msgstr "" msgid "Purge deleted translations" msgstr "" msgid "Do you want to remove all translations that are no longer used?" msgstr "" msgid "" "If you continue with purging, all translations marked as deleted will be " "permanently removed. You will have to translate them again if they are added " "back in the future." msgstr "" msgid "Keep" msgstr "" msgid "Purge" msgstr "" msgid "Copy from source text" msgstr "" msgid "Copy from Source Text" msgstr "" #. TRANSLATORS: This is the key shortcut used in menus on Windows, some languages call them differently #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Ctrl+" msgstr "" msgid "Clear translation" msgstr "" msgid "Clear Translation" msgstr "" msgid "Edit comment" msgstr "" msgid "Edit Comment" msgstr "" msgid "References:" msgstr "" msgid "&Bookmarks" msgstr "" #. TRANSLATORS: This is the key shortcut used in menus on Windows, some languages call them differently #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Alt+" msgstr "" #, c-format msgid "Set bookmark %i" msgstr "" #, c-format msgid "Go to bookmark %i" msgstr "" #, c-format msgid "Set Bookmark %i" msgstr "" #, c-format msgid "Go to Bookmark %i" msgstr "" msgid "Hide Sidebar" msgstr "" msgid "Show Sidebar" msgstr "" msgid "Hide Status Bar" msgstr "" msgid "Show Status Bar" msgstr "" msgid "Source text:" msgstr "" msgid "Singular:" msgstr "" msgid "Plural:" msgstr "" msgid "Translation:" msgstr "" msgid "Pre-translated" msgstr "" msgid "Needs Work" msgstr "" #. TRANSLATORS: This indicates that the string's translation isn't final #. and has known problems. For example, it might be machine translated or #. fuzzy matched from an older string. The translation should be short and #. convey this. If it's problematic to translate it, "Needs review" is #. acceptable substitute, but note that the meaning is subtly different: #. "needs review" implies that somebody else should review the string after #. I am done with it (i.e. consider it good), while "needs work" implies I #. need to return to it and finish the translation. msgid "Needs work" msgstr "" msgid "" "POT files are only templates and don’t contain any translations themselves.\n" "To make a translation, create a new PO file based on the template." msgstr "" msgid "Create New Translation" msgstr "" msgid "Create new translation" msgstr "" msgid "Everything" msgstr "" #, c-format msgid "Form %i" msgstr "" msgid "Singular" msgstr "" msgid "Zero" msgstr "" msgid "One" msgstr "" msgid "Two" msgstr "" msgid "Plural" msgstr "" msgid "Other" msgstr "" #, c-format msgid "%s Format" msgstr "" #. TRANSLATORS: %s is replaced with language name, e.g. "PHP" or "C", so "PHP Format" etc." #, c-format msgid "%s format" msgstr "" msgid "Source text" msgstr "" #, c-format msgid "Translation — %s" msgstr "" msgid "ID" msgstr "" #, c-format msgid "Source text — %s" msgstr "" msgid "unknown language" msgstr "" #, c-format msgid "Failed command: %s" msgstr "" msgid "Failed to merge gettext catalogs." msgstr "" msgid "Source file" msgstr "" msgid "Source file occurrence:" msgstr "" msgid "Open in Editor" msgstr "" msgid "Open in editor" msgstr "" msgid "No references for the selected item." msgstr "" #, c-format msgid "Error opening file %s!" msgstr "" msgid "Find" msgstr "" msgid "Replace" msgstr "" #. TRANSLATORS: Expander in Find window for additional options (case sensitive etc.) msgid "Options" msgstr "" msgid "Ignore case" msgstr "" msgid "Wrap around" msgstr "" msgid "Whole words only" msgstr "" msgid "Find in source texts" msgstr "" msgid "Find in translations" msgstr "" msgid "Find in comments" msgstr "" msgid "Close" msgstr "" msgid "Replace &All" msgstr "" msgid "Replace &all" msgstr "" msgid "&Replace" msgstr "" msgid "< &Previous" msgstr "" msgid "&Next >" msgstr "" msgid "String to find" msgstr "" msgid "Replacement string" msgstr "" #, c-format msgid "Cannot execute program: %s" msgstr "" msgid "Language Code or Name (e.g. en_GB)" msgstr "" msgid "Translation Language" msgstr "" msgid "Language of the translation:" msgstr "" msgid "Poedit - Catalogs manager" msgstr "" msgid "Catalog" msgstr "" msgid "Total" msgstr "" msgid "Untrans" msgstr "" msgid "Errors" msgstr "" msgid "Last modified" msgstr "" msgid "Select directory" msgstr "" msgid "Directories:" msgstr "" msgid "" msgstr "" msgid "Do you want to delete the project?" msgstr "" msgid "Confirmation" msgstr "" msgid "" "Do you really want to do mass update of\n" "all catalogs in this project?" msgstr "" msgid "Information about the translator" msgstr "" msgid "Name:" msgstr "" msgid "Your Name" msgstr "" msgid "Email:" msgstr "" msgid "your_email@example.com" msgstr "" msgid "" "Your name and email address are only used to set the Last-Translator header " "of GNU gettext files." msgstr "" msgid "Editing" msgstr "" msgid "Automatically compile MO file when saving" msgstr "" msgid "Show summary after catalog update" msgstr "" msgid "Check spelling" msgstr "" msgid "Always change focus to text input field" msgstr "" msgid "" "Never let the list of strings take focus. If enabled, you must use Ctrl-" "arrows for keyboard navigation but you can also type text immediately, " "without having to press Tab to change focus." msgstr "" msgid "Appearance" msgstr "" msgid "Use custom list font:" msgstr "" msgid "Use custom text fields font:" msgstr "" msgid "Change UI language" msgstr "" #. TRANSLATORS: This is a note appended to "Check spelling" when running on older Windows versions msgid "(requires Windows 8 or newer)" msgstr "" msgid "General" msgstr "" msgid "Use translation memory" msgstr "" msgid "Learn From Files…" msgstr "" msgid "Learn from files…" msgstr "" #. TRANSLATORS: This is a button that deletes everything in the translation memory (i.e. clears/resets it). msgid "Reset" msgstr "" #. TRANSLATORS: Followed by "match translations within the file" or "pre-translate from TM" msgid "When updating from sources" msgstr "" #. TRANSLATORS: Preceded by "When updating from sources" msgid "fuzzy match within the file" msgstr "" #. TRANSLATORS: Preceded by "When updating from sources" msgid "pre-translate from TM" msgstr "" msgid "" "Poedit can attempt to fill in new entries from only previous translations in " "the file or from your entire translation memory. Using the TM won’t be very " "effective if it’s near-empty, but it will get better as you add more " "translations to it." msgstr "" msgid "Stored translations:" msgstr "" msgid "Database size on disk:" msgstr "" msgid "Select translation files to import" msgstr "" msgid "Translation Memory" msgstr "" msgid "Importing translations…" msgstr "" msgid "Finalizing…" msgstr "" msgid "Reset translation memory" msgstr "" msgid "Are you sure you want to reset the translation memory?" msgstr "" msgid "" "Resetting the translation memory will irrevocably delete all stored " "translations from it. You can’t undo this operation." msgstr "" msgid "Cancel" msgstr "" #. TRANSLATORS: This is abbreviation of "Translation Memory" used in Preferences on macOS. #. Long text looks weird there, too short (like TM) too, but less so. "General" is about ideal #. length there. msgid "TM" msgstr "" msgid "" "Source code extractors are used to find translatable strings in the source " "code files and extract them so that they can be translated." msgstr "" msgid "Custom Extractors:" msgstr "" msgid "Custom extractors:" msgstr "" msgid "Edit…" msgstr "" msgid "GNU gettext" msgstr "" msgid "" "Supports all programming languages recognized by GNU gettext tools (PHP, C/C+" "+, C#, Perl, Python, Java, JavaScript and others)." msgstr "" msgid "Delete extractor" msgstr "" #, c-format msgid "Are you sure you want to delete the “%s” extractor?" msgstr "" msgid "Extractors" msgstr "" msgid "Accounts" msgstr "" msgid "Automatically check for updates" msgstr "" msgid "Include beta versions" msgstr "" msgid "" "Beta versions contain the latest new features and improvements, but may be a " "bit less stable." msgstr "" msgid "Updates" msgstr "" msgid "" "These settings affect internal formatting of PO files. Adjust them if you " "have specific requirements e.g. because of version control." msgstr "" msgid "Line endings:" msgstr "" msgid "Unix (recommended)" msgstr "" msgid "Windows" msgstr "" #. TRANSLATORS: Followed by text control for entering number; wraps text at given width msgid "Wrap at:" msgstr "" msgid "Preserve formatting of existing files" msgstr "" msgid "Advanced" msgstr "" msgid "Pre-translating…" msgstr "" #, c-format msgid "Pre-translated %u string" msgid_plural "Pre-translated %u strings" msgstr[0] "" msgstr[1] "" #. TRANSLATORS: This is a somewhat common term describing the action where #. you apply the translation memory and/or machine translation to all of the #. strings you're translating as the first step, followed by correcting, #. improving etc., i.e. actually translating the strings. This may be tricky #. to express in other languages as simply as in English, but please try to #. keep it similarly concise. Please try to avoid, if possible, describing it #. as "auto-translation" and similar, because such terminology would mislead #. some users into thinking it's all that needs to be done (spoken from #. experience). "Pre-translate" nicely expresses that it's only the step done #. *before* actual translation. msgid "Pre-translate" msgstr "" msgid "Only fill in exact matches" msgstr "" msgid "" "By default, inaccurate results are filled in as well and marked as needing " "work. Check this option to only include accurate matches." msgstr "" msgid "Don’t mark exact matches as needing work" msgstr "" msgid "" "Only enable if you trust the quality of your TM. By default, all matches " "from the TM are marked as needing work and should be reviewed before use." msgstr "" msgid "" "Pre-translation automatically finds exact or fuzzy matches for untranslated " "strings in the translation memory and fills in their translations." msgstr "" #, c-format msgid "%d entry was pre-translated." msgid_plural "%d entries were pre-translated." msgstr[0] "" msgstr[1] "" msgid "" "The translations were marked as needing work, because they may be " "inaccurate. You should review them for correctness." msgstr "" msgid "No entries could be pre-translated." msgstr "" msgid "" "The TM doesn’t contain any strings similar to the content of this file. It " "is only effective for semi-automatic translations after Poedit learns enough " "from files that you translated manually." msgstr "" msgid "" "Drag and Drop Folders Here\n" "\n" "or use the + button" msgstr "" msgid "" "Drag and drop folders here\n" "\n" "or use the + button" msgstr "" msgid "Add Folders…" msgstr "" msgid "Add folders…" msgstr "" msgid "Add Files…" msgstr "" msgid "Add files…" msgstr "" msgid "Add Wildcard…" msgstr "" msgid "Add wildcard…" msgstr "" msgid "Paths" msgstr "" msgid "Excluded paths" msgstr "" msgid "Advanced extraction settings" msgstr "" msgid "Extract notes for translators from:" msgstr "" msgid "Comments prefixed with:" msgstr "" msgid "All comments" msgstr "" msgid "Additional xgettext flags:" msgstr "" msgid "Additional keywords" msgstr "" msgid "Name of the project the translation is for" msgstr "" msgid "Team name and email address or URL" msgstr "" msgid "e.g. nplurals=2; plural=(n > 1);" msgstr "" msgid "UTF-8 (recommended)" msgstr "" msgid "Please save the file first. This section cannot be edited until then." msgstr "" msgid "Not all plural forms are translated." msgstr "" msgid "The translation should start as a sentence." msgstr "" msgid "The translation should start with a lowercase character." msgstr "" msgid "The translation doesn’t start with a space." msgstr "" msgid "The translation starts with a space, but the source text doesn’t." msgstr "" msgid "The translation is missing a newline at the end." msgstr "" msgid "The translation ends with a newline, but the source text doesn’t." msgstr "" msgid "The translation is missing a space at the end." msgstr "" msgid "The translation ends with a space, but the source text doesn’t." msgstr "" #, c-format msgid "The translation should end with “%s”." msgstr "" #, c-format msgid "The translation should not end with “%s”." msgstr "" #, c-format msgid "The translation ends with “%s”, but the source text ends with “%s”." msgstr "" msgid "Comment:" msgstr "" msgid "OK" msgstr "" msgid "C&lear" msgstr "" msgid "Clear the comment" msgstr "" msgid "New" msgstr "" msgid "Create new translations project" msgstr "" msgid "Edit" msgstr "" msgid "Edit the project" msgstr "" msgid "Delete the project" msgstr "" msgid "Update all" msgstr "" msgid "Update all catalogs in the project" msgstr "" msgid "Edit project" msgstr "" msgid "Project name:" msgstr "" msgid "Browse" msgstr "" msgid "Add directory to the list" msgstr "" msgid "&New…" msgstr "" msgid "New from &POT/PO file…" msgstr "" msgid "New From &POT/PO File…" msgstr "" msgid "&Open…" msgstr "" msgid "Open Recent" msgstr "" msgid "Open from Crowdin…" msgstr "" msgid "Open From Crowdin…" msgstr "" msgid "&Close" msgstr "" msgid "&Save" msgstr "" msgid "Save &as…" msgstr "" msgid "Save &As…" msgstr "" msgid "Compile to MO…" msgstr "" msgid "E&xport as HTML…" msgstr "" msgid "Check for updates…" msgstr "" msgid "&Preferences…" msgstr "" msgid "Catalogs &manager" msgstr "" msgid "Catalogs &Manager" msgstr "" msgid "E&xit" msgstr "" msgid "Quit" msgstr "" msgid "Copy from singular" msgstr "" msgid "Copy From Singular" msgstr "" msgid "Translation needs &work" msgstr "" msgid "Translation Needs &Work" msgstr "" msgid "Edit &comment" msgstr "" msgid "Edit &Comment" msgstr "" msgid "Suggestions" msgstr "" msgid "&Find…" msgstr "" msgid "Replace…" msgstr "" msgid "Find next" msgstr "" msgid "Find previous" msgstr "" msgid "Find and Replace…" msgstr "" msgid "Find Next" msgstr "" msgid "Find Previous" msgstr "" msgid "&Preferences" msgstr "" msgid "Display entry &IDs" msgstr "" msgid "Display Entry &IDs" msgstr "" msgid "Sort by &file order" msgstr "" msgid "Sort by &File Order" msgstr "" msgid "Sort by &source" msgstr "" msgid "Sort by &Source" msgstr "" msgid "Sort by &translation" msgstr "" msgid "Sort by &Translation" msgstr "" msgid "&Group by context" msgstr "" msgid "&Group By Context" msgstr "" msgid "Entries with errors first" msgstr "" msgid "Entries with Errors First" msgstr "" msgid "&Untranslated entries first" msgstr "" msgid "&Untranslated Entries First" msgstr "" msgid "&Show references" msgstr "" msgid "&Show References" msgstr "" msgid "Show sidebar" msgstr "" msgid "Show status bar" msgstr "" msgid "C&atalog" msgstr "" msgid "&Update from sources" msgstr "" msgid "&Update from Sources" msgstr "" msgid "Update from &POT file…" msgstr "" msgid "Update from &POT File…" msgstr "" msgid "Sync with Crowdin" msgstr "" msgid "Pre-&translate…" msgstr "" msgid "&Purge deleted translations" msgstr "" msgid "&Purge Deleted Translations" msgstr "" msgid "&Validate translations" msgstr "" msgid "&Validate Translations" msgstr "" msgid "&Properties…" msgstr "" msgid "&Done and next" msgstr "" msgid "&Done and Next" msgstr "" msgid "&Previous translation" msgstr "" msgid "&Previous Translation" msgstr "" msgid "&Next translation" msgstr "" msgid "&Next Translation" msgstr "" msgid "P&revious unfinished" msgstr "" msgid "P&revious Unfinished" msgstr "" msgid "Ne&xt unfinished" msgstr "" msgid "Ne&xt Unfinished" msgstr "" msgid "Previous plural form" msgstr "" msgid "Previous Plural Form" msgstr "" msgid "Next plural form" msgstr "" msgid "Next Plural Form" msgstr "" msgid "&Online help" msgstr "" msgid "&Online Help" msgstr "" msgid "&GNU gettext manual" msgstr "" msgid "&GNU gettext Manual" msgstr "" msgid "&About Poedit" msgstr "" msgid "&About" msgstr "" msgid "Extractor setup" msgstr "" msgid "List of extensions separated by semicolons (e.g. *.cpp;*.h):" msgstr "" msgid "Invocation:" msgstr "" msgid "Command to extract translations:" msgstr "" msgid "" "This is the command used to launch the extractor.\n" "%o expands to the name of output file, %K to list\n" "of keywords, %F to list of input files,\n" "%C to charset flag (see below)." msgstr "" msgid "An item in keywords list:" msgstr "" msgid "" "This will be attached to the command line once\n" "for each keyword. %k expands to the keyword." msgstr "" msgid "An item in input files list:" msgstr "" #, c-format msgid "" "This will be attached to the command line once\n" "for each input file. %f expands to the filename." msgstr "" msgid "Source code charset:" msgstr "" #, c-format msgid "" "This will be attached to the command line\n" "only if source code charset was given. %c expands to charset value." msgstr "" msgid "Catalog properties" msgstr "" msgid "Project name and version:" msgstr "" msgid "Language team:" msgstr "" msgid "Plural forms:" msgstr "" msgid "Use default rules for this language" msgstr "" msgid "Use custom expression" msgstr "" msgid "Learn about plural forms" msgstr "" msgid "Charset:" msgstr "" msgid "Advanced Extraction Settings…" msgstr "" msgid "Advanced extraction settings…" msgstr "" msgid "Translation Properties" msgstr "" msgid "Translation properties" msgstr "" msgid "Sources Paths" msgstr "" msgid "Sources paths" msgstr "" msgid "Extract text from source files in the following directories:" msgstr "" msgid "Base path:" msgstr "" msgid "Sources Keywords" msgstr "" msgid "Sources keywords" msgstr "" msgid "" "Use these keywords (function names) to recognize translatable strings\n" "in source files:" msgstr "" msgid "Also use default keywords for supported languages" msgstr "" msgid "Learn About Gettext Keywords" msgstr "" msgid "Learn about gettext keywords" msgstr "" msgid "Update summary" msgstr "" msgid "" "These strings were found in the sources but were not in the catalog.\n" "Poedit will add them to the catalog now." msgstr "" msgid "New strings" msgstr "" msgid "" "These strings are no longer in the sources.\n" "Poedit will remove them from the catalog now." msgstr "" msgid "Obsolete strings" msgstr "" msgid "(0 new, 0 obsolete)" msgstr "" msgid "Open" msgstr "" msgid "Save catalog" msgstr "" msgid "Validate" msgstr "" msgid "Check for errors in the translation" msgstr "" msgid "Update" msgstr "" msgid "Update catalog - synchronize it with sources" msgstr "" msgid "Sidebar" msgstr "" msgid "Show or hide the sidebar" msgstr "" #. TRANSLATORS: "Previous" as in used in the past, now replaced with newer. msgid "Previous source text:" msgstr "" msgid "" "The old source text (before it changed during an update) that the now-" "inaccurate translation corresponds to." msgstr "" msgid "Notes for translators:" msgstr "" msgid "Add comment" msgstr "" msgid "Add Comment" msgstr "" msgid "Translation suggestions:" msgstr "" #. TRANSLATORS: This is shown when no translation suggestions can be found in the TM (Windows). msgid "No matches found" msgstr "" #. TRANSLATORS: This is shown when no translation suggestions can be found in the TM (macOS, Linux). msgid "No Matches Found" msgstr "" msgid "This string was found in Poedit’s translation memory." msgstr "" msgid "Cannot create temporary directory." msgstr "" msgid "Welcome to Poedit" msgstr "" #. TRANSLATORS: This is version information in about dialog, "%s" will be #. version number when used #, c-format msgid "Version %s" msgstr "" msgid "Edit a Translation" msgstr "" msgid "Edit a translation" msgstr "" msgid "Open an existing PO file and edit the translation." msgstr "" msgid "" "Take an existing PO file or POT template and create a new translation from " "it." msgstr "" msgid "Collaborate on a Translation with Others" msgstr "" msgid "Collaborate on a translation with others" msgstr "" msgid "" "Download a file from Crowdin project, translate and sync your changes back." msgstr "" msgid "What is Crowdin?" msgstr "" msgid "There are no translations. That’s unusual." msgstr "" msgid "" "Translatable entries aren’t added manually in the Gettext system, but are " "automatically extracted\n" "from source code. This way, they stay up to date and accurate.\n" "Translators typically use PO template files (POTs) prepared for them by the " "developer." msgstr "" msgid "(Learn more about GNU gettext)" msgstr "" msgid "The simplest way to fill this catalog is to update it from a POT:" msgstr "" msgid "Update from POT" msgstr "" msgid "Take translatable strings from an existing POT template." msgstr "" msgid "" "You can also extract translatable strings directly from the source code:" msgstr "" msgid "Extract from sources" msgstr "" msgid "Configure source code extraction in Properties." msgstr "" msgid "Sync" msgstr "" msgid "Synchronize the translation with Crowdin" msgstr "" #. TRANSLATORS: This is titlebar of about dialog, "%s" is application name #. ("Poedit" here, but please use "%s") #, c-format msgid "About %s" msgstr "" #. TRANSLATORS: Title of the preferences window on Windows and Linux. "%s" is replaced with "Poedit" when running. #, c-format msgid "%s Preferences" msgstr "" #. TRANSLATORS: macOS item in app menu msgid "Services" msgstr "" #. TRANSLATORS: macOS item in app menu, %s is replaced with "Poedit" #, c-format msgid "Hide %s" msgstr "" #. TRANSLATORS: macOS item in app menu msgid "Hide Others" msgstr "" #. TRANSLATORS: macOS item in app menu msgid "Show All" msgstr "" #. TRANSLATORS: macOS item in app menu, %s is replaced with "Poedit" #, c-format msgid "Quit %s" msgstr "" #. TRANSLATORS: macOS item in app menu msgid "Preferences…" msgstr "" msgid "Preferences..." msgstr "" #. TRANSLATORS: Title of a category in Windows task menu (right-click icon in taskbar) msgid "Recent" msgstr "" #. TRANSLATORS: Title of a category in Windows task menu (right-click icon in taskbar) msgid "Frequent" msgstr "" msgid "&Apply" msgstr "" msgid "Apply" msgstr "" msgid "&Back" msgstr "" msgid "Back" msgstr "" msgid "&Cancel" msgstr "" msgid "&Clear" msgstr "" msgid "Clear" msgstr "" msgid "Copy" msgstr "" msgid "Cu&t" msgstr "" msgid "Cut" msgstr "" msgid "&Delete" msgstr "" msgid "&Quit" msgstr "" msgid "File" msgstr "" msgid "Help" msgstr "" msgid "&New" msgstr "" msgid "&No" msgstr "" msgid "No" msgstr "" msgid "&OK" msgstr "" msgid "Open…" msgstr "" msgid "&Open..." msgstr "" msgid "Open..." msgstr "" msgid "&Paste" msgstr "" msgid "Paste" msgstr "" msgid "Preferences" msgstr "" msgid "&Redo" msgstr "" msgid "Refresh" msgstr "" msgid "&Save as" msgstr "" msgid "Save as" msgstr "" msgid "Select &All" msgstr "" msgid "Select All" msgstr "" msgid "&Undo" msgstr "" msgid "&Yes" msgstr "" msgid "Yes" msgstr "" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Shift+" msgstr "" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Enter" msgstr "" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Up" msgstr "" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Down" msgstr "" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Left" msgstr "" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Right" msgstr "" #. TRANSLATORS: Keyboard shortcut, must correspond to translation of "Ctrl+" msgid "ctrl" msgstr "" #. TRANSLATORS: Keyboard shortcut, must correspond to translation of "Alt+" msgid "alt" msgstr "" #. TRANSLATORS: Keyboard shortcut, must correspond to translation of "Shift+" msgid "shift" msgstr "" poedit-2.0.6/locales/an.po0000664000372000037200000014572313230132075012314 00000000000000msgid "" msgstr "" "Project-Id-Version: poedit\n" "Report-Msgid-Bugs-To: help@poedit.net\n" "POT-Creation-Date: 2017-12-05 15:52+0100\n" "PO-Revision-Date: 2017-12-05 09:51-0500\n" "Last-Translator: vslavik \n" "Language-Team: Aragonese\n" "Language: an_ES\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: crowdin.com\n" "X-Crowdin-Project: poedit\n" "X-Crowdin-Language: an\n" "X-Crowdin-File: /locales/poedit.pot\n" msgid "Hide this notification message" msgstr "Amagar iste mensache de notificación" msgid "Don’t Show Again" msgstr "No tornar a amostrar-lo" msgid "Don’t show again" msgstr "No tornar a amostrar-lo" #, c-format msgid "(New: %i, obsolete: %i)" msgstr "(Nuevas: %i, obsoletas: %i)" msgid "Updating catalog" msgstr "Se ye esviellando lo catalogo" msgid "Collecting source files…" msgstr "" msgid "Extracting translatable strings…" msgstr "" msgid "Failed to load extracted catalog." msgstr "S'ha produciu una error en cargar catalogos extraitos." msgid "Merging differences…" msgstr "" #, c-format msgid "“%s” is not a valid POT file." msgstr "" #, c-format msgid "%i line of file “%s” was not loaded correctly." msgid_plural "%i lines of file “%s” were not loaded correctly." msgstr[0] "" msgstr[1] "" #, c-format msgid "Line %d of file “%s” is corrupted (not valid %s data)." msgstr "" #, c-format msgid "Malformed header: “%s”" msgstr "" msgid "" "Broken catalog file: singular form msgstr used together with msgid_plural" msgstr "" "Fichero de catalogo corrupto: forma singular de msgstr usada de conchunta " "con msgid_plural" msgid "Broken catalog file: plural form msgstr used without msgid_plural" msgstr "" "Fichero de catalogo corrupto: forma plural de msgstr sin usar msgid_plural" msgid "" "There were errors when loading the catalog. Some data may be missing or " "corrupted as the result." msgstr "" "S'ha produciu errors en leyer o catalogo. Puet que qualques datos se troben " "danyaus u ausents." #, c-format msgid "Couldn’t load file %s, it is probably corrupted." msgstr "" #, c-format msgid "" "File “%s” is read-only and cannot be saved.\n" "Please save it under different name." msgstr "" #, c-format msgid "Couldn’t save file %s." msgstr "" msgid "" "There was a problem formatting the file nicely (but it was saved all right)." msgstr "" "S'ha produciu un problema en dar formato correctament a lo fichero (pero ye " "estau bien alzau)." #, c-format msgid "" "The catalog couldn’t be saved in “%s” charset as specified in catalog " "settings.\n" "\n" "It was saved in UTF-8 instead and the setting was modified accordingly." msgstr "" msgid "Error saving catalog" msgstr "S'ha produciu una error en alzar o catalogo" msgid "PO Translation Files" msgstr "Fichers de traducción PO" msgid "POT Translation Templates" msgstr "Plantiellas de traducción POT" msgid "All Translation Files" msgstr "Totz os fichers de traducción" msgid "(Use default language)" msgstr "(Fer servir a luenga por defecto)" msgid "Select your preferred language" msgstr "Seleccionar a luenga preferida" msgid "Language selection" msgstr "Selección de luenga" msgid "You must restart Poedit for this change to take effect." msgstr "Cal reenchegar o Poedit ta que os cambeos tiengan efecto." msgid "Syncing" msgstr "" #. TRANSLATORS: %s is a cloud destination, e.g. "Crowdin" or ftp.wordpress.com etc. #, c-format msgid "Syncing with %s…" msgstr "" #. TRANSLATORS: %s is a cloud destination, e.g. "Crowdin" or ftp.wordpress.com etc. #, c-format msgid "Syncing with %s failed." msgstr "" msgid "Syncing error" msgstr "" msgid "Downloading translations is disabled in this project." msgstr "A descarga de traduccions ye desactivada en iste prochecto." msgid "Not authorized, please sign in again." msgstr "No ye autorizau, encieta la sesión de nuevas." msgid "" "Crowdin is an online localization management platform and collaborative " "translation tool. Poedit can seamlessly sync PO files managed at Crowdin." msgstr "" "O Crowdin ye una plataforma de chestión de localizacions en linia y una " "ferramienta colaborativa de traducción. O Poedit puet sincronizar sin " "problema os fichers PO chestionaus en o Crowdin." msgid "Sign In" msgstr "Encetar a sesión" msgid "Sign in" msgstr "Encetar a sesión" msgid "Sign Out" msgstr "Zarrar a sesión" msgid "Sign out" msgstr "Zarrar a sesión" msgid "Waiting for authentication…" msgstr "Se ye asperando l'autenticación…" msgid "Updating user information…" msgstr "Se ye esviellando a información de l'usuario…" msgid "Signed in as:" msgstr "A sesión ye encetada como:" msgid "Learn More About Crowdin" msgstr "Aprender mas arredol d'o Crowdin" msgid "Learn more about Crowdin" msgstr "Aprender mas arredol d'o Crowdin" msgid "Sign in to Crowdin" msgstr "Encetar a sesión en o Crowdin." msgid "Open Crowdin translation" msgstr "Ubrir una traducción d'o Crowdin" msgid "Project:" msgstr "Prochecto:" msgid "Language:" msgstr "Luenga:" msgid "File:" msgstr "Fichero:" msgid "No translation projects listed in your Crowdin account." msgstr "" "No bi ha prochectos de traducción listaus en a tuya cuenta d'o Crowdin." msgid "This project has no files that can be translated in Poedit." msgstr "Iste prochecto no tien fichers que se pueda traducir en o Poedit." msgid "This file can only be edited in Crowdin’s web interface." msgstr "Iste fichero nomás puet editar-se en a interficie web d'o Crowdin." msgid "Downloading latest translations…" msgstr "Se ye baixando as zagueras traduccions…" msgid "Syncing with Crowdin failed." msgstr "A sincronización con o Crowdin ha fallau." msgid "Crowdin error" msgstr "S'ha produciu una error d'o Crowdin" msgid "Uploading translations…" msgstr "Se ye puyando as traduccions…" msgid "&Copy" msgstr "&Copiar" msgid "Learn more" msgstr "Aprender-ne más" msgid "Learn More" msgstr "Aprender-ne más" msgid "&Help" msgstr "&Aduya" msgid "MO files can’t be directly edited in Poedit." msgstr "Os fichers MO no se pueden editar dreitament en o Poedit." msgid "Error opening file" msgstr "S'ha produciu una error ubrindo lo fichero" msgid "" "Please open and edit the corresponding PO file instead. When you save it, " "the MO file will be updated as well." msgstr "" "En cuenta ubre y edita o fichero PO correspondient. En que l'alces o fichero " "MO s'esviellará tamién." msgid "don’t delete temporary files (for debugging)" msgstr "" msgid "handle a poedit:// URI" msgstr "maniar un poedit:// URI" msgid "go to item at given line number" msgstr "" msgid "Failed to communicate with Poedit process." msgstr "Ha fallau en comunicar-se con o proceso d'o Poedit." #, c-format msgid "Unhandled exception occurred: %s" msgstr "S'ha produciu una error no maniada: %s" msgid "Open catalog" msgstr "Ubrir un catalogo" #, c-format msgid "File “%s” doesn’t exist." msgstr "" msgid "Poedit is an easy to use translations editor." msgstr "Poedit ye un editor de traduccions d'uso facil." msgid "Catalogs Manager" msgstr "Chestor de catalogos" msgid "Check for Updates…" msgstr "" msgid "&Edit" msgstr "&Edición" msgid "Undo" msgstr "Desfer" msgid "Redo" msgstr "Refer" msgid "Paste and Match Style" msgstr "Apegar con o mesmo estilo" msgid "Delete" msgstr "Borrar" msgid "Spelling and Grammar" msgstr "Ortografía y gramatica" msgid "Show Spelling and Grammar" msgstr "Amostrar a ortografía y a gramatica" msgid "Check Document Now" msgstr "Comprebar o documento agora" msgid "Check Spelling While Typing" msgstr "Comprebar a ortografía en escribir" msgid "Check Grammar With Spelling" msgstr "Comprebar a gramatica con a ortografía" msgid "Correct Spelling Automatically" msgstr "Correchir automaticament a ortografía" msgid "Substitutions" msgstr "Substitucions" msgid "Show Substitutions" msgstr "Amostrar as substitucions" msgid "Smart Copy/Paste" msgstr "Copiau y apegau intelichent" msgid "Smart Quotes" msgstr "Cometas intelichents" msgid "Smart Dashes" msgstr "Guions intelichents" msgid "Smart Links" msgstr "Vinclos intelichents" msgid "Text Replacement" msgstr "Substitución de texto" msgid "Transformations" msgstr "Transformacions" msgid "Make Upper Case" msgstr "Convertir en mayusclas" msgid "Make Lower Case" msgstr "Convertir en minusclas" msgid "Capitalize" msgstr "Meter en mayusclas" msgid "Speech" msgstr "Voz" msgid "Start Speaking" msgstr "Rancar a voz" msgid "Stop Speaking" msgstr "Aturar a voz" msgid "&View" msgstr "&Veyer" msgid "Enter Full Screen" msgstr "Dentrar ta pantalla completa" msgid "Window" msgstr "Finestra" msgid "Minimize" msgstr "Minimizar" msgid "Zoom" msgstr "Enamplar" msgid "Bring All to Front" msgstr "Trayer-ne tot t'o frent" #. TRANSLATORS:File kind displayed in Finder/Explorer msgid "PO Translation" msgstr "Traducción PO" msgid "The file cannot be opened." msgstr "No se puet ubrir o fichero." msgid "Invalid file" msgstr "Fichero invaliu" msgid "" "The file may be either corrupted or in a format not recognized by Poedit." msgstr "" "O fichero puet estar danyau u en un formato no reconoixiu por o Poedit." msgid "You can’t drop more than one file on Poedit window." msgstr "" #, c-format msgid "File “%s” is not a message catalog." msgstr "" msgid "Poedit" msgstr "Poedit" msgid "&File" msgstr "&Fichero" msgid "&Go" msgstr "&Ir" #. TRANSLATORS: %s is language name in its basic form (as you #. would see e.g. in a list of supported languages). You may need #. to rephrase it, e.g. to an equivalent of "for language %s". #, c-format msgid "" "Spellchecking is disabled, because the dictionary for %s isn’t installed." msgstr "" "S'ha desactivau a revisión ortografica porque falta o diccionario pa %s." msgid "Install" msgstr "Instalar" msgid "Catalog modified. Do you want to save changes?" msgstr "Catalogo modificau. Quiers alzar os cambios?" msgid "Save changes" msgstr "Alzar os cambios" msgid "Your changes will be lost if you don’t save them." msgstr "" msgid "Save" msgstr "Alzar" msgid "Don’t save" msgstr "" msgid "Don’t Save" msgstr "" msgid "Save as…" msgstr "" msgid "Compile to…" msgstr "" msgid "Compiled Translation Files" msgstr "Fichers de traducción compilaus" msgid "Export as…" msgstr "" msgid "HTML Files" msgstr "Fichers HTML" msgid "Open catalog template" msgstr "Ubrir una plantilla de catalogo" msgid "Source code not available." msgstr "O codigo fuent no ye disponible." msgid "Updating failed" msgstr "L'actualización ha fallau" msgid "" "Translations couldn’t be updated from the source code, because no code was " "found in the location specified in the catalog’s Properties." msgstr "" "No s'ha puesto esviellar as traduccions a partir d'o codigo fuent porque no " "s'ha trobau o codigo en a ubicación especificada en as propiedatz d'o " "catalogo." msgid "Entries in the catalog are probably incorrect." msgstr "Prebablement, qualques textos d'o catalogo son incorrectos." msgid "Updating the catalog failed. Click on 'Details >>' for details." msgstr "" "L'actualización d'o catalogo ha fallau. Preta en Detalles>> pa mas " "información." #, c-format msgid "%d issue with the translation found." msgid_plural "%d issues with the translation found." msgstr[0] "%d problema trobau en a traducción." msgstr[1] "%d problemas trobaus en a traducción." msgid "Validation results" msgstr "Resultaus d'a validación" msgid "" "Entries with errors were marked in red in the list. Details of the error " "will be shown when you select such an entry." msgstr "" "As dentradas con errors s'han marcau en royo en a lista. S'amostrarán os " "detalles d'a error quan selecciones a dentrada." msgid "The file was saved safely." msgstr "O fichero s'ha alzau de traza segura." msgid "" "The file was saved safely and compiled into the MO format, but it will " "probably not work correctly." msgstr "" "O fichero s'ha alzau de traza segura y s'ha compilau t'o formato MO pero " "prebablement no marche correctament." msgid "" "The file was saved safely, but it cannot be compiled into the MO format and " "used." msgstr "" "O fichero s'ha alzau pero no puet compilar-se t'o formato MO ni usar-se." msgid "" "The file was compiled into the MO format, but it will probably not work " "correctly." msgstr "" "O fichero s'ha compilau t'o formato MO pero prebablement no funcionará " "correctament." msgid "The file cannot be compiled into the MO format and used." msgstr "O fichero no se puet compilar t'o formato MO pa emplegar-se." msgid "No problems with the translation found." msgstr "No se troba problemas en ista traducción." #, c-format msgid "The translation is ready for use, but %d entry is not translated yet." msgid_plural "" "The translation is ready for use, but %d entries are not translated yet." msgstr[0] "" "A traducción ye presta pa usar-se, pero %d dentrada ye encara sin traducir." msgstr[1] "" "A traducción ye presta pa usar-se, pero %d dentradas son encara sin traducir." msgid "The translation is ready for use." msgstr "A traducción ye presta pa usar-se." #, c-format msgid "Poedit automatically fixed invalid content in the file “%s”." msgstr "" "O Poedit ha apanyau automaticament conteniu invalido en o fichero “%s”." msgid "" "The file contained duplicate items, which is not allowed in PO files and " "would prevent the file from being used. Poedit fixed the issue, but you " "should review translations of any items marked as needing work and correct " "them if necessary." msgstr "" "O fichero conteneba elementos duplicaus, ixo not ye permitiu en os fichers " "PO y empacharía que se fese servir o fichero. O Poedit ha apanyau o problema " "pero s'ha a revisar as traduccions de qualsiquier elemento marcau como que " "le fa falta treballo y correchir-lo si ye menister." msgid "Language of the translation isn’t set." msgstr "" msgid "Set Language" msgstr "Establir l'idioma" msgid "Set language" msgstr "Establir l'idioma" #. TRANSLATORS: This is shown underneath "Language of the translation isn't set (or ...is the same as source language)." msgid "" "Suggestions are not available if the translation language is not set " "correctly. Other features, such as plural forms, may be affected as well." msgstr "" "As sucherencias no son disponibles si l'idioma de traducción no ye " "correctament establiu. Atras caracteristicas, tals como as formas plurals, " "tamién pueden veyer-sen afectadas." msgid "Language of the translation is the same as source language." msgstr "L'idioma d'a traducción ye o mesmo que l'idioma d'orichen." msgid "Fix Language" msgstr "Apanyar l'idioma" msgid "Fix language" msgstr "Apanyar l'idioma" msgid "" "This catalog has entries with plural forms, but doesn’t have Plural-Forms " "header configured." msgstr "" msgid "" "Entries in this catalog have different plural forms count from what " "catalog’s Plural-Forms header says" msgstr "" msgid "Required header Plural-Forms is missing." msgstr "Falta o capitero de formas plurals requiesto." #, c-format msgid "Syntax error in Plural-Forms header (\"%s\")." msgstr "Bi ha una error sintactica en as formas plurals d'o capitero (\"%s\")." msgid "Fix the Header" msgstr "Apanyar o capitero" msgid "Fix the header" msgstr "Adequar o capitero" #. TRANSLATORS: %s is language name in its basic form (as you #. would see e.g. in a list of supported languages). You may need #. to rephrase it, e.g. to an equivalent of "for language %s". #, c-format msgid "Plural forms expression used by the catalog is unusual for %s." msgstr "" "A expresión de formas plurals que fa servir o catalogo ye insolita pa %s." #. TRANSLATORS: A verb, shown as action button with ""Plural forms expression used by the catalog is unusual for %s.")" msgid "Review" msgstr "Revisar" #, c-format msgid "Error loading message catalog file “%s”." msgstr "" #, c-format msgid "Translated: %d of %d (%d %%)" msgstr "Traduciu: %d de %d (%d %%)" #, c-format msgid "Remaining: %d" msgstr "En queda: %d" #, c-format msgid "%d error" msgid_plural "%d errors" msgstr[0] "%d error" msgstr[1] "%d errors" #, c-format msgid "%d entry" msgid_plural "%d entries" msgstr[0] "%d dentrada" msgstr[1] "%d dentradas" msgid " (unsaved)" msgstr " (sin alzar)" msgid " (modified)" msgstr " (modificau)" #, c-format msgid "Failed to update translation memory: %s" msgstr "S'ha produciu una error en esviellar as traduccions memorizadas: %s" msgid "Purge deleted translations" msgstr "Purgar as traduccions borradas" msgid "Do you want to remove all translations that are no longer used?" msgstr "Deseyas eliminar todas as traduccions que ya no se fan servir?" msgid "" "If you continue with purging, all translations marked as deleted will be " "permanently removed. You will have to translate them again if they are added " "back in the future." msgstr "" "Si continas con o purgau, todas as traduccions marcadas como borradas serán " "eliminadas permanentment. Habrás a traducir-las unatra vegada si son " "adhibidas unatra vegada en o esvenidero." msgid "Keep" msgstr "Mantener-las" msgid "Purge" msgstr "Purgar-las" msgid "Copy from source text" msgstr "Copiar dende o texto fuent" msgid "Copy from Source Text" msgstr "Copiar dende o texto fuent" #. TRANSLATORS: This is the key shortcut used in menus on Windows, some languages call them differently #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Ctrl+" msgstr "Ctrl+" msgid "Clear translation" msgstr "Limpiar a traducción" msgid "Clear Translation" msgstr "Limpiar a traducción" msgid "Edit comment" msgstr "Editar o comentario" msgid "Edit Comment" msgstr "Editar o comentario" msgid "References:" msgstr "Referencias:" msgid "&Bookmarks" msgstr "&Marcapachinas" #. TRANSLATORS: This is the key shortcut used in menus on Windows, some languages call them differently #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Alt+" msgstr "Alt+" #, c-format msgid "Set bookmark %i" msgstr "Establir o marcapachinas %i" #, c-format msgid "Go to bookmark %i" msgstr "Ir t'o marcapachinas%i" #, c-format msgid "Set Bookmark %i" msgstr "Establir o marcapachinas %i" #, c-format msgid "Go to Bookmark %i" msgstr "Ir t'o marcapachinas%i" msgid "Hide Sidebar" msgstr "Amagar a barra lateral" msgid "Show Sidebar" msgstr "Amostrar a barra lateral" msgid "Hide Status Bar" msgstr "Amagar a barra d'estau" msgid "Show Status Bar" msgstr "Amostrar a barra d'estau" msgid "Source text:" msgstr "Texto fuent:" msgid "Singular:" msgstr "Singular:" msgid "Plural:" msgstr "Plural:" msgid "Translation:" msgstr "Traducción:" msgid "Pre-translated" msgstr "Pretraduciu" msgid "Needs Work" msgstr "Le fa falta treballo" #. TRANSLATORS: This indicates that the string's translation isn't final #. and has known problems. For example, it might be machine translated or #. fuzzy matched from an older string. The translation should be short and #. convey this. If it's problematic to translate it, "Needs review" is #. acceptable substitute, but note that the meaning is subtly different: #. "needs review" implies that somebody else should review the string after #. I am done with it (i.e. consider it good), while "needs work" implies I #. need to return to it and finish the translation. msgid "Needs work" msgstr "Le fa falta treballo" msgid "" "POT files are only templates and don’t contain any translations themselves.\n" "To make a translation, create a new PO file based on the template." msgstr "" "Os fichers POT no son que plantiellas y no contienen garra traducción en sí " "mesmas.\n" "Pa fer una traducción, creya un nuevo fichero PO basau en a plantiella." msgid "Create New Translation" msgstr "Creyar una nueva traducción" msgid "Create new translation" msgstr "Creyar una nueva traducción" msgid "Everything" msgstr "Tot" #, c-format msgid "Form %i" msgstr "Forma %i" msgid "Singular" msgstr "" msgid "Zero" msgstr "Zero" msgid "One" msgstr "Un" msgid "Two" msgstr "Dos" msgid "Plural" msgstr "" msgid "Other" msgstr "Unatro" #, c-format msgid "%s Format" msgstr "%s formato" #. TRANSLATORS: %s is replaced with language name, e.g. "PHP" or "C", so "PHP Format" etc." #, c-format msgid "%s format" msgstr "%s formato" msgid "Source text" msgstr "Texto fuent" #, c-format msgid "Translation — %s" msgstr "Traducción — %s" msgid "ID" msgstr "ID" #, c-format msgid "Source text — %s" msgstr "Texto d'orichen — %s" msgid "unknown language" msgstr "idioma desconoixiu" #, c-format msgid "Failed command: %s" msgstr "S'ha produciu una error en executar o comando: %s" msgid "Failed to merge gettext catalogs." msgstr "S'ha produciu una error en unir catalogos gettext." msgid "Source file" msgstr "Fichero fuent" msgid "Source file occurrence:" msgstr "Fichero fuent coincident:" msgid "Open in Editor" msgstr "Ubrir-lo en l'editor" msgid "Open in editor" msgstr "Ubrir-lo en l'editor" msgid "No references for the selected item." msgstr "No bi ha referencias pa l'elemento seleccionau." #, c-format msgid "Error opening file %s!" msgstr "S'ha produciu una error en ubrir o fichero %s!" msgid "Find" msgstr "Mirar" msgid "Replace" msgstr "Substituir" #. TRANSLATORS: Expander in Find window for additional options (case sensitive etc.) msgid "Options" msgstr "Opcions" msgid "Ignore case" msgstr "Ignorar as mayusclas y as minusclas" msgid "Wrap around" msgstr "Embolicau arredol" msgid "Whole words only" msgstr "Nomás as parolas completas" msgid "Find in source texts" msgstr "Mirar en o texto d'orichen" msgid "Find in translations" msgstr "Mirar en as traduccions" msgid "Find in comments" msgstr "Mirar en os comentarios" msgid "Close" msgstr "Zarrar" msgid "Replace &All" msgstr "" msgid "Replace &all" msgstr "" msgid "&Replace" msgstr "" msgid "< &Previous" msgstr "< &Anterior" msgid "&Next >" msgstr "&Siguient >" msgid "String to find" msgstr "Cadena que mirar" msgid "Replacement string" msgstr "Cadena de substitución" #, c-format msgid "Cannot execute program: %s" msgstr "No se puet executar o programa: %s" msgid "Language Code or Name (e.g. en_GB)" msgstr "Codigo de l'idioma u nombre (p. eix. an_ES)" msgid "Translation Language" msgstr "Idioma d'a traducción" msgid "Language of the translation:" msgstr "Idioma d'a traducción:" msgid "Poedit - Catalogs manager" msgstr "Poedit - Chestor de catalogos" msgid "Catalog" msgstr "Catalogo" msgid "Total" msgstr "Total" msgid "Untrans" msgstr "Sin traducir" msgid "Errors" msgstr "" msgid "Last modified" msgstr "Zaguera modificación" msgid "Select directory" msgstr "Seleccionar a carpeta" msgid "Directories:" msgstr "Carpetas:" msgid "" msgstr "" msgid "Do you want to delete the project?" msgstr "Deseyas borrar o prochecto?" msgid "Confirmation" msgstr "Confirmación" msgid "" "Do you really want to do mass update of\n" "all catalogs in this project?" msgstr "" "Deseyas una actualización masiva de totz os\n" "catalogos d'iste prochecto?" msgid "Information about the translator" msgstr "Información arredol d'o traductor" msgid "Name:" msgstr "Nombre:" msgid "Your Name" msgstr "O tuyo nombre" msgid "Email:" msgstr "Correu electronico:" msgid "your_email@example.com" msgstr "o_tuyo_correu@eixemplo.com" msgid "" "Your name and email address are only used to set the Last-Translator header " "of GNU gettext files." msgstr "" "O tuyo nombre y l'adreza de correu electronico no s'emplegan que ta " "establir o capitero de zaguer traductor d'os fichers GNU gettext." msgid "Editing" msgstr "Editando" msgid "Automatically compile MO file when saving" msgstr "Compilar o fichero MO automaticament en alzar" msgid "Show summary after catalog update" msgstr "Amostrar o resumen dimpués d'esviellar o catalogo" msgid "Check spelling" msgstr "Comprebar a ortografía" msgid "Always change focus to text input field" msgstr "Pasar siempre o foco t'o quadro de traducción" msgid "" "Never let the list of strings take focus. If enabled, you must use Ctrl-" "arrows for keyboard navigation but you can also type text immediately, " "without having to press Tab to change focus." msgstr "" "No deixar que a lista de textos retienga l'enfoque. Si ista opción ye " "activada puet fer-se servir de conchunta con CTRL + teclas d'adreza\n" "ta mover-se por a lista de textos y prencipiar a tecliar immediatament sin " "pretar o tabulador ta cambiar o foco." msgid "Appearance" msgstr "Aparencia" msgid "Use custom list font:" msgstr "Fer servir una fuent personalizada t'as listas:" msgid "Use custom text fields font:" msgstr "Fer servir una fuent personalizada pa os quadros de texto:" msgid "Change UI language" msgstr "Cambiar a luenga d'a interficie d'usuario" #. TRANSLATORS: This is a note appended to "Check spelling" when running on older Windows versions msgid "(requires Windows 8 or newer)" msgstr "(requier o Windows 8 u superior)" msgid "General" msgstr "Cheneral" msgid "Use translation memory" msgstr "Fer servir a memoria de traducción" msgid "Learn From Files…" msgstr "" msgid "Learn from files…" msgstr "" #. TRANSLATORS: This is a button that deletes everything in the translation memory (i.e. clears/resets it). msgid "Reset" msgstr "Reenchegar-ne" #. TRANSLATORS: Followed by "match translations within the file" or "pre-translate from TM" msgid "When updating from sources" msgstr "En esviellar-lo dende as fuents" #. TRANSLATORS: Preceded by "When updating from sources" msgid "fuzzy match within the file" msgstr "Coincidencia fusca adintro d'o fichero" #. TRANSLATORS: Preceded by "When updating from sources" msgid "pre-translate from TM" msgstr "pretraducir dende a MT" msgid "" "Poedit can attempt to fill in new entries from only previous translations in " "the file or from your entire translation memory. Using the TM won’t be very " "effective if it’s near-empty, but it will get better as you add more " "translations to it." msgstr "" "O Poedit puet mirar de replenar as nuevas dentradas nomás dende as " "traduccions anteriors d'o fichero u de toda la memoria de traducción. L'uso " "d'a MT no será guaire efectivo si ye quasi lasa, pero amillorará contra mas " "traduccions se bi anyada." msgid "Stored translations:" msgstr "Traduccions almagazenadas:" msgid "Database size on disk:" msgstr "Grandaria d'a base de datos en disco:" msgid "Select translation files to import" msgstr "Seleccionar os fichers de traducción pa importar-los" msgid "Translation Memory" msgstr "Traduccions memorizadas" msgid "Importing translations…" msgstr "" msgid "Finalizing…" msgstr "" msgid "Reset translation memory" msgstr "Reenchegar a memoria de traducción" msgid "Are you sure you want to reset the translation memory?" msgstr "De seguras que quiers reenchegar as traduccions memorizadas?" msgid "" "Resetting the translation memory will irrevocably delete all stored " "translations from it. You can’t undo this operation." msgstr "" "En reenchegar a memoria de traducción se borrarán todas as traduccions " "almagazenadas. Ista operación no se puet desfer." msgid "Cancel" msgstr "Cancelar" #. TRANSLATORS: This is abbreviation of "Translation Memory" used in Preferences on macOS. #. Long text looks weird there, too short (like TM) too, but less so. "General" is about ideal #. length there. msgid "TM" msgstr "TM" msgid "" "Source code extractors are used to find translatable strings in the source " "code files and extract them so that they can be translated." msgstr "" "Os extractors de codigo fuent se fan servir pa trobar os mensaches " "traducibles en os fichers de codigo fuent y extrayer-los pa permitir a suya " "traducción." msgid "Custom Extractors:" msgstr "Extractors personalizaus:" msgid "Custom extractors:" msgstr "Extractors personalizaus:" msgid "Edit…" msgstr "" msgid "GNU gettext" msgstr "" msgid "" "Supports all programming languages recognized by GNU gettext tools (PHP, C/C+" "+, C#, Perl, Python, Java, JavaScript and others)." msgstr "" "Suporta totz os luengaches de programación reconoixius por as ferramientas " "d'o GNU gettext (PHP, C/C++, C#, Perl, Python, Java, JavaScript y atros)." msgid "Delete extractor" msgstr "Borrar l'extractor" #, c-format msgid "Are you sure you want to delete the “%s” extractor?" msgstr "Yes seguro que quiers eliminar l'extractor “%s”?" msgid "Extractors" msgstr "Extractors" msgid "Accounts" msgstr "Cuentas" msgid "Automatically check for updates" msgstr "Comprebar-ne as actualizacions automaticament" msgid "Include beta versions" msgstr "Incluir-ie as versions beta" msgid "" "Beta versions contain the latest new features and improvements, but may be a " "bit less stable." msgstr "" "As versions beta contienen as funcionalidatz y milloras mas recients, pero " "pueden resultar menos estables." msgid "Updates" msgstr "Actualizacions" msgid "" "These settings affect internal formatting of PO files. Adjust them if you " "have specific requirements e.g. because of version control." msgstr "" "Istas valors afectan o formato interno d'os fichers PO. Achusta-los si tiens " "requisitos especificos; por eixemplo, a causa d'o control de versión." msgid "Line endings:" msgstr "finals d'as linias" msgid "Unix (recommended)" msgstr "Unix (recomendau)" msgid "Windows" msgstr "Windows" #. TRANSLATORS: Followed by text control for entering number; wraps text at given width msgid "Wrap at:" msgstr "Achustar-lo en:" msgid "Preserve formatting of existing files" msgstr "Conservar o formato d'os fichers existents" msgid "Advanced" msgstr "Avanzau" msgid "Pre-translating…" msgstr "Pretraducindo…" #, c-format msgid "Pre-translated %u string" msgid_plural "Pre-translated %u strings" msgstr[0] "S'ha pretraduciu %u cadena" msgstr[1] "S'ha pretraduciu %u cadenas" #. TRANSLATORS: This is a somewhat common term describing the action where #. you apply the translation memory and/or machine translation to all of the #. strings you're translating as the first step, followed by correcting, #. improving etc., i.e. actually translating the strings. This may be tricky #. to express in other languages as simply as in English, but please try to #. keep it similarly concise. Please try to avoid, if possible, describing it #. as "auto-translation" and similar, because such terminology would mislead #. some users into thinking it's all that needs to be done (spoken from #. experience). "Pre-translate" nicely expresses that it's only the step done #. *before* actual translation. msgid "Pre-translate" msgstr "Pretraducir" msgid "Only fill in exact matches" msgstr "No replenar que as coincidencias exactas" msgid "" "By default, inaccurate results are filled in as well and marked as needing " "work. Check this option to only include accurate matches." msgstr "" "De traza predeterminada, os resultaus imprecisos tamién se replenan y se " "marca que le sfa falta treballo. Marca ista opción pa incluyir nomás as " "coincidencias precisas." msgid "Don’t mark exact matches as needing work" msgstr "No marcar as coincidencias exactas como si les fese falta treballo" msgid "" "Only enable if you trust the quality of your TM. By default, all matches " "from the TM are marked as needing work and should be reviewed before use." msgstr "" "Activa-lo nomás si confidas en a calidat d'a tuya MT. De traza " "predeterminada todas as coincidencias d'a MT se marcan como que les fa falta " "treballo y s'han a revisar antis de no usar-las" msgid "" "Pre-translation automatically finds exact or fuzzy matches for untranslated " "strings in the translation memory and fills in their translations." msgstr "" "A pretraducción mira automaticament coincidencias exactas u fuscas pa las " "cadenas no traducidas en a memoria de traducción y replena las suyas " "traduccions." #, c-format msgid "%d entry was pre-translated." msgid_plural "%d entries were pre-translated." msgstr[0] "S'ha pretraduciu %d dentrada." msgstr[1] "S'ha pretraduciu %d dentradas." msgid "" "The translations were marked as needing work, because they may be " "inaccurate. You should review them for correctness." msgstr "" "S'ha marcau as traduccions como que les fa falta treballo porque pueden " "estar imprecisas. Has a revisar-las pa correchir-las." msgid "No entries could be pre-translated." msgstr "No s'ha puesto pretraducir garra dentrada." msgid "" "The TM doesn’t contain any strings similar to the content of this file. It " "is only effective for semi-automatic translations after Poedit learns enough " "from files that you translated manually." msgstr "" "A MT no contién cadenas similars a lo conteniu d'iste fichero. Nomás ye " "efectivo pa las traduccions semiautomaticas dimpués que o Poedit aprenda " "prau de fichers que traduciés de traza manual." msgid "" "Drag and Drop Folders Here\n" "\n" "or use the + button" msgstr "" "Arrocegar y soltar carpetas aquí\n" "\n" "u fer servir o botón +" msgid "" "Drag and drop folders here\n" "\n" "or use the + button" msgstr "" "Arrocegar y soltar carpetas aquí\n" "\n" "u fer servir o botón +" msgid "Add Folders…" msgstr "" msgid "Add folders…" msgstr "" msgid "Add Files…" msgstr "" msgid "Add files…" msgstr "" msgid "Add Wildcard…" msgstr "" msgid "Add wildcard…" msgstr "" msgid "Paths" msgstr "Carpetas" msgid "Excluded paths" msgstr "Rotas excluidas" msgid "Advanced extraction settings" msgstr "Opcions avanzadas d'extracción" msgid "Extract notes for translators from:" msgstr "Extrayer as notas pa os traductors dende:" msgid "Comments prefixed with:" msgstr "" msgid "All comments" msgstr "Totz os comentarios" msgid "Additional xgettext flags:" msgstr "Indicadors xgettext adicionals:" msgid "Additional keywords" msgstr "Parolas clau adicionals" msgid "Name of the project the translation is for" msgstr "Nombre d'o prochecto pa o que ye a traducción" msgid "Team name and email address or URL" msgstr "" msgid "e.g. nplurals=2; plural=(n > 1);" msgstr "p. eix. nplurals=2; plural=(n > 1);" msgid "UTF-8 (recommended)" msgstr "UTF-8 (recomendau)" msgid "Please save the file first. This section cannot be edited until then." msgstr "" "En primeras alza o fichero. Ista sección no se puet editar dica que no se " "faga." msgid "Not all plural forms are translated." msgstr "" msgid "The translation should start as a sentence." msgstr "" msgid "The translation should start with a lowercase character." msgstr "" msgid "The translation doesn’t start with a space." msgstr "" msgid "The translation starts with a space, but the source text doesn’t." msgstr "" msgid "The translation is missing a newline at the end." msgstr "" msgid "The translation ends with a newline, but the source text doesn’t." msgstr "" msgid "The translation is missing a space at the end." msgstr "" msgid "The translation ends with a space, but the source text doesn’t." msgstr "" #, c-format msgid "The translation should end with “%s”." msgstr "" #, c-format msgid "The translation should not end with “%s”." msgstr "" #, c-format msgid "The translation ends with “%s”, but the source text ends with “%s”." msgstr "" msgid "Comment:" msgstr "Comentario:" msgid "OK" msgstr "Acceptar" msgid "C&lear" msgstr "Esbo&rrar" msgid "Clear the comment" msgstr "Borrar o comentario" msgid "New" msgstr "Nuevo" msgid "Create new translations project" msgstr "Creyar un nuevo prochecto de traducción" msgid "Edit" msgstr "Editar" msgid "Edit the project" msgstr "Editar o prochecto" msgid "Delete the project" msgstr "Borrar o prochecto" msgid "Update all" msgstr "Esviellar-lo tot" msgid "Update all catalogs in the project" msgstr "Esviellar totz os catalogos d'o prochecto" msgid "Edit project" msgstr "Editar o prochecto" msgid "Project name:" msgstr "Nombre d'o prochecto:" msgid "Browse" msgstr "Examinar" msgid "Add directory to the list" msgstr "Adhibir a carpeta t'a lista" msgid "&New…" msgstr "" msgid "New from &POT/PO file…" msgstr "" msgid "New From &POT/PO File…" msgstr "" msgid "&Open…" msgstr "" msgid "Open Recent" msgstr "Ubrir recient" msgid "Open from Crowdin…" msgstr "" msgid "Open From Crowdin…" msgstr "" msgid "&Close" msgstr "&Zarrar" msgid "&Save" msgstr "&Alzar" msgid "Save &as…" msgstr "" msgid "Save &As…" msgstr "" msgid "Compile to MO…" msgstr "" msgid "E&xport as HTML…" msgstr "" msgid "Check for updates…" msgstr "" msgid "&Preferences…" msgstr "" msgid "Catalogs &manager" msgstr "Chestor de &catalogos" msgid "Catalogs &Manager" msgstr "Chestor de &catalogos" msgid "E&xit" msgstr "&Salir" msgid "Quit" msgstr "Salir" msgid "Copy from singular" msgstr "Copiar dende o singular" msgid "Copy From Singular" msgstr "Copiar dende o singular" msgid "Translation needs &work" msgstr "A la traducción le fa falta &treballo" msgid "Translation Needs &Work" msgstr "A la traducción le fa falta &treballo" msgid "Edit &comment" msgstr "Editar o &comentario" msgid "Edit &Comment" msgstr "Editar o &comentario" msgid "Suggestions" msgstr "Sucherencias" msgid "&Find…" msgstr "" msgid "Replace…" msgstr "" msgid "Find next" msgstr "Mirar o siguient" msgid "Find previous" msgstr "Mirar l'anterior" msgid "Find and Replace…" msgstr "" msgid "Find Next" msgstr "Mirar o siguient" msgid "Find Previous" msgstr "Mirar l'anterior" msgid "&Preferences" msgstr "&Preferencias" msgid "Display entry &IDs" msgstr "Amostrar a dentrada d'&ID" msgid "Display Entry &IDs" msgstr "Amostrar a dentrada d'&ID" msgid "Sort by &file order" msgstr "Ordenar-los por l'orden d'o &fichero" msgid "Sort by &File Order" msgstr "Ordenar-los por l'orden d'o fichero" msgid "Sort by &source" msgstr "Ordenar-los por l'&orichen" msgid "Sort by &Source" msgstr "Ordenar-los por l'orichen" msgid "Sort by &translation" msgstr "Ordenar-los por a &traducción" msgid "Sort by &Translation" msgstr "Ordenar-los por a &traducción" msgid "&Group by context" msgstr "A&grupar por o contexto" msgid "&Group By Context" msgstr "A&grupar por o contexto" msgid "Entries with errors first" msgstr "Dentradas con errors primero" msgid "Entries with Errors First" msgstr "Dentradas con errors primero" msgid "&Untranslated entries first" msgstr "&Dentradas sin traducir primero" msgid "&Untranslated Entries First" msgstr "&Dentradas sin traducir primero" msgid "&Show references" msgstr "&Amostrar as referencias" msgid "&Show References" msgstr "&Amostrar as referencias" msgid "Show sidebar" msgstr "Amostrar a barra lateral" msgid "Show status bar" msgstr "Amostrar a barra d'estau" msgid "C&atalog" msgstr "C&atalogo" msgid "&Update from sources" msgstr "&Esviellar-lo dende as fuents" msgid "&Update from Sources" msgstr "&Esviellar-lo dende as fuents" msgid "Update from &POT file…" msgstr "" msgid "Update from &POT File…" msgstr "" msgid "Sync with Crowdin" msgstr "Sincronizar con o Crowdin" msgid "Pre-&translate…" msgstr "" msgid "&Purge deleted translations" msgstr "&Purgar as traduccions borradas" msgid "&Purge Deleted Translations" msgstr "&Purgar as traduccions borradas" msgid "&Validate translations" msgstr "&Validar as traduccions" msgid "&Validate Translations" msgstr "&Validar as traduccions" msgid "&Properties…" msgstr "" msgid "&Done and next" msgstr "Feito y &siguient" msgid "&Done and Next" msgstr "Feito y &siguient" msgid "&Previous translation" msgstr "Traducción &anterior" msgid "&Previous Translation" msgstr "Traducción &anterior" msgid "&Next translation" msgstr "Traducción siguie&nt" msgid "&Next Translation" msgstr "Traducción siguie&nt" msgid "P&revious unfinished" msgstr "Ante&rior sin rematar" msgid "P&revious Unfinished" msgstr "Ante&rior sin rematar" msgid "Ne&xt unfinished" msgstr "Siguien&t sin rematar" msgid "Ne&xt Unfinished" msgstr "Siguien&t sin rematar" msgid "Previous plural form" msgstr "Anterior forma plural" msgid "Previous Plural Form" msgstr "Anterior forma plural" msgid "Next plural form" msgstr "Siguient forma plural" msgid "Next Plural Form" msgstr "Siguient forma plural" msgid "&Online help" msgstr "&Aduya en linia" msgid "&Online Help" msgstr "&Aduya en linia" msgid "&GNU gettext manual" msgstr "manual de &GNU gettext" msgid "&GNU gettext Manual" msgstr "Manual de &GNU gettext" msgid "&About Poedit" msgstr "&Sobre o Poedit" msgid "&About" msgstr "Arredol de" msgid "Extractor setup" msgstr "Configuración d'extractor" msgid "List of extensions separated by semicolons (e.g. *.cpp;*.h):" msgstr "Lista d'extensions deseparadas por punto y coma (p. eix. *.cpp;*.h):" msgid "Invocation:" msgstr "Execución:" msgid "Command to extract translations:" msgstr "Comando ta extrayer as traduccions:" msgid "" "This is the command used to launch the extractor.\n" "%o expands to the name of output file, %K to list\n" "of keywords, %F to list of input files,\n" "%C to charset flag (see below)." msgstr "" "Iste comando se fa servir ta ubrir l'extractor.\n" "%u expande o nombre d'o fichero de salida, %K amuestra\n" "as parolas clau, %F enlista os fichers de dentrada y\n" "%C define o conchunto de caracters (vei abaixo)." msgid "An item in keywords list:" msgstr "Elemento d'a lista de parolas clau:" msgid "" "This will be attached to the command line once\n" "for each keyword. %k expands to the keyword." msgstr "" "S'adhibirá a la linia de comandos una vegada por\n" "cada parola clau. %k contién a parola clau." msgid "An item in input files list:" msgstr "Elemento d'a lista de fichers de dentrada:" #, c-format msgid "" "This will be attached to the command line once\n" "for each input file. %f expands to the filename." msgstr "" "S'adhibirá a la linia de comandos una vegada por cada\n" "fichero de dentrada. %f contién o nombre de fichero." msgid "Source code charset:" msgstr "Chuego de caracters d'o codigo fuent:" #, c-format msgid "" "This will be attached to the command line\n" "only if source code charset was given. %c expands to charset value." msgstr "" "S'adhibirá a la linia de comandos nomás si se proporciona\n" "o codigo d'o chuego de caracters fuent. %c contién a valura d'o chuego de " "caracters." msgid "Catalog properties" msgstr "Propiedatz d'o catalogo" msgid "Project name and version:" msgstr "Nombre d'o prochecto y versión:" msgid "Language team:" msgstr "" msgid "Plural forms:" msgstr "Formas plurals:" msgid "Use default rules for this language" msgstr "Fer servir os regles predeterminaus pa iste idioma" msgid "Use custom expression" msgstr "Emplegar una expresión personalizada" msgid "Learn about plural forms" msgstr "Aprender arredol de formas plurals" msgid "Charset:" msgstr "Chuego de caracters:" msgid "Advanced Extraction Settings…" msgstr "" msgid "Advanced extraction settings…" msgstr "" msgid "Translation Properties" msgstr "Propiedatz de traducción" msgid "Translation properties" msgstr "Propiedatz de traducción" msgid "Sources Paths" msgstr "Rotas de fuents" msgid "Sources paths" msgstr "Directorios fuent" msgid "Extract text from source files in the following directories:" msgstr "Extrayer o texto d'o fichero d'orichen en os directorios siguients:" msgid "Base path:" msgstr "Directorio radiz:" msgid "Sources Keywords" msgstr "Parolas clau de fuents" msgid "Sources keywords" msgstr "Parolas clau orichinals" msgid "" "Use these keywords (function names) to recognize translatable strings\n" "in source files:" msgstr "" "Fer servir istas parolas clau (nombres de funcions) pa reconoixer textos\n" "traducibles en fichers fuent, amás d'as parolas clau por defecto:" msgid "Also use default keywords for supported languages" msgstr "" "Fer servir tamién as parolas clau predeterminadas pa os idiomas suportaus" msgid "Learn About Gettext Keywords" msgstr "Aprender sobre as parolas clau d'o Gettext" msgid "Learn about gettext keywords" msgstr "Aprender sobre as parolas clau d'o GNU gettext" msgid "Update summary" msgstr "Resumen de l'actualización" msgid "" "These strings were found in the sources but were not in the catalog.\n" "Poedit will add them to the catalog now." msgstr "" "Istos textos amaneixen en os fichers fuent, pero no son\n" "en o catalogo. O Poedit los adhibirá agora a lo catalogo." msgid "New strings" msgstr "Textos nuevos" msgid "" "These strings are no longer in the sources.\n" "Poedit will remove them from the catalog now." msgstr "" "Istos textos ya no se troban en os fichers\n" "fuent. O Poedit los eliminará d'o catalogo." msgid "Obsolete strings" msgstr "Linias obsoletas" msgid "(0 new, 0 obsolete)" msgstr "(0 nuevos, 0 obsoletos)" msgid "Open" msgstr "Ubrir" msgid "Save catalog" msgstr "Alzar o catalogo" msgid "Validate" msgstr "Validar" msgid "Check for errors in the translation" msgstr "Mirar as errors en a traducción" msgid "Update" msgstr "Esviellar-lo" msgid "Update catalog - synchronize it with sources" msgstr "Esviellar o catalogo, sincronizar-lo con as fuents" msgid "Sidebar" msgstr "Barra lateral" msgid "Show or hide the sidebar" msgstr "Amostrar u amagar a barra lateral" #. TRANSLATORS: "Previous" as in used in the past, now replaced with newer. msgid "Previous source text:" msgstr "Texto fuent anterior:" msgid "" "The old source text (before it changed during an update) that the now-" "inaccurate translation corresponds to." msgstr "" "O texto viello d'orichen (antis que no cambiase mientras bella " "actualización) con que corresponde a traducción imprecisa d'agora." msgid "Notes for translators:" msgstr "Notas pa os traductors:" msgid "Add comment" msgstr "Adhibir un comentario" msgid "Add Comment" msgstr "Adhibir un comentario" msgid "Translation suggestions:" msgstr "Sucherencias de traducción:" #. TRANSLATORS: This is shown when no translation suggestions can be found in the TM (Windows). msgid "No matches found" msgstr "No s'ha trobau coincidencias." #. TRANSLATORS: This is shown when no translation suggestions can be found in the TM (macOS, Linux). msgid "No Matches Found" msgstr "No s'ha trobau coincidencias" msgid "This string was found in Poedit’s translation memory." msgstr "Ista cadena s'ha trobau en as traduccions memorizadas d'o Poedit." msgid "Cannot create temporary directory." msgstr "No puet creyar-se a carpeta temporal." msgid "Welcome to Poedit" msgstr "Bienveniu en o Poedit" #. TRANSLATORS: This is version information in about dialog, "%s" will be #. version number when used #, c-format msgid "Version %s" msgstr "Versión %s" msgid "Edit a Translation" msgstr "Editar una traducción" msgid "Edit a translation" msgstr "Editar una traducción" msgid "Open an existing PO file and edit the translation." msgstr "Ubrir un fichero PO existent y editar a suya traducción." msgid "" "Take an existing PO file or POT template and create a new translation from " "it." msgstr "" "Prener un fichero PO existent u una plantilla POT y creyar una nueva " "traducción d'a mesma." msgid "Collaborate on a Translation with Others" msgstr "Colaborar en una Traducción con atris" msgid "Collaborate on a translation with others" msgstr "Colaborar en una traducción con atris" msgid "" "Download a file from Crowdin project, translate and sync your changes back." msgstr "" "Baixa un fichero dende o Prochecto d'o Crowdin, traduz y syncroniza os tuyos " "cambeos de nuevas." msgid "What is Crowdin?" msgstr "Qué ye o Crowdin?" msgid "There are no translations. That’s unusual." msgstr "No bi ha garra traducción. Ixo ye insolito." msgid "" "Translatable entries aren’t added manually in the Gettext system, but are " "automatically extracted\n" "from source code. This way, they stay up to date and accurate.\n" "Translators typically use PO template files (POTs) prepared for them by the " "developer." msgstr "" msgid "(Learn more about GNU gettext)" msgstr "(Aprender mas sobre o GNU gettext)" msgid "The simplest way to fill this catalog is to update it from a POT:" msgstr "" "A traza mas simpla pa emplir iste catalogo ye esviellar-lo dende un POT:" msgid "Update from POT" msgstr "Esviellar-lo dende un fichero POT" msgid "Take translatable strings from an existing POT template." msgstr "Prener as cadenas traducibles d'una plantilla POT existent." msgid "" "You can also extract translatable strings directly from the source code:" msgstr "" "Puetz tamién extrayer cadenas traduciblesdreitament dende o codigo fuent:" msgid "Extract from sources" msgstr "Esviellar-lo dende as fuents" msgid "Configure source code extraction in Properties." msgstr "Configurar o codigo d'extracción de fuents en propiedatz." msgid "Sync" msgstr "Sincronizar" msgid "Synchronize the translation with Crowdin" msgstr "Sincronizar a traducción con o Crowdin" #. TRANSLATORS: This is titlebar of about dialog, "%s" is application name #. ("Poedit" here, but please use "%s") #, c-format msgid "About %s" msgstr "Arredol de %s" #. TRANSLATORS: Title of the preferences window on Windows and Linux. "%s" is replaced with "Poedit" when running. #, c-format msgid "%s Preferences" msgstr "Preferencias d’o %s" #. TRANSLATORS: macOS item in app menu msgid "Services" msgstr "Servicios" #. TRANSLATORS: macOS item in app menu, %s is replaced with "Poedit" #, c-format msgid "Hide %s" msgstr "Amagar %s" #. TRANSLATORS: macOS item in app menu msgid "Hide Others" msgstr "Amagar atros" #. TRANSLATORS: macOS item in app menu msgid "Show All" msgstr "Amostrar-lo tot" #. TRANSLATORS: macOS item in app menu, %s is replaced with "Poedit" #, c-format msgid "Quit %s" msgstr "Salir de %s" #. TRANSLATORS: macOS item in app menu msgid "Preferences…" msgstr "" msgid "Preferences..." msgstr "Preferencias..." #. TRANSLATORS: Title of a category in Windows task menu (right-click icon in taskbar) msgid "Recent" msgstr "Recient" #. TRANSLATORS: Title of a category in Windows task menu (right-click icon in taskbar) msgid "Frequent" msgstr "Freqüent" msgid "&Apply" msgstr "&Aplicar" msgid "Apply" msgstr "Aplicar" msgid "&Back" msgstr "&Dezaga" msgid "Back" msgstr "Dezaga" msgid "&Cancel" msgstr "&Cancelar" msgid "&Clear" msgstr "&Vuedar" msgid "Clear" msgstr "Vuedar" msgid "Copy" msgstr "Copiar" msgid "Cu&t" msgstr "&Retallar" msgid "Cut" msgstr "Retallar" msgid "&Delete" msgstr "&Borrar" msgid "&Quit" msgstr "&Salir" msgid "File" msgstr "Fichero" msgid "Help" msgstr "Aduya" msgid "&New" msgstr "&Nuevo" msgid "&No" msgstr "" msgid "No" msgstr "" msgid "&OK" msgstr "&Acceptar" msgid "Open…" msgstr "" msgid "&Open..." msgstr "&Ubrir..." msgid "Open..." msgstr "Ubrir..." msgid "&Paste" msgstr "A&pegar" msgid "Paste" msgstr "Apegar" msgid "Preferences" msgstr "Preferencias" msgid "&Redo" msgstr "&Refer" msgid "Refresh" msgstr "Refrescar" msgid "&Save as" msgstr "&Alzar como" msgid "Save as" msgstr "Alzar como" msgid "Select &All" msgstr "Seleccion&ar-lo tot" msgid "Select All" msgstr "Seleccionar-lo tot" msgid "&Undo" msgstr "&Desfer" msgid "&Yes" msgstr "&Sí" msgid "Yes" msgstr "Sí" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Shift+" msgstr "Mayus+" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Enter" msgstr "Intro" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Up" msgstr "Alto" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Down" msgstr "Abaixo" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Left" msgstr "" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Right" msgstr "" #. TRANSLATORS: Keyboard shortcut, must correspond to translation of "Ctrl+" msgid "ctrl" msgstr "ctrl" #. TRANSLATORS: Keyboard shortcut, must correspond to translation of "Alt+" msgid "alt" msgstr "alt" #. TRANSLATORS: Keyboard shortcut, must correspond to translation of "Shift+" msgid "shift" msgstr "mayus" poedit-2.0.6/locales/eu.po0000664000372000037200000015134313230132076012323 00000000000000msgid "" msgstr "" "Project-Id-Version: poedit\n" "Report-Msgid-Bugs-To: help@poedit.net\n" "POT-Creation-Date: 2017-12-05 15:52+0100\n" "PO-Revision-Date: 2017-09-21 11:38-0400\n" "Last-Translator: vslavik \n" "Language-Team: Basque\n" "Language: eu_ES\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: crowdin.com\n" "X-Crowdin-Project: poedit\n" "X-Crowdin-Language: eu\n" "X-Crowdin-File: /locales/poedit.pot\n" msgid "Hide this notification message" msgstr "Ezkutatu jakinarazpen mezu hau" msgid "Don’t Show Again" msgstr "Ez erakutsi berriro" msgid "Don’t show again" msgstr "Ez erakutsi berriro" #, c-format msgid "(New: %i, obsolete: %i)" msgstr "(Berria: %i, zaharkitua: %i)" msgid "Updating catalog" msgstr "Katalogoa eguneratzen" msgid "Collecting source files…" msgstr "Iturburu-fitxategiak biltzen…" msgid "Extracting translatable strings…" msgstr "Kate itzulgarriak erauzten…" msgid "Failed to load extracted catalog." msgstr "Erauzitako katalogoa kargatzean huts egin du." msgid "Merging differences…" msgstr "Ezberdintasunak batzen…" #, c-format msgid "“%s” is not a valid POT file." msgstr "\"%s\" ez da baliozko POT fitxategi bat." #, c-format msgid "%i line of file “%s” was not loaded correctly." msgid_plural "%i lines of file “%s” were not loaded correctly." msgstr[0] "'%2$s' fitxategiko kate %1$i ez da ongi kargatu." msgstr[1] "'%2$s' fitxategiko %1$i kate ez dira ongi kargatu." #, c-format msgid "Line %d of file “%s” is corrupted (not valid %s data)." msgstr "%d lerroa hondatuta dago \"%s\" fitxategian (%s datu baliogabea)." #, c-format msgid "Malformed header: “%s”" msgstr "Gaizki osatutako goiburua: \"%s\"" msgid "" "Broken catalog file: singular form msgstr used together with msgid_plural" msgstr "" "Hautsitako katalogo-fitxategia: msgstr singular forma msgid_plural " "formarekin batera erabili da" msgid "Broken catalog file: plural form msgstr used without msgid_plural" msgstr "" "Hautsitako katalogo-fitxategia: msgstr plural forma msgid_plural gabe " "erabili da" msgid "" "There were errors when loading the catalog. Some data may be missing or " "corrupted as the result." msgstr "" "Erroreak egon dira katalogoa kargatzean. Ondorioz, datu batzuk falta " "daitezke edo hondatuta egon daitezke." #, c-format msgid "Couldn’t load file %s, it is probably corrupted." msgstr "Ezin izan da %s fitxategia kargatu, hondatuta egon daiteke." #, c-format msgid "" "File “%s” is read-only and cannot be saved.\n" "Please save it under different name." msgstr "" "\"%s\" soilik irakurtzeko fitxategia da eta ezin da gorde.\n" "Gorde beste izen batez." #, c-format msgid "Couldn’t save file %s." msgstr "Ezin izan da %s fitxategia gorde." msgid "" "There was a problem formatting the file nicely (but it was saved all right)." msgstr "" "Arazo bat egon da fitxategiaren formatua txukuntzean (baina ongi gorde da)." #, c-format msgid "" "The catalog couldn’t be saved in “%s” charset as specified in catalog " "settings.\n" "\n" "It was saved in UTF-8 instead and the setting was modified accordingly." msgstr "" "Katalogoa ezin izan da \"%s\" karaktere-jokoan gorde katalogo ezarpenetan " "adierazi bezala.\n" "\n" "UTF-8 erabiliz gorde da eta ezarpenak ere era berean aldatu dira." msgid "Error saving catalog" msgstr "Errorea katalogoa gordetzean" msgid "PO Translation Files" msgstr "PO itzulpen-fitxategiak" msgid "POT Translation Templates" msgstr "POT itzulpen-txantiloiak" msgid "All Translation Files" msgstr "Itzulpen-fitxategi guztiak" msgid "(Use default language)" msgstr "(Erabili hizkuntza lehenetsia)" msgid "Select your preferred language" msgstr "Hautatu zure gogoko hizkuntza " msgid "Language selection" msgstr "Hizkuntza hautapena" msgid "You must restart Poedit for this change to take effect." msgstr "Poedit berrabiarazi behar duzu aldaketa honek eragina izateko." msgid "Syncing" msgstr "Sinkronizatzen" #. TRANSLATORS: %s is a cloud destination, e.g. "Crowdin" or ftp.wordpress.com etc. #, c-format msgid "Syncing with %s…" msgstr "%s-rekin sinkronizatzen…" #. TRANSLATORS: %s is a cloud destination, e.g. "Crowdin" or ftp.wordpress.com etc. #, c-format msgid "Syncing with %s failed." msgstr "Hutsegitea %s-rekin sinkronizatzean." msgid "Syncing error" msgstr "Sinkronizazio errorea" msgid "Downloading translations is disabled in this project." msgstr "Itzulpenak deskargatzea desgaituta dago proiektu honetan." msgid "Not authorized, please sign in again." msgstr "Ez autorizatua, mesedez hasi saioa berriro." msgid "" "Crowdin is an online localization management platform and collaborative " "translation tool. Poedit can seamlessly sync PO files managed at Crowdin." msgstr "" "Crowdin onlineko lokalizazio kudeaketa plataforma bat eta elkarlaguntza " "itzulpen tresna bat da. Poedit-ek arazo gabe sinkronizatu ditzake Crowdinen " "kudeatutako PO fitxategiak." msgid "Sign In" msgstr "Hasi saioa" msgid "Sign in" msgstr "Hasi saioa" msgid "Sign Out" msgstr "Amaitu saioa" msgid "Sign out" msgstr "Amaitu saioa" msgid "Waiting for authentication…" msgstr "Autentifikazioaren zain…" msgid "Updating user information…" msgstr "Erabiltzailearen informazioa eguneratzen…" msgid "Signed in as:" msgstr "Saioaren erabiltzailea:" msgid "Learn More About Crowdin" msgstr "Ikasi gehiago Crowdin-i buruz" msgid "Learn more about Crowdin" msgstr "Ikasi gehiago Crowdin buruz" msgid "Sign in to Crowdin" msgstr "Hasi saioa Crowdin-en" msgid "Open Crowdin translation" msgstr "Ireki Crowdin itzulpena" msgid "Project:" msgstr "Proiektua:" msgid "Language:" msgstr "Hizkuntza:" msgid "File:" msgstr "Fitxategia:" msgid "No translation projects listed in your Crowdin account." msgstr "Ez dago itzulpen proiekturik zerrendatuta zure Crowdin kontuan." msgid "This project has no files that can be translated in Poedit." msgstr "Proiektu honek ez du Poedit erabiliz itzuli daitekeen fitxategirik." msgid "This file can only be edited in Crowdin’s web interface." msgstr "" "Fitxategi hau Crowdin web interfazea erabiliz besterik ezin da editatu." msgid "Downloading latest translations…" msgstr "Azken itzulpenak deskargatzen…" msgid "Syncing with Crowdin failed." msgstr "Hutsegitea Crowdin-ekin sinkronizatzean." msgid "Crowdin error" msgstr "Crowdin errorea" msgid "Uploading translations…" msgstr "Itzulpenak kargatzen…" msgid "&Copy" msgstr "&Kopiatu" msgid "Learn more" msgstr "Ikasi gehiago" msgid "Learn More" msgstr "Ikasi gehiago" msgid "&Help" msgstr "&Laguntza" msgid "MO files can’t be directly edited in Poedit." msgstr "Ezin dira MO fitxategiak zuzenean editatu Poedit erabiliz." msgid "Error opening file" msgstr "Errorea fitxategia irekitzerakoan" msgid "" "Please open and edit the corresponding PO file instead. When you save it, " "the MO file will be updated as well." msgstr "" "Ireki eta editatu dagokion PO fitxategia. Gordetzen duzunean, MO fitxategia " "ere eguneratuko da." msgid "don’t delete temporary files (for debugging)" msgstr "ez ezabatu fitxategi tenporalak (arazketarako)" msgid "handle a poedit:// URI" msgstr "maneiatu poedit:// URI bat" msgid "go to item at given line number" msgstr "joan emandako lerro zenbakiko elementura" msgid "Failed to communicate with Poedit process." msgstr "Komunikazioak huts egin du Poedit prozesuarekin." #, c-format msgid "Unhandled exception occurred: %s" msgstr "Kontrolatu gabeko salbuespen bat gertatu da: %s" msgid "Open catalog" msgstr "Ireki katalogoa" #, c-format msgid "File “%s” doesn’t exist." msgstr "“%s” fitxategia ez dago." msgid "Poedit is an easy to use translations editor." msgstr "Poedit itzulpen editore erabilerraz bat da." msgid "Catalogs Manager" msgstr "Katalogoen kudeatzailea" msgid "Check for Updates…" msgstr "Egiaztatu eguneraketarik dagoen…" msgid "&Edit" msgstr "&Editatu" msgid "Undo" msgstr "Desegin" msgid "Redo" msgstr "Berregin" msgid "Paste and Match Style" msgstr "Itsatsi eta bateratu estiloa" msgid "Delete" msgstr "Ezabatu" msgid "Spelling and Grammar" msgstr "Ortografia eta gramatika" msgid "Show Spelling and Grammar" msgstr "Erakutsi ortografia eta gramatika" msgid "Check Document Now" msgstr "Egiaztatu dokumentua orain" msgid "Check Spelling While Typing" msgstr "Egiaztatu ortografia idatzi bitartean" msgid "Check Grammar With Spelling" msgstr "Egiaztatu gramatika ortografiarekin" msgid "Correct Spelling Automatically" msgstr "Zuzendu ortografia automatikoki" msgid "Substitutions" msgstr "Ordezkapenak" msgid "Show Substitutions" msgstr "Erakutsi ordezkapenak" msgid "Smart Copy/Paste" msgstr "Itsatsi/Kopiatu adimentsua" msgid "Smart Quotes" msgstr "Tipografia-komatxoak" msgid "Smart Dashes" msgstr "Tipografia-marratxoak" msgid "Smart Links" msgstr "Lotura adimentsuak" msgid "Text Replacement" msgstr "Testu-ordezpena" msgid "Transformations" msgstr "Eraldaketak" msgid "Make Upper Case" msgstr "Bihurtu maiuskulak" msgid "Make Lower Case" msgstr "Bihurtu minuskulak" msgid "Capitalize" msgstr "Jarri maiuskula" msgid "Speech" msgstr "Diskurtsoa" msgid "Start Speaking" msgstr "Hasi hitz egiten" msgid "Stop Speaking" msgstr "Gelditu hitz egitea" msgid "&View" msgstr "&Ikusi" msgid "Enter Full Screen" msgstr "Sartu pantaila osoan" msgid "Window" msgstr "Leihoa" msgid "Minimize" msgstr "Minimizatu" msgid "Zoom" msgstr "Zooma" msgid "Bring All to Front" msgstr "Ekarri denak aurrera" #. TRANSLATORS:File kind displayed in Finder/Explorer msgid "PO Translation" msgstr "PO itzulpena" msgid "The file cannot be opened." msgstr "Fitxategia ezin da ireki." msgid "Invalid file" msgstr "Fitxategi baliogabea" msgid "" "The file may be either corrupted or in a format not recognized by Poedit." msgstr "" "Fitxategia hondatuta edo Poedit-ek ezagutzen ez duen formatu batean egon " "daiteke." msgid "You can’t drop more than one file on Poedit window." msgstr "Ezin duzu fitxategi bat baino gehiago jaregin Poedit leihoan." #, c-format msgid "File “%s” is not a message catalog." msgstr "\"%s\" fitxategia ez da mezu-katalogo bat." msgid "Poedit" msgstr "Poedit" msgid "&File" msgstr "&Fitxategia" msgid "&Go" msgstr "&Joan" #. TRANSLATORS: %s is language name in its basic form (as you #. would see e.g. in a list of supported languages). You may need #. to rephrase it, e.g. to an equivalent of "for language %s". #, c-format msgid "" "Spellchecking is disabled, because the dictionary for %s isn’t installed." msgstr "" "Ortografia egiaztaketa desgaituta dago, %s hiztegia ez dagoelako instalatuta." msgid "Install" msgstr "Instalatu" msgid "Catalog modified. Do you want to save changes?" msgstr "Katalogoa aldatu egin da. Aldaketak gordetzea nahi duzu?" msgid "Save changes" msgstr "Gorde aldaketak" msgid "Your changes will be lost if you don’t save them." msgstr "Zure aldaketak galdu egingo dira ez badituzu gordetzen." msgid "Save" msgstr "Gorde" msgid "Don’t save" msgstr "Ez gorde" msgid "Don’t Save" msgstr "Ez gorde" msgid "Save as…" msgstr "Gorde honela…" msgid "Compile to…" msgstr "Konpilatu hona…" msgid "Compiled Translation Files" msgstr "Konpilatutako itzulpen-fitxategiak" msgid "Export as…" msgstr "Esportatu honela…" msgid "HTML Files" msgstr "HTML fitxategiak" msgid "Open catalog template" msgstr "Ireki katalogo-txantiloia" msgid "Source code not available." msgstr "Iturburu kodea ez dago eskuragarri." msgid "Updating failed" msgstr "Eguneraketak huts egin du" msgid "" "Translations couldn’t be updated from the source code, because no code was " "found in the location specified in the catalog’s Properties." msgstr "" "Itzulpenak ezin izan dira eguneratu iturburu kodetik, ez delako koderik " "aurkitu katalogoaren propietateetan adierazitako kokalekuan." msgid "Entries in the catalog are probably incorrect." msgstr "Katalogoko sarrerak ziurrenik oker egongo dira." msgid "Updating the catalog failed. Click on 'Details >>' for details." msgstr "" "Huts egin du katalogoa eguneratzerakoan. Klikatu 'Xehetasunak >>' " "xehetasunak ikusteko." #, c-format msgid "%d issue with the translation found." msgid_plural "%d issues with the translation found." msgstr[0] "%d arazo aurkitu da itzulpenarekin. " msgstr[1] "%d arazo aurkitu dira itzulpenarekin." msgid "Validation results" msgstr "Balioztapenaren emaitzak" msgid "" "Entries with errors were marked in red in the list. Details of the error " "will be shown when you select such an entry." msgstr "" "Erroreak dituzten sarrerak gorriz markatu dira zerrendan. Errorearen " "xehetasunak sarrera hautatzen duzunean erakutsiko dira." msgid "The file was saved safely." msgstr "Fitxategia seguru gorde da." msgid "" "The file was saved safely and compiled into the MO format, but it will " "probably not work correctly." msgstr "" "Fitxategia ongi gorde eta MO formatuan konpilatu da, baina ziurrenik ez du " "ongi funtzionatuko." msgid "" "The file was saved safely, but it cannot be compiled into the MO format and " "used." msgstr "" "Fitxategia ongi gorde da, baina ezin da MO formatuan konpilatu eta erabili." msgid "" "The file was compiled into the MO format, but it will probably not work " "correctly." msgstr "" "Fitxategia MO formatuan konpilatu da, baina ziurrenik ez du ongi " "funtzionatuko." msgid "The file cannot be compiled into the MO format and used." msgstr "Fitxategia ezin da MO formatuan konpilatu eta erabili." msgid "No problems with the translation found." msgstr "Ez da arazorik aurkitu itzulpenean." #, c-format msgid "The translation is ready for use, but %d entry is not translated yet." msgid_plural "" "The translation is ready for use, but %d entries are not translated yet." msgstr[0] "" "Itzulpena erabiltzeko gertu dago, baina sarrera %d ez dago itzulita oraindik." msgstr[1] "" "Itzulpena erabiltzeko gertu dago, baina %d sarrera ez daude itzulita " "oraindik." msgid "The translation is ready for use." msgstr "Itzulpena erabiltzeko prest dago." #, c-format msgid "Poedit automatically fixed invalid content in the file “%s”." msgstr "Poeditek automatikoki konpondu du \"%s\" fitxategiko eduki baliogabea." msgid "" "The file contained duplicate items, which is not allowed in PO files and " "would prevent the file from being used. Poedit fixed the issue, but you " "should review translations of any items marked as needing work and correct " "them if necessary." msgstr "" "Fitxategiak bikoiztutako elementuak zituen, eta hau ez da onartzen PO " "fitxategietan, ezin izango litzateke fitxategia erabili. Poedit-ek arazoa " "konpondu du, baina 'lana behar du'. gisa markatutako itzulpenak gainbegiratu " "beharko zenituzte eta behar bada zuzendu." msgid "Language of the translation isn’t set." msgstr "Itzulpenaren hizkuntza ez dago ezarrita." msgid "Set Language" msgstr "Ezarri hizkuntza" msgid "Set language" msgstr "Ezarri hizkuntza" #. TRANSLATORS: This is shown underneath "Language of the translation isn't set (or ...is the same as source language)." msgid "" "Suggestions are not available if the translation language is not set " "correctly. Other features, such as plural forms, may be affected as well." msgstr "" "Iradokizunak ez daude eskuragarri itzulpen hizkuntza ez badago zuzen " "ezarrita. Beste ezaugarri batzuetan izan dezake eragina ere, plural formak " "esaterako." msgid "Language of the translation is the same as source language." msgstr "Itzulpen hizkuntza eta iturburuko hizkuntza bera da." msgid "Fix Language" msgstr "Zuzendu hizkuntza" msgid "Fix language" msgstr "Konpondu hizkuntzarena" msgid "" "This catalog has entries with plural forms, but doesn’t have Plural-Forms " "header configured." msgstr "" "Katalogo honek plural forma duten sarrerak ditu, baina ez du Plural-Forms " "goiburua konfiguratuta." msgid "" "Entries in this catalog have different plural forms count from what " "catalog’s Plural-Forms header says" msgstr "" "Katalogo honetako sarrerek katalogoaren Plural-Forms goiburuak " "zehaztutakoaren desberdina den forma plural kopurua du" msgid "Required header Plural-Forms is missing." msgstr "Beharrezkoa den Plural-Forms goiburua falta da." #, c-format msgid "Syntax error in Plural-Forms header (\"%s\")." msgstr "Sintaxi errorea Plural-Forms goiburuan (\"%s\")." msgid "Fix the Header" msgstr "Konpondu goiburua" msgid "Fix the header" msgstr "Konpondu goiburua" #. TRANSLATORS: %s is language name in its basic form (as you #. would see e.g. in a list of supported languages). You may need #. to rephrase it, e.g. to an equivalent of "for language %s". #, c-format msgid "Plural forms expression used by the catalog is unusual for %s." msgstr "Katalogoak erabiltzen dituen plural-formak ezohikoak dira %s-rako." #. TRANSLATORS: A verb, shown as action button with ""Plural forms expression used by the catalog is unusual for %s.")" msgid "Review" msgstr "Berrikusi" #, c-format msgid "Error loading message catalog file “%s”." msgstr "Errorea \"%s\" mezu-katalogo fitxategia kargatzean." #, c-format msgid "Translated: %d of %d (%d %%)" msgstr "Itzulita: %d / %d (%%%d)" #, c-format msgid "Remaining: %d" msgstr "Gelditzen dira: %d" #, c-format msgid "%d error" msgid_plural "%d errors" msgstr[0] "errore %d" msgstr[1] "%d errore" #, c-format msgid "%d entry" msgid_plural "%d entries" msgstr[0] "Sarrera %d" msgstr[1] "%d sarrera" msgid " (unsaved)" msgstr " (gorde gabe)" msgid " (modified)" msgstr "(aldatuta)" #, c-format msgid "Failed to update translation memory: %s" msgstr "Hutsegitea itzulpen memoria eguneratzerakoan: %s" msgid "Purge deleted translations" msgstr "Purgatu ezabatutako itzulpenak" msgid "Do you want to remove all translations that are no longer used?" msgstr "Luzaroan erabili ez diren itzulpen guztiak kentzea nahi duzu?" msgid "" "If you continue with purging, all translations marked as deleted will be " "permanently removed. You will have to translate them again if they are added " "back in the future." msgstr "" "Purgarekin jarraitzen baduzu, ezabaturik bezala markaturiko itzulpen guztiak " "betiko kenduko dira. Berriro itzuli beharko dituzu etorkizunean atzera " "gehitzen badira." msgid "Keep" msgstr "Mantendu" msgid "Purge" msgstr "Purgatu" msgid "Copy from source text" msgstr "Kopiatu jatorrizko testutik" msgid "Copy from Source Text" msgstr "Kopiatu jatorrizko testutik" #. TRANSLATORS: This is the key shortcut used in menus on Windows, some languages call them differently #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Ctrl+" msgstr "Ctrl+" msgid "Clear translation" msgstr "Garbitu itzulpena" msgid "Clear Translation" msgstr "Garbitu itzulpena" msgid "Edit comment" msgstr "Editatu iruzkina" msgid "Edit Comment" msgstr "Editatu iruzkina" msgid "References:" msgstr "Erreferentziak:" msgid "&Bookmarks" msgstr "&Laster-markak" #. TRANSLATORS: This is the key shortcut used in menus on Windows, some languages call them differently #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Alt+" msgstr "Alt+" #, c-format msgid "Set bookmark %i" msgstr "Ezarri %i laster-marka" #, c-format msgid "Go to bookmark %i" msgstr "Joan %i laster-markara" #, c-format msgid "Set Bookmark %i" msgstr "Ezarri %i laster-marka" #, c-format msgid "Go to Bookmark %i" msgstr "Joan %i laster-markara" msgid "Hide Sidebar" msgstr "Ezkutatu alboko barra" msgid "Show Sidebar" msgstr "Erakutsi alboko barra" msgid "Hide Status Bar" msgstr "Ezkutatu egoera-barra" msgid "Show Status Bar" msgstr "Erakutsi egoera-barra" msgid "Source text:" msgstr "Jatorrizko testua:" msgid "Singular:" msgstr "Singularra:" msgid "Plural:" msgstr "Plurala:" msgid "Translation:" msgstr "Itzulpena:" msgid "Pre-translated" msgstr "Aurre-itzulita" msgid "Needs Work" msgstr "Lana behar du" #. TRANSLATORS: This indicates that the string's translation isn't final #. and has known problems. For example, it might be machine translated or #. fuzzy matched from an older string. The translation should be short and #. convey this. If it's problematic to translate it, "Needs review" is #. acceptable substitute, but note that the meaning is subtly different: #. "needs review" implies that somebody else should review the string after #. I am done with it (i.e. consider it good), while "needs work" implies I #. need to return to it and finish the translation. msgid "Needs work" msgstr "Lana behar du" msgid "" "POT files are only templates and don’t contain any translations themselves.\n" "To make a translation, create a new PO file based on the template." msgstr "" "POT fitxategiak txantiloiak besterik ez dira eta ez dute inolako itzulpenik " "berez.\n" "Itzulpena egiteko, sortu PO fitxategi berri bat txantiloian oinarrituz." msgid "Create New Translation" msgstr "Sortu itzulpen berria" msgid "Create new translation" msgstr "Sortu itzulpen berria" msgid "Everything" msgstr "Dena" #, c-format msgid "Form %i" msgstr "%i forma" msgid "Singular" msgstr "Singularra" msgid "Zero" msgstr "Zero" msgid "One" msgstr "Bat" msgid "Two" msgstr "Bi" msgid "Plural" msgstr "Plurala" msgid "Other" msgstr "Beste bat" #, c-format msgid "%s Format" msgstr "%s Formatua" #. TRANSLATORS: %s is replaced with language name, e.g. "PHP" or "C", so "PHP Format" etc." #, c-format msgid "%s format" msgstr "%s formatua" msgid "Source text" msgstr "Jatorrizko testua" #, c-format msgid "Translation — %s" msgstr "Itzulpena — %s" msgid "ID" msgstr "IDa" #, c-format msgid "Source text — %s" msgstr "Jatorrizko testua — %s" msgid "unknown language" msgstr "hizkuntza ezezaguna" #, c-format msgid "Failed command: %s" msgstr "Komando hutsegitea: %s" msgid "Failed to merge gettext catalogs." msgstr "Huts egin du gettext katalogoak batzerakoan." msgid "Source file" msgstr "Iturburu-fitxategia" msgid "Source file occurrence:" msgstr "Iturburu-fitxategiko gertaera:" msgid "Open in Editor" msgstr "Ireki editorean" msgid "Open in editor" msgstr "Ireki editorean" msgid "No references for the selected item." msgstr "Ez da erreferentziarik aurkitu hautatutako elementuarentzat." #, c-format msgid "Error opening file %s!" msgstr "Errorea %s fitxategia irekitzean!" msgid "Find" msgstr "Bilatu" msgid "Replace" msgstr "Ordeztu" #. TRANSLATORS: Expander in Find window for additional options (case sensitive etc.) msgid "Options" msgstr "Aukerak" msgid "Ignore case" msgstr "Ezikusi maiuskulak/minuskulak" msgid "Wrap around" msgstr "Itzulbiratu" msgid "Whole words only" msgstr "Hitz osoak bakarrik" msgid "Find in source texts" msgstr "Bilatu jatorrizko testuetan" msgid "Find in translations" msgstr "Bilatu itzulpenetan" msgid "Find in comments" msgstr "Bilatu iruzkinetan" msgid "Close" msgstr "Itxi" msgid "Replace &All" msgstr "Ordeztu &denak" msgid "Replace &all" msgstr "Ordeztu &denak" msgid "&Replace" msgstr "&Ordeztu" msgid "< &Previous" msgstr "< &Aurrekoa" msgid "&Next >" msgstr "&Hurrengoa >" msgid "String to find" msgstr "Bilatzeko katea" msgid "Replacement string" msgstr "Ordezpen-katea" #, c-format msgid "Cannot execute program: %s" msgstr "Ezin da programa abiarazi: %s" msgid "Language Code or Name (e.g. en_GB)" msgstr "Hizkuntza kodea edo izena (adib. en_GB)" msgid "Translation Language" msgstr "Itzulpen hizkuntza" msgid "Language of the translation:" msgstr "Itzulpenaren hizkuntza:" msgid "Poedit - Catalogs manager" msgstr "Poedit - Katalogoen kudeatzailea" msgid "Catalog" msgstr "Katalogoa" msgid "Total" msgstr "Guztira" msgid "Untrans" msgstr "Itzuli gabe" msgid "Errors" msgstr "Erroreak" msgid "Last modified" msgstr "Azken aldaketa" msgid "Select directory" msgstr "Hautatu direktorioa" msgid "Directories:" msgstr "Direktorioak:" msgid "" msgstr "" msgid "Do you want to delete the project?" msgstr "Proiektu hau ezabatu nahi duzu?" msgid "Confirmation" msgstr "Berrespena" msgid "" "Do you really want to do mass update of\n" "all catalogs in this project?" msgstr "" "Ziur proiektu honetako\n" "katalogo guztiak eguneratu nahi dituzula?" msgid "Information about the translator" msgstr "Itzultzaileari buruzko informazioa" msgid "Name:" msgstr "Izena:" msgid "Your Name" msgstr "Zure izena" msgid "Email:" msgstr "E-maila:" msgid "your_email@example.com" msgstr "zure-posta-helbidea@adibidea.com" msgid "" "Your name and email address are only used to set the Last-Translator header " "of GNU gettext files." msgstr "" "Zure izena eta e-mail helbidea GNU gettext fitxategietako Last-Translator " "goiburua ezartzeko besterik ez da erabiliko." msgid "Editing" msgstr "Edizioa" msgid "Automatically compile MO file when saving" msgstr "Konpilatu MO fitxategia automatikoki gordetzean" msgid "Show summary after catalog update" msgstr "Erakutsi laburpena katalogoa eguneratu ondoren" msgid "Check spelling" msgstr "Egiaztatu ortografia" msgid "Always change focus to text input field" msgstr "Betik aldatu fokua testu sarrera eremura" msgid "" "Never let the list of strings take focus. If enabled, you must use Ctrl-" "arrows for keyboard navigation but you can also type text immediately, " "without having to press Tab to change focus." msgstr "" "Ez baimendu inoiz kate-zerrendak fokua hartzea. Gaitzen bada, ctrl+geziak " "erabili behar dituzu teklatu bidezko nabigaziorako edo zuzenean idazten hasi " "zaitezke, fokua aldatzeko tabuladorea sakatzeko beharrik gabe." msgid "Appearance" msgstr "Itxura" msgid "Use custom list font:" msgstr "Erabili aukeratutako tipografia zerrendetan:" msgid "Use custom text fields font:" msgstr "Erabili aukeratutako tipografia testu eremuetan:" msgid "Change UI language" msgstr "Aldatu erabiltzaile-interfazearen hizkuntza" #. TRANSLATORS: This is a note appended to "Check spelling" when running on older Windows versions msgid "(requires Windows 8 or newer)" msgstr "(Windows 8 edo berriagoa behar du)" msgid "General" msgstr "Orokorra" msgid "Use translation memory" msgstr "Erabili itzulpen memoria" msgid "Learn From Files…" msgstr "Ikasi fitxategietatik…" msgid "Learn from files…" msgstr "Ikasi fitxategietatik…" #. TRANSLATORS: This is a button that deletes everything in the translation memory (i.e. clears/resets it). msgid "Reset" msgstr "Berrezarri" #. TRANSLATORS: Followed by "match translations within the file" or "pre-translate from TM" msgid "When updating from sources" msgstr "Iturburuetatik eguneratzean" #. TRANSLATORS: Preceded by "When updating from sources" msgid "fuzzy match within the file" msgstr "zalantzako bat egitea fitxategian" #. TRANSLATORS: Preceded by "When updating from sources" msgid "pre-translate from TM" msgstr "aurre-itzuli itzulpen memoriatik" msgid "" "Poedit can attempt to fill in new entries from only previous translations in " "the file or from your entire translation memory. Using the TM won’t be very " "effective if it’s near-empty, but it will get better as you add more " "translations to it." msgstr "" "Poedit sarrera berriak zure aurreko itzulpenekin edo itzulpen memoriarekin " "betetzen saiatu daiteke. Itzulpen memoria erabiltzea ez da oso eraginkorra " "izango erdi hutsik badago, baina hobetzen joango da itzulpenak gehitu ahala." msgid "Stored translations:" msgstr "Biltegiratutako itzulpenak:" msgid "Database size on disk:" msgstr "Datu-basearen tamaina diskoan:" msgid "Select translation files to import" msgstr "Hautatu inportatzeko itzulpen-fitxategiak" msgid "Translation Memory" msgstr "Itzulpen memoria" msgid "Importing translations…" msgstr "Itzulpenak inportatzen…" msgid "Finalizing…" msgstr "Amaitzen…" msgid "Reset translation memory" msgstr "Berrezarri itzulpen memoria" msgid "Are you sure you want to reset the translation memory?" msgstr "Ziur zaude itzulpen memoria berrezarri nahi duzula?" msgid "" "Resetting the translation memory will irrevocably delete all stored " "translations from it. You can’t undo this operation." msgstr "" "Itzulpen memoria berrezartzeak atzerabiderik gabe ezabatuko ditu bertan " "biltegiratutako itzulpen guztiak. Ezin duzu eragiketa hau desegin." msgid "Cancel" msgstr "Utzi" #. TRANSLATORS: This is abbreviation of "Translation Memory" used in Preferences on macOS. #. Long text looks weird there, too short (like TM) too, but less so. "General" is about ideal #. length there. msgid "TM" msgstr "IM" msgid "" "Source code extractors are used to find translatable strings in the source " "code files and extract them so that they can be translated." msgstr "" "Iturburu kode erauzleak iturburu kode fitxategietan kate itzulgarriak " "aurkitzeko eta itzuli ahal izateko erauzteko erabiltzen dira." msgid "Custom Extractors:" msgstr "Erauzle pertsonalizatuak:" msgid "Custom extractors:" msgstr "Erauzle pertsonalizatuak:" msgid "Edit…" msgstr "Editatu…" msgid "GNU gettext" msgstr "GNU gettext" msgid "" "Supports all programming languages recognized by GNU gettext tools (PHP, C/C+" "+, C#, Perl, Python, Java, JavaScript and others)." msgstr "" "GNU gettext tresnek ezagututako programazio hizkuntza guztiak onartzen ditu " "(PHP, C/C++, C#, Perl, Python, Java, JavaScript eta beste batzuk)." msgid "Delete extractor" msgstr "Ezabatu erauzlea" #, c-format msgid "Are you sure you want to delete the “%s” extractor?" msgstr "Ziur \"%s\" erauzlea ezabatu nahi duzula?" msgid "Extractors" msgstr "Erauzleak" msgid "Accounts" msgstr "Kontuak" msgid "Automatically check for updates" msgstr "Egiaztatu eguneraketak automatikoki" msgid "Include beta versions" msgstr "Beta bertsioak barne" msgid "" "Beta versions contain the latest new features and improvements, but may be a " "bit less stable." msgstr "" "Beta bertsioek azken ezaugarriak eta hobekuntzak dituzte, baina apur bat " "ezegonkorrak izan daitezke." msgid "Updates" msgstr "Eguneraketak" msgid "" "These settings affect internal formatting of PO files. Adjust them if you " "have specific requirements e.g. because of version control." msgstr "" "Ezarpen hauek PO fitxategien barneko formatuari eragiten diote. Zehaztu " "betebehar bereiziren bat baduzu, adib. bertsio kontrola dela eta." msgid "Line endings:" msgstr "Lerro amaierak:" msgid "Unix (recommended)" msgstr "Unix (gomendatua)" msgid "Windows" msgstr "Windows" #. TRANSLATORS: Followed by text control for entering number; wraps text at given width msgid "Wrap at:" msgstr "Itzulbiratzea:" msgid "Preserve formatting of existing files" msgstr "Mantendu dauden fitxategien formatua" msgid "Advanced" msgstr "Aurreratua" msgid "Pre-translating…" msgstr "Aurre-itzultzen..." #, c-format msgid "Pre-translated %u string" msgid_plural "Pre-translated %u strings" msgstr[0] "Kate %u aurre-itzulita" msgstr[1] "%u kate aurre-itzulita" #. TRANSLATORS: This is a somewhat common term describing the action where #. you apply the translation memory and/or machine translation to all of the #. strings you're translating as the first step, followed by correcting, #. improving etc., i.e. actually translating the strings. This may be tricky #. to express in other languages as simply as in English, but please try to #. keep it similarly concise. Please try to avoid, if possible, describing it #. as "auto-translation" and similar, because such terminology would mislead #. some users into thinking it's all that needs to be done (spoken from #. experience). "Pre-translate" nicely expresses that it's only the step done #. *before* actual translation. msgid "Pre-translate" msgstr "Aurre-itzuli" msgid "Only fill in exact matches" msgstr "Bete bakarrik zehaztasun osoz bat datozenean" msgid "" "By default, inaccurate results are filled in as well and marked as needing " "work. Check this option to only include accurate matches." msgstr "" "Lehenetsita, zehatzak ez diren emaitzak bete egiten dira eta 'lana behar du' " "bezala markatu. Hautatu aukera hau zehazki bat datozenak besterik ez " "gehitzeko." msgid "Don’t mark exact matches as needing work" msgstr "Ez markatu zehazki bat datozenak 'lana behar du' bezala" msgid "" "Only enable if you trust the quality of your TM. By default, all matches " "from the TM are marked as needing work and should be reviewed before use." msgstr "" "Gaitu bakarrik zure itzulpen memoriaren kalitateaz fidatzen bazara. " "Lehenetsita itzulpen memoriako bat etortzean 'lana behar du' gisa markatzen " "dira eta erabili aurretik berrikusi behar dira." msgid "" "Pre-translation automatically finds exact or fuzzy matches for untranslated " "strings in the translation memory and fills in their translations." msgstr "" "Aurre-itzulpenak automatikoki aurkitzen ditu itzulpen memorian itzuli gabeko " "kateentzako bat etortze zehatzak edo gutxi gora beherakoak eta itzulpena " "betetzen du." #, c-format msgid "%d entry was pre-translated." msgid_plural "%d entries were pre-translated." msgstr[0] "sarrera %d aurre-itzulita." msgstr[1] "%d sarrera aurre-itzulita." msgid "" "The translations were marked as needing work, because they may be " "inaccurate. You should review them for correctness." msgstr "" "Itzulpenak 'lana behar du' gisa markatu dira, ez zehatzak izan " "daitezkeelako. Zuzenak diren berrikusi beharko zenuke." msgid "No entries could be pre-translated." msgstr "Ezin izan da sarrerarik aurre-itzuli." msgid "" "The TM doesn’t contain any strings similar to the content of this file. It " "is only effective for semi-automatic translations after Poedit learns enough " "from files that you translated manually." msgstr "" "Itzulpen memoriak ez du fitxategi honen edukiaren antzekoa den katerik. Zuk " "eskuz itzulitako fitxategietatik ikasi ahala eraginkorragoa da Poedit " "Itzulpen erdi-automatikoentzat." msgid "" "Drag and Drop Folders Here\n" "\n" "or use the + button" msgstr "" "Arrastatu eta jaregin fitxategiak hona\n" "\n" "edo erabili + botoia" msgid "" "Drag and drop folders here\n" "\n" "or use the + button" msgstr "" "Arrastatu eta jaregin fitxategiak hona\n" "\n" "edo erabili + botoia" msgid "Add Folders…" msgstr "Gehitu karpetak…" msgid "Add folders…" msgstr "Gehitu karpetak…" msgid "Add Files…" msgstr "Gehitu fitxategiak…" msgid "Add files…" msgstr "Gehitu fitxategiak…" msgid "Add Wildcard…" msgstr "Gehitu komodina…" msgid "Add wildcard…" msgstr "Gehitu komodina…" msgid "Paths" msgstr "Bideak" msgid "Excluded paths" msgstr "Baztertutako bideak" msgid "Advanced extraction settings" msgstr "Erauzte ezarpen aurreratuak" msgid "Extract notes for translators from:" msgstr "Erauzi itzultzaileentzako oharrak hemendik:" msgid "Comments prefixed with:" msgstr "Aurrizki hau duten iruzkinak:" msgid "All comments" msgstr "Iruzkin guztiak" msgid "Additional xgettext flags:" msgstr "xgettext marka gehigarriak:" msgid "Additional keywords" msgstr "Gako-hitz gehigarriak" msgid "Name of the project the translation is for" msgstr "Itzulitako proiektuaren izena" msgid "Team name and email address or URL" msgstr "Taldearen izena eta e-mail helbidea edo URL-a" msgid "e.g. nplurals=2; plural=(n > 1);" msgstr "Adib. nplurals=2; plural=(n > 1);" msgid "UTF-8 (recommended)" msgstr "UTF-8 (gomendatua)" msgid "Please save the file first. This section cannot be edited until then." msgstr "Mesedez gorde fitxategia lehenik. Atal hau ezin ordura arte editatu." msgid "Not all plural forms are translated." msgstr "Ez dira forma plural guztiak itzuli." msgid "The translation should start as a sentence." msgstr "Itzulpena esaldi gisa hasi behar da." msgid "The translation should start with a lowercase character." msgstr "Itzulpena minuskula batez hasi behar da." msgid "The translation doesn’t start with a space." msgstr "Itzulpena ez da zuriune batekin hasten." msgid "The translation starts with a space, but the source text doesn’t." msgstr "Itzulpena zuriune batekin hasten da, baina jatorrizko testua ez." msgid "The translation is missing a newline at the end." msgstr "Itzulpenari lerro berri bat falta zaio amaieran." msgid "The translation ends with a newline, but the source text doesn’t." msgstr "Itzulpena lerro berri batekin amaitzen da, baina jatorrizko testua ez." msgid "The translation is missing a space at the end." msgstr "Itzulpenak zuriune bat falta du amaieran." msgid "The translation ends with a space, but the source text doesn’t." msgstr "Itzulpena zuriune batekin amaitzen da, baina jatorrizko testua ez." #, c-format msgid "The translation should end with “%s”." msgstr "Itzulpenak “%s”-rekin amaitu behar du." #, c-format msgid "The translation should not end with “%s”." msgstr "Itzulpenak ez du “%s”-rekin amaitu behar." #, c-format msgid "The translation ends with “%s”, but the source text ends with “%s”." msgstr "" "Itzulpena \"%s\"-rekin amaitzen da, baina jatorrizko testua \"%s\"-rekin." msgid "Comment:" msgstr "Iruzkina:" msgid "OK" msgstr "Ados" msgid "C&lear" msgstr "&Garbitu" msgid "Clear the comment" msgstr "Garbitu iruzkina" msgid "New" msgstr "Berria" msgid "Create new translations project" msgstr "Sortu itzulpen proiektu berria" msgid "Edit" msgstr "Editatu" msgid "Edit the project" msgstr "Editatu proiektua" msgid "Delete the project" msgstr "Ezabatu proiektua" msgid "Update all" msgstr "Eguneratu denak" msgid "Update all catalogs in the project" msgstr "Eguneratu proiektuko katalogo guztiak" msgid "Edit project" msgstr "Editatu proiektua" msgid "Project name:" msgstr "Proiektuaren izena:" msgid "Browse" msgstr "Arakatu" msgid "Add directory to the list" msgstr "Gehitu direktorioa zerrendara" msgid "&New…" msgstr "&Berria…" msgid "New from &POT/PO file…" msgstr "Berria &POT/PO fitxategitik…" msgid "New From &POT/PO File…" msgstr "Berria &POT/PO fitxategitik…" msgid "&Open…" msgstr "&Ireki…" msgid "Open Recent" msgstr "Ireki erabili berria" msgid "Open from Crowdin…" msgstr "Ireki Crowdin-etik…" msgid "Open From Crowdin…" msgstr "Ireki Crowdin-etik…" msgid "&Close" msgstr "&Itxi" msgid "&Save" msgstr "&Gorde" msgid "Save &as…" msgstr "Gorde &honela…" msgid "Save &As…" msgstr "Gorde &honela…" msgid "Compile to MO…" msgstr "Konpilatu MO-ra…" msgid "E&xport as HTML…" msgstr "E&sportatu HTML gisa…" msgid "Check for updates…" msgstr "Egiaztatu eguneraketarik dagoen…" msgid "&Preferences…" msgstr "&Hobespenak…" msgid "Catalogs &manager" msgstr "Katalogoen &kudeatzailea" msgid "Catalogs &Manager" msgstr "Katalogoen &kudeatzailea" msgid "E&xit" msgstr "I&rten" msgid "Quit" msgstr "Irten" msgid "Copy from singular" msgstr "Kopiatu singularretik" msgid "Copy From Singular" msgstr "Kopiatu singularretik" msgid "Translation needs &work" msgstr "Itzulpenak &lana behar du" msgid "Translation Needs &Work" msgstr "Itzulpenak lana &behar du" msgid "Edit &comment" msgstr "Editatu &iruzkina" msgid "Edit &Comment" msgstr "Editatu &iruzkina" msgid "Suggestions" msgstr "Iradokizunak" msgid "&Find…" msgstr "&Bilatu…" msgid "Replace…" msgstr "Ordeztu…" msgid "Find next" msgstr "Bilatu hurrengoa" msgid "Find previous" msgstr "Bilatu aurrekoa" msgid "Find and Replace…" msgstr "Bilatu eta ordeztu…" msgid "Find Next" msgstr "Bilatu hurrengoa" msgid "Find Previous" msgstr "Bilatu aurrekoa" msgid "&Preferences" msgstr "&Hobespenak" msgid "Display entry &IDs" msgstr "Erakutsi sarreren &ID-ak" msgid "Display Entry &IDs" msgstr "Erakutsi sarreren &ID-ak" msgid "Sort by &file order" msgstr "Ordenatu &fitxategiz" msgid "Sort by &File Order" msgstr "Ordenatu &fitxategiz" msgid "Sort by &source" msgstr "Ordenatu i&turburuz" msgid "Sort by &Source" msgstr "Ordenatu i&turburuz" msgid "Sort by &translation" msgstr "Ordenatu itz&ulpenez" msgid "Sort by &Translation" msgstr "Ordenatu Itz&ulpenez" msgid "&Group by context" msgstr "&Taldekatu testuinguruz" msgid "&Group By Context" msgstr "&Taldekatu testuinguruz" msgid "Entries with errors first" msgstr "Erroreak dituzten sarrerak lehenik" msgid "Entries with Errors First" msgstr "Erroreak dituzten sarrerak lehenik" msgid "&Untranslated entries first" msgstr "Itzuli gabeko &sarrerak lehenik" msgid "&Untranslated Entries First" msgstr "Itzuli gabeko &sarrerak lehenik" msgid "&Show references" msgstr "Erakut&si erreferentziak" msgid "&Show References" msgstr "Erakut&si erreferentziak" msgid "Show sidebar" msgstr "Erakutsi alboko barra" msgid "Show status bar" msgstr "Erakutsi egoera-barra" msgid "C&atalog" msgstr "&Katalogoa" msgid "&Update from sources" msgstr "&Eguneratu iturburuetatik" msgid "&Update from Sources" msgstr "Eguneratu &iturburuetatik" msgid "Update from &POT file…" msgstr "Eguneratu &POT fitxategitik…" msgid "Update from &POT File…" msgstr "Eguneratu &POT fitxategitik…" msgid "Sync with Crowdin" msgstr "Sinkronizatu Crowdin-ekin" msgid "Pre-&translate…" msgstr "Aurre-i&tzuli…" msgid "&Purge deleted translations" msgstr "&Purgatu ezabatutako itzulpenak" msgid "&Purge Deleted Translations" msgstr "&Purgatu ezabatutako itzulpenak" msgid "&Validate translations" msgstr "&Balioztatu itzulpenak" msgid "&Validate Translations" msgstr "&Balioztatu itzulpenak" msgid "&Properties…" msgstr "&Propietateak…" msgid "&Done and next" msgstr "&Eginda eta hurrengoa" msgid "&Done and Next" msgstr "&Eginda eta hurrengoa" msgid "&Previous translation" msgstr "A&urreko itzulpena" msgid "&Previous Translation" msgstr "A&urreko itzulpena" msgid "&Next translation" msgstr "&Hurrengo itzulpena" msgid "&Next Translation" msgstr "&Hurrengo itzulpena" msgid "P&revious unfinished" msgstr "A&urreko amaitu gabea" msgid "P&revious Unfinished" msgstr "A&urreko amaigabea" msgid "Ne&xt unfinished" msgstr "Hu&rrengo amaitu gabea" msgid "Ne&xt Unfinished" msgstr "Hu&rrengo amaigabea" msgid "Previous plural form" msgstr "Aurreko plural forma" msgid "Previous Plural Form" msgstr "Aurreko plural forma" msgid "Next plural form" msgstr "Hurrengo plural forma" msgid "Next Plural Form" msgstr "Hurrengo plural forma" msgid "&Online help" msgstr "&Online laguntza" msgid "&Online Help" msgstr "&Online laguntza" msgid "&GNU gettext manual" msgstr "&GNU gettext eskuliburua" msgid "&GNU gettext Manual" msgstr "&GNU gettext eskuliburua" msgid "&About Poedit" msgstr "&Poedit-i buruz" msgid "&About" msgstr "&Honi buruz" msgid "Extractor setup" msgstr "Erauzlearen ezarpena" msgid "List of extensions separated by semicolons (e.g. *.cpp;*.h):" msgstr "Luzapenen zerrenda puntu eta komaz bananduta (adib. *.cpp;*.h):" msgid "Invocation:" msgstr "Erabilera:" msgid "Command to extract translations:" msgstr "Itzulpenak erauzteko komandoa:" msgid "" "This is the command used to launch the extractor.\n" "%o expands to the name of output file, %K to list\n" "of keywords, %F to list of input files,\n" "%C to charset flag (see below)." msgstr "" "Hau erauzlea abiarazteko agindua da.\n" "%o irteerako fitxategiaren izena bihurtzen da, \n" "%K gako-hitzen zerrenda, %F sarrerako fitxategia,\n" "%C karaktere-jokora (ikusi behean)." msgid "An item in keywords list:" msgstr "Gako-hitzen zerrendako elementu bat:" msgid "" "This will be attached to the command line once\n" "for each keyword. %k expands to the keyword." msgstr "" "Gako-hitz bakoitzeko behin erantsiko da hau\n" "komando lerrora. %k gako-hitza da." msgid "An item in input files list:" msgstr "Sarrera-fitxategien zerrendako elementu bat:" #, c-format msgid "" "This will be attached to the command line once\n" "for each input file. %f expands to the filename." msgstr "" "Hau komando lerrora erantsiko zaio \n" "sarrera-fitxategi bakoitzeko behin. %f fitxategi-izena bihurtzen da." msgid "Source code charset:" msgstr "Iturburuaren karaktere-jokoa:" #, c-format msgid "" "This will be attached to the command line\n" "only if source code charset was given. %c expands to charset value." msgstr "" "Hau agindu lerrora gehituko da\n" " jatorrizko karaktere kodeketa ematen bada besterik ez. %c karaktere " "kodeketa da." msgid "Catalog properties" msgstr "Katalogoaren propietateak" msgid "Project name and version:" msgstr "Proiektuaren izena eta bertsioa:" msgid "Language team:" msgstr "Hizkuntza taldea:" msgid "Plural forms:" msgstr "Plural formak:" msgid "Use default rules for this language" msgstr "Erabili hizkuntza honetarako lehenetsitako arauak" msgid "Use custom expression" msgstr "Erabili espresio pertsonalizatua" msgid "Learn about plural forms" msgstr "Ikasi gehiago plural formez" msgid "Charset:" msgstr "Karaktere-jokoa:" msgid "Advanced Extraction Settings…" msgstr "Erauzte ezarpen aurreratuak…" msgid "Advanced extraction settings…" msgstr "Erauzte ezarpen aurreratuak…" msgid "Translation Properties" msgstr "Itzulpenaren propietateak" msgid "Translation properties" msgstr "Itzulpenaren propietateak" msgid "Sources Paths" msgstr "Iturburuen bideak" msgid "Sources paths" msgstr "Iturburuen bideak" msgid "Extract text from source files in the following directories:" msgstr "Erauzi testua direktorio hauetako jatorrizko fitxategietatik:" msgid "Base path:" msgstr "Hasierako bidea:" msgid "Sources Keywords" msgstr "Iturburuetako gako-hitzak" msgid "Sources keywords" msgstr "Iturburuetako gako-hitzak" msgid "" "Use these keywords (function names) to recognize translatable strings\n" "in source files:" msgstr "" "Erabili gako-hitzak (funtzioen izenak) kate itzulgarriak antzemateko\n" "iturburu fitxategietan:" msgid "Also use default keywords for supported languages" msgstr "Erabili lehenetsitako gako-hitzak onartutako hizkuntzetan ere bai" msgid "Learn About Gettext Keywords" msgstr "Ikasi Gettext gako-hitzei buruz" msgid "Learn about gettext keywords" msgstr "Ikasi gettext gako-hitzei buruz" msgid "Update summary" msgstr "Eguneratu laburpena" msgid "" "These strings were found in the sources but were not in the catalog.\n" "Poedit will add them to the catalog now." msgstr "" "Kate hauek iturburuetan aurkitu dira, baina ez katalogoan.\n" "Poedit-ek orain katalogora gehituko ditu." msgid "New strings" msgstr "Kate berriak" msgid "" "These strings are no longer in the sources.\n" "Poedit will remove them from the catalog now." msgstr "" "Kate hauek ez daude jadanik iturburuetan.\n" "Poedit-ek orain katalogotik ezabatuko ditu." msgid "Obsolete strings" msgstr "Kate zaharkituak" msgid "(0 new, 0 obsolete)" msgstr "(0 berri, 0 zaharkitu)" msgid "Open" msgstr "Ireki" msgid "Save catalog" msgstr "Gorde katalogoa" msgid "Validate" msgstr "Balioztatu" msgid "Check for errors in the translation" msgstr "Egiaztatu itzulpenean errorerik dagoen" msgid "Update" msgstr "Eguneratu" msgid "Update catalog - synchronize it with sources" msgstr "Eguneratu katalogoa - sinkronizatu iturburuekin" msgid "Sidebar" msgstr "Alboko barra" msgid "Show or hide the sidebar" msgstr "Erakutsi edo ezkutatu alboko barra" #. TRANSLATORS: "Previous" as in used in the past, now replaced with newer. msgid "Previous source text:" msgstr "Aurreko jatorrizko testua:" msgid "" "The old source text (before it changed during an update) that the now-" "inaccurate translation corresponds to." msgstr "" "Orain desegokia den itzulpena dagokion jatorrizko testua (eguneraketan " "aldatu aurrekoa)." msgid "Notes for translators:" msgstr "Itzultzaileentzako oharrak:" msgid "Add comment" msgstr "Gehitu iruzkina" msgid "Add Comment" msgstr "Gehitu iruzkina" msgid "Translation suggestions:" msgstr "Itzulpen-iradokizunak:" #. TRANSLATORS: This is shown when no translation suggestions can be found in the TM (Windows). msgid "No matches found" msgstr "Ez da bat datorrenik aurkitu" #. TRANSLATORS: This is shown when no translation suggestions can be found in the TM (macOS, Linux). msgid "No Matches Found" msgstr "Ez da bat datorrenik aurkitu" msgid "This string was found in Poedit’s translation memory." msgstr "Kate hau Poedit-en itzulpen memorian aurkitu da." msgid "Cannot create temporary directory." msgstr "Ezin izan da direktorio tenporala sortu." msgid "Welcome to Poedit" msgstr "Ongi etorri Poedit-era" #. TRANSLATORS: This is version information in about dialog, "%s" will be #. version number when used #, c-format msgid "Version %s" msgstr "%s bertsioa" msgid "Edit a Translation" msgstr "Editatu itzulpen bat" msgid "Edit a translation" msgstr "Editatu itzulpen bat" msgid "Open an existing PO file and edit the translation." msgstr "Ireki badagoen PO fitxategi bat eta editatu itzulpena." msgid "" "Take an existing PO file or POT template and create a new translation from " "it." msgstr "" "Hartu badagoen PO fitxategi bat edo POT txantiloi bat eta sortu itzulpen " "berri bat bertatik." msgid "Collaborate on a Translation with Others" msgstr "Parte hartu itzulpen batean besteekin" msgid "Collaborate on a translation with others" msgstr "Parte hartu itzulpen batean besteekin" msgid "" "Download a file from Crowdin project, translate and sync your changes back." msgstr "" "Deskargatu fitxategi bat Crowdin proiektutik, itzuli eta sinkronizatu zure " "aldaketak berriro." msgid "What is Crowdin?" msgstr "Zer da Crowdin?" msgid "There are no translations. That’s unusual." msgstr "Ez dago itzulpenik. Hori ezohikoa da." msgid "" "Translatable entries aren’t added manually in the Gettext system, but are " "automatically extracted\n" "from source code. This way, they stay up to date and accurate.\n" "Translators typically use PO template files (POTs) prepared for them by the " "developer." msgstr "" "Sarrera itzulgarriak ez dira eskuz gehitzen Gettext sisteman, automatikoki " "erauzten dira\n" "iturburu kodetik. Honela, eguneratuta eta zehatz daude.\n" "Itzultzaileek arrunt garatzaileek beraientzat prestatutako PO txantiloi " "fitxategiak (POT-ak) erabiltzen dituzte." msgid "(Learn more about GNU gettext)" msgstr "(Ikasi gehiago GNU gettext buruz)" msgid "The simplest way to fill this catalog is to update it from a POT:" msgstr "Katalogo hau betetzeko bide arruntena POT batetik eguneratzea da:" msgid "Update from POT" msgstr "Eguneratu POT fitxategitik" msgid "Take translatable strings from an existing POT template." msgstr "Hartu kate itzulgarriak dagoen POT txantiloi batetik." msgid "" "You can also extract translatable strings directly from the source code:" msgstr "Kate itzulgarriak zuzenean erauzi ditzakezu iturburu kodetik:" msgid "Extract from sources" msgstr "&Erauzi iturburuetatik" msgid "Configure source code extraction in Properties." msgstr "Konfiguratu iturburu kodearen erauzketa propietateetan." msgid "Sync" msgstr "Sinkronizatu" msgid "Synchronize the translation with Crowdin" msgstr "Sinkronizatu itzulpena Crowdin-ekin" #. TRANSLATORS: This is titlebar of about dialog, "%s" is application name #. ("Poedit" here, but please use "%s") #, c-format msgid "About %s" msgstr "%s(r)i buruz" #. TRANSLATORS: Title of the preferences window on Windows and Linux. "%s" is replaced with "Poedit" when running. #, c-format msgid "%s Preferences" msgstr "%s hobespenak" #. TRANSLATORS: macOS item in app menu msgid "Services" msgstr "Zerbitzuak" #. TRANSLATORS: macOS item in app menu, %s is replaced with "Poedit" #, c-format msgid "Hide %s" msgstr "Ezkutatu %s" #. TRANSLATORS: macOS item in app menu msgid "Hide Others" msgstr "Ezkutatu besteak" #. TRANSLATORS: macOS item in app menu msgid "Show All" msgstr "Erakutsi denak" #. TRANSLATORS: macOS item in app menu, %s is replaced with "Poedit" #, c-format msgid "Quit %s" msgstr "Irten %s(e)tik" #. TRANSLATORS: macOS item in app menu msgid "Preferences…" msgstr "Hobespenak…" msgid "Preferences..." msgstr "Hobespenak..." #. TRANSLATORS: Title of a category in Windows task menu (right-click icon in taskbar) msgid "Recent" msgstr "Azkenak" #. TRANSLATORS: Title of a category in Windows task menu (right-click icon in taskbar) msgid "Frequent" msgstr "Ohikoa" msgid "&Apply" msgstr "&Aplikatu" msgid "Apply" msgstr "Aplikatu" msgid "&Back" msgstr "A&tzera" msgid "Back" msgstr "Atzera" msgid "&Cancel" msgstr "&Utzi" msgid "&Clear" msgstr "&Garbitu" msgid "Clear" msgstr "Garbitu" msgid "Copy" msgstr "Kopiatu" msgid "Cu&t" msgstr "&Ebaki" msgid "Cut" msgstr "Ebaki" msgid "&Delete" msgstr "E&zabatu" msgid "&Quit" msgstr "&Irten" msgid "File" msgstr "Fitxategia" msgid "Help" msgstr "Laguntza" msgid "&New" msgstr "&Berria" msgid "&No" msgstr "&Ez" msgid "No" msgstr "Ez" msgid "&OK" msgstr "Ad&os" msgid "Open…" msgstr "Ireki…" msgid "&Open..." msgstr "&Ireki..." msgid "Open..." msgstr "Ireki..." msgid "&Paste" msgstr "&Itsatsi" msgid "Paste" msgstr "Itsatsi" msgid "Preferences" msgstr "Hobespenak" msgid "&Redo" msgstr "&Berregin" msgid "Refresh" msgstr "Freskatu" msgid "&Save as" msgstr "&Gorde honela" msgid "Save as" msgstr "Gorde honela" msgid "Select &All" msgstr "Hautatu &denak" msgid "Select All" msgstr "Hautatu denak" msgid "&Undo" msgstr "&Desegin" msgid "&Yes" msgstr "&Bai" msgid "Yes" msgstr "Bai" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Shift+" msgstr "Maius.+" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Enter" msgstr "Sartu" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Up" msgstr "Gora" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Down" msgstr "Behera" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Left" msgstr "Ezkerra" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Right" msgstr "Eskuina" #. TRANSLATORS: Keyboard shortcut, must correspond to translation of "Ctrl+" msgid "ctrl" msgstr "ctrl" #. TRANSLATORS: Keyboard shortcut, must correspond to translation of "Alt+" msgid "alt" msgstr "alt" #. TRANSLATORS: Keyboard shortcut, must correspond to translation of "Shift+" msgid "shift" msgstr "maius." poedit-2.0.6/locales/bs.po0000664000372000037200000013645613230132075012325 00000000000000msgid "" msgstr "" "Project-Id-Version: poedit\n" "Report-Msgid-Bugs-To: help@poedit.net\n" "POT-Creation-Date: 2017-12-05 15:52+0100\n" "PO-Revision-Date: 2017-07-27 03:14-0400\n" "Last-Translator: vslavik \n" "Language-Team: Bosnian\n" "Language: bs_BA\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" "%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" "X-Generator: crowdin.com\n" "X-Crowdin-Project: poedit\n" "X-Crowdin-Language: bs\n" "X-Crowdin-File: /locales/poedit.pot\n" msgid "Hide this notification message" msgstr "Sakrij ovu napomenu" msgid "Don’t Show Again" msgstr "" msgid "Don’t show again" msgstr "" #, c-format msgid "(New: %i, obsolete: %i)" msgstr "(Novo: %i, zastarjelo: %i)" msgid "Updating catalog" msgstr "Ažuriram katalog" msgid "Collecting source files…" msgstr "" msgid "Extracting translatable strings…" msgstr "" msgid "Failed to load extracted catalog." msgstr "Nije moguće učitati raspakovani katalog." msgid "Merging differences…" msgstr "" #, c-format msgid "“%s” is not a valid POT file." msgstr "" #, c-format msgid "%i line of file “%s” was not loaded correctly." msgid_plural "%i lines of file “%s” were not loaded correctly." msgstr[0] "" msgstr[1] "" msgstr[2] "" #, c-format msgid "Line %d of file “%s” is corrupted (not valid %s data)." msgstr "" #, c-format msgid "Malformed header: “%s”" msgstr "" msgid "" "Broken catalog file: singular form msgstr used together with msgid_plural" msgstr "" "Neispravna datoteka kataloga: obrazac jednine msgstr se koristi zajedno sa " "mgid_plural" msgid "Broken catalog file: plural form msgstr used without msgid_plural" msgstr "" "Neispravna datoteka kataloga: obrazac množine iz msgtr se koristi bez " "msgid_plural" msgid "" "There were errors when loading the catalog. Some data may be missing or " "corrupted as the result." msgstr "" "Došlo je do greške prilikom učitavanja kataloga. Moguće je da će neki podaci " "nedostajati ili ćete dobti netačne rezultate." #, c-format msgid "Couldn’t load file %s, it is probably corrupted." msgstr "" #, c-format msgid "" "File “%s” is read-only and cannot be saved.\n" "Please save it under different name." msgstr "" #, c-format msgid "Couldn’t save file %s." msgstr "" msgid "" "There was a problem formatting the file nicely (but it was saved all right)." msgstr "" "Desio se problem prilikom formatiranja datoteke (sve ostalo je uspješno " "sačuvano)." #, c-format msgid "" "The catalog couldn’t be saved in “%s” charset as specified in catalog " "settings.\n" "\n" "It was saved in UTF-8 instead and the setting was modified accordingly." msgstr "" msgid "Error saving catalog" msgstr "Greška pri snimanju kataloga" msgid "PO Translation Files" msgstr "PO fajlovi sa prijevodom" msgid "POT Translation Templates" msgstr "POT predlošci prijevoda" msgid "All Translation Files" msgstr "Sve datoteke s prijevodima" msgid "(Use default language)" msgstr "(Koristi početni jezik)" msgid "Select your preferred language" msgstr "Odaberite vaš omiljeni jezik" msgid "Language selection" msgstr "Odabir jezika" msgid "You must restart Poedit for this change to take effect." msgstr "Morate ponovo pokrenuti Poedit da bi promjene počele djelovati." msgid "Syncing" msgstr "" #. TRANSLATORS: %s is a cloud destination, e.g. "Crowdin" or ftp.wordpress.com etc. #, c-format msgid "Syncing with %s…" msgstr "" #. TRANSLATORS: %s is a cloud destination, e.g. "Crowdin" or ftp.wordpress.com etc. #, c-format msgid "Syncing with %s failed." msgstr "" msgid "Syncing error" msgstr "" msgid "Downloading translations is disabled in this project." msgstr "Preuzimanje prijevoda je onemogućeno u ovom projektu." msgid "Not authorized, please sign in again." msgstr "Nemate ovlaštenje, molimo vas da se ponovo prijavite." msgid "" "Crowdin is an online localization management platform and collaborative " "translation tool. Poedit can seamlessly sync PO files managed at Crowdin." msgstr "" "Crowdin je online platforma za upravljanje lokalizacijama i kolaborativni " "prevodilački alat. Poedit može neprimjetno sinhronizovati PO datoteke na " "Crowdinu." msgid "Sign In" msgstr "Prijava" msgid "Sign in" msgstr "Prijava" msgid "Sign Out" msgstr "Odjava" msgid "Sign out" msgstr "Odjava" msgid "Waiting for authentication…" msgstr "Čekam na autentifikaciju..." msgid "Updating user information…" msgstr "Ažuriram korisničke informacije..." msgid "Signed in as:" msgstr "Prijavljeni ste kao:" msgid "Learn More About Crowdin" msgstr "Saznaj više o Crowdinu" msgid "Learn more about Crowdin" msgstr "Saznaj više o Crowdinu" msgid "Sign in to Crowdin" msgstr "Prijavi se u Crowdin" msgid "Open Crowdin translation" msgstr "Otvori Crowdin prijevod" msgid "Project:" msgstr "Projekat:" msgid "Language:" msgstr "Jezik:" msgid "File:" msgstr "Datoteka:" msgid "No translation projects listed in your Crowdin account." msgstr "Nema projekata u vašem Crowdin računu." msgid "This project has no files that can be translated in Poedit." msgstr "Ovaj projekat nema datoteka koje je moguće prevoditi u Poeditu." msgid "This file can only be edited in Crowdin’s web interface." msgstr "Ovu datoteku moguće je uređivati jedino pomoću Crowdin web interfejsa." msgid "Downloading latest translations…" msgstr "Preuzimam najnovije prijevode..." msgid "Syncing with Crowdin failed." msgstr "Sinhronizacija sa Crowdinom nije uspjela." msgid "Crowdin error" msgstr "Crowdin greška" msgid "Uploading translations…" msgstr "Ažuriram prijevode..." msgid "&Copy" msgstr "&Kopiraj" msgid "Learn more" msgstr "Saznaj više" msgid "Learn More" msgstr "Saznaj više" msgid "&Help" msgstr "&Pomoć" msgid "MO files can’t be directly edited in Poedit." msgstr "MO fajl se ne može direktno uređivati u Poeditu." msgid "Error opening file" msgstr "Greška pri otvaranju fajla" msgid "" "Please open and edit the corresponding PO file instead. When you save it, " "the MO file will be updated as well." msgstr "" "Umjesto ovog, molimo vas da otvorite i izmijenite odgovarajući PO fajl. " "Nakon što ga sačuvate, MO fajl će također da bude ažuriran." msgid "don’t delete temporary files (for debugging)" msgstr "" msgid "handle a poedit:// URI" msgstr "upravljač za poedit:// URI" msgid "go to item at given line number" msgstr "" msgid "Failed to communicate with Poedit process." msgstr "Nije moguće komunicirati sa Poedit procesom." #, c-format msgid "Unhandled exception occurred: %s" msgstr "Desio se neočekivan izuzetak: %s" msgid "Open catalog" msgstr "Otvori katalog" #, c-format msgid "File “%s” doesn’t exist." msgstr "" msgid "Poedit is an easy to use translations editor." msgstr "Poedit je jednostavni alat za prevođenje." msgid "Catalogs Manager" msgstr "Upravljanje katalozima" msgid "Check for Updates…" msgstr "" msgid "&Edit" msgstr "&Uredi" msgid "Undo" msgstr "Nazad" msgid "Redo" msgstr "Vrati" msgid "Paste and Match Style" msgstr "Umetni i uskladi stil" msgid "Delete" msgstr "Obriši" msgid "Spelling and Grammar" msgstr "Pravopis i gramatika" msgid "Show Spelling and Grammar" msgstr "Prikaži pravopis i gramatiku" msgid "Check Document Now" msgstr "Odmah provjeri dokument" msgid "Check Spelling While Typing" msgstr "Provjeravaj pravopis prilikom pisanja" msgid "Check Grammar With Spelling" msgstr "Provjeri gramatiku i pravopis" msgid "Correct Spelling Automatically" msgstr "Automatski popravljaj greške u pravopisu" msgid "Substitutions" msgstr "Zamjene" msgid "Show Substitutions" msgstr "Prikaži zamjene" msgid "Smart Copy/Paste" msgstr "Pametno kopiranje/umetanje" msgid "Smart Quotes" msgstr "Pametni navodnici" msgid "Smart Dashes" msgstr "Pametne crtice" msgid "Smart Links" msgstr "Pametni linkovi" msgid "Text Replacement" msgstr "Zamjena teksta" msgid "Transformations" msgstr "Tranformacije" msgid "Make Upper Case" msgstr "Pretvori u velika slova" msgid "Make Lower Case" msgstr "Pretvori u mala slova" msgid "Capitalize" msgstr "Velika slova" msgid "Speech" msgstr "Govor" msgid "Start Speaking" msgstr "Počnite pričati" msgid "Stop Speaking" msgstr "Prestanite pričati" msgid "&View" msgstr "&Prikaz" msgid "Enter Full Screen" msgstr "Aktiviraj prikaz preko cijelog ekrana" msgid "Window" msgstr "Prozor" msgid "Minimize" msgstr "Minimiziraj" msgid "Zoom" msgstr "Uvećavanje" msgid "Bring All to Front" msgstr "Dovedi u fokus" #. TRANSLATORS:File kind displayed in Finder/Explorer msgid "PO Translation" msgstr "PO prijevod" msgid "The file cannot be opened." msgstr "Datoteku nije moguće otvoriti." msgid "Invalid file" msgstr "Neispravna datoteka" msgid "" "The file may be either corrupted or in a format not recognized by Poedit." msgstr "Datoteka je oštećena ili nije u formatu koji Poedit prepoznaje." msgid "You can’t drop more than one file on Poedit window." msgstr "" #, c-format msgid "File “%s” is not a message catalog." msgstr "" msgid "Poedit" msgstr "Poedit" msgid "&File" msgstr "&Datoteka" msgid "&Go" msgstr "&Akcije" #. TRANSLATORS: %s is language name in its basic form (as you #. would see e.g. in a list of supported languages). You may need #. to rephrase it, e.g. to an equivalent of "for language %s". #, c-format msgid "" "Spellchecking is disabled, because the dictionary for %s isn’t installed." msgstr "" "Provjera pravopisa je onemogućena zato što rječnik za %s nije instaliran." msgid "Install" msgstr "Instaliraj" msgid "Catalog modified. Do you want to save changes?" msgstr "Katalog je mijenjan. Da li želite sačuvati promjene?" msgid "Save changes" msgstr "Sačuvaj promjene" msgid "Your changes will be lost if you don’t save them." msgstr "" msgid "Save" msgstr "Sačuvaj" msgid "Don’t save" msgstr "" msgid "Don’t Save" msgstr "" msgid "Save as…" msgstr "" msgid "Compile to…" msgstr "" msgid "Compiled Translation Files" msgstr "Kompajlirani prijevodi datoteka" msgid "Export as…" msgstr "" msgid "HTML Files" msgstr "HTML fajlovi" msgid "Open catalog template" msgstr "Otvori predložak kataloga" msgid "Source code not available." msgstr "Izvorni kod nije dostupan." msgid "Updating failed" msgstr "Ažuriranje nije uspjelo" msgid "" "Translations couldn’t be updated from the source code, because no code was " "found in the location specified in the catalog’s Properties." msgstr "" "Prijevodi nisu mogli biti ažurirani iz izvornog koda zato što kod nije " "pronađen u specificiranoj lokaciji unutar svojstava kataloga." msgid "Entries in the catalog are probably incorrect." msgstr "Unosi u katalogu su najvjerovatnije netačni." msgid "Updating the catalog failed. Click on 'Details >>' for details." msgstr "Ažuriranje kataloga nije uspjelo. Za detalje kliknite na 'Više>>'." #, c-format msgid "%d issue with the translation found." msgid_plural "%d issues with the translation found." msgstr[0] "Pronađen je %d problem s prijevodima." msgstr[1] "Pronađena su %d problema s prijevodima." msgstr[2] "Pronađeno je %d problema s prijevodima." msgid "Validation results" msgstr "Rezultati validacije" msgid "" "Entries with errors were marked in red in the list. Details of the error " "will be shown when you select such an entry." msgstr "" "Unosi koji sadrže greške označeni su crvenom bojom u listi. Detalji o greški " "će biti prikazani kada odaberete jedan od unosa." msgid "The file was saved safely." msgstr "Datoteka je uspješno sačuvana." msgid "" "The file was saved safely and compiled into the MO format, but it will " "probably not work correctly." msgstr "" "Datoteka je uspješno sačuvana i kompajlirana u MO format, ali navjerovatnije " "neće ispravno funkcionisati." msgid "" "The file was saved safely, but it cannot be compiled into the MO format and " "used." msgstr "" "Datoteka je uspješno sačuvana ali je nije moguće kompajlirati u MO format i " "koristiti nakon toga." msgid "" "The file was compiled into the MO format, but it will probably not work " "correctly." msgstr "" "Datoteka je kompajlirana u MO format, ali najvjerovatnije neće funkcionisati " "ispravno." msgid "The file cannot be compiled into the MO format and used." msgstr "Datoteka ne može biti kompajlirana u MO format i nakon toga korištena." msgid "No problems with the translation found." msgstr "Nisu pronađeni problemi u prijevodu." #, c-format msgid "The translation is ready for use, but %d entry is not translated yet." msgid_plural "" "The translation is ready for use, but %d entries are not translated yet." msgstr[0] "Prijevod je spreman za upotrebu, ali još %d unos nije preveden." msgstr[1] "Prijevod je spreman za upotrebu, ali još %d unosa nisu prevedena." msgstr[2] "Prijevod je spreman za upotrebu, ali još %d unosa nije prevedeno." msgid "The translation is ready for use." msgstr "Prijevod je spreman za upotrebu." #, c-format msgid "Poedit automatically fixed invalid content in the file “%s”." msgstr "Poedit je automatski popravio neispravan sadržaj u datoteci \"%s\"." msgid "" "The file contained duplicate items, which is not allowed in PO files and " "would prevent the file from being used. Poedit fixed the issue, but you " "should review translations of any items marked as needing work and correct " "them if necessary." msgstr "" msgid "Language of the translation isn’t set." msgstr "" msgid "Set Language" msgstr "Postavi jezik" msgid "Set language" msgstr "Odaberite jezik" #. TRANSLATORS: This is shown underneath "Language of the translation isn't set (or ...is the same as source language)." msgid "" "Suggestions are not available if the translation language is not set " "correctly. Other features, such as plural forms, may be affected as well." msgstr "" "Prijedlozi nisu dostupni ako jezik prijevoda nije ispravno odabran. Ostale " "mogućnosti također mogu biti nedostupne. kao npr. oblici množine." msgid "Language of the translation is the same as source language." msgstr "Jezik prijevoda je isti kao i izvorni jezik." msgid "Fix Language" msgstr "Popravi jezik" msgid "Fix language" msgstr "Popravi jezik" msgid "" "This catalog has entries with plural forms, but doesn’t have Plural-Forms " "header configured." msgstr "" msgid "" "Entries in this catalog have different plural forms count from what " "catalog’s Plural-Forms header says" msgstr "" msgid "Required header Plural-Forms is missing." msgstr "Nedostaje neophodno zaglavlje za oblik množine." #, c-format msgid "Syntax error in Plural-Forms header (\"%s\")." msgstr "Sintaksna greška u zaglavlju za obrazac množine (\"%s\")." msgid "Fix the Header" msgstr "Popravi zaglavlje" msgid "Fix the header" msgstr "Popravi zaglavlje" #. TRANSLATORS: %s is language name in its basic form (as you #. would see e.g. in a list of supported languages). You may need #. to rephrase it, e.g. to an equivalent of "for language %s". #, c-format msgid "Plural forms expression used by the catalog is unusual for %s." msgstr "Obrazac množine koji se koristi u katalogu nije uobičajen za %s jezik." #. TRANSLATORS: A verb, shown as action button with ""Plural forms expression used by the catalog is unusual for %s.")" msgid "Review" msgstr "Pregledaj" #, c-format msgid "Error loading message catalog file “%s”." msgstr "" #, c-format msgid "Translated: %d of %d (%d %%)" msgstr "Prevedeno: %d od %d (%d %%)" #, c-format msgid "Remaining: %d" msgstr "Preostalo: %d" #, c-format msgid "%d error" msgid_plural "%d errors" msgstr[0] "%d greška" msgstr[1] "%d greške" msgstr[2] "%d grešaka" #, c-format msgid "%d entry" msgid_plural "%d entries" msgstr[0] "%d unos" msgstr[1] "%d unosa" msgstr[2] "%d unosa" msgid " (unsaved)" msgstr " (nesačuvano)" msgid " (modified)" msgstr " (mijenjano)" #, c-format msgid "Failed to update translation memory: %s" msgstr "Nije moguće ažurirati memoriju prijevoda: %s" msgid "Purge deleted translations" msgstr "Očisti obrisane prijevode" msgid "Do you want to remove all translations that are no longer used?" msgstr "Da li želite ukloniti sve prijevode koji više nisu u upotrebi?" msgid "" "If you continue with purging, all translations marked as deleted will be " "permanently removed. You will have to translate them again if they are added " "back in the future." msgstr "" "Ako nastavite sa uklanjanjem, svi prijevodi koji su označeni za uklanjanje " "će trajno biti uklonjeni. Morat ćete ih ponovo prevesti ako budu ponovo " "dodani nekad u budućnosti." msgid "Keep" msgstr "Zadrži" msgid "Purge" msgstr "Očisti" msgid "Copy from source text" msgstr "&Kopiraj iz originalnog teksta" msgid "Copy from Source Text" msgstr "Kopiraj iz originalnog teksta" #. TRANSLATORS: This is the key shortcut used in menus on Windows, some languages call them differently #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Ctrl+" msgstr "Ctrl+" msgid "Clear translation" msgstr "Obriši prijevod" msgid "Clear Translation" msgstr "Obriši prijevod" msgid "Edit comment" msgstr "Uredi komentar" msgid "Edit Comment" msgstr "Uredi komentar" msgid "References:" msgstr "Reference:" msgid "&Bookmarks" msgstr "&Zabilješke" #. TRANSLATORS: This is the key shortcut used in menus on Windows, some languages call them differently #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Alt+" msgstr "Alt+" #, c-format msgid "Set bookmark %i" msgstr "Postavi zabilješku %i" #, c-format msgid "Go to bookmark %i" msgstr "Idi na zabilješku %i" #, c-format msgid "Set Bookmark %i" msgstr "Postavi zabilješku %i" #, c-format msgid "Go to Bookmark %i" msgstr "Idi na zabilješku %i" msgid "Hide Sidebar" msgstr "Sakrij bočnu traku" msgid "Show Sidebar" msgstr "Prikaži bočnu traku" msgid "Hide Status Bar" msgstr "Sakrij statusnu traku" msgid "Show Status Bar" msgstr "Prikaži statusnu traku" msgid "Source text:" msgstr "Originalni tekst:" msgid "Singular:" msgstr "Jednina:" msgid "Plural:" msgstr "Množina:" msgid "Translation:" msgstr "Prijevod:" msgid "Pre-translated" msgstr "" msgid "Needs Work" msgstr "" #. TRANSLATORS: This indicates that the string's translation isn't final #. and has known problems. For example, it might be machine translated or #. fuzzy matched from an older string. The translation should be short and #. convey this. If it's problematic to translate it, "Needs review" is #. acceptable substitute, but note that the meaning is subtly different: #. "needs review" implies that somebody else should review the string after #. I am done with it (i.e. consider it good), while "needs work" implies I #. need to return to it and finish the translation. msgid "Needs work" msgstr "" msgid "" "POT files are only templates and don’t contain any translations themselves.\n" "To make a translation, create a new PO file based on the template." msgstr "" "POT datoteke su samo predlošci i ne sadrže bilo kakve prijevode.\n" "Da napravite prijevod, kreirajte novu PO datoteku na osnovu predloška." msgid "Create New Translation" msgstr "Kreiraj novi prijevod" msgid "Create new translation" msgstr "Kreiraj novi prijevod" msgid "Everything" msgstr "Sve" #, c-format msgid "Form %i" msgstr "Oblik %i" msgid "Singular" msgstr "Jednina" msgid "Zero" msgstr "Nula" msgid "One" msgstr "Jedan" msgid "Two" msgstr "Dva" msgid "Plural" msgstr "Množina" msgid "Other" msgstr "Ostalo" #, c-format msgid "%s Format" msgstr "" #. TRANSLATORS: %s is replaced with language name, e.g. "PHP" or "C", so "PHP Format" etc." #, c-format msgid "%s format" msgstr "" msgid "Source text" msgstr "Originalni tekst" #, c-format msgid "Translation — %s" msgstr "Prijevod — %s" msgid "ID" msgstr "ID" #, c-format msgid "Source text — %s" msgstr "Izvorni tekst — %s" msgid "unknown language" msgstr "nepoznat jezik" #, c-format msgid "Failed command: %s" msgstr "Neuspjela komanda: %s" msgid "Failed to merge gettext catalogs." msgstr "Nije moguće spojiti gettext kataloge." msgid "Source file" msgstr "Izvorna datoteka" msgid "Source file occurrence:" msgstr "Pojavljivanje originalne datoteke:" msgid "Open in Editor" msgstr "Otvori u uređivaču" msgid "Open in editor" msgstr "Otvori u uređivaču" msgid "No references for the selected item." msgstr "Nema referenci za odabranu stavku." #, c-format msgid "Error opening file %s!" msgstr "Grešla pri otvaranju datoteke %s!" msgid "Find" msgstr "Pronađi" msgid "Replace" msgstr "Zamijeni" #. TRANSLATORS: Expander in Find window for additional options (case sensitive etc.) msgid "Options" msgstr "Opcije" msgid "Ignore case" msgstr "Zanemari velika/mala slova" msgid "Wrap around" msgstr "Omotaj" msgid "Whole words only" msgstr "Samo cijele riječi" msgid "Find in source texts" msgstr "Pronađi u izvornim tekstovima" msgid "Find in translations" msgstr "Pronađi u prijevodima" msgid "Find in comments" msgstr "Pronađi u komentarima" msgid "Close" msgstr "Zatvori" msgid "Replace &All" msgstr "" msgid "Replace &all" msgstr "" msgid "&Replace" msgstr "" msgid "< &Previous" msgstr "< &Prethodno" msgid "&Next >" msgstr "&Sljedeće >" msgid "String to find" msgstr "String koji tražite" msgid "Replacement string" msgstr "Zamjenski string" #, c-format msgid "Cannot execute program: %s" msgstr "Nije moguće izvršiti program: %s" msgid "Language Code or Name (e.g. en_GB)" msgstr "Kod ili naziv jezika (npr. bs_BA)" msgid "Translation Language" msgstr "Jezik prijevoda" msgid "Language of the translation:" msgstr "Jezik prijevoda:" msgid "Poedit - Catalogs manager" msgstr "Poedit - upravljanje katalozima" msgid "Catalog" msgstr "Katalog" msgid "Total" msgstr "Ukupno" msgid "Untrans" msgstr "Neprevedeno" msgid "Errors" msgstr "" msgid "Last modified" msgstr "Zadnji put mijenjano" msgid "Select directory" msgstr "Odaberite direktorij" msgid "Directories:" msgstr "Direktoriji:" msgid "" msgstr "" msgid "Do you want to delete the project?" msgstr "Da li želite obrisati ovaj projekt?" msgid "Confirmation" msgstr "Potvrda" msgid "" "Do you really want to do mass update of\n" "all catalogs in this project?" msgstr "" "Da li zaista želite uraditi masovnu nadogradnuDo you really want to do mass " "update of\n" "all catalogs in this project?" msgid "Information about the translator" msgstr "Informacije o prevodiocu" msgid "Name:" msgstr "Ime:" msgid "Your Name" msgstr "Vaše ime" msgid "Email:" msgstr "Email:" msgid "your_email@example.com" msgstr "vaš_email@primjer.com" msgid "" "Your name and email address are only used to set the Last-Translator header " "of GNU gettext files." msgstr "" "Vaše ime i email adresa se koriste samo u Last-Translator zaglavlju GNU " "gettext fajlova." msgid "Editing" msgstr "Uređivanje" msgid "Automatically compile MO file when saving" msgstr "Automatski kompajliraj MO datoteku prilikom snimanja" msgid "Show summary after catalog update" msgstr "Prikaži sažetak nakon ažuriranja kataloga" msgid "Check spelling" msgstr "Provjeri pravopis" msgid "Always change focus to text input field" msgstr "Uvijek promijeni fokus na polje za unos teksta" msgid "" "Never let the list of strings take focus. If enabled, you must use Ctrl-" "arrows for keyboard navigation but you can also type text immediately, " "without having to press Tab to change focus." msgstr "" "Ne dopusti da lista stringova preuzme fokus.Ako je omogućeno, morat ćete " "koristiti Ctrl-strelice za navigaciju pomoću tastature ali također možete " "ukucati tekst odmah, bez da morate pritisnuti Tab za promjenu fokusa." msgid "Appearance" msgstr "Izgled" msgid "Use custom list font:" msgstr "Koristi vlastiti font za listu:" msgid "Use custom text fields font:" msgstr "Koristi vlastiti font za tekstualna polja:" msgid "Change UI language" msgstr "Promijeni jezik interfejsa" #. TRANSLATORS: This is a note appended to "Check spelling" when running on older Windows versions msgid "(requires Windows 8 or newer)" msgstr "(barem Windows 8 ili noviji)" msgid "General" msgstr "Općenito" msgid "Use translation memory" msgstr "Koristi memoriju prijevoda" msgid "Learn From Files…" msgstr "" msgid "Learn from files…" msgstr "" #. TRANSLATORS: This is a button that deletes everything in the translation memory (i.e. clears/resets it). msgid "Reset" msgstr "Resetuj" #. TRANSLATORS: Followed by "match translations within the file" or "pre-translate from TM" msgid "When updating from sources" msgstr "" #. TRANSLATORS: Preceded by "When updating from sources" msgid "fuzzy match within the file" msgstr "" #. TRANSLATORS: Preceded by "When updating from sources" msgid "pre-translate from TM" msgstr "" msgid "" "Poedit can attempt to fill in new entries from only previous translations in " "the file or from your entire translation memory. Using the TM won’t be very " "effective if it’s near-empty, but it will get better as you add more " "translations to it." msgstr "" msgid "Stored translations:" msgstr "Pohranjeni prijevodi:" msgid "Database size on disk:" msgstr "Veličina baze na disku:" msgid "Select translation files to import" msgstr "Odaberite datoteke prijevoda za uvoz" msgid "Translation Memory" msgstr "Memorija prijevoda" msgid "Importing translations…" msgstr "" msgid "Finalizing…" msgstr "" msgid "Reset translation memory" msgstr "Resetuj memoriju prijevoda" msgid "Are you sure you want to reset the translation memory?" msgstr "Jeste li sigurni da želite resetovati memoriju prijevoda?" msgid "" "Resetting the translation memory will irrevocably delete all stored " "translations from it. You can’t undo this operation." msgstr "" "Resetiranje memorije prijevoda će nepovratno obrisati sve pohranjene " "prijevode. Ovu operaciju nije moguće poništiti." msgid "Cancel" msgstr "Poništi" #. TRANSLATORS: This is abbreviation of "Translation Memory" used in Preferences on macOS. #. Long text looks weird there, too short (like TM) too, but less so. "General" is about ideal #. length there. msgid "TM" msgstr "TM" msgid "" "Source code extractors are used to find translatable strings in the source " "code files and extract them so that they can be translated." msgstr "" "Izdvajanje izvornog koda se koristi za pronalazak stringova za prijevoda u " "fajlovima izvornog koda, da biste ih kasnije mogli prevesti." msgid "Custom Extractors:" msgstr "" msgid "Custom extractors:" msgstr "" msgid "Edit…" msgstr "" msgid "GNU gettext" msgstr "" msgid "" "Supports all programming languages recognized by GNU gettext tools (PHP, C/C+" "+, C#, Perl, Python, Java, JavaScript and others)." msgstr "" msgid "Delete extractor" msgstr "Obriši ekstraktor" #, c-format msgid "Are you sure you want to delete the “%s” extractor?" msgstr "Jeste li sigurni da želite obrisati \"%s\" ekstrator?" msgid "Extractors" msgstr "Izdvajanje" msgid "Accounts" msgstr "Računi" msgid "Automatically check for updates" msgstr "Automatski provjeravaj ima li ažuriranja" msgid "Include beta versions" msgstr "Uvrsti i beta verzije" msgid "" "Beta versions contain the latest new features and improvements, but may be a " "bit less stable." msgstr "" "Beta verzije sadrže najnovije mogućnosti i poboljšanja, ali bi mogle biti " "manje stabilne." msgid "Updates" msgstr "Ažuriranja" msgid "" "These settings affect internal formatting of PO files. Adjust them if you " "have specific requirements e.g. because of version control." msgstr "" "Ove postavke utiču na interno formatiranje PO datoteka. Prilagodite ih vašim " "specifičnim potrebama, npr. zbog kontrole verzija." msgid "Line endings:" msgstr "Završetak linije:" msgid "Unix (recommended)" msgstr "Unix (preporučeno)" msgid "Windows" msgstr "Prozori" #. TRANSLATORS: Followed by text control for entering number; wraps text at given width msgid "Wrap at:" msgstr "Prelomi tekst na:" msgid "Preserve formatting of existing files" msgstr "Sačuvaj oblikovanje postojećih datoteka" msgid "Advanced" msgstr "Napredno" msgid "Pre-translating…" msgstr "" #, c-format msgid "Pre-translated %u string" msgid_plural "Pre-translated %u strings" msgstr[0] "" msgstr[1] "" msgstr[2] "" #. TRANSLATORS: This is a somewhat common term describing the action where #. you apply the translation memory and/or machine translation to all of the #. strings you're translating as the first step, followed by correcting, #. improving etc., i.e. actually translating the strings. This may be tricky #. to express in other languages as simply as in English, but please try to #. keep it similarly concise. Please try to avoid, if possible, describing it #. as "auto-translation" and similar, because such terminology would mislead #. some users into thinking it's all that needs to be done (spoken from #. experience). "Pre-translate" nicely expresses that it's only the step done #. *before* actual translation. msgid "Pre-translate" msgstr "" msgid "Only fill in exact matches" msgstr "Samo popunjavaj tačna poklapanja" msgid "" "By default, inaccurate results are filled in as well and marked as needing " "work. Check this option to only include accurate matches." msgstr "" msgid "Don’t mark exact matches as needing work" msgstr "" msgid "" "Only enable if you trust the quality of your TM. By default, all matches " "from the TM are marked as needing work and should be reviewed before use." msgstr "" msgid "" "Pre-translation automatically finds exact or fuzzy matches for untranslated " "strings in the translation memory and fills in their translations." msgstr "" #, c-format msgid "%d entry was pre-translated." msgid_plural "%d entries were pre-translated." msgstr[0] "" msgstr[1] "" msgstr[2] "" msgid "" "The translations were marked as needing work, because they may be " "inaccurate. You should review them for correctness." msgstr "" msgid "No entries could be pre-translated." msgstr "" msgid "" "The TM doesn’t contain any strings similar to the content of this file. It " "is only effective for semi-automatic translations after Poedit learns enough " "from files that you translated manually." msgstr "" "TM ne sadrži nijedan string sličan sadržaju u ovoj datoteci. Ovo je moguće " "efikasno iskoristiti za poluautomatsko prevođenje nakon što Poedit nauči " "dovoljno fraza iz datoteka koje ste preveli ručno." msgid "" "Drag and Drop Folders Here\n" "\n" "or use the + button" msgstr "" "Ovdje umetnite foldere\n" "\n" "ili koristite dugme +" msgid "" "Drag and drop folders here\n" "\n" "or use the + button" msgstr "" "Ovdje umetnite foldere\n" "\n" "ili koristite dugme +" msgid "Add Folders…" msgstr "" msgid "Add folders…" msgstr "" msgid "Add Files…" msgstr "" msgid "Add files…" msgstr "" msgid "Add Wildcard…" msgstr "" msgid "Add wildcard…" msgstr "" msgid "Paths" msgstr "Putanje" msgid "Excluded paths" msgstr "Izuzete putanje" msgid "Advanced extraction settings" msgstr "" msgid "Extract notes for translators from:" msgstr "" msgid "Comments prefixed with:" msgstr "" msgid "All comments" msgstr "" msgid "Additional xgettext flags:" msgstr "" msgid "Additional keywords" msgstr "Dodatne ključne riječi" msgid "Name of the project the translation is for" msgstr "Naziv projekta za koji je namijenjen ovaj prijevod" msgid "Team name and email address or URL" msgstr "" msgid "e.g. nplurals=2; plural=(n > 1);" msgstr "npr. nplurals=2; plural=(n > 1);" msgid "UTF-8 (recommended)" msgstr "UTF-8 (preporučeno)" msgid "Please save the file first. This section cannot be edited until then." msgstr "" "Molimo vas da prvo sačuvate datoteku. Ova sekcija se ne može uređivati dok " "to ne uradite." msgid "Not all plural forms are translated." msgstr "" msgid "The translation should start as a sentence." msgstr "" msgid "The translation should start with a lowercase character." msgstr "" msgid "The translation doesn’t start with a space." msgstr "" msgid "The translation starts with a space, but the source text doesn’t." msgstr "" msgid "The translation is missing a newline at the end." msgstr "" msgid "The translation ends with a newline, but the source text doesn’t." msgstr "" msgid "The translation is missing a space at the end." msgstr "" msgid "The translation ends with a space, but the source text doesn’t." msgstr "" #, c-format msgid "The translation should end with “%s”." msgstr "" #, c-format msgid "The translation should not end with “%s”." msgstr "" #, c-format msgid "The translation ends with “%s”, but the source text ends with “%s”." msgstr "" msgid "Comment:" msgstr "Komentar:" msgid "OK" msgstr "U redu" msgid "C&lear" msgstr "O&čisti" msgid "Clear the comment" msgstr "Očisti komentar" msgid "New" msgstr "Novo" msgid "Create new translations project" msgstr "Napravi novi projekt prevođenja" msgid "Edit" msgstr "Uredi" msgid "Edit the project" msgstr "Uredi projekt" msgid "Delete the project" msgstr "Obriši projekt" msgid "Update all" msgstr "Ažuriraj sve" msgid "Update all catalogs in the project" msgstr "Ažuriraj sve kataloge u projektu" msgid "Edit project" msgstr "Uredi projekt" msgid "Project name:" msgstr "Ime projekta:" msgid "Browse" msgstr "Pretraži" msgid "Add directory to the list" msgstr "Dodaj direktorij u listu" msgid "&New…" msgstr "" msgid "New from &POT/PO file…" msgstr "" msgid "New From &POT/PO File…" msgstr "" msgid "&Open…" msgstr "" msgid "Open Recent" msgstr "Otvori nedavne" msgid "Open from Crowdin…" msgstr "" msgid "Open From Crowdin…" msgstr "" msgid "&Close" msgstr "&Zatvori" msgid "&Save" msgstr "&Sačuvaj" msgid "Save &as…" msgstr "" msgid "Save &As…" msgstr "" msgid "Compile to MO…" msgstr "" msgid "E&xport as HTML…" msgstr "" msgid "Check for updates…" msgstr "" msgid "&Preferences…" msgstr "" msgid "Catalogs &manager" msgstr "&Upravljanje katalozima" msgid "Catalogs &Manager" msgstr "&Upravljanje katalozima" msgid "E&xit" msgstr "I&zađi" msgid "Quit" msgstr "Zatvori" msgid "Copy from singular" msgstr "Kopiraj iz jednine" msgid "Copy From Singular" msgstr "Kopiraj iz Jednine" msgid "Translation needs &work" msgstr "" msgid "Translation Needs &Work" msgstr "" msgid "Edit &comment" msgstr "Uredi &komentar" msgid "Edit &Comment" msgstr "Uredi &komentar" msgid "Suggestions" msgstr "Prijedlozi" msgid "&Find…" msgstr "" msgid "Replace…" msgstr "" msgid "Find next" msgstr "Pronađi sljedeće" msgid "Find previous" msgstr "Pronađi prethodno" msgid "Find and Replace…" msgstr "" msgid "Find Next" msgstr "Pronađi sljedeće" msgid "Find Previous" msgstr "Pronađi prethodno" msgid "&Preferences" msgstr "&Postavke" msgid "Display entry &IDs" msgstr "Prikaži &ID-ove unosa" msgid "Display Entry &IDs" msgstr "Prikaži &ID-ove unosa" msgid "Sort by &file order" msgstr "Sortiraj po redoslijedu &datoteka" msgid "Sort by &File Order" msgstr "Sortiraj po redoslijedu &datoteka" msgid "Sort by &source" msgstr "Sortiraj po &originalima" msgid "Sort by &Source" msgstr "Sortiraj po &originalima" msgid "Sort by &translation" msgstr "Sortiraj po &prijevodima" msgid "Sort by &Translation" msgstr "Sortiraj po &prijevodima" msgid "&Group by context" msgstr "& Grupiši po kontekstu" msgid "&Group By Context" msgstr "& Grupiši po kontekstu" msgid "Entries with errors first" msgstr "Prvo unosi sa greškama" msgid "Entries with Errors First" msgstr "Prvo unosi sa greškama" msgid "&Untranslated entries first" msgstr "&Prvo prikaži neprevedene rečenice" msgid "&Untranslated Entries First" msgstr "&Prvo prikaži neprevedene rečenice" msgid "&Show references" msgstr "&Prikaži reference" msgid "&Show References" msgstr "&Prikaži reference" msgid "Show sidebar" msgstr "Prikaži bočnu traku" msgid "Show status bar" msgstr "Prikaži statusnu traku" msgid "C&atalog" msgstr "K&atalog" msgid "&Update from sources" msgstr "&Ažuriraj iz originala" msgid "&Update from Sources" msgstr "&Ažuriraj iz originala" msgid "Update from &POT file…" msgstr "" msgid "Update from &POT File…" msgstr "" msgid "Sync with Crowdin" msgstr "Sinhronizuj sa Crowdinom" msgid "Pre-&translate…" msgstr "" msgid "&Purge deleted translations" msgstr "&Očisti izbrisane prijevode" msgid "&Purge Deleted Translations" msgstr "&Očisti izbrisane prijevode" msgid "&Validate translations" msgstr "&Validacija prijevoda" msgid "&Validate Translations" msgstr "&Validacija prijevoda" msgid "&Properties…" msgstr "" msgid "&Done and next" msgstr "&Završi i nastavi" msgid "&Done and Next" msgstr "&Završi i nastavi" msgid "&Previous translation" msgstr "& Prethodni prijevod" msgid "&Previous Translation" msgstr "& Prethodni prijevod" msgid "&Next translation" msgstr "& Sljedeći prijevod" msgid "&Next Translation" msgstr "& Sljedeći prijevod" msgid "P&revious unfinished" msgstr "P&rethodno nedovršeno" msgid "P&revious Unfinished" msgstr "P&rethodno nedovršeno" msgid "Ne&xt unfinished" msgstr "Slje&deće nedovršeno" msgid "Ne&xt Unfinished" msgstr "Slje&deće nedovršeno" msgid "Previous plural form" msgstr "Prethodni oblik množine" msgid "Previous Plural Form" msgstr "Prethodni oblik množine" msgid "Next plural form" msgstr "Sljedeći oblik množine" msgid "Next Plural Form" msgstr "Sljedeći oblik množine" msgid "&Online help" msgstr "&Online pomoć" msgid "&Online Help" msgstr "&Online pomoć" msgid "&GNU gettext manual" msgstr "&GNU gettext dokumentacija" msgid "&GNU gettext Manual" msgstr "&GNU gettext dokumentacija" msgid "&About Poedit" msgstr "&O programu" msgid "&About" msgstr "&O programu" msgid "Extractor setup" msgstr "Postavka izdvajanja" msgid "List of extensions separated by semicolons (e.g. *.cpp;*.h):" msgstr "Lista ekstenzija odvojenih pomoću tačka-zareza (npr. *.cpp;*.h):" msgid "Invocation:" msgstr "Pozivanje:" msgid "Command to extract translations:" msgstr "Komanda za izdvajanje prijevoda:" msgid "" "This is the command used to launch the extractor.\n" "%o expands to the name of output file, %K to list\n" "of keywords, %F to list of input files,\n" "%C to charset flag (see below)." msgstr "" "Ovo je komanda koja se koristi za pokretanje izdvajanja.\n" "%o se proširuje u naziv izlaznog fajla, %K u listu\n" " ključnih riječi, %F u listu ulaznih fajlova,\n" "%C o oznake kodiranja (pogledajte ispod)." msgid "An item in keywords list:" msgstr "Stavka u listi ključnih riječi:" msgid "" "This will be attached to the command line once\n" "for each keyword. %k expands to the keyword." msgstr "" "Ovo će biti dodano komandnoj liniji jednom\n" "za svaku ključnu riječ. %k se proširuje na ključnu riječ." msgid "An item in input files list:" msgstr "Stavka u listi datoteka za ubacivanje:" #, c-format msgid "" "This will be attached to the command line once\n" "for each input file. %f expands to the filename." msgstr "" "Ovo će biti dodano komandnoj liniji po jednom\n" "za svaku ulaznu datoteku. %f se proširuje na ime datoteke." msgid "Source code charset:" msgstr "Kodiranje znakova izvornog koda:" #, c-format msgid "" "This will be attached to the command line\n" "only if source code charset was given. %c expands to charset value." msgstr "" "Ovo će biti dodano u komandu liniju\n" "samo ako je dato izvorno kodiranje znakova. %c se proširuje na vrijednost " "znakova." msgid "Catalog properties" msgstr "Svojstva kataloga" msgid "Project name and version:" msgstr "Ime projekta i verzija:" msgid "Language team:" msgstr "" msgid "Plural forms:" msgstr "" msgid "Use default rules for this language" msgstr "Koristi zadana pravila za ovaj jezik" msgid "Use custom expression" msgstr "Koristi vlastiti izraz" msgid "Learn about plural forms" msgstr "Saznaj više o oblicima množina" msgid "Charset:" msgstr "Kodiranje znakova:" msgid "Advanced Extraction Settings…" msgstr "" msgid "Advanced extraction settings…" msgstr "" msgid "Translation Properties" msgstr "" msgid "Translation properties" msgstr "Svojstva prijevoda" msgid "Sources Paths" msgstr "" msgid "Sources paths" msgstr "Putanje originala" msgid "Extract text from source files in the following directories:" msgstr "Izvezi tekst iz originalnih datoteka u sljedeće foldere:" msgid "Base path:" msgstr "Bazna putanja:" msgid "Sources Keywords" msgstr "" msgid "Sources keywords" msgstr "Ključne riječi originala" msgid "" "Use these keywords (function names) to recognize translatable strings\n" "in source files:" msgstr "" "Koristite ove ključne riječi (nazivi funkcija) za prepoznavanje stringova za " "prijevod\n" "u originalnim datotekama:" msgid "Also use default keywords for supported languages" msgstr "" msgid "Learn About Gettext Keywords" msgstr "" msgid "Learn about gettext keywords" msgstr "Saznaj više o gettext ključnim riječima" msgid "Update summary" msgstr "Rezime ažuriranja" msgid "" "These strings were found in the sources but were not in the catalog.\n" "Poedit will add them to the catalog now." msgstr "" "Ovi stringovi su pronađeni u izvoru ali se ne nalaze u katalogu.\n" "Poedit će ih sada dodati u katalog." msgid "New strings" msgstr "Novi stringovi" msgid "" "These strings are no longer in the sources.\n" "Poedit will remove them from the catalog now." msgstr "" "Ovi stringovi više se ne nalaze u izvoru.\n" "Poedit će ih sada ukloniti iz kataloga." msgid "Obsolete strings" msgstr "Zastarjeli stringovi" msgid "(0 new, 0 obsolete)" msgstr "(0 novih, 0 suvišnih)" msgid "Open" msgstr "Otvori" msgid "Save catalog" msgstr "Sačuvaj katalog" msgid "Validate" msgstr "Validacija" msgid "Check for errors in the translation" msgstr "Provjeri ima li greški u prijevodu" msgid "Update" msgstr "Ažuriraj" msgid "Update catalog - synchronize it with sources" msgstr "Ažuriraj katalog - sinhronizacija sa izvorima" msgid "Sidebar" msgstr "Bočna traka" msgid "Show or hide the sidebar" msgstr "Prikazuje ili sakriva bočnu traku" #. TRANSLATORS: "Previous" as in used in the past, now replaced with newer. msgid "Previous source text:" msgstr "Prethodni izvorni tekst:" msgid "" "The old source text (before it changed during an update) that the now-" "inaccurate translation corresponds to." msgstr "" msgid "Notes for translators:" msgstr "Napomena prevodiocu:" msgid "Add comment" msgstr "Dodaj komentar" msgid "Add Comment" msgstr "Dodaj komentar" msgid "Translation suggestions:" msgstr "Prijedlozi prijevoda:" #. TRANSLATORS: This is shown when no translation suggestions can be found in the TM (Windows). msgid "No matches found" msgstr "Nema rezultata" #. TRANSLATORS: This is shown when no translation suggestions can be found in the TM (macOS, Linux). msgid "No Matches Found" msgstr "Nema rezultata" msgid "This string was found in Poedit’s translation memory." msgstr "Ovaj string je pronađen u Poedit memoriji prijevoda." msgid "Cannot create temporary directory." msgstr "Nije moguće napraviti privremeni folder!" msgid "Welcome to Poedit" msgstr "Dobro došli u Poedit" #. TRANSLATORS: This is version information in about dialog, "%s" will be #. version number when used #, c-format msgid "Version %s" msgstr "Verzija %s" msgid "Edit a Translation" msgstr "" msgid "Edit a translation" msgstr "Uredi prijevod" msgid "Open an existing PO file and edit the translation." msgstr "Otvori postojeću PO datoteku i uredi prijevod." msgid "" "Take an existing PO file or POT template and create a new translation from " "it." msgstr "" "Uzmi postojeću PO datoteku ili POT predložak i kreiraj prijevod iz njega." msgid "Collaborate on a Translation with Others" msgstr "" msgid "Collaborate on a translation with others" msgstr "Sarađujte na prijevodu sa ostalima" msgid "" "Download a file from Crowdin project, translate and sync your changes back." msgstr "" "Preuzmite datoteku sa Crowdina, prevedite je i pošaljite vaše prijevode " "nazad." msgid "What is Crowdin?" msgstr "Šta je Crowdin?" msgid "There are no translations. That’s unusual." msgstr "Nema prijevoda. Ovo je neobično." msgid "" "Translatable entries aren’t added manually in the Gettext system, but are " "automatically extracted\n" "from source code. This way, they stay up to date and accurate.\n" "Translators typically use PO template files (POTs) prepared for them by the " "developer." msgstr "" msgid "(Learn more about GNU gettext)" msgstr "(Saznajte više o GNU gettext)" msgid "The simplest way to fill this catalog is to update it from a POT:" msgstr "" "Najjednostaviji način da popunite ovaj katalog jeste da ga ažurirate iz POT " "datoteke:" msgid "Update from POT" msgstr "Ažuriraj iz POT-a" msgid "Take translatable strings from an existing POT template." msgstr "Uzmi stringove za prijevod iz postojećeg POT predloška." msgid "" "You can also extract translatable strings directly from the source code:" msgstr "" "Također, možete napraviti stringove za prijevod direktno iz izvornog koda:" msgid "Extract from sources" msgstr "Ažuriraj iz originala" msgid "Configure source code extraction in Properties." msgstr "Konfigurišite izvoz izvornog koda u Svojstvima." msgid "Sync" msgstr "Sinhronizuj" msgid "Synchronize the translation with Crowdin" msgstr "Sinhronizuj prijevode sa Crowdinom" #. TRANSLATORS: This is titlebar of about dialog, "%s" is application name #. ("Poedit" here, but please use "%s") #, c-format msgid "About %s" msgstr "O programu %s" #. TRANSLATORS: Title of the preferences window on Windows and Linux. "%s" is replaced with "Poedit" when running. #, c-format msgid "%s Preferences" msgstr "" #. TRANSLATORS: macOS item in app menu msgid "Services" msgstr "" #. TRANSLATORS: macOS item in app menu, %s is replaced with "Poedit" #, c-format msgid "Hide %s" msgstr "" #. TRANSLATORS: macOS item in app menu msgid "Hide Others" msgstr "" #. TRANSLATORS: macOS item in app menu msgid "Show All" msgstr "" #. TRANSLATORS: macOS item in app menu, %s is replaced with "Poedit" #, c-format msgid "Quit %s" msgstr "" #. TRANSLATORS: macOS item in app menu msgid "Preferences…" msgstr "" msgid "Preferences..." msgstr "" #. TRANSLATORS: Title of a category in Windows task menu (right-click icon in taskbar) msgid "Recent" msgstr "" #. TRANSLATORS: Title of a category in Windows task menu (right-click icon in taskbar) msgid "Frequent" msgstr "" msgid "&Apply" msgstr "" msgid "Apply" msgstr "" msgid "&Back" msgstr "" msgid "Back" msgstr "" msgid "&Cancel" msgstr "" msgid "&Clear" msgstr "" msgid "Clear" msgstr "" msgid "Copy" msgstr "Kopiraj" msgid "Cu&t" msgstr "Izrež&i" msgid "Cut" msgstr "Izreži" msgid "&Delete" msgstr "&Obriši" msgid "&Quit" msgstr "" msgid "File" msgstr "" msgid "Help" msgstr "" msgid "&New" msgstr "" msgid "&No" msgstr "" msgid "No" msgstr "" msgid "&OK" msgstr "" msgid "Open…" msgstr "" msgid "&Open..." msgstr "&Otvori..." msgid "Open..." msgstr "" msgid "&Paste" msgstr "&Zalijepi" msgid "Paste" msgstr "Zalijepi" msgid "Preferences" msgstr "" msgid "&Redo" msgstr "&Vrati" msgid "Refresh" msgstr "" msgid "&Save as" msgstr "" msgid "Save as" msgstr "" msgid "Select &All" msgstr "Oznaži &sve" msgid "Select All" msgstr "Označi sve" msgid "&Undo" msgstr "&Poništi" msgid "&Yes" msgstr "" msgid "Yes" msgstr "" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Shift+" msgstr "Shift+" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Enter" msgstr "Enter" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Up" msgstr "Gore" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Down" msgstr "Dole" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Left" msgstr "" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Right" msgstr "" #. TRANSLATORS: Keyboard shortcut, must correspond to translation of "Ctrl+" msgid "ctrl" msgstr "ctrl" #. TRANSLATORS: Keyboard shortcut, must correspond to translation of "Alt+" msgid "alt" msgstr "alt" #. TRANSLATORS: Keyboard shortcut, must correspond to translation of "Shift+" msgid "shift" msgstr "shift" poedit-2.0.6/locales/co.po0000664000372000037200000014551013230132075012311 00000000000000msgid "" msgstr "" "Project-Id-Version: poedit\n" "Report-Msgid-Bugs-To: help@poedit.net\n" "POT-Creation-Date: 2017-12-05 15:52+0100\n" "PO-Revision-Date: 2017-07-27 03:14-0400\n" "Last-Translator: vslavik \n" "Language-Team: Corsican\n" "Language: co_FR\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" "X-Generator: crowdin.com\n" "X-Crowdin-Project: poedit\n" "X-Crowdin-Language: co\n" "X-Crowdin-File: /locales/poedit.pot\n" msgid "Hide this notification message" msgstr "Piattà stu messaghju di nutificazione" msgid "Don’t Show Again" msgstr "" msgid "Don’t show again" msgstr "" #, c-format msgid "(New: %i, obsolete: %i)" msgstr "(Nove : %i, anziane : %i)" msgid "Updating catalog" msgstr "Mudificazione di catalogu" msgid "Collecting source files…" msgstr "" msgid "Extracting translatable strings…" msgstr "" msgid "Failed to load extracted catalog." msgstr "Fiascu per caricà u catalogu estrattu." msgid "Merging differences…" msgstr "" #, c-format msgid "“%s” is not a valid POT file." msgstr "" #, c-format msgid "%i line of file “%s” was not loaded correctly." msgid_plural "%i lines of file “%s” were not loaded correctly." msgstr[0] "" msgstr[1] "" #, c-format msgid "Line %d of file “%s” is corrupted (not valid %s data)." msgstr "" #, c-format msgid "Malformed header: “%s”" msgstr "" msgid "" "Broken catalog file: singular form msgstr used together with msgid_plural" msgstr "" "Schedariu di catalogu alteratu : forma singulare msgstr impiegata inseme cù " "msgid_plural" msgid "Broken catalog file: plural form msgstr used without msgid_plural" msgstr "" "Schedariu di catalogu alteratu : forma plurale msgstr impiegata senza " "msgid_plural" msgid "" "There were errors when loading the catalog. Some data may be missing or " "corrupted as the result." msgstr "" "Ci eranu sbaglii durante u caricamentu di u catalogu. Podasse qualchì datu " "manca o hè alteratu." #, c-format msgid "Couldn’t load file %s, it is probably corrupted." msgstr "" #, c-format msgid "" "File “%s” is read-only and cannot be saved.\n" "Please save it under different name." msgstr "" #, c-format msgid "Couldn’t save file %s." msgstr "" msgid "" "There was a problem formatting the file nicely (but it was saved all right)." msgstr "" "Ci era un penseru durante a creazione di u schedariu (ma hè statu creatu " "quantunque)." #, c-format msgid "" "The catalog couldn’t be saved in “%s” charset as specified in catalog " "settings.\n" "\n" "It was saved in UTF-8 instead and the setting was modified accordingly." msgstr "" msgid "Error saving catalog" msgstr "Sbagliu à l'arregistramentu di u catalogu" msgid "PO Translation Files" msgstr "Schedarii di Traduzzione PO" msgid "POT Translation Templates" msgstr "Mudelli di Traduzzione POT" msgid "All Translation Files" msgstr "Tutti Schedarii di Traduzzione" msgid "(Use default language)" msgstr "(Impiegà a lingua predefinita)" msgid "Select your preferred language" msgstr "Selezziunà a vostra lingua preferita" msgid "Language selection" msgstr "Scelta di a lingua" msgid "You must restart Poedit for this change to take effect." msgstr "Ci vole à rilancià Poedit per piglià stu cambiamentu in effettu." msgid "Syncing" msgstr "" #. TRANSLATORS: %s is a cloud destination, e.g. "Crowdin" or ftp.wordpress.com etc. #, c-format msgid "Syncing with %s…" msgstr "" #. TRANSLATORS: %s is a cloud destination, e.g. "Crowdin" or ftp.wordpress.com etc. #, c-format msgid "Syncing with %s failed." msgstr "" msgid "Syncing error" msgstr "" msgid "Downloading translations is disabled in this project." msgstr "Scaricà e traduzzioni ùn hè micca pussibule cù stu prughjettu." msgid "Not authorized, please sign in again." msgstr "Micca auturizatu, autenticassi torna." msgid "" "Crowdin is an online localization management platform and collaborative " "translation tool. Poedit can seamlessly sync PO files managed at Crowdin." msgstr "" "Crowdin hè una piattaforma inlinea di ghjestione di lucalizazione è un " "attrezzu di traduzzione in collaborazione. Poedit pò dinù sincrunizà i " "schedarii PO amministrati da Crowdin." msgid "Sign In" msgstr "Autenticazione" msgid "Sign in" msgstr "Autenticazione" msgid "Sign Out" msgstr "Scunnettassi" msgid "Sign out" msgstr "Scunnettassi" msgid "Waiting for authentication…" msgstr "In attesa d'autenticazione…" msgid "Updating user information…" msgstr "Mudificazione di l'infurmazioni di l'utilizatore..." msgid "Signed in as:" msgstr "Autenticatu cum'è :" msgid "Learn More About Crowdin" msgstr "Sapene di Più Nant'à Crowdin" msgid "Learn more about Crowdin" msgstr "Sapene di più nant'à Crowdin" msgid "Sign in to Crowdin" msgstr "Autenticassi à Crowdin" msgid "Open Crowdin translation" msgstr "Apre una traduzzione Crowdin" msgid "Project:" msgstr "Prughjettu :" msgid "Language:" msgstr "Lingua :" msgid "File:" msgstr "Schedariu :" msgid "No translation projects listed in your Crowdin account." msgstr "Ùn ci hè micca di prughjettu di traduzzione in u vostru contu Crowdin." msgid "This project has no files that can be translated in Poedit." msgstr "Stu prughjettu ùn hà alcunu schedariu chì pò esse traduttu in Poedit." msgid "This file can only be edited in Crowdin’s web interface." msgstr "Stu schedariu pò esse mudificatu solu in l'interfaccia web di Crowdin." msgid "Downloading latest translations…" msgstr "Scaricamentu in corsu di l'ultime traduzzioni…" msgid "Syncing with Crowdin failed." msgstr "Fiascu di a sincrunisazione cù Crowdin." msgid "Crowdin error" msgstr "Sbagliu da Crowdin" msgid "Uploading translations…" msgstr "Incaricamentu in corsu di e traduzzioni..." msgid "&Copy" msgstr "Cu&pià" msgid "Learn more" msgstr "Per sapene di più" msgid "Learn More" msgstr "Per Sapene di Più" msgid "&Help" msgstr "Ai&utu" msgid "MO files can’t be directly edited in Poedit." msgstr "I schedarii MO ùn ponu micca esse mudificati cù Poedit." msgid "Error opening file" msgstr "Sbagliu à l'apertura di u schedariu" msgid "" "Please open and edit the corresponding PO file instead. When you save it, " "the MO file will be updated as well." msgstr "" "Aprite è mudificate u schedariu PO currispondente. Quandu l'arregistrarete, " "u schedariu MO serà mudificatu dinù." msgid "don’t delete temporary files (for debugging)" msgstr "" msgid "handle a poedit:// URI" msgstr "Manighjà un poedit:// URI" msgid "go to item at given line number" msgstr "" msgid "Failed to communicate with Poedit process." msgstr "Fiascu per cummunicà cù u prucessu Poedit." #, c-format msgid "Unhandled exception occurred: %s" msgstr "Un anumalia imprevista s'hè affaccata : %s" msgid "Open catalog" msgstr "Apre un catalogu" #, c-format msgid "File “%s” doesn’t exist." msgstr "" msgid "Poedit is an easy to use translations editor." msgstr "" "Poedit hè un editore di traduzzione faciule à aduprà. A traduzzione in " "lingua corsa hè statu fatta da Patriccollu di Santa Maria Sichè." msgid "Catalogs Manager" msgstr "Amministratore di Cataloghi" msgid "Check for Updates…" msgstr "" msgid "&Edit" msgstr "&Mudificà" msgid "Undo" msgstr "Disfà" msgid "Redo" msgstr "Rifà" msgid "Paste and Match Style" msgstr "Incullà è fà Currisponde u Stilu" msgid "Delete" msgstr "Caccià" msgid "Spelling and Grammar" msgstr "Ortugrafia è Gramatica" msgid "Show Spelling and Grammar" msgstr "Affissà Ortugrafia è Gramatica" msgid "Check Document Now" msgstr "Verificà u ducumentu avà" msgid "Check Spelling While Typing" msgstr "Verificà l'ortugrafia scrivendu" msgid "Check Grammar With Spelling" msgstr "Verificà a gramatica cù l'ortugrafia" msgid "Correct Spelling Automatically" msgstr "Currege l'ortugrafia autumaticamente" msgid "Substitutions" msgstr "Sustituzioni" msgid "Show Substitutions" msgstr "Affissà i Sustituzioni" msgid "Smart Copy/Paste" msgstr "Cupià/Incullà Astutu" msgid "Smart Quotes" msgstr "Virgulette Astute" msgid "Smart Dashes" msgstr "Lineette Astute" msgid "Smart Links" msgstr "Liami Astuti" msgid "Text Replacement" msgstr "Rimpiazzamentu di Testu" msgid "Transformations" msgstr "Trasfurmazioni" msgid "Make Upper Case" msgstr "Fà Maiuscule" msgid "Make Lower Case" msgstr "Fà Minuscule" msgid "Capitalize" msgstr "Tuttu in Maiuscule" msgid "Speech" msgstr "Discussione" msgid "Start Speaking" msgstr "Principià un Discorsu" msgid "Stop Speaking" msgstr "Piantà u Discorsu" msgid "&View" msgstr "&Affissà" msgid "Enter Full Screen" msgstr "Passà in Screnu Sanu" msgid "Window" msgstr "Finestra" msgid "Minimize" msgstr "Impuculì in lu spaziu di nutificazione di u sistema" msgid "Zoom" msgstr "Ingrandamentu" msgid "Bring All to Front" msgstr "Mette Tuttu di Fronte" #. TRANSLATORS:File kind displayed in Finder/Explorer msgid "PO Translation" msgstr "Traduzzione PO" msgid "The file cannot be opened." msgstr "U schedariu ùn pò micca esse apertu." msgid "Invalid file" msgstr "Schedariu inaccettevule" msgid "" "The file may be either corrupted or in a format not recognized by Poedit." msgstr "" "U schedariu pò esse alteratu o in una forma micca ricunnisciuta da Poedit." msgid "You can’t drop more than one file on Poedit window." msgstr "" #, c-format msgid "File “%s” is not a message catalog." msgstr "" msgid "Poedit" msgstr "Poedit" msgid "&File" msgstr "&Schedariu" msgid "&Go" msgstr "&Và" #. TRANSLATORS: %s is language name in its basic form (as you #. would see e.g. in a list of supported languages). You may need #. to rephrase it, e.g. to an equivalent of "for language %s". #, c-format msgid "" "Spellchecking is disabled, because the dictionary for %s isn’t installed." msgstr "" "U cuntrollu d'ortugrafia hè disattivatu, perchè u dizziunariu %s ùn hè micca " "installatu." msgid "Install" msgstr "Installà" msgid "Catalog modified. Do you want to save changes?" msgstr "Catalogu mudificatu. Vulete arregistrà i cambiamenti ?" msgid "Save changes" msgstr "Arregistrà i cambiamenti" msgid "Your changes will be lost if you don’t save them." msgstr "" msgid "Save" msgstr "Arregistrà" msgid "Don’t save" msgstr "" msgid "Don’t Save" msgstr "" msgid "Save as…" msgstr "" msgid "Compile to…" msgstr "" msgid "Compiled Translation Files" msgstr "Schedarii di Traduzzione Trasfurmati da una Cumpilazione" msgid "Export as…" msgstr "" msgid "HTML Files" msgstr "Schedarii HTML" msgid "Open catalog template" msgstr "Apre u mudellu di catalogu" msgid "Source code not available." msgstr "U testu d'urigine ùn hè micca dispunibule." msgid "Updating failed" msgstr "Mudificazione fiasca" msgid "" "Translations couldn’t be updated from the source code, because no code was " "found in the location specified in the catalog’s Properties." msgstr "" "E traduzzioni ùn ponu micca esse mudificate à partesi di u testu d'urigine, " "perchè alcunu testu ùn hè statu trovu in u locu indicatu in e Pruprietà di u " "catalogu." msgid "Entries in the catalog are probably incorrect." msgstr "Qualchì entrata in u catalogu hè gattiva." msgid "Updating the catalog failed. Click on 'Details >>' for details." msgstr "" "Mudificazione di u catalogu falsa. Sceglie 'Detaglii >>' per sapene più." #, c-format msgid "%d issue with the translation found." msgid_plural "%d issues with the translation found." msgstr[0] "%d penseru trovu in a traduzzione." msgstr[1] "%d penseri trovi in a traduzzione." msgid "Validation results" msgstr "Risultati di a validazione" msgid "" "Entries with errors were marked in red in the list. Details of the error " "will be shown when you select such an entry." msgstr "" "Entrate cù sbaglii sò marcate di rossu in a lista. I detaglii di u sbagliu " "seranu videvule quandu l'entrata serà selezziunata." msgid "The file was saved safely." msgstr "U schedariu hè statu arregistratu bè." msgid "" "The file was saved safely and compiled into the MO format, but it will " "probably not work correctly." msgstr "" "U schedariu hè statu arregistratu è trasfurmatu in a forma MO, ma ùn puderà " "micca funziunà bè." msgid "" "The file was saved safely, but it cannot be compiled into the MO format and " "used." msgstr "" "U schedariu hè statu arregistratu bè, ma ùn pò micca esse trasfurmatu in a " "forma MO è impiegatu." msgid "" "The file was compiled into the MO format, but it will probably not work " "correctly." msgstr "" "U schedariu hè statu trasfurmatu in a forma MO, ma podasse ùn funziunerà " "micca bè." msgid "The file cannot be compiled into the MO format and used." msgstr "U schedariu ùn pò micca esse trasfurmatu in a forma MO è impiegatu." msgid "No problems with the translation found." msgstr "Ùn ci hè penseri cù sta traduzzione." #, c-format msgid "The translation is ready for use, but %d entry is not translated yet." msgid_plural "" "The translation is ready for use, but %d entries are not translated yet." msgstr[0] "" "A traduzzione hè pronta à l'approdu, ma %d entrata ùn hè micca tradutta." msgstr[1] "" "A traduzzione hè pronta à l'approdu, ma %d entrate ùn sò micca tradutte." msgid "The translation is ready for use." msgstr "A traduzzione hè pronta à l'approdu." #, c-format msgid "Poedit automatically fixed invalid content in the file “%s”." msgstr "" "Poedit hà currettu autumaticamente u cuntenutu gattivu in u schedariu “%s”." msgid "" "The file contained duplicate items, which is not allowed in PO files and " "would prevent the file from being used. Poedit fixed the issue, but you " "should review translations of any items marked as needing work and correct " "them if necessary." msgstr "" "U schedariu cuntinia elementi in doppiu, ciò ch'ùn hè micca permessu in i " "schedarii PO è puderia impedisce u schedariu d'esse impiegatu. Poedit hà " "currettu u penseru, ma ci vole à verificà e traduzzioni di l'elementi chì sò " "marcati cum'è dubbitosi è podasse à curregelli." msgid "Language of the translation isn’t set." msgstr "" msgid "Set Language" msgstr "Definisce a Lingua" msgid "Set language" msgstr "Definisce a lingua" #. TRANSLATORS: This is shown underneath "Language of the translation isn't set (or ...is the same as source language)." msgid "" "Suggestions are not available if the translation language is not set " "correctly. Other features, such as plural forms, may be affected as well." msgstr "" "E suggestioni ùn sò micca dispunibule s'è a lingua di traduzzione ùn hè " "micca definita bè. D'altre funzioni, cum'è e forme plurale, ponu esse " "affettate dinù." msgid "Language of the translation is the same as source language." msgstr "A lingua di a traduzzione hè listessa chì quella d'urigine." msgid "Fix Language" msgstr "Currege a Lingua" msgid "Fix language" msgstr "Currege a lingua" msgid "" "This catalog has entries with plural forms, but doesn’t have Plural-Forms " "header configured." msgstr "" msgid "" "Entries in this catalog have different plural forms count from what " "catalog’s Plural-Forms header says" msgstr "" msgid "Required header Plural-Forms is missing." msgstr "Manca a rubrica Forme-Plurale chì hè richiesta." #, c-format msgid "Syntax error in Plural-Forms header (\"%s\")." msgstr "Sbagliu di sintassa in a rubrica Forme-Plurale (\"%s\")." msgid "Fix the Header" msgstr "Currege a Rubrica" msgid "Fix the header" msgstr "Currege a rubrica" #. TRANSLATORS: %s is language name in its basic form (as you #. would see e.g. in a list of supported languages). You may need #. to rephrase it, e.g. to an equivalent of "for language %s". #, c-format msgid "Plural forms expression used by the catalog is unusual for %s." msgstr "" "L'espressione di e forme plurale impiegata da u catalogu hè strana per a " "lingua %s." #. TRANSLATORS: A verb, shown as action button with ""Plural forms expression used by the catalog is unusual for %s.")" msgid "Review" msgstr "Revista" #, c-format msgid "Error loading message catalog file “%s”." msgstr "" #, c-format msgid "Translated: %d of %d (%d %%)" msgstr "Traduttu : %d frà %d (%d %%)" #, c-format msgid "Remaining: %d" msgstr "Restu : %d" #, c-format msgid "%d error" msgid_plural "%d errors" msgstr[0] "%d sbagliu" msgstr[1] "%d sbaglii" #, c-format msgid "%d entry" msgid_plural "%d entries" msgstr[0] "%d entrata" msgstr[1] "%d entrate" msgid " (unsaved)" msgstr " (micca arregistratu)" msgid " (modified)" msgstr " (mudificatu)" #, c-format msgid "Failed to update translation memory: %s" msgstr "Fiascu per rinnovà a memoria di a traduzzione: %s" msgid "Purge deleted translations" msgstr "Spurgulà e traduzzioni cacciate" msgid "Do you want to remove all translations that are no longer used?" msgstr "Vulete toglie tutte e traduzzioni ch'ùn sò più impiegate ?" msgid "" "If you continue with purging, all translations marked as deleted will be " "permanently removed. You will have to translate them again if they are added " "back in the future." msgstr "" "S'è voi cuntinuate cusì, tutte e traduzzioni marchate cum'è cacciate seranu " "tolte per sempre. Ci vulerà à traducele torna s'elle sò aghjunte à l'avvene." msgid "Keep" msgstr "Cunservà" msgid "Purge" msgstr "Spurgulà" msgid "Copy from source text" msgstr "Cupià da u testu d'&urigine" msgid "Copy from Source Text" msgstr "Cupià da u Testu d'&Urigine" #. TRANSLATORS: This is the key shortcut used in menus on Windows, some languages call them differently #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Ctrl+" msgstr "Ctrl+" msgid "Clear translation" msgstr "&Viutà a traduzzione" msgid "Clear Translation" msgstr "&Viutà a Traduzzione" msgid "Edit comment" msgstr "Mudificà u cummentu" msgid "Edit Comment" msgstr "Mudificà u Cummentu" msgid "References:" msgstr "Referenze :" msgid "&Bookmarks" msgstr "&Indette" #. TRANSLATORS: This is the key shortcut used in menus on Windows, some languages call them differently #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Alt+" msgstr "Alt+" #, c-format msgid "Set bookmark %i" msgstr "Definisce l'indetta %i" #, c-format msgid "Go to bookmark %i" msgstr "Andà à l'indetta %i" #, c-format msgid "Set Bookmark %i" msgstr "Definisce l'Indetta %i" #, c-format msgid "Go to Bookmark %i" msgstr "Andà à l'Indetta %i" msgid "Hide Sidebar" msgstr "Piantà a Barra Laterale" msgid "Show Sidebar" msgstr "Affissà a Barra Laterale" msgid "Hide Status Bar" msgstr "Piattà a Barra di Statu" msgid "Show Status Bar" msgstr "Affissà a Barra di Statu" msgid "Source text:" msgstr "Testu d'urigine :" msgid "Singular:" msgstr "Singulare :" msgid "Plural:" msgstr "Plurale :" msgid "Translation:" msgstr "Traduzzione :" msgid "Pre-translated" msgstr "Pre-tradutta" msgid "Needs Work" msgstr "Dubbitosu" #. TRANSLATORS: This indicates that the string's translation isn't final #. and has known problems. For example, it might be machine translated or #. fuzzy matched from an older string. The translation should be short and #. convey this. If it's problematic to translate it, "Needs review" is #. acceptable substitute, but note that the meaning is subtly different: #. "needs review" implies that somebody else should review the string after #. I am done with it (i.e. consider it good), while "needs work" implies I #. need to return to it and finish the translation. msgid "Needs work" msgstr "Dubbitosa" msgid "" "POT files are only templates and don’t contain any translations themselves.\n" "To make a translation, create a new PO file based on the template." msgstr "" "I schedarii POT sò solu mudelli è ùn cuntenenu micca di traduzzione.\n" "Per fà una traduzzione, create un novu schedariu PO appughjatu nant'à u " "mudellu." msgid "Create New Translation" msgstr "Creà una Nova Traduzzione" msgid "Create new translation" msgstr "Creà una nova traduzzione" msgid "Everything" msgstr "Tuttu" #, c-format msgid "Form %i" msgstr "Forma %i" msgid "Singular" msgstr "Singulare" msgid "Zero" msgstr "Zeru" msgid "One" msgstr "Unu" msgid "Two" msgstr "Dui" msgid "Plural" msgstr "Plurale" msgid "Other" msgstr "Altru" #, c-format msgid "%s Format" msgstr "Forma %s" #. TRANSLATORS: %s is replaced with language name, e.g. "PHP" or "C", so "PHP Format" etc." #, c-format msgid "%s format" msgstr "Forma %s" msgid "Source text" msgstr "Testu d'urigine" #, c-format msgid "Translation — %s" msgstr "Traduzzione — %s" msgid "ID" msgstr "ID" #, c-format msgid "Source text — %s" msgstr "Testu d'urigine — %s" msgid "unknown language" msgstr "lingua scunnisciuta" #, c-format msgid "Failed command: %s" msgstr "Cumanda fiasca : %s" msgid "Failed to merge gettext catalogs." msgstr "Fiascu per unisce i cataloghi gettext." msgid "Source file" msgstr "Schedariu d'urigine" msgid "Source file occurrence:" msgstr "Occurrenza di schedariu d'urigine :" msgid "Open in Editor" msgstr "Apre cù l'Editore" msgid "Open in editor" msgstr "Apre cù l'editore" msgid "No references for the selected item." msgstr "Alcuna referenza per l'elementu selezziunatu." #, c-format msgid "Error opening file %s!" msgstr "Sbagliu à l'apertura di u schedariu '%s' !" msgid "Find" msgstr "Circà" msgid "Replace" msgstr "Rimpiazzà" #. TRANSLATORS: Expander in Find window for additional options (case sensitive etc.) msgid "Options" msgstr "Ozzioni" msgid "Ignore case" msgstr "Ùn sfarenzià micca maiuscule è minuscule" msgid "Wrap around" msgstr "Circunvoglie" msgid "Whole words only" msgstr "Solu e parolle sane" msgid "Find in source texts" msgstr "Circà in i testi d'urigine" msgid "Find in translations" msgstr "Circà in e traduzzioni" msgid "Find in comments" msgstr "Circà in i cummenti" msgid "Close" msgstr "Chjode" msgid "Replace &All" msgstr "" msgid "Replace &all" msgstr "" msgid "&Replace" msgstr "" msgid "< &Previous" msgstr "< &Precedente" msgid "&Next >" msgstr "&Seguente >" msgid "String to find" msgstr "Frasa à circà" msgid "Replacement string" msgstr "Frasa di rimpiazzamentu" #, c-format msgid "Cannot execute program: %s" msgstr "Ùn pò micca eseguisce u prugramma : %s" msgid "Language Code or Name (e.g. en_GB)" msgstr "Codice o Nome di a Lingua (i.e. : en_GB)" msgid "Translation Language" msgstr "Lingua di Traduzzione" msgid "Language of the translation:" msgstr "Lingua di a traduzzione :" msgid "Poedit - Catalogs manager" msgstr "Poedit - Amministratore di cataloghi" msgid "Catalog" msgstr "Catalogu" msgid "Total" msgstr "Tutale" msgid "Untrans" msgstr "Micca traduttu" msgid "Errors" msgstr "" msgid "Last modified" msgstr "Mudificatu u" msgid "Select directory" msgstr "Selezziunà u cartulare" msgid "Directories:" msgstr "Cartulari :" msgid "" msgstr "" msgid "Do you want to delete the project?" msgstr "Vulete caccià u prughjettu ?" msgid "Confirmation" msgstr "Cunfirmazione" msgid "" "Do you really want to do mass update of\n" "all catalogs in this project?" msgstr "" "Site sicuru di vulè mudificà in massa\n" "tutti i cataloghi di stu prughjettu ?" msgid "Information about the translator" msgstr "Infurmazione apprupositu di u traduttore" msgid "Name:" msgstr "Nome :" msgid "Your Name" msgstr "U vostru Nome" msgid "Email:" msgstr "Indirizzu elettronicu:" msgid "your_email@example.com" msgstr "u_vostru_indirizzu_email@esempiu.com" msgid "" "Your name and email address are only used to set the Last-Translator header " "of GNU gettext files." msgstr "" "I vostri nome è indirizzu elettronicu sò solu impiegati per definisce a " "rubrica di l'Ultimu Traduttore in i schedarii gettext GNU." msgid "Editing" msgstr "Mudificazione" msgid "Automatically compile MO file when saving" msgstr "Pruduce autumaticamente u schedariu MO à l'arregistramentu" msgid "Show summary after catalog update" msgstr "Affissà u riassuntu dopu à u rinnovu di u catalogu" msgid "Check spelling" msgstr "Verificà l'ortugrafia" msgid "Always change focus to text input field" msgstr "Dà a primura à u testu piuttostu chì à a lista" msgid "" "Never let the list of strings take focus. If enabled, you must use Ctrl-" "arrows for keyboard navigation but you can also type text immediately, " "without having to press Tab to change focus." msgstr "" "Ùn dà mai a primura à a lista di frase. Osinnò, ci vole à impiegà e Ctrl-" "fleccie per navigà, ma hè ancu pussibule di scrive u testu cusì, senza pone " "nant'à Tab per cambià a primura." msgid "Appearance" msgstr "Aspettu" msgid "Use custom list font:" msgstr "Impiegà una grafia persunalizata per a lista :" msgid "Use custom text fields font:" msgstr "Impiegà una grafia persunalizata per i testi :" msgid "Change UI language" msgstr "Cambià a lingua di l'interfaccia" #. TRANSLATORS: This is a note appended to "Check spelling" when running on older Windows versions msgid "(requires Windows 8 or newer)" msgstr "(richiede Windows 8 o più recente)" msgid "General" msgstr "Generale" msgid "Use translation memory" msgstr "Impiegà a memoria di traduzzione" msgid "Learn From Files…" msgstr "" msgid "Learn from files…" msgstr "" #. TRANSLATORS: This is a button that deletes everything in the translation memory (i.e. clears/resets it). msgid "Reset" msgstr "Viutà" #. TRANSLATORS: Followed by "match translations within the file" or "pre-translate from TM" msgid "When updating from sources" msgstr "S'è mudificazione da testi d'urigine" #. TRANSLATORS: Preceded by "When updating from sources" msgid "fuzzy match within the file" msgstr "frase dubbitose di u schedariu" #. TRANSLATORS: Preceded by "When updating from sources" msgid "pre-translate from TM" msgstr "pre-traduce à partesi di a MdT" msgid "" "Poedit can attempt to fill in new entries from only previous translations in " "the file or from your entire translation memory. Using the TM won’t be very " "effective if it’s near-empty, but it will get better as you add more " "translations to it." msgstr "" "Poedit pò pruvà di riempie e nove frase solu da e vostre traduzzioni di stu " "schedariu osinnò da a memoria di traduzzione sana. L'impiegu di a MdT ùn " "serà micca efficiente s'ella hè guasi viota, ma serà più bona quandu ci serà " "parechje traduzzioni." msgid "Stored translations:" msgstr "Traduzzioni ammanugliate :" msgid "Database size on disk:" msgstr "Dimensione di a banca di dati nant'à u dischettu :" msgid "Select translation files to import" msgstr "Selezziunà i schedarii di traduzzione à impurtà" msgid "Translation Memory" msgstr "Memoria di Traduzzione" msgid "Importing translations…" msgstr "" msgid "Finalizing…" msgstr "" msgid "Reset translation memory" msgstr "Viutà a memoria di traduzzione" msgid "Are you sure you want to reset the translation memory?" msgstr "Site sicuru di vulè viutà a memoria di traduzzione ?" msgid "" "Resetting the translation memory will irrevocably delete all stored " "translations from it. You can’t undo this operation." msgstr "" "A viotatura di a memoria di traduzzione caccierà tutte e traduzzioni chì sò " "arregistrate dentru. Ùn pudete micca disfà st'operazione." msgid "Cancel" msgstr "Abbandunà" #. TRANSLATORS: This is abbreviation of "Translation Memory" used in Preferences on macOS. #. Long text looks weird there, too short (like TM) too, but less so. "General" is about ideal #. length there. msgid "TM" msgstr "MdT" msgid "" "Source code extractors are used to find translatable strings in the source " "code files and extract them so that they can be translated." msgstr "" "I prugrammi d'estrazzione sò fatti per truvà e frase traducevule in i " "schedarii di testu d'urigine, è estraelle per ch'elle sianu tradutte." msgid "Custom Extractors:" msgstr "" msgid "Custom extractors:" msgstr "" msgid "Edit…" msgstr "" msgid "GNU gettext" msgstr "" msgid "" "Supports all programming languages recognized by GNU gettext tools (PHP, C/C+" "+, C#, Perl, Python, Java, JavaScript and others)." msgstr "" msgid "Delete extractor" msgstr "Squassà l'attrezzu d'estrazzione" #, c-format msgid "Are you sure you want to delete the “%s” extractor?" msgstr "Site sicuru di vulè squassà l'attrezzu d'estrazzione “%s” ?" msgid "Extractors" msgstr "Estrazzione" msgid "Accounts" msgstr "Conti" msgid "Automatically check for updates" msgstr "Cuntrollà autumaticamente i rinnovi" msgid "Include beta versions" msgstr "Include e versioni 'beta'" msgid "" "Beta versions contain the latest new features and improvements, but may be a " "bit less stable." msgstr "" "E versioni 'beta' cuntenenu l'ultimi funzioni è migliuramenti ma ponu esse " "un pocu menu stabule." msgid "Updates" msgstr "Rinnovi" msgid "" "These settings affect internal formatting of PO files. Adjust them if you " "have specific requirements e.g. because of version control." msgstr "" "Ste preferenze affettanu a forma interna di i schedarii PO. Accunciatele s'è " "voi avete una dumanda particulare, per indettu, un cuntrollu di versione." msgid "Line endings:" msgstr "Fine di a linea :" msgid "Unix (recommended)" msgstr "Unix (ricumandatu)" msgid "Windows" msgstr "Windows" #. TRANSLATORS: Followed by text control for entering number; wraps text at given width msgid "Wrap at:" msgstr "Girà à :" msgid "Preserve formatting of existing files" msgstr "Cunservà a forma di i schedarii chì esistenu" msgid "Advanced" msgstr "Espertu" msgid "Pre-translating…" msgstr "Pre-traduzzione in corsu..." #, c-format msgid "Pre-translated %u string" msgid_plural "Pre-translated %u strings" msgstr[0] "" msgstr[1] "" #. TRANSLATORS: This is a somewhat common term describing the action where #. you apply the translation memory and/or machine translation to all of the #. strings you're translating as the first step, followed by correcting, #. improving etc., i.e. actually translating the strings. This may be tricky #. to express in other languages as simply as in English, but please try to #. keep it similarly concise. Please try to avoid, if possible, describing it #. as "auto-translation" and similar, because such terminology would mislead #. some users into thinking it's all that needs to be done (spoken from #. experience). "Pre-translate" nicely expresses that it's only the step done #. *before* actual translation. msgid "Pre-translate" msgstr "Pre-traduce" msgid "Only fill in exact matches" msgstr "Riempie solu e frase uguale" msgid "" "By default, inaccurate results are filled in as well and marked as needing " "work. Check this option to only include accurate matches." msgstr "" "Di bona regula, i resulti chì s'assumiglianu sò riempiuti dinù è annutati " "cum'è dubbitosi. Attivà st'ozzione per riempie solu e frase uguale." msgid "Don’t mark exact matches as needing work" msgstr "Ùn marcate micca e frase uguale cum'è dubbitose" msgid "" "Only enable if you trust the quality of your TM. By default, all matches " "from the TM are marked as needing work and should be reviewed before use." msgstr "" "Attivà st'ozzione solu s'è voi site sicuru di a vostra MdT. Osinnò tutte e " "suggestioni chì venenu di a MdT sò annutate cum'è dubbitose è deveranu esse " "verificate nanzu d'impiegalle." msgid "" "Pre-translation automatically finds exact or fuzzy matches for untranslated " "strings in the translation memory and fills in their translations." msgstr "" "A pre-traduzzione trova autumaticamente in a memoria di traduzzione e frase " "uguale o dubbitose di e frase micca tradutte è riempielle cù a traduzzione " "trova." #, c-format msgid "%d entry was pre-translated." msgid_plural "%d entries were pre-translated." msgstr[0] "%d entrata hè stata pre-tradutta." msgstr[1] "%d entrate sò state pre-tradutte." msgid "" "The translations were marked as needing work, because they may be " "inaccurate. You should review them for correctness." msgstr "" "E traduzzioni sò state marcate cum'è dubbitose, perchè sò podasse imprecise. " "Ci vole à verificà a so accuratezza." msgid "No entries could be pre-translated." msgstr "Alcuna entrata ùn hè stata pre-tradutta." msgid "" "The TM doesn’t contain any strings similar to the content of this file. It " "is only effective for semi-automatic translations after Poedit learns enough " "from files that you translated manually." msgstr "" "A MdT ùn cuntene alcuna frasa simile à u cuntenutu di stu schedariu. Quessu " "funziona bè per traduzzioni mezu-autumatiche dopu chì Poedit abbia amparatu " "abbastanza da i schedarii tradutti da una manera manuale." msgid "" "Drag and Drop Folders Here\n" "\n" "or use the + button" msgstr "" "Sguillà é Depone i Cartulari Quì\n" "\n" "o impiegate u buttone +" msgid "" "Drag and drop folders here\n" "\n" "or use the + button" msgstr "" "Sguillà é depone i cartulari quì\n" "\n" "o impiegate u buttone +" msgid "Add Folders…" msgstr "" msgid "Add folders…" msgstr "" msgid "Add Files…" msgstr "" msgid "Add files…" msgstr "" msgid "Add Wildcard…" msgstr "" msgid "Add wildcard…" msgstr "" msgid "Paths" msgstr "Passeghji" msgid "Excluded paths" msgstr "Passeghji escludi" msgid "Advanced extraction settings" msgstr "" msgid "Extract notes for translators from:" msgstr "" msgid "Comments prefixed with:" msgstr "" msgid "All comments" msgstr "" msgid "Additional xgettext flags:" msgstr "" msgid "Additional keywords" msgstr "Parolle chjave addiziunale" msgid "Name of the project the translation is for" msgstr "Nome di prughjettu di sta traduzzione" msgid "Team name and email address or URL" msgstr "" msgid "e.g. nplurals=2; plural=(n > 1);" msgstr "i.e. : nplurals=2; plural=(n > 1);" msgid "UTF-8 (recommended)" msgstr "UTF-8 (ricumandatu)" msgid "Please save the file first. This section cannot be edited until then." msgstr "" "In primu locu, ci vole à arregistrà u schedariu. Osinnò sta sezzione ùn pò " "micca esse mudificata." msgid "Not all plural forms are translated." msgstr "" msgid "The translation should start as a sentence." msgstr "" msgid "The translation should start with a lowercase character." msgstr "" msgid "The translation doesn’t start with a space." msgstr "" msgid "The translation starts with a space, but the source text doesn’t." msgstr "" msgid "The translation is missing a newline at the end." msgstr "" msgid "The translation ends with a newline, but the source text doesn’t." msgstr "" msgid "The translation is missing a space at the end." msgstr "" msgid "The translation ends with a space, but the source text doesn’t." msgstr "" #, c-format msgid "The translation should end with “%s”." msgstr "" #, c-format msgid "The translation should not end with “%s”." msgstr "" #, c-format msgid "The translation ends with “%s”, but the source text ends with “%s”." msgstr "" msgid "Comment:" msgstr "Cummentu :" msgid "OK" msgstr "OK" msgid "C&lear" msgstr "&Viutà" msgid "Clear the comment" msgstr "Viutà u cummentu" msgid "New" msgstr "Novu" msgid "Create new translations project" msgstr "Creà un novu prughjettu di traduzzioni" msgid "Edit" msgstr "Mudificà" msgid "Edit the project" msgstr "Mudificà u prughjettu" msgid "Delete the project" msgstr "Caccià u prughjettu" msgid "Update all" msgstr "Mudificà tuttu" msgid "Update all catalogs in the project" msgstr "Mudificà tutti i cataloghi di stu prughjettu" msgid "Edit project" msgstr "Mudificà u prughjettu" msgid "Project name:" msgstr "Nome di prughjettu :" msgid "Browse" msgstr "Sfuglià" msgid "Add directory to the list" msgstr "Aghjunghje u cartulare à a lista" msgid "&New…" msgstr "" msgid "New from &POT/PO file…" msgstr "" msgid "New From &POT/PO File…" msgstr "" msgid "&Open…" msgstr "" msgid "Open Recent" msgstr "Apre Recente" msgid "Open from Crowdin…" msgstr "" msgid "Open From Crowdin…" msgstr "" msgid "&Close" msgstr "&Chjode" msgid "&Save" msgstr "A&rregistrà" msgid "Save &as…" msgstr "" msgid "Save &As…" msgstr "" msgid "Compile to MO…" msgstr "" msgid "E&xport as HTML…" msgstr "" msgid "Check for updates…" msgstr "" msgid "&Preferences…" msgstr "" msgid "Catalogs &manager" msgstr "A&mministratore di cataloghi" msgid "Catalogs &Manager" msgstr "A&mministratore di Cataloghi" msgid "E&xit" msgstr "&Esce" msgid "Quit" msgstr "Esce" msgid "Copy from singular" msgstr "Cupià da singulare" msgid "Copy From Singular" msgstr "Cupià da Singulare" msgid "Translation needs &work" msgstr "Traduzzione &dubbitosa" msgid "Translation Needs &Work" msgstr "Traduzzione &Dubbitosa" msgid "Edit &comment" msgstr "&Mudificà u cummentu" msgid "Edit &Comment" msgstr "&Mudificà u Cummentu" msgid "Suggestions" msgstr "Suggestioni" msgid "&Find…" msgstr "" msgid "Replace…" msgstr "" msgid "Find next" msgstr "Circà seguente" msgid "Find previous" msgstr "Circà precedente" msgid "Find and Replace…" msgstr "" msgid "Find Next" msgstr "Circà Seguente" msgid "Find Previous" msgstr "Circà Precedente" msgid "&Preferences" msgstr "&Preferenze" msgid "Display entry &IDs" msgstr "Affissà l'&ID di l'entrate" msgid "Display Entry &IDs" msgstr "Affissà l'&ID di l'Entrate" msgid "Sort by &file order" msgstr "Classificà da l'&ordine di schedariu" msgid "Sort by &File Order" msgstr "Classificà da l'&Ordine di Schedariu" msgid "Sort by &source" msgstr "Classificà da u testu d'&urigine" msgid "Sort by &Source" msgstr "Classificà da u Testu d'&Urigine" msgid "Sort by &translation" msgstr "Classificà da a &traduzzione" msgid "Sort by &Translation" msgstr "Classificà da a &Traduzzione" msgid "&Group by context" msgstr "&Gruppu da contestu" msgid "&Group By Context" msgstr "&Gruppu da Contestu" msgid "Entries with errors first" msgstr "Elementi cù &sbaglii in primu" msgid "Entries with Errors First" msgstr "Elementi cù Sbaglii in Primu" msgid "&Untranslated entries first" msgstr "&Elementi micca tradutti in primu" msgid "&Untranslated Entries First" msgstr "&Elementi Micca Tradutti in Primu" msgid "&Show references" msgstr "&Affissà e referenze" msgid "&Show References" msgstr "&Affissà e Referenze" msgid "Show sidebar" msgstr "Affissà a barra laterale" msgid "Show status bar" msgstr "Affissà a barra di statu" msgid "C&atalog" msgstr "&Catalogu" msgid "&Update from sources" msgstr "&Mudificà da i testi d'urigine" msgid "&Update from Sources" msgstr "&Mudificà da i Testi d'Urigine" msgid "Update from &POT file…" msgstr "" msgid "Update from &POT File…" msgstr "" msgid "Sync with Crowdin" msgstr "Sincrunizà cù Crowdin" msgid "Pre-&translate…" msgstr "" msgid "&Purge deleted translations" msgstr "Spur&gulà e traduzzioni cacciate" msgid "&Purge Deleted Translations" msgstr "Spur&gulà e Traduzzioni Cacciate" msgid "&Validate translations" msgstr "&Validazione di e traduzzione" msgid "&Validate Translations" msgstr "&Validazione di e Traduzzione" msgid "&Properties…" msgstr "" msgid "&Done and next" msgstr "&Fattu eppò seguente" msgid "&Done and Next" msgstr "&Fattu eppò Seguente" msgid "&Previous translation" msgstr "Traduzzione &precedente" msgid "&Previous Translation" msgstr "Traduzzione &Precedente" msgid "&Next translation" msgstr "Traduzzione &seguente" msgid "&Next Translation" msgstr "Traduzzione &Seguente" msgid "P&revious unfinished" msgstr "Incumpletu p&recedente" msgid "P&revious Unfinished" msgstr "Incumpletu P&recedente" msgid "Ne&xt unfinished" msgstr "Incumpletu s&eguente" msgid "Ne&xt Unfinished" msgstr "Incumpletu S&eguente" msgid "Previous plural form" msgstr "Forma plurale precedente" msgid "Previous Plural Form" msgstr "Forma Plurale Precedente" msgid "Next plural form" msgstr "Forma plurale seguente" msgid "Next Plural Form" msgstr "Forma Plurale Seguente" msgid "&Online help" msgstr "Aiutu &inlinea" msgid "&Online Help" msgstr "Aiutu &Inlinea" msgid "&GNU gettext manual" msgstr "&Ducumentazione GNU gettext" msgid "&GNU gettext Manual" msgstr "&Ducumentazione GNU gettext" msgid "&About Poedit" msgstr "&Apprupositu di Poedit" msgid "&About" msgstr "&Apprupositu" msgid "Extractor setup" msgstr "Installazione di l'attrezzu d'estrazzione" msgid "List of extensions separated by semicolons (e.g. *.cpp;*.h):" msgstr "Lista di i stinzioni separati da punti-virgule (i.e. *.cpp;*.h):" msgid "Invocation:" msgstr "Invucazione :" msgid "Command to extract translations:" msgstr "Cumanda per estrae e traduzzioni :" msgid "" "This is the command used to launch the extractor.\n" "%o expands to the name of output file, %K to list\n" "of keywords, %F to list of input files,\n" "%C to charset flag (see below)." msgstr "" "Ghjè a cumanda impiegata per lancià l'attrezzu d'estrazzione.\n" "%o hè u nome di schedariu in esciuta, %K per a lista\n" "di e parolle chjave, %F per a lista di schedarii in entrata,\n" "%C per l'ozzione di u mazzu di caratteri (fighjate inghjò)." msgid "An item in keywords list:" msgstr "Un elementu in a lista di e parolle chjave :" msgid "" "This will be attached to the command line once\n" "for each keyword. %k expands to the keyword." msgstr "" "Quessu serà ligatu à a linea di cumanda una volta\n" "per ogni parolla chjave. %k estende à a parolla chjave." msgid "An item in input files list:" msgstr "Un elementu in a lista di schedarii d'entrata :" #, c-format msgid "" "This will be attached to the command line once\n" "for each input file. %f expands to the filename." msgstr "" "Quessu serà ligatu à a linea di cumanda una volta per ogni\n" "schedariu in entrata. %f estende à u nome di schedariu." msgid "Source code charset:" msgstr "Mazzu di caratteri di u testu d'urigine :" #, c-format msgid "" "This will be attached to the command line\n" "only if source code charset was given. %c expands to charset value." msgstr "" "Quessu serà ligatu à a linea di cumanda solu s'è ci hè un\n" "mazzu di caratteri di u testu d'urigine. %c estende à stu valore." msgid "Catalog properties" msgstr "Pruprietà di u catalogu" msgid "Project name and version:" msgstr "Nome è versione di prughjettu :" msgid "Language team:" msgstr "" msgid "Plural forms:" msgstr "" msgid "Use default rules for this language" msgstr "Impiegà e regule predefinite per sta lingua" msgid "Use custom expression" msgstr "Impiegà un espressione predefinita" msgid "Learn about plural forms" msgstr "Per amparà nant'à e forme plurale" msgid "Charset:" msgstr "Mazzu di caratteri :" msgid "Advanced Extraction Settings…" msgstr "" msgid "Advanced extraction settings…" msgstr "" msgid "Translation Properties" msgstr "Pruprietà di a Traduzzione" msgid "Translation properties" msgstr "Pruprietà di a traduzzione" msgid "Sources Paths" msgstr "Passeghji d'Urigine" msgid "Sources paths" msgstr "Passeghji d'urigine" msgid "Extract text from source files in the following directories:" msgstr "Estrae testu da i schedarii d'urigine in sti cartulari :" msgid "Base path:" msgstr "Passeghju di basa :" msgid "Sources Keywords" msgstr "Parolle Chjave di Testi d'Urigine" msgid "Sources keywords" msgstr "Parolle chjave di testi d'urigine" msgid "" "Use these keywords (function names) to recognize translatable strings\n" "in source files:" msgstr "" "Aduprate ste parolle chjave (nomi di funzioni) per ricunnosce e frase\n" "chì sò à traduce in i schedarii d'urigine :" msgid "Also use default keywords for supported languages" msgstr "Impiegà dinù parolle chjave predefinite per e lingue accettate" msgid "Learn About Gettext Keywords" msgstr "Per Amparà nant'à e Parolle Chjave Gettext" msgid "Learn about gettext keywords" msgstr "Per amparà nant'à e parolle chjave gettext" msgid "Update summary" msgstr "Riassuntu di e mudificazioni" msgid "" "These strings were found in the sources but were not in the catalog.\n" "Poedit will add them to the catalog now." msgstr "" "Ste frase sò state trove in i testi d'urigine ma micca in u catalogu.\n" "Poedit hà da aghjunghjelle à u catalogu avà." msgid "New strings" msgstr "Frase nove" msgid "" "These strings are no longer in the sources.\n" "Poedit will remove them from the catalog now." msgstr "" "Ste frase ùn sò più in i testi d'urigine.\n" "Poedit hà da togliele da u catalogu avà." msgid "Obsolete strings" msgstr "Frase anziane" msgid "(0 new, 0 obsolete)" msgstr "(0 nova, 0 anziana)" msgid "Open" msgstr "Apre" msgid "Save catalog" msgstr "Arregistrà u catalogu" msgid "Validate" msgstr "Validazione" msgid "Check for errors in the translation" msgstr "Circà i sbaglii in a traduzzione" msgid "Update" msgstr "Mudificà" msgid "Update catalog - synchronize it with sources" msgstr "Mudificà u catalogu - Sincrunizallu cù i testi d'urigine" msgid "Sidebar" msgstr "Barra Laterale" msgid "Show or hide the sidebar" msgstr "Affissà o piantà a barra laterale" #. TRANSLATORS: "Previous" as in used in the past, now replaced with newer. msgid "Previous source text:" msgstr "U precedente testu d'urigine :" msgid "" "The old source text (before it changed during an update) that the now-" "inaccurate translation corresponds to." msgstr "" "U vechju testu d'urigine (nanzu ch'ellu sia cambiatu) chì curresponde à a " "traduzzione imprecise avà." msgid "Notes for translators:" msgstr "Annutazioni per i traduttori :" msgid "Add comment" msgstr "Aghjunghje un cummentu" msgid "Add Comment" msgstr "Aghjunghje un Cummentu" msgid "Translation suggestions:" msgstr "Suggestioni di traduzzione :" #. TRANSLATORS: This is shown when no translation suggestions can be found in the TM (Windows). msgid "No matches found" msgstr "Alcuna occurrenza trova" #. TRANSLATORS: This is shown when no translation suggestions can be found in the TM (macOS, Linux). msgid "No Matches Found" msgstr "Alcuna Occurrenza Trova" msgid "This string was found in Poedit’s translation memory." msgstr "Sta frasa hè statu trova in a memoria di traduzzione di Poedit." msgid "Cannot create temporary directory." msgstr "Ùn pò micca creà u cartulare timpurariu." msgid "Welcome to Poedit" msgstr "Benvenuta in Poedit" #. TRANSLATORS: This is version information in about dialog, "%s" will be #. version number when used #, c-format msgid "Version %s" msgstr "Versione %s" msgid "Edit a Translation" msgstr "Mudificà una Traduzzione" msgid "Edit a translation" msgstr "Mudificà una traduzzione" msgid "Open an existing PO file and edit the translation." msgstr "Apre un schedariu PO chì esiste è mudificà a traduzzione." msgid "" "Take an existing PO file or POT template and create a new translation from " "it." msgstr "" "Parte da un schedariu PO o un mudellu POT chì esiste per creà una nova " "traduzzione." msgid "Collaborate on a Translation with Others" msgstr "Cullaburà cù d'Altri nant'à una Traduzzione" msgid "Collaborate on a translation with others" msgstr "Cullaburà cù d'altri nant'à una traduzzione" msgid "" "Download a file from Crowdin project, translate and sync your changes back." msgstr "" "Scaricà un schedariu à partesi di un prughjettu Crowdin, traduce è " "sincrunizà e vostre mudificazioni dopu." msgid "What is Crowdin?" msgstr "Cosa hè Crowdin ?" msgid "There are no translations. That’s unusual." msgstr "Ùn ci hè mancuna traduzzione. Quessa pare stranu." msgid "" "Translatable entries aren’t added manually in the Gettext system, but are " "automatically extracted\n" "from source code. This way, they stay up to date and accurate.\n" "Translators typically use PO template files (POTs) prepared for them by the " "developer." msgstr "" msgid "(Learn more about GNU gettext)" msgstr "(Sapene di più nant'à GNU gettext)" msgid "The simplest way to fill this catalog is to update it from a POT:" msgstr "" "A manera a più simplice di riempie stu catalogu hè di rinnuvallu da un POT :" msgid "Update from POT" msgstr "Mudificà da un POT" msgid "Take translatable strings from an existing POT template." msgstr "Piglià e frase traducevule da un mudellu POT chì esiste." msgid "" "You can also extract translatable strings directly from the source code:" msgstr "Pudete dinù estrae e frase traducevule da i schedarii d'urigine :" msgid "Extract from sources" msgstr "Estrae da i schedarii d'urigine" msgid "Configure source code extraction in Properties." msgstr "" "Sceglie l'ozzioni di l'estrazzione da i schedarii d'urigine in Pruprietà." msgid "Sync" msgstr "Sincrunizà" msgid "Synchronize the translation with Crowdin" msgstr "Sincrunizà a traduzzione cù Crowdin" #. TRANSLATORS: This is titlebar of about dialog, "%s" is application name #. ("Poedit" here, but please use "%s") #, c-format msgid "About %s" msgstr "Apprupositu di %s" #. TRANSLATORS: Title of the preferences window on Windows and Linux. "%s" is replaced with "Poedit" when running. #, c-format msgid "%s Preferences" msgstr "Preferenze di %s" #. TRANSLATORS: macOS item in app menu msgid "Services" msgstr "Servizii" #. TRANSLATORS: macOS item in app menu, %s is replaced with "Poedit" #, c-format msgid "Hide %s" msgstr "Piattà %s" #. TRANSLATORS: macOS item in app menu msgid "Hide Others" msgstr "Piattà l'Altri" #. TRANSLATORS: macOS item in app menu msgid "Show All" msgstr "Affissà Tuttu" #. TRANSLATORS: macOS item in app menu, %s is replaced with "Poedit" #, c-format msgid "Quit %s" msgstr "Esce %s" #. TRANSLATORS: macOS item in app menu msgid "Preferences…" msgstr "" msgid "Preferences..." msgstr "Preferenze..." #. TRANSLATORS: Title of a category in Windows task menu (right-click icon in taskbar) msgid "Recent" msgstr "Recente" #. TRANSLATORS: Title of a category in Windows task menu (right-click icon in taskbar) msgid "Frequent" msgstr "Frequente" msgid "&Apply" msgstr "&Affettà" msgid "Apply" msgstr "Affettà" msgid "&Back" msgstr "&Precedente" msgid "Back" msgstr "Precedente" msgid "&Cancel" msgstr "&Abbandunà" msgid "&Clear" msgstr "&Spurgulà" msgid "Clear" msgstr "Squassà" msgid "Copy" msgstr "Cupià" msgid "Cu&t" msgstr "&Taglià" msgid "Cut" msgstr "Taglià" msgid "&Delete" msgstr "Caccià" msgid "&Quit" msgstr "&Esce" msgid "File" msgstr "Schedariu" msgid "Help" msgstr "Aiutu" msgid "&New" msgstr "&Novu" msgid "&No" msgstr "I&nnò" msgid "No" msgstr "Innò" msgid "&OK" msgstr "&Vai" msgid "Open…" msgstr "" msgid "&Open..." msgstr "&Apre..." msgid "Open..." msgstr "Apre..." msgid "&Paste" msgstr "&Incullà" msgid "Paste" msgstr "Incullà" msgid "Preferences" msgstr "Preferenze" msgid "&Redo" msgstr "&Rifà" msgid "Refresh" msgstr "Attualizà" msgid "&Save as" msgstr "&Arregistrà cù u nome" msgid "Save as" msgstr "Arregistrà cù u nome" msgid "Select &All" msgstr "&Selezziunà Tuttu" msgid "Select All" msgstr "Selezziunà Tuttu" msgid "&Undo" msgstr "&Disfà" msgid "&Yes" msgstr "&Iè" msgid "Yes" msgstr "Iè" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Shift+" msgstr "Maiusc+" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Enter" msgstr "Entrée" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Up" msgstr "Sù" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Down" msgstr "Ghjò" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Left" msgstr "" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Right" msgstr "" #. TRANSLATORS: Keyboard shortcut, must correspond to translation of "Ctrl+" msgid "ctrl" msgstr "ctrl" #. TRANSLATORS: Keyboard shortcut, must correspond to translation of "Alt+" msgid "alt" msgstr "alt" #. TRANSLATORS: Keyboard shortcut, must correspond to translation of "Shift+" msgid "shift" msgstr "maiusc" poedit-2.0.6/locales/pt_BR.mo0000664000372000037200000014214513230132042012706 00000000000000P%1 1 11<11J 2gW2 22 22 222 3333%3+333B3Q3W3]3f3z333333333333 3 44 4)4 04=4M4c4y44444444445 5(5D5Y5n55555555 6 '6:36:n6 666 6 666 6 7 #707?7O7c7~77777 71898'>8f88 8878689)=9g9 l9]w99A9I*:t:{:; ;;";:; U;`;.h;;;;;;;;<*<F<#[<<<<<<<<(<(=7= R=s=|== ==/= = >>#>9>L>b>2>>>>> ?)???????@@@ 2@?@R@Ee@"@?@ AA*.A YAfAyAK~A"A5A#B)BHAH HHI 'IHI PI ]IiI"nI;I(IIJ&J 5J ?JMJjJ ~JJJJJ JJK:K PK<^K.KKKKLL*%LPLVLgL xL LLJMNMgM MMMMM#MM'M$N7DN$|N%NNNNNNOOOO O2O P#P9PNP]PlPtP|PPPPPPPPQQQnQERZR>aR RRRR@RS-T~(s~#~ ~~4~D'M/u k&S=[ 2! !:+fЂ#'CkՃ܃+,Hu$ DŽ!7* bpw#ɅB%0Vl n t~#߇ +`B)D͈ /5 eq Y(9PVmtŊۊ !)/9D~6: &AGL`q!;3 /:0O('0ю 1&PXǏ؏5K\m ʐՐ $ *5D]'x!bӒܒ &6)+`ȓГ' '4'O!w ؔB$D5:zΕ +KQf{ lq ˗ ) 1/R2D0,+Xru)"LRn4ƚ֚$-6?EZ o}?E]fI3I:"Iȝ 4T ftDȟ۟ /ߠ !<MV^}  ơѡ 1L Tu ( 8DSdu1ޣ *>M Taw"Ǥ3 LZ` eo  ¥ץ" 7"Sv(Ҧe   Чݧ #7a<Ǩ֨  ˩ am" Ҫ' 33gNj8'<N[RnV#tqT )_D@αF5V1#h$).۳7 @Bz&I%joڵWy|ѶlN>Cڸ<[qjjպۺ +DZu Ӽ߼sx)ҽ (2-`};U(P!y"-ܿ$ f/ &A[bj |MB;X;ax $4) ^+-"*$@D}],6 9BW6tC3H>C'# )h?*Kq#-0^aG2zFYblx&2LADZ.EwPi=Ab[kv @4uh~ uL@|pnf.nTN? QI2:qOKcajd F!p ]U>T+rXi=J%Vxz51^s4 NH/F"8/XJ`om #UwQk :Gs$ 8jL!~I1,(<D-9B>|;$H(E?g<y!dYgIo \ <eN+rM5&cM5 :"K-A+EmZ7C"603B $%RfRVeyOG*S@ M,4}_{O%W91J)S[`' 7)v &;*{(l_.03=\7P8/t';P (modified) (unsaved)%d entry%d entries%d entry was pre-translated.%d entries were pre-translated.%d error%d errors%d issue with the translation found.%d issues with the translation found.%i line of file “%s” was not loaded correctly.%i lines of file “%s” were not loaded correctly.%s Format%s Preferences%s format&About&About Poedit&Apply&Back&Bookmarks&Cancel&Clear&Close&Copy&Delete&Done and Next&Done and next&Edit&File&Find…&GNU gettext Manual&GNU gettext manual&Go&Group By Context&Group by context&Help&New&New…&Next >&Next Translation&Next translation&No&OK&Online Help&Online help&Open...&Open…&Paste&Preferences&Preferences…&Previous Translation&Previous translation&Properties…&Purge Deleted Translations&Purge deleted translations&Quit&Redo&Replace&Save&Save as&Show References&Show references&Undo&Untranslated Entries First&Untranslated entries first&Update from Sources&Update from sources&Validate Translations&Validate translations&View&Yes(0 new, 0 obsolete)(Learn more about GNU gettext)(New: %i, obsolete: %i)(Use default language)(requires Windows 8 or newer)< &PreviousDrag and Drop Folders Here or use the + buttonDrag and drop folders here or use the + buttonAbout %sAccountsAdd CommentAdd Files…Add Folders…Add Wildcard…Add commentAdd directory to the listAdd files…Add folders…Add wildcard…Additional keywordsAdditional xgettext flags:AdvancedAdvanced Extraction Settings…Advanced extraction settingsAdvanced extraction settings…All Translation FilesAll commentsAlso use default keywords for supported languagesAlt+Always change focus to text input fieldAn item in input files list:An item in keywords list:AppearanceApplyAre you sure you want to delete the “%s” extractor?Are you sure you want to reset the translation memory?Automatically check for updatesAutomatically compile MO file when savingBackBase path:Beta versions contain the latest new features and improvements, but may be a bit less stable.Bring All to FrontBroken catalog file: plural form msgstr used without msgid_pluralBroken catalog file: singular form msgstr used together with msgid_pluralBrowseBy default, inaccurate results are filled in as well and marked as needing work. Check this option to only include accurate matches.C&atalogC&learCancelCannot create temporary directory.Cannot execute program: %sCapitalizeCatalogCatalog modified. Do you want to save changes?Catalog propertiesCatalogs &ManagerCatalogs &managerCatalogs ManagerChange UI languageCharset:Check Document NowCheck Grammar With SpellingCheck Spelling While TypingCheck for Updates…Check for errors in the translationCheck for updates…Check spellingClearClear TranslationClear the commentClear translationCloseCollaborate on a Translation with OthersCollaborate on a translation with othersCollecting source files…Command to extract translations:Comment:Comments prefixed with:Compile to MO…Compile to…Compiled Translation FilesConfigure source code extraction in Properties.ConfirmationCopyCopy From SingularCopy from Source TextCopy from singularCopy from source textCorrect Spelling AutomaticallyCouldn’t load file %s, it is probably corrupted.Couldn’t save file %s.Create New TranslationCreate new translationCreate new translations projectCrowdin errorCrowdin is an online localization management platform and collaborative translation tool. Poedit can seamlessly sync PO files managed at Crowdin.Ctrl+Cu&tCustom Extractors:Custom extractors:CutDatabase size on disk:DeleteDelete extractorDelete the projectDirectories:Display Entry &IDsDisplay entry &IDsDo you really want to do mass update of all catalogs in this project?Do you want to delete the project?Do you want to remove all translations that are no longer used?Don’t SaveDon’t Show AgainDon’t mark exact matches as needing workDon’t saveDon’t show againDownDownload a file from Crowdin project, translate and sync your changes back.Downloading latest translations…Downloading translations is disabled in this project.E&xitE&xport as HTML…EditEdit &CommentEdit &commentEdit CommentEdit a TranslationEdit a translationEdit commentEdit projectEdit the projectEditingEdit…Email:EnterEnter Full ScreenEntries in the catalog are probably incorrect.Entries in this catalog have different plural forms count from what catalog’s Plural-Forms header saysEntries with Errors FirstEntries with errors firstEntries with errors were marked in red in the list. Details of the error will be shown when you select such an entry.Error loading message catalog file “%s”.Error opening fileError opening file %s!Error saving catalogErrorsEverythingExcluded pathsExport as…Extract from sourcesExtract notes for translators from:Extract text from source files in the following directories:Extracting translatable strings…Extractor setupExtractorsFailed command: %sFailed to communicate with Poedit process.Failed to load extracted catalog.Failed to merge gettext catalogs.Failed to update translation memory: %sFileFile “%s” doesn’t exist.File “%s” is not a message catalog.File “%s” is read-only and cannot be saved. Please save it under different name.File:Finalizing…FindFind NextFind PreviousFind and Replace…Find in commentsFind in source textsFind in translationsFind nextFind previousFix LanguageFix languageFix the HeaderFix the headerForm %iFrequentGNU gettextGeneralGo to Bookmark %iGo to bookmark %iHTML FilesHelpHide %sHide OthersHide SidebarHide Status BarHide this notification messageIDIf you continue with purging, all translations marked as deleted will be permanently removed. You will have to translate them again if they are added back in the future.Ignore caseImporting translations…Include beta versionsInformation about the translatorInstallInvalid fileInvocation:KeepLanguage Code or Name (e.g. en_GB)Language of the translation is the same as source language.Language of the translation isn’t set.Language of the translation:Language selectionLanguage team:Language:Last modifiedLearn About Gettext KeywordsLearn From Files…Learn MoreLearn More About CrowdinLearn about gettext keywordsLearn about plural formsLearn from files…Learn moreLearn more about CrowdinLeftLine %d of file “%s” is corrupted (not valid %s data).Line endings:List of extensions separated by semicolons (e.g. *.cpp;*.h):MO files can’t be directly edited in Poedit.Make Lower CaseMake Upper CaseMalformed header: “%s”Merging differences…MinimizeName of the project the translation is forName:Ne&xt UnfinishedNe&xt unfinishedNeeds WorkNeeds workNever let the list of strings take focus. If enabled, you must use Ctrl-arrows for keyboard navigation but you can also type text immediately, without having to press Tab to change focus.NewNew From &POT/PO File…New from &POT/PO file…New stringsNext Plural FormNext plural formNoNo Matches FoundNo entries could be pre-translated.No matches foundNo problems with the translation found.No references for the selected item.No translation projects listed in your Crowdin account.Not all plural forms are translated.Not authorized, please sign in again.Notes for translators:OKObsolete stringsOneOnly enable if you trust the quality of your TM. By default, all matches from the TM are marked as needing work and should be reviewed before use.Only fill in exact matchesOpenOpen Crowdin translationOpen From Crowdin…Open RecentOpen an existing PO file and edit the translation.Open catalogOpen catalog templateOpen from Crowdin…Open in EditorOpen in editorOpen...Open…OptionsOtherP&revious UnfinishedP&revious unfinishedPO TranslationPO Translation FilesPOT Translation TemplatesPOT files are only templates and don’t contain any translations themselves. To make a translation, create a new PO file based on the template.PastePaste and Match StylePathsPlease open and edit the corresponding PO file instead. When you save it, the MO file will be updated as well.Please save the file first. This section cannot be edited until then.PluralPlural forms expression used by the catalog is unusual for %s.Plural forms:Plural:PoeditPoedit - Catalogs managerPoedit automatically fixed invalid content in the file “%s”.Poedit can attempt to fill in new entries from only previous translations in the file or from your entire translation memory. Using the TM won’t be very effective if it’s near-empty, but it will get better as you add more translations to it.Poedit is an easy to use translations editor.Pre-&translate…Pre-translatePre-translatedPre-translated %u stringPre-translated %u stringsPre-translating…Pre-translation automatically finds exact or fuzzy matches for untranslated strings in the translation memory and fills in their translations.PreferencesPreferences...Preferences…Preserve formatting of existing filesPrevious Plural FormPrevious plural formPrevious source text:Project name and version:Project name:Project:PurgePurge deleted translationsQuitQuit %sRecentRedoReferences:RefreshRemaining: %dReplaceReplace &AllReplace &allReplacement stringReplace…Required header Plural-Forms is missing.ResetReset translation memoryResetting the translation memory will irrevocably delete all stored translations from it. You can’t undo this operation.ReviewRightSaveSave &As…Save &as…Save asSave as…Save catalogSave changesSelect &AllSelect AllSelect directorySelect translation files to importSelect your preferred languageServicesSet Bookmark %iSet LanguageSet bookmark %iSet languageShift+Show AllShow SidebarShow Spelling and GrammarShow Status BarShow SubstitutionsShow or hide the sidebarShow sidebarShow status barShow summary after catalog updateSidebarSign InSign OutSign inSign in to CrowdinSign outSigned in as:SingularSingular:Smart Copy/PasteSmart DashesSmart LinksSmart QuotesSort by &File OrderSort by &SourceSort by &TranslationSort by &file orderSort by &sourceSort by &translationSource code charset:Source code extractors are used to find translatable strings in the source code files and extract them so that they can be translated.Source code not available.Source fileSource file occurrence:Source textSource text — %sSource text:Sources KeywordsSources PathsSources keywordsSources pathsSpeechSpellchecking is disabled, because the dictionary for %s isn’t installed.Spelling and GrammarStart SpeakingStop SpeakingStored translations:String to findSubstitutionsSuggestionsSuggestions are not available if the translation language is not set correctly. Other features, such as plural forms, may be affected as well.Supports all programming languages recognized by GNU gettext tools (PHP, C/C++, C#, Perl, Python, Java, JavaScript and others).SyncSync with CrowdinSynchronize the translation with CrowdinSyncingSyncing errorSyncing with %s failed.Syncing with %s…Syncing with Crowdin failed.Syntax error in Plural-Forms header ("%s").TMTake an existing PO file or POT template and create a new translation from it.Take translatable strings from an existing POT template.Team name and email address or URLText ReplacementThe TM doesn’t contain any strings similar to the content of this file. It is only effective for semi-automatic translations after Poedit learns enough from files that you translated manually.The catalog couldn’t be saved in “%s” charset as specified in catalog settings. It was saved in UTF-8 instead and the setting was modified accordingly.The file cannot be compiled into the MO format and used.The file cannot be opened.The file contained duplicate items, which is not allowed in PO files and would prevent the file from being used. Poedit fixed the issue, but you should review translations of any items marked as needing work and correct them if necessary.The file may be either corrupted or in a format not recognized by Poedit.The file was compiled into the MO format, but it will probably not work correctly.The file was saved safely and compiled into the MO format, but it will probably not work correctly.The file was saved safely, but it cannot be compiled into the MO format and used.The file was saved safely.The old source text (before it changed during an update) that the now-inaccurate translation corresponds to.The simplest way to fill this catalog is to update it from a POT:The translation doesn’t start with a space.The translation ends with a newline, but the source text doesn’t.The translation ends with a space, but the source text doesn’t.The translation ends with “%s”, but the source text ends with “%s”.The translation is missing a newline at the end.The translation is missing a space at the end.The translation is ready for use, but %d entry is not translated yet.The translation is ready for use, but %d entries are not translated yet.The translation is ready for use.The translation should end with “%s”.The translation should not end with “%s”.The translation should start as a sentence.The translation should start with a lowercase character.The translation starts with a space, but the source text doesn’t.The translations were marked as needing work, because they may be inaccurate. You should review them for correctness.There are no translations. That’s unusual.There was a problem formatting the file nicely (but it was saved all right).There were errors when loading the catalog. Some data may be missing or corrupted as the result.These settings affect internal formatting of PO files. Adjust them if you have specific requirements e.g. because of version control.These strings are no longer in the sources. Poedit will remove them from the catalog now.These strings were found in the sources but were not in the catalog. Poedit will add them to the catalog now.This catalog has entries with plural forms, but doesn’t have Plural-Forms header configured.This file can only be edited in Crowdin’s web interface.This is the command used to launch the extractor. %o expands to the name of output file, %K to list of keywords, %F to list of input files, %C to charset flag (see below).This project has no files that can be translated in Poedit.This string was found in Poedit’s translation memory.This will be attached to the command line only if source code charset was given. %c expands to charset value.This will be attached to the command line once for each input file. %f expands to the filename.This will be attached to the command line once for each keyword. %k expands to the keyword.TotalTransformationsTranslatable entries aren’t added manually in the Gettext system, but are automatically extracted from source code. This way, they stay up to date and accurate. Translators typically use PO template files (POTs) prepared for them by the developer.Translated: %d of %d (%d %%)Translation LanguageTranslation MemoryTranslation Needs &WorkTranslation PropertiesTranslation needs &workTranslation propertiesTranslation suggestions:Translation — %sTranslation:Translations couldn’t be updated from the source code, because no code was found in the location specified in the catalog’s Properties.TwoUTF-8 (recommended)UndoUnhandled exception occurred: %sUnix (recommended)UntransUpUpdateUpdate allUpdate all catalogs in the projectUpdate catalog - synchronize it with sourcesUpdate from &POT File…Update from &POT file…Update from POTUpdate summaryUpdatesUpdating catalogUpdating failedUpdating the catalog failed. Click on 'Details >>' for details.Updating user information…Uploading translations…Use custom expressionUse custom list font:Use custom text fields font:Use default rules for this languageUse these keywords (function names) to recognize translatable strings in source files:Use translation memoryValidateValidation resultsVersion %sWaiting for authentication…Welcome to PoeditWhat is Crowdin?When updating from sourcesWhole words onlyWindowWindowsWrap aroundWrap at:YesYou can also extract translatable strings directly from the source code:You can’t drop more than one file on Poedit window.You must restart Poedit for this change to take effect.Your NameYour changes will be lost if you don’t save them.Your name and email address are only used to set the Last-Translator header of GNU gettext files.ZeroZoomaltctrldon’t delete temporary files (for debugging)e.g. nplurals=2; plural=(n > 1);fuzzy match within the filego to item at given line numberhandle a poedit:// URIpre-translate from TMshiftunknown languageyour_email@example.com“%s” is not a valid POT file.Project-Id-Version: poedit Report-Msgid-Bugs-To: help@poedit.net POT-Creation-Date: 2017-12-05 15:52+0100 PO-Revision-Date: 2017-12-05 09:50-0500 Last-Translator: vslavik Language-Team: Portuguese, Brazilian Language: pt_BR MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=(n != 1); X-Generator: crowdin.com X-Crowdin-Project: poedit X-Crowdin-Language: pt-BR X-Crowdin-File: /locales/poedit.pot (modificado) (não salvo)%d entrada%d entradas%d entrada foi pré-traduzida.%d entradas foram pré-traduzidas.%d erro%d erros%d problema encontrado na tradução.%d problemas encontrados na tradução.%i linha do arquivo "%s" não foi carregada corretamente.%i linhas do arquivo "%s" não foram carregadas corretamente.Formato %sPreferências do %sFormato %s&Sobre&Sobre o Poedit&Aplicar&Voltar&Marcadores&Cancelar&Limpar&Fechar&CopiarApa&gar&Feito e Próximo&Feito e próximo&Editar&ArquivoLocali&zar…&Manual gettext do GNU&Manual gettext do GNU&Ir&Agrupar Pelo Contexto&Agrupar pelo contexto&Ajuda&Novo&Novo…&Próximo >&Tradução Seguinte&Tradução seguinte&Não&OK&Ajuda Online&Ajuda online&Abrir...A&brir…&Colar&Preferências&Preferências…&Tradução Anterior&Tradução anterior&Propriedades…&Remover Traduções Excluídas&Remover traduções excluídas&Encerrar&RefazerSubstitui&r&Salvar&Salvar como&Mostrar Referências&Mostrar referências&Desfazer&Entradas Não Traduzidas Primeiro&Entradas não traduzidas primeiro&Atualizar do Código Fonte&Atualizar do código fonte&Validar Traduções&Validar traduções&Visualizar&Sim(0 novas, 0 obsoletas)(Aprenda mais sobre o GNU gettext)(Novas: %i, obsoletas: %i)(Usar idioma padrão)(requer Windows 8 ou mais novo)< &AnteriorArraste e Solte as Pastas Aqui ou use o botão +Arraste e solte as pastas aqui ou use o botão +Sobre o %sContasAdicionar ComentárioAdicionar Arquivos…Adicionar Pastas…Adicionar Caractere Especial…Adicionar comentárioAdicionar diretório à listaAdicionar arquivos…Adicionar Pastas…Adicionar caractere especial…Palavras-chave adicionaisSinalizadores xgettext adicionais:AvançadoConfigurações Avançadas de Extração…Configurações avançadas de extraçãoConfigurações avançadas de extração…Todos os Arquivos de TraduçãoTodos os comentáriosUsar também palavras-chave padrão para idiomas suportadosAlt+Sempre mudar o foco para o campo de entrada de textoUm item da lista de arquivos de entrada:Um item da lista de palavras-chave:AparênciaAplicarVocê tem certeza que deseja apagar o extrator "%s"?Você tem certeza que você quer resetar a memória das traduções?Procurar atualizações automaticamenteCompilar automaticamente o arquivo MO ao salvarVoltarCaminho base:As versões beta contém novas funções e melhorias mais recentes, mas podem ser um pouco menos estáveis.Trazer Tudo pra FrenteArquivo do catálogo quebrado: a forma plural do msgst foi usada sem o msgid_pluralArquivo do catálogo quebrado: a forma singular do msgst foi usada junta com o msgid_pluralExplorarPor padrão, os resultados imprecisos são preenchidos também e marcados como incertos. Marque esta opção para incluir apenas correspondências exatas.C&atálogo&LimparCancelarNão foi possível criar o diretório temporário.Não pode executar o programa: %sLetras Iniciais em MaiúsculasCatálogoCatálogo modificado. Você deseja salvar as alterações?Propriedades do catálogoGerenciador de &CatálogosGerenciador de &catálogosGerenciador de CatálogosSelecionar idioma da interfaceTabela de caracteres:Verificar Documento AgoraVerificar Gramática com OrtografiaVerificar a Ortografia Enquanto DigitarVerificar Atualizações…Procurar erros na traduçãoVerificar atualizações…Verificar ortografiaLimparLimpar TraduçãoLimpar o comentárioLimpar traduçãoFecharColabore na Tradução com Outros UsuáriosColaborar na tradução com outros usuáriosColetando arquivos de origem…Comando para extrair as traduções:Comentário:Comentários com o prefixo:Compilar para MO…Compilar para…Arquivos de Tradução CompiladosConfigurar extração do código fonte em Propriedades.ConfirmaçãoCopiarCopiar do singularCopiar do Texto FonteCopiar do singularCopiar do texto fonteCorrigir Ortografia AutomaticamenteErro ao carregar o arquivo %s, provavelmente ele está corrompido.Não foi possível salvar arquivo %s.Criar Nova TraduçãoCriar nova traduçãoCriar novo projeto de traduçãoErro do CrowdinO Crowdin é uma plataforma de gerenciamento de localizações online e ferramenta de tradução colaborativa. O Poedit pode sincronizar uniformemente arquivos PO gerenciados no Crowdin.Ctrl+Recor&tarExtratores Personalizados:Extratores personalizados:CortarTamanho do banco de dados no disco:ApagarApagar extratorApagar o projetoDiretórios:Exibir &IDs de EntradaExibir &IDs de entradaVocê deseja realmente realizar uma atualização em massa de todos os catálogos desse projeto?Você deseja realmente excluir o projeto?Você deseja remover todas as traduções que não são mais usadas?Não salvarNão Mostrar NovamenteNão marcar ocorrências exatas como imprecisasNão salvarNão mostrar novamentePara BaixoBaixe um arquivo de um projeto do Crowdin, traduza e sincronize as alterações de volta.Baixando as traduções mais recentes…O download de traduções está desativado neste projeto.Sa&irE&xportar como HTML…EditarEditar &ComentárioEditar &comentárioEditar ComentárioEditar uma traduçãoEditar uma traduçãoEditar comentárioEditar projetoEditar o projetoEditandoEditar…E-mail:EnterEntrar em Tela CheiaAs entradas no catálogo provavelmente estão incorretas.As entradas neste catálogo tem contagens de formas de plural diferentes das formas de plural que o cabeçalho do catálogo dizEntradas com Erros PrimeiroEntradas com erros primeiroAs entradas com erros foram marcadas em vermelho na lista. Detalhes do erro serão exibidos quando você selecionar uma entrada.Erro ao carregar o arquivo do catálogo de mensagens "%s".Erro ao abrir o arquivoErro ao abrir o arquivo %s!Erro ao salvar o catálogoErrosTudoCaminhos excluídosExportar como…Extrair das fontesExtrair notas para tradutores de:Extrair texto dos arquivos fonte nos seguintes diretórios:Extraindo sequências de caracteres traduzíveis…Configurador do extratorExtratoresO comando falhou: %sFalha de comunicação com o processo do Poedit.Falha ao carregar o catálogo extraído.Falha ao mesclar catálogos do gettext.Falha ao atualizar a memória de traduções: %sArquivoO arquivo "%s" não existe.O arquivo "%s" não é um catálogo de mensagens.O arquivo "%s" é somente leitura e não pode ser salvo. Salve-o com outro nome.Arquivo:Finalizando…AcharAchar o PróximoAchar o AnteriorLocalizar e Substituir…Achar nos comentáriosLocalizar nos textos fonteAchar nas traduçõesAchar o próximoAchar o anteriorConsertar o IdiomaConsertar o idiomaConsertar o cabeçalhoConsertar o cabeçalhoForma %iFrequentesGetText do GNUGeralIr para o favorito %iIr para o favorito %iArquivos HTMLAjudaOcultar %sOcultar OutrosEsconder a Barra LateralEsconder a Barra de StatusEsconder esta mensagem de notificaçãoIDSe você continuar com a remoção, todas as traduções marcadas como apagadas serão removidas permanentemente. Você terá que traduzi-las novamente se elas forem readicionadas no futuro.Ignorar maiúsculas e minúsculasImportando traduções…Incluir versões betaInformações sobre o tradutorInstalarArquivo inválidoInvocação:ManterCódigo ou Nome do Idioma (ex.: pt_BR)O idioma da tradução é o mesmo do idioma de origem.O idioma da tradução não está definido.Idioma da tradução:Seleção de idiomaEquipe de idioma:Idioma:Última modificaçãoSaiba mais sobre palavras-chave GettextAprender dos Arquivos…Aprenda MaisSaiba mais sobre o CrowdinSaiba mais sobre palavras-chave gettextSaiba mais sobre formas de pluralAprender dos Arquivos…Saiba maisSaiba mais sobre o CrowdinEsquerdaA linha %d do arquivo "%s" está corrompida (dados %s inválidos).Finais de linha:Lista de extensões separadas por ponto e vírgula (ex.: *.cpp;*.h):Arquivos MO não podem ser editados diretamente no Poedit.Converter em minúsculasTornar MaiúsculaCabeçalho malformado: "%s"Mesclando diferenças…MinimizarNome do projeto para o qual é a traduçãoNome:Incompleto Se&guinteIncompleto se&guintePrecisa de trabalhoImprecisaNunca deixe a lista de strings tirar o foco. Se ativado, você deve usar Ctrl-setas de navegação do teclado, mas você também pode digitar o texto imediatamente, sem ter que pressionar Tab para mudar o foco.NovoNovo do Arquivo &POT/PO…Novo do arquivo &POT/PO…Novas stringsForma Plural SeguinteForma plural seguinteNãoNão Foram Achadas CombinaçõesNenhuma entrada pôde ser pré-traduzida.Não foram achadas combinaçõesNão foram encontrados problemas na tradução.Não existem referências para o item selecionado.Não existem projetos de tradução associados à sua conta Crowdin.Nem todas as formas do plural estão traduzidas.Não autorizado. Inicie a sessão novamente.Notas para os tradutores:OKStrings obsoletasUmApenas ative se você confia na qualidade da sua MT. Por padrão, todas as correspondências da MT são marcadas como imprecisas e devem ser revisadas.Só preencher com as combinações exatasAbrirAbrir tradução do CrowdinAbrir do Crowdin…Abrir RecentesAbrir um arquivo PO existente e editar a tradução.Abrir catálogoAbrir modelo de catálogoAbrir do Crowdin…Abrir no EditorAbrir no editorAbrir...Abrir…OpçõesOutroIncompleto Ante&riorIncompleto ante&riorTradução POArquivos de Tradução POModelos de Tradução POTArquivos POT são apenas modelos e não contêm quaisquer traduções. Para fazer uma tradução, crie um novo arquivo PO com base no modelo.ColarColar e Combinar EstiloCaminhosPor favor abra e edite o arquivo PO correspondente ao invés disto. Quando você salvá-lo, o arquivo MO será atualizado também.Salve o arquivo primeiro. Esta seção não pode ser editada até então.PluralA expressão usada de formas de plural pelo catálogo é incomum para %s.Formas de Plural:Plural:PoeditPoedit - Gerenciador de catálogosO Poedit consertou automaticamente o conteúdo inválido no arquivo "%s".O Poedit pode tentar preencher novas entradas somente a partir de traduções anteriores do arquivo ou de toda memória de tradução. O uso da MT não será muito eficaz se ela estiver quase vazia, mas ficará melhor conforme você for adicionando traduções à ela.O Poedit é um editor de traduções fácil de usar.Pré-&traduzir…Pré-traduzirPré-traduzida%u string pré-traduzida%u sequência de caracteres pré-traduzidasPré-traduzindo…A pré-tradução automática encontra correspondências exatas ou imprecisas para sequências não traduzidas na memória de tradução e preenche as traduções.PreferênciasPreferências...Preferências…Preservar a formatação de arquivos existentesForma Plural AnteriorForma plural anteriorTexto fonte anterior:Nome e versão do projeto:Nome do projeto:Projeto:RemoverRemover traduções excluídasSairEncerrar o %sRecentesRefazerReferências:AtualizarRestante: %dSubstituirSubstituir &TudoSubstituir &tudoString de substituiçãoSubstituir…O cabeçalho exigido Formas-Plural está ausente.ResetarResetar a memória de traduçãoResetar a memória de tradução irrevogavelmente apagará todas as traduções armazenadas nela. Você não pode desfazer esta operação.RevisarDireitaSalvarSalvar &Como…Salvar &como…Salvar comoSalvar como…Salvar catálogoSalvar mudançasSelecionar &TudoSelecionar TudoSelecionar diretórioSelecione os arquivos de tradução para importarSelecione seu idioma preferidoServiçosDefinir Favorito %iDefinir IdiomaDefinir favorito %iDefinir idiomaShift+Mostrar TudoMostrar Barra LateralMostrar Ortografia e GramáticaMostrar Barra de StatusMostrar SubstituiçõesMostrar ou ocultar a barra lateralMostrar barra lateralMostrar barra de statusMostrar sumário após a atualização do catálogoBarra lateralLogarSairIngressarIngressar ao CrowdinSairLogado como:SingularSingular:Copiar/Colar InteligenteHífens InteligentesLinks InteligentesAspas InteligentesClassificar por Ordem de Ar&quivosClassificar por &FonteClassificar por &TraduçãoClassificar por ordem de ar&quivosClassificar por &fonteClassificar por &traduçãoConjunto de caracteres do código fonte:Extratores de código fonte são usados para encontrar strings de tradução nos arquivos fonte e extraí-los para que eles possam ser traduzidos.Código-fonte não disponível.Arquivo fonteOcorrência do arquivo fonte:Texto fonteTexto fonte — %sTexto fonte:Palavras-chave de origemCaminhos de origemPalavras-chave das fontesCaminhos das fontesFalaA verificação ortográfica está desativada, porque o dicionário para %s não está instalado.Ortografia e GramáticaComeçar a FalarParar de FalarTraduções armazenadas:String para localizarSubstituiçõesSugestõesAs sugestões não estarão disponíveis se o idioma da tradução não estiver definido corretamente. Outros recursos, como formas de plural, também podem ser afetados.Suporta todas as linguagens de programação reconhecidas pelas ferramentas do gettext GNU (PHP, C/C++, c#, Perl, Python, Java, JavaScript e outros).SincronizarSincronizar com o CrowdinSincronizar tradução com CrowdinSincronizaçãoErro de sincronizaçãoA sincronização com %s falhou.Sincronizando com %s…A sincronização com o Crowdin falhou.Erro de sintaxe no cabeçalho Formas-Plural ("%s").MTImporte um arquivo PO existente ou modelo POT e crie uma nova tradução dele.Importe strings traduzíveis de um modelo POT existente.Nome da equipe e-mail ou URLSubstituição de TextoA MT não contém nenhuma sentença similar ao conteúdo deste arquivo. Ela é efetiva apenas para traduções semi-automáticas após o Poedit aprender o bastante dos arquivos traduzidos manualmente.O catálogo não pôde ser salvo na tabela de caracteres "%s" como especificado nas configurações do catálogo. Ele foi salvo em UTF-8 e a configuração foi devidamente alterada.O arquivo não pode ser compilado para o formato MO e usado.O arquivo não pode ser aberto.O arquivo continha itens duplicados, o que não é permitido em arquivos PO e impediria a utilização do arquivo. O Poedit corrigiu o problema, mas você deve revisar as traduções de todos os itens marcados como incertos e corrigi-los se necessário.O arquivo pode estar corrompido ou em um formato não reconhecido pelo Poedit.O arquivo foi compilado no formato MO, mas ele provavelmente não funcionará corretamente.O arquivo foi salvo com segurança e compilado no formato MO, mas provavelmente não funcionará corretamente.O arquivo foi salvo com segurança, mas não pode ser compilado no formato MO e usado.O arquivo foi salvo com segurança.Texto de origem antigo (antes da alteração durante uma atualização) a qual a tradução aproximada se refere.A maneira mais fácil de preencher este catálogo é atualizá-lo de um arquivo POT:A tradução não começa com um espaço.A tradução termina com uma nova linha, mas o texto de origem não.A tradução termina com um espaço, mas o texto de origem não.A tradução termina com "%s", mas o texto de origem termina com "%s".Está faltando uma nova linha no final da tradução.Está faltando um espaço no final da tradução.A tradução está pronta para ser usada, mas %d entrada ainda não foi traduzida.A tradução está pronta para ser usada, mas %d entradas ainda não foram traduzidas.A tradução pronta para ser usada.A tradução deve terminar com "%s".A tradução não deve terminar com "%s".A tradução deve começar como uma sentença.A tradução deve começar com um caractere minúsculo.A tradução começa com um espaço, mas o texto de origem não.As traduções foram marcadas como imprecisas, porque elas podem estar incorretas. Você deve revisá-las para correção.Não há traduções. Isso é incomum.Houve um problema ao formatar o arquivo (mas ele foi salvo corretamente).Houve erros quando carregava o catálogo. Alguns dados podem estar ausentes ou corrompidos como resultado.Estas configurações afetam a formatação interna dos arquivos PO. Ajuste-os se você tem requerimentos específicos, ex: por causa do controle de versões.Estas strings não estão mais nas fontes. O Poedit vai removê-las do catálogo agora.Estas strings foram encontradas nas fontes mas não estavam no catálogo. O Poedit vai adicioná-las agora para o catálogo.Este catálogo tem entradas com formas no plural, mas não tem o cabeçalho de formas de plural configurado.Este arquivo só pode ser editado na interface web do Crowdin.Este é o comando usado pra executar o extrator. %o expande o nome do arquivo de saída, %K para a lista de palavras-chave, %F para a lista de arquivos de entrada, %C para a bandeira do conjunto de caracteres (veja abaixo).Este projeto não tem arquivos que possam ser traduzidos no Poedit.Esta string foi achada na memória de traduções do Poedit.Isto será anexado à linha de comando apenas se o conjunto de caracteres do código fonte foi informado. %c expande para o valor do conjunto de caracteres.Isto será anexado para linha de comando uma vez para cada arquivo de entrada. %f expande para o nome do arquivo.Isto será anexado para linha de comando uma vez para cada palavra-chave. %k expande para a palavra-chave.TotalTransformaçõesEntradas traduzíveis não são adicionadas manualmente no sistema Gettext, mas são automaticamente extraídas do código fonte. Desta maneira, elas ficam atualizadas e precisas. Os tradutores geralmente usam arquivos de modelo PO (POT) fornecidos pelo desenvolvedor.Traduzidos: %d de %d (%d %%)Idioma da TraduçãoMemória das TraduçõesTradução &imprecisaPropriedades da traduçãoTradução &imprecisaPropriedades da traduçãoSugestões de tradução: Tradução — %sTradução:As traduções não puderam ser atualizadas do código-fonte, porque nenhum código foi achado no local especificado nas Propriedades do catálogo.DoisUTF-8 (recomendado)DesfazerOcorreu uma exceção não manipulada: %sUnix (recomendado)Sem TraduçãoPara CimaAtualizarAtualizar tudoAtualizar todos os catálogos no projetoAtualizar catálogo - sincronizá-lo com as fontesAtualizar do Arquivo &POT…Atualizar do arquivo &POT…Atualizar do POTAtualizar sumárioAtualizaçõesAtualizando catálogoA atualização falhouA atualização do catálogo falhou. Clique em 'Detalhes >>' para mais informações.Atualizando informações do usuário…Fazendo upload das traduções…Usar expressão personalizadaUsar fonte personalizada da lista:Usar fonte dos campos de texto personalizada:Usar regras padrão para este idiomaUse estas palavras-chave (nomes de funções) para reconhecer strings traduzíveis nos arquivos fonte:Usar a memória das traduçõesValidarResultados da validaçãoVersão %sAguardando autenticação…Bem-vindo ao PoeditO que é Crowdin?Ao atualizar dos originaisSomente palavras inteirasJanelaWindowsPesquisa circularQuebra em:SimVocê também pode extrair strings traduzíveis diretamente do código fonte:Você não pode soltar mais do que um arquivo na janela do Poedit.Você deve reiniciar o Poedit para validar as alterações.Seu NomeSuas alterações serão perdidas se você não salvá-las.Seu nome e endereço de e-mail só são usados pra definir o cabeçalho do Último-Tradutor dos arquivos gettext do GNU.ZeroZoomaltctrlnão apagar arquivos temporários (para depuração)ex.: nplurals=2; plural=(n > 1);difundir correspondência dentro do arquivová para o item no número de linha fornecidoManipular com uma URI do poedit://pré-traduzir da MTshiftidioma desconhecidoseu_email@exemplo.com"%s" não é um arquivo POT válido.poedit-2.0.6/locales/es.po0000664000372000037200000015363313230132076012325 00000000000000msgid "" msgstr "" "Project-Id-Version: poedit\n" "Report-Msgid-Bugs-To: help@poedit.net\n" "POT-Creation-Date: 2017-12-05 15:52+0100\n" "PO-Revision-Date: 2018-01-18 07:55-0500\n" "Last-Translator: vslavik \n" "Language-Team: Spanish\n" "Language: es_ES\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: crowdin.com\n" "X-Crowdin-Project: poedit\n" "X-Crowdin-Language: es-ES\n" "X-Crowdin-File: /locales/poedit.pot\n" msgid "Hide this notification message" msgstr "Ocultar esta notificación" msgid "Don’t Show Again" msgstr "No mostrar de nuevo" msgid "Don’t show again" msgstr "No mostrar de nuevo" #, c-format msgid "(New: %i, obsolete: %i)" msgstr "(Nuevas: %i, obsoletas: %i)" msgid "Updating catalog" msgstr "Actualizando el catálogo" msgid "Collecting source files…" msgstr "Recopilando archivos de código fuente…" msgid "Extracting translatable strings…" msgstr "Extrayendo cadenas traducibles…" msgid "Failed to load extracted catalog." msgstr "Falló la carga del catálogo extraído." msgid "Merging differences…" msgstr "Combinando diferencias…" #, c-format msgid "“%s” is not a valid POT file." msgstr "«%s» no es un archivo POT válido." #, c-format msgid "%i line of file “%s” was not loaded correctly." msgid_plural "%i lines of file “%s” were not loaded correctly." msgstr[0] "No se cargó %i línea del archivo “%s” correctamente." msgstr[1] "No se cargaron %i renglones del archivo «%s» correctamente." #, c-format msgid "Line %d of file “%s” is corrupted (not valid %s data)." msgstr "El renglón %d del archivo «%s» está dañado (datos %s no válidos)." #, c-format msgid "Malformed header: “%s”" msgstr "Cabecera con formato incorrecto: «%s»" msgid "" "Broken catalog file: singular form msgstr used together with msgid_plural" msgstr "" "Archivo de catálogo dañado: forma singular msgstr usada junto con " "msgid_plural" msgid "Broken catalog file: plural form msgstr used without msgid_plural" msgstr "Archivo de catálogo dañado: forma plural msgstr usada sin msgid_plural" msgid "" "There were errors when loading the catalog. Some data may be missing or " "corrupted as the result." msgstr "" "Se produjeron errores al leer el catálogo. Es posible que algunos datos se " "hayan perdido o dañado." #, c-format msgid "Couldn’t load file %s, it is probably corrupted." msgstr "No se pudo cargar el archivo «%s»; probablemente esté dañado." #, c-format msgid "" "File “%s” is read-only and cannot be saved.\n" "Please save it under different name." msgstr "" "El archivo «%s» es de solo lectura y no se puede guardar.\n" "Guárdelo con un nombre distinto." #, c-format msgid "Couldn’t save file %s." msgstr "No se pudo guardar el archivo «%s»." msgid "" "There was a problem formatting the file nicely (but it was saved all right)." msgstr "" "Ocurrió un problema al dar formato al archivo (pero se guardó correctamente)." #, c-format msgid "" "The catalog couldn’t be saved in “%s” charset as specified in catalog " "settings.\n" "\n" "It was saved in UTF-8 instead and the setting was modified accordingly." msgstr "" "No se pudo guardar el catálogo en el conjunto de caracteres «%s» como se " "especificó en sus preferencias.\n" "\n" "Como consecuencia, se ha guardado en UTF-8 y se ha modificado la preferencia." msgid "Error saving catalog" msgstr "Error al guardar el catálogo" msgid "PO Translation Files" msgstr "Archivos de traducción PO" msgid "POT Translation Templates" msgstr "Plantillas de traducción POT" msgid "All Translation Files" msgstr "Todos los archivos de traducción" msgid "(Use default language)" msgstr "(Usar idioma predeterminado)" msgid "Select your preferred language" msgstr "Seleccione el idioma que prefiera" msgid "Language selection" msgstr "Selección de idioma" msgid "You must restart Poedit for this change to take effect." msgstr "Debe reiniciar Poedit para que los cambios surtan efecto." msgid "Syncing" msgstr "Sincronización" #. TRANSLATORS: %s is a cloud destination, e.g. "Crowdin" or ftp.wordpress.com etc. #, c-format msgid "Syncing with %s…" msgstr "Sincronizando con %s…" #. TRANSLATORS: %s is a cloud destination, e.g. "Crowdin" or ftp.wordpress.com etc. #, c-format msgid "Syncing with %s failed." msgstr "Falló la sincronización con %s." msgid "Syncing error" msgstr "Error de sincronización" msgid "Downloading translations is disabled in this project." msgstr "La descarga de traducciones está desactivada en este proyecto." msgid "Not authorized, please sign in again." msgstr "Acción no autorizada. Acceda a la cuenta de nuevo." msgid "" "Crowdin is an online localization management platform and collaborative " "translation tool. Poedit can seamlessly sync PO files managed at Crowdin." msgstr "" "Crowdin es una plataforma de gestión de regionalización y traducción " "colaborativa en línea. Poedit puede sincronizar archivos PO gestionados con " "Crowdin." msgid "Sign In" msgstr "Acceder" msgid "Sign in" msgstr "Acceder" msgid "Sign Out" msgstr "Salir" msgid "Sign out" msgstr "Salir" msgid "Waiting for authentication…" msgstr "Esperando la autenticación…" msgid "Updating user information…" msgstr "Actualizando la información del usuario…" msgid "Signed in as:" msgstr "Se identificó como:" msgid "Learn More About Crowdin" msgstr "Más información sobre Crowdin" msgid "Learn more about Crowdin" msgstr "Más información sobre Crowdin" msgid "Sign in to Crowdin" msgstr "Acceder a Crowdin" msgid "Open Crowdin translation" msgstr "Abrir traducción de Crowdin" msgid "Project:" msgstr "Proyecto:" msgid "Language:" msgstr "Idioma:" msgid "File:" msgstr "Archivo:" msgid "No translation projects listed in your Crowdin account." msgstr "No hay proyectos de traducción en su cuenta de Crowdin." msgid "This project has no files that can be translated in Poedit." msgstr "Este proyecto no contiene archivos traducibles en Poedit." msgid "This file can only be edited in Crowdin’s web interface." msgstr "Este archivo solo puede editarse en la interfaz web de Crowdin." msgid "Downloading latest translations…" msgstr "Descargando las traducciones más recientes…" msgid "Syncing with Crowdin failed." msgstr "Falló la sincronización con Crowdin." msgid "Crowdin error" msgstr "Error de Crowdin" msgid "Uploading translations…" msgstr "Cargando las traducciones…" msgid "&Copy" msgstr "&Copiar" msgid "Learn more" msgstr "Más información" msgid "Learn More" msgstr "Más información" msgid "&Help" msgstr "Ay&uda" msgid "MO files can’t be directly edited in Poedit." msgstr "No se pueden editar los archivos MO directamente en Poedit." msgid "Error opening file" msgstr "Error al abrir el archivo" msgid "" "Please open and edit the corresponding PO file instead. When you save it, " "the MO file will be updated as well." msgstr "" "En su lugar, abra y edite el archivo PO correspondiente. Cuando lo guarde, " "el archivo MO se actualizará también." msgid "don’t delete temporary files (for debugging)" msgstr "no eliminar archivos temporales (para depuración)" msgid "handle a poedit:// URI" msgstr "manejar un URI poedit://" msgid "go to item at given line number" msgstr "ir al elemento en el número de renglón dado" msgid "Failed to communicate with Poedit process." msgstr "No se pudo comunicar con el proceso de Poedit." #, c-format msgid "Unhandled exception occurred: %s" msgstr "Se produjo una excepción no controlada: %s" msgid "Open catalog" msgstr "Abrir catálogo" #, c-format msgid "File “%s” doesn’t exist." msgstr "No existe el archivo «%s»." msgid "Poedit is an easy to use translations editor." msgstr "Poedit es un editor de traducciones fácil de usar." msgid "Catalogs Manager" msgstr "Gestor de catálogos" msgid "Check for Updates…" msgstr "Buscar actualizaciones…" msgid "&Edit" msgstr "&Editar" msgid "Undo" msgstr "Deshacer" msgid "Redo" msgstr "Rehacer" msgid "Paste and Match Style" msgstr "Pegar con el mismo estilo" msgid "Delete" msgstr "Eliminar" msgid "Spelling and Grammar" msgstr "Ortografía y gramática" msgid "Show Spelling and Grammar" msgstr "Mostrar ortografía y gramática" msgid "Check Document Now" msgstr "Revisar el documento ahora" msgid "Check Spelling While Typing" msgstr "Revisar ortografía al escribir" msgid "Check Grammar With Spelling" msgstr "Comprobar gramática con la ortografía" msgid "Correct Spelling Automatically" msgstr "Corregir ortografía automáticamente" msgid "Substitutions" msgstr "Sustituciones" msgid "Show Substitutions" msgstr "Mostrar sustituciones" msgid "Smart Copy/Paste" msgstr "Copipegado inteligente" msgid "Smart Quotes" msgstr "Comillas tipográficas" msgid "Smart Dashes" msgstr "Guiones inteligentes" msgid "Smart Links" msgstr "Enlaces inteligentes" msgid "Text Replacement" msgstr "Sustitución de texto" msgid "Transformations" msgstr "Transformaciones" msgid "Make Upper Case" msgstr "Convertir en mayúsculas" msgid "Make Lower Case" msgstr "Convertir en minúsculas" msgid "Capitalize" msgstr "A mayúsculas" msgid "Speech" msgstr "Habla" msgid "Start Speaking" msgstr "Comenzar a hablar" msgid "Stop Speaking" msgstr "Dejar de hablar" msgid "&View" msgstr "&Ver" msgid "Enter Full Screen" msgstr "Modo de pantalla completa" msgid "Window" msgstr "Ventana" msgid "Minimize" msgstr "Minimizar" msgid "Zoom" msgstr "Escala" msgid "Bring All to Front" msgstr "Traer todo al frente" #. TRANSLATORS:File kind displayed in Finder/Explorer msgid "PO Translation" msgstr "Traducción en PO" msgid "The file cannot be opened." msgstr "No se puede abrir el archivo." msgid "Invalid file" msgstr "El archivo no es válido" msgid "" "The file may be either corrupted or in a format not recognized by Poedit." msgstr "El archivo puede estar dañado o en un formato que Poedit no reconoce." msgid "You can’t drop more than one file on Poedit window." msgstr "No se puede soltar más de un archivo en la ventana de Poedit." #, c-format msgid "File “%s” is not a message catalog." msgstr "El archivo «%s» no es un catálogo de mensajes." msgid "Poedit" msgstr "Poedit" msgid "&File" msgstr "&Archivo" msgid "&Go" msgstr "&Navegar" #. TRANSLATORS: %s is language name in its basic form (as you #. would see e.g. in a list of supported languages). You may need #. to rephrase it, e.g. to an equivalent of "for language %s". #, c-format msgid "" "Spellchecking is disabled, because the dictionary for %s isn’t installed." msgstr "" "Se desactivó la revisión ortográfica porque falta el diccionario para el %s." msgid "Install" msgstr "Instalar" msgid "Catalog modified. Do you want to save changes?" msgstr "Se ha modificado el catálogo. ¿Quiere guardar los cambios?" msgid "Save changes" msgstr "Guardar cambios" msgid "Your changes will be lost if you don’t save them." msgstr "Los cambios se perderán si no los guarda." msgid "Save" msgstr "Guardar" msgid "Don’t save" msgstr "No guardar" msgid "Don’t Save" msgstr "No guardar" msgid "Save as…" msgstr "Guardar como…" msgid "Compile to…" msgstr "Compilar en…" msgid "Compiled Translation Files" msgstr "Archivos de traducción compilados" msgid "Export as…" msgstr "Exportar a…" msgid "HTML Files" msgstr "Archivos HTML" msgid "Open catalog template" msgstr "Abrir plantilla de catálogo" msgid "Source code not available." msgstr "El código fuente no está disponible." msgid "Updating failed" msgstr "Falló la actualización" msgid "" "Translations couldn’t be updated from the source code, because no code was " "found in the location specified in the catalog’s Properties." msgstr "" "No se pudieron actualizar las traducciones a partir del código fuente porque " "no se encontró el código en la ubicación especificada en las propiedades del " "catálogo." msgid "Entries in the catalog are probably incorrect." msgstr "Es probable que algunos mensajes del catálogo sean incorrectos." msgid "Updating the catalog failed. Click on 'Details >>' for details." msgstr "" "Falló la actualización del catálogo. Pulse en «Detalles» para más " "información." #, c-format msgid "%d issue with the translation found." msgid_plural "%d issues with the translation found." msgstr[0] "Se encontró %d problema en la traducción." msgstr[1] "Se encontraron %d problemas en la traducción." msgid "Validation results" msgstr "Resultados de la validación" msgid "" "Entries with errors were marked in red in the list. Details of the error " "will be shown when you select such an entry." msgstr "" "Las entradas con errores se han marcado en rojo en la lista. Se mostrarán " "detalles del error cuando seleccione la entrada." msgid "The file was saved safely." msgstr "Se ha guardado el archivo con seguridad." msgid "" "The file was saved safely and compiled into the MO format, but it will " "probably not work correctly." msgstr "" "El archivo se guardó con seguridad y se compiló en el formato MO, pero es " "posible que no funcione correctamente." msgid "" "The file was saved safely, but it cannot be compiled into the MO format and " "used." msgstr "" "El archivo se guardó con seguridad, pero no puede compilarse en el formato " "MO ni usarse." msgid "" "The file was compiled into the MO format, but it will probably not work " "correctly." msgstr "" "El archivo se compiló en el formato MO, pero es posible que no funcione " "correctamente." msgid "The file cannot be compiled into the MO format and used." msgstr "El archivo no se puede compilar en el archivo MO para su uso." msgid "No problems with the translation found." msgstr "No se encontraron problemas con esta traducción." #, c-format msgid "The translation is ready for use, but %d entry is not translated yet." msgid_plural "" "The translation is ready for use, but %d entries are not translated yet." msgstr[0] "" "La traducción está lista para su uso, pero aún no se ha traducido %d cadena." msgstr[1] "" "La traducción está lista para su uso, pero aún no se han traducido %d " "cadenas." msgid "The translation is ready for use." msgstr "La traducción está lista para su uso." #, c-format msgid "Poedit automatically fixed invalid content in the file “%s”." msgstr "" "Poedit corrigió automáticamente el contenido no válido del archivo «%s»." msgid "" "The file contained duplicate items, which is not allowed in PO files and " "would prevent the file from being used. Poedit fixed the issue, but you " "should review translations of any items marked as needing work and correct " "them if necessary." msgstr "" "El archivo contenía elementos duplicados, lo que impediría su " "funcionamiento. Poedit ha corregido el problema, pero debe revisar las " "traducciones de cualesquier elementos marcados como por revisar y " "corregirlas si es necesario." msgid "Language of the translation isn’t set." msgstr "No se ha establecido el idioma de la traducción." msgid "Set Language" msgstr "Establecer idioma" msgid "Set language" msgstr "Establecer idioma" #. TRANSLATORS: This is shown underneath "Language of the translation isn't set (or ...is the same as source language)." msgid "" "Suggestions are not available if the translation language is not set " "correctly. Other features, such as plural forms, may be affected as well." msgstr "" "Si el idioma de traducción no se configura correctamente, se afectarán " "funcionalidades como las sugerencias y la gestión de formas plurales." msgid "Language of the translation is the same as source language." msgstr "El idioma de la traducción es igual que el del texto original." msgid "Fix Language" msgstr "Corregir idioma" msgid "Fix language" msgstr "Corregir idioma" msgid "" "This catalog has entries with plural forms, but doesn’t have Plural-Forms " "header configured." msgstr "" "Este catálogo tiene entradas con formas en plural, pero no tiene configurada " "la cabecera «Plural-Forms»." msgid "" "Entries in this catalog have different plural forms count from what " "catalog’s Plural-Forms header says" msgstr "" "Hay entradas en este catálogo con una cantidad de formas de plural distinta " "de la establecida en la cabecera «Plural-Forms»" msgid "Required header Plural-Forms is missing." msgstr "Falta la cabecera obligatoria «Plural-Forms»." #, c-format msgid "Syntax error in Plural-Forms header (\"%s\")." msgstr "Error de sintaxis en la cabecera de formas de plural («%s»)." msgid "Fix the Header" msgstr "Corregir cabecera" msgid "Fix the header" msgstr "Corregir cabecera" #. TRANSLATORS: %s is language name in its basic form (as you #. would see e.g. in a list of supported languages). You may need #. to rephrase it, e.g. to an equivalent of "for language %s". #, c-format msgid "Plural forms expression used by the catalog is unusual for %s." msgstr "" "La expresión de formas plurales usada en el catálogo es inusual en el %s." #. TRANSLATORS: A verb, shown as action button with ""Plural forms expression used by the catalog is unusual for %s.")" msgid "Review" msgstr "Revisar" #, c-format msgid "Error loading message catalog file “%s”." msgstr "Ocurrió un error al cargar el catálogo de mensajes «%s»." #, c-format msgid "Translated: %d of %d (%d %%)" msgstr "Traducidas: %d de %d (%d %%)" #, c-format msgid "Remaining: %d" msgstr "Quedan: %d" #, c-format msgid "%d error" msgid_plural "%d errors" msgstr[0] "%d error" msgstr[1] "%d errores" #, c-format msgid "%d entry" msgid_plural "%d entries" msgstr[0] "%d entrada" msgstr[1] "%d entradas" msgid " (unsaved)" msgstr " (sin guardar)" msgid " (modified)" msgstr " (modificado)" #, c-format msgid "Failed to update translation memory: %s" msgstr "No se pudo actualizar la memoria de traducciones: %s" msgid "Purge deleted translations" msgstr "Purgar traducciones eliminadas" msgid "Do you want to remove all translations that are no longer used?" msgstr "¿Quiere eliminar todas las traducciones que ya no se usan?" msgid "" "If you continue with purging, all translations marked as deleted will be " "permanently removed. You will have to translate them again if they are added " "back in the future." msgstr "" "Si continúa con el purgado se eliminarán permanentemente todas las " "traducciones no utilizadas. Si las cadenas correspondientes se vuelven a " "añadir, deberá traducirlas de nuevo." msgid "Keep" msgstr "Conservar" msgid "Purge" msgstr "Purgar" msgid "Copy from source text" msgstr "Copiar del texto original" msgid "Copy from Source Text" msgstr "Copiar del texto original" #. TRANSLATORS: This is the key shortcut used in menus on Windows, some languages call them differently #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Ctrl+" msgstr "Ctrl+" msgid "Clear translation" msgstr "Vaciar traducción" msgid "Clear Translation" msgstr "Vaciar traducción" msgid "Edit comment" msgstr "Editar comentario" msgid "Edit Comment" msgstr "Editar comentario" msgid "References:" msgstr "Referencias:" msgid "&Bookmarks" msgstr "&Marcadores" #. TRANSLATORS: This is the key shortcut used in menus on Windows, some languages call them differently #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Alt+" msgstr "Alt+" #, c-format msgid "Set bookmark %i" msgstr "Crear marcador %i" #, c-format msgid "Go to bookmark %i" msgstr "Ir al marcador %i" #, c-format msgid "Set Bookmark %i" msgstr "Crear marcador %i" #, c-format msgid "Go to Bookmark %i" msgstr "Ir al marcador %i" msgid "Hide Sidebar" msgstr "Ocultar barra lateral" msgid "Show Sidebar" msgstr "Mostrar barra lateral" msgid "Hide Status Bar" msgstr "Ocultar barra de estado" msgid "Show Status Bar" msgstr "Mostrar barra de estado" msgid "Source text:" msgstr "Texto de origen:" msgid "Singular:" msgstr "Singular:" msgid "Plural:" msgstr "Plural:" msgid "Translation:" msgstr "Traducción:" msgid "Pre-translated" msgstr "Pretraducida" msgid "Needs Work" msgstr "Necesita trabajo" #. TRANSLATORS: This indicates that the string's translation isn't final #. and has known problems. For example, it might be machine translated or #. fuzzy matched from an older string. The translation should be short and #. convey this. If it's problematic to translate it, "Needs review" is #. acceptable substitute, but note that the meaning is subtly different: #. "needs review" implies that somebody else should review the string after #. I am done with it (i.e. consider it good), while "needs work" implies I #. need to return to it and finish the translation. msgid "Needs work" msgstr "Por revisar" msgid "" "POT files are only templates and don’t contain any translations themselves.\n" "To make a translation, create a new PO file based on the template." msgstr "" "Los archivos POT son plantillas; no contienen traducciones.\n" "Para realizar una traducción, cree un archivo PO nuevo basado en la " "plantilla." msgid "Create New Translation" msgstr "Crear traducción nueva" msgid "Create new translation" msgstr "Crear traducción nueva" msgid "Everything" msgstr "Todo" #, c-format msgid "Form %i" msgstr "Forma %i" msgid "Singular" msgstr "Singular" msgid "Zero" msgstr "Cero" msgid "One" msgstr "Uno" msgid "Two" msgstr "Dos" msgid "Plural" msgstr "Plural" msgid "Other" msgstr "Otro" #, c-format msgid "%s Format" msgstr "Formato %s" #. TRANSLATORS: %s is replaced with language name, e.g. "PHP" or "C", so "PHP Format" etc." #, c-format msgid "%s format" msgstr "Formato %s" msgid "Source text" msgstr "Texto de origen" #, c-format msgid "Translation — %s" msgstr "Traducción: %s" msgid "ID" msgstr "Id." #, c-format msgid "Source text — %s" msgstr "Texto de origen: %s" msgid "unknown language" msgstr "idioma desconocido" #, c-format msgid "Failed command: %s" msgstr "Orden errónea: %s" msgid "Failed to merge gettext catalogs." msgstr "Error al combinar los catálogos de Gettext." msgid "Source file" msgstr "Archivo de origen" msgid "Source file occurrence:" msgstr "Ocurrencia en archivo de fuente:" msgid "Open in Editor" msgstr "Abrir en el editor" msgid "Open in editor" msgstr "Abrir en el editor" msgid "No references for the selected item." msgstr "No hay referencias para el elemento seleccionado." #, c-format msgid "Error opening file %s!" msgstr "Ocurrió un error al abrir el archivo %s." msgid "Find" msgstr "Buscar" msgid "Replace" msgstr "Reemplazar" #. TRANSLATORS: Expander in Find window for additional options (case sensitive etc.) msgid "Options" msgstr "Opciones" msgid "Ignore case" msgstr "Ignorar mayúsculas y minúsculas" msgid "Wrap around" msgstr "Búsqueda bidireccional" msgid "Whole words only" msgstr "Solo palabras completas" msgid "Find in source texts" msgstr "Encontrar en textos originales" msgid "Find in translations" msgstr "Buscar en traducciones" msgid "Find in comments" msgstr "Buscar en los comentarios" msgid "Close" msgstr "Cerrar" msgid "Replace &All" msgstr "Reemplazar &todo" msgid "Replace &all" msgstr "Reemplazar &todo" msgid "&Replace" msgstr "&Reemplazar" msgid "< &Previous" msgstr "< &Anterior" msgid "&Next >" msgstr "&Siguiente >" msgid "String to find" msgstr "Texto que encontrar" msgid "Replacement string" msgstr "Texto de reemplazo" #, c-format msgid "Cannot execute program: %s" msgstr "No se puede ejecutar el programa: %s" msgid "Language Code or Name (e.g. en_GB)" msgstr "Código o nombre de idioma (p. ej., es_MX)" msgid "Translation Language" msgstr "Idioma de la traducción" msgid "Language of the translation:" msgstr "Idioma de la traducción:" msgid "Poedit - Catalogs manager" msgstr "Poedit: Gestor de catálogos" msgid "Catalog" msgstr "Catálogo" msgid "Total" msgstr "Total" msgid "Untrans" msgstr "Sin traducir" msgid "Errors" msgstr "Errores" msgid "Last modified" msgstr "Última modificación" msgid "Select directory" msgstr "Seleccione la carpeta" msgid "Directories:" msgstr "Carpetas:" msgid "" msgstr "" msgid "Do you want to delete the project?" msgstr "¿Quiere eliminar el proyecto?" msgid "Confirmation" msgstr "Confirmación" msgid "" "Do you really want to do mass update of\n" "all catalogs in this project?" msgstr "" "¿Quiere realizar una actualización en masa\n" "de todos los catálogos de este proyecto?" msgid "Information about the translator" msgstr "Información acerca del traductor" msgid "Name:" msgstr "Nombre:" msgid "Your Name" msgstr "Su nombre" msgid "Email:" msgstr "Correo electrónico:" msgid "your_email@example.com" msgstr "dirección@ejemplo.com" msgid "" "Your name and email address are only used to set the Last-Translator header " "of GNU gettext files." msgstr "" "Estos datos se utilizan únicamente para establecer el valor de la cabecera " "«Last-Translator» de los archivos de GNU gettext." msgid "Editing" msgstr "Edición" msgid "Automatically compile MO file when saving" msgstr "Compilar automáticamente el archivo MO al guardar" msgid "Show summary after catalog update" msgstr "Mostrar resumen tras actualizar el catálogo" msgid "Check spelling" msgstr "Revisar la ortografía" msgid "Always change focus to text input field" msgstr "Enfocar siempre el campo de entrada de texto" msgid "" "Never let the list of strings take focus. If enabled, you must use Ctrl-" "arrows for keyboard navigation but you can also type text immediately, " "without having to press Tab to change focus." msgstr "" "No dejar que la lista de cadenas retenga el enfoque. Si se activa esta " "opción, debe usar Ctrl + teclas de dirección para moverse por la lista, pero " "también puede comenzar a teclear inmediatamente sin necesidad de oprimir el " "tabulador para cambiar el enfoque." msgid "Appearance" msgstr "Apariencia" msgid "Use custom list font:" msgstr "Usar tipo de letra personalizado en listas:" msgid "Use custom text fields font:" msgstr "Usar tipo de letra personalizado en campos de texto:" msgid "Change UI language" msgstr "Cambiar idioma de la interfaz" #. TRANSLATORS: This is a note appended to "Check spelling" when running on older Windows versions msgid "(requires Windows 8 or newer)" msgstr "(se necesita Windows 8 o posterior)" msgid "General" msgstr "Generales" msgid "Use translation memory" msgstr "Usar memoria de traducción" msgid "Learn From Files…" msgstr "Aprender de archivos…" msgid "Learn from files…" msgstr "Aprender de archivos…" #. TRANSLATORS: This is a button that deletes everything in the translation memory (i.e. clears/resets it). msgid "Reset" msgstr "Restablecer" #. TRANSLATORS: Followed by "match translations within the file" or "pre-translate from TM" msgid "When updating from sources" msgstr "Al actualizar desde el código fuente" #. TRANSLATORS: Preceded by "When updating from sources" msgid "fuzzy match within the file" msgstr "incluir coincidencias aprox. del archivo" #. TRANSLATORS: Preceded by "When updating from sources" msgid "pre-translate from TM" msgstr "pretraducir a partir de la MT" msgid "" "Poedit can attempt to fill in new entries from only previous translations in " "the file or from your entire translation memory. Using the TM won’t be very " "effective if it’s near-empty, but it will get better as you add more " "translations to it." msgstr "" "Poedit puede intentar rellenar las entradas nuevas solo a partir de " "traducciones anteriores en el archivo o desde su memoria de traducción " "entera. Si la MT está casi vacía, la operación no será muy efectiva, pero " "mejorará a medida que le añada más traducciones." msgid "Stored translations:" msgstr "Traducciones almacenadas:" msgid "Database size on disk:" msgstr "Tamaño de base de datos en el disco:" msgid "Select translation files to import" msgstr "Seleccione los archivos de traducción que se importarán" msgid "Translation Memory" msgstr "Memoria de traducciones" msgid "Importing translations…" msgstr "Importando traducciones…" msgid "Finalizing…" msgstr "Finalizando…" msgid "Reset translation memory" msgstr "Restablecer memoria de traducción" msgid "Are you sure you want to reset the translation memory?" msgstr "¿Confirma que quiere restablecer la memoria de traducción?" msgid "" "Resetting the translation memory will irrevocably delete all stored " "translations from it. You can’t undo this operation." msgstr "" "Al reiniciar la memoria de traducción se borrarán todas las traducciones " "almacenadas. Esta operación no se puede deshacer." msgid "Cancel" msgstr "Cancelar" #. TRANSLATORS: This is abbreviation of "Translation Memory" used in Preferences on macOS. #. Long text looks weird there, too short (like TM) too, but less so. "General" is about ideal #. length there. msgid "TM" msgstr "MT" msgid "" "Source code extractors are used to find translatable strings in the source " "code files and extract them so that they can be translated." msgstr "" "Los extractores de código fuente se usan para encontrar los mensajes " "traducibles en los archivos de código fuente y extraerlos para permitir su " "traducción." msgid "Custom Extractors:" msgstr "Extractores personalizados:" msgid "Custom extractors:" msgstr "Extractores personalizados:" msgid "Edit…" msgstr "Editar…" msgid "GNU gettext" msgstr "GNU gettext" msgid "" "Supports all programming languages recognized by GNU gettext tools (PHP, C/C+" "+, C#, Perl, Python, Java, JavaScript and others)." msgstr "" "Admite todos los lenguajes de programación que reconocen las herramientas " "gettext de GNU (PHP, C/C++, C#, Perl, Python, Java, JavaScript y más)." msgid "Delete extractor" msgstr "Eliminar extractor" #, c-format msgid "Are you sure you want to delete the “%s” extractor?" msgstr "¿Confirma que quiere eliminar el extractor «%s»?" msgid "Extractors" msgstr "Extractores" msgid "Accounts" msgstr "Cuentas" msgid "Automatically check for updates" msgstr "Buscar actualizaciones automáticamente" msgid "Include beta versions" msgstr "Incluir versiones beta" msgid "" "Beta versions contain the latest new features and improvements, but may be a " "bit less stable." msgstr "" "Las versiones beta contienen las funcionalidades y mejoras más recientes, " "pero pueden resultar menos estables." msgid "Updates" msgstr "Actualizaciones" msgid "" "These settings affect internal formatting of PO files. Adjust them if you " "have specific requirements e.g. because of version control." msgstr "" "Estos valores afectan el formato interno de los archivos PO. Ajústelos si " "usted tiene requisitos específicos; por ejemplo, debido al control de " "versiones." msgid "Line endings:" msgstr "Finales de renglón:" msgid "Unix (recommended)" msgstr "Unix (recomendado)" msgid "Windows" msgstr "Windows" #. TRANSLATORS: Followed by text control for entering number; wraps text at given width msgid "Wrap at:" msgstr "Ajustar en:" msgid "Preserve formatting of existing files" msgstr "Conservar el formato de los archivos existentes" msgid "Advanced" msgstr "Avanzadas" msgid "Pre-translating…" msgstr "Pretraduciendo…" #, c-format msgid "Pre-translated %u string" msgid_plural "Pre-translated %u strings" msgstr[0] "Se pretradujo %u cadena" msgstr[1] "Se pretradujeron %u cadenas" #. TRANSLATORS: This is a somewhat common term describing the action where #. you apply the translation memory and/or machine translation to all of the #. strings you're translating as the first step, followed by correcting, #. improving etc., i.e. actually translating the strings. This may be tricky #. to express in other languages as simply as in English, but please try to #. keep it similarly concise. Please try to avoid, if possible, describing it #. as "auto-translation" and similar, because such terminology would mislead #. some users into thinking it's all that needs to be done (spoken from #. experience). "Pre-translate" nicely expresses that it's only the step done #. *before* actual translation. msgid "Pre-translate" msgstr "Pretraducir" msgid "Only fill in exact matches" msgstr "Solo correspondencias exactas" msgid "" "By default, inaccurate results are filled in as well and marked as needing " "work. Check this option to only include accurate matches." msgstr "" "De manera predeterminada, se incluyen también los resultados aproximados y " "se marcan como pendientes de revisión. Active esta opción para incluir solo " "coincidencias exactas." msgid "Don’t mark exact matches as needing work" msgstr "No marcar las coincidencias exactas como por revisar" msgid "" "Only enable if you trust the quality of your TM. By default, all matches " "from the TM are marked as needing work and should be reviewed before use." msgstr "" "Active esta opción si confía en la calidad de la TM. De manera " "predeterminada, todas las coincidencias de TM son marcadas como por revisar " "y deben revisarse antes de su uso." msgid "" "Pre-translation automatically finds exact or fuzzy matches for untranslated " "strings in the translation memory and fills in their translations." msgstr "" "La pretraducción encuentra automáticamente en la memoria de la traducción " "coincidencias exactas o por revisar de cadenas sin traducir y las incluye en " "sus traducciones." #, c-format msgid "%d entry was pre-translated." msgid_plural "%d entries were pre-translated." msgstr[0] "Se pretradujo %d entrada." msgstr[1] "Se pretradujeron %d entradas." msgid "" "The translations were marked as needing work, because they may be " "inaccurate. You should review them for correctness." msgstr "" "Las traducciones fueron marcadas como por revisar ya que pueden ser " "imprecisas. Debe revisarlas para asegurar la exactitud." msgid "No entries could be pre-translated." msgstr "No se pudo pretraducir ninguna entrada." msgid "" "The TM doesn’t contain any strings similar to the content of this file. It " "is only effective for semi-automatic translations after Poedit learns enough " "from files that you translated manually." msgstr "" "La MT no contiene ninguna cadena similar al contenido de este archivo. Solo " "será efectiva para traducciones semiautomáticas después de que Poedit haya " "aprendido lo suficiente de archivos traducidos manualmente por el usuario." msgid "" "Drag and Drop Folders Here\n" "\n" "or use the + button" msgstr "" "Arrastre y suelte carpetas aquí\n" "\n" "o use el botón +" msgid "" "Drag and drop folders here\n" "\n" "or use the + button" msgstr "" "Arrastre y suelte carpetas aquí\n" "\n" "o use el botón +" msgid "Add Folders…" msgstr "Añadir carpetas…" msgid "Add folders…" msgstr "Añadir carpetas…" msgid "Add Files…" msgstr "Añadir archivos…" msgid "Add files…" msgstr "Añadir archivos…" msgid "Add Wildcard…" msgstr "Añadir comodín…" msgid "Add wildcard…" msgstr "Añadir comodín…" msgid "Paths" msgstr "Rutas" msgid "Excluded paths" msgstr "Rutas excluidas" msgid "Advanced extraction settings" msgstr "Opciones avanzadas de extracción" msgid "Extract notes for translators from:" msgstr "Extraer las notas para traductores a partir de:" msgid "Comments prefixed with:" msgstr "Comentarios con el prefijo:" msgid "All comments" msgstr "Todos los comentarios" msgid "Additional xgettext flags:" msgstr "Señales de xgettext adicionales:" msgid "Additional keywords" msgstr "Palabras clave adicionales" msgid "Name of the project the translation is for" msgstr "El nombre del proyecto al que se destina esta traducción" msgid "Team name and email address or URL" msgstr "Nombre de equipo y correo o URL" msgid "e.g. nplurals=2; plural=(n > 1);" msgstr "p. ej., nplurals=2; plural=(n > 1);" msgid "UTF-8 (recommended)" msgstr "UTF-8 (recomendado)" msgid "Please save the file first. This section cannot be edited until then." msgstr "" "Guarde el archivo primero. No se podrá editar esta sección hasta que lo haga." msgid "Not all plural forms are translated." msgstr "No todas las formas plurales están traducidas." msgid "The translation should start as a sentence." msgstr "La traducción debe comenzar como una oración." msgid "The translation should start with a lowercase character." msgstr "La traducción debe comenzar con una letra minúscula." msgid "The translation doesn’t start with a space." msgstr "La traducción no comienza con un espacio." msgid "The translation starts with a space, but the source text doesn’t." msgstr "La traducción comienza con un espacio, pero el texto original no." msgid "The translation is missing a newline at the end." msgstr "Falta un salto de renglón al final en la traducción." msgid "The translation ends with a newline, but the source text doesn’t." msgstr "" "La traducción termina con un salto de renglón, pero el texto original no." msgid "The translation is missing a space at the end." msgstr "Falta un espacio final en la traducción." msgid "The translation ends with a space, but the source text doesn’t." msgstr "La traducción termina con un espacio, pero el texto original no." #, c-format msgid "The translation should end with “%s”." msgstr "La traducción debe terminar con «%s»." #, c-format msgid "The translation should not end with “%s”." msgstr "La traducción no debe terminar con «%s»." #, c-format msgid "The translation ends with “%s”, but the source text ends with “%s”." msgstr "" "La traducción termina con «%s», pero el texto original termina con «%s»." msgid "Comment:" msgstr "Comentario:" msgid "OK" msgstr "Aceptar" msgid "C&lear" msgstr "&Vaciar" msgid "Clear the comment" msgstr "Borrar el comentario" msgid "New" msgstr "Nuevo" msgid "Create new translations project" msgstr "Crear proyecto de traducción nuevo" msgid "Edit" msgstr "Editar" msgid "Edit the project" msgstr "Editar el proyecto" msgid "Delete the project" msgstr "Eliminar el proyecto" msgid "Update all" msgstr "Actualizar todo" msgid "Update all catalogs in the project" msgstr "Actualizar todos los catálogos del proyecto" msgid "Edit project" msgstr "Editar proyecto" msgid "Project name:" msgstr "Nombre del proyecto:" msgid "Browse" msgstr "Examinar" msgid "Add directory to the list" msgstr "Añadir carpeta a la lista" msgid "&New…" msgstr "&Nuevo…" msgid "New from &POT/PO file…" msgstr "Nueva desde archivo &POT/PO…" msgid "New From &POT/PO File…" msgstr "Nueva desde archivo &POT/PO…" msgid "&Open…" msgstr "&Abrir…" msgid "Open Recent" msgstr "Abrir recientes" msgid "Open from Crowdin…" msgstr "Abrir desde Crowdin…" msgid "Open From Crowdin…" msgstr "Abrir desde Crowdin…" msgid "&Close" msgstr "&Cerrar" msgid "&Save" msgstr "&Guardar" msgid "Save &as…" msgstr "G&uardar como…" msgid "Save &As…" msgstr "G&uardar como…" msgid "Compile to MO…" msgstr "Compilar en MO…" msgid "E&xport as HTML…" msgstr "E&xportar a HTML…" msgid "Check for updates…" msgstr "Buscar actualizaciones…" msgid "&Preferences…" msgstr "&Preferencias…" msgid "Catalogs &manager" msgstr "&Gestor de catálogos" msgid "Catalogs &Manager" msgstr "&Gestor de catálogos" msgid "E&xit" msgstr "&Salir" msgid "Quit" msgstr "Salir" msgid "Copy from singular" msgstr "Copiar del singular" msgid "Copy From Singular" msgstr "Copiar del singular" msgid "Translation needs &work" msgstr "Traducción por re&visar" msgid "Translation Needs &Work" msgstr "Traducción por re&visar" msgid "Edit &comment" msgstr "Editar &comentario" msgid "Edit &Comment" msgstr "Editar &comentario" msgid "Suggestions" msgstr "Sugerencias" msgid "&Find…" msgstr "&Buscar…" msgid "Replace…" msgstr "Reemplazar…" msgid "Find next" msgstr "Buscar siguiente" msgid "Find previous" msgstr "Buscar anterior" msgid "Find and Replace…" msgstr "Buscar y reemplazar…" msgid "Find Next" msgstr "Buscar siguiente" msgid "Find Previous" msgstr "Buscar anterior" msgid "&Preferences" msgstr "&Preferencias" msgid "Display entry &IDs" msgstr "Mostrar &identificadores de entradas" msgid "Display Entry &IDs" msgstr "Mostrar &identificadores de entradas" msgid "Sort by &file order" msgstr "Ordenar por &archivo" msgid "Sort by &File Order" msgstr "Ordenar por &archivo" msgid "Sort by &source" msgstr "Ordenar por &origen" msgid "Sort by &Source" msgstr "Ordenar por &origen" msgid "Sort by &translation" msgstr "Ordenar por &traducción" msgid "Sort by &Translation" msgstr "Ordenar por &traducción" msgid "&Group by context" msgstr "A&grupar por contexto" msgid "&Group By Context" msgstr "A&grupar por contexto" msgid "Entries with errors first" msgstr "Primero las entradas con errores" msgid "Entries with Errors First" msgstr "Primero las entradas con errores" msgid "&Untranslated entries first" msgstr "Entradas &sin traducir primero" msgid "&Untranslated Entries First" msgstr "Entradas &sin traducir primero" msgid "&Show references" msgstr "&Mostrar referencias" msgid "&Show References" msgstr "&Mostrar referencias" msgid "Show sidebar" msgstr "Mostrar barra lateral" msgid "Show status bar" msgstr "Mostrar barra de estado" msgid "C&atalog" msgstr "&Catálogo" msgid "&Update from sources" msgstr "Actualizar desde &fuentes" msgid "&Update from Sources" msgstr "Actualizar desde &fuentes" msgid "Update from &POT file…" msgstr "Actualizar desde archivo &POT…" msgid "Update from &POT File…" msgstr "Actualizar desde archivo &POT…" msgid "Sync with Crowdin" msgstr "Sincronizar con Crowdin" msgid "Pre-&translate…" msgstr "Pre&traducir…" msgid "&Purge deleted translations" msgstr "&Purgar traducciones sin usar" msgid "&Purge Deleted Translations" msgstr "&Purgar traducciones sin usar" msgid "&Validate translations" msgstr "&Validar traducciones" msgid "&Validate Translations" msgstr "&Validar traducciones" msgid "&Properties…" msgstr "&Propiedades…" msgid "&Done and next" msgstr "&Hecho, siguiente" msgid "&Done and Next" msgstr "&Hecho, siguiente" msgid "&Previous translation" msgstr "Traducción &anterior" msgid "&Previous Translation" msgstr "Traducción &anterior" msgid "&Next translation" msgstr "Traducción &siguiente" msgid "&Next Translation" msgstr "Traducción &siguiente" msgid "P&revious unfinished" msgstr "Ante&rior sin terminar" msgid "P&revious Unfinished" msgstr "Ante&rior sin terminar" msgid "Ne&xt unfinished" msgstr "Siguien&te sin terminar" msgid "Ne&xt Unfinished" msgstr "Siguien&te sin terminar" msgid "Previous plural form" msgstr "Forma plural anterior" msgid "Previous Plural Form" msgstr "Forma plural anterior" msgid "Next plural form" msgstr "Forma plural siguiente" msgid "Next Plural Form" msgstr "Forma plural siguiente" msgid "&Online help" msgstr "&Ayuda en línea" msgid "&Online Help" msgstr "&Ayuda en línea" msgid "&GNU gettext manual" msgstr "Manual de &Gettext" msgid "&GNU gettext Manual" msgstr "Manual de &GNU gettext" msgid "&About Poedit" msgstr "A&cerca de Poedit" msgid "&About" msgstr "A&cerca de" msgid "Extractor setup" msgstr "Configuración de extractor" msgid "List of extensions separated by semicolons (e.g. *.cpp;*.h):" msgstr "Lista de extensiones separadas por punto y coma (p. ej., *.cpp;*.h):" msgid "Invocation:" msgstr "Ejecución:" msgid "Command to extract translations:" msgstr "Orden para extraer las traducciones:" msgid "" "This is the command used to launch the extractor.\n" "%o expands to the name of output file, %K to list\n" "of keywords, %F to list of input files,\n" "%C to charset flag (see below)." msgstr "" "Esta orden se utiliza para abrir el extractor.\n" "%o expande el nombre del archivo de salida, %K muestra\n" "las palabras clave, %F enlista los archivos de entrada y\n" "%C define el conjunto de caracteres (vea abajo)." msgid "An item in keywords list:" msgstr "Un elemento de la lista de palabras clave:" msgid "" "This will be attached to the command line once\n" "for each keyword. %k expands to the keyword." msgstr "" "Esto se añadirá a la línea de órdenes una vez por\n" "cada palabra clave. %k contiene la palabra clave." msgid "An item in input files list:" msgstr "Un elemento de la lista de archivos de entrada:" #, c-format msgid "" "This will be attached to the command line once\n" "for each input file. %f expands to the filename." msgstr "" "Esto se añadirá a la línea de órdenes una vez por cada\n" "archivo de entrada. %f se expande al nombre del archivo." msgid "Source code charset:" msgstr "Conjunto de caracteres del código fuente:" #, c-format msgid "" "This will be attached to the command line\n" "only if source code charset was given. %c expands to charset value." msgstr "" "Esto se adjuntará a la línea de órdenes solo si se proporcionó\n" "el conjunto de caracteres del código fuente. %c expande al valor del " "conjunto." msgid "Catalog properties" msgstr "Propiedades del catálogo" msgid "Project name and version:" msgstr "Nombre del proyecto y versión:" msgid "Language team:" msgstr "Equipo de traductores:" msgid "Plural forms:" msgstr "Formas de plural:" msgid "Use default rules for this language" msgstr "Usar reglas predeterminadas de este idioma" msgid "Use custom expression" msgstr "Usar una expresión personalizada" msgid "Learn about plural forms" msgstr "Más información sobre formas plurales" msgid "Charset:" msgstr "Conjunto de caracteres:" msgid "Advanced Extraction Settings…" msgstr "Opciones avanzadas de extracción…" msgid "Advanced extraction settings…" msgstr "Opciones avanzadas de extracción…" msgid "Translation Properties" msgstr "Propiedades de la traducción" msgid "Translation properties" msgstr "Propiedades de traducción" msgid "Sources Paths" msgstr "Rutas de las fuentes" msgid "Sources paths" msgstr "Rutas de fuentes" msgid "Extract text from source files in the following directories:" msgstr "" "Extraer textos de archivos de código fuente en las carpetas siguientes:" msgid "Base path:" msgstr "Directorio raíz:" msgid "Sources Keywords" msgstr "Palabras clave de las fuentes" msgid "Sources keywords" msgstr "Palabras clave originales" msgid "" "Use these keywords (function names) to recognize translatable strings\n" "in source files:" msgstr "" "Usar estas palabras clave (nombres de funciones) para reconocer mensajes\n" "traducibles en los archivos fuente:" msgid "Also use default keywords for supported languages" msgstr "" "Utilizar también las palabras clave predeterminadas en los idiomas admitidos" msgid "Learn About Gettext Keywords" msgstr "Más información sobre las palabras clave de gettext" msgid "Learn about gettext keywords" msgstr "Más información sobre palabras clave de gettext" msgid "Update summary" msgstr "Resumen de la actualización" msgid "" "These strings were found in the sources but were not in the catalog.\n" "Poedit will add them to the catalog now." msgstr "" "Estas cadenas aparecen en los archivos fuente pero no están\n" "en el catálogo. Poedit los añadirá ahora al catálogo." msgid "New strings" msgstr "Cadenas nuevas" msgid "" "These strings are no longer in the sources.\n" "Poedit will remove them from the catalog now." msgstr "" "Estas cadenas ya no se encuentran en los archivos\n" "fuente. Poedit las eliminará del catálogo." msgid "Obsolete strings" msgstr "Cadenas obsoletas" msgid "(0 new, 0 obsolete)" msgstr "(0 nuevas, 0 obsoletas)" msgid "Open" msgstr "Abrir" msgid "Save catalog" msgstr "Guardar catálogo" msgid "Validate" msgstr "Validar" msgid "Check for errors in the translation" msgstr "Buscar errores en la traducción" msgid "Update" msgstr "Actualizar" msgid "Update catalog - synchronize it with sources" msgstr "Actualizar catálogo: sincronizarlo con los orígenes" msgid "Sidebar" msgstr "Barra lateral" msgid "Show or hide the sidebar" msgstr "Mostrar u ocultar la barra lateral" #. TRANSLATORS: "Previous" as in used in the past, now replaced with newer. msgid "Previous source text:" msgstr "Texto fuente anterior:" msgid "" "The old source text (before it changed during an update) that the now-" "inaccurate translation corresponds to." msgstr "" "El texto original anterior (antes de que cambiase en una actualización) al " "que corresponde la traducción ahora imprecisa." msgid "Notes for translators:" msgstr "Notas para traductores:" msgid "Add comment" msgstr "Añadir comentario" msgid "Add Comment" msgstr "Añadir comentario" msgid "Translation suggestions:" msgstr "Sugerencias de traducción:" #. TRANSLATORS: This is shown when no translation suggestions can be found in the TM (Windows). msgid "No matches found" msgstr "No se hallaron coincidencias" #. TRANSLATORS: This is shown when no translation suggestions can be found in the TM (macOS, Linux). msgid "No Matches Found" msgstr "No se hallaron coincidencias" msgid "This string was found in Poedit’s translation memory." msgstr "Esta cadena se encontró en la memoria de traducción de Poedit." msgid "Cannot create temporary directory." msgstr "No se puede crear la carpeta temporal." msgid "Welcome to Poedit" msgstr "Le damos la bienvenida a Poedit" #. TRANSLATORS: This is version information in about dialog, "%s" will be #. version number when used #, c-format msgid "Version %s" msgstr "Versión %s" msgid "Edit a Translation" msgstr "Editar una traducción" msgid "Edit a translation" msgstr "Editar una traducción" msgid "Open an existing PO file and edit the translation." msgstr "Abrir un archivo PO existente y editar la traducción." msgid "" "Take an existing PO file or POT template and create a new translation from " "it." msgstr "" "Tomar un archivo PO o POT existente y crear una traducción a partir de este." msgid "Collaborate on a Translation with Others" msgstr "Colaborar en una traducción con otros" msgid "Collaborate on a translation with others" msgstr "Colaborar en una traducción con otros" msgid "" "Download a file from Crowdin project, translate and sync your changes back." msgstr "" "Descargue un archivo de un proyecto de Crowdin, tradúzcalo y sincronice sus " "cambios." msgid "What is Crowdin?" msgstr "¿Qué es Crowdin?" msgid "There are no translations. That’s unusual." msgstr "No hay traducciones. Eso es inusual." msgid "" "Translatable entries aren’t added manually in the Gettext system, but are " "automatically extracted\n" "from source code. This way, they stay up to date and accurate.\n" "Translators typically use PO template files (POTs) prepared for them by the " "developer." msgstr "" "Las entradas traducibles no se añaden manualmente en el sistema Gettext, " "sino que se extraen\n" "automáticamente del código fuente. Así se mantienen actualizadas y " "precisas.\n" "Los traductores normalmente emplean plantillas de PO (POT) que proporcionan " "los desarrolladores." msgid "(Learn more about GNU gettext)" msgstr "(Más información sobre GNU gettext)" msgid "The simplest way to fill this catalog is to update it from a POT:" msgstr "" "La manera más simple de rellenar este catálogo es actualizarlo desde un POT:" msgid "Update from POT" msgstr "Actualizar desde POT" msgid "Take translatable strings from an existing POT template." msgstr "Tomar las cadenas traducibles desde una plantilla POT existente." msgid "" "You can also extract translatable strings directly from the source code:" msgstr "" "También puede extraer las cadenas traducibles directamente del código fuente:" msgid "Extract from sources" msgstr "Extraer desde código fuente" msgid "Configure source code extraction in Properties." msgstr "Configure la extracción de código fuente en Propiedades." msgid "Sync" msgstr "Sincronización" msgid "Synchronize the translation with Crowdin" msgstr "Sincronizar la traducción con Crowdin" #. TRANSLATORS: This is titlebar of about dialog, "%s" is application name #. ("Poedit" here, but please use "%s") #, c-format msgid "About %s" msgstr "Acerca de %s" #. TRANSLATORS: Title of the preferences window on Windows and Linux. "%s" is replaced with "Poedit" when running. #, c-format msgid "%s Preferences" msgstr "Preferencias de %s" #. TRANSLATORS: macOS item in app menu msgid "Services" msgstr "Servicios" #. TRANSLATORS: macOS item in app menu, %s is replaced with "Poedit" #, c-format msgid "Hide %s" msgstr "Ocultar %s" #. TRANSLATORS: macOS item in app menu msgid "Hide Others" msgstr "Ocultar el resto" #. TRANSLATORS: macOS item in app menu msgid "Show All" msgstr "Mostrar todo" #. TRANSLATORS: macOS item in app menu, %s is replaced with "Poedit" #, c-format msgid "Quit %s" msgstr "Salir de %s" #. TRANSLATORS: macOS item in app menu msgid "Preferences…" msgstr "Preferencias…" msgid "Preferences..." msgstr "Preferencias…" #. TRANSLATORS: Title of a category in Windows task menu (right-click icon in taskbar) msgid "Recent" msgstr "Recientes" #. TRANSLATORS: Title of a category in Windows task menu (right-click icon in taskbar) msgid "Frequent" msgstr "Frecuentes" msgid "&Apply" msgstr "&Aplicar" msgid "Apply" msgstr "Aplicar" msgid "&Back" msgstr "&Volver" msgid "Back" msgstr "Volver" msgid "&Cancel" msgstr "&Cancelar" msgid "&Clear" msgstr "&Vaciar" msgid "Clear" msgstr "Vaciar" msgid "Copy" msgstr "Copiar" msgid "Cu&t" msgstr "Cor&tar" msgid "Cut" msgstr "Cortar" msgid "&Delete" msgstr "&Eliminar" msgid "&Quit" msgstr "&Salir" msgid "File" msgstr "Archivo" msgid "Help" msgstr "Ayuda" msgid "&New" msgstr "&Nuevo" msgid "&No" msgstr "&No" msgid "No" msgstr "No" msgid "&OK" msgstr "&Aceptar" msgid "Open…" msgstr "Abrir…" msgid "&Open..." msgstr "&Abrir…" msgid "Open..." msgstr "Abrir…" msgid "&Paste" msgstr "&Pegar" msgid "Paste" msgstr "Pegar" msgid "Preferences" msgstr "Preferencias" msgid "&Redo" msgstr "&Rehacer" msgid "Refresh" msgstr "Actualizar" msgid "&Save as" msgstr "G&uardar como" msgid "Save as" msgstr "Guardar como" msgid "Select &All" msgstr "Seleccionar &todo" msgid "Select All" msgstr "Seleccionar todo" msgid "&Undo" msgstr "&Deshacer" msgid "&Yes" msgstr "&Sí" msgid "Yes" msgstr "Sí" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Shift+" msgstr "Mayús+" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Enter" msgstr "Intro" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Up" msgstr "Arriba" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Down" msgstr "Abajo" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Left" msgstr "Izquierda" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Right" msgstr "Derecha" #. TRANSLATORS: Keyboard shortcut, must correspond to translation of "Ctrl+" msgid "ctrl" msgstr "ctrl" #. TRANSLATORS: Keyboard shortcut, must correspond to translation of "Alt+" msgid "alt" msgstr "alt" #. TRANSLATORS: Keyboard shortcut, must correspond to translation of "Shift+" msgid "shift" msgstr "mayús" poedit-2.0.6/locales/nl.po0000664000372000037200000015263113230131554012324 00000000000000msgid "" msgstr "" "Project-Id-Version: poedit\n" "Report-Msgid-Bugs-To: help@poedit.net\n" "POT-Creation-Date: 2017-12-05 15:52+0100\n" "PO-Revision-Date: 2017-12-05 09:49-0500\n" "Last-Translator: vslavik \n" "Language-Team: Dutch\n" "Language: nl_NL\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: crowdin.com\n" "X-Crowdin-Project: poedit\n" "X-Crowdin-Language: nl\n" "X-Crowdin-File: /locales/poedit.pot\n" msgid "Hide this notification message" msgstr "Deze melding verbergen" msgid "Don’t Show Again" msgstr "Niet meer weergeven" msgid "Don’t show again" msgstr "Niet meer weergeven" #, c-format msgid "(New: %i, obsolete: %i)" msgstr "(Nieuw: %i, verouderd: %i)" msgid "Updating catalog" msgstr "Catalogus bijwerken" msgid "Collecting source files…" msgstr "Bronbestanden verzamelen..." msgid "Extracting translatable strings…" msgstr "Vertaalbare strings extraheren..." msgid "Failed to load extracted catalog." msgstr "Laden van geëxtraheerde catalogus mislukt." msgid "Merging differences…" msgstr "Verschillen samenvoegen..." #, c-format msgid "“%s” is not a valid POT file." msgstr "\"%s\" is geen geldig POT-bestand." #, c-format msgid "%i line of file “%s” was not loaded correctly." msgid_plural "%i lines of file “%s” were not loaded correctly." msgstr[0] "%i regel van bestand \"%s\" is niet correct geladen." msgstr[1] "%i regels van bestand \"%s\" zijn niet correct geladen." #, c-format msgid "Line %d of file “%s” is corrupted (not valid %s data)." msgstr "Regel %d van bestand \"%s\" is beschadigd (ongeldige %s-gegevens)." #, c-format msgid "Malformed header: “%s”" msgstr "Verkeerd vormgegeven header: \"%s\"" msgid "" "Broken catalog file: singular form msgstr used together with msgid_plural" msgstr "" "Beschadigd catalogusbestand: enkelvoudsvorm 'msgstr' samen met " "'msgid_plural' gebruikt" msgid "Broken catalog file: plural form msgstr used without msgid_plural" msgstr "" "Beschadigd catalogusbestand: meervoudsvorm 'msgstr' gebruikt zonder " "'msgid_plural'" msgid "" "There were errors when loading the catalog. Some data may be missing or " "corrupted as the result." msgstr "" "Er zijn fouten opgetreden bij het laden van de catalogus. Sommige gegevens " "kunnen hierdoor ontbreken of corrupt zijn." #, c-format msgid "Couldn’t load file %s, it is probably corrupted." msgstr "Kon bestand %s niet laden, het is waarschijnlijk corrupt." #, c-format msgid "" "File “%s” is read-only and cannot be saved.\n" "Please save it under different name." msgstr "" "Bestand '%s' is 'alleen-lezen' en kan niet worden opgeslagen.\n" "Sla het op onder een andere naam." #, c-format msgid "Couldn’t save file %s." msgstr "Kon bestand %s niet opslaan." msgid "" "There was a problem formatting the file nicely (but it was saved all right)." msgstr "" "Er ging iets fout bij het netjes opmaken van het bestand (maar het is wel " "opgeslagen)." #, c-format msgid "" "The catalog couldn’t be saved in “%s” charset as specified in catalog " "settings.\n" "\n" "It was saved in UTF-8 instead and the setting was modified accordingly." msgstr "" "De catalogus kon niet opgeslagen worden met de '%s'-tekenset die opgegeven " "is in de catalogus-instellingen.\n" "\n" "Hij werd in plaats daarvan opgeslagen in UTF8-formaat en de instelling werd " "overeenkomstig daarmee aangepast." msgid "Error saving catalog" msgstr "Fout bij het opslaan van de catalogus" msgid "PO Translation Files" msgstr "PO-vertaalbestanden" msgid "POT Translation Templates" msgstr "POT-vertaalsjablonen" msgid "All Translation Files" msgstr "Alle vertaalbestanden" msgid "(Use default language)" msgstr "(Gebruik de standaardtaal)" msgid "Select your preferred language" msgstr "Kies uw voorkeurstaal" msgid "Language selection" msgstr "Taalselectie" msgid "You must restart Poedit for this change to take effect." msgstr "U moet Poedit opnieuw starten voordat deze verandering effect heeft." msgid "Syncing" msgstr "Synchroniseren" #. TRANSLATORS: %s is a cloud destination, e.g. "Crowdin" or ftp.wordpress.com etc. #, c-format msgid "Syncing with %s…" msgstr "Synchroniseren met %s…" #. TRANSLATORS: %s is a cloud destination, e.g. "Crowdin" or ftp.wordpress.com etc. #, c-format msgid "Syncing with %s failed." msgstr "Synchroniseren met %s is mislukt." msgid "Syncing error" msgstr "Synchronisatiefout" msgid "Downloading translations is disabled in this project." msgstr "Het downloaden van vertalingen is uitgeschakeld in dit project." msgid "Not authorized, please sign in again." msgstr "Niet geautoriseerd; log opnieuw in." msgid "" "Crowdin is an online localization management platform and collaborative " "translation tool. Poedit can seamlessly sync PO files managed at Crowdin." msgstr "" "Crowdin is een online vertaalplatform voor het beheren van en het " "samenwerken aan vertalingen. Poedit kan naadloos synchroniseren met de op " "Crowdin beheerde PO-bestanden." msgid "Sign In" msgstr "Inloggen" msgid "Sign in" msgstr "Inloggen" msgid "Sign Out" msgstr "Uitloggen" msgid "Sign out" msgstr "Uitloggen" msgid "Waiting for authentication…" msgstr "Wachten op autorisatie…" msgid "Updating user information…" msgstr "Gebruikersinformatie bijwerken…" msgid "Signed in as:" msgstr "Ingelogd als:" msgid "Learn More About Crowdin" msgstr "Meer te weten komen over Crowdin" msgid "Learn more about Crowdin" msgstr "Meer te weten komen over Crowdin" msgid "Sign in to Crowdin" msgstr "Inloggen bij Crowdin" msgid "Open Crowdin translation" msgstr "Crowdin-vertaling openen" msgid "Project:" msgstr "Project:" msgid "Language:" msgstr "Taal:" msgid "File:" msgstr "Bestand:" msgid "No translation projects listed in your Crowdin account." msgstr "Er zijn geen vertaalprojecten aanwezig in uw Crowdin-account." msgid "This project has no files that can be translated in Poedit." msgstr "Dit project bevat geen bestanden die vertaald kunnen worden in Poedit." msgid "This file can only be edited in Crowdin’s web interface." msgstr "Dit bestand kan alleen bewerkt worden in de Crowdin-webinterface." msgid "Downloading latest translations…" msgstr "De meest recente vertalingen downloaden…" msgid "Syncing with Crowdin failed." msgstr "Synchronisatie met Crowdin mislukt." msgid "Crowdin error" msgstr "Crowdin-fout" msgid "Uploading translations…" msgstr "Vertalingen uploaden…" msgid "&Copy" msgstr "&Kopiëren" msgid "Learn more" msgstr "Meer te weten komen" msgid "Learn More" msgstr "Meer te weten komen" msgid "&Help" msgstr "&Hulp" msgid "MO files can’t be directly edited in Poedit." msgstr "MO-bestanden kunnen niet direct bewerkt worden in Poedit." msgid "Error opening file" msgstr "Fout bij openen van bestand" msgid "" "Please open and edit the corresponding PO file instead. When you save it, " "the MO file will be updated as well." msgstr "" "Open en bewerk in plaats daarvan het corresponderende PO-bestand. Als u dat " "opslaat zal het MO-bestand ook bijgewerkt worden." msgid "don’t delete temporary files (for debugging)" msgstr "tijdelijke bestanden niet verwijderen (voor foutopsporing)" msgid "handle a poedit:// URI" msgstr "omgaan met een poedit://-URI" msgid "go to item at given line number" msgstr "ga naar het item op het gegeven regelnummer" msgid "Failed to communicate with Poedit process." msgstr "Communicatie met het Poedit-proces mislukt." #, c-format msgid "Unhandled exception occurred: %s" msgstr "Er is een niet-verwerkte uitzondering opgetreden: %s" msgid "Open catalog" msgstr "Catalogus openen" #, c-format msgid "File “%s” doesn’t exist." msgstr "Bestand \"%s\" bestaat niet." msgid "Poedit is an easy to use translations editor." msgstr "Poedit is een eenvoudig te gebruiken vertalingsbewerker." msgid "Catalogs Manager" msgstr "Catalogusbeheerder" msgid "Check for Updates…" msgstr "Op updates controleren..." msgid "&Edit" msgstr "B&ewerken" msgid "Undo" msgstr "Ongedaan maken" msgid "Redo" msgstr "Opnieuw" msgid "Paste and Match Style" msgstr "Plakken en aan stijl aanpassen" msgid "Delete" msgstr "Verwijderen" msgid "Spelling and Grammar" msgstr "Spelling en grammatica" msgid "Show Spelling and Grammar" msgstr "Spelling en grammatica weergeven" msgid "Check Document Now" msgstr "Document nu controleren" msgid "Check Spelling While Typing" msgstr "Spelling controleren tijdens typen" msgid "Check Grammar With Spelling" msgstr "Grammatica en spelling controleren" msgid "Correct Spelling Automatically" msgstr "Spelling automatisch corrigeren" msgid "Substitutions" msgstr "Vervanging" msgid "Show Substitutions" msgstr "Vervangingen weergeven" msgid "Smart Copy/Paste" msgstr "Slim kopiëren/plakken" msgid "Smart Quotes" msgstr "Slimme aanhalingstekens" msgid "Smart Dashes" msgstr "Slimme streepjes" msgid "Smart Links" msgstr "Slimme links" msgid "Text Replacement" msgstr "Tekstvervanging" msgid "Transformations" msgstr "Omzetting" msgid "Make Upper Case" msgstr "Zet om in hoofdletters" msgid "Make Lower Case" msgstr "Zet om in kleine letters" msgid "Capitalize" msgstr "Zet om in beginhoofdletters" msgid "Speech" msgstr "Spraak" msgid "Start Speaking" msgstr "Beginnen met spreken" msgid "Stop Speaking" msgstr "Stoppen met spreken" msgid "&View" msgstr "B&eeld" msgid "Enter Full Screen" msgstr "Ga naar volledig scherm" msgid "Window" msgstr "Venster" msgid "Minimize" msgstr "Minimaliseren" msgid "Zoom" msgstr "In-/uitzoomen" msgid "Bring All to Front" msgstr "Alles op voorgrond" #. TRANSLATORS:File kind displayed in Finder/Explorer msgid "PO Translation" msgstr "PO-vertaling" msgid "The file cannot be opened." msgstr "Het bestand kan niet geopend worden." msgid "Invalid file" msgstr "Ongeldig bestand" msgid "" "The file may be either corrupted or in a format not recognized by Poedit." msgstr "" "Het bestand kan corrupt zijn of een opmaak hebben die niet herkend wordt " "door Poedit." msgid "You can’t drop more than one file on Poedit window." msgstr "U kunt niet meer dan één bestand in het Poedit-venster plaatsen." #, c-format msgid "File “%s” is not a message catalog." msgstr "Het bestand \"%s\" is geen berichtencatalogus." msgid "Poedit" msgstr "Poedit" msgid "&File" msgstr "&Bestand" msgid "&Go" msgstr "&Navigeren" #. TRANSLATORS: %s is language name in its basic form (as you #. would see e.g. in a list of supported languages). You may need #. to rephrase it, e.g. to an equivalent of "for language %s". #, c-format msgid "" "Spellchecking is disabled, because the dictionary for %s isn’t installed." msgstr "" "Spellingscontrole is uitgeschakeld, omdat het woordenboek voor %s niet " "geïnstalleerd is." msgid "Install" msgstr "Installeren" msgid "Catalog modified. Do you want to save changes?" msgstr "De catalogus is gewijzigd. Wilt u de wijzigingen opslaan?" msgid "Save changes" msgstr "Wijzigingen opslaan" msgid "Your changes will be lost if you don’t save them." msgstr "Uw wijzigingen zullen verloren gaan als u ze niet opslaat." msgid "Save" msgstr "Opslaan" msgid "Don’t save" msgstr "Niet opslaan" msgid "Don’t Save" msgstr "Niet opslaan" msgid "Save as…" msgstr "Opslaan als" msgid "Compile to…" msgstr "Compileren naar..." msgid "Compiled Translation Files" msgstr "Gecompileerde vertaalbestanden" msgid "Export as…" msgstr "Exporteren als..." msgid "HTML Files" msgstr "HTML-bestanden" msgid "Open catalog template" msgstr "Catalogus-sjabloon openen" msgid "Source code not available." msgstr "Broncode niet beschikbaar." msgid "Updating failed" msgstr "Bijwerken mislukt" msgid "" "Translations couldn’t be updated from the source code, because no code was " "found in the location specified in the catalog’s Properties." msgstr "" "De vertalingen konden niet bijgewerkt worden vanuit de broncode, omdat er " "geen code gevonden is op de locatie, opgegeven in de cataloguseigenschappen." msgid "Entries in the catalog are probably incorrect." msgstr "Invoer in de catalogus is waarschijnlijk onjuist." msgid "Updating the catalog failed. Click on 'Details >>' for details." msgstr "" "Bijwerken van de catalogus is mislukt. Klik op ' Details >>' voor meer " "informatie." #, c-format msgid "%d issue with the translation found." msgid_plural "%d issues with the translation found." msgstr[0] "%d probleem gevonden met de vertaling." msgstr[1] "%d problemen gevonden met de vertaling." msgid "Validation results" msgstr "Valideringsresultaten" msgid "" "Entries with errors were marked in red in the list. Details of the error " "will be shown when you select such an entry." msgstr "" "Invoer met fouten is rood gemarkeerd in de lijst. Details van de fout zullen " "weergegeven worden als u zo'n invoer selecteert." msgid "The file was saved safely." msgstr "Het bestand is veilig opgeslagen." msgid "" "The file was saved safely and compiled into the MO format, but it will " "probably not work correctly." msgstr "" "Het bestand is veilig opgeslagen en gecompileerd naar het mo-formaat, maar " "het zal waarschijnlijk niet goed werken." msgid "" "The file was saved safely, but it cannot be compiled into the MO format and " "used." msgstr "" "Het bestand is veilig opgeslagen maar het kan niet gecompileerd worden naar " "het mo-formaat, en dus niet gebruikt worden." msgid "" "The file was compiled into the MO format, but it will probably not work " "correctly." msgstr "" "Het bestand is gecompileerd naar het MO-formaat, maar zal waarschijnlijk " "niet goed werken." msgid "The file cannot be compiled into the MO format and used." msgstr "" "Het bestand kan niet gecompileerd worden naar het MO-formaat en dus niet " "gebruikt." msgid "No problems with the translation found." msgstr "Geen problemen met de vertaling gevonden." #, c-format msgid "The translation is ready for use, but %d entry is not translated yet." msgid_plural "" "The translation is ready for use, but %d entries are not translated yet." msgstr[0] "" "De vertaling is klaar voor gebruik, maar regel %d is nog niet vertaald." msgstr[1] "" "De vertaling is klaar voor gebruik, maar regels %d zijn nog niet vertaald." msgid "The translation is ready for use." msgstr "De vertaling is klaar voor gebruik." #, c-format msgid "Poedit automatically fixed invalid content in the file “%s”." msgstr "" "Poedit heeft automatisch ongeldige content gerepareerd in het bestand '%s'." msgid "" "The file contained duplicate items, which is not allowed in PO files and " "would prevent the file from being used. Poedit fixed the issue, but you " "should review translations of any items marked as needing work and correct " "them if necessary." msgstr "" "Het bestand bevat dubbele items; dat is niet toegestaan in PO-bestanden, " "omdat dit het gebruik van het bestand zou belemmeren. Poedit heeft de fout " "hersteld, maar je moet vertalingen van alle items die als onduidelijk " "gemarkeerd zijn, nakijken en ze zo nodig corrigeren." msgid "Language of the translation isn’t set." msgstr "De taal van de vertaling is niet ingesteld." msgid "Set Language" msgstr "Taal instellen" msgid "Set language" msgstr "Taal instellen" #. TRANSLATORS: This is shown underneath "Language of the translation isn't set (or ...is the same as source language)." msgid "" "Suggestions are not available if the translation language is not set " "correctly. Other features, such as plural forms, may be affected as well." msgstr "" "Suggesties zijn niet beschikbaar als de taal van de vertaling niet juist is " "ingesteld. Dit kan ook invloed hebben op andere functies, zoals " "meervoudsvormen." msgid "Language of the translation is the same as source language." msgstr "Taal van de vertaling is hetzelfde als de brontaal." msgid "Fix Language" msgstr "Taal repareren" msgid "Fix language" msgstr "Taal repareren" msgid "" "This catalog has entries with plural forms, but doesn’t have Plural-Forms " "header configured." msgstr "" "Deze catalogus bevat vermeldingen met meervoudsvormen, maar er is geen " "meervoudsvorm-header voor ingesteld." msgid "" "Entries in this catalog have different plural forms count from what " "catalog’s Plural-Forms header says" msgstr "" "De invoer in deze catalogus heeft een andere meervoudsvorm dan wat er staat " "in de meervoudsvorm-header van de catalogus" msgid "Required header Plural-Forms is missing." msgstr "Vereiste meervoudsvorm-header ontbreekt." #, c-format msgid "Syntax error in Plural-Forms header (\"%s\")." msgstr "Syntaxfout in meervoudsvorm-header ('%s')." msgid "Fix the Header" msgstr "De header repareren" msgid "Fix the header" msgstr "Repareer de header" #. TRANSLATORS: %s is language name in its basic form (as you #. would see e.g. in a list of supported languages). You may need #. to rephrase it, e.g. to an equivalent of "for language %s". #, c-format msgid "Plural forms expression used by the catalog is unusual for %s." msgstr "" "De meervoudsvorm-expressie gebruikt door de catalogus is ongebruikelijk voor " "%s." #. TRANSLATORS: A verb, shown as action button with ""Plural forms expression used by the catalog is unusual for %s.")" msgid "Review" msgstr "Nakijken" #, c-format msgid "Error loading message catalog file “%s”." msgstr "Fout bij het laden van het berichtcatalogusbestand \"%s\"." #, c-format msgid "Translated: %d of %d (%d %%)" msgstr "Vertaald: %d van %d (%d %%)" #, c-format msgid "Remaining: %d" msgstr "Resterend: %d" #, c-format msgid "%d error" msgid_plural "%d errors" msgstr[0] "%d fout" msgstr[1] "%d fouten" #, c-format msgid "%d entry" msgid_plural "%d entries" msgstr[0] "%d woord" msgstr[1] "%d woorden" msgid " (unsaved)" msgstr "(niet-opgeslagen)" msgid " (modified)" msgstr " (gewijzigd)" #, c-format msgid "Failed to update translation memory: %s" msgstr "Bijwerken van vertaalgeheugen mislukt: %s" msgid "Purge deleted translations" msgstr "&Gewiste vertalingen definitief verwijderen" msgid "Do you want to remove all translations that are no longer used?" msgstr "Wilt u alle vertalingen verwijderen die niet langer worden gebruikt?" msgid "" "If you continue with purging, all translations marked as deleted will be " "permanently removed. You will have to translate them again if they are added " "back in the future." msgstr "" "Als u doorgaat met verwijderen zullen alle vertalingen die gemarkeerd staan " "als 'gewist', definitief worden verwijderd. U zult ze dan opnieuw moeten " "vertalen als u ze in de toekomst weer toevoegt." msgid "Keep" msgstr "Behouden" msgid "Purge" msgstr "Definitief verwijderen" msgid "Copy from source text" msgstr "Kopiëren vanuit brontekst" msgid "Copy from Source Text" msgstr "Kopiëren vanuit brontekst" #. TRANSLATORS: This is the key shortcut used in menus on Windows, some languages call them differently #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Ctrl+" msgstr "Ctrl+" msgid "Clear translation" msgstr "Vertaling wissen" msgid "Clear Translation" msgstr "Vertaling wissen" msgid "Edit comment" msgstr "Opmerking bewerken" msgid "Edit Comment" msgstr "Opmerking bewerken" msgid "References:" msgstr "Verwijzingen:" msgid "&Bookmarks" msgstr "&Bladwijzers" #. TRANSLATORS: This is the key shortcut used in menus on Windows, some languages call them differently #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Alt+" msgstr "Alt+" #, c-format msgid "Set bookmark %i" msgstr "Bladwijzer %i instellen" #, c-format msgid "Go to bookmark %i" msgstr "Naar bladwijzer %i gaan" #, c-format msgid "Set Bookmark %i" msgstr "Bladwijzer %i instellen" #, c-format msgid "Go to Bookmark %i" msgstr "Naar bladwijzer %i gaan" msgid "Hide Sidebar" msgstr "Zijbalk verbergen" msgid "Show Sidebar" msgstr "Zijbalk tonen" msgid "Hide Status Bar" msgstr "Statusbalk verbergen" msgid "Show Status Bar" msgstr "Statusbalk weergeven" msgid "Source text:" msgstr "Brontekst:" msgid "Singular:" msgstr "Enkelvoud:" msgid "Plural:" msgstr "Meervoud:" msgid "Translation:" msgstr "Vertaling:" msgid "Pre-translated" msgstr "Vooraf vertaald" msgid "Needs Work" msgstr "Behoeft controle" #. TRANSLATORS: This indicates that the string's translation isn't final #. and has known problems. For example, it might be machine translated or #. fuzzy matched from an older string. The translation should be short and #. convey this. If it's problematic to translate it, "Needs review" is #. acceptable substitute, but note that the meaning is subtly different: #. "needs review" implies that somebody else should review the string after #. I am done with it (i.e. consider it good), while "needs work" implies I #. need to return to it and finish the translation. msgid "Needs work" msgstr "Behoeft controle" msgid "" "POT files are only templates and don’t contain any translations themselves.\n" "To make a translation, create a new PO file based on the template." msgstr "" "POT-bestanden zijn slechts sjablonen en bevatten zelf geen vertalingen.\n" "Maak een nieuw PO-bestand aan op basis van dit sjabloon om een vertaling te " "maken." msgid "Create New Translation" msgstr "Nieuwe vertaling maken" msgid "Create new translation" msgstr "Nieuwe vertaling maken" msgid "Everything" msgstr "Alles" #, c-format msgid "Form %i" msgstr "Vorm %i" msgid "Singular" msgstr "Enkelvoud" msgid "Zero" msgstr "Nul" msgid "One" msgstr "Één" msgid "Two" msgstr "Twee" msgid "Plural" msgstr "Meervoud" msgid "Other" msgstr "Meer" #, c-format msgid "%s Format" msgstr "%s-Formaat" #. TRANSLATORS: %s is replaced with language name, e.g. "PHP" or "C", so "PHP Format" etc." #, c-format msgid "%s format" msgstr "%s-formaat" msgid "Source text" msgstr "Brontekst" #, c-format msgid "Translation — %s" msgstr "Vertaling — %s" msgid "ID" msgstr "ID" #, c-format msgid "Source text — %s" msgstr "Brontekst — %s" msgid "unknown language" msgstr "onbekende taal" #, c-format msgid "Failed command: %s" msgstr "Opdracht mislukt: %s" msgid "Failed to merge gettext catalogs." msgstr "Gettext-catalogi samenvoegen mislukt." msgid "Source file" msgstr "Bronbestand" msgid "Source file occurrence:" msgstr "Vóórkomen van bronbestand:" msgid "Open in Editor" msgstr "Openen in editor" msgid "Open in editor" msgstr "Openen in editor" msgid "No references for the selected item." msgstr "Geen verwijzingen voor het geselecteerde item." #, c-format msgid "Error opening file %s!" msgstr "Fout bij het openen van bestand %s." msgid "Find" msgstr "Zoeken" msgid "Replace" msgstr "Vervangen" #. TRANSLATORS: Expander in Find window for additional options (case sensitive etc.) msgid "Options" msgstr "Opties" msgid "Ignore case" msgstr "Hoofd-/kleine letters negeren" msgid "Wrap around" msgstr "Tekstomloop" msgid "Whole words only" msgstr "Alleen hele woorden" msgid "Find in source texts" msgstr "In bronteksten zoeken" msgid "Find in translations" msgstr "In vertalingen zoeken" msgid "Find in comments" msgstr "In opmerkingen zoeken" msgid "Close" msgstr "Sluiten" msgid "Replace &All" msgstr "&Alles vervangen" msgid "Replace &all" msgstr "&Alles vervangen" msgid "&Replace" msgstr "Ve&rvangen" msgid "< &Previous" msgstr "< &Vorige" msgid "&Next >" msgstr "&Volgende >" msgid "String to find" msgstr "Te zoeken term" msgid "Replacement string" msgstr "Vervangende term" #, c-format msgid "Cannot execute program: %s" msgstr "Programma kan niet uitgevoerd worden: %s" msgid "Language Code or Name (e.g. en_GB)" msgstr "Taalcode of -naam (bijv. nl_NL)" msgid "Translation Language" msgstr "Taal van de vertaling" msgid "Language of the translation:" msgstr "Taal van de vertaling:" msgid "Poedit - Catalogs manager" msgstr "Poedit-catalogusbeheerder" msgid "Catalog" msgstr "Catalogus" msgid "Total" msgstr "Totaal" msgid "Untrans" msgstr "Onvertaald" msgid "Errors" msgstr "Fouten" msgid "Last modified" msgstr "Laatst gewijzigd" msgid "Select directory" msgstr "Map kiezen" msgid "Directories:" msgstr "Mappen:" msgid "" msgstr "" msgid "Do you want to delete the project?" msgstr "Wilt u het project verwijderen?" msgid "Confirmation" msgstr "Bevestiging" msgid "" "Do you really want to do mass update of\n" "all catalogs in this project?" msgstr "" "Wilt u werkelijk alle catalogi in dit\n" "project in één keer bijwerken?" msgid "Information about the translator" msgstr "Informatie over de vertaler" msgid "Name:" msgstr "Naam:" msgid "Your Name" msgstr "Uw naam" msgid "Email:" msgstr "E-mailadres:" msgid "your_email@example.com" msgstr "uw_e-mailadres@voorbeeld.nl" msgid "" "Your name and email address are only used to set the Last-Translator header " "of GNU gettext files." msgstr "" "Uw naam en e-mailadres worden alleen gebruikt om de header 'Laatste-" "Vertaler' van de GNU-gettext-bestanden in te stellen." msgid "Editing" msgstr "Bewerken" msgid "Automatically compile MO file when saving" msgstr "Automatisch het MO-bestand compileren bij het opslaan" msgid "Show summary after catalog update" msgstr "Samenvatting tonen na bijwerken catalogus" msgid "Check spelling" msgstr "Spelling controleren" msgid "Always change focus to text input field" msgstr "Altijd cursor in tekstinvoerveld zetten" msgid "" "Never let the list of strings take focus. If enabled, you must use Ctrl-" "arrows for keyboard navigation but you can also type text immediately, " "without having to press Tab to change focus." msgstr "" "Nooit de lijst met strings als actief venster instellen. Als deze optie " "aanstaat, moet u Ctrl-pijltjestoetsen gebruiken voor de toetsenbord-" "navigatie, maar u kunt ook meteen tekst typen, zonder met de tabtoets het " "actieve venster te hoeven veranderen." msgid "Appearance" msgstr "Weergave" msgid "Use custom list font:" msgstr "Aangepast lettertype voor lijst gebruiken:" msgid "Use custom text fields font:" msgstr "Aangepast lettertype voor tekstvelden gebruiken:" msgid "Change UI language" msgstr "Interface-taal veranderen" #. TRANSLATORS: This is a note appended to "Check spelling" when running on older Windows versions msgid "(requires Windows 8 or newer)" msgstr "(vereist Windows 8 of hoger)" msgid "General" msgstr "Algemeen" msgid "Use translation memory" msgstr "Vertaalgeheugen gebruiken" msgid "Learn From Files…" msgstr "Leren van bestanden..." msgid "Learn from files…" msgstr "Leren van bestanden..." #. TRANSLATORS: This is a button that deletes everything in the translation memory (i.e. clears/resets it). msgid "Reset" msgstr "Resetten" #. TRANSLATORS: Followed by "match translations within the file" or "pre-translate from TM" msgid "When updating from sources" msgstr "Tijdens het bijwerken vanuit bronnen" #. TRANSLATORS: Preceded by "When updating from sources" msgid "fuzzy match within the file" msgstr "onduidelijke overeenkomsten binnen het bestand gebruiken" #. TRANSLATORS: Preceded by "When updating from sources" msgid "pre-translate from TM" msgstr "vooraf-vertaling vanuit het TM gebruiken" msgid "" "Poedit can attempt to fill in new entries from only previous translations in " "the file or from your entire translation memory. Using the TM won’t be very " "effective if it’s near-empty, but it will get better as you add more " "translations to it." msgstr "" "Poedit kan proberen nieuwe invoer alleen vanuit eerdere vertalingen in het " "bestand in te vullen of vanuit het gehele vertaalgeheugen. Het gebruik van " "het TM zal niet erg effectief zijn als het bijna leeg is, maar het zal beter " "worden als u er meer vertalingen aan toevoegt." msgid "Stored translations:" msgstr "Opgeslagen vertalingen:" msgid "Database size on disk:" msgstr "Databasegrootte op schijf:" msgid "Select translation files to import" msgstr "Selecteer de te importeren taalbestanden" msgid "Translation Memory" msgstr "Vertaalgeheugen" msgid "Importing translations…" msgstr "Vertalingen importeren..." msgid "Finalizing…" msgstr "Afronden..." msgid "Reset translation memory" msgstr "Vertaalgeheugen resetten" msgid "Are you sure you want to reset the translation memory?" msgstr "Bent u er zeker van het vertaalgeheugen te resetten?" msgid "" "Resetting the translation memory will irrevocably delete all stored " "translations from it. You can’t undo this operation." msgstr "" "Het resetten van het vertaalgeheugen zal onherroepelijk alle opgeslagen " "vertalingen eruit wissen. U kunt deze actie niet terugdraaien." msgid "Cancel" msgstr "Annuleren" #. TRANSLATORS: This is abbreviation of "Translation Memory" used in Preferences on macOS. #. Long text looks weird there, too short (like TM) too, but less so. "General" is about ideal #. length there. msgid "TM" msgstr "TM" msgid "" "Source code extractors are used to find translatable strings in the source " "code files and extract them so that they can be translated." msgstr "" "Er worden broncode-extractors gebruikt om vertaalbare strings in de broncode-" "bestanden te vinden en extraheren, zodat ze vertaald kunnen worden." msgid "Custom Extractors:" msgstr "Aangepaste extractors:" msgid "Custom extractors:" msgstr "Aangepaste extractors:" msgid "Edit…" msgstr "Bewerken..." msgid "GNU gettext" msgstr "GNU-gettext" msgid "" "Supports all programming languages recognized by GNU gettext tools (PHP, C/C+" "+, C#, Perl, Python, Java, JavaScript and others)." msgstr "" "Ondersteunt alle programmeertalen herkend door GNU-gettext-tools (PHP, C/C+" "+, C#, Perl, Python, Java, JavaScript en andere)." msgid "Delete extractor" msgstr "Extractor verwijderen" #, c-format msgid "Are you sure you want to delete the “%s” extractor?" msgstr "Weet u zeker dat u extractor '%s' wilt verwijderen?" msgid "Extractors" msgstr "Extractors" msgid "Accounts" msgstr "Accounts" msgid "Automatically check for updates" msgstr "Automatisch op updates controleren" msgid "Include beta versions" msgstr "Inclusief bèta-versies" msgid "" "Beta versions contain the latest new features and improvements, but may be a " "bit less stable." msgstr "" "Bèta-versies bevatten de nieuwste functies en verbeteringen, maar kunnen " "iets minder stabiel zijn." msgid "Updates" msgstr "Updates" msgid "" "These settings affect internal formatting of PO files. Adjust them if you " "have specific requirements e.g. because of version control." msgstr "" "Deze instellingen hebben invloed op de interne opmaak van de PO-bestanden. " "Pas ze aan als u specifieke eisen hebt, bijv. vanwege versiecontrole." msgid "Line endings:" msgstr "Regeleindes:" msgid "Unix (recommended)" msgstr "Unix (aanbevolen)" msgid "Windows" msgstr "Windows" #. TRANSLATORS: Followed by text control for entering number; wraps text at given width msgid "Wrap at:" msgstr "Tekstterugloop bij:" msgid "Preserve formatting of existing files" msgstr "Opmaak van bestaande bestanden behouden" msgid "Advanced" msgstr "Geavanceerd" msgid "Pre-translating…" msgstr "Vooraf vertalen…" #, c-format msgid "Pre-translated %u string" msgid_plural "Pre-translated %u strings" msgstr[0] "%u string vooraf vertaald" msgstr[1] "%u strings vooraf vertaald" #. TRANSLATORS: This is a somewhat common term describing the action where #. you apply the translation memory and/or machine translation to all of the #. strings you're translating as the first step, followed by correcting, #. improving etc., i.e. actually translating the strings. This may be tricky #. to express in other languages as simply as in English, but please try to #. keep it similarly concise. Please try to avoid, if possible, describing it #. as "auto-translation" and similar, because such terminology would mislead #. some users into thinking it's all that needs to be done (spoken from #. experience). "Pre-translate" nicely expresses that it's only the step done #. *before* actual translation. msgid "Pre-translate" msgstr "Vooraf vertalen" msgid "Only fill in exact matches" msgstr "Vul alleen exacte overeenkomsten in" msgid "" "By default, inaccurate results are filled in as well and marked as needing " "work. Check this option to only include accurate matches." msgstr "" "Standaard worden onduidelijke resultaten ook ingevuld en voor controle " "gemarkeerd. Vink deze optie aan om alleen nauwkeurige overeenkomsten te " "gebruiken." msgid "Don’t mark exact matches as needing work" msgstr "Exacte overeenkomsten niet markeren ter controle" msgid "" "Only enable if you trust the quality of your TM. By default, all matches " "from the TM are marked as needing work and should be reviewed before use." msgstr "" "Alleen inschakelen als u de kwaliteit van het TM vertrouwt. Standaard worden " "alle overeenkomsten uit het TM gemarkeerd voor controle en moeten ze vóór " "gebruik nagekeken worden." msgid "" "Pre-translation automatically finds exact or fuzzy matches for untranslated " "strings in the translation memory and fills in their translations." msgstr "" "Vooraf-vertaling zoekt automatisch exacte of onduidelijke overeenkomsten " "voor niet-vertaalde tekenreeksen in het vertaalgeheugen en vult hun " "vertalingen in." #, c-format msgid "%d entry was pre-translated." msgid_plural "%d entries were pre-translated." msgstr[0] "%d invoer is vooraf-vertaald." msgstr[1] "%d woorden zijn vooraf-vertaald." msgid "" "The translations were marked as needing work, because they may be " "inaccurate. You should review them for correctness." msgstr "" "De vertalingen zijn gemarkeerd voor controle omdat ze mogelijk onnauwkeurig " "zijn. U dient ze te controleren op juistheid." msgid "No entries could be pre-translated." msgstr "Er kon geen invoer vooraf vertaald worden." msgid "" "The TM doesn’t contain any strings similar to the content of this file. It " "is only effective for semi-automatic translations after Poedit learns enough " "from files that you translated manually." msgstr "" "Het vertaalgeheugen bevat geen strings die gelijk zijn aan de inhoud van dit " "bestand. Het is alleen geschikt voor semi-automatische vertalingen, nadat " "Poedit voldoende geleerd heeft van bestanden die u handmatig vertaald hebt." msgid "" "Drag and Drop Folders Here\n" "\n" "or use the + button" msgstr "" "Sleep mappen hierheen\n" "\n" "of gebruik de knop +" msgid "" "Drag and drop folders here\n" "\n" "or use the + button" msgstr "" "Sleep mappen hierheen\n" "\n" "of gebruik de knop +" msgid "Add Folders…" msgstr "Mappen toevoegen..." msgid "Add folders…" msgstr "Mappen toevoegen..." msgid "Add Files…" msgstr "Bestanden toevoegen..." msgid "Add files…" msgstr "Bestanden toevoegen..." msgid "Add Wildcard…" msgstr "Jokerteken toevoegen..." msgid "Add wildcard…" msgstr "Jokerteken toevoegen..." msgid "Paths" msgstr "Paden" msgid "Excluded paths" msgstr "Uitgesloten paden" msgid "Advanced extraction settings" msgstr "Geavanceerde extractie-instellingen" msgid "Extract notes for translators from:" msgstr "Opmerkingen voor vertalers extraheren uit:" msgid "Comments prefixed with:" msgstr "Opmerkingen voorafgegaan door:" msgid "All comments" msgstr "Alle opmerkingen" msgid "Additional xgettext flags:" msgstr "Aanvullende xgettext-flags:" msgid "Additional keywords" msgstr "Aanvullende zoekwoorden" msgid "Name of the project the translation is for" msgstr "Naam van het project waar de vertaling voor is" msgid "Team name and email address or URL" msgstr "Teamnaam en e-mailadres of URL" msgid "e.g. nplurals=2; plural=(n > 1);" msgstr "bijv. nplurals=2; plural=(n != 1);" msgid "UTF-8 (recommended)" msgstr "UTF-8 (aanbevolen)" msgid "Please save the file first. This section cannot be edited until then." msgstr "" "Sla het bestand eerst op. Deze sectie kan tot dan toe niet bewerkt worden." msgid "Not all plural forms are translated." msgstr "Niet alle meervoudsvormen zijn vertaald." msgid "The translation should start as a sentence." msgstr "De vertaling moet beginnen als een zin." msgid "The translation should start with a lowercase character." msgstr "De vertaling moet beginnen met een kleine letter." msgid "The translation doesn’t start with a space." msgstr "De vertaling begint niet met een spatie." msgid "The translation starts with a space, but the source text doesn’t." msgstr "De vertaling begint met een spatie, maar de brontekst niet." msgid "The translation is missing a newline at the end." msgstr "In de vertaling ontbreekt een regelafbreking aan het eind." msgid "The translation ends with a newline, but the source text doesn’t." msgstr "De vertaling eindigt met een regelafbreking, maar de brontekst niet." msgid "The translation is missing a space at the end." msgstr "In de vertaling ontbreekt een spatie aan het eind." msgid "The translation ends with a space, but the source text doesn’t." msgstr "De vertaling eindigt met een spatie, maar de brontekst niet." #, c-format msgid "The translation should end with “%s”." msgstr "De vertaling moet eindigen met \"%s\"." #, c-format msgid "The translation should not end with “%s”." msgstr "De vertaling mag niet eindigen met \"%s\"." #, c-format msgid "The translation ends with “%s”, but the source text ends with “%s”." msgstr "De vertaling eindigt met \"%s\", maar de brontekst met \"%s\"." msgid "Comment:" msgstr "Opmerking:" msgid "OK" msgstr "Ok" msgid "C&lear" msgstr "&Wissen" msgid "Clear the comment" msgstr "Opmerking wissen" msgid "New" msgstr "Nieuw" msgid "Create new translations project" msgstr "Nieuw vertaalproject maken" msgid "Edit" msgstr "Bewerken" msgid "Edit the project" msgstr "Het project bewerken" msgid "Delete the project" msgstr "Het project verwijderen" msgid "Update all" msgstr "Alles bijwerken" msgid "Update all catalogs in the project" msgstr "Alle catalogi in het project bijwerken" msgid "Edit project" msgstr "Het project bewerken" msgid "Project name:" msgstr "Projectnaam:" msgid "Browse" msgstr "Bladeren" msgid "Add directory to the list" msgstr "Map aan de lijst toevoegen" msgid "&New…" msgstr "&Nieuw..." msgid "New from &POT/PO file…" msgstr "Nieuw vanuit &POT/PO-bestand..." msgid "New From &POT/PO File…" msgstr "Nieuw vanuit &POT/PO-bestand..." msgid "&Open…" msgstr "&Openen..." msgid "Open Recent" msgstr "Recent bestand openen" msgid "Open from Crowdin…" msgstr "Openen vanuit Crowdin..." msgid "Open From Crowdin…" msgstr "Openen vanuit Crowdin..." msgid "&Close" msgstr "&Sluiten" msgid "&Save" msgstr "Op&slaan" msgid "Save &as…" msgstr "Opslaan &als..." msgid "Save &As…" msgstr "Opslaan &als..." msgid "Compile to MO…" msgstr "Naar MO-formaat compileren..." msgid "E&xport as HTML…" msgstr "E&xporteren als html..." msgid "Check for updates…" msgstr "Op updates controleren..." msgid "&Preferences…" msgstr "&Voorkeuren ..." msgid "Catalogs &manager" msgstr "Catalogus&beheerder" msgid "Catalogs &Manager" msgstr "Catalogus&beheerder" msgid "E&xit" msgstr "&Afsluiten" msgid "Quit" msgstr "Afsluiten" msgid "Copy from singular" msgstr "Kopiëren vanuit de enkelvoudsvorm" msgid "Copy From Singular" msgstr "Kopiëren vanuit de enkelvoudsvorm" msgid "Translation needs &work" msgstr "De vertaling behoeft &controle" msgid "Translation Needs &Work" msgstr "De vertaling behoeft &controle" msgid "Edit &comment" msgstr "&Opmerking bewerken" msgid "Edit &Comment" msgstr "&Opmerking bewerken" msgid "Suggestions" msgstr "Suggesties" msgid "&Find…" msgstr "&Zoeken..." msgid "Replace…" msgstr "Vervangen..." msgid "Find next" msgstr "Volgende zoeken" msgid "Find previous" msgstr "Vorige zoeken" msgid "Find and Replace…" msgstr "Zoeken en vervangen..." msgid "Find Next" msgstr "Volgende zoeken" msgid "Find Previous" msgstr "Vorige zoeken" msgid "&Preferences" msgstr "&Voorkeuren" msgid "Display entry &IDs" msgstr "Invoer-&ID's weergeven" msgid "Display Entry &IDs" msgstr "Invoer-&ID's weergeven" msgid "Sort by &file order" msgstr "Sorteren op bestands&volgorde" msgid "Sort by &File Order" msgstr "Sorteren op bestands&volgorde" msgid "Sort by &source" msgstr "Sorteren op &bron" msgid "Sort by &Source" msgstr "Sorteren op &bron" msgid "Sort by &translation" msgstr "Sorteren op ver&taling" msgid "Sort by &Translation" msgstr "Sorteren op ver&taling" msgid "&Group by context" msgstr "&Groeperen naar context" msgid "&Group By Context" msgstr "&Groeperen naar context" msgid "Entries with errors first" msgstr "Invoer met fouten eerst" msgid "Entries with Errors First" msgstr "Invoer met fouten eerst" msgid "&Untranslated entries first" msgstr "&Onvertaalde invoer eerst" msgid "&Untranslated Entries First" msgstr "&Onvertaalde invoer eerst" msgid "&Show references" msgstr "&Verwijzingen weergeven" msgid "&Show References" msgstr "&Verwijzingen weergeven" msgid "Show sidebar" msgstr "Zijbalk tonen" msgid "Show status bar" msgstr "Statusbalk tonen" msgid "C&atalog" msgstr "C&atalogus" msgid "&Update from sources" msgstr "Bij&werken vanuit de bronteksten" msgid "&Update from Sources" msgstr "Bij&werken vanuit de bronteksten" msgid "Update from &POT file…" msgstr "Bijwerken vanuit &POT-bestand..." msgid "Update from &POT File…" msgstr "Bijwerken vanuit &POT-bestand..." msgid "Sync with Crowdin" msgstr "Synchroniseren met Crowdin" msgid "Pre-&translate…" msgstr "Vooraf-ver&talen..." msgid "&Purge deleted translations" msgstr "&Gewiste vertalingen definitief verwijderen" msgid "&Purge Deleted Translations" msgstr "&Gewiste vertalingen definitief verwijderen" msgid "&Validate translations" msgstr "Vertalingen &valideren" msgid "&Validate Translations" msgstr "Vertalingen &valideren" msgid "&Properties…" msgstr "Eigenscha&ppen..." msgid "&Done and next" msgstr "&Klaar en volgende" msgid "&Done and Next" msgstr "&Klaar en volgende" msgid "&Previous translation" msgstr "&Vorige vertaling" msgid "&Previous Translation" msgstr "&Vorige vertaling" msgid "&Next translation" msgstr "&Volgende vertaling" msgid "&Next Translation" msgstr "&Volgende vertaling" msgid "P&revious unfinished" msgstr "Vo&rige onvoltooide" msgid "P&revious Unfinished" msgstr "Vo&rige onvoltooide" msgid "Ne&xt unfinished" msgstr "&Volgende onvoltooide" msgid "Ne&xt Unfinished" msgstr "&Volgende onvoltooide" msgid "Previous plural form" msgstr "Vorige meervoudsvorm" msgid "Previous Plural Form" msgstr "Vorige meervoudsvorm" msgid "Next plural form" msgstr "Volgende meervoudsvorm" msgid "Next Plural Form" msgstr "Volgende meervoudsvorm" msgid "&Online help" msgstr "Online-&hulp" msgid "&Online Help" msgstr "Online-hulp" msgid "&GNU gettext manual" msgstr "&GNU-gettext-handleiding" msgid "&GNU gettext Manual" msgstr "&GNU-gettext-handleiding" msgid "&About Poedit" msgstr "&Over Poedit" msgid "&About" msgstr "&Over" msgid "Extractor setup" msgstr "Instellen extractor" msgid "List of extensions separated by semicolons (e.g. *.cpp;*.h):" msgstr "Lijst met extensies, gescheiden door puntkomma's (bijv. *.cpp; *.h):" msgid "Invocation:" msgstr "Aanroep:" msgid "Command to extract translations:" msgstr "Commando om vertalingen te extraheren:" msgid "" "This is the command used to launch the extractor.\n" "%o expands to the name of output file, %K to list\n" "of keywords, %F to list of input files,\n" "%C to charset flag (see below)." msgstr "" "Dit is het commando dat gebruikt wordt om de extractor te starten.\n" "%o pakt uit naar de naam van het uitvoerbestand, %K naar de lijst\n" " van sleutelwoorden, %F naar de lijst van invoervelden,\n" "%C naar de karakterset-vlag (zie hieronder)." msgid "An item in keywords list:" msgstr "Een item in de trefwoordenlijst:" msgid "" "This will be attached to the command line once\n" "for each keyword. %k expands to the keyword." msgstr "" "Dit wordt voor elk trefwoord aan de opdrachtregel \n" " toegevoegd. %k wordt vervangen door het trefwoord." msgid "An item in input files list:" msgstr "Een item in de lijst van invoerbestanden:" #, c-format msgid "" "This will be attached to the command line once\n" "for each input file. %f expands to the filename." msgstr "" "Dit wordt voor elk invoerbestand \n" " aan de opdrachtregel toegevoegd. %f wordt vervangen door de bestandsnaam." msgid "Source code charset:" msgstr "Broncode-tekenset:" #, c-format msgid "" "This will be attached to the command line\n" "only if source code charset was given. %c expands to charset value." msgstr "" "Dit wordt alleen aan de opdrachtregel toegevoegd als de bron-tekenset \n" "is opgegeven. %c wordt uitgebreid tot de tekensetwaarde." msgid "Catalog properties" msgstr "Cataloguseigenschappen" msgid "Project name and version:" msgstr "Projectnaam en -versie:" msgid "Language team:" msgstr "Taalteam:" msgid "Plural forms:" msgstr "Meervoudsvormen:" msgid "Use default rules for this language" msgstr "Standaardregels voor deze taal gebruiken" msgid "Use custom expression" msgstr "Aangepaste expressie gebruiken" msgid "Learn about plural forms" msgstr "Meer informatie over meervoudsvormen" msgid "Charset:" msgstr "Tekenset:" msgid "Advanced Extraction Settings…" msgstr "Geavanceerde extractie-instellingen..." msgid "Advanced extraction settings…" msgstr "Geavanceerde extractie-instellingen..." msgid "Translation Properties" msgstr "Eigenschappen van de vertaling" msgid "Translation properties" msgstr "Eigenschappen van vertaling" msgid "Sources Paths" msgstr "Bronpaden" msgid "Sources paths" msgstr "Bronpaden" msgid "Extract text from source files in the following directories:" msgstr "Extraheer tekst uit de bronbestanden in de volgende mappen:" msgid "Base path:" msgstr "Root-pad:" msgid "Sources Keywords" msgstr "Trefwoorden van de bronnen" msgid "Sources keywords" msgstr "Trefwoorden van bronnen" msgid "" "Use these keywords (function names) to recognize translatable strings\n" "in source files:" msgstr "" "Gebruik deze trefwoorden (functienamen) om vertaalbare strings in\n" "bronbestanden te herkennen:" msgid "Also use default keywords for supported languages" msgstr "Gebruik ook standaardtrefwoorden voor ondersteunde talen" msgid "Learn About Gettext Keywords" msgstr "Meer informatie over Gettext-trefwoorden" msgid "Learn about gettext keywords" msgstr "Meer informatie over gettext-trefwoorden" msgid "Update summary" msgstr "Samenvatting van de update" msgid "" "These strings were found in the sources but were not in the catalog.\n" "Poedit will add them to the catalog now." msgstr "" "Deze strings zijn in de broncode gevonden, maar stonden niet in de " "catalogus.\n" "Poedit zal ze nu aan de catalogus toevoegen." msgid "New strings" msgstr "Nieuwe strings" msgid "" "These strings are no longer in the sources.\n" "Poedit will remove them from the catalog now." msgstr "" "Deze strings staan niet meer in de broncode.\n" "Poedit zal ze nu uit de catalogus verwijderen." msgid "Obsolete strings" msgstr "Verouderde strings" msgid "(0 new, 0 obsolete)" msgstr "(0 nieuw, 0 verouderd)" msgid "Open" msgstr "Openen" msgid "Save catalog" msgstr "Catalogus opslaan" msgid "Validate" msgstr "Valideren" msgid "Check for errors in the translation" msgstr "De vertaling op fouten controleren" msgid "Update" msgstr "Bijwerken" msgid "Update catalog - synchronize it with sources" msgstr "Catalogus bijwerken - synchroniseren met de bronnen" msgid "Sidebar" msgstr "Zijbalk" msgid "Show or hide the sidebar" msgstr "De zijbalk weergeven of verbergen" #. TRANSLATORS: "Previous" as in used in the past, now replaced with newer. msgid "Previous source text:" msgstr "Vorige brontekst:" msgid "" "The old source text (before it changed during an update) that the now-" "inaccurate translation corresponds to." msgstr "" "De oude brontekst (voordat hij gewijzigd werd tijdens een update) waar de nu " "onnauwkeurige vertaling mee correspondeert." msgid "Notes for translators:" msgstr "Opmerkingen voor vertalers:" msgid "Add comment" msgstr "Opmerking toevoegen" msgid "Add Comment" msgstr "Opmerking toevoegen" msgid "Translation suggestions:" msgstr "Vertaalsuggesties:" #. TRANSLATORS: This is shown when no translation suggestions can be found in the TM (Windows). msgid "No matches found" msgstr "Geen overeenkomsten gevonden" #. TRANSLATORS: This is shown when no translation suggestions can be found in the TM (macOS, Linux). msgid "No Matches Found" msgstr "Geen overeenkomsten gevonden" msgid "This string was found in Poedit’s translation memory." msgstr "Deze tekenreeks is gevonden in het vertaalgeheugen van Poedit." msgid "Cannot create temporary directory." msgstr "Tijdelijke map maken niet mogelijk." msgid "Welcome to Poedit" msgstr "Welkom bij Poedit" #. TRANSLATORS: This is version information in about dialog, "%s" will be #. version number when used #, c-format msgid "Version %s" msgstr "Versie %s" msgid "Edit a Translation" msgstr "Een vertaling bewerken" msgid "Edit a translation" msgstr "Een vertaling bewerken" msgid "Open an existing PO file and edit the translation." msgstr "Een bestaand PO-bestand openen en de vertaling bewerken." msgid "" "Take an existing PO file or POT template and create a new translation from " "it." msgstr "" "Neem een bestaand PO-bestand of POT-sjabloon en maak er een nieuwe vertaling " "van." msgid "Collaborate on a Translation with Others" msgstr "Samenwerken met anderen aan een vertaling" msgid "Collaborate on a translation with others" msgstr "Samenwerken met anderen aan een vertaling" msgid "" "Download a file from Crowdin project, translate and sync your changes back." msgstr "" "Download een bestand van een Crowdin-project, vertaal het en synchroniseer " "de wijzigingen terug." msgid "What is Crowdin?" msgstr "Wat is Crowdin?" msgid "There are no translations. That’s unusual." msgstr "Er zijn geen vertalingen. Dat is ongebruikelijk." msgid "" "Translatable entries aren’t added manually in the Gettext system, but are " "automatically extracted\n" "from source code. This way, they stay up to date and accurate.\n" "Translators typically use PO template files (POTs) prepared for them by the " "developer." msgstr "" "Vertaalbare invoer wordt niet handmatig aan het Gettext-systeem toegevoegd, " "maar automatisch geëxtraheerd\n" "uit de broncode. Op deze manier blijven ze up-to-date en accuraat.\n" "Vertalers gebruiken meestal PO-sjabloonbestanden (POT's) die de ontwikkelaar " "voor hen gemaakt heeft." msgid "(Learn more about GNU gettext)" msgstr "(Meer te weten komen over GNU-gettext)" msgid "The simplest way to fill this catalog is to update it from a POT:" msgstr "" "De eenvoudigste manier om deze catalogus aan te vullen is door hem bij te " "werken vanuit een POT-bestand:" msgid "Update from POT" msgstr "Bijwerken vanuit POT-bestand" msgid "Take translatable strings from an existing POT template." msgstr "Vertaalbare strings uit een bestaand POT-sjabloon halen." msgid "" "You can also extract translatable strings directly from the source code:" msgstr "" "U kunt ook vertaalbare strings rechtstreeks extraheren uit de broncode:" msgid "Extract from sources" msgstr "Extraheren uit broncode" msgid "Configure source code extraction in Properties." msgstr "Configureer broncode-extractie in 'Eigenschappen'." msgid "Sync" msgstr "Synchroniseren" msgid "Synchronize the translation with Crowdin" msgstr "De vertaling met Crowdin synchroniseren" #. TRANSLATORS: This is titlebar of about dialog, "%s" is application name #. ("Poedit" here, but please use "%s") #, c-format msgid "About %s" msgstr "Over %s" #. TRANSLATORS: Title of the preferences window on Windows and Linux. "%s" is replaced with "Poedit" when running. #, c-format msgid "%s Preferences" msgstr "%s-voorkeuren" #. TRANSLATORS: macOS item in app menu msgid "Services" msgstr "Services" #. TRANSLATORS: macOS item in app menu, %s is replaced with "Poedit" #, c-format msgid "Hide %s" msgstr "Verberg %s" #. TRANSLATORS: macOS item in app menu msgid "Hide Others" msgstr "Verberg andere" #. TRANSLATORS: macOS item in app menu msgid "Show All" msgstr "Toon alles" #. TRANSLATORS: macOS item in app menu, %s is replaced with "Poedit" #, c-format msgid "Quit %s" msgstr "Stoppen met %s" #. TRANSLATORS: macOS item in app menu msgid "Preferences…" msgstr "Voorkeuren..." msgid "Preferences..." msgstr "Voorkeuren..." #. TRANSLATORS: Title of a category in Windows task menu (right-click icon in taskbar) msgid "Recent" msgstr "Recente" #. TRANSLATORS: Title of a category in Windows task menu (right-click icon in taskbar) msgid "Frequent" msgstr "Frequente" msgid "&Apply" msgstr "&Toepassen" msgid "Apply" msgstr "Toepassen" msgid "&Back" msgstr "&Terug" msgid "Back" msgstr "Terug" msgid "&Cancel" msgstr "&Annuleren" msgid "&Clear" msgstr "&Wissen" msgid "Clear" msgstr "Wissen" msgid "Copy" msgstr "Kopiëren" msgid "Cu&t" msgstr "Kni&ppen" msgid "Cut" msgstr "Knippen" msgid "&Delete" msgstr "&Verwijderen" msgid "&Quit" msgstr "&Afsluiten" msgid "File" msgstr "Bestand" msgid "Help" msgstr "Hulp" msgid "&New" msgstr "&Nieuw" msgid "&No" msgstr "&Nee" msgid "No" msgstr "Nee" msgid "&OK" msgstr "&Ok" msgid "Open…" msgstr "Openen..." msgid "&Open..." msgstr "&Openen..." msgid "Open..." msgstr "Openen..." msgid "&Paste" msgstr "&Plakken" msgid "Paste" msgstr "Plakken" msgid "Preferences" msgstr "Voorkeuren" msgid "&Redo" msgstr "Opnie&uw doen" msgid "Refresh" msgstr "Vernieuwen" msgid "&Save as" msgstr "&Opslaan als" msgid "Save as" msgstr "Opslaan als" msgid "Select &All" msgstr "&Alles selecteren" msgid "Select All" msgstr "Alles selecteren" msgid "&Undo" msgstr "&Ongedaan maken" msgid "&Yes" msgstr "&Ja" msgid "Yes" msgstr "Ja" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Shift+" msgstr "Shift+" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Enter" msgstr "Enter" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Up" msgstr "Omhoog" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Down" msgstr "Omlaag" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Left" msgstr "Links" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Right" msgstr "Rechts" #. TRANSLATORS: Keyboard shortcut, must correspond to translation of "Ctrl+" msgid "ctrl" msgstr "ctrl" #. TRANSLATORS: Keyboard shortcut, must correspond to translation of "Alt+" msgid "alt" msgstr "alt" #. TRANSLATORS: Keyboard shortcut, must correspond to translation of "Shift+" msgid "shift" msgstr "shift" poedit-2.0.6/locales/nb.po0000664000372000037200000014723213230131554012313 00000000000000msgid "" msgstr "" "Project-Id-Version: poedit\n" "Report-Msgid-Bugs-To: help@poedit.net\n" "POT-Creation-Date: 2017-12-05 15:52+0100\n" "PO-Revision-Date: 2017-12-05 09:51-0500\n" "Last-Translator: vslavik \n" "Language-Team: Norwegian Bokmal\n" "Language: nb_NO\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: crowdin.com\n" "X-Crowdin-Project: poedit\n" "X-Crowdin-Language: nb\n" "X-Crowdin-File: /locales/poedit.pot\n" msgid "Hide this notification message" msgstr "Skjul denne meldingen" msgid "Don’t Show Again" msgstr "Ikke vis igjen" msgid "Don’t show again" msgstr "Ikke vis igjen" #, c-format msgid "(New: %i, obsolete: %i)" msgstr "(Ny: %i, foreldet: %i)" msgid "Updating catalog" msgstr "Oppdaterer katalog" msgid "Collecting source files…" msgstr "Samler kildefilene…" msgid "Extracting translatable strings…" msgstr "Trekker ut oversettbare tekst-strenger…" msgid "Failed to load extracted catalog." msgstr "Klarte ikke laste utpakket katalog." msgid "Merging differences…" msgstr "Fletter forskjellene…" #, c-format msgid "“%s” is not a valid POT file." msgstr "«%s» er ikke en gyldig POT-fil." #, c-format msgid "%i line of file “%s” was not loaded correctly." msgid_plural "%i lines of file “%s” were not loaded correctly." msgstr[0] "linje %i i filen '%s' ble ikke riktig lastet inn." msgstr[1] "linjene %i i filen '%s' ble ikke riktig lastet inn." #, c-format msgid "Line %d of file “%s” is corrupted (not valid %s data)." msgstr "Linje %d i filen \"%s\" er korrupt (ugyldig %s data)." #, c-format msgid "Malformed header: “%s”" msgstr "Misformet topptekst: \"%s\"" msgid "" "Broken catalog file: singular form msgstr used together with msgid_plural" msgstr "Ødelagt katalogfil: entallsform msgstr brukt sammen med msgid_plural" msgid "Broken catalog file: plural form msgstr used without msgid_plural" msgstr "Ødelagt katalogfil: flertallsform msgstr brukt uten msgid_plural" msgid "" "There were errors when loading the catalog. Some data may be missing or " "corrupted as the result." msgstr "" "Det oppstod feil ved lasting av denne katalogen. Som et resultat kan noe " "data mangle eller være ødelagt." #, c-format msgid "Couldn’t load file %s, it is probably corrupted." msgstr "Kunne ikke laste filen %s. Den er mest sannsynlig korrupt." #, c-format msgid "" "File “%s” is read-only and cannot be saved.\n" "Please save it under different name." msgstr "" "Filen \"%s\" er skrivebeskyttet og kan ikke lagres.\n" "Vennligst lagre filen under et annet navn." #, c-format msgid "Couldn’t save file %s." msgstr "Kunne ikke lagre fil %s." msgid "" "There was a problem formatting the file nicely (but it was saved all right)." msgstr "" "Det oppstod et problem med å formatere filen på pent vis (men den ble lagret " "OK)." #, c-format msgid "" "The catalog couldn’t be saved in “%s” charset as specified in catalog " "settings.\n" "\n" "It was saved in UTF-8 instead and the setting was modified accordingly." msgstr "" "Katalogen kan ikke lagres i \"%s\"-tegnsettet som angitt i innstillingene " "for mappen.\n" "\n" "Den ble lagret i UTF-8-tegnsettet istedenfor og innstillingene for mappen " "ble endret tilsvarende." msgid "Error saving catalog" msgstr "Feil ved lagring av katalog" msgid "PO Translation Files" msgstr "PO oversettelsesfiler" msgid "POT Translation Templates" msgstr "POT Oversettelsesmaler" msgid "All Translation Files" msgstr "Alle oversettelsesfiler" msgid "(Use default language)" msgstr "(Bruk standard språk)" msgid "Select your preferred language" msgstr "Velg foretrukket språk" msgid "Language selection" msgstr "Språkvalg" msgid "You must restart Poedit for this change to take effect." msgstr "Du må starte Poedit på nytt for å bruke disse endringene" msgid "Syncing" msgstr "Synkroniserer" #. TRANSLATORS: %s is a cloud destination, e.g. "Crowdin" or ftp.wordpress.com etc. #, c-format msgid "Syncing with %s…" msgstr "Synkroniserer med %s…" #. TRANSLATORS: %s is a cloud destination, e.g. "Crowdin" or ftp.wordpress.com etc. #, c-format msgid "Syncing with %s failed." msgstr "Synkronisering med %s feilet." msgid "Syncing error" msgstr "Synkronseringsfeil" msgid "Downloading translations is disabled in this project." msgstr "Nedlasting av oversettelser er deaktivert i dette prosjektet." msgid "Not authorized, please sign in again." msgstr "Ikke autorisert, vennligst logg inn igjen." msgid "" "Crowdin is an online localization management platform and collaborative " "translation tool. Poedit can seamlessly sync PO files managed at Crowdin." msgstr "" "Crowdin er en plattform for lokaliseringsbehandling og et samarbeidende " "oversettelsesverktøy på nett. Poedit kan sømløst synkronisere PO-filer som " "håndteres på Crowdin." msgid "Sign In" msgstr "Logg inn" msgid "Sign in" msgstr "Logg inn" msgid "Sign Out" msgstr "Logg ut" msgid "Sign out" msgstr "Logg ut" msgid "Waiting for authentication…" msgstr "Venter på godkjenning..." msgid "Updating user information…" msgstr "Oppdaterer brukerinformasjon..." msgid "Signed in as:" msgstr "Pålogget som:" msgid "Learn More About Crowdin" msgstr "Lær mer om Crowdin" msgid "Learn more about Crowdin" msgstr "Lær mer om Crowdin" msgid "Sign in to Crowdin" msgstr "Logg inn på Crowdin" msgid "Open Crowdin translation" msgstr "Åpne Crowdin-oversettelse" msgid "Project:" msgstr "Prosjekt:" msgid "Language:" msgstr "Språk:" msgid "File:" msgstr "Fil:" msgid "No translation projects listed in your Crowdin account." msgstr "Ingen oversettelsesprosjekter er listet i din Crowdin-konto." msgid "This project has no files that can be translated in Poedit." msgstr "Dette prosjektet har ingen filer som kan oversettes i Poedit." msgid "This file can only be edited in Crowdin’s web interface." msgstr "Denne filen kan kun redigeres i Crowdin sitt web-grensesnitt." msgid "Downloading latest translations…" msgstr "Laster ned nyeste oversettelser..." msgid "Syncing with Crowdin failed." msgstr "Synkronisering med Crowdin mislyktes." msgid "Crowdin error" msgstr "Crowdin-feil" msgid "Uploading translations…" msgstr "Laster opp oversettelser..." msgid "&Copy" msgstr "Kopier" msgid "Learn more" msgstr "Lær mer" msgid "Learn More" msgstr "Lær mer" msgid "&Help" msgstr "&Hjelp" msgid "MO files can’t be directly edited in Poedit." msgstr "MO-filer kan ikke redigeres direkte i Poedit." msgid "Error opening file" msgstr "Feil under åpning av filen" msgid "" "Please open and edit the corresponding PO file instead. When you save it, " "the MO file will be updated as well." msgstr "" "Vennligst åpne og rediger den tilsvarende PO-filen i stedet. Når du lagrer " "den, oppdateres MO-filen også." msgid "don’t delete temporary files (for debugging)" msgstr "ikke slett midlertidige filer (for feilsøking)" msgid "handle a poedit:// URI" msgstr "håndter en poedit://-URI" msgid "go to item at given line number" msgstr "gå til elementet på gitt linjenummer" msgid "Failed to communicate with Poedit process." msgstr "Kunne ikke kommunisere med Poedit-prosessen." #, c-format msgid "Unhandled exception occurred: %s" msgstr "Ubehandlet unntak oppstod: %s" msgid "Open catalog" msgstr "Åpne katalog" #, c-format msgid "File “%s” doesn’t exist." msgstr "Filen \"%s\" finnes ikke." msgid "Poedit is an easy to use translations editor." msgstr "" "Poedit er et redigeringsprogram for oversettelser som er enkelt å bruke." msgid "Catalogs Manager" msgstr "Katalogbehandling" msgid "Check for Updates…" msgstr "Se etter oppdateringer…" msgid "&Edit" msgstr "&Rediger" msgid "Undo" msgstr "Angre" msgid "Redo" msgstr "Gjør om" msgid "Paste and Match Style" msgstr "Lim og samsvar med stil" msgid "Delete" msgstr "Slett" msgid "Spelling and Grammar" msgstr "Stavekontroll og grammatikk" msgid "Show Spelling and Grammar" msgstr "Vis stavekontroll og grammatikk" msgid "Check Document Now" msgstr "Sjekk dokumentet nå" msgid "Check Spelling While Typing" msgstr "Stavekontroll mens du skriver" msgid "Check Grammar With Spelling" msgstr "Kontroller grammatikk i stavekontrollen" msgid "Correct Spelling Automatically" msgstr "Korrigere stavefeil automatisk" msgid "Substitutions" msgstr "Erstatninger" msgid "Show Substitutions" msgstr "Vis erstatninger" msgid "Smart Copy/Paste" msgstr "Enkel Kopiering/Lim inn" msgid "Smart Quotes" msgstr "Apostrof" msgid "Smart Dashes" msgstr "Enkle punkter" msgid "Smart Links" msgstr "Enkle lenker" msgid "Text Replacement" msgstr "Teksterstatning" msgid "Transformations" msgstr "Transformasjoner" msgid "Make Upper Case" msgstr "Gjør om til store bokstaver" msgid "Make Lower Case" msgstr "Gjør om til små bokstaver" msgid "Capitalize" msgstr "Stor forbokstav" msgid "Speech" msgstr "Tale" msgid "Start Speaking" msgstr "Begynn å snakke" msgid "Stop Speaking" msgstr "Slutt å snakke" msgid "&View" msgstr "&Vis" msgid "Enter Full Screen" msgstr "Gå til fullskjerm" msgid "Window" msgstr "Vindu" msgid "Minimize" msgstr "Minimer" msgid "Zoom" msgstr "Zoom" msgid "Bring All to Front" msgstr "Plasser fremst" #. TRANSLATORS:File kind displayed in Finder/Explorer msgid "PO Translation" msgstr "PO-oversettelse" msgid "The file cannot be opened." msgstr "Filen kunne ikke åpnes." msgid "Invalid file" msgstr "Ugyldig fil" msgid "" "The file may be either corrupted or in a format not recognized by Poedit." msgstr "" "Filen kan være skadet eller i et format som ikke gjenkjennes av Poedit." msgid "You can’t drop more than one file on Poedit window." msgstr "Du kan ikke dra mer enn én fil inn i Poedit-vinduet." #, c-format msgid "File “%s” is not a message catalog." msgstr "Filen \"%s\" er ikke en meldings-katalog." msgid "Poedit" msgstr "Poedit" msgid "&File" msgstr "&Fil" msgid "&Go" msgstr "&Gå" #. TRANSLATORS: %s is language name in its basic form (as you #. would see e.g. in a list of supported languages). You may need #. to rephrase it, e.g. to an equivalent of "for language %s". #, c-format msgid "" "Spellchecking is disabled, because the dictionary for %s isn’t installed." msgstr "Stavekontroll er deaktivert fordi ordlisten for %s ikke er installert." msgid "Install" msgstr "Installer" msgid "Catalog modified. Do you want to save changes?" msgstr "Katalogen er endret. Vil du lagre endringene?" msgid "Save changes" msgstr "Lagre endringer" msgid "Your changes will be lost if you don’t save them." msgstr "Dine endringer vil gå tapt hvis du ikke lagrer dem." msgid "Save" msgstr "Lagre" msgid "Don’t save" msgstr "Ikke lagre" msgid "Don’t Save" msgstr "Ikke lagre" msgid "Save as…" msgstr "Lagre som…" msgid "Compile to…" msgstr "Kompiler til…" msgid "Compiled Translation Files" msgstr "Kompilerte oversettelsesfiler" msgid "Export as…" msgstr "Eksporter som…" msgid "HTML Files" msgstr "HTML-filer" msgid "Open catalog template" msgstr "Åpne katalogmal" msgid "Source code not available." msgstr "Kildekode er ikke tilgjengelig." msgid "Updating failed" msgstr "Oppdatering mislyktes" msgid "" "Translations couldn’t be updated from the source code, because no code was " "found in the location specified in the catalog’s Properties." msgstr "" "Oversettelser kunne ikke oppdateres fra kildekoden fordi det ikke fantes " "noen kode på plasseringen spesifisert i katalogens egenskaper." msgid "Entries in the catalog are probably incorrect." msgstr "Oppføringene i katalogen er sannsynligvis ikke i orden." msgid "Updating the catalog failed. Click on 'Details >>' for details." msgstr "" "Oppdatering av katalog mislyktes. Klikk på \"Detaljer >>' for detaljer." #, c-format msgid "%d issue with the translation found." msgid_plural "%d issues with the translation found." msgstr[0] "%d problem med oversettelsen funnet." msgstr[1] "%d problemer med oversettelsen funnet." msgid "Validation results" msgstr "Resultater av validering" msgid "" "Entries with errors were marked in red in the list. Details of the error " "will be shown when you select such an entry." msgstr "" "Oppføringer med feil ble markert med rødt i listen. Detaljer om feilen vises " "når du velger en sådan oppføring." msgid "The file was saved safely." msgstr "Filen ble trygt lagret." msgid "" "The file was saved safely and compiled into the MO format, but it will " "probably not work correctly." msgstr "" "Filen ble trygt lagret og kompilert i MO-format, men vil sannsynligvis ikke " "fungere riktig." msgid "" "The file was saved safely, but it cannot be compiled into the MO format and " "used." msgstr "" "Filen ble trygt lagret, men kunne ikke bli kompilert i MO-format og brukes." msgid "" "The file was compiled into the MO format, but it will probably not work " "correctly." msgstr "" "Filen ble kompilert i MO-format, men vil sannsynligvis ikke fungere riktig." msgid "The file cannot be compiled into the MO format and used." msgstr "Filen kunne ikke kompileres inn i MO-formatet og brukes." msgid "No problems with the translation found." msgstr "Ingen problemer med oversettelsen funnet." #, c-format msgid "The translation is ready for use, but %d entry is not translated yet." msgid_plural "" "The translation is ready for use, but %d entries are not translated yet." msgstr[0] "" "Oversettelsen er klar til bruk, men %d oppføringen er ikke oversatt enda." msgstr[1] "" "Oversettelsen er klar til bruk, men %d strenger er ikke oversatt enda." msgid "The translation is ready for use." msgstr "Oversettelsen er klar til bruk." #, c-format msgid "Poedit automatically fixed invalid content in the file “%s”." msgstr "Poedit rettet automatisk opp ugyldig innhold i filen “%s”." msgid "" "The file contained duplicate items, which is not allowed in PO files and " "would prevent the file from being used. Poedit fixed the issue, but you " "should review translations of any items marked as needing work and correct " "them if necessary." msgstr "" "Filen inneholder dupliserte elementer, som ikke er tillatt i PO-filer og vil " "hindre at filen blir brukt. Poedit har løst problemet, men du bør vurdere " "oversettelser av alle elementer merket med \"Trenger arbeid\" og rette dem " "om nødvendig." msgid "Language of the translation isn’t set." msgstr "Språket for oversettelsen er ikke satt." msgid "Set Language" msgstr "Angi språk" msgid "Set language" msgstr "Angi språk" #. TRANSLATORS: This is shown underneath "Language of the translation isn't set (or ...is the same as source language)." msgid "" "Suggestions are not available if the translation language is not set " "correctly. Other features, such as plural forms, may be affected as well." msgstr "" "Forslag er ikke tilgjengelig hvis oversettelsespråket ikke er riktig angitt. " "Andre funksjoner, for eksempel flertallsformer, påvirkes også." msgid "Language of the translation is the same as source language." msgstr "Språket i oversettelsen er det samme som kildespråket." msgid "Fix Language" msgstr "Rett opp språk" msgid "Fix language" msgstr "Rett opp språk" msgid "" "This catalog has entries with plural forms, but doesn’t have Plural-Forms " "header configured." msgstr "" "Denne mappen har oppføringer med flertallsformer, men har ikke satt opp et " "hode med flertallsformer." msgid "" "Entries in this catalog have different plural forms count from what " "catalog’s Plural-Forms header says" msgstr "" "Oppføringer i denne katalogen har forskjellige flertallsformer enn hva hodet " "i mappens flertallsformer tilsier" msgid "Required header Plural-Forms is missing." msgstr "Den påkrevde prefiksen Plural-Forms mangler." #, c-format msgid "Syntax error in Plural-Forms header (\"%s\")." msgstr "Syntaksfeil i prefiksen Plural-Forms (\"%s\")." msgid "Fix the Header" msgstr "Reparer prefiksen" msgid "Fix the header" msgstr "Reparer prefiksen" #. TRANSLATORS: %s is language name in its basic form (as you #. would see e.g. in a list of supported languages). You may need #. to rephrase it, e.g. to an equivalent of "for language %s". #, c-format msgid "Plural forms expression used by the catalog is unusual for %s." msgstr "Flertallsformuttrykket som brukes av katalogen er uvanlig for %s." #. TRANSLATORS: A verb, shown as action button with ""Plural forms expression used by the catalog is unusual for %s.")" msgid "Review" msgstr "Gjennomgang" #, c-format msgid "Error loading message catalog file “%s”." msgstr "Feil under lasting av meldingskatalogfilen \"%s\"." #, c-format msgid "Translated: %d of %d (%d %%)" msgstr "Oversatt: %d av %d (%d %%)" #, c-format msgid "Remaining: %d" msgstr "Gjenstår: %d" #, c-format msgid "%d error" msgid_plural "%d errors" msgstr[0] "%d feil" msgstr[1] "%d feil" #, c-format msgid "%d entry" msgid_plural "%d entries" msgstr[0] "%d oppføring" msgstr[1] "%d oppføringer" msgid " (unsaved)" msgstr " (ulagret)" msgid " (modified)" msgstr " (endret)" #, c-format msgid "Failed to update translation memory: %s" msgstr "Kan ikke oppdatere oversettingsminnet: %s" msgid "Purge deleted translations" msgstr "Fjern slettede oversettelser" msgid "Do you want to remove all translations that are no longer used?" msgstr "Vil du fjerne alle oversettelser som ikke lenger brukes?" msgid "" "If you continue with purging, all translations marked as deleted will be " "permanently removed. You will have to translate them again if they are added " "back in the future." msgstr "" "Hvis du fortsetter med rensingen, vil alle oversettelser merket som slettet " "fjernes permanent. Du må oversette dem igjen hvis de legges tilbake i " "fremtiden." msgid "Keep" msgstr "Behold" msgid "Purge" msgstr "Tømme" msgid "Copy from source text" msgstr "Kopier fra kildeteksten" msgid "Copy from Source Text" msgstr "Kopier fra kildeteksten" #. TRANSLATORS: This is the key shortcut used in menus on Windows, some languages call them differently #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Ctrl+" msgstr "Ctrl+" msgid "Clear translation" msgstr "Tøm oversettelse" msgid "Clear Translation" msgstr "Tøm oversettelse" msgid "Edit comment" msgstr "Rediger kommentar" msgid "Edit Comment" msgstr "Rediger kommentar" msgid "References:" msgstr "Referanser:" msgid "&Bookmarks" msgstr "&Bokmerker" #. TRANSLATORS: This is the key shortcut used in menus on Windows, some languages call them differently #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Alt+" msgstr "Alt+" #, c-format msgid "Set bookmark %i" msgstr "Angi bokmerke %i" #, c-format msgid "Go to bookmark %i" msgstr "Gå til bokmerke %i" #, c-format msgid "Set Bookmark %i" msgstr "Angi bokmerke %i" #, c-format msgid "Go to Bookmark %i" msgstr "Gå til bokmerke %i" msgid "Hide Sidebar" msgstr "Skjul sidepanelet" msgid "Show Sidebar" msgstr "Vis sidepanelet" msgid "Hide Status Bar" msgstr "Skjul statuslinje" msgid "Show Status Bar" msgstr "Vis statuslinje" msgid "Source text:" msgstr "Kildetekst:" msgid "Singular:" msgstr "Entall:" msgid "Plural:" msgstr "Flertall:" msgid "Translation:" msgstr "Oversettelse:" msgid "Pre-translated" msgstr "Forhånds-oversatt" msgid "Needs Work" msgstr "Trenger arbeid" #. TRANSLATORS: This indicates that the string's translation isn't final #. and has known problems. For example, it might be machine translated or #. fuzzy matched from an older string. The translation should be short and #. convey this. If it's problematic to translate it, "Needs review" is #. acceptable substitute, but note that the meaning is subtly different: #. "needs review" implies that somebody else should review the string after #. I am done with it (i.e. consider it good), while "needs work" implies I #. need to return to it and finish the translation. msgid "Needs work" msgstr "Trenger arbeid" msgid "" "POT files are only templates and don’t contain any translations themselves.\n" "To make a translation, create a new PO file based on the template." msgstr "" "POT-filer er bare maler og inneholder ikke noen oversettelser i seg selv.\n" "For å lage en oversettelse, opprett en ny PO-fil basert på malen." msgid "Create New Translation" msgstr "Opprett ny oversettelse" msgid "Create new translation" msgstr "Opprett ny oversettelse" msgid "Everything" msgstr "Alt" #, c-format msgid "Form %i" msgstr "Form %i" msgid "Singular" msgstr "Entall" msgid "Zero" msgstr "Null" msgid "One" msgstr "En" msgid "Two" msgstr "To" msgid "Plural" msgstr "Flertall" msgid "Other" msgstr "Andre" #, c-format msgid "%s Format" msgstr "%s-format" #. TRANSLATORS: %s is replaced with language name, e.g. "PHP" or "C", so "PHP Format" etc." #, c-format msgid "%s format" msgstr "%s-format" msgid "Source text" msgstr "Kildetekst" #, c-format msgid "Translation — %s" msgstr "Oversettelse — %s" msgid "ID" msgstr "ID" #, c-format msgid "Source text — %s" msgstr "Kildetekst — %s" msgid "unknown language" msgstr "Ukjent språk" #, c-format msgid "Failed command: %s" msgstr "Kommandoen mislyktes: %s" msgid "Failed to merge gettext catalogs." msgstr "Klarte ikke slå sammen gettex-kataloger." msgid "Source file" msgstr "Kildefil" msgid "Source file occurrence:" msgstr "Forekomst i kildefilen:" msgid "Open in Editor" msgstr "Åpne i redigeringsprogram" msgid "Open in editor" msgstr "Åpne i redigeringsprogram" msgid "No references for the selected item." msgstr "Ingen referanser for det valgte elementet." #, c-format msgid "Error opening file %s!" msgstr "Feil ved åpning av fila «%s»." msgid "Find" msgstr "Finn" msgid "Replace" msgstr "Erstatt" #. TRANSLATORS: Expander in Find window for additional options (case sensitive etc.) msgid "Options" msgstr "Alternativer" msgid "Ignore case" msgstr "Ignorer små/STORE bokstaver" msgid "Wrap around" msgstr "Pakk rundt" msgid "Whole words only" msgstr "Bare hele ord" msgid "Find in source texts" msgstr "Finn i kildetekster" msgid "Find in translations" msgstr "Finn i oversettelser" msgid "Find in comments" msgstr "Finn i kommentarer" msgid "Close" msgstr "Lukk" msgid "Replace &All" msgstr "Erstatt &alle" msgid "Replace &all" msgstr "Erstatt &alle" msgid "&Replace" msgstr "&Erstatt" msgid "< &Previous" msgstr "← &Tidligere" msgid "&Next >" msgstr "&Neste →" msgid "String to find" msgstr "Strengen som skal finnes" msgid "Replacement string" msgstr "Erstatningsstreng" #, c-format msgid "Cannot execute program: %s" msgstr "Kan ikke kjøre program: %s" msgid "Language Code or Name (e.g. en_GB)" msgstr "Språkkode eller navn (f.eks no)" msgid "Translation Language" msgstr "Oversettelsespråket" msgid "Language of the translation:" msgstr "Språket til oversettelsen:" msgid "Poedit - Catalogs manager" msgstr "Poedit - Kataloghåndterer" msgid "Catalog" msgstr "Katalog" msgid "Total" msgstr "Totalt" msgid "Untrans" msgstr "Ikke oversettbart" msgid "Errors" msgstr "Feil" msgid "Last modified" msgstr "Sist endret" msgid "Select directory" msgstr "Velg mappe" msgid "Directories:" msgstr "Mapper:" msgid "" msgstr "" msgid "Do you want to delete the project?" msgstr "Vil du slette prosjektet?" msgid "Confirmation" msgstr "Bekreftelse" msgid "" "Do you really want to do mass update of\n" "all catalogs in this project?" msgstr "" "Vil du virkelig gjøre masseoppdatering av\n" "alle katalogene i prosjektet?" msgid "Information about the translator" msgstr "Informasjon om oversetteren" msgid "Name:" msgstr "Navn:" msgid "Your Name" msgstr "Ditt navn" msgid "Email:" msgstr "E-post:" msgid "your_email@example.com" msgstr "din_epost@eksempel.com" msgid "" "Your name and email address are only used to set the Last-Translator header " "of GNU gettext files." msgstr "" "Navnet og E-postadressen din brukes bare til å bestemme hvem som skal " "oppføres som den seneste oversetteren av GNU gettext-filer." msgid "Editing" msgstr "Redigering" msgid "Automatically compile MO file when saving" msgstr "Automatisk kompiler MO-filen ved lagring" msgid "Show summary after catalog update" msgstr "&Vis sammendrag etter katalogoppdatering" msgid "Check spelling" msgstr "Stavesjekk" msgid "Always change focus to text input field" msgstr "&Fokuser automatisk på oversettelsesfeltet" msgid "" "Never let the list of strings take focus. If enabled, you must use Ctrl-" "arrows for keyboard navigation but you can also type text immediately, " "without having to press Tab to change focus." msgstr "" "La aldri tekstlisten få fokus. Du må bruke Ctrl + piltast for å bevege deg " "mellom tekstene, men du kan også skrive direkte, uten å måtte trykke på Tab " "først." msgid "Appearance" msgstr "Utseende" msgid "Use custom list font:" msgstr "Bruk egendefinert listeskrifttype:" msgid "Use custom text fields font:" msgstr "Bruk egendefinert tekstfelt-skrifttype:" msgid "Change UI language" msgstr "Sett språk for brukergrensesnitt" #. TRANSLATORS: This is a note appended to "Check spelling" when running on older Windows versions msgid "(requires Windows 8 or newer)" msgstr "(krever Windows 8 eller nyere)" msgid "General" msgstr "Generelt" msgid "Use translation memory" msgstr "Bruk oversettelsesminne" msgid "Learn From Files…" msgstr "Lær fra filer…" msgid "Learn from files…" msgstr "Lær fra filer…" #. TRANSLATORS: This is a button that deletes everything in the translation memory (i.e. clears/resets it). msgid "Reset" msgstr "Tilbakestill" #. TRANSLATORS: Followed by "match translations within the file" or "pre-translate from TM" msgid "When updating from sources" msgstr "Ved oppdatering fra kilder" #. TRANSLATORS: Preceded by "When updating from sources" msgid "fuzzy match within the file" msgstr "fuzzy-treff i fila" #. TRANSLATORS: Preceded by "When updating from sources" msgid "pre-translate from TM" msgstr "forhånds-oversatt fra TM" msgid "" "Poedit can attempt to fill in new entries from only previous translations in " "the file or from your entire translation memory. Using the TM won’t be very " "effective if it’s near-empty, but it will get better as you add more " "translations to it." msgstr "" "Poedit kan prøve å fylle inn nye oppføringer ved bruk av tidligere " "oversettelser i fila, eller fra hele ditt oversettelsesminne. Bruk av OM vil " "ikke være særlig effektivt, siden den nesten er tom, men det bedrer seg " "etterhvert som oversettelser blir lagt til." msgid "Stored translations:" msgstr "Lagrede oversettelser:" msgid "Database size on disk:" msgstr "Databasestørrelsen på disk:" msgid "Select translation files to import" msgstr "Velg oversettelsesfiler som skal importeres" msgid "Translation Memory" msgstr "Oversettelsesminne" msgid "Importing translations…" msgstr "Importerer oversettelser…" msgid "Finalizing…" msgstr "Fullfører…" msgid "Reset translation memory" msgstr "Tilbakestill oversettingsminnet" msgid "Are you sure you want to reset the translation memory?" msgstr "Er du sikker på at du vil tilbakestille oversettelsesminnet?" msgid "" "Resetting the translation memory will irrevocably delete all stored " "translations from it. You can’t undo this operation." msgstr "" "Å tilbakestille oversettelsesminnet vil ugjenkallelig slette alle lagrede " "oversettelser fra den. Du kan ikke angre operasjonen." msgid "Cancel" msgstr "&Avbryt" #. TRANSLATORS: This is abbreviation of "Translation Memory" used in Preferences on macOS. #. Long text looks weird there, too short (like TM) too, but less so. "General" is about ideal #. length there. msgid "TM" msgstr "TM" msgid "" "Source code extractors are used to find translatable strings in the source " "code files and extract them so that they can be translated." msgstr "" "Kildekodeutpakkere brukes til å finne oversettbare strenger i kildekodefiler " "og å pakke dem ut slik at de kan oversettes." msgid "Custom Extractors:" msgstr "Egendefinerte utpakkere:" msgid "Custom extractors:" msgstr "Egendefinerte utpakkere:" msgid "Edit…" msgstr "Rediger…" msgid "GNU gettext" msgstr "GNU gettext" msgid "" "Supports all programming languages recognized by GNU gettext tools (PHP, C/C+" "+, C#, Perl, Python, Java, JavaScript and others)." msgstr "" "Støtter alle programmeringsspråk som er gjenkjent av GNU gettext-verktøy " "(PHP, C/C++, C#, Perl, Python, Java, JavaScript og andre)." msgid "Delete extractor" msgstr "Slett ekstraktor" #, c-format msgid "Are you sure you want to delete the “%s” extractor?" msgstr "Er du sikker på at du vil slette \"%s\" ekstraktor?" msgid "Extractors" msgstr "Utpakker" msgid "Accounts" msgstr "Kontoer" msgid "Automatically check for updates" msgstr "Automatisk se etter oppdateringer" msgid "Include beta versions" msgstr "Inkluder betaversjoner" msgid "" "Beta versions contain the latest new features and improvements, but may be a " "bit less stable." msgstr "" "Beta-versjoner inneholder de nyeste funksjonene og forbedringene, men kan " "være litt mindre stabil." msgid "Updates" msgstr "Oppdateringer" msgid "" "These settings affect internal formatting of PO files. Adjust them if you " "have specific requirements e.g. because of version control." msgstr "" "Disse innstillingene påvirker den interne formateringen av PO-filer. Juster " "dem hvis du har bestemte krav, f.eks på grunn av versjonskontroll." msgid "Line endings:" msgstr "Linjeavslutninger:" msgid "Unix (recommended)" msgstr "UNIX (anbefales)" msgid "Windows" msgstr "Windows" #. TRANSLATORS: Followed by text control for entering number; wraps text at given width msgid "Wrap at:" msgstr "Vikle på:" msgid "Preserve formatting of existing files" msgstr "Beholde formateringen av eksisterende filer" msgid "Advanced" msgstr "Avansert" msgid "Pre-translating…" msgstr "Forhånds-oversetter…" #, c-format msgid "Pre-translated %u string" msgid_plural "Pre-translated %u strings" msgstr[0] "Forhånds-oversatte %u tekststreng" msgstr[1] "Forhånds-oversatte %u tekststrenger" #. TRANSLATORS: This is a somewhat common term describing the action where #. you apply the translation memory and/or machine translation to all of the #. strings you're translating as the first step, followed by correcting, #. improving etc., i.e. actually translating the strings. This may be tricky #. to express in other languages as simply as in English, but please try to #. keep it similarly concise. Please try to avoid, if possible, describing it #. as "auto-translation" and similar, because such terminology would mislead #. some users into thinking it's all that needs to be done (spoken from #. experience). "Pre-translate" nicely expresses that it's only the step done #. *before* actual translation. msgid "Pre-translate" msgstr "Forhånds-oversett" msgid "Only fill in exact matches" msgstr "Fyll kun ut nøyaktige treff" msgid "" "By default, inaccurate results are filled in as well and marked as needing " "work. Check this option to only include accurate matches." msgstr "" "Som forvalg er unøyaktige resultater utfylt samt merket som Trenger arbeid. " "Huk av dette alternativet for å bbare inkludere nøyaktig treff." msgid "Don’t mark exact matches as needing work" msgstr "Ikke marker nøyaktige treff som Trenger arbeid" msgid "" "Only enable if you trust the quality of your TM. By default, all matches " "from the TM are marked as needing work and should be reviewed before use." msgstr "" "Bare skru på dette hvis du stoler på kvaliteten på ditt OM. Som forvalg, " "blir alle treff fra OM markert som Trenger arbeid, og bør ses over før de " "brukes." msgid "" "Pre-translation automatically finds exact or fuzzy matches for untranslated " "strings in the translation memory and fills in their translations." msgstr "" "Forhånds-oversettelse vil automatisk finne eksakte eller vilkårlige " "sammensettinger for uoversatte strenger i oversettelses-minnet og fyller " "deretter ut oversettelsene." #, c-format msgid "%d entry was pre-translated." msgid_plural "%d entries were pre-translated." msgstr[0] "%d oppføring ble forhånds-oversatt." msgstr[1] "%d oppføringer ble forhånds-oversatt." msgid "" "The translations were marked as needing work, because they may be " "inaccurate. You should review them for correctness." msgstr "" "Oversettelsene ble markert som Trenger arbeid, fordi de kan være unøyaktige. " "Du bør gjennomse dem for å vurdere hvor korrekte de er." msgid "No entries could be pre-translated." msgstr "Ingen oppføringer kan bli forhånds-oversatt." msgid "" "The TM doesn’t contain any strings similar to the content of this file. It " "is only effective for semi-automatic translations after Poedit learns enough " "from files that you translated manually." msgstr "" "TM inneholder ikke strenger lik innholdet i denne filen. Det er bare " "effektivt for semi-automatiske oversettelser, som Poedit lærer fra filer som " "du oversetter manuelt." msgid "" "Drag and Drop Folders Here\n" "\n" "or use the + button" msgstr "" "Dra og slipp mapper her \n" "\n" "eller bruk + knappen" msgid "" "Drag and drop folders here\n" "\n" "or use the + button" msgstr "" "Dra og slipp mapper her \n" "\n" "eller bruk + knappen" msgid "Add Folders…" msgstr "Legg til mapper…" msgid "Add folders…" msgstr "Legg til mapper…" msgid "Add Files…" msgstr "Legg til filer…" msgid "Add files…" msgstr "Legg til filer…" msgid "Add Wildcard…" msgstr "Legg til jokertegn…" msgid "Add wildcard…" msgstr "Legg til jokertegn…" msgid "Paths" msgstr "Stier" msgid "Excluded paths" msgstr "Ekskluderte baner" msgid "Advanced extraction settings" msgstr "Avanserte utvinningsinnstillinger" msgid "Extract notes for translators from:" msgstr "Hent ut notater for oversettere fra:" msgid "Comments prefixed with:" msgstr "Kommentarer som innledes med:" msgid "All comments" msgstr "Alle kommentarer" msgid "Additional xgettext flags:" msgstr "Ytterligere xgettext-flagg:" msgid "Additional keywords" msgstr "Flere søkeord" msgid "Name of the project the translation is for" msgstr "Navnet på prosjektet oversettelsen er for" msgid "Team name and email address or URL" msgstr "Lagnavn og e-postadresse eller nettadresse" msgid "e.g. nplurals=2; plural=(n > 1);" msgstr "f.eks nplurals = 2; flertall = (n > 1);" msgid "UTF-8 (recommended)" msgstr "UTF-8 (anbefales)" msgid "Please save the file first. This section cannot be edited until then." msgstr "Lagre filen først. Denne delen kan ikke redigeres før da." msgid "Not all plural forms are translated." msgstr "Ikke alle flertallsformer er oversatte." msgid "The translation should start as a sentence." msgstr "Oversettelsen burde begynne som en setning." msgid "The translation should start with a lowercase character." msgstr "Oversettelsen burde begynne med en liten bokstav." msgid "The translation doesn’t start with a space." msgstr "Oversettelsen starter ikke med et mellomrom." msgid "The translation starts with a space, but the source text doesn’t." msgstr "" "Oversettelsen starter med et mellomrom, men kildeteksten gjør det ikke." msgid "The translation is missing a newline at the end." msgstr "Oversettelsen mangler en linje på slutten." msgid "The translation ends with a newline, but the source text doesn’t." msgstr "Oversettelsen slutter med en linje, men kildeteksten gjør ikke." msgid "The translation is missing a space at the end." msgstr "Oversettelsen mangler et mellomrom på slutten." msgid "The translation ends with a space, but the source text doesn’t." msgstr "Oversettelsen slutter med et mellomrom, men kildeteksten gjør ikke." #, c-format msgid "The translation should end with “%s”." msgstr "Oversettelsen burde slutte med \"%s\"." #, c-format msgid "The translation should not end with “%s”." msgstr "Oversettelsen burde ikke slutte med \"%s\"." #, c-format msgid "The translation ends with “%s”, but the source text ends with “%s”." msgstr "Oversettelsen slutter med \"%s\", men kildeteksten slutter med \"%s\"." msgid "Comment:" msgstr "Kommentar:" msgid "OK" msgstr "&OK" msgid "C&lear" msgstr "Tøm" msgid "Clear the comment" msgstr "Fjern kommentaren" msgid "New" msgstr "&Ny" msgid "Create new translations project" msgstr "Lag nytt oversettelsesprosjekt" msgid "Edit" msgstr "&Rediger" msgid "Edit the project" msgstr "Rediger prosjekt" msgid "Delete the project" msgstr "Slett prosjekt" msgid "Update all" msgstr "Oppdater alle" msgid "Update all catalogs in the project" msgstr "Oppdater alle katalogene i prosjektet" msgid "Edit project" msgstr "Rediger prosjekt" msgid "Project name:" msgstr "Prosjektnavn:" msgid "Browse" msgstr "Bla &gjennom" msgid "Add directory to the list" msgstr "Legg katalog til lista" msgid "&New…" msgstr "&Ny…" msgid "New from &POT/PO file…" msgstr "Ny fra &POT/PO fil…" msgid "New From &POT/PO File…" msgstr "Ny fra &POT/PO fil…" msgid "&Open…" msgstr "&Åpne…" msgid "Open Recent" msgstr "Åpne seneste" msgid "Open from Crowdin…" msgstr "Åpne fra Crowdin…" msgid "Open From Crowdin…" msgstr "Åpne fra Crowdin…" msgid "&Close" msgstr "&Avslutt" msgid "&Save" msgstr "La&gre" msgid "Save &as…" msgstr "Lagre &som…" msgid "Save &As…" msgstr "Lagre &som…" msgid "Compile to MO…" msgstr "Kompiler til MO…" msgid "E&xport as HTML…" msgstr "E&ksporter som HTML…" msgid "Check for updates…" msgstr "Se etter oppdateringer…" msgid "&Preferences…" msgstr "&Innstillinger…" msgid "Catalogs &manager" msgstr "Katalog&håndterer" msgid "Catalogs &Manager" msgstr "Katalog&behandler" msgid "E&xit" msgstr "Avslutt" msgid "Quit" msgstr "Avslutt" msgid "Copy from singular" msgstr "Kopier fra entall" msgid "Copy From Singular" msgstr "Kopier fra entall" msgid "Translation needs &work" msgstr "Oversettelsen trenger &arbeid" msgid "Translation Needs &Work" msgstr "Oversettelsen trenger &arbeid" msgid "Edit &comment" msgstr "&Rediger kommentar" msgid "Edit &Comment" msgstr "Rediger &kommentar" msgid "Suggestions" msgstr "Forslag" msgid "&Find…" msgstr "&Søk…" msgid "Replace…" msgstr "Erstatt…" msgid "Find next" msgstr "Finn neste" msgid "Find previous" msgstr "Finn forrige" msgid "Find and Replace…" msgstr "Søk og erstatt…" msgid "Find Next" msgstr "Finn neste" msgid "Find Previous" msgstr "Finn forrige" msgid "&Preferences" msgstr "&Innstillinger" msgid "Display entry &IDs" msgstr "Vis oppførings-&IDer" msgid "Display Entry &IDs" msgstr "Vis oppførings-&IDer" msgid "Sort by &file order" msgstr "Sorter etter &filrekkefølge" msgid "Sort by &File Order" msgstr "Sorter etter &filrekkefølge" msgid "Sort by &source" msgstr "Sorter etter &kilde" msgid "Sort by &Source" msgstr "Sorter etter &kilde" msgid "Sort by &translation" msgstr "Sorter etter overse&ttelse" msgid "Sort by &Translation" msgstr "Sorter etter overse&ttelse" msgid "&Group by context" msgstr "&Sorter etter sammenheng" msgid "&Group By Context" msgstr "&Sorter etter sammenheng" msgid "Entries with errors first" msgstr "Oppføringer med feil først" msgid "Entries with Errors First" msgstr "Oppføringer med feil først" msgid "&Untranslated entries first" msgstr "&Uoversatte poster først" msgid "&Untranslated Entries First" msgstr "&Uoversatte poster først" msgid "&Show references" msgstr "&Vis referanser" msgid "&Show References" msgstr "Vi&s referanser" msgid "Show sidebar" msgstr "Vis sidepanelet" msgid "Show status bar" msgstr "Vis statuslinje" msgid "C&atalog" msgstr "K&atalog" msgid "&Update from sources" msgstr "&Oppdater fra kilden" msgid "&Update from Sources" msgstr "Oppdater fra kilde" msgid "Update from &POT file…" msgstr "Oppdater fra &POT-fil…" msgid "Update from &POT File…" msgstr "Oppdater fra &POT-fil…" msgid "Sync with Crowdin" msgstr "Synkroniser med Crowdin" msgid "Pre-&translate…" msgstr "Forhånds&oversett…" msgid "&Purge deleted translations" msgstr "&Fjern slettede oversettelser" msgid "&Purge Deleted Translations" msgstr "Fjern slettede oversettelser" msgid "&Validate translations" msgstr "&Valider oversettelser" msgid "&Validate Translations" msgstr "&Valider oversettelser" msgid "&Properties…" msgstr "&Egenskaper…" msgid "&Done and next" msgstr "Utført og neste" msgid "&Done and Next" msgstr "&Utført og neste" msgid "&Previous translation" msgstr "&Tidligere oversettelse" msgid "&Previous Translation" msgstr "Tidligere oversettelse" msgid "&Next translation" msgstr "&Neste oversettelse" msgid "&Next Translation" msgstr "&Neste oversettelse" msgid "P&revious unfinished" msgstr "Fo&rrige uferdige" msgid "P&revious Unfinished" msgstr "Fo&rrige uferdige" msgid "Ne&xt unfinished" msgstr "Neste uferdige" msgid "Ne&xt Unfinished" msgstr "Neste uferdige" msgid "Previous plural form" msgstr "Forrige flertallsform" msgid "Previous Plural Form" msgstr "Forrige flertallsform" msgid "Next plural form" msgstr "Neste flertallsform" msgid "Next Plural Form" msgstr "Neste flertallsform" msgid "&Online help" msgstr "Hjelp på nett" msgid "&Online Help" msgstr "Hjelp på nett" msgid "&GNU gettext manual" msgstr "&GNU gettext-dokumentasjon" msgid "&GNU gettext Manual" msgstr "&GNU gettext-dokumentasjon" msgid "&About Poedit" msgstr "&Om Poedit" msgid "&About" msgstr "Om" msgid "Extractor setup" msgstr "Utpakker-oppsett" msgid "List of extensions separated by semicolons (e.g. *.cpp;*.h):" msgstr "Liste over etternavn skilt med semikolon (f.eks. «*.cpp; *.h»):" msgid "Invocation:" msgstr "Start: " msgid "Command to extract translations:" msgstr "Kommando for å pakke ut oversettelser:" msgid "" "This is the command used to launch the extractor.\n" "%o expands to the name of output file, %K to list\n" "of keywords, %F to list of input files,\n" "%C to charset flag (see below)." msgstr "" "Denne kommandoen brukes til å starte utpakker.\n" "%o utvides til navnet på utdatafilen, %K til listen\n" "over søkeord, %F til listen over inndatafiler,\n" "og %C til karaktersettsflagget (se nedenfor)." msgid "An item in keywords list:" msgstr "Et element i lista over nøkkelord:" msgid "" "This will be attached to the command line once\n" "for each keyword. %k expands to the keyword." msgstr "" "Dette blir føyd til kommandolinja én gang\n" "for hvert nøkkelord. %k blir utvidet til nøkkelordet." msgid "An item in input files list:" msgstr "Et element i lista over inndatafiler:" #, c-format msgid "" "This will be attached to the command line once\n" "for each input file. %f expands to the filename." msgstr "" "Dette blir lagt til kommandolinja en gang\n" "for hver inndatafil. %f blir utvidet til filnavnet." msgid "Source code charset:" msgstr "Kildekodetegnsett:" #, c-format msgid "" "This will be attached to the command line\n" "only if source code charset was given. %c expands to charset value." msgstr "" "Dette blir lagt til kommandolinja bare hvis\n" "kildekodetegnsett ble angitt. %c blir utvidet til tegnsettets verdi." msgid "Catalog properties" msgstr "Katalogegenskaper" msgid "Project name and version:" msgstr "&Prosjektnavn og -versjon:" msgid "Language team:" msgstr "Språklag:" msgid "Plural forms:" msgstr "Flertallsformer:" msgid "Use default rules for this language" msgstr "Bruk standardregler for dette språket" msgid "Use custom expression" msgstr "Bruk egendefinerte uttrykk" msgid "Learn about plural forms" msgstr "Lær om flertallsformer" msgid "Charset:" msgstr "&Tegnkoding:" msgid "Advanced Extraction Settings…" msgstr "Avanserte innstillinger for eksportering…" msgid "Advanced extraction settings…" msgstr "Avanserte innstillinger for eksportering…" msgid "Translation Properties" msgstr "Oversettelsesegenskaper" msgid "Translation properties" msgstr "Egenskaper for oversettelse" msgid "Sources Paths" msgstr "Kildestier" msgid "Sources paths" msgstr "Kildebaner" msgid "Extract text from source files in the following directories:" msgstr "Trekk ut tekst fra kildefiler i følgende kataloger:" msgid "Base path:" msgstr "&Grunnsti:" msgid "Sources Keywords" msgstr "Kilde-nøkkelord" msgid "Sources keywords" msgstr "Kilder nøkkelord" msgid "" "Use these keywords (function names) to recognize translatable strings\n" "in source files:" msgstr "" "Bruk disse nøkkelordene (funksjonsnavn) til å gjenkjenne oversettbare " "strenger\n" "i kildefiler:" msgid "Also use default keywords for supported languages" msgstr "Bruk forvalgte nøkkelord også for støttede språk" msgid "Learn About Gettext Keywords" msgstr "Lær om Gettext-nøkkelord" msgid "Learn about gettext keywords" msgstr "Lær om gettext søkeord" msgid "Update summary" msgstr "Sammendrag" msgid "" "These strings were found in the sources but were not in the catalog.\n" "Poedit will add them to the catalog now." msgstr "" "Disse strengene finnes i kildefilene, men ikke i katalogen.\n" "De blir derfor lagt til i katalogen nå." msgid "New strings" msgstr "Nye tekster" msgid "" "These strings are no longer in the sources.\n" "Poedit will remove them from the catalog now." msgstr "" "Disse tekstene finnes ikke lenger i kildefilene.\n" "De blir derfor fjernet fra katalogen." msgid "Obsolete strings" msgstr "Utgåtte strenger" msgid "(0 new, 0 obsolete)" msgstr "(0 nye, 0 utgåtte)" msgid "Open" msgstr "Åpne" msgid "Save catalog" msgstr "Lagre katalog" msgid "Validate" msgstr "Validere" msgid "Check for errors in the translation" msgstr "Se etter feil i oversettelse" msgid "Update" msgstr "Oppdater" msgid "Update catalog - synchronize it with sources" msgstr "Oppdater katalog" msgid "Sidebar" msgstr "Sidepanel" msgid "Show or hide the sidebar" msgstr "Vis eller skjul sidepanelet" #. TRANSLATORS: "Previous" as in used in the past, now replaced with newer. msgid "Previous source text:" msgstr "Tidligere kildetekst:" msgid "" "The old source text (before it changed during an update) that the now-" "inaccurate translation corresponds to." msgstr "" "Den gamle kildeteksten (før den endres under en oppdatering) som den nå ikke-" "nøyaktige oversettelsen samsvarer med." msgid "Notes for translators:" msgstr "Notater for oversettere:" msgid "Add comment" msgstr "Legg til kommentar" msgid "Add Comment" msgstr "Legg til kommentar" msgid "Translation suggestions:" msgstr "Oversettelsesforslag:" #. TRANSLATORS: This is shown when no translation suggestions can be found in the TM (Windows). msgid "No matches found" msgstr "Ingen treff funnet" #. TRANSLATORS: This is shown when no translation suggestions can be found in the TM (macOS, Linux). msgid "No Matches Found" msgstr "Ingen treff funnet" msgid "This string was found in Poedit’s translation memory." msgstr "Denne strengen ble funnet i Poedits oversettelsesminne." msgid "Cannot create temporary directory." msgstr "Kan ikke opprette midlertidig katalog." msgid "Welcome to Poedit" msgstr "Velkommen til Poedit" #. TRANSLATORS: This is version information in about dialog, "%s" will be #. version number when used #, c-format msgid "Version %s" msgstr "Versjon %s" msgid "Edit a Translation" msgstr "Redigér en oversettelse" msgid "Edit a translation" msgstr "Rediger en oversettelse" msgid "Open an existing PO file and edit the translation." msgstr "Åpne en eksisterende PO-fil og rediger oversettelsen." msgid "" "Take an existing PO file or POT template and create a new translation from " "it." msgstr "" "Ta en eksisterende PO-fil eller POT-mal og opprett en ny oversettelse fra " "den." msgid "Collaborate on a Translation with Others" msgstr "Samarbeid om en oversettelse med andre" msgid "Collaborate on a translation with others" msgstr "Samarbeid om en oversettelse med andre" msgid "" "Download a file from Crowdin project, translate and sync your changes back." msgstr "" "Last ned en fil fra Crowdin-prosjekt, oversett og synkroniser endringene " "dine tilbake." msgid "What is Crowdin?" msgstr "Hva er Crowdin?" msgid "There are no translations. That’s unusual." msgstr "Det finnes ingen oversettelser. Det er uvanlig." msgid "" "Translatable entries aren’t added manually in the Gettext system, but are " "automatically extracted\n" "from source code. This way, they stay up to date and accurate.\n" "Translators typically use PO template files (POTs) prepared for them by the " "developer." msgstr "" "Oversettbare oppføringer legges ikke inn manuelt i Gettext-systemet, men er " "automatisk utviklet\n" "fra kildekoden. På denne måten vil de holde seg oppdatert og nøyaktige. \n" "Oversettere bruker vanligvis PO-malfiler (POT) forberedt for dem av " "utvikleren." msgid "(Learn more about GNU gettext)" msgstr "(Lær mer om GNU gettext)" msgid "The simplest way to fill this catalog is to update it from a POT:" msgstr "" "Den enkleste måten å fylle ut denne katalogen på, er å oppdatere den fra en " "POT:" msgid "Update from POT" msgstr "Oppdater fra POT" msgid "Take translatable strings from an existing POT template." msgstr "Ta oversettbare strenger fra en eksisterende POT mal." msgid "" "You can also extract translatable strings directly from the source code:" msgstr "Du kan også hente oversettbare strenger direkte fra kildekoden:" msgid "Extract from sources" msgstr "Utdrag fra kilder" msgid "Configure source code extraction in Properties." msgstr "Konfigurer kildekodeutvinningen i Egenskaper." msgid "Sync" msgstr "Synkroniser" msgid "Synchronize the translation with Crowdin" msgstr "Synkroniser oversettelsen med Crowdin" #. TRANSLATORS: This is titlebar of about dialog, "%s" is application name #. ("Poedit" here, but please use "%s") #, c-format msgid "About %s" msgstr "Om %s" #. TRANSLATORS: Title of the preferences window on Windows and Linux. "%s" is replaced with "Poedit" when running. #, c-format msgid "%s Preferences" msgstr "%s preferanser" #. TRANSLATORS: macOS item in app menu msgid "Services" msgstr "Tjenester" #. TRANSLATORS: macOS item in app menu, %s is replaced with "Poedit" #, c-format msgid "Hide %s" msgstr "Skjul %s" #. TRANSLATORS: macOS item in app menu msgid "Hide Others" msgstr "Skjul andre" #. TRANSLATORS: macOS item in app menu msgid "Show All" msgstr "Vis alle" #. TRANSLATORS: macOS item in app menu, %s is replaced with "Poedit" #, c-format msgid "Quit %s" msgstr "Avslutt %s" #. TRANSLATORS: macOS item in app menu msgid "Preferences…" msgstr "Innstillinger…" msgid "Preferences..." msgstr "Preferanser..." #. TRANSLATORS: Title of a category in Windows task menu (right-click icon in taskbar) msgid "Recent" msgstr "Nylige" #. TRANSLATORS: Title of a category in Windows task menu (right-click icon in taskbar) msgid "Frequent" msgstr "Gjentakende" msgid "&Apply" msgstr "Bruk" msgid "Apply" msgstr "Legg til" msgid "&Back" msgstr "Til&bake" msgid "Back" msgstr "Tilbake" msgid "&Cancel" msgstr "Avbryt" msgid "&Clear" msgstr "Tøm" msgid "Clear" msgstr "Klargjør" msgid "Copy" msgstr "Kopier" msgid "Cu&t" msgstr "Klipp &ut" msgid "Cut" msgstr "Klipp ut" msgid "&Delete" msgstr "&Slett" msgid "&Quit" msgstr "&Avslutt" msgid "File" msgstr "Fil" msgid "Help" msgstr "Hjelp" msgid "&New" msgstr "&Ny" msgid "&No" msgstr "&Nei" msgid "No" msgstr "Nei" msgid "&OK" msgstr "&OK" msgid "Open…" msgstr "Åpne…" msgid "&Open..." msgstr "&Åpne ..." msgid "Open..." msgstr "Åpne..." msgid "&Paste" msgstr "&Lim inn" msgid "Paste" msgstr "Lim inn" msgid "Preferences" msgstr "Innstillinger" msgid "&Redo" msgstr "Gjø&r om" msgid "Refresh" msgstr "Oppdatér" msgid "&Save as" msgstr "Lagre &som" msgid "Save as" msgstr "Lagre som" msgid "Select &All" msgstr "&Merk alle" msgid "Select All" msgstr "Merk alle" msgid "&Undo" msgstr "&Angre" msgid "&Yes" msgstr "Ja" msgid "Yes" msgstr "Ja" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Shift+" msgstr "Shift+" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Enter" msgstr "Skriv" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Up" msgstr "Opp" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Down" msgstr "Ned" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Left" msgstr "Venstre" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Right" msgstr "Høyre" #. TRANSLATORS: Keyboard shortcut, must correspond to translation of "Ctrl+" msgid "ctrl" msgstr "ctrl" #. TRANSLATORS: Keyboard shortcut, must correspond to translation of "Alt+" msgid "alt" msgstr "alt" #. TRANSLATORS: Keyboard shortcut, must correspond to translation of "Shift+" msgid "shift" msgstr "shift" poedit-2.0.6/locales/en_GB.po0000664000372000037200000013560413230132076012666 00000000000000msgid "" msgstr "" "Project-Id-Version: poedit\n" "Report-Msgid-Bugs-To: help@poedit.net\n" "POT-Creation-Date: 2017-12-05 15:52+0100\n" "PO-Revision-Date: 2018-01-18 07:57-0500\n" "Last-Translator: vslavik \n" "Language-Team: English, United Kingdom\n" "Language: en_GB\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: crowdin.com\n" "X-Crowdin-Project: poedit\n" "X-Crowdin-Language: en-GB\n" "X-Crowdin-File: /locales/poedit.pot\n" msgid "Hide this notification message" msgstr "Hide this notification message" msgid "Don’t Show Again" msgstr "Don’t Show Again" msgid "Don’t show again" msgstr "Don’t show again" #, c-format msgid "(New: %i, obsolete: %i)" msgstr "(New: %i, obsolete: %i)" msgid "Updating catalog" msgstr "Updating catalogue" msgid "Collecting source files…" msgstr "Collecting source files…" msgid "Extracting translatable strings…" msgstr "Extracting translatable strings…" msgid "Failed to load extracted catalog." msgstr "Failed to load extracted catalogue." msgid "Merging differences…" msgstr "Merging differences…" #, c-format msgid "“%s” is not a valid POT file." msgstr "“%s” is not a valid POT file." #, c-format msgid "%i line of file “%s” was not loaded correctly." msgid_plural "%i lines of file “%s” were not loaded correctly." msgstr[0] "%i line of file “%s” was not loaded correctly." msgstr[1] "%i lines of file “%s” were not loaded correctly." #, c-format msgid "Line %d of file “%s” is corrupted (not valid %s data)." msgstr "Line %d of file “%s” is corrupted (not valid %s data)." #, c-format msgid "Malformed header: “%s”" msgstr "Malformed header: “%s”" msgid "" "Broken catalog file: singular form msgstr used together with msgid_plural" msgstr "" "Broken catalogue file: singular form msgstr used together with msgid_plural" msgid "Broken catalog file: plural form msgstr used without msgid_plural" msgstr "Broken catalogue file: plural form msgstr used without msgid_plural" msgid "" "There were errors when loading the catalog. Some data may be missing or " "corrupted as the result." msgstr "" "There were errors when loading the catalogue. Some data may be missing or " "corrupted as the result." #, c-format msgid "Couldn’t load file %s, it is probably corrupted." msgstr "Couldn’t load file %s, it is probably corrupted." #, c-format msgid "" "File “%s” is read-only and cannot be saved.\n" "Please save it under different name." msgstr "" "File “%s” is read-only and cannot be saved.\n" "Please save it under different name." #, c-format msgid "Couldn’t save file %s." msgstr "Couldn’t save file %s." msgid "" "There was a problem formatting the file nicely (but it was saved all right)." msgstr "" "There was a problem formatting the file nicely (but it was saved all right)." #, c-format msgid "" "The catalog couldn’t be saved in “%s” charset as specified in catalog " "settings.\n" "\n" "It was saved in UTF-8 instead and the setting was modified accordingly." msgstr "" "The catalogue couldn’t be saved in “%s” charset as specified in catalogue " "settings.\n" "\n" "It was saved in UTF-8 instead and the setting was modified accordingly." msgid "Error saving catalog" msgstr "Error saving catalogue" msgid "PO Translation Files" msgstr "PO Translation Files" msgid "POT Translation Templates" msgstr "POT Translation Templates" msgid "All Translation Files" msgstr "All Translation Files" msgid "(Use default language)" msgstr "(Use default language)" msgid "Select your preferred language" msgstr "Select your preferred language" msgid "Language selection" msgstr "Language selection" msgid "You must restart Poedit for this change to take effect." msgstr "You must restart Poedit for this change to take effect." msgid "Syncing" msgstr "Syncing" #. TRANSLATORS: %s is a cloud destination, e.g. "Crowdin" or ftp.wordpress.com etc. #, c-format msgid "Syncing with %s…" msgstr "Syncing with %s…" #. TRANSLATORS: %s is a cloud destination, e.g. "Crowdin" or ftp.wordpress.com etc. #, c-format msgid "Syncing with %s failed." msgstr "Syncing with %s failed." msgid "Syncing error" msgstr "Syncing error" msgid "Downloading translations is disabled in this project." msgstr "Downloading translations is disabled in this project." msgid "Not authorized, please sign in again." msgstr "Not authorised, please sign in again." msgid "" "Crowdin is an online localization management platform and collaborative " "translation tool. Poedit can seamlessly sync PO files managed at Crowdin." msgstr "" "Crowdin is an online localisation management platform and collaborative " "translation tool. Poedit can seamlessly sync PO files managed at Crowdin." msgid "Sign In" msgstr "Sign In" msgid "Sign in" msgstr "Sign in" msgid "Sign Out" msgstr "Sign Out" msgid "Sign out" msgstr "Sign out" msgid "Waiting for authentication…" msgstr "Waiting for authentication…" msgid "Updating user information…" msgstr "Updating user information…" msgid "Signed in as:" msgstr "Signed in as:" msgid "Learn More About Crowdin" msgstr "Learn More About Crowdin" msgid "Learn more about Crowdin" msgstr "Learn more about Crowdin" msgid "Sign in to Crowdin" msgstr "Sign in to Crowdin" msgid "Open Crowdin translation" msgstr "Open Crowdin translation" msgid "Project:" msgstr "Project:" msgid "Language:" msgstr "Language:" msgid "File:" msgstr "File:" msgid "No translation projects listed in your Crowdin account." msgstr "No translation projects listed in your Crowdin account." msgid "This project has no files that can be translated in Poedit." msgstr "This project has no files that can be translated in Poedit." msgid "This file can only be edited in Crowdin’s web interface." msgstr "This file can only be edited in Crowdin’s web interface." msgid "Downloading latest translations…" msgstr "Downloading latest translations…" msgid "Syncing with Crowdin failed." msgstr "Syncing with Crowdin failed." msgid "Crowdin error" msgstr "Crowdin error" msgid "Uploading translations…" msgstr "Uploading translations…" msgid "&Copy" msgstr "&Copy" msgid "Learn more" msgstr "Learn more" msgid "Learn More" msgstr "Learn More" msgid "&Help" msgstr "&Help" msgid "MO files can’t be directly edited in Poedit." msgstr "MO files can’t be directly edited in Poedit." msgid "Error opening file" msgstr "Error opening file" msgid "" "Please open and edit the corresponding PO file instead. When you save it, " "the MO file will be updated as well." msgstr "" "Please open and edit the corresponding PO file instead. When you save it, " "the MO file will be updated as well." msgid "don’t delete temporary files (for debugging)" msgstr "don’t delete temporary files (for debugging)" msgid "handle a poedit:// URI" msgstr "handle a poedit:// URI" msgid "go to item at given line number" msgstr "go to item at given line number" msgid "Failed to communicate with Poedit process." msgstr "Failed to communicate with Poedit process." #, c-format msgid "Unhandled exception occurred: %s" msgstr "Unhandled exception occurred: %s" msgid "Open catalog" msgstr "Open catalogue" #, c-format msgid "File “%s” doesn’t exist." msgstr "File “%s” doesn’t exist." msgid "Poedit is an easy to use translations editor." msgstr "Poedit is an easy to use translations editor." msgid "Catalogs Manager" msgstr "Catalogs Manager" msgid "Check for Updates…" msgstr "Check for Updates…" msgid "&Edit" msgstr "&Edit" msgid "Undo" msgstr "Undo" msgid "Redo" msgstr "Redo" msgid "Paste and Match Style" msgstr "Paste and Match Style" msgid "Delete" msgstr "Delete" msgid "Spelling and Grammar" msgstr "Spelling and Grammar" msgid "Show Spelling and Grammar" msgstr "Show Spelling and Grammar" msgid "Check Document Now" msgstr "Check Document Now" msgid "Check Spelling While Typing" msgstr "Check Spelling While Typing" msgid "Check Grammar With Spelling" msgstr "Check Grammar With Spelling" msgid "Correct Spelling Automatically" msgstr "Correct Spelling Automatically" msgid "Substitutions" msgstr "Substitutions" msgid "Show Substitutions" msgstr "Show Substitutions" msgid "Smart Copy/Paste" msgstr "Smart Copy/Paste" msgid "Smart Quotes" msgstr "Smart Quotes" msgid "Smart Dashes" msgstr "Smart Dashes" msgid "Smart Links" msgstr "Smart Links" msgid "Text Replacement" msgstr "Text Replacement" msgid "Transformations" msgstr "Transformations" msgid "Make Upper Case" msgstr "Make Upper Case" msgid "Make Lower Case" msgstr "Make Lower Case" msgid "Capitalize" msgstr "Capitalise" msgid "Speech" msgstr "Speech" msgid "Start Speaking" msgstr "Start Speaking" msgid "Stop Speaking" msgstr "Stop Speaking" msgid "&View" msgstr "&View" msgid "Enter Full Screen" msgstr "Enter Full Screen" msgid "Window" msgstr "Window" msgid "Minimize" msgstr "Minimise" msgid "Zoom" msgstr "Zoom" msgid "Bring All to Front" msgstr "Bring All to Front" #. TRANSLATORS:File kind displayed in Finder/Explorer msgid "PO Translation" msgstr "PO Translation" msgid "The file cannot be opened." msgstr "The file cannot be opened." msgid "Invalid file" msgstr "Invalid file" msgid "" "The file may be either corrupted or in a format not recognized by Poedit." msgstr "" "The file may be either corrupted or in a format not recognised by Poedit." msgid "You can’t drop more than one file on Poedit window." msgstr "You can’t drop more than one file on Poedit window." #, c-format msgid "File “%s” is not a message catalog." msgstr "File “%s” is not a message catalogue." msgid "Poedit" msgstr "Poedit" msgid "&File" msgstr "&File" msgid "&Go" msgstr "&Go" #. TRANSLATORS: %s is language name in its basic form (as you #. would see e.g. in a list of supported languages). You may need #. to rephrase it, e.g. to an equivalent of "for language %s". #, c-format msgid "" "Spellchecking is disabled, because the dictionary for %s isn’t installed." msgstr "" "Spellchecking is disabled, because the dictionary for %s isn’t installed." msgid "Install" msgstr "Install" msgid "Catalog modified. Do you want to save changes?" msgstr "Catalogue modified. Do you want to save changes?" msgid "Save changes" msgstr "Save changes" msgid "Your changes will be lost if you don’t save them." msgstr "Your changes will be lost if you don’t save them." msgid "Save" msgstr "Save" msgid "Don’t save" msgstr "Don’t save" msgid "Don’t Save" msgstr "Don’t Save" msgid "Save as…" msgstr "Save as…" msgid "Compile to…" msgstr "Compile to…" msgid "Compiled Translation Files" msgstr "Compiled Translation Files" msgid "Export as…" msgstr "Export as…" msgid "HTML Files" msgstr "HTML Files" msgid "Open catalog template" msgstr "Open catalogue template" msgid "Source code not available." msgstr "Source code not available." msgid "Updating failed" msgstr "Updating failed" msgid "" "Translations couldn’t be updated from the source code, because no code was " "found in the location specified in the catalog’s Properties." msgstr "" "Translations couldn’t be updated from the source code, because no code was " "found in the location specified in the catalogue’s Properties." msgid "Entries in the catalog are probably incorrect." msgstr "Entries in the catalogue are probably incorrect." msgid "Updating the catalog failed. Click on 'Details >>' for details." msgstr "Updating the catalogue failed. Click on 'Details >>' for details." #, c-format msgid "%d issue with the translation found." msgid_plural "%d issues with the translation found." msgstr[0] "%d issue with the translation found." msgstr[1] "%d issues with the translation found." msgid "Validation results" msgstr "Validation results" msgid "" "Entries with errors were marked in red in the list. Details of the error " "will be shown when you select such an entry." msgstr "" "Entries with errors were marked in red in the list. Details of the error " "will be shown when you select such an entry." msgid "The file was saved safely." msgstr "The file was saved safely." msgid "" "The file was saved safely and compiled into the MO format, but it will " "probably not work correctly." msgstr "" "The file was saved safely and compiled into the MO format, but it will " "probably not work correctly." msgid "" "The file was saved safely, but it cannot be compiled into the MO format and " "used." msgstr "" "The file was saved safely, but it cannot be compiled into the MO format and " "used." msgid "" "The file was compiled into the MO format, but it will probably not work " "correctly." msgstr "" "The file was compiled into the MO format, but it will probably not work " "correctly." msgid "The file cannot be compiled into the MO format and used." msgstr "The file cannot be compiled into the MO format and used." msgid "No problems with the translation found." msgstr "No problems with the translation found." #, c-format msgid "The translation is ready for use, but %d entry is not translated yet." msgid_plural "" "The translation is ready for use, but %d entries are not translated yet." msgstr[0] "" "The translation is ready for use, but %d entry is not translated yet." msgstr[1] "" "The translation is ready for use, but %d entries are not translated yet." msgid "The translation is ready for use." msgstr "The translation is ready for use." #, c-format msgid "Poedit automatically fixed invalid content in the file “%s”." msgstr "Poedit automatically fixed invalid content in the file “%s”." msgid "" "The file contained duplicate items, which is not allowed in PO files and " "would prevent the file from being used. Poedit fixed the issue, but you " "should review translations of any items marked as needing work and correct " "them if necessary." msgstr "" "The file contained duplicate items, which is not allowed in PO files and " "would prevent the file from being used. Poedit fixed the issue, but you " "should review translations of any items marked as needing work and correct " "them if necessary." msgid "Language of the translation isn’t set." msgstr "" msgid "Set Language" msgstr "Set Language" msgid "Set language" msgstr "Set language" #. TRANSLATORS: This is shown underneath "Language of the translation isn't set (or ...is the same as source language)." msgid "" "Suggestions are not available if the translation language is not set " "correctly. Other features, such as plural forms, may be affected as well." msgstr "" "Suggestions are not available if the translation language is not set " "correctly. Other features, such as plural forms, may be affected as well." msgid "Language of the translation is the same as source language." msgstr "Language of the translation is the same as source language." msgid "Fix Language" msgstr "Fix Language" msgid "Fix language" msgstr "Fix language" msgid "" "This catalog has entries with plural forms, but doesn’t have Plural-Forms " "header configured." msgstr "" msgid "" "Entries in this catalog have different plural forms count from what " "catalog’s Plural-Forms header says" msgstr "" msgid "Required header Plural-Forms is missing." msgstr "Required header Plural-Forms is missing." #, c-format msgid "Syntax error in Plural-Forms header (\"%s\")." msgstr "Syntax error in Plural-Forms header (\"%s\")." msgid "Fix the Header" msgstr "Fix the Header" msgid "Fix the header" msgstr "Fix the header" #. TRANSLATORS: %s is language name in its basic form (as you #. would see e.g. in a list of supported languages). You may need #. to rephrase it, e.g. to an equivalent of "for language %s". #, c-format msgid "Plural forms expression used by the catalog is unusual for %s." msgstr "Plural forms expression used by the catalogue is unusual for %s." #. TRANSLATORS: A verb, shown as action button with ""Plural forms expression used by the catalog is unusual for %s.")" msgid "Review" msgstr "Review" #, c-format msgid "Error loading message catalog file “%s”." msgstr "" #, c-format msgid "Translated: %d of %d (%d %%)" msgstr "Translated: %d of %d (%d %%)" #, c-format msgid "Remaining: %d" msgstr "Remaining: %d" #, c-format msgid "%d error" msgid_plural "%d errors" msgstr[0] "%d error" msgstr[1] "%d errors" #, c-format msgid "%d entry" msgid_plural "%d entries" msgstr[0] "%d entry" msgstr[1] "%d entries" msgid " (unsaved)" msgstr " (unsaved)" msgid " (modified)" msgstr " (modified)" #, c-format msgid "Failed to update translation memory: %s" msgstr "Failed to update translation memory: %s" msgid "Purge deleted translations" msgstr "Purge deleted translations" msgid "Do you want to remove all translations that are no longer used?" msgstr "Do you want to remove all translations that are no longer used?" msgid "" "If you continue with purging, all translations marked as deleted will be " "permanently removed. You will have to translate them again if they are added " "back in the future." msgstr "" "If you continue with purging, all translations marked as deleted will be " "permanently removed. You will have to translate them again if they are added " "back in the future." msgid "Keep" msgstr "Keep" msgid "Purge" msgstr "Purge" msgid "Copy from source text" msgstr "Copy from source text" msgid "Copy from Source Text" msgstr "Copy from Source Text" #. TRANSLATORS: This is the key shortcut used in menus on Windows, some languages call them differently #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Ctrl+" msgstr "Ctrl+" msgid "Clear translation" msgstr "Clear translation" msgid "Clear Translation" msgstr "Clear Translation" msgid "Edit comment" msgstr "Edit comment" msgid "Edit Comment" msgstr "Edit Comment" msgid "References:" msgstr "References:" msgid "&Bookmarks" msgstr "&Bookmarks" #. TRANSLATORS: This is the key shortcut used in menus on Windows, some languages call them differently #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Alt+" msgstr "Alt+" #, c-format msgid "Set bookmark %i" msgstr "Set bookmark %i" #, c-format msgid "Go to bookmark %i" msgstr "Go to bookmark %i" #, c-format msgid "Set Bookmark %i" msgstr "Set Bookmark %i" #, c-format msgid "Go to Bookmark %i" msgstr "Go to Bookmark %i" msgid "Hide Sidebar" msgstr "Hide Sidebar" msgid "Show Sidebar" msgstr "Show Sidebar" msgid "Hide Status Bar" msgstr "Hide Status Bar" msgid "Show Status Bar" msgstr "Show Status Bar" msgid "Source text:" msgstr "Source text:" msgid "Singular:" msgstr "Singular:" msgid "Plural:" msgstr "Plural:" msgid "Translation:" msgstr "Translation:" msgid "Pre-translated" msgstr "" msgid "Needs Work" msgstr "" #. TRANSLATORS: This indicates that the string's translation isn't final #. and has known problems. For example, it might be machine translated or #. fuzzy matched from an older string. The translation should be short and #. convey this. If it's problematic to translate it, "Needs review" is #. acceptable substitute, but note that the meaning is subtly different: #. "needs review" implies that somebody else should review the string after #. I am done with it (i.e. consider it good), while "needs work" implies I #. need to return to it and finish the translation. msgid "Needs work" msgstr "" msgid "" "POT files are only templates and don’t contain any translations themselves.\n" "To make a translation, create a new PO file based on the template." msgstr "" "POT files are only templates and don’t contain any translations themselves.\n" "To make a translation, create a new PO file based on the template." msgid "Create New Translation" msgstr "Create New Translation" msgid "Create new translation" msgstr "Create new translation" msgid "Everything" msgstr "Everything" #, c-format msgid "Form %i" msgstr "Form %i" msgid "Singular" msgstr "Singular" msgid "Zero" msgstr "Zero" msgid "One" msgstr "One" msgid "Two" msgstr "Two" msgid "Plural" msgstr "Plural" msgid "Other" msgstr "Other" #, c-format msgid "%s Format" msgstr "" #. TRANSLATORS: %s is replaced with language name, e.g. "PHP" or "C", so "PHP Format" etc." #, c-format msgid "%s format" msgstr "" msgid "Source text" msgstr "Source text" #, c-format msgid "Translation — %s" msgstr "Translation — %s" msgid "ID" msgstr "ID" #, c-format msgid "Source text — %s" msgstr "Source text — %s" msgid "unknown language" msgstr "unknown language" #, c-format msgid "Failed command: %s" msgstr "Failed command: %s" msgid "Failed to merge gettext catalogs." msgstr "Failed to merge gettext catalogues." msgid "Source file" msgstr "Source file" msgid "Source file occurrence:" msgstr "Source file occurrence:" msgid "Open in Editor" msgstr "Open in Editor" msgid "Open in editor" msgstr "Open in editor" msgid "No references for the selected item." msgstr "No references for the selected item." #, c-format msgid "Error opening file %s!" msgstr "Error opening file %s!" msgid "Find" msgstr "Find" msgid "Replace" msgstr "Replace" #. TRANSLATORS: Expander in Find window for additional options (case sensitive etc.) msgid "Options" msgstr "Options" msgid "Ignore case" msgstr "Ignore case" msgid "Wrap around" msgstr "Wrap around" msgid "Whole words only" msgstr "Whole words only" msgid "Find in source texts" msgstr "Find in source texts" msgid "Find in translations" msgstr "Find in translations" msgid "Find in comments" msgstr "Find in comments" msgid "Close" msgstr "Close" msgid "Replace &All" msgstr "" msgid "Replace &all" msgstr "" msgid "&Replace" msgstr "" msgid "< &Previous" msgstr "< &Previous" msgid "&Next >" msgstr "&Next >" msgid "String to find" msgstr "String to find" msgid "Replacement string" msgstr "Replacement string" #, c-format msgid "Cannot execute program: %s" msgstr "Cannot execute program: %s" msgid "Language Code or Name (e.g. en_GB)" msgstr "Language Code or Name (e.g. en_GB)" msgid "Translation Language" msgstr "Translation Language" msgid "Language of the translation:" msgstr "Language of the translation:" msgid "Poedit - Catalogs manager" msgstr "Poedit - Catalogues manager" msgid "Catalog" msgstr "Catalogue" msgid "Total" msgstr "Total" msgid "Untrans" msgstr "Untrans" msgid "Errors" msgstr "" msgid "Last modified" msgstr "Last modified" msgid "Select directory" msgstr "Select directory" msgid "Directories:" msgstr "Directories:" msgid "" msgstr "" msgid "Do you want to delete the project?" msgstr "Do you want to delete the project?" msgid "Confirmation" msgstr "Confirmation" msgid "" "Do you really want to do mass update of\n" "all catalogs in this project?" msgstr "" "Do you really want to do mass update of\n" "all catalogues in this project?" msgid "Information about the translator" msgstr "Information about the translator" msgid "Name:" msgstr "Name:" msgid "Your Name" msgstr "Your Name" msgid "Email:" msgstr "E-mail:" msgid "your_email@example.com" msgstr "your_e-mail@example.com" msgid "" "Your name and email address are only used to set the Last-Translator header " "of GNU gettext files." msgstr "" "Your name and e-mail address are only used to set the Last-Translator header " "of GNU gettext files." msgid "Editing" msgstr "Editing" msgid "Automatically compile MO file when saving" msgstr "Automatically compile MO file when saving" msgid "Show summary after catalog update" msgstr "Show summary after catalogue update" msgid "Check spelling" msgstr "Check spelling" msgid "Always change focus to text input field" msgstr "Always change focus to text input field" msgid "" "Never let the list of strings take focus. If enabled, you must use Ctrl-" "arrows for keyboard navigation but you can also type text immediately, " "without having to press Tab to change focus." msgstr "" "Never let the list of strings take focus. If enabled, you must use Ctrl-" "arrows for keyboard navigation but you can also type text immediately, " "without having to press Tab to change focus." msgid "Appearance" msgstr "Appearance" msgid "Use custom list font:" msgstr "Use custom list font:" msgid "Use custom text fields font:" msgstr "Use custom text fields font:" msgid "Change UI language" msgstr "Change UI language" #. TRANSLATORS: This is a note appended to "Check spelling" when running on older Windows versions msgid "(requires Windows 8 or newer)" msgstr "(requires Windows 8 or newer)" msgid "General" msgstr "General" msgid "Use translation memory" msgstr "Use translation memory" msgid "Learn From Files…" msgstr "" msgid "Learn from files…" msgstr "" #. TRANSLATORS: This is a button that deletes everything in the translation memory (i.e. clears/resets it). msgid "Reset" msgstr "Reset" #. TRANSLATORS: Followed by "match translations within the file" or "pre-translate from TM" msgid "When updating from sources" msgstr "" #. TRANSLATORS: Preceded by "When updating from sources" msgid "fuzzy match within the file" msgstr "" #. TRANSLATORS: Preceded by "When updating from sources" msgid "pre-translate from TM" msgstr "" msgid "" "Poedit can attempt to fill in new entries from only previous translations in " "the file or from your entire translation memory. Using the TM won’t be very " "effective if it’s near-empty, but it will get better as you add more " "translations to it." msgstr "" msgid "Stored translations:" msgstr "Stored translations:" msgid "Database size on disk:" msgstr "Database size on disk:" msgid "Select translation files to import" msgstr "Select translation files to import" msgid "Translation Memory" msgstr "Translation Memory" msgid "Importing translations…" msgstr "" msgid "Finalizing…" msgstr "" msgid "Reset translation memory" msgstr "Reset translation memory" msgid "Are you sure you want to reset the translation memory?" msgstr "Are you sure you want to reset the translation memory?" msgid "" "Resetting the translation memory will irrevocably delete all stored " "translations from it. You can’t undo this operation." msgstr "" "Resetting the translation memory will irrevocably delete all stored " "translations from it. You can’t undo this operation." msgid "Cancel" msgstr "Cancel" #. TRANSLATORS: This is abbreviation of "Translation Memory" used in Preferences on macOS. #. Long text looks weird there, too short (like TM) too, but less so. "General" is about ideal #. length there. msgid "TM" msgstr "TM" msgid "" "Source code extractors are used to find translatable strings in the source " "code files and extract them so that they can be translated." msgstr "" "Source code extractors are used to find translatable strings in the source " "code files and extract them so that they can be translated." msgid "Custom Extractors:" msgstr "" msgid "Custom extractors:" msgstr "" msgid "Edit…" msgstr "" msgid "GNU gettext" msgstr "" msgid "" "Supports all programming languages recognized by GNU gettext tools (PHP, C/C+" "+, C#, Perl, Python, Java, JavaScript and others)." msgstr "" msgid "Delete extractor" msgstr "Delete extractor" #, c-format msgid "Are you sure you want to delete the “%s” extractor?" msgstr "Are you sure you want to delete the “%s” extractor?" msgid "Extractors" msgstr "Extractors" msgid "Accounts" msgstr "Accounts" msgid "Automatically check for updates" msgstr "Automatically check for updates" msgid "Include beta versions" msgstr "Include beta versions" msgid "" "Beta versions contain the latest new features and improvements, but may be a " "bit less stable." msgstr "" "Beta versions contain the latest new features and improvements, but may be a " "bit less stable." msgid "Updates" msgstr "Updates" msgid "" "These settings affect internal formatting of PO files. Adjust them if you " "have specific requirements e.g. because of version control." msgstr "" "These settings affect internal formatting of PO files. Adjust them if you " "have specific requirements e.g. because of version control." msgid "Line endings:" msgstr "Line endings:" msgid "Unix (recommended)" msgstr "Unix (recommended)" msgid "Windows" msgstr "Windows" #. TRANSLATORS: Followed by text control for entering number; wraps text at given width msgid "Wrap at:" msgstr "Wrap at:" msgid "Preserve formatting of existing files" msgstr "Preserve formatting of existing files" msgid "Advanced" msgstr "Advanced" msgid "Pre-translating…" msgstr "Pre-translating…" #, c-format msgid "Pre-translated %u string" msgid_plural "Pre-translated %u strings" msgstr[0] "" msgstr[1] "" #. TRANSLATORS: This is a somewhat common term describing the action where #. you apply the translation memory and/or machine translation to all of the #. strings you're translating as the first step, followed by correcting, #. improving etc., i.e. actually translating the strings. This may be tricky #. to express in other languages as simply as in English, but please try to #. keep it similarly concise. Please try to avoid, if possible, describing it #. as "auto-translation" and similar, because such terminology would mislead #. some users into thinking it's all that needs to be done (spoken from #. experience). "Pre-translate" nicely expresses that it's only the step done #. *before* actual translation. msgid "Pre-translate" msgstr "" msgid "Only fill in exact matches" msgstr "Only fill in exact matches" msgid "" "By default, inaccurate results are filled in as well and marked as needing " "work. Check this option to only include accurate matches." msgstr "" msgid "Don’t mark exact matches as needing work" msgstr "" msgid "" "Only enable if you trust the quality of your TM. By default, all matches " "from the TM are marked as needing work and should be reviewed before use." msgstr "" msgid "" "Pre-translation automatically finds exact or fuzzy matches for untranslated " "strings in the translation memory and fills in their translations." msgstr "" #, c-format msgid "%d entry was pre-translated." msgid_plural "%d entries were pre-translated." msgstr[0] "" msgstr[1] "" msgid "" "The translations were marked as needing work, because they may be " "inaccurate. You should review them for correctness." msgstr "" msgid "No entries could be pre-translated." msgstr "" msgid "" "The TM doesn’t contain any strings similar to the content of this file. It " "is only effective for semi-automatic translations after Poedit learns enough " "from files that you translated manually." msgstr "" "The TM doesn’t contain any strings similar to the content of this file. It " "is only effective for semi-automatic translations after Poedit learns enough " "from files that you translated manually." msgid "" "Drag and Drop Folders Here\n" "\n" "or use the + button" msgstr "" "Drag and Drop Folders Here\n" "\n" "or use the + button" msgid "" "Drag and drop folders here\n" "\n" "or use the + button" msgstr "" "Drag and drop folders here\n" "\n" "or use the + button" msgid "Add Folders…" msgstr "" msgid "Add folders…" msgstr "" msgid "Add Files…" msgstr "" msgid "Add files…" msgstr "" msgid "Add Wildcard…" msgstr "" msgid "Add wildcard…" msgstr "" msgid "Paths" msgstr "Paths" msgid "Excluded paths" msgstr "Excluded paths" msgid "Advanced extraction settings" msgstr "" msgid "Extract notes for translators from:" msgstr "" msgid "Comments prefixed with:" msgstr "" msgid "All comments" msgstr "" msgid "Additional xgettext flags:" msgstr "" msgid "Additional keywords" msgstr "Additional keywords" msgid "Name of the project the translation is for" msgstr "Name of the project the translation is for" msgid "Team name and email address or URL" msgstr "" msgid "e.g. nplurals=2; plural=(n > 1);" msgstr "e.g. nplurals=2; plural=(n > 1);" msgid "UTF-8 (recommended)" msgstr "UTF-8 (recommended)" msgid "Please save the file first. This section cannot be edited until then." msgstr "Please save the file first. This section cannot be edited until then." msgid "Not all plural forms are translated." msgstr "" msgid "The translation should start as a sentence." msgstr "" msgid "The translation should start with a lowercase character." msgstr "" msgid "The translation doesn’t start with a space." msgstr "" msgid "The translation starts with a space, but the source text doesn’t." msgstr "" msgid "The translation is missing a newline at the end." msgstr "" msgid "The translation ends with a newline, but the source text doesn’t." msgstr "" msgid "The translation is missing a space at the end." msgstr "" msgid "The translation ends with a space, but the source text doesn’t." msgstr "" #, c-format msgid "The translation should end with “%s”." msgstr "" #, c-format msgid "The translation should not end with “%s”." msgstr "" #, c-format msgid "The translation ends with “%s”, but the source text ends with “%s”." msgstr "" msgid "Comment:" msgstr "Comment:" msgid "OK" msgstr "OK" msgid "C&lear" msgstr "C&lear" msgid "Clear the comment" msgstr "Clear the comment" msgid "New" msgstr "New" msgid "Create new translations project" msgstr "Create new translations project" msgid "Edit" msgstr "Edit" msgid "Edit the project" msgstr "Edit the project" msgid "Delete the project" msgstr "Delete the project" msgid "Update all" msgstr "Update all" msgid "Update all catalogs in the project" msgstr "Update all catalogues in the project" msgid "Edit project" msgstr "Edit project" msgid "Project name:" msgstr "Project name:" msgid "Browse" msgstr "Browse" msgid "Add directory to the list" msgstr "Add directory to the list" msgid "&New…" msgstr "" msgid "New from &POT/PO file…" msgstr "" msgid "New From &POT/PO File…" msgstr "" msgid "&Open…" msgstr "" msgid "Open Recent" msgstr "Open Recent" msgid "Open from Crowdin…" msgstr "" msgid "Open From Crowdin…" msgstr "" msgid "&Close" msgstr "&Close" msgid "&Save" msgstr "&Save" msgid "Save &as…" msgstr "" msgid "Save &As…" msgstr "" msgid "Compile to MO…" msgstr "" msgid "E&xport as HTML…" msgstr "" msgid "Check for updates…" msgstr "" msgid "&Preferences…" msgstr "" msgid "Catalogs &manager" msgstr "Catalogues &manager" msgid "Catalogs &Manager" msgstr "Catalogues &Manager" msgid "E&xit" msgstr "E&xit" msgid "Quit" msgstr "Quit" msgid "Copy from singular" msgstr "Copy from singular" msgid "Copy From Singular" msgstr "Copy From Singular" msgid "Translation needs &work" msgstr "" msgid "Translation Needs &Work" msgstr "" msgid "Edit &comment" msgstr "Edit &comment" msgid "Edit &Comment" msgstr "Edit &Comment" msgid "Suggestions" msgstr "Suggestions" msgid "&Find…" msgstr "" msgid "Replace…" msgstr "" msgid "Find next" msgstr "Find next" msgid "Find previous" msgstr "Find previous" msgid "Find and Replace…" msgstr "" msgid "Find Next" msgstr "Find Next" msgid "Find Previous" msgstr "Find Previous" msgid "&Preferences" msgstr "&Preferences" msgid "Display entry &IDs" msgstr "Display entry &IDs" msgid "Display Entry &IDs" msgstr "Display Entry &IDs" msgid "Sort by &file order" msgstr "Sort by &file order" msgid "Sort by &File Order" msgstr "Sort by &File Order" msgid "Sort by &source" msgstr "Sort by &source" msgid "Sort by &Source" msgstr "Sort by &Source" msgid "Sort by &translation" msgstr "Sort by &translation" msgid "Sort by &Translation" msgstr "Sort by &Translation" msgid "&Group by context" msgstr "&Group by context" msgid "&Group By Context" msgstr "&Group By Context" msgid "Entries with errors first" msgstr "Entries with errors first" msgid "Entries with Errors First" msgstr "Entries with Errors First" msgid "&Untranslated entries first" msgstr "&Untranslated entries first" msgid "&Untranslated Entries First" msgstr "&Untranslated Entries First" msgid "&Show references" msgstr "&Show references" msgid "&Show References" msgstr "&Show References" msgid "Show sidebar" msgstr "Show sidebar" msgid "Show status bar" msgstr "Show status bar" msgid "C&atalog" msgstr "C&atalogue" msgid "&Update from sources" msgstr "&Update from sources" msgid "&Update from Sources" msgstr "&Update from Sources" msgid "Update from &POT file…" msgstr "" msgid "Update from &POT File…" msgstr "" msgid "Sync with Crowdin" msgstr "Sync with Crowdin" msgid "Pre-&translate…" msgstr "" msgid "&Purge deleted translations" msgstr "&Purge deleted translations" msgid "&Purge Deleted Translations" msgstr "&Purge Deleted Translations" msgid "&Validate translations" msgstr "&Validate translations" msgid "&Validate Translations" msgstr "&Validate Translations" msgid "&Properties…" msgstr "" msgid "&Done and next" msgstr "&Done and next" msgid "&Done and Next" msgstr "&Done and Next" msgid "&Previous translation" msgstr "&Previous translation" msgid "&Previous Translation" msgstr "&Previous Translation" msgid "&Next translation" msgstr "&Next translation" msgid "&Next Translation" msgstr "&Next Translation" msgid "P&revious unfinished" msgstr "P&revious unfinished" msgid "P&revious Unfinished" msgstr "P&revious Unfinished" msgid "Ne&xt unfinished" msgstr "Ne&xt unfinished" msgid "Ne&xt Unfinished" msgstr "Ne&xt Unfinished" msgid "Previous plural form" msgstr "Previous plural form" msgid "Previous Plural Form" msgstr "Previous Plural Form" msgid "Next plural form" msgstr "Next plural form" msgid "Next Plural Form" msgstr "Next Plural Form" msgid "&Online help" msgstr "&Online help" msgid "&Online Help" msgstr "&Online Help" msgid "&GNU gettext manual" msgstr "&GNU gettext manual" msgid "&GNU gettext Manual" msgstr "&GNU gettext Manual" msgid "&About Poedit" msgstr "&About Poedit" msgid "&About" msgstr "&About" msgid "Extractor setup" msgstr "Extractor setup" msgid "List of extensions separated by semicolons (e.g. *.cpp;*.h):" msgstr "List of extensions separated by semicolons (e.g. *.cpp;*.h):" msgid "Invocation:" msgstr "Invocation:" msgid "Command to extract translations:" msgstr "Command to extract translations:" msgid "" "This is the command used to launch the extractor.\n" "%o expands to the name of output file, %K to list\n" "of keywords, %F to list of input files,\n" "%C to charset flag (see below)." msgstr "" "This is the command used to launch the extractor.\n" "%o expands to the name of output file, %K to list\n" "of keywords, %F to list of input files,\n" "%C to charset flag (see below)." msgid "An item in keywords list:" msgstr "An item in keywords list:" msgid "" "This will be attached to the command line once\n" "for each keyword. %k expands to the keyword." msgstr "" "This will be attached to the command line once\n" "for each keyword. %k expands to the keyword." msgid "An item in input files list:" msgstr "An item in input files list:" #, c-format msgid "" "This will be attached to the command line once\n" "for each input file. %f expands to the filename." msgstr "" "This will be attached to the command line once\n" "for each input file. %f expands to the filename." msgid "Source code charset:" msgstr "Source code charset:" #, c-format msgid "" "This will be attached to the command line\n" "only if source code charset was given. %c expands to charset value." msgstr "" msgid "Catalog properties" msgstr "Catalogue properties" msgid "Project name and version:" msgstr "Project name and version:" msgid "Language team:" msgstr "" msgid "Plural forms:" msgstr "" msgid "Use default rules for this language" msgstr "Use default rules for this language" msgid "Use custom expression" msgstr "Use custom expression" msgid "Learn about plural forms" msgstr "Learn about plural forms" msgid "Charset:" msgstr "Charset:" msgid "Advanced Extraction Settings…" msgstr "" msgid "Advanced extraction settings…" msgstr "" msgid "Translation Properties" msgstr "" msgid "Translation properties" msgstr "Translation properties" msgid "Sources Paths" msgstr "" msgid "Sources paths" msgstr "Sources paths" msgid "Extract text from source files in the following directories:" msgstr "Extract text from source files in the following directories:" msgid "Base path:" msgstr "Base path:" msgid "Sources Keywords" msgstr "" msgid "Sources keywords" msgstr "Sources keywords" msgid "" "Use these keywords (function names) to recognize translatable strings\n" "in source files:" msgstr "" "Use these keywords (function names) to recognise translatable strings\n" "in source files:" msgid "Also use default keywords for supported languages" msgstr "" msgid "Learn About Gettext Keywords" msgstr "" msgid "Learn about gettext keywords" msgstr "Learn about gettext keywords" msgid "Update summary" msgstr "Update summary" msgid "" "These strings were found in the sources but were not in the catalog.\n" "Poedit will add them to the catalog now." msgstr "" "These strings were found in the sources but were not in the catalogue.\n" "Poedit will add them to the catalogue now." msgid "New strings" msgstr "New strings" msgid "" "These strings are no longer in the sources.\n" "Poedit will remove them from the catalog now." msgstr "" "These strings are no longer in the sources.\n" "Poedit will remove them from the catalogue now." msgid "Obsolete strings" msgstr "Obsolete strings" msgid "(0 new, 0 obsolete)" msgstr "(0 new, 0 obsolete)" msgid "Open" msgstr "Open" msgid "Save catalog" msgstr "Save catalogue" msgid "Validate" msgstr "Validate" msgid "Check for errors in the translation" msgstr "Check for errors in the translation" msgid "Update" msgstr "Update" msgid "Update catalog - synchronize it with sources" msgstr "Update catalogue - synchronise it with sources" msgid "Sidebar" msgstr "Sidebar" msgid "Show or hide the sidebar" msgstr "Show or hide the sidebar" #. TRANSLATORS: "Previous" as in used in the past, now replaced with newer. msgid "Previous source text:" msgstr "Previous source text:" msgid "" "The old source text (before it changed during an update) that the now-" "inaccurate translation corresponds to." msgstr "" msgid "Notes for translators:" msgstr "Notes for translators:" msgid "Add comment" msgstr "Add comment" msgid "Add Comment" msgstr "Add Comment" msgid "Translation suggestions:" msgstr "Translation suggestions:" #. TRANSLATORS: This is shown when no translation suggestions can be found in the TM (Windows). msgid "No matches found" msgstr "No matches found" #. TRANSLATORS: This is shown when no translation suggestions can be found in the TM (macOS, Linux). msgid "No Matches Found" msgstr "No Matches Found" msgid "This string was found in Poedit’s translation memory." msgstr "This string was found in Poedit’s translation memory." msgid "Cannot create temporary directory." msgstr "Cannot create temporary directory." msgid "Welcome to Poedit" msgstr "Welcome to Poedit" #. TRANSLATORS: This is version information in about dialog, "%s" will be #. version number when used #, c-format msgid "Version %s" msgstr "Version %s" msgid "Edit a Translation" msgstr "" msgid "Edit a translation" msgstr "Edit a translation" msgid "Open an existing PO file and edit the translation." msgstr "Open an existing PO file and edit the translation." msgid "" "Take an existing PO file or POT template and create a new translation from " "it." msgstr "" "Take an existing PO file or POT template and create a new translation from " "it." msgid "Collaborate on a Translation with Others" msgstr "" msgid "Collaborate on a translation with others" msgstr "Collaborate on a translation with others" msgid "" "Download a file from Crowdin project, translate and sync your changes back." msgstr "" "Download a file from Crowdin project, translate and sync your changes back." msgid "What is Crowdin?" msgstr "What is Crowdin?" msgid "There are no translations. That’s unusual." msgstr "There are no translations. That’s unusual." msgid "" "Translatable entries aren’t added manually in the Gettext system, but are " "automatically extracted\n" "from source code. This way, they stay up to date and accurate.\n" "Translators typically use PO template files (POTs) prepared for them by the " "developer." msgstr "" msgid "(Learn more about GNU gettext)" msgstr "(Learn more about GNU gettext)" msgid "The simplest way to fill this catalog is to update it from a POT:" msgstr "The simplest way to fill this catalogue is to update it from a POT:" msgid "Update from POT" msgstr "Update from POT" msgid "Take translatable strings from an existing POT template." msgstr "Take translatable strings from an existing POT template." msgid "" "You can also extract translatable strings directly from the source code:" msgstr "" "You can also extract translatable strings directly from the source code:" msgid "Extract from sources" msgstr "Extract from sources" msgid "Configure source code extraction in Properties." msgstr "Configure source code extraction in Properties." msgid "Sync" msgstr "Sync" msgid "Synchronize the translation with Crowdin" msgstr "Synchronise the translation with Crowdin" #. TRANSLATORS: This is titlebar of about dialog, "%s" is application name #. ("Poedit" here, but please use "%s") #, c-format msgid "About %s" msgstr "About %s" #. TRANSLATORS: Title of the preferences window on Windows and Linux. "%s" is replaced with "Poedit" when running. #, c-format msgid "%s Preferences" msgstr "" #. TRANSLATORS: macOS item in app menu msgid "Services" msgstr "" #. TRANSLATORS: macOS item in app menu, %s is replaced with "Poedit" #, c-format msgid "Hide %s" msgstr "" #. TRANSLATORS: macOS item in app menu msgid "Hide Others" msgstr "" #. TRANSLATORS: macOS item in app menu msgid "Show All" msgstr "" #. TRANSLATORS: macOS item in app menu, %s is replaced with "Poedit" #, c-format msgid "Quit %s" msgstr "" #. TRANSLATORS: macOS item in app menu msgid "Preferences…" msgstr "" msgid "Preferences..." msgstr "" #. TRANSLATORS: Title of a category in Windows task menu (right-click icon in taskbar) msgid "Recent" msgstr "" #. TRANSLATORS: Title of a category in Windows task menu (right-click icon in taskbar) msgid "Frequent" msgstr "" msgid "&Apply" msgstr "" msgid "Apply" msgstr "" msgid "&Back" msgstr "" msgid "Back" msgstr "" msgid "&Cancel" msgstr "" msgid "&Clear" msgstr "" msgid "Clear" msgstr "" msgid "Copy" msgstr "Copy" msgid "Cu&t" msgstr "Cu&t" msgid "Cut" msgstr "Cut" msgid "&Delete" msgstr "&Delete" msgid "&Quit" msgstr "" msgid "File" msgstr "" msgid "Help" msgstr "" msgid "&New" msgstr "" msgid "&No" msgstr "" msgid "No" msgstr "" msgid "&OK" msgstr "" msgid "Open…" msgstr "" msgid "&Open..." msgstr "&Open..." msgid "Open..." msgstr "" msgid "&Paste" msgstr "&Paste" msgid "Paste" msgstr "Paste" msgid "Preferences" msgstr "" msgid "&Redo" msgstr "&Redo" msgid "Refresh" msgstr "" msgid "&Save as" msgstr "" msgid "Save as" msgstr "" msgid "Select &All" msgstr "Select &All" msgid "Select All" msgstr "Select All" msgid "&Undo" msgstr "&Undo" msgid "&Yes" msgstr "" msgid "Yes" msgstr "" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Shift+" msgstr "Shift+" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Enter" msgstr "Enter" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Up" msgstr "Up" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Down" msgstr "Down" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Left" msgstr "" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Right" msgstr "" #. TRANSLATORS: Keyboard shortcut, must correspond to translation of "Ctrl+" msgid "ctrl" msgstr "ctrl" #. TRANSLATORS: Keyboard shortcut, must correspond to translation of "Alt+" msgid "alt" msgstr "alt" #. TRANSLATORS: Keyboard shortcut, must correspond to translation of "Shift+" msgid "shift" msgstr "shift" poedit-2.0.6/locales/pa.po0000664000372000037200000014173313230131554012314 00000000000000msgid "" msgstr "" "Project-Id-Version: poedit\n" "Report-Msgid-Bugs-To: help@poedit.net\n" "POT-Creation-Date: 2017-12-05 15:52+0100\n" "PO-Revision-Date: 2017-07-27 03:15-0400\n" "Last-Translator: vslavik \n" "Language-Team: Punjabi\n" "Language: pa_IN\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: crowdin.com\n" "X-Crowdin-Project: poedit\n" "X-Crowdin-Language: pa-IN\n" "X-Crowdin-File: /locales/poedit.pot\n" msgid "Hide this notification message" msgstr "ਇਹ ਸੂਚਨਾ ਸੁਨੇਹਾ ਓਹਲੇ ਕਰੋ" msgid "Don’t Show Again" msgstr "" msgid "Don’t show again" msgstr "" #, c-format msgid "(New: %i, obsolete: %i)" msgstr "(ਨਵੇਂ: %i, ਬਰਤਰਫ਼: %i)" msgid "Updating catalog" msgstr "ਕੈਟਾਲਾਗ ਅੱਪਡੇਟ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ" msgid "Collecting source files…" msgstr "" msgid "Extracting translatable strings…" msgstr "" msgid "Failed to load extracted catalog." msgstr "ਖੋਲ੍ਹੇ ਗਏ ਕੈਟਾਲਾਗ ਨੂੰ ਲੋਡ ਕਰਨ ਲਈ ਫੇਲ੍ਹ ਹੈ।" msgid "Merging differences…" msgstr "" #, c-format msgid "“%s” is not a valid POT file." msgstr "" #, c-format msgid "%i line of file “%s” was not loaded correctly." msgid_plural "%i lines of file “%s” were not loaded correctly." msgstr[0] "" msgstr[1] "" #, c-format msgid "Line %d of file “%s” is corrupted (not valid %s data)." msgstr "" #, c-format msgid "Malformed header: “%s”" msgstr "" msgid "" "Broken catalog file: singular form msgstr used together with msgid_plural" msgstr "ਟੁੱਟੀ ਕੈਟਾਲਾਗ ਫਾਇਲ: ਇਕਹੇਰੀ msgstr ਨੂੰ msgid_plural ਨਾਲ ਵਰਤਿਆ ਗਿਆ ਹੈ" msgid "Broken catalog file: plural form msgstr used without msgid_plural" msgstr "ਟੁੱਟੀ ਕੈਟਾਲਾਗ ਫਾਇਲ: ਬਹੁ-ਵਚਨ msgstr ਨੂੰ msgid_plural ਬਿਨਾਂ ਵਰਤਿਆ ਗਿਆ ਹੈ" msgid "" "There were errors when loading the catalog. Some data may be missing or " "corrupted as the result." msgstr "ਕੈਟਾਲਾਗ ਲੋਡ ਕਰਨ ਦੋਰਾਨ ਗਲਤੀ ਹੈ। ਨਤੀਜੇ ਵਜੋਂ ਕੁਝ ਡਾਟਾ ਗੁੰਮ ਹੈ ਜਾਂ ਨਿਕਾਰਾ ਹੋ ਗਿਆ ਹੈ।" #, c-format msgid "Couldn’t load file %s, it is probably corrupted." msgstr "" #, c-format msgid "" "File “%s” is read-only and cannot be saved.\n" "Please save it under different name." msgstr "" #, c-format msgid "Couldn’t save file %s." msgstr "" msgid "" "There was a problem formatting the file nicely (but it was saved all right)." msgstr "ਫਾਈਲ ਨੂੰ ਸਹੀ ਤਰ੍ਹਾਂ ਫਾਰਮੇਟ ਕਰਦੇ ਸਮੇਂ ਇੱਕ ਖ਼ਾਮੀ ਆਈ ਸੀ (ਪਰ ਇਹ ਠੀਕ ਤਰ੍ਹਾਂ ਸੰਭਾਲੀ ਗਈ)।" #, c-format msgid "" "The catalog couldn’t be saved in “%s” charset as specified in catalog " "settings.\n" "\n" "It was saved in UTF-8 instead and the setting was modified accordingly." msgstr "" msgid "Error saving catalog" msgstr "ਕੈਟਾਲਾਗ ਸੰਭਾਲਣ ਦੌਰਾਨ ਗਲਤੀ" msgid "PO Translation Files" msgstr "PO ਅਨੁਵਾਦ ਫਾਈਲਾਂ" msgid "POT Translation Templates" msgstr "" msgid "All Translation Files" msgstr "ਸਾਰੀਆਂ ਅਨੁਵਾਦ ਫ਼ਾਇਲਾਂ" msgid "(Use default language)" msgstr "(ਮੂਲ ਭਾਸ਼ਾ ਵਰਤੋਂ)" msgid "Select your preferred language" msgstr "ਆਪਣੀ ਪਸੰਦ ਦੀ ਭਾਸ਼ਾ ਚੁਣੋ" msgid "Language selection" msgstr "ਭਾਸ਼ਾ ਚੋਣ" msgid "You must restart Poedit for this change to take effect." msgstr "ਤੁਹਾਨੂੰ ਤਬਦੀਲੀਆਂ ਲਾਗੂ ਕਰਨ ਲਈ ਪੋਆਡਿਟ ਮੁੜ ਚਾਲੂ ਕਰਨਾ ਪਵੇਗਾ।" msgid "Syncing" msgstr "ਸਿੰਕ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ" #. TRANSLATORS: %s is a cloud destination, e.g. "Crowdin" or ftp.wordpress.com etc. #, c-format msgid "Syncing with %s…" msgstr "…%s ਨਾਲ ਸਿੰਕ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ" #. TRANSLATORS: %s is a cloud destination, e.g. "Crowdin" or ftp.wordpress.com etc. #, c-format msgid "Syncing with %s failed." msgstr "" msgid "Syncing error" msgstr "ਸਿੰਕ ਕਰਨ ਵਿੱਚ ਗਲਤੀ" msgid "Downloading translations is disabled in this project." msgstr "" msgid "Not authorized, please sign in again." msgstr "" msgid "" "Crowdin is an online localization management platform and collaborative " "translation tool. Poedit can seamlessly sync PO files managed at Crowdin." msgstr "" msgid "Sign In" msgstr "ਸਾਈਨ ਇਨ" msgid "Sign in" msgstr "ਸਾਈਨ ਇਨ" msgid "Sign Out" msgstr "ਸਾਈਨ ਆਉਟ" msgid "Sign out" msgstr "ਸਾਈਨ ਆਉਟ" msgid "Waiting for authentication…" msgstr "ਪਰਮਾਣਕਿਤਾ ਦੀ ਉਡੀਕ ਕੀਤੀ ਜਾ ਰਹੀ ਹੈ…" msgid "Updating user information…" msgstr "ਵਰਤੋਂਕਾਰ ਜਾਣਕਾਰੀ ਨੂੰ ਅੱਪਡੇਟ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ…" msgid "Signed in as:" msgstr "ਇਸ ਵਜੋਂ ਸਾਈਨ ਇਨ ਕੀਤਾ:" msgid "Learn More About Crowdin" msgstr "Crowdin ਬਾਰੇ ਹੋਰ ਜਾਣੋ" msgid "Learn more about Crowdin" msgstr "Crowdin ਬਾਰੇ ਹੋਰ ਜਾਣੋ" msgid "Sign in to Crowdin" msgstr "" msgid "Open Crowdin translation" msgstr "Crowdin ਅਨੁਵਾਦ ਨੂੰ ਖੋਲ੍ਹੋ" msgid "Project:" msgstr "ਪਰੋਜੈਕਟ:" msgid "Language:" msgstr "ਭਾਸ਼ਾ:" msgid "File:" msgstr "ਫ਼ਾਇਲ:" msgid "No translation projects listed in your Crowdin account." msgstr "" msgid "This project has no files that can be translated in Poedit." msgstr "" msgid "This file can only be edited in Crowdin’s web interface." msgstr "" msgid "Downloading latest translations…" msgstr "" msgid "Syncing with Crowdin failed." msgstr "" msgid "Crowdin error" msgstr "Crowdin ਗਲਤੀ" msgid "Uploading translations…" msgstr "…ਅਨੁਵਾਦ ਅੱਪਲੋਡ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ" msgid "&Copy" msgstr "ਕਾਪੀ ਕਰੋ(&C)" msgid "Learn more" msgstr "ਹੋਰ ਜਾਣੋ" msgid "Learn More" msgstr "ਹੋਰ ਜਾਣੋ" msgid "&Help" msgstr "ਮੱਦਦ(&H)" msgid "MO files can’t be directly edited in Poedit." msgstr "" msgid "Error opening file" msgstr "ਫਾਈਲ ਖੋਲ੍ਹਣ ਦੌਰਾਨ ਗਲਤੀ" msgid "" "Please open and edit the corresponding PO file instead. When you save it, " "the MO file will be updated as well." msgstr "" msgid "don’t delete temporary files (for debugging)" msgstr "" msgid "handle a poedit:// URI" msgstr "" msgid "go to item at given line number" msgstr "" msgid "Failed to communicate with Poedit process." msgstr "" #, c-format msgid "Unhandled exception occurred: %s" msgstr "" msgid "Open catalog" msgstr "ਕੈਟਾਲਾਗ ਖੋਲ੍ਹੋ" #, c-format msgid "File “%s” doesn’t exist." msgstr "" msgid "Poedit is an easy to use translations editor." msgstr "ਪੋਆਡਿਟ ਵਰਤਣ ਲਈ ਸੌਖਾ ਅਨੁਵਾਦ ਸੰਪਾਦਕ ਹੈ।" msgid "Catalogs Manager" msgstr "ਕੈਟਲਾਗ ਮੈਨੇਜਰ" msgid "Check for Updates…" msgstr "" msgid "&Edit" msgstr "ਸੋਧ(&E)" msgid "Undo" msgstr "ਵਾਪਸ" msgid "Redo" msgstr "ਵਾਪਿਸ ਕਰੋ" msgid "Paste and Match Style" msgstr "ਚੇਪੋ ਅਤੇ ਮਿਲਾਨ ਸਟਾਈਲ" msgid "Delete" msgstr "ਹਟਾਓ" msgid "Spelling and Grammar" msgstr "ਸ਼ਬਦ-ਜੋੜ ਅਤੇ ਵਿਆਕਰਨ" msgid "Show Spelling and Grammar" msgstr "ਸ਼ਬਦ-ਜੋੜ ਅਤੇ ਵਿਆਕਰਨ ਵੇਖਾਓ" msgid "Check Document Now" msgstr "ਦਸਤਾਵੇਜ਼ ਦੀ ਹੁਣੇ ਜਾਂਚ ਕਰੋ" msgid "Check Spelling While Typing" msgstr "ਲਿਖਣ ਦੇ ਨਾਲ ਨਾਲ ਹੀ ਸ਼ਬਦ-ਜੋੜ ਚੈੱਕ ਕਰੋ" msgid "Check Grammar With Spelling" msgstr "ਲਿਖਣ ਦੇ ਨਾਲ ਨਾਲ ਵਿਆਕਰਨ ਦੀ ਜਾਂਚ ਕਰੋ" msgid "Correct Spelling Automatically" msgstr "ਆਪਣੇ-ਆਪ ਹੀ ਸ਼ਬਦ-ਜੋੜ ਠੀਕ ਕਰੋ" msgid "Substitutions" msgstr "ਤਬਾਦਲੇ" msgid "Show Substitutions" msgstr "ਤਬਾਦਲੇ ਦਿਖਾਓ" msgid "Smart Copy/Paste" msgstr "ਚੁਸਤ ਕਾਪੀ ਕਰਨਾ/ਚੇਪਣਾ" msgid "Smart Quotes" msgstr "" msgid "Smart Dashes" msgstr "" msgid "Smart Links" msgstr "" msgid "Text Replacement" msgstr "ਪਾਠ ਤਬਾਦਲਾ" msgid "Transformations" msgstr "" msgid "Make Upper Case" msgstr "" msgid "Make Lower Case" msgstr "" msgid "Capitalize" msgstr "ਅੰਗਰੇਜ਼ੀ ਦੇ ਵੱਡੇ ਅੱਖਰ" msgid "Speech" msgstr "ਸਪੀਚ" msgid "Start Speaking" msgstr "ਬੋਲਣਾ ਸ਼ੁਰੂ ਕਰੋ" msgid "Stop Speaking" msgstr "ਬੋਲਣਾ ਰੋਕੋ" msgid "&View" msgstr "ਵੇਖੋ(&V)" msgid "Enter Full Screen" msgstr "ਪੂਰੀ ਸਕਰੀਨ ਉਤੇ ਜਾਓ" msgid "Window" msgstr "ਵਿੰਡੋ" msgid "Minimize" msgstr "ਘੱਟੋ-ਘੱਟ" msgid "Zoom" msgstr "ਜ਼ੂਮ" msgid "Bring All to Front" msgstr "ਸਭ ਤੋਂ ਅੱਗੇ ਲਿਆਓ" #. TRANSLATORS:File kind displayed in Finder/Explorer msgid "PO Translation" msgstr "PO ਅਨੁਵਾਦ" msgid "The file cannot be opened." msgstr "ਫਾਈਲ ਨੂੰ ਖੋਲ੍ਹਿਆ ਨਹੀਂ ਜਾ ਸਕਦਾ ਹੈ।" msgid "Invalid file" msgstr "ਗਲਤ ਫਾਈਲ" msgid "" "The file may be either corrupted or in a format not recognized by Poedit." msgstr "" msgid "You can’t drop more than one file on Poedit window." msgstr "" #, c-format msgid "File “%s” is not a message catalog." msgstr "" msgid "Poedit" msgstr "ਪੋਆਡਿਟ" msgid "&File" msgstr "ਫਾਇਲ(&F)" msgid "&Go" msgstr "ਜਾਓ(&G)" #. TRANSLATORS: %s is language name in its basic form (as you #. would see e.g. in a list of supported languages). You may need #. to rephrase it, e.g. to an equivalent of "for language %s". #, c-format msgid "" "Spellchecking is disabled, because the dictionary for %s isn’t installed." msgstr "" msgid "Install" msgstr "ਇੰਸਟਾਲ ਕਰੋ" msgid "Catalog modified. Do you want to save changes?" msgstr "ਕੈਟਾਲਾਗ ਸੋਧੀ ਗਈ ਹੈ, ਕੀ ਤੁਸੀਂ ਤਬਦੀਲੀਆਂ ਸੰਭਾਲੀਆਂ ਚਾਹੋਗੇ?" msgid "Save changes" msgstr "ਤਬਦੀਲੀਆਂ ਸੰਭਾਲੋ" msgid "Your changes will be lost if you don’t save them." msgstr "" msgid "Save" msgstr "ਸੰਭਾਲੋ" msgid "Don’t save" msgstr "" msgid "Don’t Save" msgstr "" msgid "Save as…" msgstr "" msgid "Compile to…" msgstr "" msgid "Compiled Translation Files" msgstr "ਕੰਪਾਇਲ ਕੀਤੀਆਂ ਅਨੁਵਾਦ ਫਾਈਲਾਂ" msgid "Export as…" msgstr "" msgid "HTML Files" msgstr "HTML ਫਾਈਲਾਂ" msgid "Open catalog template" msgstr "ਕੈਟਾਲਾਗ ਟੈਪਲੇਟ ਖੋਲ੍ਹੋ" msgid "Source code not available." msgstr "ਸਰੋਤ ਕੋਡ ਮੌਜੂਦ ਨਹੀਂ ਹੈ।" msgid "Updating failed" msgstr "ਅੱਪਡੇਟ ਕਰਨਾ ਫੇਲ੍ਹ ਹੈ।" msgid "" "Translations couldn’t be updated from the source code, because no code was " "found in the location specified in the catalog’s Properties." msgstr "" msgid "Entries in the catalog are probably incorrect." msgstr "ਕੈਟਾਲਾਗ ਵਿਚ ਐਂਟਰੀਆਂ ਸੰਭਵ ਹੈ ਕਿ ਠੀਕ ਨਹੀਂ ਹੈ।" msgid "Updating the catalog failed. Click on 'Details >>' for details." msgstr "" #, c-format msgid "%d issue with the translation found." msgid_plural "%d issues with the translation found." msgstr[0] "" msgstr[1] "" msgid "Validation results" msgstr "" msgid "" "Entries with errors were marked in red in the list. Details of the error " "will be shown when you select such an entry." msgstr "" msgid "The file was saved safely." msgstr "ਫ਼ਾਈਲ ਸੁਰੱਖਿਅਤ ਢੰਗ ਨਾਲ ਸੰਭਾਲੀ ਗਈ।" msgid "" "The file was saved safely and compiled into the MO format, but it will " "probably not work correctly." msgstr "" msgid "" "The file was saved safely, but it cannot be compiled into the MO format and " "used." msgstr "" msgid "" "The file was compiled into the MO format, but it will probably not work " "correctly." msgstr "" msgid "The file cannot be compiled into the MO format and used." msgstr "" msgid "No problems with the translation found." msgstr "ਅਨੁਵਾਦ ਵਿੱਚ ਕੋਈ ਸਮੱਸਿਆ ਨਹੀ ਲੱਭੀ।" #, c-format msgid "The translation is ready for use, but %d entry is not translated yet." msgid_plural "" "The translation is ready for use, but %d entries are not translated yet." msgstr[0] "" msgstr[1] "" msgid "The translation is ready for use." msgstr "" #, c-format msgid "Poedit automatically fixed invalid content in the file “%s”." msgstr "" msgid "" "The file contained duplicate items, which is not allowed in PO files and " "would prevent the file from being used. Poedit fixed the issue, but you " "should review translations of any items marked as needing work and correct " "them if necessary." msgstr "" msgid "Language of the translation isn’t set." msgstr "" msgid "Set Language" msgstr "ਭਾਸ਼ਾ ਦਿਓ" msgid "Set language" msgstr "ਭਾਸ਼ਾ ਦਿਓ" #. TRANSLATORS: This is shown underneath "Language of the translation isn't set (or ...is the same as source language)." msgid "" "Suggestions are not available if the translation language is not set " "correctly. Other features, such as plural forms, may be affected as well." msgstr "" msgid "Language of the translation is the same as source language." msgstr "" msgid "Fix Language" msgstr "ਭਾਸ਼ਾ ਨੂੰ ਠੀਕ ਕਰੋ" msgid "Fix language" msgstr "ਭਾਸ਼ਾ ਨੂੰ ਠੀਕ ਕਰੋ" msgid "" "This catalog has entries with plural forms, but doesn’t have Plural-Forms " "header configured." msgstr "" msgid "" "Entries in this catalog have different plural forms count from what " "catalog’s Plural-Forms header says" msgstr "" msgid "Required header Plural-Forms is missing." msgstr "" #, c-format msgid "Syntax error in Plural-Forms header (\"%s\")." msgstr "" msgid "Fix the Header" msgstr "" msgid "Fix the header" msgstr "" #. TRANSLATORS: %s is language name in its basic form (as you #. would see e.g. in a list of supported languages). You may need #. to rephrase it, e.g. to an equivalent of "for language %s". #, c-format msgid "Plural forms expression used by the catalog is unusual for %s." msgstr "" #. TRANSLATORS: A verb, shown as action button with ""Plural forms expression used by the catalog is unusual for %s.")" msgid "Review" msgstr "ਪੜਤਾਲ" #, c-format msgid "Error loading message catalog file “%s”." msgstr "" #, c-format msgid "Translated: %d of %d (%d %%)" msgstr "ਅਨੁਵਾਦ ਕੀਤਾ: %2$d ਵਿੱਚੋਂ %1$d (%3$d %%)" #, c-format msgid "Remaining: %d" msgstr "ਬਾਕੀ: %d" #, c-format msgid "%d error" msgid_plural "%d errors" msgstr[0] "%d ਗਲਤੀ" msgstr[1] "%d ਗਲਤੀਆਂ" #, c-format msgid "%d entry" msgid_plural "%d entries" msgstr[0] "" msgstr[1] "" msgid " (unsaved)" msgstr " (ਨਾ-ਸੰਭਾਲਿਆ)" msgid " (modified)" msgstr " (ਸੋਧੀ)" #, c-format msgid "Failed to update translation memory: %s" msgstr "ਅਨੁਵਾਦ ਮੈਮੋਰੀ ਅੱਪਡੇਟ ਕਰਨ ਲਈ ਫੇਲ੍ਹ: %s" msgid "Purge deleted translations" msgstr "ਹਟਾਏ ਗਏ ਅਨੁਵਾਦ ਨੂੰ ਕੱਢੋ" msgid "Do you want to remove all translations that are no longer used?" msgstr "ਕੀ ਤੁਸੀਂ ਸਭ ਅਨੁਵਾਦਾਂ ਨੂੰ ਹਟਾਉਣਾ ਚਾਹੁੰਦੇ ਹੋ, ਜੋ ਕਿ ਹੁਣ ਵਰਤੋਂ ਯੋਗ ਨਹੀਂ ਹਨ?" msgid "" "If you continue with purging, all translations marked as deleted will be " "permanently removed. You will have to translate them again if they are added " "back in the future." msgstr "" msgid "Keep" msgstr "ਰੱਖੋ" msgid "Purge" msgstr "" msgid "Copy from source text" msgstr "ਸਰੋਤ ਪਾਠ ਤੋਂ ਕਾਪੀ ਕਰੋ" msgid "Copy from Source Text" msgstr "ਸਰੋਤ ਪਾਠ ਤੋਂ ਕਾਪੀ ਕਰੋ" #. TRANSLATORS: This is the key shortcut used in menus on Windows, some languages call them differently #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Ctrl+" msgstr "Ctrl+" msgid "Clear translation" msgstr "ਅਨੁਵਾਦ ਸਾਫ਼ ਕਰੋ" msgid "Clear Translation" msgstr "ਅਨੁਵਾਦ ਸਾਫ਼ ਕਰੋ" msgid "Edit comment" msgstr "ਟਿੱਪਣੀ ਸੋਧ" msgid "Edit Comment" msgstr "ਟਿੱਪਣੀ ਸੋਧੋ" msgid "References:" msgstr "ਹਵਾਲਾ:" msgid "&Bookmarks" msgstr "ਬੁੱਕਮਾਰਕ(&B)" #. TRANSLATORS: This is the key shortcut used in menus on Windows, some languages call them differently #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Alt+" msgstr "" #, c-format msgid "Set bookmark %i" msgstr "" #, c-format msgid "Go to bookmark %i" msgstr "" #, c-format msgid "Set Bookmark %i" msgstr "" #, c-format msgid "Go to Bookmark %i" msgstr "" msgid "Hide Sidebar" msgstr "ਬਾਹੀ ਓਹਲੇ ਕਰੋ" msgid "Show Sidebar" msgstr "ਬਾਹੀ ਵੇਖਾਓ" msgid "Hide Status Bar" msgstr "ਹਾਲਤ ਪੱਟੀ ਓਹਲੇ ਕਰੋ" msgid "Show Status Bar" msgstr "ਹਾਲਤ ਪੱਟੀ ਵੇਖਾਓ" msgid "Source text:" msgstr "ਸਰੋਤ ਪਾਠ:" msgid "Singular:" msgstr "ਇਕਹੇਰਾ:" msgid "Plural:" msgstr "ਬਹੁ-ਵਚਨ:" msgid "Translation:" msgstr "ਅਨੁਵਾਦ:" msgid "Pre-translated" msgstr "" msgid "Needs Work" msgstr "ਕੰਮ ਕਰਨ ਦੀ ਲੋੜ ਹੈ" #. TRANSLATORS: This indicates that the string's translation isn't final #. and has known problems. For example, it might be machine translated or #. fuzzy matched from an older string. The translation should be short and #. convey this. If it's problematic to translate it, "Needs review" is #. acceptable substitute, but note that the meaning is subtly different: #. "needs review" implies that somebody else should review the string after #. I am done with it (i.e. consider it good), while "needs work" implies I #. need to return to it and finish the translation. msgid "Needs work" msgstr "ਕੰਮ ਕਰਨ ਦੀ ਲੋੜ ਹੈ" msgid "" "POT files are only templates and don’t contain any translations themselves.\n" "To make a translation, create a new PO file based on the template." msgstr "" msgid "Create New Translation" msgstr "ਨਵਾਂ ਅਨੁਵਾਦ ਬਣਾਓ" msgid "Create new translation" msgstr "ਨਵਾਂ ਅਨੁਵਾਦ ਬਣਾਓ" msgid "Everything" msgstr "ਹਰ ਚੀਜ਼" #, c-format msgid "Form %i" msgstr "ਫਾਰਮ %i" msgid "Singular" msgstr "ਇੱਕ ਵਚਨ" msgid "Zero" msgstr "ਸਿਫ਼ਰ" msgid "One" msgstr "ਇੱਕ" msgid "Two" msgstr "ਦੋ" msgid "Plural" msgstr "ਬਹੁਵਚਨ" msgid "Other" msgstr "ਹੋਰ" #, c-format msgid "%s Format" msgstr "%s ਫਾਰਮੈਟ" #. TRANSLATORS: %s is replaced with language name, e.g. "PHP" or "C", so "PHP Format" etc." #, c-format msgid "%s format" msgstr "%s ਫਾਰਮੈਟ" msgid "Source text" msgstr "ਸਰੋਤ ਪਾਠ" #, c-format msgid "Translation — %s" msgstr "ਅਨੁਵਾਦ — %s" msgid "ID" msgstr "ਆਈਡੀ" #, c-format msgid "Source text — %s" msgstr "ਸਰੋਤ ਟੈਕਸਟ — %s" msgid "unknown language" msgstr "ਅਣਜਾਣ ਭਾਸ਼ਾ" #, c-format msgid "Failed command: %s" msgstr "ਕਮਾਂਡ ਫੇਲ੍ਹ ਹੋਈ: %s" msgid "Failed to merge gettext catalogs." msgstr "gettext ਕੈਟਾਲਾਨ ਮਿਲਾਨ ਲਈ ਫੇਲ੍ਹ ਹੈ।" msgid "Source file" msgstr "ਸਰੋਤ ਫਾਇਲ" msgid "Source file occurrence:" msgstr "ਸਰੋਤ ਫ਼ਾਈਲ ਮੌਜੂਦਗੀ:" msgid "Open in Editor" msgstr "ਐਡੀਟਰ ਵਿੱਚ ਖੋਲ੍ਹੋ" msgid "Open in editor" msgstr "ਐਡੀਟਰ ਵਿੱਚ ਖੋਲ੍ਹੋ" msgid "No references for the selected item." msgstr "" #, c-format msgid "Error opening file %s!" msgstr "ਫਾਇਲ %s ਖੋਲ੍ਹਣ ਦੌਰਾਨ ਗਲਤੀ!" msgid "Find" msgstr "ਲੱਭੋ" msgid "Replace" msgstr "ਤਬਦੀਲ" #. TRANSLATORS: Expander in Find window for additional options (case sensitive etc.) msgid "Options" msgstr "ਚੋਣਾਂ" msgid "Ignore case" msgstr "" msgid "Wrap around" msgstr "ਪਾਸਿਓ ਸਮੇਟੋ" msgid "Whole words only" msgstr "ਪੂਰੇ ਸ਼ਬਦ ਹੀ" msgid "Find in source texts" msgstr "ਸਰੋਤ ਟੈਕਸਟ ਵਿੱਚ ਲੱਭੋ" msgid "Find in translations" msgstr "ਅਨੁਵਾਦ ਵਿੱਚ ਲੱਭੋ" msgid "Find in comments" msgstr "ਟਿੱਪਣੀ ਵਿੱਚ ਖੋਜ" msgid "Close" msgstr "ਬੰਦ ਕਰੋ" msgid "Replace &All" msgstr "ਸਾਰਿਆਂ ਨੂੰ ਬਦਲੋ(&A)" msgid "Replace &all" msgstr "ਸਾਰਿਆਂ ਨੂੰ ਬਦਲੋ(&a)" msgid "&Replace" msgstr "ਬਦਲੋ(&R)" msgid "< &Previous" msgstr "< ਪਿੱਛੇ(&P)" msgid "&Next >" msgstr "ਅੱਗੇ(&N) >" msgid "String to find" msgstr "" msgid "Replacement string" msgstr "" #, c-format msgid "Cannot execute program: %s" msgstr "ਪ੍ਰੋਗਰਾਮ ਚਲਾਇਆ ਨਹੀਂ ਜਾ ਸਕਦਾ: %s" msgid "Language Code or Name (e.g. en_GB)" msgstr "ਭਾਸ਼ਾ ਕੋਡ ਜਾਂ ਨਾਂ (ਜਿਵੇਂ pa_IN)" msgid "Translation Language" msgstr "ਅਨੁਵਾਦ ਭਾਸ਼ਾ" msgid "Language of the translation:" msgstr "ਅਨੁਵਾਦ ਦੀ ਭਾਸ਼ਾ:" msgid "Poedit - Catalogs manager" msgstr "ਪੋਆਡਿਟ - ਕੈਟਾਲਾਗ ਮੈਨੇਜਰ" msgid "Catalog" msgstr "ਕੈਟਾਲਾਗ" msgid "Total" msgstr "ਕੁੱਲ" msgid "Untrans" msgstr "ਨਾ-ਅਨੁਵਾਦ" msgid "Errors" msgstr "ਗ਼ਲਤੀਆਂ" msgid "Last modified" msgstr "ਆਖਰੀ ਸੋਧ" msgid "Select directory" msgstr "ਡਾਇਰੈਕਟਰੀ ਚੁਣੋ" msgid "Directories:" msgstr "ਡਾਇਰੈਕਟਰੀ:" msgid "" msgstr "<ਬੇਨਾਮ>" msgid "Do you want to delete the project?" msgstr "ਕੀ ਤੁਸੀ ਪ੍ਰੋਜੈਕਟ ਖਤਮ ਕਰਨਾ ਚਾਹੁੰਦੇ ਹੋ?" msgid "Confirmation" msgstr "ਪੁਸ਼ਟੀ" msgid "" "Do you really want to do mass update of\n" "all catalogs in this project?" msgstr "" "ਕੀ ਤੁਸੀ ਇਸ ਪ੍ਰੋਜੈਕਟ ਦੇ ਸਭ ਕੈਟਾਲਾਗ ਦਾ ਇੱਕ ਵਾਰ\n" "ਹੀ ਅੱਪਡੇਟ ਕਰਨਾ ਚਾਹੁੰਦੇ ਹੋ?" msgid "Information about the translator" msgstr "ਅਨੁਵਾਦਕ ਬਾਰੇ ਜਾਣਕਾਰੀ" msgid "Name:" msgstr "ਨਾਂ:" msgid "Your Name" msgstr "ਤੁਹਾਡਾ ਨਾਂ" msgid "Email:" msgstr "ਈਮੇਲ:" msgid "your_email@example.com" msgstr "your_email@example.com" msgid "" "Your name and email address are only used to set the Last-Translator header " "of GNU gettext files." msgstr "" msgid "Editing" msgstr "ਸੋਧਿਆ ਜਾਂਦਾ ਹੈ" msgid "Automatically compile MO file when saving" msgstr "ਸੰਭਾਲਣ ਉੱਤੇ ਆਟੋਮੈਟਿਕ ਹੀ MO ਫ਼ਾਈਲ ਕੰਪਾਈਲ ਕਰੋ" msgid "Show summary after catalog update" msgstr "ਕੈਟਾਲਾਗ ਅੱਪਡੇਟ ਮਗਰੋਂ ਸੰਖੇਪ ਜਾਣਕਾਰੀ ਵੇਖੋ" msgid "Check spelling" msgstr "ਸ਼ਬਦ-ਜੋੜ ਜਾਂਚ ਕਰੋ" msgid "Always change focus to text input field" msgstr "ਹਮੇਸ਼ਾ ਪਾਠ ਲਿਖਣ ਖੇਤਰ 'ਤੇ ਹੀ ਕੇਂਦਰਿਤ ਕਰੋ" msgid "" "Never let the list of strings take focus. If enabled, you must use Ctrl-" "arrows for keyboard navigation but you can also type text immediately, " "without having to press Tab to change focus." msgstr "" "ਸਤਰਾਂ ਦੀ ਸੂਚੀ ਕਦੇ ਕੇਂਦਰਿਤ ਨਾ ਹੋਣ ਦਿਉ। ਜੇ ਏਦਾਂ ਹੈ ਤਾਂ ਤੁਸੀਂ ਕੀਬੋਰਡ ਦੇ Ctrl- ਤੀਰ ਬਟਨਾਂ ਨਾਲ ਚੱਲ " "ਸਕਦੇ ਹੋ, ਪਰ ਤੁਸੀ Tab ਦਬਾਏ ਬਿਨਾਂ ਵੀ ਤੁਰੰਤ ਲਿਖ ਸਕਦੇ ਹੋ।" msgid "Appearance" msgstr "ਦਿੱਖ" msgid "Use custom list font:" msgstr "ਪਸੰਦੀਦਾ ਸੂਚੀ ਫ਼ੋਟ ਵਰਤੋਂ:" msgid "Use custom text fields font:" msgstr "ਪਸੰਦੀਦਾ ਪਾਠ ਖੇਤਰ ਫ਼ੋਂਟ ਵਰਤੋਂ:" msgid "Change UI language" msgstr "UI ਭਾਸ਼ਾ ਬਦਲੋ" #. TRANSLATORS: This is a note appended to "Check spelling" when running on older Windows versions msgid "(requires Windows 8 or newer)" msgstr "(ਵਿੰਡੋਜ਼ 8 ਜਾਂ ਨਵੀਂ ਚਾਹੀਦੀ ਹੈ)" msgid "General" msgstr "ਆਮ" msgid "Use translation memory" msgstr "ਅਨੁਵਾਦ ਮੈਮੋਰੀ ਵਰਤੋਂ" msgid "Learn From Files…" msgstr "" msgid "Learn from files…" msgstr "" #. TRANSLATORS: This is a button that deletes everything in the translation memory (i.e. clears/resets it). msgid "Reset" msgstr "ਮੁੜ-ਸੈੱਟ ਕਰੋ" #. TRANSLATORS: Followed by "match translations within the file" or "pre-translate from TM" msgid "When updating from sources" msgstr "" #. TRANSLATORS: Preceded by "When updating from sources" msgid "fuzzy match within the file" msgstr "" #. TRANSLATORS: Preceded by "When updating from sources" msgid "pre-translate from TM" msgstr "" msgid "" "Poedit can attempt to fill in new entries from only previous translations in " "the file or from your entire translation memory. Using the TM won’t be very " "effective if it’s near-empty, but it will get better as you add more " "translations to it." msgstr "" msgid "Stored translations:" msgstr "" msgid "Database size on disk:" msgstr "" msgid "Select translation files to import" msgstr "" msgid "Translation Memory" msgstr "ਅਨੁਵਾਦ ਮੈਮੋਰੀ" msgid "Importing translations…" msgstr "" msgid "Finalizing…" msgstr "" msgid "Reset translation memory" msgstr "" msgid "Are you sure you want to reset the translation memory?" msgstr "" msgid "" "Resetting the translation memory will irrevocably delete all stored " "translations from it. You can’t undo this operation." msgstr "" msgid "Cancel" msgstr "ਰੱਦ ਕਰੋ" #. TRANSLATORS: This is abbreviation of "Translation Memory" used in Preferences on macOS. #. Long text looks weird there, too short (like TM) too, but less so. "General" is about ideal #. length there. msgid "TM" msgstr "TM" msgid "" "Source code extractors are used to find translatable strings in the source " "code files and extract them so that they can be translated." msgstr "" msgid "Custom Extractors:" msgstr "" msgid "Custom extractors:" msgstr "" msgid "Edit…" msgstr "" msgid "GNU gettext" msgstr "" msgid "" "Supports all programming languages recognized by GNU gettext tools (PHP, C/C+" "+, C#, Perl, Python, Java, JavaScript and others)." msgstr "" msgid "Delete extractor" msgstr "" #, c-format msgid "Are you sure you want to delete the “%s” extractor?" msgstr "" msgid "Extractors" msgstr "" msgid "Accounts" msgstr "ਖਾਤੇ" msgid "Automatically check for updates" msgstr "ਆਟੋਮੈਟਿਕ ਅੱਪਡੇਟ ਲਈ ਜਾਂਚ ਕਰੋ" msgid "Include beta versions" msgstr "ਬੀਟਾ ਵਰਜਨ ਸਮੇਤ" msgid "" "Beta versions contain the latest new features and improvements, but may be a " "bit less stable." msgstr "" msgid "Updates" msgstr "ਅੱਪਡੇਟ" msgid "" "These settings affect internal formatting of PO files. Adjust them if you " "have specific requirements e.g. because of version control." msgstr "" msgid "Line endings:" msgstr "ਲਾਈਨ ਸਮਾਪਤੀ:" msgid "Unix (recommended)" msgstr "ਯੂਨੈਕਸ (ਸਿਫਾਰਸ਼ੀ)" msgid "Windows" msgstr "Windows" #. TRANSLATORS: Followed by text control for entering number; wraps text at given width msgid "Wrap at:" msgstr "" msgid "Preserve formatting of existing files" msgstr "" msgid "Advanced" msgstr "ਤਕਨੀਕੀ" msgid "Pre-translating…" msgstr "" #, c-format msgid "Pre-translated %u string" msgid_plural "Pre-translated %u strings" msgstr[0] "" msgstr[1] "" #. TRANSLATORS: This is a somewhat common term describing the action where #. you apply the translation memory and/or machine translation to all of the #. strings you're translating as the first step, followed by correcting, #. improving etc., i.e. actually translating the strings. This may be tricky #. to express in other languages as simply as in English, but please try to #. keep it similarly concise. Please try to avoid, if possible, describing it #. as "auto-translation" and similar, because such terminology would mislead #. some users into thinking it's all that needs to be done (spoken from #. experience). "Pre-translate" nicely expresses that it's only the step done #. *before* actual translation. msgid "Pre-translate" msgstr "" msgid "Only fill in exact matches" msgstr "" msgid "" "By default, inaccurate results are filled in as well and marked as needing " "work. Check this option to only include accurate matches." msgstr "" msgid "Don’t mark exact matches as needing work" msgstr "" msgid "" "Only enable if you trust the quality of your TM. By default, all matches " "from the TM are marked as needing work and should be reviewed before use." msgstr "" msgid "" "Pre-translation automatically finds exact or fuzzy matches for untranslated " "strings in the translation memory and fills in their translations." msgstr "" #, c-format msgid "%d entry was pre-translated." msgid_plural "%d entries were pre-translated." msgstr[0] "" msgstr[1] "" msgid "" "The translations were marked as needing work, because they may be " "inaccurate. You should review them for correctness." msgstr "" msgid "No entries could be pre-translated." msgstr "" msgid "" "The TM doesn’t contain any strings similar to the content of this file. It " "is only effective for semi-automatic translations after Poedit learns enough " "from files that you translated manually." msgstr "" msgid "" "Drag and Drop Folders Here\n" "\n" "or use the + button" msgstr "" msgid "" "Drag and drop folders here\n" "\n" "or use the + button" msgstr "" msgid "Add Folders…" msgstr "" msgid "Add folders…" msgstr "" msgid "Add Files…" msgstr "" msgid "Add files…" msgstr "" msgid "Add Wildcard…" msgstr "" msgid "Add wildcard…" msgstr "" msgid "Paths" msgstr "ਮਾਰਗ" msgid "Excluded paths" msgstr "" msgid "Advanced extraction settings" msgstr "" msgid "Extract notes for translators from:" msgstr "" msgid "Comments prefixed with:" msgstr "" msgid "All comments" msgstr "" msgid "Additional xgettext flags:" msgstr "" msgid "Additional keywords" msgstr "ਵਾਧੂ ਕੀਵਰਡ" msgid "Name of the project the translation is for" msgstr "ਅਨੁਵਾਦ ਦੇ ਪ੍ਰੋਜੈਕਟ ਦਾ ਨਾਂ" msgid "Team name and email address or URL" msgstr "" msgid "e.g. nplurals=2; plural=(n > 1);" msgstr "ਜਿਵੇਂ nplurals=2; plural=(n > 1);" msgid "UTF-8 (recommended)" msgstr "UTF-8 (ਸਿਫਾਰਸ਼ੀ)" msgid "Please save the file first. This section cannot be edited until then." msgstr "" msgid "Not all plural forms are translated." msgstr "" msgid "The translation should start as a sentence." msgstr "" msgid "The translation should start with a lowercase character." msgstr "" msgid "The translation doesn’t start with a space." msgstr "" msgid "The translation starts with a space, but the source text doesn’t." msgstr "" msgid "The translation is missing a newline at the end." msgstr "" msgid "The translation ends with a newline, but the source text doesn’t." msgstr "" msgid "The translation is missing a space at the end." msgstr "" msgid "The translation ends with a space, but the source text doesn’t." msgstr "" #, c-format msgid "The translation should end with “%s”." msgstr "" #, c-format msgid "The translation should not end with “%s”." msgstr "" #, c-format msgid "The translation ends with “%s”, but the source text ends with “%s”." msgstr "" msgid "Comment:" msgstr "ਟਿੱਪਣੀ:" msgid "OK" msgstr "ਠੀਕ ਹੈ" msgid "C&lear" msgstr "ਸਾਫ਼ ਕਰੋ(&l)" msgid "Clear the comment" msgstr "ਟਿੱਪਣੀ ਸਾਫ਼ ਕਰੋ" msgid "New" msgstr "ਨਵਾਂ" msgid "Create new translations project" msgstr "ਨਵਾਂ ਭਾਸ਼ਾ ਅਨੁਵਾਦ ਪ੍ਰੋਜੈਕਟ ਬਣਾਓ" msgid "Edit" msgstr "ਸੋਧ" msgid "Edit the project" msgstr "ਪ੍ਰੋਜੈਕਟ ਸੋਧ" msgid "Delete the project" msgstr "ਪ੍ਰੋਜੈਕਟ ਹਟਾਓ" msgid "Update all" msgstr "ਸਭ ਅੱਪਡੇਟ" msgid "Update all catalogs in the project" msgstr "ਪ੍ਰੋਜੈਕਟ ਵਿਚਲੀਆਂ ਸਭ ਕੈਟਾਲਾਗ ਅੱਪਡੇਟ" msgid "Edit project" msgstr "ਪ੍ਰੋਜੈਕਟ ਸੋਧ" msgid "Project name:" msgstr "ਪ੍ਰੋਜੈਕਟ ਨਾਂ :" msgid "Browse" msgstr "ਝਲਕ" msgid "Add directory to the list" msgstr "ਡਾਇਰੈਕਟਰੀ ਲਿਸਟ ਵਿੱਚ ਸ਼ਾਮਲ" msgid "&New…" msgstr "" msgid "New from &POT/PO file…" msgstr "" msgid "New From &POT/PO File…" msgstr "" msgid "&Open…" msgstr "" msgid "Open Recent" msgstr "ਤਾਜ਼ਾ ਖੋਲ੍ਹੇ" msgid "Open from Crowdin…" msgstr "" msgid "Open From Crowdin…" msgstr "" msgid "&Close" msgstr "ਬੰਦ ਕਰੋ(&C)" msgid "&Save" msgstr "ਸੰਭਾਲੋ(&S)" msgid "Save &as…" msgstr "" msgid "Save &As…" msgstr "" msgid "Compile to MO…" msgstr "" msgid "E&xport as HTML…" msgstr "" msgid "Check for updates…" msgstr "" msgid "&Preferences…" msgstr "" msgid "Catalogs &manager" msgstr "ਕੈਟਾਲਾਗ ਮੈਨੇਜਰ(&m)" msgid "Catalogs &Manager" msgstr "ਕੈਟਾਲਾਗ ਮੈਨੇਜਰ(&M)" msgid "E&xit" msgstr "ਬਾਹਰ(&x)" msgid "Quit" msgstr "ਬਾਹਰ" msgid "Copy from singular" msgstr "" msgid "Copy From Singular" msgstr "" msgid "Translation needs &work" msgstr "" msgid "Translation Needs &Work" msgstr "" msgid "Edit &comment" msgstr "ਟਿੱਪਣੀ ਸੋਧ(&c)" msgid "Edit &Comment" msgstr "ਟਿੱਪਣੀ ਸੋਧ(&C)" msgid "Suggestions" msgstr "ਸੁਝਾਅ" msgid "&Find…" msgstr "" msgid "Replace…" msgstr "" msgid "Find next" msgstr "ਅੱਗੇ ਲੱਭੋ" msgid "Find previous" msgstr "ਪਿੱਛੇ ਲੱਭੋ" msgid "Find and Replace…" msgstr "" msgid "Find Next" msgstr "ਅੱਗੇ ਲੱਭੋ" msgid "Find Previous" msgstr "ਪਿੱਛੇ ਲੱਭੋ" msgid "&Preferences" msgstr "ਮੇਰੀ ਪਸੰਦ(&P)" msgid "Display entry &IDs" msgstr "ਐਂਟਰੀ &ID ਵੇਖਾਓ" msgid "Display Entry &IDs" msgstr "ਐਂਟਰੀ &ID ਵੇਖਾਓ" msgid "Sort by &file order" msgstr "" msgid "Sort by &File Order" msgstr "" msgid "Sort by &source" msgstr "" msgid "Sort by &Source" msgstr "" msgid "Sort by &translation" msgstr "" msgid "Sort by &Translation" msgstr "" msgid "&Group by context" msgstr "" msgid "&Group By Context" msgstr "" msgid "Entries with errors first" msgstr "" msgid "Entries with Errors First" msgstr "" msgid "&Untranslated entries first" msgstr "ਗ਼ੈਰ-ਅਨੁਵਾਦ ਐਂਟਰੀਆਂ ਪਹਿਲਾਂ(&U)" msgid "&Untranslated Entries First" msgstr "ਗ਼ੈਰ-ਅਨੁਵਾਦ ਐਂਟਰੀਆਂ ਪਹਿਲਾਂ(&U)" msgid "&Show references" msgstr "ਹਵਾਲਾ ਵੇਖੋ(&S)" msgid "&Show References" msgstr "ਹਵਾਲs ਵੇਖੋ(&S)" msgid "Show sidebar" msgstr "ਬਾਹੀ ਵੇਖਾਓ" msgid "Show status bar" msgstr "" msgid "C&atalog" msgstr "ਕੈਟਾਲਾਗ(&a)" msgid "&Update from sources" msgstr "ਸਰੋਤ ਤੋਂ ਅੱਪਡੇਟ(&U)" msgid "&Update from Sources" msgstr "ਸਰੋਤ ਤੋਂ ਅੱਪਡੇਟ ਕਰੋ(&U)" msgid "Update from &POT file…" msgstr "" msgid "Update from &POT File…" msgstr "" msgid "Sync with Crowdin" msgstr "" msgid "Pre-&translate…" msgstr "" msgid "&Purge deleted translations" msgstr "ਹਟਾਏ ਗਏ ਅਨੁਵਾਦ ਨੂੰ ਕੱਢੋ(&P)" msgid "&Purge Deleted Translations" msgstr "" msgid "&Validate translations" msgstr "" msgid "&Validate Translations" msgstr "" msgid "&Properties…" msgstr "" msgid "&Done and next" msgstr "ਮੁਕੰਮਲ ਤੇ ਅੱਗੇ(&D)" msgid "&Done and Next" msgstr "ਮੁਕੰਮਲ ਤੇ ਅੱਗੇ(&D)" msgid "&Previous translation" msgstr "ਪਿਛਲਾ ਅਨੁਵਾਦ(&P)" msgid "&Previous Translation" msgstr "ਪਿਛਲਾ ਅਨੁਵਾਦ(&P)" msgid "&Next translation" msgstr "ਅਗਲਾ ਅਨੁਵਾਦ(&N)" msgid "&Next Translation" msgstr "ਅਗਲਾ ਅਨੁਵਾਦ(&N)" msgid "P&revious unfinished" msgstr "" msgid "P&revious Unfinished" msgstr "" msgid "Ne&xt unfinished" msgstr "" msgid "Ne&xt Unfinished" msgstr "" msgid "Previous plural form" msgstr "" msgid "Previous Plural Form" msgstr "" msgid "Next plural form" msgstr "" msgid "Next Plural Form" msgstr "" msgid "&Online help" msgstr "ਆਨਲਾਈਨ ਮਦਦ(&O)" msgid "&Online Help" msgstr "ਆਨਲਾਈਨ ਮਦਦ(&O)" msgid "&GNU gettext manual" msgstr "&GNU gettext ਦਸਤਾਵੇਜ਼" msgid "&GNU gettext Manual" msgstr "&GNU gettext ਦਸਤਾਵੇਜ਼" msgid "&About Poedit" msgstr "ਪੋਐਡਿਟ ਬਾਰੇ(&A)" msgid "&About" msgstr "ਇਸ ਬਾਰੇ(&A)" msgid "Extractor setup" msgstr "" msgid "List of extensions separated by semicolons (e.g. *.cpp;*.h):" msgstr "ਇਕਸਟੈਸ਼ਨਾਂ ਦੀ ਲਿਸਟ ਅਰਧ ਕਾਮਿਆਂ ਨਾਲ ਲਿਖੋ (ਜਿਵੇ ਕਿ *.cpp;*.h):" msgid "Invocation:" msgstr "ਸਹਾਇਤਾ :" msgid "Command to extract translations:" msgstr "" msgid "" "This is the command used to launch the extractor.\n" "%o expands to the name of output file, %K to list\n" "of keywords, %F to list of input files,\n" "%C to charset flag (see below)." msgstr "" msgid "An item in keywords list:" msgstr "ਸ਼ਬਦ ਲਿਸਟ 'ਚ ਇੱਕ ਇਕਾਈ:" msgid "" "This will be attached to the command line once\n" "for each keyword. %k expands to the keyword." msgstr "" "ਇਹ ਇੱਕ ਵਾਰ ਕਮਾਂਡ ਲਾਇਨ ਨਾਲ ਹਰੇਕ ਇੰਪੁੱਟ ਫਾਇਲ ਲ਼ਈ ਜੁਡ਼ ਜਾਵੇਗਾ।\n" "%k ਫਾਇਲ ਨਾਂ ਫੈਲਾ ਦੇਵੇਗਾ।" msgid "An item in input files list:" msgstr "ਇੰਪੁੱਟ ਫਾਇਲ ਲਿਸਟ ਵਿੱਚ ਇਕਾਈ:" #, c-format msgid "" "This will be attached to the command line once\n" "for each input file. %f expands to the filename." msgstr "" "ਇਹ ਇੱਕ ਵਾਰ ਕਮਾਂਡ ਲਾਇਨ ਨਾਲ ਹਰੇਕ ਇੰਪੁੱਟ ਫਾਇਲ ਲਈ ਜੁਡ਼ ਜਾਵੇਗਾ।\n" "%f ਫਾਇਲ ਨਾਂ ਫੈਲਾ ਦੇਵੇਗਾ।" msgid "Source code charset:" msgstr "ਸਰੋਤ ਕੋਡ ਅੱਖਰ ਸਮੂਹ:" #, c-format msgid "" "This will be attached to the command line\n" "only if source code charset was given. %c expands to charset value." msgstr "" "ਇਹ ਇੱਕ ਵਾਰ ਕਮਾਂਡ ਲਾਇਨ ਨਾਲ ਹਰੇਕ ਇੰਪੁੱਟ ਫਾਇਲ ਲ਼ਈ ਜੁਡ਼ ਜਾਵੇਗਾ।\n" "%c ਫਾਇਲ ਨਾਂ ਫੈਲਾ ਦੇਵੇਗਾ।" msgid "Catalog properties" msgstr "ਕੈਟਾਲਾਗ ਵਿਸ਼ੇਸ਼ਤਾ" msgid "Project name and version:" msgstr "ਪ੍ਰੋਜੈਕਟ ਨਾਂ ਅਤੇ ਵਰਜਨ :" msgid "Language team:" msgstr "ਭਾਸ਼ਾ ਟੀਮ:" msgid "Plural forms:" msgstr "ਬਹੁਵਚਨ ਰੂਪ:" msgid "Use default rules for this language" msgstr "ਇਹ ਭਾਸ਼ਾ ਲਈ ਡਿਫਾਲਟ ਨਿਯਮ ਵਰਤੋਂ" msgid "Use custom expression" msgstr "" msgid "Learn about plural forms" msgstr "" msgid "Charset:" msgstr "ਅੱਖਰ-ਸੈਟ :" msgid "Advanced Extraction Settings…" msgstr "" msgid "Advanced extraction settings…" msgstr "" msgid "Translation Properties" msgstr "ਅਨੁਵਾਦ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ" msgid "Translation properties" msgstr "ਅਨੁਵਾਦ ਵਿਸ਼ੇਸ਼ਤਾ" msgid "Sources Paths" msgstr "" msgid "Sources paths" msgstr "" msgid "Extract text from source files in the following directories:" msgstr "" msgid "Base path:" msgstr "ਮੁੱਖ ਮਾਰਗ:" msgid "Sources Keywords" msgstr "" msgid "Sources keywords" msgstr "ਸਰੋਤ ਕੀਵਰਡ" msgid "" "Use these keywords (function names) to recognize translatable strings\n" "in source files:" msgstr "" msgid "Also use default keywords for supported languages" msgstr "" msgid "Learn About Gettext Keywords" msgstr "" msgid "Learn about gettext keywords" msgstr "gettext ਕੀਵਰਡ ਬਾਰੇ ਜਾਣੋ" msgid "Update summary" msgstr "ਅੱਪਡੇਟ ਸੰਖੇਪ" msgid "" "These strings were found in the sources but were not in the catalog.\n" "Poedit will add them to the catalog now." msgstr "" "ਸਰੋਤ ਵਿਚ ਤਾਂ ਸਤਰਾਂ ਹਨ, ਪਰ ਕੈਟਾਲਾਗ ਵਿੱਚ ਨਹੀਂ ਹੈ।\n" "ਪੋਆਡਿਟ ਇਹਨਾਂ ਨੂੰ ਕੈਟਾਲਾਗ ਵਿੱਚ ਜੋੜੇਗਾ।" msgid "New strings" msgstr "ਨਵੀਂਆਂ ਸਤਰਾਂ" msgid "" "These strings are no longer in the sources.\n" "Poedit will remove them from the catalog now." msgstr "" "ਸਰੋਤ ਵਿਚ ਇਹ ਸਤਰਾਂ ਮੌਜੂਦ ਨਹੀ ਹਨ।\n" "ਪੋਆਡਿਟ ਇਹਨਾਂ ਨੂੰ ਸੂਚੀ ਵਿਚੋਂ ਹਟਾ ਰਿਹਾ ਹੈ।" msgid "Obsolete strings" msgstr "ਪੁਰਾਣੀਆਂ ਸਤਰਾਂ" msgid "(0 new, 0 obsolete)" msgstr "(0 ਨਵਾਂ, 0 ਪੁਰਾਣਾ)" msgid "Open" msgstr "ਖੋਲ੍ਹੋ" msgid "Save catalog" msgstr "ਕੈਟਾਲਾਗ ਸੰਭਾਲੋ" msgid "Validate" msgstr "" msgid "Check for errors in the translation" msgstr "" msgid "Update" msgstr "ਅੱਪਡੇਟ" msgid "Update catalog - synchronize it with sources" msgstr "ਕੈਟਾਲਾਗ ਅੱਪਡੇਟ- ਇਸ ਨੂੰ ਸੋਰਤ ਨਾਲ ਸਮਕਾਲੀ ਕਰੋ" msgid "Sidebar" msgstr "ਬਾਹੀ" msgid "Show or hide the sidebar" msgstr "ਬਾਹੀ ਵੇਖੋ ਜਾਂ ਓਹਲੇ ਕਰੋ" #. TRANSLATORS: "Previous" as in used in the past, now replaced with newer. msgid "Previous source text:" msgstr "ਪਿਛਲਾ ਸਰੋਤ ਟੈਕਸਟ:" msgid "" "The old source text (before it changed during an update) that the now-" "inaccurate translation corresponds to." msgstr "" msgid "Notes for translators:" msgstr "ਅਨੁਵਾਦਕਾਂ ਲਈ ਸੂਚਨਾ:" msgid "Add comment" msgstr "ਟਿੱਪਣੀ ਜੋੜੋ" msgid "Add Comment" msgstr "ਟਿੱਪਣੀ ਜੋੜੋ" msgid "Translation suggestions:" msgstr "ਅਨੁਵਾਦ ਸੁਝਾਅ:" #. TRANSLATORS: This is shown when no translation suggestions can be found in the TM (Windows). msgid "No matches found" msgstr "ਕੋਈ ਮੇਲ ਨਹੀਂ ਲੱਭਿਆ" #. TRANSLATORS: This is shown when no translation suggestions can be found in the TM (macOS, Linux). msgid "No Matches Found" msgstr "ਕੋਈ ਮੇਲ ਨਹੀਂ ਲੱਭੇ" msgid "This string was found in Poedit’s translation memory." msgstr "ਇਹ ਲਾਈਨ ਪੋਐਡਿਟ ਦੀ ਅਨੁਵਾਦ ਮੈਮੋਰੀ ਵਿੱਚ ਲੱਭੀ ਸੀ।" msgid "Cannot create temporary directory." msgstr "" msgid "Welcome to Poedit" msgstr "ਪੋਐਡਿਟ ਵਲੋਂ ਜੀ ਆਇਆਂ ਨੂੰ" #. TRANSLATORS: This is version information in about dialog, "%s" will be #. version number when used #, c-format msgid "Version %s" msgstr "%s ਵਰਜ਼ਨ" msgid "Edit a Translation" msgstr "" msgid "Edit a translation" msgstr "ਅਨੁਵਾਦ ਸੋਧੋ" msgid "Open an existing PO file and edit the translation." msgstr "ਮੌਜੂਦਾ PO ਫ਼ਾਈਲ ਖੋਲ੍ਹੋ ਅਤੇ ਅਨੁਵਾਦ ਨੂੰ ਸੋਧੋ।" msgid "" "Take an existing PO file or POT template and create a new translation from " "it." msgstr "ਮੌਜੂਦਾ PO ਫ਼ਾਈਲ ਜਾਂ POT ਨਮੂਨਾ ਲਵੋ ਅਤੇ ਉਸ ਤੋਂ ਨਵਾਂ ਅਨੁਵਾਦ ਬਣਾਉ।" msgid "Collaborate on a Translation with Others" msgstr "" msgid "Collaborate on a translation with others" msgstr "" msgid "" "Download a file from Crowdin project, translate and sync your changes back." msgstr "" msgid "What is Crowdin?" msgstr "" msgid "There are no translations. That’s unusual." msgstr "" msgid "" "Translatable entries aren’t added manually in the Gettext system, but are " "automatically extracted\n" "from source code. This way, they stay up to date and accurate.\n" "Translators typically use PO template files (POTs) prepared for them by the " "developer." msgstr "" msgid "(Learn more about GNU gettext)" msgstr "" msgid "The simplest way to fill this catalog is to update it from a POT:" msgstr "" msgid "Update from POT" msgstr "POT ਤੋਂ ਅੱਪਡੇਟ ਕਰੋ" msgid "Take translatable strings from an existing POT template." msgstr "" msgid "" "You can also extract translatable strings directly from the source code:" msgstr "" msgid "Extract from sources" msgstr "" msgid "Configure source code extraction in Properties." msgstr "" msgid "Sync" msgstr "ਸਿੰਕ ਕਰੋ" msgid "Synchronize the translation with Crowdin" msgstr "" #. TRANSLATORS: This is titlebar of about dialog, "%s" is application name #. ("Poedit" here, but please use "%s") #, c-format msgid "About %s" msgstr "%s ਬਾਰੇ" #. TRANSLATORS: Title of the preferences window on Windows and Linux. "%s" is replaced with "Poedit" when running. #, c-format msgid "%s Preferences" msgstr "%s ਮੇਰੀ ਪਸੰਦ" #. TRANSLATORS: macOS item in app menu msgid "Services" msgstr "ਸਰਵਿਸਾਂ" #. TRANSLATORS: macOS item in app menu, %s is replaced with "Poedit" #, c-format msgid "Hide %s" msgstr "%s ਨੂੰ ਲੁਕਾਓ" #. TRANSLATORS: macOS item in app menu msgid "Hide Others" msgstr "ਹੋਰਾਂ ਨੂੰ ਲੁਕਾਓ" #. TRANSLATORS: macOS item in app menu msgid "Show All" msgstr "ਸਾਰੇ ਵੇਖੋ" #. TRANSLATORS: macOS item in app menu, %s is replaced with "Poedit" #, c-format msgid "Quit %s" msgstr "%s ਤੋਂ ਬਾਹਰ ਜਾਓ" #. TRANSLATORS: macOS item in app menu msgid "Preferences…" msgstr "" msgid "Preferences..." msgstr "ਮੇਰੀ ਪਸੰਦ..." #. TRANSLATORS: Title of a category in Windows task menu (right-click icon in taskbar) msgid "Recent" msgstr "ਤਾਜ਼ਾ" #. TRANSLATORS: Title of a category in Windows task menu (right-click icon in taskbar) msgid "Frequent" msgstr "ਅਕਸਰ" msgid "&Apply" msgstr "ਲਾਗੂ ਕਰੋ(&A)" msgid "Apply" msgstr "ਲਾਗੂ ਕਰੋ" msgid "&Back" msgstr "ਪਿੱਛੇ(&B)" msgid "Back" msgstr "ਪਿੱਛੇ" msgid "&Cancel" msgstr "ਰੱਦ ਕਰੋ(&C)" msgid "&Clear" msgstr "" msgid "Clear" msgstr "" msgid "Copy" msgstr "ਕਾਪੀ ਕਰੋ" msgid "Cu&t" msgstr "ਕੱਟੋ(&t)" msgid "Cut" msgstr "ਕੱਟੋ" msgid "&Delete" msgstr "ਹਟਾਓ(&D)" msgid "&Quit" msgstr "" msgid "File" msgstr "ਫ਼ਾਇਲ" msgid "Help" msgstr "ਮਦਦ" msgid "&New" msgstr "ਨਵਾਂ(&N)" msgid "&No" msgstr "" msgid "No" msgstr "ਨਹੀਂ" msgid "&OK" msgstr "ਠੀਕ ਹੈ(&O)" msgid "Open…" msgstr "" msgid "&Open..." msgstr "ਖੋਲ੍ਹੋ(&O)..." msgid "Open..." msgstr "...ਖੋਲ੍ਹੋ" msgid "&Paste" msgstr "ਚੇਪੋ(&P)" msgid "Paste" msgstr "ਚੇਪੋ" msgid "Preferences" msgstr "ਮੇਰੀ ਪਸੰਦ" msgid "&Redo" msgstr "ਪਰਤਾਓ(&R)" msgid "Refresh" msgstr "ਤਾਜ਼ਾ ਕਰੋ" msgid "&Save as" msgstr "" msgid "Save as" msgstr "" msgid "Select &All" msgstr "ਸਭ ਚੁਣੋ(&A)" msgid "Select All" msgstr "ਸਭ ਚੁਣੋ" msgid "&Undo" msgstr "ਵਾਪਿਸ ਲਵੋ(&U)" msgid "&Yes" msgstr "ਹਾਂ(&Y)" msgid "Yes" msgstr "ਹਾਂ" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Shift+" msgstr "Shift+" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Enter" msgstr "Enter" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Up" msgstr "Up" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Down" msgstr "Down" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Left" msgstr "" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Right" msgstr "" #. TRANSLATORS: Keyboard shortcut, must correspond to translation of "Ctrl+" msgid "ctrl" msgstr "ctrl" #. TRANSLATORS: Keyboard shortcut, must correspond to translation of "Alt+" msgid "alt" msgstr "alt" #. TRANSLATORS: Keyboard shortcut, must correspond to translation of "Shift+" msgid "shift" msgstr "shift" poedit-2.0.6/locales/ckb.mo0000664000372000037200000006516413230132075012452 00000000000000)d     "1@FLPVh z  !2CIe    ".HQg'l 7 .9ALI"-.5dw $)?Ul CINRYj }E"?3 "8 5[       !.!E!X!o! !<! !!!!! "."4" 9" C"Q"b" w" " " """""" " "##3#6### # $$ #$ -$ ;$F$ _$j$<$.$$$ %%% %7%%&D&G&X&\&a& z&&&&&&&&&''1'''n'=(D(L(S(-m(( (((((( ( ))))&) +) 8) E) Q)\)m)) )) )) ))) **! *B*J*R*[*c*v* ** *******+'+ B+N+ f+r+ ++ ++K+, ,!,3,+P,|,,I,!,L-`S-Y-m.:|.;.m._a/[/0#0@0S0 f0s0w00000 0"0,011101?@1111V1 $2/2M2_2p222722222222 3445(5 >5L5f55v5555 566676V6s66 6666=7=E7 774747 8C 8Cd83838 99029;c999 9991 :?:.T::L:E:8; T;Ua;7;;% <v0<< /=:=J=?e====e=1X>(>(>>>! ?+?!I? k? x?@???=?=7@.u@.@A@A(AB %B/B8B!GBiBBB0+Cg\CC=C\D{DD(D(D+D'*E%RE)xEEEEhE4=F/rF7FFfFUG.lGDGDG %H/H@H^H*|H*HHHI%I)vYqi(eF`B% lw-M)P*;C&Hp\Qn%+#)LTOr|ZDKs $ fc4<VI!7{~ (modified)&About&About Poedit&Bookmarks&Close&Copy&Delete&Done and Next&Done and next&Edit&File&Go&Help&Next Translation&Next translation&Online Help&Online help&Open...&Paste&Preferences&Previous Translation&Previous translation&Purge Deleted Translations&Purge deleted translations&Redo&Save&Show References&Show references&Undo&Untranslated Entries First&Untranslated entries first&Update from Sources&Update from sources&View(0 new, 0 obsolete)(Use default language)(requires Windows 8 or newer)About %sAccountsAdd CommentAdd commentAdd directory to the listAdvancedAll Translation FilesAlt+Always change focus to text input fieldAn item in input files list:An item in keywords list:AppearanceAre you sure you want to delete the “%s” extractor?Automatically check for updatesBase path:Bring All to FrontBroken catalog file: plural form msgstr used without msgid_pluralBroken catalog file: singular form msgstr used together with msgid_pluralBrowseC&atalogCancelCannot create temporary directory.Cannot execute program: %sCatalogCatalog modified. Do you want to save changes?Catalog propertiesCatalogs &ManagerCatalogs &managerChange UI languageCharset:Clear TranslationClear the commentClear translationCloseComment:Compiled Translation FilesConfirmationCopyCopy from Source TextCopy from source textCreate New TranslationCreate new translationCreate new translations projectCrowdin errorCrowdin is an online localization management platform and collaborative translation tool. Poedit can seamlessly sync PO files managed at Crowdin.Ctrl+Cu&tCutDeleteDelete extractorDelete the projectDirectories:Do you really want to do mass update of all catalogs in this project?Do you want to delete the project?Do you want to remove all translations that are no longer used?DownDownloading latest translations…Downloading translations is disabled in this project.E&xitEditEdit &CommentEdit &commentEdit a translationEdit commentEdit projectEdit the projectEditingEnterEnter Full ScreenEntries in the catalog are probably incorrect.Error opening fileError opening file %s!Error saving catalogEverythingExtract text from source files in the following directories:ExtractorsFailed command: %sFailed to load extracted catalog.Failed to merge gettext catalogs.File:FindFind NextFind PreviousFind in commentsFind in translationsFind nextFind previousFix LanguageFix languageFix the headerForm %iGeneralGo to Bookmark %iGo to bookmark %iHTML FilesHide SidebarHide Status BarHide this notification messageIDIf you continue with purging, all translations marked as deleted will be permanently removed. You will have to translate them again if they are added back in the future.Include beta versionsInstallInvalid fileKeepLanguage selectionLanguage:Last modifiedLearn MoreLearn More About CrowdinLearn moreLearn more about CrowdinList of extensions separated by semicolons (e.g. *.cpp;*.h):MO files can’t be directly edited in Poedit.MinimizeNe&xt UnfinishedNe&xt unfinishedNever let the list of strings take focus. If enabled, you must use Ctrl-arrows for keyboard navigation but you can also type text immediately, without having to press Tab to change focus.NewNew stringsNo translation projects listed in your Crowdin account.Not authorized, please sign in again.OKObsolete stringsOneOpenOpen Crowdin translationOpen catalogOpen catalog templateOpen in EditorOpen in editorOptionsOtherP&revious UnfinishedP&revious unfinishedPO TranslationPO Translation FilesPOT Translation TemplatesPOT files are only templates and don’t contain any translations themselves. To make a translation, create a new PO file based on the template.PastePathsPlease open and edit the corresponding PO file instead. When you save it, the MO file will be updated as well.PluralPlural:PoeditPoedit - Catalogs managerPoedit is an easy to use translations editor.Project name and version:Project name:Project:PurgePurge deleted translationsQuitRedoReferences:Remaining: %dReplaceResetReviewSaveSave catalogSave changesSelect &AllSelect AllSelect directorySelect your preferred languageSet Bookmark %iSet LanguageSet bookmark %iSet languageShift+Show SidebarShow Status BarShow or hide the sidebarShow sidebarShow status barShow summary after catalog updateSidebarSign InSign OutSign inSign in to CrowdinSign outSigned in as:SingularSingular:Sort by &File OrderSort by &SourceSort by &TranslationSort by &file orderSort by &sourceSort by &translationSource code charset:Source code not available.Source fileSource file occurrence:Source textSource text — %sSource text:Sources keywordsSources pathsSpeechSpellchecking is disabled, because the dictionary for %s isn’t installed.Start SpeakingStop SpeakingSync with CrowdinSyncing with Crowdin failed.Syntax error in Plural-Forms header ("%s").TMThe file cannot be opened.The file may be either corrupted or in a format not recognized by Poedit.The translation is ready for use.There was a problem formatting the file nicely (but it was saved all right).There were errors when loading the catalog. Some data may be missing or corrupted as the result.These strings are no longer in the sources. Poedit will remove them from the catalog now.These strings were found in the sources but were not in the catalog. Poedit will add them to the catalog now.This file can only be edited in Crowdin’s web interface.This project has no files that can be translated in Poedit.This will be attached to the command line only if source code charset was given. %c expands to charset value.This will be attached to the command line once for each input file. %f expands to the filename.This will be attached to the command line once for each keyword. %k expands to the keyword.TotalTranslated: %d of %d (%d %%)Translation MemoryTranslation — %sTranslation:TwoUTF-8 (recommended)UndoUnix (recommended)UpUpdateUpdate allUpdate all catalogs in the projectUpdate catalog - synchronize it with sourcesUpdate summaryUpdatesUpdating catalogUpdating failedUpdating the catalog failed. Click on 'Details >>' for details.Updating user information…Uploading translations…Use custom list font:Use these keywords (function names) to recognize translatable strings in source files:Version %sWaiting for authentication…Welcome to PoeditWhat is Crowdin?Whole words onlyWindowWindowsYou must restart Poedit for this change to take effect.ZeroZoomaltctrlhandle a poedit:// URIshiftunknown languageProject-Id-Version: poedit Report-Msgid-Bugs-To: help@poedit.net POT-Creation-Date: 2017-12-05 15:52+0100 PO-Revision-Date: 2017-07-27 03:15-0400 Last-Translator: vslavik Language-Team: Sorani (Kurdish) Language: ckb_IR MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=(n != 1); X-Generator: crowdin.com X-Crowdin-Project: poedit X-Crowdin-Language: ckb X-Crowdin-File: /locales/poedit.pot (گۆڕدراو)&دەربارە&Poedit دەربارەی&دڵخوازەکان&داخستن&لەبەرگرتنەوە&سڕینەوە&جێبەجێکراو و بچۆ دانەی دواتر&جێبەجێکراو و بچۆ دانەی دواتر&دەستکاری&پەڕگە&بڕۆ&یارمەتی&وەرگێڕانی دواتر&وەرگێڕانی دواتر&یارمەتی سەرهێڵ&یارمەتی سەرهێڵ&کردنەوە...&دانان&سازکارییەکان&وەرگێڕانی پێشتر&وەرگێڕانی پێشتر&پاکژکردنەوەی وەرگێڕانە سڕاوەکان&پاکژکردنەوەی وەرگێڕانە سڕاوەکان&دواتر&پاشەکەوت کردن&پیشاندانی ئاماژەپێکراوەکان&پیشاندانی ئاماژەپێکراوەکان&پێشتر&سەرەتا وەرنەگێڕدراوە تێئاخنراوەکان&سەرەتا وەرنەگێڕدراوە تێئاخنراوەکان&نوێکردنەوە لە ژێدەرەکانەوە&نوێکردنەوە لە ژێدەرەکانەوە&بینین(0 نوێ، 0 کۆن)(زمانی بنەڕەتی بەکاربهێنە)(پێویستی بە ویندۆزی ٨ یان نوێترە)<ناونەنراو>دەربارەی %sهەژمارنووسینی لێدواننووسینی لێدوانزیادکردنی پێڕست بۆ لیستەکەپەرەسەندووهەموو فایلەکانی وەرگێڕانAlt+هەمیشە سەرنج بگۆڕە بۆ خانەی تێئاخنینی دەقدانەیەک لە لیستەی تێئاخنینی پەڕگەکان:دانەیەک لە لیستەی وشەکلیلەکان:ڕووکارئایا دڵنیایت لە سڕینەوەی دەرهێنەری “%s” extractor؟پشکنین بۆ نوێکردنەوە بەخۆکاریڕێچکەی بنچینە:گشتی بۆ پێشەوە بهێنەپەڕگەی کەتەلۆگی تێکشکاو:فۆڕمی وەرگێڕانی کۆ بەکاردێت بەبێ msgid_pluralپەڕگەی کەتەلۆگی تێکشکاو:فۆڕمی وەرگێڕانی تاک بەکاردێت پێکەوە لەگەڵ msgid_pluralگەڕانکە&تەلۆگهەڵوەشاندنەوەناتوانرێت پێڕستی کاتی دروست بکرێت.ناتوانرێت پرۆگرام جێبەجێ بکرێت: %sکەتەلۆگکەتەلۆگ گۆڕدرا.دەتەوێت گۆڕانکارییەکان پاشەکەوت بکەیت؟تایبەتمەندییەکانی کەتەلۆگسازکاریی &کەتەلۆگەکانسازکاریی &کەتەلۆگەکانگۆڕینی زمانKoma tîpan (Charset):سڕینەوەی وەرگێڕانسڕینەوەی لێدوانسڕینەوەی وەرگێڕانداخستنلێدوان:فایلە وەرگێڕدراوە بەراوردکراوەکاندڵنیاییپێدانلەبەرگرتنەوەلەبەرگرتنەوەی لە دەقی ژێدەرەکەوەلەبەرگرتنەوەی لە دەقی ژێدەرەکەوەدروستکردنی وەرگێڕانی نوێدروستکردنی وەرگێڕانی نوێدروستکردنی پرۆژەیەکی نوێی وەرگێڕانهەڵەی CrowdinCrowdin پڕۆگرامێکی سەرهێلە بۆ خۆماڵی کردن و ئەمرازێکی وەرگێرانی گرووپی و هاوبەشە. Poedit بە شێوەی سەرەتایی توانایی هەیە بۆ هەهانگی PO لە Crowdin.Ctrl+بڕ&ینبڕینسڕینەوەسڕینەوەی دەرهێنەرسڕینەوەی پرۆژەکەپێڕستەکان:دڵنیای کە دەتەوێت نوێکردنەوەیەکی گشتیی هەموو کەتەلۆگەکان بکەیت لەم پرۆژەیە؟دەتەوێت پرۆژەکە بسڕیتەوە؟دەتەوێت هەموو ئەو وەرگێڕانە لاببەیت کە چیتر بەکارنایەن؟دوگمەی خوارەوەدابەزاندنی دوایین وەرگێرانەکان…لە پڕۆژەیەدا دابەزاندنی وەڕگێرانەکان لەکار خراوە.چوو&نەدەرەوەدەستکاریکردندەستکاریکردنی &لێدواندەستکاریکردنی &لێدواندەستکاریکردنی وەرگێڕاندەستکاریکردنی لێدواندەستکاریکردنی پرۆژەدەستکاریکردنی پرۆژەکەدەستکاریکردنEnterپڕ بە شاشەتێئاخنرییوەکان لە کەتەلۆگەکە بە زۆری پێدەچێت نادروست بن.هەڵە هەیە لە کردنەوەی فایلداهەڵە لە کردنەوەی پەڕگەی %s!هەڵە لە پاشەکەوتکردنی کەتەلۆگهەموو شتێکدەرهێنانی دەق لە پەڕگەکانی ژێدەرەوە لە پێڕستەکانی دادێ:دەهێنەرەکانفەرمان سەرکەوتوو نەبوو: %sنەتوانرا دەرهێنانی کەتەلۆگ باربکرێت.لکاندنی کەتەلۆگەکان سەرکەوتوو نەبوو.فایل:دۆزینەوەدۆزینەوەی دواتردۆزینەوەی پێشتردۆزینەوە لە لێدوانەکاندۆزینەوە لە وەرگێڕاندادۆزینەوەی دواتردۆزینەوەی پێشترزمان چاک بکەزمان چاک بکەچاککردنەوەی ناوونیشانفۆڕم %iگشتیچوون بۆ نیشانەکراوی %iچوون بۆ نیشانەکراوی %iHTML فایلەکانیشاردنەوەی لاتەنیشتشارنەوەی شریتی دۆخشاردنەوەی ئەم پەیامی ئاگادارکردنەوەیەIDئەگەر بەردەوام بیت لەگەڵ بەرکەنارخستن،هەموو ئەو وەرگێڕدراوانەی نیشانەکراون وەکو سڕدراوە بە یەکجاریی لادەبرێن.ئەو کات دەبێت دووبارە وەریان بگێڕیتەوە ئەگەر زیادکران لە داهاتوودا.هەروەها وەشانی بیتادابەزاندنجۆری فایل نادروستەهێشتنەوەهەڵبژاردنەکانی زمانزمان:دوایین گۆڕانکارییزیاتر فێربەCrowdin زانیاری زیاتر دەربارەیزیاتر بزانەCrowdin زانیاری زیاتر دەربارەیلیستێک لە extensions جیاکرانەتەوە بە خاڵبۆر (e.g. *.cpp;*.h):ناتواندرێت راستەوخۆ پەڕەگەکانی MO لە ناو Poedit دەستکاری بکرێت.بچوککردنەوەتەواو&نەکراوی دواترتەواو&نەکراوی دواترهەرگیز مەهێڵە لیستێک لە زنجیرەنووسەکان سەرنج ببەن.ئەگەر چالاککرا،پێویستە Ctrl- و ئاراستەکان بەکاربهێنیت بۆ ڕێنیشاندەرەکانی تەختەکلیل بەڵام دەشتوانیت بەخێرایی دەق بنووسیت بە بێ ئەوەی کرتە لەسەر تاب بکەیت بۆ گۆڕینی سەرنج.نوێزنجیرەنووسەی نوێهیچ پرۆژەیەکی وەرگێران لە ئەکاونتی Crowdin تۆ ریزبەند نەکراوە.دەسەڵاتی پێى نەدراوە، تكايە دووبارە بڕۆ ژوورەوە.باشەزنجیرەنووسەی کۆنیەککردنەوەCrowdin کردنەوەی ئامرازی وەرگێڕانیکردنەوەی کەتەلۆگکردنەوەی کەتەلۆگی داڕێژەکردنەوە لە دەستکاریکەرداکردنەوە لە دەستکاریکەرداهەڵبژاردنەکانجۆری ترتەواو&نەکراوی پێشووتەواو&نەکراوی پێشووPO وەرگێرانیبوخچەی وەڕگێرانی POتێمپلەتى وەرگێڕانی POTفايلى POT تەنها تێمپلەتن و هیچ وەرگێڕان لە خۆيان ناگرن. وەرگێڕان دروەست دەکەن، پەڕگەیەکی PO ی نوێ دروست بكە لەسەر بنەماى تێمپلەتەكە.دانانڕێچکەکانتکایە پەڕگەی PO دووبارە بکەرەوە و دەستکاری بکە لە جیاتی ئەمە. کاتێک تۆ پاشەکەوتی دەکەیت, پەرگەی MO بە باشی نوێ دەبێتەوە.کۆکۆ:PoeditPoedit - سازکاریی کەتەلۆگەکانPoedit دەستکاریکەرێکی سادە و ئاسان لە بەکارهێنانە بۆ وەرگێڕانەکان.ناو و وەشانی پرۆژە:ناوی پرۆژە:پڕۆژە:پاکژکردنەوەپاکژکردنەوەی وەرگێڕانە سڕدراوەکانوازهێنانپێشترئاماژەپێکراوەکان:ماوە: %dجێگۆڕینڕێکخستنەوەچاو پیاخشاندنەوەپاشەکەوت کردنپاشەکەوت کردنی کەتەلۆگپاشەکەوت کردنی گۆڕانکارییەکاندیاریکردنی &هەموویدیاریکردنی هەموویپێڕست دەستنیشان بکەزمانی پەسەندکراوت دەستنیشان بکەڕێکخستنی نیشانەکراوی %iڕێکخستنی زمانڕێکخستنی نیشانەکراوی %iڕێکخستنی زمانShift+پیشاندانی لاتەنیشتپیشاندانی شریتی دۆخپیشاندان و شارنەوەی لاتەنیشتپیشاندانی لاتەنیشتپیشاندانی شریتی دۆخکورتەیەک پیشان بدە پاش نوێکردنەوەی کەتەلۆگلاتەنیشتچونەژوورەوەدەرچوونچونەژوورەوەCrowdin چونەژوورەوە بۆدەرچوونچویتەژوورەوە وەک:تاکتاک:ڕێکخستن بەپێی &ڕیزی پەڕگەڕێکخستن بەپێی &ژێدەرڕێکخستن بەپێی &وەرگێڕانڕێکخستن بەپێی &ڕیزی پەڕگەڕێکخستن بەپێی &ژێدەرڕێکخستن بەپێی &وەرگێڕانهێڵکاری کۆدی ژێدەر:کۆدی سەرچاوە کراوە بوونی نیە.پەڕگەی ژێدەرگوێزەرەوەکانی کۆدی ژێدەر:دەقی ژێدەرسەرچاوەی دەق — %sدەقی ژێدەر:ژێدەرەکانی کلیلەوشەژێدەرەکانی ڕێچکەکاندەنگهەڵەگری زمانەوەانی ناچالاکە چونکە فەرهەنگ نامە بۆ %s دانەمەزراوە.قسە بکەراوەستاندنی قشەکردنCrowdin هاوکاتکردن لەگەڵ هەماهەنگ کردن لەگەڵ Crowdin سەرکەوتوو نەبوو.هەڵەی ڕستەکار لە ناوونیشانی فۆڕمی کۆ ("%s").TMئەم پەڕگەیە ناتواندرێت بکرێتەوە.فايلەكە لەوانەيە پەڕگەکە تێک بچێت يان لە نەناسرێتەوە لەلايەن Poedit.وەرگێڕانەکە ئامادەیە بۆ بەکارهێنان.کێشەیەک ڕوویدا لە کاتی بەمەرجکردنی پەڕگەکە(بەڵام هەرچۆنێک بێت پاشەکەوتکرا).هەڵەیەک ڕوویدا لە کاتی بارکردنی کەتەلۆگ.هەندێک لە داتاکان ڕەنگە دیارنەبن یاخود تێکشکابن لە ئەنجامی ئەو هەڵەیەدا.ئەم زنجیرەنووسانە چیتر لە ژێدەرەکەدا نین. Poedit ئێستا لە کەتەلۆگەکە لایان دەبات.ئەم زنجیرەنووسانە دۆزرانەوە لە ژێدەرەکاندا بەڵام لە کەتەلۆگەکەدا نەبوون. Poedit ئێستا زیادیان دەکات بۆ کەتەلۆگەکە.ئەم فايلە دەتوانێت تەنها پاكنووس بكرێت لە رووکاری وێبی Crowdin.ئەم پڕۆژەیە هیچ پەڕگەیەکی تێدانیە لە Poedit وەربگێردرێت.ئەمە هاوپێچ دەکرێت بۆ دێڕی فەرمان تەنیا ئەگەر کۆدی هێڵکاریی ژێدەر درابوو. %c فرااوانی دەکات بۆ نرخی هێڵکاریی.ئەمە هاوپێچ دەکرێت بۆ دێڕی فەرمی یەکجار بۆ هەر پەڕگەیەکی تێچوو. %f فراوانی دەکات بۆ ناوی پەڕگە.ئەمە هاوپێچ دەکرێت بۆ دێڕی فەرمی یەکجار بۆ هەر کلیلەوشەیەک. %k فراوانی دەکات بۆ کلیلەوشەکە.هەموووەرگێڕدراو: %d لە %d (%d %%)بیرگەی وەرگێڕانوەرگێڕان — %sوەرگێڕان:دووUTF-8 (پێشنیارکراو)پووچکردنەوەUnix (پێشنیارکراو)دوگمەی سەرەوەنوێکردنەوەنوێکردنەوەی هەموونوێکردنەوەی هەموو کەتەلۆگەکان لە پرۆژەکەنوێکردنەوەی کەتەلۆگ - هاوکاتکردنی لەگەڵ ژێدەرەکاندایەکورتە نوێ بکەرەوەنوێکردنەوەنوێکردنەوەی تۆمارەکاننوێکردنەوە سەرکەوتو نەبوونوێکردنەوەی کەتەلۆگەکە شکستی هێنا. کرتە بکە لەسەر 'زانیاری >>' بۆ زانیاری زیاتر.نوێکردنەوەی زانیارییەکانی بەکارهێنەر…بەرزکردنەوەی وەرگێران…بەکارهێنانی فۆنتی تایبەتی:ئەم کلیلەوشانە بەکاربهێنە(ناوی نەخشەکان) بۆ ناسینەوەی ئەو زنجیرەنووسانەی دەتوانرێت وەربگێڕدرێت لە پەڕگەکانی ژێدەرەکە:وەشان %sچاوەڕوانی ڕێگەپێدانبە…Poedit بەخێربێیت بۆچییە Crowdinتەنیا گشت وشەکانپەنجەرەWindowsپێویستە دووبارە Poedit دەستپێبکەیتەوە بۆ ئەوەی گۆڕانکارییەکان شوێنی خۆیان بگرن.سفرنزیکخستنەوەaltctrlهەڵسوکەوت بکە لەگەڵ poedit:// URIshiftزمانی نەزانراوpoedit-2.0.6/locales/bg.po0000664000372000037200000020472513230132075012304 00000000000000msgid "" msgstr "" "Project-Id-Version: poedit\n" "Report-Msgid-Bugs-To: help@poedit.net\n" "POT-Creation-Date: 2017-12-05 15:52+0100\n" "PO-Revision-Date: 2018-01-18 07:55-0500\n" "Last-Translator: vslavik \n" "Language-Team: Bulgarian\n" "Language: bg_BG\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: crowdin.com\n" "X-Crowdin-Project: poedit\n" "X-Crowdin-Language: bg\n" "X-Crowdin-File: /locales/poedit.pot\n" msgid "Hide this notification message" msgstr "Скриване на това съобщение" msgid "Don’t Show Again" msgstr "Да не се показва повече" msgid "Don’t show again" msgstr "Да не се показва повече" #, c-format msgid "(New: %i, obsolete: %i)" msgstr "(нови: %i, остарели: %i)" msgid "Updating catalog" msgstr "Актуализация на каталог" msgid "Collecting source files…" msgstr "Събиране на изходните файлове…" msgid "Extracting translatable strings…" msgstr "Извличане на низовете за превод…" msgid "Failed to load extracted catalog." msgstr "Извлеченият каталог не може да бъде зареден." msgid "Merging differences…" msgstr "Обединяване на разликите…" #, c-format msgid "“%s” is not a valid POT file." msgstr "„%s“ е неправилен файл POT." #, c-format msgid "%i line of file “%s” was not loaded correctly." msgid_plural "%i lines of file “%s” were not loaded correctly." msgstr[0] "%i ред от файла „%s“ не беше зареден правилно." msgstr[1] "%i реда от файла „%s“ не бяха заредени правилно." #, c-format msgid "Line %d of file “%s” is corrupted (not valid %s data)." msgstr "Ред %d от файла „%s“ е неправилен (неправилни данни за %s)." #, c-format msgid "Malformed header: “%s”" msgstr "Неправилна заглавка: „%s“" msgid "" "Broken catalog file: singular form msgstr used together with msgid_plural" msgstr "" "Повреден каталог: използвана е единствена форма на msgstr при наличие на " "msgid_plural" msgid "Broken catalog file: plural form msgstr used without msgid_plural" msgstr "" "Повреден каталог: използвана е множествена форма на msgstr, а msgid_plural " "липсва" msgid "" "There were errors when loading the catalog. Some data may be missing or " "corrupted as the result." msgstr "" "Имаше грешки при зареждане на каталога. Може да има липсващи или повредени " "данни." #, c-format msgid "Couldn’t load file %s, it is probably corrupted." msgstr "Грешка при отваряне на файла „%s“. Най-вероятно е повреден." #, c-format msgid "" "File “%s” is read-only and cannot be saved.\n" "Please save it under different name." msgstr "" "Файлът „%s“ е без право на запис.\n" "Запазете го под друго име." #, c-format msgid "Couldn’t save file %s." msgstr "Файлът „%s“ не може да бъде запазен." msgid "" "There was a problem formatting the file nicely (but it was saved all right)." msgstr "Възникна проблем при форматиране на файлa, но той беше запазен." #, c-format msgid "" "The catalog couldn’t be saved in “%s” charset as specified in catalog " "settings.\n" "\n" "It was saved in UTF-8 instead and the setting was modified accordingly." msgstr "" "Каталогът не може да бъде запазен в избрания знаков набор „%s“, указан в " "настройките.\n" "\n" "Вместо това е запазен в UTF-8, а настройките му са променени." msgid "Error saving catalog" msgstr "Грешка при запазване на каталога" msgid "PO Translation Files" msgstr "Файлове с преводи" msgid "POT Translation Templates" msgstr "Шаблон за преводи" msgid "All Translation Files" msgstr "Всички файлове за превод" msgid "(Use default language)" msgstr "(Ползване на стандартния език)" msgid "Select your preferred language" msgstr "Избиране на предпочитан език" msgid "Language selection" msgstr "Избиране на език" msgid "You must restart Poedit for this change to take effect." msgstr "Трябва да рестартирате Poedit, за да влезе в сила тази промяна." msgid "Syncing" msgstr "Синхронизиране" #. TRANSLATORS: %s is a cloud destination, e.g. "Crowdin" or ftp.wordpress.com etc. #, c-format msgid "Syncing with %s…" msgstr "Синхронизиране с %s…" #. TRANSLATORS: %s is a cloud destination, e.g. "Crowdin" or ftp.wordpress.com etc. #, c-format msgid "Syncing with %s failed." msgstr "Синхронизирането с %s е неуспешно." msgid "Syncing error" msgstr "Грешка при синхронизиране" msgid "Downloading translations is disabled in this project." msgstr "Изтеглянето на преводи е изключено за този проект." msgid "Not authorized, please sign in again." msgstr "Не сте удостоверени, моля, впишете се отново." msgid "" "Crowdin is an online localization management platform and collaborative " "translation tool. Poedit can seamlessly sync PO files managed at Crowdin." msgstr "" "Crowdin е онлайн платформа за управление на локализации и инструмент за " "съвместни преводи. Poedit може безпроблемно да синхронизира PO, управлявани " "от Crowdin." msgid "Sign In" msgstr "Вписване" msgid "Sign in" msgstr "Вписване" msgid "Sign Out" msgstr "Изход" msgid "Sign out" msgstr "Изход" msgid "Waiting for authentication…" msgstr "Изчакване на удостоверяване…" msgid "Updating user information…" msgstr "Обновяване на информацията за потребителя…" msgid "Signed in as:" msgstr "Вписани като:" msgid "Learn More About Crowdin" msgstr "Научете повече за Crowdin" msgid "Learn more about Crowdin" msgstr "Научете повече за Crowdin" msgid "Sign in to Crowdin" msgstr "Вписване се в Crowdin" msgid "Open Crowdin translation" msgstr "Отваряне на превод от Crowdin" msgid "Project:" msgstr "Проект:" msgid "Language:" msgstr "Език:" msgid "File:" msgstr "Файл:" msgid "No translation projects listed in your Crowdin account." msgstr "Няма проекти за превод във вашия профил в Crowdin." msgid "This project has no files that can be translated in Poedit." msgstr "Този проект няма файлове, които да могат да бъдат преведени с Poedit." msgid "This file can only be edited in Crowdin’s web interface." msgstr "Този файл може да бъде редактиран само през уеб интерфейса на Crowdin." msgid "Downloading latest translations…" msgstr "Изтегляне на текущите преводи…" msgid "Syncing with Crowdin failed." msgstr "Неуспешно синхронизиране с Crowdin." msgid "Crowdin error" msgstr "Грешка в Crowdin" msgid "Uploading translations…" msgstr "Изпращане на преводите…" msgid "&Copy" msgstr "&Копиране" msgid "Learn more" msgstr "Научете повече" msgid "Learn More" msgstr "Научете повече" msgid "&Help" msgstr "Помо&щ" msgid "MO files can’t be directly edited in Poedit." msgstr "MO файлове не могат да бъдат директно редактирани в Poedit." msgid "Error opening file" msgstr "Грешка при отваряне на файл" msgid "" "Please open and edit the corresponding PO file instead. When you save it, " "the MO file will be updated as well." msgstr "" "Моля, вместо това отворете и редактирате съответния файл PO. Когато запазите " "вашите промени, файлът MO също ще бъде обновен." msgid "don’t delete temporary files (for debugging)" msgstr "временните файлове да не бъдат изтривани (в случай на проблеми)" msgid "handle a poedit:// URI" msgstr "управление на протокола poedit://" msgid "go to item at given line number" msgstr "към елемента на зададения ред" msgid "Failed to communicate with Poedit process." msgstr "Грешка в комуникацията с процес на Poedit." #, c-format msgid "Unhandled exception occurred: %s" msgstr "Неприхванато изключение: %s" msgid "Open catalog" msgstr "Отваряне на каталог" #, c-format msgid "File “%s” doesn’t exist." msgstr "Файлът „%s“ не съществува." msgid "Poedit is an easy to use translations editor." msgstr "Poedit е лесен за ползване редактор на преводи." msgid "Catalogs Manager" msgstr "&Управление на каталози" msgid "Check for Updates…" msgstr "Проверка за обновяване…" msgid "&Edit" msgstr "&Редактиране" msgid "Undo" msgstr "Отмяна" msgid "Redo" msgstr "Повтаряне" msgid "Paste and Match Style" msgstr "Вмъкване със запазване на стила" msgid "Delete" msgstr "&Изтриване" msgid "Spelling and Grammar" msgstr "Правопис и граматика" msgid "Show Spelling and Grammar" msgstr "Правопис и граматика" msgid "Check Document Now" msgstr "Проверка на документа" msgid "Check Spelling While Typing" msgstr "Проверка на правописа при въвеждане" msgid "Check Grammar With Spelling" msgstr "Проверка на граматика и правопис" msgid "Correct Spelling Automatically" msgstr "Автоматична корекция на правописа" msgid "Substitutions" msgstr "Замествания" msgid "Show Substitutions" msgstr "Показване на замествания" msgid "Smart Copy/Paste" msgstr "Умно копиране/поставяне" msgid "Smart Quotes" msgstr "Умни кавички" msgid "Smart Dashes" msgstr "Умни тирета" msgid "Smart Links" msgstr "Умни връзки" msgid "Text Replacement" msgstr "Заместване на текст" msgid "Transformations" msgstr "Трансформации" msgid "Make Upper Case" msgstr "Към главни букви" msgid "Make Lower Case" msgstr "Към малки букви" msgid "Capitalize" msgstr "В главни букви" msgid "Speech" msgstr "Говор" msgid "Start Speaking" msgstr "Начало на изчитане" msgid "Stop Speaking" msgstr "Край на изчитане" msgid "&View" msgstr "&Изглед" msgid "Enter Full Screen" msgstr "На &цял екран" msgid "Window" msgstr "Прозорец" msgid "Minimize" msgstr "Минимизиране" msgid "Zoom" msgstr "Мащаб" msgid "Bring All to Front" msgstr "Всички на преден план" #. TRANSLATORS:File kind displayed in Finder/Explorer msgid "PO Translation" msgstr "Файл с превод PO" msgid "The file cannot be opened." msgstr "Файлът не може да бъде отворен." msgid "Invalid file" msgstr "Невалиден файл" msgid "" "The file may be either corrupted or in a format not recognized by Poedit." msgstr "Файлът може да е повреден или е непознат за Poedit формат." msgid "You can’t drop more than one file on Poedit window." msgstr "Не може да пуснете повече от един файл в прозореца на Poedit." #, c-format msgid "File “%s” is not a message catalog." msgstr "Файлът „%s“ не е каталог със съобщения." msgid "Poedit" msgstr "Poedit" msgid "&File" msgstr "&Файл" msgid "&Go" msgstr "О&бхождане" #. TRANSLATORS: %s is language name in its basic form (as you #. would see e.g. in a list of supported languages). You may need #. to rephrase it, e.g. to an equivalent of "for language %s". #, c-format msgid "" "Spellchecking is disabled, because the dictionary for %s isn’t installed." msgstr "" "Проверката на правописа е изключена, защото не е инсталиран речник за %s." msgid "Install" msgstr "Инсталиране" msgid "Catalog modified. Do you want to save changes?" msgstr "Каталогът е променен. Искате ли да запазите промените?" msgid "Save changes" msgstr "Запазване на промените" msgid "Your changes will be lost if you don’t save them." msgstr "Направените промени ще бъдат загубени, ако не бъдат запазени." msgid "Save" msgstr "&Запазване" msgid "Don’t save" msgstr "Без запазване" msgid "Don’t Save" msgstr "Без запазване" msgid "Save as…" msgstr "Запазване като…" msgid "Compile to…" msgstr "Компилиране до…" msgid "Compiled Translation Files" msgstr "Компилирани преводи" msgid "Export as…" msgstr "Изнасяне като…" msgid "HTML Files" msgstr "HTML файлове" msgid "Open catalog template" msgstr "Отваряне на шаблон на каталог" msgid "Source code not available." msgstr "Изходният код не е на разположение." msgid "Updating failed" msgstr "Грешка при обновяване" msgid "" "Translations couldn’t be updated from the source code, because no code was " "found in the location specified in the catalog’s Properties." msgstr "" "Не всички преводи са обновени от изходния код, защото такъв не е открит на " "посоченото в настройките на каталога място." msgid "Entries in the catalog are probably incorrect." msgstr "Низовете в каталога вероятно са неправилни." msgid "Updating the catalog failed. Click on 'Details >>' for details." msgstr "Неуспешна актуализация на каталога. За подробности натиснете „Още»“." #, c-format msgid "%d issue with the translation found." msgid_plural "%d issues with the translation found." msgstr[0] "С превода има %d проблем." msgstr[1] "С превода има %d проблема." msgid "Validation results" msgstr "Резултат от валидиране" msgid "" "Entries with errors were marked in red in the list. Details of the error " "will be shown when you select such an entry." msgstr "" "Низовете с грешки са разграничени в списъка с червен цвят на фона. " "Подробности ще бъдат показани, когато изберете такъв запис." msgid "The file was saved safely." msgstr "Файлът беше запазен." msgid "" "The file was saved safely and compiled into the MO format, but it will " "probably not work correctly." msgstr "" "Файлът беше запазен и компилиран във формат MO, но вероятно няма да работи." msgid "" "The file was saved safely, but it cannot be compiled into the MO format and " "used." msgstr "" "Файлът беше запазен безопасно, но не може да бъде компилиран във формат MO и " "използван." msgid "" "The file was compiled into the MO format, but it will probably not work " "correctly." msgstr "Файлът е компилиран във формат MO, но вероятно няма да работи." msgid "The file cannot be compiled into the MO format and used." msgstr "Файлът не може да бъде компилиран във формат MO и използван." msgid "No problems with the translation found." msgstr "Не са открити проблеми в превода" #, c-format msgid "The translation is ready for use, but %d entry is not translated yet." msgid_plural "" "The translation is ready for use, but %d entries are not translated yet." msgstr[0] "Преводът е готов за използване, но все още има %d непреведен низ." msgstr[1] "Преводът е готов за използване, но все още има %d непреведени низа." msgid "The translation is ready for use." msgstr "Преводът е готов за използване." #, c-format msgid "Poedit automatically fixed invalid content in the file “%s”." msgstr "PoEdit автоматично оправи невалидно съдържание във файла „%s“." msgid "" "The file contained duplicate items, which is not allowed in PO files and " "would prevent the file from being used. Poedit fixed the issue, but you " "should review translations of any items marked as needing work and correct " "them if necessary." msgstr "" "Файлът съдържа дублиращи се елементи, което е забранено във файлове PO и ще " "предотвратят използването му. PoEdit решава този проблем, но е необходим " "преглед на преводите на всички елементи, отбелязани като мъгляви и ако е " "необходимо да ги коригирате." msgid "Language of the translation isn’t set." msgstr "Липсва език на превода." msgid "Set Language" msgstr "Задаване на език" msgid "Set language" msgstr "Задаване на език" #. TRANSLATORS: This is shown underneath "Language of the translation isn't set (or ...is the same as source language)." msgid "" "Suggestions are not available if the translation language is not set " "correctly. Other features, such as plural forms, may be affected as well." msgstr "" "Предложенията са недостъпни за неправилно конфигурирани езици. Други " "възможности като формите за множествено число също може да бъдат засегнати." msgid "Language of the translation is the same as source language." msgstr "Езикът на превода е същият като изходния език." msgid "Fix Language" msgstr "Промяна на езика" msgid "Fix language" msgstr "Промяна на езика" msgid "" "This catalog has entries with plural forms, but doesn’t have Plural-Forms " "header configured." msgstr "" "Този каталог има форми за множествено число, но заглавката „Plural-Forms“ " "липсва." msgid "" "Entries in this catalog have different plural forms count from what " "catalog’s Plural-Forms header says" msgstr "" "В този каталог се срещат форми за множествено число, които не отговарят на " "заглавката „Plural-Forms“" msgid "Required header Plural-Forms is missing." msgstr "Задължителната заглавка „Plural-Forms“ липсва." #, c-format msgid "Syntax error in Plural-Forms header (\"%s\")." msgstr "Синтактична грешка в заглавката „Plural-Forms“ („%s“)." msgid "Fix the Header" msgstr "Коригиране на заглавката" msgid "Fix the header" msgstr "Коригиране на заглавката" #. TRANSLATORS: %s is language name in its basic form (as you #. would see e.g. in a list of supported languages). You may need #. to rephrase it, e.g. to an equivalent of "for language %s". #, c-format msgid "Plural forms expression used by the catalog is unusual for %s." msgstr "" "Изразът за формите на множественото число на каталога е необичаен за %s език." #. TRANSLATORS: A verb, shown as action button with ""Plural forms expression used by the catalog is unusual for %s.")" msgid "Review" msgstr "Рецензия" #, c-format msgid "Error loading message catalog file “%s”." msgstr "Грешка при зареждане на файла „%s“." #, c-format msgid "Translated: %d of %d (%d %%)" msgstr "Преведени: %d от %d (%d%%)" #, c-format msgid "Remaining: %d" msgstr "Оставащи: %d" #, c-format msgid "%d error" msgid_plural "%d errors" msgstr[0] "%d грешка" msgstr[1] "%d грешки" #, c-format msgid "%d entry" msgid_plural "%d entries" msgstr[0] "%d елемент" msgstr[1] "%d елемента" msgid " (unsaved)" msgstr " (незапазен)" msgid " (modified)" msgstr " (незапазен)" #, c-format msgid "Failed to update translation memory: %s" msgstr "Актуализирането на паметта с преводи е неуспешно: %s" msgid "Purge deleted translations" msgstr "Прочистване на изтрити преводи" msgid "Do you want to remove all translations that are no longer used?" msgstr "Искате ли да премахнете всички преводи, които вече не се използват?" msgid "" "If you continue with purging, all translations marked as deleted will be " "permanently removed. You will have to translate them again if they are added " "back in the future." msgstr "" "Ако продължите с прочистването, всички преводи, обозначени като изтрити ще " "бъдат премахнати. Ще трябва да ги превеждате отново, ако в последствие бъдат " "върнати." msgid "Keep" msgstr "&Отказ" msgid "Purge" msgstr "Прочистване" msgid "Copy from source text" msgstr "&Копиране изходния текст" msgid "Copy from Source Text" msgstr "Копиране от изходния текст" #. TRANSLATORS: This is the key shortcut used in menus on Windows, some languages call them differently #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Ctrl+" msgstr "Ctrl+" msgid "Clear translation" msgstr "И&зчистване на превода" msgid "Clear Translation" msgstr "И&зчистване на преводa" msgid "Edit comment" msgstr "Редактиране на &коментар" msgid "Edit Comment" msgstr "Редактиране на &коментар" msgid "References:" msgstr "Позовавания:" msgid "&Bookmarks" msgstr "&Отметки" #. TRANSLATORS: This is the key shortcut used in menus on Windows, some languages call them differently #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Alt+" msgstr "Alt+" #, c-format msgid "Set bookmark %i" msgstr "Добавяне на отметка %i" #, c-format msgid "Go to bookmark %i" msgstr "Към отметка %i" #, c-format msgid "Set Bookmark %i" msgstr "Добавяне на отметка %i" #, c-format msgid "Go to Bookmark %i" msgstr "Към отметка %i" msgid "Hide Sidebar" msgstr "&Скриване странична лента" msgid "Show Sidebar" msgstr "&Показване на странична лента" msgid "Hide Status Bar" msgstr "Скриване на лента за състоянието" msgid "Show Status Bar" msgstr "Показване на лента за състоянието" msgid "Source text:" msgstr "Изходен текст:" msgid "Singular:" msgstr "Единствено число:" msgid "Plural:" msgstr "Множествено число:" msgid "Translation:" msgstr "Превод:" msgid "Pre-translated" msgstr "Предварителен превод" msgid "Needs Work" msgstr "Мъгляв" #. TRANSLATORS: This indicates that the string's translation isn't final #. and has known problems. For example, it might be machine translated or #. fuzzy matched from an older string. The translation should be short and #. convey this. If it's problematic to translate it, "Needs review" is #. acceptable substitute, but note that the meaning is subtly different: #. "needs review" implies that somebody else should review the string after #. I am done with it (i.e. consider it good), while "needs work" implies I #. need to return to it and finish the translation. msgid "Needs work" msgstr "Мъгляв" msgid "" "POT files are only templates and don’t contain any translations themselves.\n" "To make a translation, create a new PO file based on the template." msgstr "" "Файловете POT са само шаблони и сами по себе си не съдържат преводи.\n" "За да започнете превод създайте нов файл PO базиран на този шаблон." msgid "Create New Translation" msgstr "Създаване на превод" msgid "Create new translation" msgstr "Създаване на &нов превод" msgid "Everything" msgstr "Всичко" #, c-format msgid "Form %i" msgstr "Форма %i" msgid "Singular" msgstr "Единствено число" msgid "Zero" msgstr "Нула" msgid "One" msgstr "Един" msgid "Two" msgstr "Два" msgid "Plural" msgstr "Множествено число" msgid "Other" msgstr "Повече" #, c-format msgid "%s Format" msgstr "Формат на %s" #. TRANSLATORS: %s is replaced with language name, e.g. "PHP" or "C", so "PHP Format" etc." #, c-format msgid "%s format" msgstr "формат на %s" msgid "Source text" msgstr "Изходен текст" #, c-format msgid "Translation — %s" msgstr "Превод на %s" msgid "ID" msgstr "Идентификатор" #, c-format msgid "Source text — %s" msgstr "Изходен текст – %s" msgid "unknown language" msgstr "неизвестен език" #, c-format msgid "Failed command: %s" msgstr "Неуспешна команда: %s" msgid "Failed to merge gettext catalogs." msgstr "Неуспешно обединяване на каталози на gettext." msgid "Source file" msgstr "Файл с изходен код" msgid "Source file occurrence:" msgstr "&Позоваване:" msgid "Open in Editor" msgstr "Отваряне с редактор" msgid "Open in editor" msgstr "Отваряне с редактор" msgid "No references for the selected item." msgstr "Няма предпочитания за избрания елемент." #, c-format msgid "Error opening file %s!" msgstr "Грешка при отваряне на „%s“!" msgid "Find" msgstr "Търсене…" msgid "Replace" msgstr "Заместване" #. TRANSLATORS: Expander in Find window for additional options (case sensitive etc.) msgid "Options" msgstr "Настройки" msgid "Ignore case" msgstr "Незачитане на регистъра" msgid "Wrap around" msgstr "Безконечно търсене" msgid "Whole words only" msgstr "&Цели думи" msgid "Find in source texts" msgstr "Търсене в изходните низове" msgid "Find in translations" msgstr "Търсене в &преводите" msgid "Find in comments" msgstr "Търсене в &коментарите" msgid "Close" msgstr "&Затваряне" msgid "Replace &All" msgstr "Замяна на &всички" msgid "Replace &all" msgstr "Замяна на &всички" msgid "&Replace" msgstr "&Замяна" msgid "< &Previous" msgstr "&< Предишен" msgid "&Next >" msgstr "Следващ &>" msgid "String to find" msgstr "Търсете" msgid "Replacement string" msgstr "Заместете" #, c-format msgid "Cannot execute program: %s" msgstr "Програмата не може да бъде изпълнена: %s" msgid "Language Code or Name (e.g. en_GB)" msgstr "Код или име на езика (например en_GB)" msgid "Translation Language" msgstr "Език" msgid "Language of the translation:" msgstr "Език на превода:" msgid "Poedit - Catalogs manager" msgstr "Poedit — управление на каталози" msgid "Catalog" msgstr "Каталог" msgid "Total" msgstr "Всичко" msgid "Untrans" msgstr "Непреведени" msgid "Errors" msgstr "Грешки" msgid "Last modified" msgstr "Последна промяна" msgid "Select directory" msgstr "Избиране на папка" msgid "Directories:" msgstr "Папки:" msgid "" msgstr "<без име>" msgid "Do you want to delete the project?" msgstr "Искате ли да изтриете проекта?" msgid "Confirmation" msgstr "Потвърждение" msgid "" "Do you really want to do mass update of\n" "all catalogs in this project?" msgstr "" "Наистина ли искате да направите масова актуализация\n" "на всички каталози в този проект?" msgid "Information about the translator" msgstr "Информация за преводача" msgid "Name:" msgstr "Име:" msgid "Your Name" msgstr "Вашето име" msgid "Email:" msgstr "Електронна поща:" msgid "your_email@example.com" msgstr "вашият_имейл@пример.com" msgid "" "Your name and email address are only used to set the Last-Translator header " "of GNU gettext files." msgstr "" "Името и електронната ви поща ще бъдат ползвани само за попълването на " "заглавката „Last-Translator“ на файловете на GNU gettext." msgid "Editing" msgstr "Редактиране" msgid "Automatically compile MO file when saving" msgstr "&автоматично компилиране до файл MO при запазване" msgid "Show summary after catalog update" msgstr "&резюме след обновяване на каталог" msgid "Check spelling" msgstr "Проверка на правописа" msgid "Always change focus to text input field" msgstr "полето за превод &винаги на фокус" msgid "" "Never let the list of strings take focus. If enabled, you must use Ctrl-" "arrows for keyboard navigation but you can also type text immediately, " "without having to press Tab to change focus." msgstr "" "Не позволява на списъка с низове да приеме фокус. Ако е отметнато, трябва да " "използвате Ctrl-стрелки за навигация с клавиатурата, но така можете да " "въвеждате текст веднага, без да се налага да натискате табулатора, за да " "промените фокуса." msgid "Appearance" msgstr "Външен вид" msgid "Use custom list font:" msgstr "шрифт за &списъка с низове" msgid "Use custom text fields font:" msgstr "шрифт за &текстовите полета" msgid "Change UI language" msgstr "Смяна на &езика" #. TRANSLATORS: This is a note appended to "Check spelling" when running on older Windows versions msgid "(requires Windows 8 or newer)" msgstr "(изисква Windows 8 или по-нов)" msgid "General" msgstr "Общи" msgid "Use translation memory" msgstr "Използване на &паметта с преводи" msgid "Learn From Files…" msgstr "Научаване от файлове…" msgid "Learn from files…" msgstr "Научаване от файлове…" #. TRANSLATORS: This is a button that deletes everything in the translation memory (i.e. clears/resets it). msgid "Reset" msgstr "Възстановяване" #. TRANSLATORS: Followed by "match translations within the file" or "pre-translate from TM" msgid "When updating from sources" msgstr "При обновяване от изходен код" #. TRANSLATORS: Preceded by "When updating from sources" msgid "fuzzy match within the file" msgstr "напасване на сходните (мъгляви) текстове в рамките на файла" #. TRANSLATORS: Preceded by "When updating from sources" msgid "pre-translate from TM" msgstr "предварителен превод от ПП" msgid "" "Poedit can attempt to fill in new entries from only previous translations in " "the file or from your entire translation memory. Using the TM won’t be very " "effective if it’s near-empty, but it will get better as you add more " "translations to it." msgstr "" "Poedit може да се опита да попълни новите записи чрез вече съществуващите " "преводи във файла или като използва цялата памет за преводи. Използването на " "ПП няма да е особено ефикасно, ако в нея няма много запис, но това ще става " "все по-добре при попълването ѝ." msgid "Stored translations:" msgstr "Брой запомнени преводи:" msgid "Database size on disk:" msgstr "Големина на базата от данни:" msgid "Select translation files to import" msgstr "Избиране на файлове за импорт" msgid "Translation Memory" msgstr "Памет с преводи" msgid "Importing translations…" msgstr "Внасяне на преводи…" msgid "Finalizing…" msgstr "Приключване…" msgid "Reset translation memory" msgstr "Възстановяване на паметта с преводи" msgid "Are you sure you want to reset the translation memory?" msgstr "Наистина ли желаете паметта с преводи да бъде възстановена?" msgid "" "Resetting the translation memory will irrevocably delete all stored " "translations from it. You can’t undo this operation." msgstr "" "Възстановяването на паметта с преводите безвъзвратно ще изтрие всички " "запомнени от нея преводи. Тази операция не може да бъде отменена." msgid "Cancel" msgstr "О&тказ" #. TRANSLATORS: This is abbreviation of "Translation Memory" used in Preferences on macOS. #. Long text looks weird there, too short (like TM) too, but less so. "General" is about ideal #. length there. msgid "TM" msgstr "Памет" msgid "" "Source code extractors are used to find translatable strings in the source " "code files and extract them so that they can be translated." msgstr "" "Този инструмент намира годни за превод низове във файлове с изходен код и ги " "извлича, така че да могат да бъдат преведени." msgid "Custom Extractors:" msgstr "Потребителски команди за извличане:" msgid "Custom extractors:" msgstr "Потребителски команди за извличане:" msgid "Edit…" msgstr "Редактиране…" msgid "GNU gettext" msgstr "GNU Gettext" msgid "" "Supports all programming languages recognized by GNU gettext tools (PHP, C/C+" "+, C#, Perl, Python, Java, JavaScript and others)." msgstr "" "Поддържа всички програмни езици, признати от инструментите на GNU gettext " "(PHP, C/C++, C#, Perl, Python, Java, JavaScript и други)." msgid "Delete extractor" msgstr "Изтриване на инструмент за извличане" #, c-format msgid "Are you sure you want to delete the “%s” extractor?" msgstr "Наистина ли желаете да изтриете инструментът за извличане „%s“?" msgid "Extractors" msgstr "Извличане" msgid "Accounts" msgstr "Профили" msgid "Automatically check for updates" msgstr "автоматична &проверка за обновяване" msgid "Include beta versions" msgstr "&включително beta-версии" msgid "" "Beta versions contain the latest new features and improvements, but may be a " "bit less stable." msgstr "" "Изданията бета съдържат последните нови възможности и подобрения, но може да " "бъдат по-малко стабилни." msgid "Updates" msgstr "Обновления" msgid "" "These settings affect internal formatting of PO files. Adjust them if you " "have specific requirements e.g. because of version control." msgstr "" "Тези настройки влияят върху вътрешния формат на файловете PO. Настройте ги, " "ако имате конкретни изисквания, например, заради контрол на версиите." msgid "Line endings:" msgstr "&символ за край на ред:" msgid "Unix (recommended)" msgstr "Unix (препоръчително)" msgid "Windows" msgstr "Windows" #. TRANSLATORS: Followed by text control for entering number; wraps text at given width msgid "Wrap at:" msgstr "пренасяне &на:" msgid "Preserve formatting of existing files" msgstr "&запазване на формата на съществуващите файлове" msgid "Advanced" msgstr "Разширени" msgid "Pre-translating…" msgstr "Предварителен превод…" #, c-format msgid "Pre-translated %u string" msgid_plural "Pre-translated %u strings" msgstr[0] "Предварително преведен %u низ" msgstr[1] "Предварително преведени %u низа" #. TRANSLATORS: This is a somewhat common term describing the action where #. you apply the translation memory and/or machine translation to all of the #. strings you're translating as the first step, followed by correcting, #. improving etc., i.e. actually translating the strings. This may be tricky #. to express in other languages as simply as in English, but please try to #. keep it similarly concise. Please try to avoid, if possible, describing it #. as "auto-translation" and similar, because such terminology would mislead #. some users into thinking it's all that needs to be done (spoken from #. experience). "Pre-translate" nicely expresses that it's only the step done #. *before* actual translation. msgid "Pre-translate" msgstr "Предварителен превод" msgid "Only fill in exact matches" msgstr "Попълване само на точните съвпадения" msgid "" "By default, inaccurate results are filled in as well and marked as needing " "work. Check this option to only include accurate matches." msgstr "" "Стандартно неточните резултати биват добавяни, но отбелязани като мъгляви. " "Отметнете, за да бъдат добавяни само точните съвпадения." msgid "Don’t mark exact matches as needing work" msgstr "Точните съвпадения да не бъдат отбелязвани като мъгляви" msgid "" "Only enable if you trust the quality of your TM. By default, all matches " "from the TM are marked as needing work and should be reviewed before use." msgstr "" "Включете това, само ако вярвате в качеството на паметта за преводи. По " "подразбиране всички съвпадения от ПП се отбелязват като мъгляви и трябва да " "бъдат проверени преди употреба." msgid "" "Pre-translation automatically finds exact or fuzzy matches for untranslated " "strings in the translation memory and fills in their translations." msgstr "" "Предварителния превод намира автоматично точни или мъгляви съвпадения за " "непреведените текстове в паметта за преводи и попълва преводите им." #, c-format msgid "%d entry was pre-translated." msgid_plural "%d entries were pre-translated." msgstr[0] "%d запис беше предварително преведен." msgstr[1] "%d записа бяха предварително преведени." msgid "" "The translations were marked as needing work, because they may be " "inaccurate. You should review them for correctness." msgstr "" "Преводите бяха отбелязани като мъгляви, защото може да са неточни. Трябва да " "бъдат проверени." msgid "No entries could be pre-translated." msgstr "Няма записи, които могат да бъдат предварително преведени." msgid "" "The TM doesn’t contain any strings similar to the content of this file. It " "is only effective for semi-automatic translations after Poedit learns enough " "from files that you translated manually." msgstr "" "Паметта с преводи не съдържа низове с подобно съдържание. Тя е ефективна " "само за полу-автоматичен превод след като се е обучила от файловете, които " "ръчно превеждате." msgid "" "Drag and Drop Folders Here\n" "\n" "or use the + button" msgstr "" "Плъзнете и пуснете папки тук \n" "\n" "или натиснете бутона „+“" msgid "" "Drag and drop folders here\n" "\n" "or use the + button" msgstr "" "Плъзнете и пуснете папки тук \n" "\n" "или натиснете бутона „+“" msgid "Add Folders…" msgstr "Добавяне на папки…" msgid "Add folders…" msgstr "Добавяне на папки…" msgid "Add Files…" msgstr "Добавяне на файлове…" msgid "Add files…" msgstr "Добавяне на файлове…" msgid "Add Wildcard…" msgstr "Добавяне на заместващ знак…" msgid "Add wildcard…" msgstr "Добавяне на заместващ знак…" msgid "Paths" msgstr "Пътища" msgid "Excluded paths" msgstr "Пренебрегнати пътища" msgid "Advanced extraction settings" msgstr "Разширени настройки за извличане" msgid "Extract notes for translators from:" msgstr "Извличане на бележки към преводачите от:" msgid "Comments prefixed with:" msgstr "Префикс на &коментарите:" msgid "All comments" msgstr "Всички коментари" msgid "Additional xgettext flags:" msgstr "Допълнителни флагове към xgettext:" msgid "Additional keywords" msgstr "Допълнителни ключови думи" msgid "Name of the project the translation is for" msgstr "име и версия" msgid "Team name and email address or URL" msgstr "Име и електронна поща на екипа или адрес:" msgid "e.g. nplurals=2; plural=(n > 1);" msgstr "например nplurals=2; plural=(n > 1);" msgid "UTF-8 (recommended)" msgstr "UTF-8 (препоръчително)" msgid "Please save the file first. This section cannot be edited until then." msgstr "Моля, първо запазете файла. Тези настройки ще са неактивни дотогава." msgid "Not all plural forms are translated." msgstr "Не всички форма за множествено число са преведени." msgid "The translation should start as a sentence." msgstr "Преводът би трябвало да започва като изречение." msgid "The translation should start with a lowercase character." msgstr "Преводът би трябвало да започва с малка буква." msgid "The translation doesn’t start with a space." msgstr "Липсва интервал в началото на превода." msgid "The translation starts with a space, but the source text doesn’t." msgstr "Преводът започва с интервал, но изходният низ не." msgid "The translation is missing a newline at the end." msgstr "Липсва нов ред в края на превода." msgid "The translation ends with a newline, but the source text doesn’t." msgstr "Преводът завършва с нов ред, но изходният низ не." msgid "The translation is missing a space at the end." msgstr "Липсва интервал в края на превода." msgid "The translation ends with a space, but the source text doesn’t." msgstr "Преводът завършва с интервал, но изходният низ не." #, c-format msgid "The translation should end with “%s”." msgstr "Преводът би трябвло да завършва с „%s“." #, c-format msgid "The translation should not end with “%s”." msgstr "Преводът не би трябвало да завършва с „%s“." #, c-format msgid "The translation ends with “%s”, but the source text ends with “%s”." msgstr "Преводът завършва с „%s“, а изходният низ с „%s“." msgid "Comment:" msgstr "&Коментар:" msgid "OK" msgstr "Д&обре" msgid "C&lear" msgstr "И&зчистване" msgid "Clear the comment" msgstr "Изчистване на коментара" msgid "New" msgstr "&Добавяне" msgid "Create new translations project" msgstr "Създаване на нов проект за превод" msgid "Edit" msgstr "&Редактиране" msgid "Edit the project" msgstr "Редактиране на проекта" msgid "Delete the project" msgstr "Изтриване на проекта" msgid "Update all" msgstr "&Актуализиране на всичко" msgid "Update all catalogs in the project" msgstr "Актуализиране на всички каталози в проекта" msgid "Edit project" msgstr "Редактиране на проект" msgid "Project name:" msgstr "Име на проекта:" msgid "Browse" msgstr "Избиране" msgid "Add directory to the list" msgstr "Добавяне на папка към списъка" msgid "&New…" msgstr "&Нов…" msgid "New from &POT/PO file…" msgstr "Нов от &файл POT/PO…" msgid "New From &POT/PO File…" msgstr "Нов от &файл POT/PO…" msgid "&Open…" msgstr "&Отваряне…" msgid "Open Recent" msgstr "Отваряне на последните файлове" msgid "Open from Crowdin…" msgstr "Отваряне от Crowdin…" msgid "Open From Crowdin…" msgstr "Отваряне от Crowdin…" msgid "&Close" msgstr "&Затваряне" msgid "&Save" msgstr "&Запазване" msgid "Save &as…" msgstr "Запазване &като…" msgid "Save &As…" msgstr "Запазване &като…" msgid "Compile to MO…" msgstr "Компилиране до файл MO…" msgid "E&xport as HTML…" msgstr "Из&насяне като HTML…" msgid "Check for updates…" msgstr "Проверка за обновяване…" msgid "&Preferences…" msgstr "&Настройки…" msgid "Catalogs &manager" msgstr "&Управление на каталози" msgid "Catalogs &Manager" msgstr "&Управление на каталози" msgid "E&xit" msgstr "&Изход" msgid "Quit" msgstr "Изход" msgid "Copy from singular" msgstr "Копиране от ед. ч." msgid "Copy From Singular" msgstr "Копиране от ед. ч." msgid "Translation needs &work" msgstr "Преводът е &мъгляв" msgid "Translation Needs &Work" msgstr "Преводът е &мъгляв" msgid "Edit &comment" msgstr "Редактиране на &коментар" msgid "Edit &Comment" msgstr "Редактиране на &коментар" msgid "Suggestions" msgstr "Предложения" msgid "&Find…" msgstr "&Търсене…" msgid "Replace…" msgstr "&Замяна…" msgid "Find next" msgstr "&Следващо съвпадение" msgid "Find previous" msgstr "&Предишно съвпадение" msgid "Find and Replace…" msgstr "Търсене и замяна…" msgid "Find Next" msgstr "&Следващо съвпадение" msgid "Find Previous" msgstr "&Предишно съвпадение" msgid "&Preferences" msgstr "&Настройки" msgid "Display entry &IDs" msgstr "Показване на и&дентификатор" msgid "Display Entry &IDs" msgstr "Показване на и&дентификатор" msgid "Sort by &file order" msgstr "Сортиране по &файл" msgid "Sort by &File Order" msgstr "Сортиране по &файл" msgid "Sort by &source" msgstr "Сортиране по &изходен текст" msgid "Sort by &Source" msgstr "Подреждане по &изходен текст" msgid "Sort by &translation" msgstr "Сортиране по &превод" msgid "Sort by &Translation" msgstr "Сортиране по &превод" msgid "&Group by context" msgstr "&Групиране по контекст" msgid "&Group By Context" msgstr "&Групиране по контекст" msgid "Entries with errors first" msgstr "Преводите с грешки първи" msgid "Entries with Errors First" msgstr "Преводите с грешки първи" msgid "&Untranslated entries first" msgstr "Н&епреведените първи" msgid "&Untranslated Entries First" msgstr "Н&епреведените първи" msgid "&Show references" msgstr "Показване на &позовавания" msgid "&Show References" msgstr "Показване на &позоваване" msgid "Show sidebar" msgstr "&Показване на странична лента" msgid "Show status bar" msgstr "Показване на лента за състоянието" msgid "C&atalog" msgstr "&Каталог" msgid "&Update from sources" msgstr "Актуализация от &изходен код" msgid "&Update from Sources" msgstr "Актуализация от &изходен код" msgid "Update from &POT file…" msgstr "Обновяване от &файл POT…" msgid "Update from &POT File…" msgstr "Обновяване от &файл POT…" msgid "Sync with Crowdin" msgstr "Синхронизиране с Crowdin" msgid "Pre-&translate…" msgstr "Предварителен &превод…" msgid "&Purge deleted translations" msgstr "&Прочистване на изтрити преводи" msgid "&Purge Deleted Translations" msgstr "&Прочистване на изтрити преводи" msgid "&Validate translations" msgstr "&Валидиране на превода" msgid "&Validate Translations" msgstr "&Валидиране на превода" msgid "&Properties…" msgstr "&Свойства…" msgid "&Done and next" msgstr "&Готово, към следващия" msgid "&Done and Next" msgstr "&Готово, към следващия" msgid "&Previous translation" msgstr "&Предишен низ" msgid "&Previous Translation" msgstr "&Предишен низ" msgid "&Next translation" msgstr "&Следващ низ" msgid "&Next Translation" msgstr "&Следващ низ" msgid "P&revious unfinished" msgstr "П&редишен незавършен" msgid "P&revious Unfinished" msgstr "П&редишен незавършен" msgid "Ne&xt unfinished" msgstr "С&ледващ незавършен" msgid "Ne&xt Unfinished" msgstr "С&ледващ незавършен" msgid "Previous plural form" msgstr "Предишна форма за мн. ч." msgid "Previous Plural Form" msgstr "Предишна форма за мн. ч." msgid "Next plural form" msgstr "Следващата форма за мн. ч." msgid "Next Plural Form" msgstr "Следващата форма за мн. ч." msgid "&Online help" msgstr "Он&лайн помощ" msgid "&Online Help" msgstr "Он&лайн помощ" msgid "&GNU gettext manual" msgstr "&Ръководство на GNU gettext" msgid "&GNU gettext Manual" msgstr "&Ръководство на GNU gettext" msgid "&About Poedit" msgstr "&Относно Poedit" msgid "&About" msgstr "&Относно" msgid "Extractor setup" msgstr "Настройка на извличане" msgid "List of extensions separated by semicolons (e.g. *.cpp;*.h):" msgstr "Списък на разширенията разделени с „;“ (напр. *.cpp; *.h):" msgid "Invocation:" msgstr "Извикване:" msgid "Command to extract translations:" msgstr "&Команда за извличане на низове:" msgid "" "This is the command used to launch the extractor.\n" "%o expands to the name of output file, %K to list\n" "of keywords, %F to list of input files,\n" "%C to charset flag (see below)." msgstr "" "Това е командата за изпълнение на извличанета.\n" "%o се замества с името на изходния файл,\n" "%K — със списъка от ключови думи,\n" "%F — със списъка от входните файлове,\n" "%C — със знаковия набор на анализатора (виж по-долу)." msgid "An item in keywords list:" msgstr "Елемент от списъка с ключови думи:" msgid "" "This will be attached to the command line once\n" "for each keyword. %k expands to the keyword." msgstr "" "Това ще бъде добавено по веднъж за всяка ключова дума\n" "към командния ред. %k се замества с ключовата дума." msgid "An item in input files list:" msgstr "Елемент от списъка с входящи файлове:" #, c-format msgid "" "This will be attached to the command line once\n" "for each input file. %f expands to the filename." msgstr "" "Това ще бъде добавено по веднъж за всеки входящ файл\n" "към командния ред. %f се замества с името на файла." msgid "Source code charset:" msgstr "Знаков набор на изходния код:" #, c-format msgid "" "This will be attached to the command line\n" "only if source code charset was given. %c expands to charset value." msgstr "" "Това ще бъде добавено към командния ред, само ако\n" "е зададен знаков набор за изходния код. %c се замества със знаковия набор." msgid "Catalog properties" msgstr "Свойства на каталога" msgid "Project name and version:" msgstr "Име и версия на проекта:" msgid "Language team:" msgstr "Екип преводачи:" msgid "Plural forms:" msgstr "Форми за множествено число:" msgid "Use default rules for this language" msgstr "Според &стандартните правила" msgid "Use custom expression" msgstr "Специфичен &израз" msgid "Learn about plural forms" msgstr "Повече за множествените форми" msgid "Charset:" msgstr "Знаков набор:" msgid "Advanced Extraction Settings…" msgstr "Разширени настройки за извличане…" msgid "Advanced extraction settings…" msgstr "Разширени настройки за извличане…" msgid "Translation Properties" msgstr "Свойства на превода" msgid "Translation properties" msgstr "Свойства на превода" msgid "Sources Paths" msgstr "Пътища за претърсване" msgid "Sources paths" msgstr "Пътища за претърсване" msgid "Extract text from source files in the following directories:" msgstr "Извличане на низове от изходните файлове в следните папки:" msgid "Base path:" msgstr "Основен път:" msgid "Sources Keywords" msgstr "Ключови думи в изходния код" msgid "Sources keywords" msgstr "Ключови думи в изходния код" msgid "" "Use these keywords (function names) to recognize translatable strings\n" "in source files:" msgstr "" "Ключови думи (имена на функции) за разпознаване на преводими низове\n" "във файловете с изходен код:" msgid "Also use default keywords for supported languages" msgstr "" "Също така да бъдат ползватни ключовите думи по подразбиране за поддържаните " "езици" msgid "Learn About Gettext Keywords" msgstr "Повече за ключовите думи на Gettext" msgid "Learn about gettext keywords" msgstr "Повече за ключовите думи на GNU gettext" msgid "Update summary" msgstr "Резюме" msgid "" "These strings were found in the sources but were not in the catalog.\n" "Poedit will add them to the catalog now." msgstr "" "Тези низове бяха намерени в изходния код, но не и в каталога.\n" "Poedit ще ги прибави към него." msgid "New strings" msgstr "Добавени" msgid "" "These strings are no longer in the sources.\n" "Poedit will remove them from the catalog now." msgstr "" "Тези низове вече не са в изходния код.\n" "Poedit ще ги премахне от каталога." msgid "Obsolete strings" msgstr "Неизползвани" msgid "(0 new, 0 obsolete)" msgstr "(0 нови, 0 неизползвани)" msgid "Open" msgstr "О&тваряне" msgid "Save catalog" msgstr "Запазване на каталога" msgid "Validate" msgstr "&Валидиране" msgid "Check for errors in the translation" msgstr "Проверяване за грешки в превода" msgid "Update" msgstr "&Актуализиране" msgid "Update catalog - synchronize it with sources" msgstr "Актуализиране на каталог — синхронизиране с изходния код" msgid "Sidebar" msgstr "Странична лента" msgid "Show or hide the sidebar" msgstr "Показва или скрива страничната лента" #. TRANSLATORS: "Previous" as in used in the past, now replaced with newer. msgid "Previous source text:" msgstr "Предходен изходен текст:" msgid "" "The old source text (before it changed during an update) that the now-" "inaccurate translation corresponds to." msgstr "" "Старият изходен текст (преди промяната при обновяване), на който съответства " "вече неточния превод." msgid "Notes for translators:" msgstr "Бележка към преводача:" msgid "Add comment" msgstr "Добавяне на коментар" msgid "Add Comment" msgstr "Добавяне на коментар" msgid "Translation suggestions:" msgstr "Предложения за превод:" #. TRANSLATORS: This is shown when no translation suggestions can be found in the TM (Windows). msgid "No matches found" msgstr "Няма съвпадения" #. TRANSLATORS: This is shown when no translation suggestions can be found in the TM (macOS, Linux). msgid "No Matches Found" msgstr "Няма съвпадения" msgid "This string was found in Poedit’s translation memory." msgstr "Този низ е от паметта с преводи на Poedit." msgid "Cannot create temporary directory." msgstr "Временната папка не може да бъде създадена." msgid "Welcome to Poedit" msgstr "Здравейте от Poedit" #. TRANSLATORS: This is version information in about dialog, "%s" will be #. version number when used #, c-format msgid "Version %s" msgstr "Версия %s" msgid "Edit a Translation" msgstr "Редактиране на превод" msgid "Edit a translation" msgstr "&Редактиране на превод" msgid "Open an existing PO file and edit the translation." msgstr "Отваряне на съществуващ каталог и редактиране на превода." msgid "" "Take an existing PO file or POT template and create a new translation from " "it." msgstr "Създаване на каталог на базата на съществуващ или от шаблон." msgid "Collaborate on a Translation with Others" msgstr "Съвместна работа по превод" msgid "Collaborate on a translation with others" msgstr "Съвместна работа по превод" msgid "" "Download a file from Crowdin project, translate and sync your changes back." msgstr "Изтегляне на файл от проект в Crowdin, превеждане и допринасяне." msgid "What is Crowdin?" msgstr "Какво е Crowdin?" msgid "There are no translations. That’s unusual." msgstr "Няма низове за превод. Това е необичайно." msgid "" "Translatable entries aren’t added manually in the Gettext system, but are " "automatically extracted\n" "from source code. This way, they stay up to date and accurate.\n" "Translators typically use PO template files (POTs) prepared for them by the " "developer." msgstr "" "Низовете за превод не се добавят ръчно в Gettext, а се извличат автоматично " "от изходен код.\n" "По този начин те са винаги обновени и точни.\n" "Обикновено преводачите използват шаблони PO (POT) приготвени за тази цел от " "разработчика." msgid "(Learn more about GNU gettext)" msgstr "(Научете повече за GNU gettext)" msgid "The simplest way to fill this catalog is to update it from a POT:" msgstr "" "Най-лесния начин за попълване на каталог е обновяването му от файл POT:" msgid "Update from POT" msgstr "Актуализация от &файл POT" msgid "Take translatable strings from an existing POT template." msgstr "Използване на изходни низове от съществуващ шаблон POT." msgid "" "You can also extract translatable strings directly from the source code:" msgstr "Може да извличате низове за превод директно от изходен код:" msgid "Extract from sources" msgstr "Актуализация от &изходен код" msgid "Configure source code extraction in Properties." msgstr "Настройка на извличане от изходен код." msgid "Sync" msgstr "Синхронизиране" msgid "Synchronize the translation with Crowdin" msgstr "Синхронизиране на превода с Crowdin" #. TRANSLATORS: This is titlebar of about dialog, "%s" is application name #. ("Poedit" here, but please use "%s") #, c-format msgid "About %s" msgstr "Относно %s" #. TRANSLATORS: Title of the preferences window on Windows and Linux. "%s" is replaced with "Poedit" when running. #, c-format msgid "%s Preferences" msgstr "Настройки на %s" #. TRANSLATORS: macOS item in app menu msgid "Services" msgstr "Услуги" #. TRANSLATORS: macOS item in app menu, %s is replaced with "Poedit" #, c-format msgid "Hide %s" msgstr "Скриване на %s" #. TRANSLATORS: macOS item in app menu msgid "Hide Others" msgstr "Скриване на всички останали" #. TRANSLATORS: macOS item in app menu msgid "Show All" msgstr "Показване на всички" #. TRANSLATORS: macOS item in app menu, %s is replaced with "Poedit" #, c-format msgid "Quit %s" msgstr "Изход от %s" #. TRANSLATORS: macOS item in app menu msgid "Preferences…" msgstr "Настройки…" msgid "Preferences..." msgstr "Предпочитания..." #. TRANSLATORS: Title of a category in Windows task menu (right-click icon in taskbar) msgid "Recent" msgstr "Последни" #. TRANSLATORS: Title of a category in Windows task menu (right-click icon in taskbar) msgid "Frequent" msgstr "Често използвани" msgid "&Apply" msgstr "&Прилагане" msgid "Apply" msgstr "Прилагане" msgid "&Back" msgstr "&Назад" msgid "Back" msgstr "Назад" msgid "&Cancel" msgstr "&Отказ" msgid "&Clear" msgstr "&Изчистване" msgid "Clear" msgstr "Изчистване" msgid "Copy" msgstr "Копиране" msgid "Cu&t" msgstr "&Изрязване" msgid "Cut" msgstr "Изрязване" msgid "&Delete" msgstr "&Изтриване" msgid "&Quit" msgstr "Из&ход" msgid "File" msgstr "Файл" msgid "Help" msgstr "Помощ" msgid "&New" msgstr "&Нов" msgid "&No" msgstr "&Не" msgid "No" msgstr "Не" msgid "&OK" msgstr "&Добре" msgid "Open…" msgstr "Отваряне…" msgid "&Open..." msgstr "&Отваряне…" msgid "Open..." msgstr "Отваряне…" msgid "&Paste" msgstr "По&ставяне" msgid "Paste" msgstr "Поставяне" msgid "Preferences" msgstr "Настройки" msgid "&Redo" msgstr "&Повтаряне" msgid "Refresh" msgstr "Опресняване" msgid "&Save as" msgstr "Запазване &като" msgid "Save as" msgstr "Запазване като" msgid "Select &All" msgstr "Избор на &всичко" msgid "Select All" msgstr "Избор на &всичко" msgid "&Undo" msgstr "&Отмяна" msgid "&Yes" msgstr "&Да" msgid "Yes" msgstr "Да" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Shift+" msgstr "Shift+" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Enter" msgstr "Enter" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Up" msgstr "Нагоре" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Down" msgstr "Надолу" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Left" msgstr "Наляво" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Right" msgstr "Надясно" #. TRANSLATORS: Keyboard shortcut, must correspond to translation of "Ctrl+" msgid "ctrl" msgstr "ctrl" #. TRANSLATORS: Keyboard shortcut, must correspond to translation of "Alt+" msgid "alt" msgstr "alt" #. TRANSLATORS: Keyboard shortcut, must correspond to translation of "Shift+" msgid "shift" msgstr "shift" poedit-2.0.6/locales/hy.po0000664000372000037200000020317013230132076012326 00000000000000msgid "" msgstr "" "Project-Id-Version: poedit\n" "Report-Msgid-Bugs-To: help@poedit.net\n" "POT-Creation-Date: 2017-12-05 15:52+0100\n" "PO-Revision-Date: 2017-09-21 11:29-0400\n" "Last-Translator: vslavik \n" "Language-Team: Armenian\n" "Language: hy_AM\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: crowdin.com\n" "X-Crowdin-Project: poedit\n" "X-Crowdin-Language: hy-AM\n" "X-Crowdin-File: /locales/poedit.pot\n" msgid "Hide this notification message" msgstr "Թաքցնել ծանուցումը" msgid "Don’t Show Again" msgstr "Այլևս չցուցադրել" msgid "Don’t show again" msgstr "Այլևս չցուցադրել" #, c-format msgid "(New: %i, obsolete: %i)" msgstr "(Նոր՝ %i, հնացած՝ %i)" msgid "Updating catalog" msgstr "Գրացուցակի թարմացում" msgid "Collecting source files…" msgstr "Հավաքում է աղբյուր ֆայլերը..." msgid "Extracting translatable strings…" msgstr "Դուրս է բերում թարգմանվող տողերը…" msgid "Failed to load extracted catalog." msgstr "Ձախողվեց դուրս բերված գրացուցակի բեռնումը:" msgid "Merging differences…" msgstr "Տարբերությունները ձուլվում են…" #, c-format msgid "“%s” is not a valid POT file." msgstr "'%s'-ը վավեր POT ֆայլ չէ:" #, c-format msgid "%i line of file “%s” was not loaded correctly." msgid_plural "%i lines of file “%s” were not loaded correctly." msgstr[0] "“%2$s” ֆայլի %1$i տողը ճիշտ չէ բեռնվել." msgstr[1] "“%2$s” ֆայլի %1$i տողերը ճիշտ չեն բեռնվել." #, c-format msgid "Line %d of file “%s” is corrupted (not valid %s data)." msgstr "%d տողի '%s' ֆայլը վնասված է (անվավեր %s տվյալ):" #, c-format msgid "Malformed header: “%s”" msgstr "Այլակերպված '%s' գլխագիր" msgid "" "Broken catalog file: singular form msgstr used together with msgid_plural" msgstr "" "Գրացուցակի վնասված ֆայլ. եզակի ձև msgstr-ը օգտագործում է msgid_plural-ի հետ" msgid "Broken catalog file: plural form msgstr used without msgid_plural" msgstr "" "Գրացուցակի վնասված ֆայլ. եզակի ձև msgstr-ը օգտագործում է առանց msgid_plural-ի" msgid "" "There were errors when loading the catalog. Some data may be missing or " "corrupted as the result." msgstr "Սխալ՝ գրացուցակը բեռնելիս: Որոշ տվյալներ բացակայում են կամ վնասված են:" #, c-format msgid "Couldn’t load file %s, it is probably corrupted." msgstr "Հնարավոր չէ բեռնել %s ֆայլը: Հնարավոր է այն վնասված է:" #, c-format msgid "" "File “%s” is read-only and cannot be saved.\n" "Please save it under different name." msgstr "" "“%s” ֆայլը միայն կարդալու համար է և հնարավոր չէ այն պահպանել:\n" "Պահպանեք այն այլ անունով:" #, c-format msgid "Couldn’t save file %s." msgstr "Հնարավոր չէ պահպանել %s ֆայլը:" msgid "" "There was a problem formatting the file nicely (but it was saved all right)." msgstr "Ֆայլը նորմալ ձևաչափելու խնդիր (բայց այն հաջողությամբ պահպանվել է):" #, c-format msgid "" "The catalog couldn’t be saved in “%s” charset as specified in catalog " "settings.\n" "\n" "It was saved in UTF-8 instead and the setting was modified accordingly." msgstr "" "ՀՆարավոր չէ պահպանել գրացուցակը “%s”-ում այն գաղտնագրմամբ, որը հատկորոշված է " "գրացուցակի կարգավորումներում:\n" "\n" "Փոխարենը՝ այն պահպանվել է UTF-8-ով և համապատասխանաբար կարգավորումը փոփոխվել " "է:" msgid "Error saving catalog" msgstr "Սխալ՝ գրացուցակը պահպանելիս" msgid "PO Translation Files" msgstr "PO թարգմանության ֆայլեր" msgid "POT Translation Templates" msgstr "POT թարգմանության ֆայլեր" msgid "All Translation Files" msgstr "Թարգմանության բոլոր ֆայլերը" msgid "(Use default language)" msgstr "(Օգտ. հիմնական լեզուն)" msgid "Select your preferred language" msgstr "Ընտրեք Ձեր նախընտրած լեզուն" msgid "Language selection" msgstr "Լեզվի ընտրություն" msgid "You must restart Poedit for this change to take effect." msgstr "Կիրառֆելու համար պետք է վերագործարկեք Poedit-ը" msgid "Syncing" msgstr "Համաժամեցում" #. TRANSLATORS: %s is a cloud destination, e.g. "Crowdin" or ftp.wordpress.com etc. #, c-format msgid "Syncing with %s…" msgstr "Համաժամեցում %s-ի հետ..." #. TRANSLATORS: %s is a cloud destination, e.g. "Crowdin" or ftp.wordpress.com etc. #, c-format msgid "Syncing with %s failed." msgstr "%s-ի հետ համաժամեցումը ձախողվեց:" msgid "Syncing error" msgstr "Համաժամեցման սխալ" msgid "Downloading translations is disabled in this project." msgstr "Թարգմանությունների ներբեռնումը անջատած է այս նախագծի համար:" msgid "Not authorized, please sign in again." msgstr "Իսկորոշում չկա, կրկին մուտք գործեք:" msgid "" "Crowdin is an online localization management platform and collaborative " "translation tool. Poedit can seamlessly sync PO files managed at Crowdin." msgstr "" "Crowdin-ը առցանց թարգմանությունների հարթակ է և թարգմանությունները " "համատեղելու գործիք: Poedit-ը կարող է հեշտության համաժամեցնել PO ֆայլերը " "Crowdin-ում:" msgid "Sign In" msgstr "Մուտք գործել" msgid "Sign in" msgstr "Մուտք գործել" msgid "Sign Out" msgstr "Դուրս գրվել" msgid "Sign out" msgstr "Դուրս գրվել" msgid "Waiting for authentication…" msgstr "Սպասում է իսկորոշման..." msgid "Updating user information…" msgstr "Թարմացնում է օգտվողի տեղեկությունը..." msgid "Signed in as:" msgstr "Մուտք եք գործել որպես՝" msgid "Learn More About Crowdin" msgstr "Մանրամասներ Crowdin-ի մասին" msgid "Learn more about Crowdin" msgstr "Մանրամասներ Crowdin-ի մասին" msgid "Sign in to Crowdin" msgstr "Մուտք գործել Crowdin" msgid "Open Crowdin translation" msgstr "Բացել Crowdin թարգմանությունը" msgid "Project:" msgstr "Նախագիծ." msgid "Language:" msgstr "Լեզուն." msgid "File:" msgstr "Ֆայլ." msgid "No translation projects listed in your Crowdin account." msgstr "Չկան թարգմանության նախագծեր Crowdin-ի Ձեր հաշվում:" msgid "This project has no files that can be translated in Poedit." msgstr "Այս նախագիծը չունի ֆայլեր, որոնք կարող են թարգմանվել Poedit-ով:" msgid "This file can only be edited in Crowdin’s web interface." msgstr "Այս ֆայլը կարող է խմբագրվել միայն Crowdin-ում:" msgid "Downloading latest translations…" msgstr "Ներբեռնում է վերջին թարգմանությունները..." msgid "Syncing with Crowdin failed." msgstr "Համաժամեցումը Crowdin-ի հետ ձախողվեց:" msgid "Crowdin error" msgstr "Crowdin-ի սխալ" msgid "Uploading translations…" msgstr "Թարգմանությունների վերբեռնում.." msgid "&Copy" msgstr "&Պատճենել" msgid "Learn more" msgstr "Մանրամասներ" msgid "Learn More" msgstr "Մանրամասներ" msgid "&Help" msgstr "&Օգնություն" msgid "MO files can’t be directly edited in Poedit." msgstr "MO ֆայլերը չեն կարող ուղղակիորեն խմբագրվել Poedit-ում:" msgid "Error opening file" msgstr "Ֆայլը բացելու սխալ" msgid "" "Please open and edit the corresponding PO file instead. When you save it, " "the MO file will be updated as well." msgstr "" "Փոխարենը խնդրում ենք բացել և խմբագրել համապատասխան PO ֆայլը: Երբ պահպանեք " "այն՝ MO ֆայլը կթարմացվի:" msgid "don’t delete temporary files (for debugging)" msgstr "չջնջել ժամանակավոր ֆայլերը (վրիպազերծելու համար)" msgid "handle a poedit:// URI" msgstr "handle a poedit:// URI" msgid "go to item at given line number" msgstr "անցնել միույթի՝ տողի տրված համարով" msgid "Failed to communicate with Poedit process." msgstr "Հնարավոր չէ հաղորդակցել Poedit-ի ընթացքը:" #, c-format msgid "Unhandled exception occurred: %s" msgstr "Անհայտ բացառություն. %s" msgid "Open catalog" msgstr "Բացել գրացուցակ" #, c-format msgid "File “%s” doesn’t exist." msgstr "“%s” ֆայլը գոյություն չունի:" msgid "Poedit is an easy to use translations editor." msgstr "Poedit-ը թարգմանությունների դյուրին խմբագիր է:" msgid "Catalogs Manager" msgstr "Գրացուցակների կառավար" msgid "Check for Updates…" msgstr "Ստուգել թարմացումները…" msgid "&Edit" msgstr "&Խմբագրել" msgid "Undo" msgstr "Հետարկել" msgid "Redo" msgstr "Վերարկել" msgid "Paste and Match Style" msgstr "Տեղադրել և ըստ ոճի" msgid "Delete" msgstr "Ջնջել" msgid "Spelling and Grammar" msgstr "Ուղղագրություն և քերականություն" msgid "Show Spelling and Grammar" msgstr "Ցուցադրել ուղղագրությունը և քերականությունը" msgid "Check Document Now" msgstr "Ստուգել փաստաթուղթը" msgid "Check Spelling While Typing" msgstr "Ստուգել ուղղագրոթյունը մուտքագրելիս" msgid "Check Grammar With Spelling" msgstr "Ստուգել քերականությունը մուտքագրելիս" msgid "Correct Spelling Automatically" msgstr "Ինքնաբար ուղղել" msgid "Substitutions" msgstr "Փոխարինումներ" msgid "Show Substitutions" msgstr "Ցուցադրել փոխարինումները" msgid "Smart Copy/Paste" msgstr "Խելացի պատճենում/տեղադրում" msgid "Smart Quotes" msgstr "Խելացի ծելաաչակերտներ" msgid "Smart Dashes" msgstr "Խելացի գծեր" msgid "Smart Links" msgstr "Խելացի հղումներ" msgid "Text Replacement" msgstr "Տեքստի փոխարինում" msgid "Transformations" msgstr "Փոխակերպում" msgid "Make Upper Case" msgstr "Դարձնել մեծատառ" msgid "Make Lower Case" msgstr "Դարձնել փոքրատառ" msgid "Capitalize" msgstr "Գլխատառացել" msgid "Speech" msgstr "Խոսք" msgid "Start Speaking" msgstr "Սկսել արտասանել" msgid "Stop Speaking" msgstr "Ընդհատել արտասանումը" msgid "&View" msgstr "&Տեսք" msgid "Enter Full Screen" msgstr "Լրաէկրան" msgid "Window" msgstr "Պատուհան" msgid "Minimize" msgstr "Նվազեցնել" msgid "Zoom" msgstr "Չափորոշել" msgid "Bring All to Front" msgstr "Պահել բոլորը առջևում" #. TRANSLATORS:File kind displayed in Finder/Explorer msgid "PO Translation" msgstr "PO թարգմանություն" msgid "The file cannot be opened." msgstr "Ֆայլը հնարավոր չէ բացել:" msgid "Invalid file" msgstr "Սխալ ֆայլ" msgid "" "The file may be either corrupted or in a format not recognized by Poedit." msgstr "Ֆայլը կարող է վնասված լինել կամ ոչ Poedit-ի ձևաչափով:" msgid "You can’t drop more than one file on Poedit window." msgstr "Չեք կարող գցել մեկ ֆայլից ավելի Poedit-ի պատուհանում:" #, c-format msgid "File “%s” is not a message catalog." msgstr "'%s' ֆայլը հաղորդագրության գրացուցակ չէ:" msgid "Poedit" msgstr "Poedit" msgid "&File" msgstr "&Ֆայլ" msgid "&Go" msgstr "&Անցնել" #. TRANSLATORS: %s is language name in its basic form (as you #. would see e.g. in a list of supported languages). You may need #. to rephrase it, e.g. to an equivalent of "for language %s". #, c-format msgid "" "Spellchecking is disabled, because the dictionary for %s isn’t installed." msgstr "" "Ուղղագրության ստուգումը անջատված է, քանի որ բառարանը %s-ի համար տեղադրված չէ:" msgid "Install" msgstr "Տեղադրել" msgid "Catalog modified. Do you want to save changes?" msgstr "Գրացուցակը փոփոխվել է: Պահպանե՞լ փոփոխությունները:" msgid "Save changes" msgstr "Պահպանել փոփոխությունները" msgid "Your changes will be lost if you don’t save them." msgstr "Եթե չպահպանեք փոփոխությունները, ապա կկորցնեք դրանք:" msgid "Save" msgstr "Պահպանել" msgid "Don’t save" msgstr "Չպահպանել" msgid "Don’t Save" msgstr "Չպահպանել" msgid "Save as…" msgstr "Պահպանել որպես…" msgid "Compile to…" msgstr "Կազմարկել առ՝" msgid "Compiled Translation Files" msgstr "Թարգմանության կազմարկված ֆայլեր" msgid "Export as…" msgstr "Արտահանել որպես…" msgid "HTML Files" msgstr "HTML ֆայլեր" msgid "Open catalog template" msgstr "Բացել գրացուցակի նմուշը" msgid "Source code not available." msgstr "Սկզբնական կոդը հասանելի չէ" msgid "Updating failed" msgstr "Թարմացումը ձախողվեց" msgid "" "Translations couldn’t be updated from the source code, because no code was " "found in the location specified in the catalog’s Properties." msgstr "" "Թարգմանությունները չեն կարող թարմացվել սկզբնական կոդից, քանի որ այն չի " "գտնվել գրացուցակի հատկություններում:" msgid "Entries in the catalog are probably incorrect." msgstr "Հնարավոր է գրացուցակի գրառումները սխալ են:" msgid "Updating the catalog failed. Click on 'Details >>' for details." msgstr "" "Գրացուցակի թարմացումը ձախողվեց: Մանրամասնելու համար սեղմեք 'Մանրամասներ>>':" #, c-format msgid "%d issue with the translation found." msgid_plural "%d issues with the translation found." msgstr[0] "%d խնդիր է հայտնաբերվել թարգմանությունում:" msgstr[1] "%d խնդիրներ են հայտնաբերվել թարգմանությունում:" msgid "Validation results" msgstr "Վավերացման արդյունքներ" msgid "" "Entries with errors were marked in red in the list. Details of the error " "will be shown when you select such an entry." msgstr "" "Սխալներով գրառումները ցանկում նշված են կարմիր գույնով: Սխալի մանրամասները " "կցուցադրվեն, երբ ընտրեք գրառումը:" msgid "The file was saved safely." msgstr "Ֆայլը անվտանգ պահպանվել է:" msgid "" "The file was saved safely and compiled into the MO format, but it will " "probably not work correctly." msgstr "" "Ֆայլը անվտանգ պահպանվել է և կազմարկվել է MO ձևաչափի, բայց հնարավոր է նորմալ " "չաշխատի:" msgid "" "The file was saved safely, but it cannot be compiled into the MO format and " "used." msgstr "" "Ֆայլը անվտանգ պահպանվել է, բայց չի կարող կազմարկվել MO ձևաչափի և օգտագործվել:" msgid "" "The file was compiled into the MO format, but it will probably not work " "correctly." msgstr "Ֆայլը կազմարկվել է MO ձևաչափի, բայց հնարավոր է նորմալ չաշխատի:" msgid "The file cannot be compiled into the MO format and used." msgstr "Ֆայլը հնարավոր չէ կազմարկել MO ձևաչափի և օգտագործել:" msgid "No problems with the translation found." msgstr "Թարգմանության հետ կապված խնդիրներ չկան:" #, c-format msgid "The translation is ready for use, but %d entry is not translated yet." msgid_plural "" "The translation is ready for use, but %d entries are not translated yet." msgstr[0] "" "Թարգմանությունը պատրաստ է օգտագործելու համար, բայց %d գրառում դեռ թարգմանված " "չէ:" msgstr[1] "" "Թարգմանությունը պատրաստ է օգտագործելու համար, բայց %d գրառումներ դեռ " "թարգմանված չեն:" msgid "The translation is ready for use." msgstr "Թարգմանությունը պատրաստ է:" #, c-format msgid "Poedit automatically fixed invalid content in the file “%s”." msgstr "Poedit-ը ինքնաբար ուղղել է սխալ բովանդակությունը “%s” ֆայլում:" msgid "" "The file contained duplicate items, which is not allowed in PO files and " "would prevent the file from being used. Poedit fixed the issue, but you " "should review translations of any items marked as needing work and correct " "them if necessary." msgstr "" "Ֆայլը պարունակում է կրկնօրինակ միույթներ, որոնք թույլատրված չեն PO ֆայլերում " "և կարող են կանխել ֆայլի օգտագործումը: Poedit-ը ուղղել է այդ խնդիրը, բայց " "դուք պետք է ստուգեք թարգմանությունները, որոնք նշված են որպես ոչ վերջնական և " "անհրաժեշտության դեպքում ուղղեք դրանք:" msgid "Language of the translation isn’t set." msgstr "Թարգմանության լեզուն նշված չէ:" msgid "Set Language" msgstr "Նշել լեզուն" msgid "Set language" msgstr "Նշել լեզուն" #. TRANSLATORS: This is shown underneath "Language of the translation isn't set (or ...is the same as source language)." msgid "" "Suggestions are not available if the translation language is not set " "correctly. Other features, such as plural forms, may be affected as well." msgstr "" "Առաջարկությունները հասանելի չեն, եթե թարգմանվող լեզուն նորմալ նշված չէ: Այլ " "յուրահատկություններ, ինչպես օրինակ՝ հոգնակի ձևերը, կարող են ազդվել:" msgid "Language of the translation is the same as source language." msgstr "Թարգմանության լեզուն նույնն է, ինչ սկզբնականը:" msgid "Fix Language" msgstr "Ուղղել լեզուն" msgid "Fix language" msgstr "Ուղղել լեզուն" msgid "" "This catalog has entries with plural forms, but doesn’t have Plural-Forms " "header configured." msgstr "" "Այս գրացուցակը ունի գրառումներ հոգնակի ձևով, բայց հոգնակի ձևերը կազմաձևված " "չեն:" msgid "" "Entries in this catalog have different plural forms count from what " "catalog’s Plural-Forms header says" msgstr "" "Այս գրացուցակի գրառումները ունեն այլ հոգնակի ձևեր, ինչ գրացուցակի հոգնակի " "ձևերի գլխագիրն է" msgid "Required header Plural-Forms is missing." msgstr "Պահանջվող հոգնակի ձևի գլխագիրը բացակայում է" #, c-format msgid "Syntax error in Plural-Forms header (\"%s\")." msgstr "Շարահյուսական սխալ հոգնակի ձևերի գլխագրում (\"%s\"):" msgid "Fix the Header" msgstr "Ուղղել գլխագիրը" msgid "Fix the header" msgstr "Ուղղել գլխագիրը" #. TRANSLATORS: %s is language name in its basic form (as you #. would see e.g. in a list of supported languages). You may need #. to rephrase it, e.g. to an equivalent of "for language %s". #, c-format msgid "Plural forms expression used by the catalog is unusual for %s." msgstr "" "Գրացուցակի կողմից օգտագործվող հոգնակի ձևերի արտահայտությունը անսովոր է %s-ի " "համար:" #. TRANSLATORS: A verb, shown as action button with ""Plural forms expression used by the catalog is unusual for %s.")" msgid "Review" msgstr "Վերանայել" #, c-format msgid "Error loading message catalog file “%s”." msgstr "Սխալ՝ '%s' գրացուցակը բեռնելիս:" #, c-format msgid "Translated: %d of %d (%d %%)" msgstr "Թարգմանված է՝ %d-ը %d-ից (%d %%)" #, c-format msgid "Remaining: %d" msgstr "Մնում է՝ %d" #, c-format msgid "%d error" msgid_plural "%d errors" msgstr[0] "%d սխալ" msgstr[1] "%d սխալ" #, c-format msgid "%d entry" msgid_plural "%d entries" msgstr[0] "%d գրառում" msgstr[1] "%d գրառում" msgid " (unsaved)" msgstr "(չպահպանված)" msgid " (modified)" msgstr "(փոփոխված)" #, c-format msgid "Failed to update translation memory: %s" msgstr "Հնարավոր չեղավ թարմացնել թարգմանության հիշողությունը. %s" msgid "Purge deleted translations" msgstr "Մաքրել ջնջված թարգմանությունները" msgid "Do you want to remove all translations that are no longer used?" msgstr "Հեռացնե՞լ բոլոր թարգմանությունները, որոնք այլևս չեն օգտագործվում:" msgid "" "If you continue with purging, all translations marked as deleted will be " "permanently removed. You will have to translate them again if they are added " "back in the future." msgstr "" "Եթե շարունակեք մաքրել, ապա նշված բոլոր թարգմանությունները կջնջվեն անվերադարձ:" msgid "Keep" msgstr "Պահել" msgid "Purge" msgstr "Մաքրել" msgid "Copy from source text" msgstr "Պատճենել սկզբնական տեքստից" msgid "Copy from Source Text" msgstr "Պատճենել սկզբնական տեքստից" #. TRANSLATORS: This is the key shortcut used in menus on Windows, some languages call them differently #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Ctrl+" msgstr "Ctrl+" msgid "Clear translation" msgstr "Մաքրել թարգմանությունը" msgid "Clear Translation" msgstr "Մաքրել թարգմանությունը" msgid "Edit comment" msgstr "Խմբագրել մեկնաբանությունը" msgid "Edit Comment" msgstr "Խմբագրել մեկնաբանությունը" msgid "References:" msgstr "Հղումներ:" msgid "&Bookmarks" msgstr "&Էջանիշեր" #. TRANSLATORS: This is the key shortcut used in menus on Windows, some languages call them differently #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Alt+" msgstr "Alt+" #, c-format msgid "Set bookmark %i" msgstr "Նշել էջանիշ %i" #, c-format msgid "Go to bookmark %i" msgstr "Անցնել %i էջանիշին" #, c-format msgid "Set Bookmark %i" msgstr "Նշել էջանիշ %i" #, c-format msgid "Go to Bookmark %i" msgstr "Անցնել %i էջանիշին" msgid "Hide Sidebar" msgstr "Թաքցնել կողագոտին" msgid "Show Sidebar" msgstr "Ցուցադրել կողագոտին" msgid "Hide Status Bar" msgstr "Թաքցնել Վիճակի գոտին" msgid "Show Status Bar" msgstr "Ցուցադրել Վիճակի գոտին" msgid "Source text:" msgstr "Սկզբնական տեքստ." msgid "Singular:" msgstr "Եզակի." msgid "Plural:" msgstr "Հոգնակի." msgid "Translation:" msgstr "Թարգմանություն." msgid "Pre-translated" msgstr "Նախաթարգմանված" msgid "Needs Work" msgstr "Վերջնական չէ" #. TRANSLATORS: This indicates that the string's translation isn't final #. and has known problems. For example, it might be machine translated or #. fuzzy matched from an older string. The translation should be short and #. convey this. If it's problematic to translate it, "Needs review" is #. acceptable substitute, but note that the meaning is subtly different: #. "needs review" implies that somebody else should review the string after #. I am done with it (i.e. consider it good), while "needs work" implies I #. need to return to it and finish the translation. msgid "Needs work" msgstr "Վերջնական չէ" msgid "" "POT files are only templates and don’t contain any translations themselves.\n" "To make a translation, create a new PO file based on the template." msgstr "" "POT ֆայլերը միայն նմուշներ են և չեն պարունակում որևէ թարգմանություն:\n" "Թարգմանություն ստեղծելու համար ստեղծեք նոր PO ֆայլ:" msgid "Create New Translation" msgstr "Ստեղծել նոր թարգմանություն" msgid "Create new translation" msgstr "Ստեղծել նոր թարգմանություն" msgid "Everything" msgstr "Ամենը" #, c-format msgid "Form %i" msgstr "%i-ից" msgid "Singular" msgstr "Եզակի" msgid "Zero" msgstr "Զրո" msgid "One" msgstr "Մեկ" msgid "Two" msgstr "Երկու" msgid "Plural" msgstr "Հոգնակի" msgid "Other" msgstr "Այլ" #, c-format msgid "%s Format" msgstr "%s ձևաչափ" #. TRANSLATORS: %s is replaced with language name, e.g. "PHP" or "C", so "PHP Format" etc." #, c-format msgid "%s format" msgstr "%s ձևաչափ" msgid "Source text" msgstr "Սկզբնական տեքստ" #, c-format msgid "Translation — %s" msgstr "Թարգմանություն՝ %s" msgid "ID" msgstr "ID" #, c-format msgid "Source text — %s" msgstr "Սկզբնական տեքստ՝ %s" msgid "unknown language" msgstr "անհայտ լեզու" #, c-format msgid "Failed command: %s" msgstr "Ձախողված հրաման. %s" msgid "Failed to merge gettext catalogs." msgstr "Հնարավոր չեղավ ձուլել gettext գրացուցակները:" msgid "Source file" msgstr "Սկզբնական ֆայլը" msgid "Source file occurrence:" msgstr "Սկզբնական ֆայլ." msgid "Open in Editor" msgstr "Բացել Խմբագրիչով" msgid "Open in editor" msgstr "Բացել Խմբագրիչով" msgid "No references for the selected item." msgstr "Հղում չկա ընտրվածի համար:" #, c-format msgid "Error opening file %s!" msgstr "Սխալ՝ %s ֆայլը բացելիս:" msgid "Find" msgstr "Գտնել" msgid "Replace" msgstr "Փոխարինել" #. TRANSLATORS: Expander in Find window for additional options (case sensitive etc.) msgid "Options" msgstr "Ընտրանքներ" msgid "Ignore case" msgstr "Անտեսել գրանցատեղին" msgid "Wrap around" msgstr "Ծալել շուրջը" msgid "Whole words only" msgstr "Միայն ամբողջ բառը" msgid "Find in source texts" msgstr "Գտնել սկզբնական տեքստում" msgid "Find in translations" msgstr "Գտնել թարգմանություններում" msgid "Find in comments" msgstr "Գտնել մեկնաբանություններում" msgid "Close" msgstr "Փակել" msgid "Replace &All" msgstr "Փոխարինել &բոլորը" msgid "Replace &all" msgstr "Փոխարինել &բոլորը" msgid "&Replace" msgstr "&Փոխարինել" msgid "< &Previous" msgstr "« &Նախորդ" msgid "&Next >" msgstr "&Հաջորդ »" msgid "String to find" msgstr "Ինչ փնտրել" msgid "Replacement string" msgstr "Ինչով փոխարինել" #, c-format msgid "Cannot execute program: %s" msgstr "Հնարավոր չէ կատարել %s ծրագիրը" msgid "Language Code or Name (e.g. en_GB)" msgstr "Լեզվի կոդը կամ անունը (օրինակ՝ hy_am)" msgid "Translation Language" msgstr "Թարգմանության լեզուն" msgid "Language of the translation:" msgstr "Թարգմանության լեզուն." msgid "Poedit - Catalogs manager" msgstr "Poedit-ի Գրացուցակների կառավար" msgid "Catalog" msgstr "Գրացուցակ" msgid "Total" msgstr "Ընդամենը" msgid "Untrans" msgstr "Չթարգմանված" msgid "Errors" msgstr "Սխալներ" msgid "Last modified" msgstr "Վերջին փոփոխումը" msgid "Select directory" msgstr "Ընտրել գրացուցակը" msgid "Directories:" msgstr "Գրացուցակներ." msgid "" msgstr "<անանուն>" msgid "Do you want to delete the project?" msgstr "Ջնջե՞լ նախագիծը" msgid "Confirmation" msgstr "Հաստատում" msgid "" "Do you really want to do mass update of\n" "all catalogs in this project?" msgstr "" "Ցանկանու՞մ եք կատարել մասսայական թարմացում\n" "նախագծի բոլոր գրացուցակներում:" msgid "Information about the translator" msgstr "Տեղեկություններ թարգմանողի մասին" msgid "Name:" msgstr "Անուն." msgid "Your Name" msgstr "Ձեր անունը" msgid "Email:" msgstr "Էլ. փոստ." msgid "your_email@example.com" msgstr "your_email@example.com" msgid "" "Your name and email address are only used to set the Last-Translator header " "of GNU gettext files." msgstr "" "Ձեր անունը և էլ. փոստը օգտագործվելու են միայն GNU gettext ֆայլերի " "գլխագրերում՝ ցուցադրելու վերջին թարգմանողին:" msgid "Editing" msgstr "Խմբագրում" msgid "Automatically compile MO file when saving" msgstr "Պահպանելիս ինքնաբար կազմարկել MO ֆայլ" msgid "Show summary after catalog update" msgstr "Ցուցադրել ամփոփում՝ գրացուցակը թարմացնելիս" msgid "Check spelling" msgstr "Ստուգել ուղղագրությունը" msgid "Always change focus to text input field" msgstr "Դաշտը միշտ ակտիվ դարձնել՝ տեքստ մուտքագրելու համար" msgid "" "Never let the list of strings take focus. If enabled, you must use Ctrl-" "arrows for keyboard navigation but you can also type text immediately, " "without having to press Tab to change focus." msgstr "" "Երբեք ակտիվ չի դարձնի տողերով ցանկերը: Եթե միացված է, ապա պետք է օգտագործեք " "ստեղնաշարի Ctrl+սլաքները, կարող եք նաև մուտքագրել անմիջապես՝ առանց Tab-ի " "միջոցով առաջնահերթությունը փոխելու:" msgid "Appearance" msgstr "Տեսք" msgid "Use custom list font:" msgstr "Ցանկի տառատեսակը." msgid "Use custom text fields font:" msgstr "Տեքստի տառատեսակը." msgid "Change UI language" msgstr "Փոխել ծրագրի լեզուն" #. TRANSLATORS: This is a note appended to "Check spelling" when running on older Windows versions msgid "(requires Windows 8 or newer)" msgstr "(պահանջում է Windows 8 կամ ավելի նորը)" msgid "General" msgstr "Գլխավոր" msgid "Use translation memory" msgstr "Օգտ. թարգմանության հիշողությունը" msgid "Learn From Files…" msgstr "Սովորել ֆայլերից…" msgid "Learn from files…" msgstr "Սովորել ֆայլերից…" #. TRANSLATORS: This is a button that deletes everything in the translation memory (i.e. clears/resets it). msgid "Reset" msgstr "Վերակայել" #. TRANSLATORS: Followed by "match translations within the file" or "pre-translate from TM" msgid "When updating from sources" msgstr "Սկզբնականից արդիացնելիս" #. TRANSLATORS: Preceded by "When updating from sources" msgid "fuzzy match within the file" msgstr "ոչ վերջնականի համընկնում ֆայլում" #. TRANSLATORS: Preceded by "When updating from sources" msgid "pre-translate from TM" msgstr "նախաթարգմանել TM-ից" msgid "" "Poedit can attempt to fill in new entries from only previous translations in " "the file or from your entire translation memory. Using the TM won’t be very " "effective if it’s near-empty, but it will get better as you add more " "translations to it." msgstr "" "Poedit-ը կարող է փորձել լրացնել նոր գրառումները միայն նախորդ " "թարգմանություններից այս ֆայլում կամ թարգմանության ձեր հիշողությունից: TM-ի " "օգտագործումը արդյունավետ չի լինի, եթե այն գրեթե դատարկ է, բայց կլավարկվի " "թարգմանություններ ավելացնելու ընթացքում:" msgid "Stored translations:" msgstr "Պահված թարգմանություններ՝" msgid "Database size on disk:" msgstr "Շտեմարանի չափը՝" msgid "Select translation files to import" msgstr "Ընտրեք ներմուծվող ֆայլերը" msgid "Translation Memory" msgstr "Թարգմանության հիշողություն (ԹՀ)" msgid "Importing translations…" msgstr "Թարգմանությունների ներմուծում…" msgid "Finalizing…" msgstr "Ամփոփում…" msgid "Reset translation memory" msgstr "Վերակայել թարգմանության հիշողությունը" msgid "Are you sure you want to reset the translation memory?" msgstr "Վերակայե՞լ թարգմանության հիշողությունը" msgid "" "Resetting the translation memory will irrevocably delete all stored " "translations from it. You can’t undo this operation." msgstr "" "Թարգմանության հիշողության վերակայումը անվերադարձ կջնջի բոլոր " "թարգմանությունները:" msgid "Cancel" msgstr "Չեղարկել" #. TRANSLATORS: This is abbreviation of "Translation Memory" used in Preferences on macOS. #. Long text looks weird there, too short (like TM) too, but less so. "General" is about ideal #. length there. msgid "TM" msgstr "ԹՀ" msgid "" "Source code extractors are used to find translatable strings in the source " "code files and extract them so that they can be translated." msgstr "" "Սկզբնական կոդի արտահանիչները օգտագործվում են գտնելու թարգմանվող տողեր " "սկզբնական կոդի ֆայլերում և դուրս բերելու դրանք, որպեսզի հնարավոր լինի " "թարգմանել:" msgid "Custom Extractors:" msgstr "Ընտրովի դուրս բերում." msgid "Custom extractors:" msgstr "Ընտրովի դուրս բերում." msgid "Edit…" msgstr "Խմբագրել…" msgid "GNU gettext" msgstr "GNU gettext" msgid "" "Supports all programming languages recognized by GNU gettext tools (PHP, C/C+" "+, C#, Perl, Python, Java, JavaScript and others)." msgstr "" "Աջակցում է ծրագրավորման բոլոր լեզուները՝ ճանաչված GNU gettext գործիքների " "կողմից (PHP, C/C++, C#, Perl, Python, Java, JavaScript և այլն):" msgid "Delete extractor" msgstr "Ջնջել արտահանիչը" #, c-format msgid "Are you sure you want to delete the “%s” extractor?" msgstr "Ջնջե՞լ “%s” արտահանիչը:" msgid "Extractors" msgstr "Արտահանիչներ" msgid "Accounts" msgstr "Հաշիվներ" msgid "Automatically check for updates" msgstr "Ինքնաբար ստուգել թարմացումները" msgid "Include beta versions" msgstr "Ներառյալ բետա տարբերակը" msgid "" "Beta versions contain the latest new features and improvements, but may be a " "bit less stable." msgstr "" "Բետա տարբերակը պարունակում է ամենավերջին յուրահատկությունները և " "լավարկումները, բայց կարող է կայուն չաշխատել:" msgid "Updates" msgstr "Թարմացումներ" msgid "" "These settings affect internal formatting of PO files. Adjust them if you " "have specific requirements e.g. because of version control." msgstr "" "Այս կարգավորումները վերաբերում են PO ֆայլերի ներքին ձևաչափմանը: Հարմարեցրեք " "դրանք, եթե ունեք որոշակի պահանջներ, ինչպես օրինակ՝ տարբերակի կառավարում:" msgid "Line endings:" msgstr "Տողի ավարտ." msgid "Unix (recommended)" msgstr "Unix (խորհուրդ է տրվում)" msgid "Windows" msgstr "Windows" #. TRANSLATORS: Followed by text control for entering number; wraps text at given width msgid "Wrap at:" msgstr "Տողադարձը՝" msgid "Preserve formatting of existing files" msgstr "Պահել առկա ֆայլերի ձևաչափումը" msgid "Advanced" msgstr "Ընդլայնված" msgid "Pre-translating…" msgstr "Նախաթարգմանություն..." #, c-format msgid "Pre-translated %u string" msgid_plural "Pre-translated %u strings" msgstr[0] "Նախաթարգմանված %u տող" msgstr[1] "Նախաթարգմանված %u տողեր" #. TRANSLATORS: This is a somewhat common term describing the action where #. you apply the translation memory and/or machine translation to all of the #. strings you're translating as the first step, followed by correcting, #. improving etc., i.e. actually translating the strings. This may be tricky #. to express in other languages as simply as in English, but please try to #. keep it similarly concise. Please try to avoid, if possible, describing it #. as "auto-translation" and similar, because such terminology would mislead #. some users into thinking it's all that needs to be done (spoken from #. experience). "Pre-translate" nicely expresses that it's only the step done #. *before* actual translation. msgid "Pre-translate" msgstr "Նախաթարգմանել" msgid "Only fill in exact matches" msgstr "Լցնել միայն ճիշտ համընկնումներով" msgid "" "By default, inaccurate results are filled in as well and marked as needing " "work. Check this option to only include accurate matches." msgstr "" "Ըստ լռելյայնի, ոչ ճիշտ արդյունքները լցվում են և նշվում որպես ոչ վերջնական: " "Նշեք այս ընտրանքը՝ միայն ճիշտ համընկնումները ներառելու համար:" msgid "Don’t mark exact matches as needing work" msgstr "Չնշել ճիշտ համընկնումները որպես ոչ վերջնական" msgid "" "Only enable if you trust the quality of your TM. By default, all matches " "from the TM are marked as needing work and should be reviewed before use." msgstr "" "Միացրեք, եթե միայն վստահում եք ձեր TM-ի որակին: Ըստ լռելյայնի, TM-ից բոլոր " "համընկնումները կնշվեն որպես ոչ վերջնական աշխատանք և պետք է ստուգվեն:" msgid "" "Pre-translation automatically finds exact or fuzzy matches for untranslated " "strings in the translation memory and fills in their translations." msgstr "" "Նախաթարգմանությունը ինքնաբար գտնում է ճիշտ կամ ոչ վերջնական համընկնումները " "չթարգմանված տողերի համար թարգմանության հիշողությունում և լցնում է դրանց " "թարգմանություններում:" #, c-format msgid "%d entry was pre-translated." msgid_plural "%d entries were pre-translated." msgstr[0] "%d գրառումը նախաթարգմանվել է:" msgstr[1] "%d գրառումները նախաթարգմանվել են:" msgid "" "The translations were marked as needing work, because they may be " "inaccurate. You should review them for correctness." msgstr "" "Թարգմանությունները նշվել են որպես ոչ վերջնական, քանի որ դրանք, հնարավոր է, " "ճիշտ չեն: Դուք պետք է ստուգեք դրանք:" msgid "No entries could be pre-translated." msgstr "Նախաթարգմանելու համար գրառումներ չկան" msgid "" "The TM doesn’t contain any strings similar to the content of this file. It " "is only effective for semi-automatic translations after Poedit learns enough " "from files that you translated manually." msgstr "" "ԹՀ-ը չի պարունակում այս բովանդակությանը համապատասխանող որևէ տող: Սա օգտակար " "է ինքնաբար թարգմանելու համար, եթե միայն Poedit-ը սովորում է մեծ քանակությամբ " "թարգմանություններ, որոնք դուք ձեռքով եք կատարել:" msgid "" "Drag and Drop Folders Here\n" "\n" "or use the + button" msgstr "" "Վերցրեք և գցեք թղթապանակները այստեղ\n" "\n" "կամ օգտագործեք + կոճակը" msgid "" "Drag and drop folders here\n" "\n" "or use the + button" msgstr "" "Վերցրեք և գցեք թղթապանակները այստեղ\n" "\n" "կամ օգտագործեք + կոճակը" msgid "Add Folders…" msgstr "Հավելել թղթապանակներ…" msgid "Add folders…" msgstr "Հավելել թղթապանակներ…" msgid "Add Files…" msgstr "Հավելել ֆայլեր…" msgid "Add files…" msgstr "Հավելել ֆայլեր…" msgid "Add Wildcard…" msgstr "Հավելել դերանշան…" msgid "Add wildcard…" msgstr "Հավելել դերանշան…" msgid "Paths" msgstr "Ուղիներ" msgid "Excluded paths" msgstr "Բացառված ուղիներ" msgid "Advanced extraction settings" msgstr "Դուրս բերելու ընդլայնված կարգավորումներ" msgid "Extract notes for translators from:" msgstr "Դուրս բերել նշումները թարգմանիչների համար հետևյալից՝" msgid "Comments prefixed with:" msgstr "Մեկնաբանություններ նախանծանցով՝" msgid "All comments" msgstr "Բոլոր մեկնաբանությունները" msgid "Additional xgettext flags:" msgstr "Լրացուցիչ xgettext դրոշակներ." msgid "Additional keywords" msgstr "Լրացուցիչ հիմնաբառեր" msgid "Name of the project the translation is for" msgstr "Թարգմանության նախագծի անունը" msgid "Team name and email address or URL" msgstr "Թիմի անունը և էլ. փոստը կամ URL-ն" msgid "e.g. nplurals=2; plural=(n > 1);" msgstr "օրինակ՝ nplurals=2; plural=(n > 1);" msgid "UTF-8 (recommended)" msgstr "UTF-8 (խորհուրդ է տրվում)" msgid "Please save the file first. This section cannot be edited until then." msgstr "Խնդրում ենք նախ պահպանել ֆայլը:" msgid "Not all plural forms are translated." msgstr "Ոչ բոլոր հոգնակի ձևերն են թարգմանված:" msgid "The translation should start as a sentence." msgstr "Թարգմանությունը պետք է սկսի որպես նախադասություն:" msgid "The translation should start with a lowercase character." msgstr "Նախադասությունը պետք է սկսվի փոքրատառ գրանշանով:" msgid "The translation doesn’t start with a space." msgstr "Թարգմանությունը չի սկսվում բացատով:" msgid "The translation starts with a space, but the source text doesn’t." msgstr "Թարգմանությունը սկսվում է բացատով, բայց սկզբնական գրվածքը՝ ոչ:" msgid "The translation is missing a newline at the end." msgstr "Թարգմանությունում բաց է թողնված նոր տողը վերջում:" msgid "The translation ends with a newline, but the source text doesn’t." msgstr "Թարգմանությունը վերջանում է նոր տողով, բայց սկզբնական գրվածքը՝ ոչ:" msgid "The translation is missing a space at the end." msgstr "Թարգմանության վերջում բացակայում է բացատը:" msgid "The translation ends with a space, but the source text doesn’t." msgstr "Թարգմանությունը վերջանում է բացատով, բայց սկզբնական գրվածքը՝ ոչ:" #, c-format msgid "The translation should end with “%s”." msgstr "Թարգմանությունը պետք է վերջանա “%s”-ով:" #, c-format msgid "The translation should not end with “%s”." msgstr "Թարգմանությունը չպետք է վերջանա “%s”-ով:" #, c-format msgid "The translation ends with “%s”, but the source text ends with “%s”." msgstr "" "Թարգմանությունը վերջանում է “%s”-ով, բայց սկզբնական գրվածքը վերջանում է “%s”-" "ով:" msgid "Comment:" msgstr "Մեկնաբանություն." msgid "OK" msgstr "Լավ" msgid "C&lear" msgstr "Մ&աքրել" msgid "Clear the comment" msgstr "Մաքրել մեկնաբանությունը" msgid "New" msgstr "Նոր" msgid "Create new translations project" msgstr "Ստեղծել թարգմանության նոր նախագիծ" msgid "Edit" msgstr "Խմբագրել" msgid "Edit the project" msgstr "Խմբագրել նախագիծը" msgid "Delete the project" msgstr "Ջնջել նախագիծը" msgid "Update all" msgstr "Թարմացնել բոլորը" msgid "Update all catalogs in the project" msgstr "Թարմացնել բոլոր գրացուցակները նախագծում" msgid "Edit project" msgstr "Խմբագրել նախագիծը" msgid "Project name:" msgstr "Նախագծի անունը." msgid "Browse" msgstr "Ընտրել" msgid "Add directory to the list" msgstr "Գրացուցակը հավելել ցանկում" msgid "&New…" msgstr "&Նոր…" msgid "New from &POT/PO file…" msgstr "Նոր &POT/PO ֆայլից…" msgid "New From &POT/PO File…" msgstr "Նոր &POT/PO ֆայլից…" msgid "&Open…" msgstr "&Բացել…" msgid "Open Recent" msgstr "Բացել վերջինը" msgid "Open from Crowdin…" msgstr "Բացել Crowdin-ից…" msgid "Open From Crowdin…" msgstr "Բացել Crowdin-ից…" msgid "&Close" msgstr "&Փակել" msgid "&Save" msgstr "&Պահպանել" msgid "Save &as…" msgstr "Պահպանել &որպես…" msgid "Save &As…" msgstr "Պահպանել &որպես…" msgid "Compile to MO…" msgstr "Կազմարկել MO-ի…" msgid "E&xport as HTML…" msgstr "Ա&րտահանել որպես HTML…" msgid "Check for updates…" msgstr "Ստուգել թարմացումները…" msgid "&Preferences…" msgstr "&Կարգավորումներ…" msgid "Catalogs &manager" msgstr "Գրացուցակների &կառավար" msgid "Catalogs &Manager" msgstr "Գրացուցակների &կառավար" msgid "E&xit" msgstr "Փ&ակել" msgid "Quit" msgstr "Փակել" msgid "Copy from singular" msgstr "Պատճենել հոգնակիից" msgid "Copy From Singular" msgstr "Պատճենել եզակիից" msgid "Translation needs &work" msgstr "Թարգմանությունը վերջնական &չէ" msgid "Translation Needs &Work" msgstr "Թարգմանությունը վերջնական &չէ" msgid "Edit &comment" msgstr "Խմբագրել &մեկնաբանությունը" msgid "Edit &Comment" msgstr "Խմբագրել &մեկնաբանությունը" msgid "Suggestions" msgstr "Առաջարկություններ" msgid "&Find…" msgstr "&Գտնել…" msgid "Replace…" msgstr "Փոխարինել…" msgid "Find next" msgstr "Գտնել հաջորդը" msgid "Find previous" msgstr "Գտնել նախորդը" msgid "Find and Replace…" msgstr "Գտնել և փոխարինել…" msgid "Find Next" msgstr "Գտնել հաջորդը" msgid "Find Previous" msgstr "Գտնել նախորդը" msgid "&Preferences" msgstr "&Կարգավորումներ" msgid "Display entry &IDs" msgstr "Ցուցադրել գրառումների &ID-ները" msgid "Display Entry &IDs" msgstr "Ցուցադրել գրառումների &ID-ները" msgid "Sort by &file order" msgstr "Խմբավորել ըստ &ֆայլի կարգի" msgid "Sort by &File Order" msgstr "Խմբավորել ըստ &ֆայլի կարգի" msgid "Sort by &source" msgstr "Խմբավորել ըստ &սկզբնականի" msgid "Sort by &Source" msgstr "Խմբավորել ըստ &սկզբնականի" msgid "Sort by &translation" msgstr "Խմբավորել ըստ &թարգմանության" msgid "Sort by &Translation" msgstr "Խմբավորել ըստ &թարգմանության" msgid "&Group by context" msgstr "&Խմբավորել ըստ համատեքստի" msgid "&Group By Context" msgstr "&Խմբավորել ըստ համատեքստի" msgid "Entries with errors first" msgstr "Նախ սխալներով գրառումները" msgid "Entries with Errors First" msgstr "Նախ սխալներով գրառումները" msgid "&Untranslated entries first" msgstr "&Նախ չթարգմանվածները" msgid "&Untranslated Entries First" msgstr "&Նախ չթարգմանվածները" msgid "&Show references" msgstr "&Ցուցադրել հղումները" msgid "&Show References" msgstr "&Ցուցադրել հղումները" msgid "Show sidebar" msgstr "Ցուցադրել կողագոտին" msgid "Show status bar" msgstr "Ցուցադրել վիճակի գոտին" msgid "C&atalog" msgstr "Գ&րացուցակ" msgid "&Update from sources" msgstr "&Թարմացնել սկզբնականից" msgid "&Update from Sources" msgstr "&Թարմացնել սկզբնականից" msgid "Update from &POT file…" msgstr "Թարմացնել &POT ֆայլից…" msgid "Update from &POT File…" msgstr "Թարմացնել &POT ֆայլից…" msgid "Sync with Crowdin" msgstr "Սինք Crowdin-ի հետ" msgid "Pre-&translate…" msgstr "Նախա&թարգմանություն…" msgid "&Purge deleted translations" msgstr "&Մաքրել ջնջված թարգմանությունները" msgid "&Purge Deleted Translations" msgstr "&Մաքրել ջնջված թարգմանությունները" msgid "&Validate translations" msgstr "&Վավերացնել թարգմանությունները" msgid "&Validate Translations" msgstr "&Վավերացնել թարգմանությունները" msgid "&Properties…" msgstr "&Հատկություններ…" msgid "&Done and next" msgstr "&Պատրաստ է և հաջորդը" msgid "&Done and Next" msgstr "&Պատրաստ է և հաջորդը" msgid "&Previous translation" msgstr "&Նախորդ թարգմանությունը" msgid "&Previous Translation" msgstr "&Նախորդ թարգմանությունը" msgid "&Next translation" msgstr "&Հաջորդ թարգմանությունը" msgid "&Next Translation" msgstr "&Հաջորդ թարգմանությունը" msgid "P&revious unfinished" msgstr "Ն&ախորդ անավարտը" msgid "P&revious Unfinished" msgstr "Ն&ախորդ անավարտը" msgid "Ne&xt unfinished" msgstr "Հաջ&որդ անավարտը" msgid "Ne&xt Unfinished" msgstr "Հաջ&որդ անավարտը" msgid "Previous plural form" msgstr "Նախորդ հոգնակին" msgid "Previous Plural Form" msgstr "Նախորդ հոգնակին" msgid "Next plural form" msgstr "Հաջորդ հոգնակին" msgid "Next Plural Form" msgstr "Հաջորդ հոգնակին" msgid "&Online help" msgstr "&Առցանց օգնություն" msgid "&Online Help" msgstr "&Առցանց օգնություն" msgid "&GNU gettext manual" msgstr "&GNU gettext-ի ձեռնարկ" msgid "&GNU gettext Manual" msgstr "&GNU gettext-ի ձեռնարկ" msgid "&About Poedit" msgstr "Poedit-ի &մասին" msgid "&About" msgstr "&Ծրագրի մասին" msgid "Extractor setup" msgstr "Արտահանիչի կարգավորում" msgid "List of extensions separated by semicolons (e.g. *.cpp;*.h):" msgstr "Ընդլայնումների ցուցակը՝ առանձնացված կետ-ստորակետով (օր.՝ *.cpp;*.h)." msgid "Invocation:" msgstr "Կանչ." msgid "Command to extract translations:" msgstr "Թարգմանությունները դուրս հանելու հրաման." msgid "" "This is the command used to launch the extractor.\n" "%o expands to the name of output file, %K to list\n" "of keywords, %F to list of input files,\n" "%C to charset flag (see below)." msgstr "" "Այս հրամանը օգտագործվում է բացելու համար արտահանիչը:\n" "%o-ը կավելացվի արտածվող ֆայլի անվանը, %K-ը՝\n" "հիմնաբառի ցանկին, %F-ը՝ ներածվող ֆայլերի ցանկին,\n" "%C-ը՝ կոդավորման դրոշակին (տես ստորև):" msgid "An item in keywords list:" msgstr "Միավոր՝ հիմնաբառերի ցանկում." msgid "" "This will be attached to the command line once\n" "for each keyword. %k expands to the keyword." msgstr "" "Սա կկցվի հրամանի տողին մեկ անգամ՝\n" "յուրաքանչյուր ստեղնաշարի համար: %k-ը կավելացվի ստեղնաշարին:" msgid "An item in input files list:" msgstr "Միավորը ներածված ֆայլերի ցանկում է." #, c-format msgid "" "This will be attached to the command line once\n" "for each input file. %f expands to the filename." msgstr "" "Սա կկցվի հրամանի տողին մեկ անգամ՝\n" "յուրաքանչյուր ստեղնաշարի համար: %f-ը կավելացվի ֆայլի անվանը:" msgid "Source code charset:" msgstr "Սկզբնական կոդի գրանշանը՝" #, c-format msgid "" "This will be attached to the command line\n" "only if source code charset was given. %c expands to charset value." msgstr "" "Սա կկցվի հրամանի տողին,\n" "եթե միայն սկզբնական կոդավորում է տրված: %c-ը կավելացվի կոդավորման արժեքին:" msgid "Catalog properties" msgstr "Գրացուցակի հատկությունները" msgid "Project name and version:" msgstr "Նախագծի անունը և տարբեակը." msgid "Language team:" msgstr "Լեզվի թիմը." msgid "Plural forms:" msgstr "Հոգնակի ձևեր." msgid "Use default rules for this language" msgstr "Օգտ. այս լեզվի ծրագրային կանոնները" msgid "Use custom expression" msgstr "Օգտ. հարմարեցված արտահայտություն" msgid "Learn about plural forms" msgstr "Մանրամասներ հոգնակի ձևերի մասին" msgid "Charset:" msgstr "Կոդավորում." msgid "Advanced Extraction Settings…" msgstr "Դուրս բերելու ընդլայնված կարգավորումներ…" msgid "Advanced extraction settings…" msgstr "Դուրս բերելու ընդլայնված կարգավորումներ…" msgid "Translation Properties" msgstr "Թարգմանության հատկությունները" msgid "Translation properties" msgstr "Թարգմանության հատկություններ" msgid "Sources Paths" msgstr "Սկզբնականների ուղիները" msgid "Sources paths" msgstr "Սկզբնական ուղիներ" msgid "Extract text from source files in the following directories:" msgstr "Հանել տեքստը սկզբնական ֆայլից հետևյալ տեղում՝" msgid "Base path:" msgstr "Հիմնական ուղին." msgid "Sources Keywords" msgstr "Սկզբնականների հիմնաբառերը" msgid "Sources keywords" msgstr "Սկզբնականի հիմնաբառեր" msgid "" "Use these keywords (function names) to recognize translatable strings\n" "in source files:" msgstr "" "Օգտ. այս հիմնաբառերը (գործառույթի անունները)՝ ճանաչելու համար թարգմանվող " "տողերը\n" "սկզբնական ֆայլում." msgid "Also use default keywords for supported languages" msgstr "Նաև օգտագործեք լռելյայն հիմնաբառեր՝ աջակցվող լեզուների համար" msgid "Learn About Gettext Keywords" msgstr "Իմացեք Gettext Keywords-ի մասին" msgid "Learn about gettext keywords" msgstr "Մանրամասներ gettext հիմնաբառի մասին" msgid "Update summary" msgstr "Թարմացումների ամփոփում" msgid "" "These strings were found in the sources but were not in the catalog.\n" "Poedit will add them to the catalog now." msgstr "" "Այս տողերը գտնվել են սկզբնականում, բայց ոչ գրացուցակում:\n" "nPoedit-ը դրանք կավելացնի գրացուցակում:" msgid "New strings" msgstr "Նոր տող" msgid "" "These strings are no longer in the sources.\n" "Poedit will remove them from the catalog now." msgstr "" "Այս տողերը այլևս սկզբնականում չկան:\n" "Poedit-ը դրանք կհեռացնի գրացուցակից:" msgid "Obsolete strings" msgstr "Հնացած տողեր" msgid "(0 new, 0 obsolete)" msgstr "(0 նոր, 0 հնացած)" msgid "Open" msgstr "Բացել" msgid "Save catalog" msgstr "Պահպանել գրացուցակը" msgid "Validate" msgstr "Վավերացնել" msgid "Check for errors in the translation" msgstr "Ստուգել թարգմանության սխալները" msgid "Update" msgstr "Թարմացնել" msgid "Update catalog - synchronize it with sources" msgstr "Թարմացնել գրացուցակը՝ համաժամեցնել այն սկզբնականի հետ" msgid "Sidebar" msgstr "Կողագոտի" msgid "Show or hide the sidebar" msgstr "Ցուցադրել կամ թաքցնել կողագոտին" #. TRANSLATORS: "Previous" as in used in the past, now replaced with newer. msgid "Previous source text:" msgstr "Նախորդ սկզբնական տեքստը." msgid "" "The old source text (before it changed during an update) that the now-" "inaccurate translation corresponds to." msgstr "" "Հին սկզբնական գրվածքը (մինչև արդիացման ընթացքում դրա փոխվելը), որը այժմ ոչ " "ճիշտ է:" msgid "Notes for translators:" msgstr "Նշում թարգմանողի համար." msgid "Add comment" msgstr "Հավելել մեկնաբանություն" msgid "Add Comment" msgstr "Հավելել մեկնաբանություն" msgid "Translation suggestions:" msgstr "Թարգմանության առաջարկություններ." #. TRANSLATORS: This is shown when no translation suggestions can be found in the TM (Windows). msgid "No matches found" msgstr "Չկան համապատասխանություններ" #. TRANSLATORS: This is shown when no translation suggestions can be found in the TM (macOS, Linux). msgid "No Matches Found" msgstr "Չկան համապատասխանություններ" msgid "This string was found in Poedit’s translation memory." msgstr "Այս տողը գտնվել է Poedit-ի թարգմանության հիշողությունում:" msgid "Cannot create temporary directory." msgstr "Հնարավոր չեղավ ստեղծել ժամանակավոր գրացուցակ:" msgid "Welcome to Poedit" msgstr "Բարի գալուստ Poedit" #. TRANSLATORS: This is version information in about dialog, "%s" will be #. version number when used #, c-format msgid "Version %s" msgstr "Տարբերակ՝ %s" msgid "Edit a Translation" msgstr "Խմբագրել թարգմանությունը" msgid "Edit a translation" msgstr "Խմբագրել թարգմանություն" msgid "Open an existing PO file and edit the translation." msgstr "Բացել առկա PO ֆայլը և խմբագրել թարգմանությունը:" msgid "" "Take an existing PO file or POT template and create a new translation from " "it." msgstr "Վերցնել առկա PO ֆայլ կամ POT նմուշ և ստեղծել նոր թարգմանություն:" msgid "Collaborate on a Translation with Others" msgstr "Համագործակցել թարգմանելու հարցում ուրիշների հետ" msgid "Collaborate on a translation with others" msgstr "Համագործակցել թարգմանության հարցում ուրիշների հետ" msgid "" "Download a file from Crowdin project, translate and sync your changes back." msgstr "Ներբեռնել ֆայլ Crowdin-ի նախագծից, թարգմանել և համաժամեցնել:" msgid "What is Crowdin?" msgstr "Ի՞նչ է Crowdin-ը" msgid "There are no translations. That’s unusual." msgstr "Թարգմանություններ չկան: Դա նորմալ չէ:" msgid "" "Translatable entries aren’t added manually in the Gettext system, but are " "automatically extracted\n" "from source code. This way, they stay up to date and accurate.\n" "Translators typically use PO template files (POTs) prepared for them by the " "developer." msgstr "" "Թարգմանելի գրառումները ձեռքով չեն ավելացվել Gettext համակարգում, բայց " "ինքնաբար դուրս են բերվել\n" "աղբյուր կոդից: Այս ճանապարհով դրանք մնում են արդիացված և ճիշտ:\n" "Թարգմանիչները սովորաբար օգտագործում են PO ձևանմուշի ֆայլեր ((POT-եր), որոնք " "նրանց համար նախապատրաստվել են մշակողների կողմից:" msgid "(Learn more about GNU gettext)" msgstr "(Մանրամասներ GNU gettext-ի մասին)" msgid "The simplest way to fill this catalog is to update it from a POT:" msgstr "Այս գրացուցակը լցնելու ամենապարզ ճանապարհը այն POT-ից թարմացնելն է." msgid "Update from POT" msgstr "Թարմացնել POT-ից" msgid "Take translatable strings from an existing POT template." msgstr "Վերցնել թարգմանվող տողերը առկա POT նմուշից:" msgid "" "You can also extract translatable strings directly from the source code:" msgstr "Կարող եք նաև հանել թարգմանվող տողերը անմիջականորեն սկզբնական կոդից." msgid "Extract from sources" msgstr "Հանել սկզբնական կոդից" msgid "Configure source code extraction in Properties." msgstr "Կազմաձևել սկզբնական կոդի դուրս բերումը Հատկություններում:" msgid "Sync" msgstr "Սինք" msgid "Synchronize the translation with Crowdin" msgstr "Համաժամեցնել թարգմանությունը Crowdin-ին" #. TRANSLATORS: This is titlebar of about dialog, "%s" is application name #. ("Poedit" here, but please use "%s") #, c-format msgid "About %s" msgstr "%s ծրագրի մասին" #. TRANSLATORS: Title of the preferences window on Windows and Linux. "%s" is replaced with "Poedit" when running. #, c-format msgid "%s Preferences" msgstr "%s-ի կարգավորումները" #. TRANSLATORS: macOS item in app menu msgid "Services" msgstr "Ծառայություններ" #. TRANSLATORS: macOS item in app menu, %s is replaced with "Poedit" #, c-format msgid "Hide %s" msgstr "Թաքցնել %s-ը" #. TRANSLATORS: macOS item in app menu msgid "Hide Others" msgstr "Թաքցնել ուրիշները" #. TRANSLATORS: macOS item in app menu msgid "Show All" msgstr "Ցուցադրել բոլորը" #. TRANSLATORS: macOS item in app menu, %s is replaced with "Poedit" #, c-format msgid "Quit %s" msgstr "Փակել %s-ը" #. TRANSLATORS: macOS item in app menu msgid "Preferences…" msgstr "Կարգավորումներ…" msgid "Preferences..." msgstr "Կարգավորումներ..." #. TRANSLATORS: Title of a category in Windows task menu (right-click icon in taskbar) msgid "Recent" msgstr "Վերջինը" #. TRANSLATORS: Title of a category in Windows task menu (right-click icon in taskbar) msgid "Frequent" msgstr "Հաճախակի" msgid "&Apply" msgstr "&Գործադրել" msgid "Apply" msgstr "Գործադրել" msgid "&Back" msgstr "&Հետ" msgid "Back" msgstr "Հետ" msgid "&Cancel" msgstr "&Չեղարկել" msgid "&Clear" msgstr "&Մաքրել" msgid "Clear" msgstr "Մաքրել" msgid "Copy" msgstr "Պատճենել" msgid "Cu&t" msgstr "Կտրե&լ" msgid "Cut" msgstr "Կտրել" msgid "&Delete" msgstr "&Ջնջել" msgid "&Quit" msgstr "&Փակել" msgid "File" msgstr "Ֆայլ" msgid "Help" msgstr "Օգնություն" msgid "&New" msgstr "&Նոր" msgid "&No" msgstr "&Ոչ" msgid "No" msgstr "Ոչ" msgid "&OK" msgstr "&Լավ" msgid "Open…" msgstr "Բացել…" msgid "&Open..." msgstr "&Բացել..." msgid "Open..." msgstr "Բացել..." msgid "&Paste" msgstr "&Տեղադրել" msgid "Paste" msgstr "Տեղադրել" msgid "Preferences" msgstr "Կարգավորումներ" msgid "&Redo" msgstr "&Կրկնակել" msgid "Refresh" msgstr "Թարմացնել" msgid "&Save as" msgstr "&Պահպանել որպես" msgid "Save as" msgstr "Պահպանել որպես" msgid "Select &All" msgstr "Նշել &բոլորը" msgid "Select All" msgstr "Նշել բոլորը" msgid "&Undo" msgstr "&Հետարկել" msgid "&Yes" msgstr "&Այո" msgid "Yes" msgstr "Այո" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Shift+" msgstr "Shift+" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Enter" msgstr "Enter" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Up" msgstr "Up" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Down" msgstr "Down" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Left" msgstr "Ձախ" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Right" msgstr "Աջ" #. TRANSLATORS: Keyboard shortcut, must correspond to translation of "Ctrl+" msgid "ctrl" msgstr "ctrl" #. TRANSLATORS: Keyboard shortcut, must correspond to translation of "Alt+" msgid "alt" msgstr "alt" #. TRANSLATORS: Keyboard shortcut, must correspond to translation of "Shift+" msgid "shift" msgstr "shift" poedit-2.0.6/locales/ms.po0000664000372000037200000014656713230131554012345 00000000000000msgid "" msgstr "" "Project-Id-Version: poedit\n" "Report-Msgid-Bugs-To: help@poedit.net\n" "POT-Creation-Date: 2018-01-18 13:57+0100\n" "PO-Revision-Date: 2018-01-18 07:57-0500\n" "Last-Translator: vslavik \n" "Language-Team: Malay\n" "Language: ms_MY\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" "X-Generator: crowdin.com\n" "X-Crowdin-Project: poedit\n" "X-Crowdin-Language: ms\n" "X-Crowdin-File: /locales/poedit.pot\n" msgid "Hide this notification message" msgstr "Sembunyi mesej pemberitahuan ini" msgid "Don’t Show Again" msgstr "Jangan Papar Lagi" msgid "Don’t show again" msgstr "Jangan papar lagi" #, c-format msgid "(New: %i, obsolete: %i)" msgstr "(Baru: %i, usang: %i)" msgid "Updating catalog" msgstr "Mengemaskini katalog" msgid "Collecting source files…" msgstr "Mengumpul fail sumber..." msgid "Extracting translatable strings…" msgstr "Mengekstrak rentetan yang boleh diterjemahkan…" msgid "Failed to load extracted catalog." msgstr "Gagal memuat katalog yang diekstrak." msgid "Merging differences…" msgstr "Gabungan perbezaan..." #, c-format msgid "“%s” is not a valid POT file." msgstr "\"%s\" bukanlah fail POT yang sah." #, c-format msgid "%i line of file “%s” was not loaded correctly." msgid_plural "%i lines of file “%s” were not loaded correctly." msgstr[0] "barisan %i fail \"%s\" tidak dimuatkan dengan betul." #, c-format msgid "Line %d of file “%s” is corrupted (not valid %s data)." msgstr "Baris %d fail \"%s\" adalah rosak (data %s tidak sah)." #, c-format msgid "Malformed header: “%s”" msgstr "Pengepala cacat: “%s”" msgid "" "Broken catalog file: singular form msgstr used together with msgid_plural" msgstr "" "Fail katalog rosak: kata tunggal msgstr digunakan bersama dengan msgid_plural" msgid "Broken catalog file: plural form msgstr used without msgid_plural" msgstr "Fail katalog rosak: kata jamak msgstr digunakan tanpa msgid_plural" msgid "" "There were errors when loading the catalog. Some data may be missing or " "corrupted as the result." msgstr "" "Terdapat ralat ketika memuat katalog. Hasilnya, beberapa data mungkin hilang " "atau rosak." #, c-format msgid "Couldn’t load file %s, it is probably corrupted." msgstr "Tidak dapat memuatkan fail %s, ia mungkin telah rosak." #, c-format msgid "" "File “%s” is read-only and cannot be saved.\n" "Please save it under different name." msgstr "" "Fail \"%s\" adalah baca sahaja dan tidak boleh disimpan.\n" "Sila simpan ia di bawah nama yang berbeza." #, c-format msgid "Couldn’t save file %s." msgstr "Tidak dapat menyimpan fail %s." msgid "" "There was a problem formatting the file nicely (but it was saved all right)." msgstr "" "Terdapat masalah memformat fail secara baik (tetapi telah disimpan dengan " "baik)." #, c-format msgid "" "The catalog couldn’t be saved in “%s” charset as specified in catalog " "settings.\n" "\n" "It was saved in UTF-8 instead and the setting was modified accordingly." msgstr "" "Katalog tidak dapat disimpan dalam \"%s\" charset sebagaimana yang " "dinyatakan dalam penetapan katalog.\n" "\n" "Ia sebaliknya disimpan dalam UTF-8 dan penetapan telah ditukarkan dengan " "sewajarnya." msgid "Error saving catalog" msgstr "Ralat menyimpan katalog" msgid "PO Translation Files" msgstr "Fail Terjemahan PO" msgid "POT Translation Templates" msgstr "Templat Terjemahan POT" msgid "All Translation Files" msgstr "Sunting fail terjemahan SLUDGE" msgid "(Use default language)" msgstr "(Guna bahasa lalai)" msgid "Select your preferred language" msgstr "Pilih bahasa keutamaan anda" msgid "Language selection" msgstr "Pilihan bahasa" msgid "You must restart Poedit for this change to take effect." msgstr "Anda mesti mula semula Poedit untuk mengaktifkan perubahan ini." msgid "Syncing" msgstr "Menyegerak" #. TRANSLATORS: %s is a cloud destination, e.g. "Crowdin" or ftp.wordpress.com etc. #, c-format msgid "Syncing with %s…" msgstr "Menyegerak dengan %s..." #. TRANSLATORS: %s is a cloud destination, e.g. "Crowdin" or ftp.wordpress.com etc. #, c-format msgid "Syncing with %s failed." msgstr "Penyegerakan dengan %s gagal." msgid "Syncing error" msgstr "Ralat penyegerakan" msgid "Downloading translations is disabled in this project." msgstr "Memuat turun terjemahan dinyahdayakan dalam projek ini." msgid "Not authorized, please sign in again." msgstr "Tidak dibenarkan, sila log masuk sekali lagi." msgid "" "Crowdin is an online localization management platform and collaborative " "translation tool. Poedit can seamlessly sync PO files managed at Crowdin." msgstr "" "Crowdin adalah platform pengurusan lokalisasi dalam talian dan alat " "terjemahan kolaboratif. Poedit boleh menyelaraskan fail PO yang diuruskan di " "Crowdin dengan lancar." msgid "Sign In" msgstr "Daftar Masuk" msgid "Sign in" msgstr "Daftar masuk" msgid "Sign Out" msgstr "Daftar Keluar" msgid "Sign out" msgstr "Daftar keluar" msgid "Waiting for authentication…" msgstr "Menunggu pengesahan…" msgid "Updating user information…" msgstr "Mengemaskini maklumat pengguna…" msgid "Signed in as:" msgstr "Didaftar masuk sebagai:" msgid "Learn More About Crowdin" msgstr "Ketahui Lebih Lanjut Tentang Crowdin" msgid "Learn more about Crowdin" msgstr "Ketahui lebih lanjut tentang Crowdin" msgid "Sign in to Crowdin" msgstr "Daftar masuk ke Crowdin" msgid "Open Crowdin translation" msgstr "Buka terjemahan Crowdin" msgid "Project:" msgstr "Projek:" msgid "Language:" msgstr "Bahasa:" msgid "File:" msgstr "Fail:" msgid "No translation projects listed in your Crowdin account." msgstr "Tiada projek penterjemahan yang disenaraikan dalam akaun Crowdin anda." msgid "This project has no files that can be translated in Poedit." msgstr "Projek ini mempunyai tiada fail yang boleh diterjemahkan dalam Poedit." msgid "This file can only be edited in Crowdin’s web interface." msgstr "Fail ini hanya boleh disunting di muka web Crowdin." msgid "Downloading latest translations…" msgstr "Memuat turun terjemahan terbaru…" msgid "Syncing with Crowdin failed." msgstr "Menyelaras dengan Crowdin gagal." msgid "Crowdin error" msgstr "Crowdin ralat" msgid "Uploading translations…" msgstr "Memuat naik terjemahan…" msgid "&Copy" msgstr "&Salin" msgid "Learn more" msgstr "Ketahui lebih lanjut" msgid "Learn More" msgstr "Ketahui Lebih Lanjut" msgid "&Help" msgstr "&Bantuan" msgid "MO files can’t be directly edited in Poedit." msgstr "Fail MO tidak boleh diedit terus dalam Poedit." msgid "Error opening file" msgstr "Ralat membuka fail" msgid "" "Please open and edit the corresponding PO file instead. When you save it, " "the MO file will be updated as well." msgstr "" "Sila buka dan edit fail PO yang sepadan. Apabila anda menyimpannya, fail MO " "akan dikemaskini juga." msgid "don’t delete temporary files (for debugging)" msgstr "jangan padam fail sementara (untuk menyahpepijat)" msgid "handle a poedit:// URI" msgstr "kendalikan satu poedit:// URI" msgid "go to item at given line number" msgstr "pergi ke item pada nombor baris yang diberikan" msgid "Failed to communicate with Poedit process." msgstr "Gagal untuk berkomunikasi dengan proses Poedit." #, c-format msgid "Unhandled exception occurred: %s" msgstr "Pengecualian tidak dikendalikan berlaku: %s" msgid "Open catalog" msgstr "Buka katalog" #, c-format msgid "File “%s” doesn’t exist." msgstr "Fail \"%s\" tidak wujud." msgid "Poedit is an easy to use translations editor." msgstr "Poedit adalah editor terjemahan yang mudah digunakan." msgid "Catalogs Manager" msgstr "Pengurus Katalog" msgid "Check for Updates…" msgstr "Menyemak kemas kini…" msgid "&Edit" msgstr "&Edit" msgid "Undo" msgstr "Buat asal" msgid "Redo" msgstr "Buat semula" msgid "Paste and Match Style" msgstr "Tampal dan Padankan Gaya" msgid "Delete" msgstr "Padam" msgid "Spelling and Grammar" msgstr "Ejaan dan Tatabahasa" msgid "Show Spelling and Grammar" msgstr "Tunjuk Ejaan dan Tatabahasa" msgid "Check Document Now" msgstr "Periksa Dokumen Sekarang" msgid "Check Spelling While Typing" msgstr "Periksa Ejaan Ketika Menaip" msgid "Check Grammar With Spelling" msgstr "Periksa Tatabahasa Dengan Ejaan" msgid "Correct Spelling Automatically" msgstr "Betulkan Ejaan Secara Automatik" msgid "Substitutions" msgstr "Penggantian" msgid "Show Substitutions" msgstr "Tunjuk Pertukaran" msgid "Smart Copy/Paste" msgstr "Salin/Tampan Bijak" msgid "Smart Quotes" msgstr "Petikan Bijak" msgid "Smart Dashes" msgstr "Sempang Bijak" msgid "Smart Links" msgstr "Pautan Bijak" msgid "Text Replacement" msgstr "Gantian Teks" msgid "Transformations" msgstr "Pengubahan" msgid "Make Upper Case" msgstr "Jadikan Huruf Besar" msgid "Make Lower Case" msgstr "Jadikan Huruf Kecil" msgid "Capitalize" msgstr "Penghuruf besaran" msgid "Speech" msgstr "Ucapan" msgid "Start Speaking" msgstr "Mula Bercakap" msgid "Stop Speaking" msgstr "Henti Bercakap" msgid "&View" msgstr "&Pandangan" msgid "Enter Full Screen" msgstr "Masuk Skrin Penuh" msgid "Window" msgstr "Tetingkap" msgid "Minimize" msgstr "Meminimumkan" msgid "Zoom" msgstr "Zum" msgid "Bring All to Front" msgstr "Bawa Semua ke Hadapan" #. TRANSLATORS:File kind displayed in Finder/Explorer msgid "PO Translation" msgstr "Terjemahan PO" msgid "The file cannot be opened." msgstr "Fail ini tidak dapat dibuka." msgid "Invalid file" msgstr "Fail tidak sah" msgid "" "The file may be either corrupted or in a format not recognized by Poedit." msgstr "" "Fail ini sama ada rosak atau dalam format yang tidak dikenali oleh Poedit." msgid "You can’t drop more than one file on Poedit window." msgstr "" "Anda tidak boleh menjatuhkan lebih daripada satu fail pada tetingkap Poedit." #, c-format msgid "File “%s” is not a message catalog." msgstr "Fail \"%s\" bukan dari katalog mesej." msgid "Poedit" msgstr "Poedit" msgid "&File" msgstr "&Fail" msgid "&Go" msgstr "&Pergi" #. TRANSLATORS: %s is language name in its basic form (as you #. would see e.g. in a list of supported languages). You may need #. to rephrase it, e.g. to an equivalent of "for language %s". #, c-format msgid "" "Spellchecking is disabled, because the dictionary for %s isn’t installed." msgstr "Semakan ejaan dilumpuhkan, kerana kamus untuk %s tidak dipasang." msgid "Install" msgstr "Pasang" msgid "Catalog modified. Do you want to save changes?" msgstr "Katalog diubah. Anda ingin menyimpan perubahan?" msgid "Save changes" msgstr "Simpan perubahan" msgid "Your changes will be lost if you don’t save them." msgstr "Perubahan anda akan hilang jika anda tidak menyimpannya." msgid "Save" msgstr "Simpan" msgid "Don’t save" msgstr "Jangan simpan" msgid "Don’t Save" msgstr "Jangan simpan" msgid "Save as…" msgstr "Simpan sebagai…" msgid "Compile to…" msgstr "Kumpulkan untuk…" msgid "Compiled Translation Files" msgstr "Fail-fail Terjemahan Disusun" msgid "Export as…" msgstr "Eksport sebagai…" msgid "HTML Files" msgstr "Fail HTML" msgid "Open catalog template" msgstr "Buka templat katalog" msgid "Source code not available." msgstr "Kod sumber tidak wujud." msgid "Updating failed" msgstr "Mengemas kini gagal" msgid "" "Translations couldn’t be updated from the source code, because no code was " "found in the location specified in the catalog’s Properties." msgstr "" "Terjemahan tidak dapat dikemaskini dari kod sumber, kerana tidak ada kod " "ditemui di lokasi yang dinyatakan dalam Properties katalog ini." msgid "Entries in the catalog are probably incorrect." msgstr "Masukan di katalog mungkin salah" msgid "Updating the catalog failed. Click on 'Details >>' for details." msgstr "Gagal mengemaskini katalog. Klik 'Perincian >>' untuk perincian." #, c-format msgid "%d issue with the translation found." msgid_plural "%d issues with the translation found." msgstr[0] "%d isu berkaitan terjemahan ditemui." msgid "Validation results" msgstr "Pengesahan keputusan" msgid "" "Entries with errors were marked in red in the list. Details of the error " "will be shown when you select such an entry." msgstr "" "Masukan memiliki ralat yang ditanda dengan merah dalam senarai. PErincian " "ralat akan ditunjukkan ketika anda memilih masukan tersebut." msgid "The file was saved safely." msgstr "Fail disimpan dengan selamat." msgid "" "The file was saved safely and compiled into the MO format, but it will " "probably not work correctly." msgstr "" "Fail disimpan dengan selamat dan dikumpulkan ke dalam format MO, tetapi ia " "mungkin tidak akan berfungsi dengan betul." msgid "" "The file was saved safely, but it cannot be compiled into the MO format and " "used." msgstr "" "Fail telah disimpan dengan selamat, tetapi ianya tidak dapat dikompil kepada " "format MO serta digunakan. " msgid "" "The file was compiled into the MO format, but it will probably not work " "correctly." msgstr "" "Fail tersebut telah disusun ke dalam format MO, tetapi ia mungkin tidak akan " "berfungsi dengan betul." msgid "The file cannot be compiled into the MO format and used." msgstr "Fail tidak boleh disusun ke dalam format MO dan digunakan." msgid "No problems with the translation found." msgstr "Tiada masalah berkaitan terjemahan ditemui." #, c-format msgid "The translation is ready for use, but %d entry is not translated yet." msgid_plural "" "The translation is ready for use, but %d entries are not translated yet." msgstr[0] "" "Terjemahan sedia untuk digunakan, tetapi entri %d belum diterjemahkan." msgid "The translation is ready for use." msgstr "Terjemahan sedia untuk digunakan." #, c-format msgid "Poedit automatically fixed invalid content in the file “%s”." msgstr "" "Poedit secara automatik tetapkan kandungan yang tidak sah dalam fail \"% s\"." msgid "" "The file contained duplicate items, which is not allowed in PO files and " "would prevent the file from being used. Poedit fixed the issue, but you " "should review translations of any items marked as needing work and correct " "them if necessary." msgstr "" "Fail mengandungi item salinan, yang tidak dibenarkan dalam fail PO dan akan " "menghalang fail itu daripada digunakan. Poedit baiki isu ini, tetapi anda " "perlu menyemak terjemahan mana-mana item yang ditanda sebagai memerlukan " "kerja dan membetulkan item jika perlu." msgid "Language of the translation isn’t set." msgstr "Bahasa terjemahan tidak ditetapkan." msgid "Set Language" msgstr "Tetapkan Bahasa" msgid "Set language" msgstr "Tetapkan bahasa " #. TRANSLATORS: This is shown underneath "Language of the translation isn't set (or ...is the same as source language)." msgid "" "Suggestions are not available if the translation language is not set " "correctly. Other features, such as plural forms, may be affected as well." msgstr "" "Cadangan tidak disediakan jika Bahasa terjemahan tidak diset dengan betul. " "Ciri-ciri lain, seperti bentuk majmuk, mungkin terjejas juga." msgid "Language of the translation is the same as source language." msgstr "Bahasa Inggeris adalah sama sebagai bahasa sumber." msgid "Fix Language" msgstr "Baiki Bahasa" msgid "Fix language" msgstr "Baiki bahasa" msgid "" "This catalog has entries with plural forms, but doesn’t have Plural-Forms " "header configured." msgstr "" "Katalog ini memiliki bentuk jamak, tetapi tidak mempunyai konfigurasi " "pengepala Bentuk-Jamak." msgid "" "Entries in this catalog have different plural forms count from what " "catalog’s Plural-Forms header says" msgstr "" "Masukan dalam katalog ini memiliki bentuk bilangan jamak yang berbeza " "daripada yang disebut dalam katalog pengepala Bentuk-Jamak" msgid "Required header Plural-Forms is missing." msgstr "Pengepala Bentuk-Jamak yang diperlukan telah hilang." #, c-format msgid "Syntax error in Plural-Forms header (\"%s\")." msgstr "Rakat sintaks dalam pengepala Bentuk-Jamak (\"%s\")." msgid "Fix the Header" msgstr "Baiki Pengepala" msgid "Fix the header" msgstr "Baiki pengepala" #. TRANSLATORS: %s is language name in its basic form (as you #. would see e.g. in a list of supported languages). You may need #. to rephrase it, e.g. to an equivalent of "for language %s". #, c-format msgid "Plural forms expression used by the catalog is unusual for %s." msgstr "" "Bentuk ungkapan kata jamak yang digunakan oleh katalog untuk %s luar biasa. " #. TRANSLATORS: A verb, shown as action button with ""Plural forms expression used by the catalog is unusual for %s.")" msgid "Review" msgstr "Kaji semula" #, c-format msgid "Error loading message catalog file “%s”." msgstr "Ralat memuat fail katalog mesej '%s”." #, c-format msgid "Translated: %d of %d (%d %%)" msgstr "Diterjemah: %d daripada %d (%d %%)" #, c-format msgid "Remaining: %d" msgstr "Baki: %d" #, c-format msgid "%d error" msgid_plural "%d errors" msgstr[0] "%d ralat" #, c-format msgid "%d entry" msgid_plural "%d entries" msgstr[0] "%d entri" msgid " (unsaved)" msgstr " (tidak disimpan)" msgid " (modified)" msgstr " (diubah suai)" #, c-format msgid "Failed to update translation memory: %s" msgstr "Gagal mengemaskini memori terjemahan: %s" msgid "Purge deleted translations" msgstr "&Hapus terjemahan dipadam" msgid "Do you want to remove all translations that are no longer used?" msgstr "" "Adakah anda ingin menyingkirkan semua terjemahan yang tidak digunakan lagi?" msgid "" "If you continue with purging, all translations marked as deleted will be " "permanently removed. You will have to translate them again if they are added " "back in the future." msgstr "" "Anda ingin meneruskan pengusiran, semua terjemahan akan kekal ditanda " "sebagai dihapus. Anda perlu menterjemahkannya semula jika ianya kembali pada " "masa akan datang. " msgid "Keep" msgstr "Kekalkan" msgid "Purge" msgstr "Usir" msgid "Copy from source text" msgstr "Salin daripada Sumber Teks" msgid "Copy from Source Text" msgstr "Salin daripada Sumber Teks" #. TRANSLATORS: This is the key shortcut used in menus on Windows, some languages call them differently #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Ctrl+" msgstr "Ctrl+" msgid "Clear translation" msgstr "Lapangkan terjemahan" msgid "Clear Translation" msgstr "Lapangkan Terjemahan" msgid "Edit comment" msgstr "Edit komen" msgid "Edit Comment" msgstr "Edit Komen" msgid "References:" msgstr "Rujukan:" msgid "&Bookmarks" msgstr "&Penanda Buku" #. TRANSLATORS: This is the key shortcut used in menus on Windows, some languages call them differently #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Alt+" msgstr "Alt+" #, c-format msgid "Set bookmark %i" msgstr "Tetapkan penanda buku %i" #, c-format msgid "Go to bookmark %i" msgstr "Pergi ke penanda buku %i" #, c-format msgid "Set Bookmark %i" msgstr "Tetapkan Penanda buku %i" #, c-format msgid "Go to Bookmark %i" msgstr "Pergi ke Penanda buku %i" msgid "Hide Sidebar" msgstr "Sembunyi Bar sisi" msgid "Show Sidebar" msgstr "Papar Bar sisi" msgid "Hide Status Bar" msgstr "Sembunyi Bar Status" msgid "Show Status Bar" msgstr "Papar Bar Status" msgid "Source text:" msgstr "Teks sumber:" msgid "Singular:" msgstr "Tunggal:" msgid "Plural:" msgstr "Jamak:" msgid "Translation:" msgstr "Terjemahan:" msgid "Pre-translated" msgstr "Pra-diterjemah" msgid "Needs Work" msgstr "" #. TRANSLATORS: This indicates that the string's translation isn't final #. and has known problems. For example, it might be machine translated or #. fuzzy matched from an older string. The translation should be short and #. convey this. If it's problematic to translate it, "Needs review" is #. acceptable substitute, but note that the meaning is subtly different: #. "needs review" implies that somebody else should review the string after #. I am done with it (i.e. consider it good), while "needs work" implies I #. need to return to it and finish the translation. msgid "Needs work" msgstr "" msgid "" "POT files are only templates and don’t contain any translations themselves.\n" "To make a translation, create a new PO file based on the template." msgstr "" "Fail POT hanya template dan tidak mengandungi sebarang terjemahan sendiri.\n" "Untuk membuat terjemahan, anda perlu membuat fail PO baru berdasarkan " "template." msgid "Create New Translation" msgstr "Cipta Terjemahan Baharu" msgid "Create new translation" msgstr "Cipta terjemahan baru" msgid "Everything" msgstr "Kesemuanya" #, c-format msgid "Form %i" msgstr "Borang %i" msgid "Singular" msgstr "Tunggal" msgid "Zero" msgstr "Sifar" msgid "One" msgstr "Satu" msgid "Two" msgstr "Dua" msgid "Plural" msgstr "Jamak" msgid "Other" msgstr "Lain" #, c-format msgid "%s Format" msgstr "Format %s" #. TRANSLATORS: %s is replaced with language name, e.g. "PHP" or "C", so "PHP Format" etc." #, c-format msgid "%s format" msgstr "format%s" msgid "Source text" msgstr "Teks sumber" #, c-format msgid "Translation — %s" msgstr "Terjemahan — %s" msgid "ID" msgstr "ID" #, c-format msgid "Source text — %s" msgstr "Sumber teks — %s" msgid "unknown language" msgstr "bahasa tidak diketahui" #, c-format msgid "Failed command: %s" msgstr "Perintah gagal: %s" msgid "Failed to merge gettext catalogs." msgstr "Gagal menggabungkan katalog gettext." msgid "Source file" msgstr "Fail sumber" msgid "Source file occurrence:" msgstr "Berlakunya fail sumber:" msgid "Open in Editor" msgstr "Buka Dalam Editor" msgid "Open in editor" msgstr "Buka Dalam editor" msgid "No references for the selected item." msgstr "Tiada rujukan untuk item terpilih." #, c-format msgid "Error opening file %s!" msgstr "Ralat membuka fail %s!" msgid "Find" msgstr "Cari" msgid "Replace" msgstr "Ganti" #. TRANSLATORS: Expander in Find window for additional options (case sensitive etc.) msgid "Options" msgstr "Pilihan" msgid "Ignore case" msgstr "Abaikan huruf" msgid "Wrap around" msgstr "Balut sekeliling" msgid "Whole words only" msgstr "Semua kata sahaja" msgid "Find in source texts" msgstr "Cari dalam teks sumber" msgid "Find in translations" msgstr "Cari dalam terjemahan" msgid "Find in comments" msgstr "Cari dalam komen" msgid "Close" msgstr "Tutup" msgid "Replace &All" msgstr "Ganti &Semua" msgid "Replace &all" msgstr "Ganti &semua" msgid "&Replace" msgstr "&Ganti" msgid "< &Previous" msgstr "< &Sebelumnya" msgid "&Next >" msgstr "&Seterusnya >" msgid "String to find" msgstr "Rentetan dicari" msgid "Replacement string" msgstr "Rentetan pengganti" #, c-format msgid "Cannot execute program: %s" msgstr "Tidak dapat melaksanakan program: %s" msgid "Language Code or Name (e.g. en_GB)" msgstr "Kod atau Nama Bahasa (cth. ms_MY) " msgid "Translation Language" msgstr "Bahasa Terjemahan " msgid "Language of the translation:" msgstr "Bahasa terjemahan:" msgid "Poedit - Catalogs manager" msgstr "Poedit - Pengurus Katalog" msgid "Catalog" msgstr "Katalog" msgid "Total" msgstr "Jumlah" msgid "Untrans" msgstr "Tidak diterjemahkan" msgid "Errors" msgstr "Ralat" msgid "Last modified" msgstr "Terakhir diubah" msgid "Select directory" msgstr "Pilih direktori" msgid "Directories:" msgstr "Direktori:" msgid "" msgstr "" msgid "Do you want to delete the project?" msgstr "Anda ingin memadam projek?" msgid "Confirmation" msgstr "Pengesahan" msgid "" "Do you really want to do mass update of\n" "all catalogs in this project?" msgstr "" "Anda ingin melakukan mengemaskinian\n" "menyeluruh semua projek ini?" msgid "Information about the translator" msgstr "Maklumat mengenai penterjemah" msgid "Name:" msgstr "Nama:" msgid "Your Name" msgstr "E-mel Anda" msgid "Email:" msgstr "E-mel:" msgid "your_email@example.com" msgstr "your_email@example.com" msgid "" "Your name and email address are only used to set the Last-Translator header " "of GNU gettext files." msgstr "" "Nama dan e-mel alamat anda hanya digunakan untuk menetapkan pengepala Last-" "Translator fail gettext GNU." msgid "Editing" msgstr "Menyunting" msgid "Automatically compile MO file when saving" msgstr "Kumpul fail MO secara automatik semasa menyimpan" msgid "Show summary after catalog update" msgstr "Perlihatkan rumusan selepas mengemaskini katalog" msgid "Check spelling" msgstr "Periksa ejaan" msgid "Always change focus to text input field" msgstr "Sentiasa ubah fokus ke medan input teks" msgid "" "Never let the list of strings take focus. If enabled, you must use Ctrl-" "arrows for keyboard navigation but you can also type text immediately, " "without having to press Tab to change focus." msgstr "" "Jangan biarkan senarai rentetan mengambil fokus. Jika diaktifkan, anda perlu " "gunakan Ctrl-panah untuk navigasi bahkan boleh terus menaip teks, tanpa " "perlu menekan Tab untuk megubah fokus" msgid "Appearance" msgstr "Penampilan" msgid "Use custom list font:" msgstr "Gunakan senarai fon khas:" msgid "Use custom text fields font:" msgstr "Gunakan senarai medan teks khas:" msgid "Change UI language" msgstr "Ubah bahasa UI" #. TRANSLATORS: This is a note appended to "Check spelling" when running on older Windows versions msgid "(requires Windows 8 or newer)" msgstr "(memerlukan Windows 8 atau lebih baru)" msgid "General" msgstr "Umum" msgid "Use translation memory" msgstr "Gunakan memori terjemahan" msgid "Learn From Files…" msgstr "Pelajari Daripada Fail…" msgid "Learn from files…" msgstr "Pelajari daripada fail…" #. TRANSLATORS: This is a button that deletes everything in the translation memory (i.e. clears/resets it). msgid "Reset" msgstr "Tetapkan semula" #. TRANSLATORS: Followed by "match translations within the file" or "pre-translate from TM" msgid "When updating from sources" msgstr "Apabila mengemaskini daripada sumber" #. TRANSLATORS: Preceded by "When updating from sources" msgid "fuzzy match within the file" msgstr "padanan kabur dalam fail" #. TRANSLATORS: Preceded by "When updating from sources" msgid "pre-translate from TM" msgstr "pra-terjemah dari TM" msgid "" "Poedit can attempt to fill in new entries from only previous translations in " "the file or from your entire translation memory. Using the TM won’t be very " "effective if it’s near-empty, but it will get better as you add more " "translations to it." msgstr "" "Poedit boleh mencuba untuk mengisi masukan baru hanya daripada terjemanah " "sebelumnya dalam fail atau dari memori terjemahan keseluruhan anda. " "Penggunaan TM tidak sangat efektif apabila ia hampir kosong, tetapi ia akan " "bertambah baik apabila anda mebambah lebih banyak terjemahan padanya." msgid "Stored translations:" msgstr "Terjemahan tersimpan:" msgid "Database size on disk:" msgstr "Saiz pangkalan data pada cakera:" msgid "Select translation files to import" msgstr "Plih fail terjemahan untuk diimport" msgid "Translation Memory" msgstr "Memori Terjemahan" msgid "Importing translations…" msgstr "Mengimport terjemahan…" msgid "Finalizing…" msgstr "Menyelesaikan…" msgid "Reset translation memory" msgstr "Tetapkan semula memori terjemahan" msgid "Are you sure you want to reset the translation memory?" msgstr "Adakah anda pasti anda mahu mengeset semula memori terjemahan?" msgid "" "Resetting the translation memory will irrevocably delete all stored " "translations from it. You can’t undo this operation." msgstr "" "Mengeset semula memori terjemahan tidak akan memadam semua terjemahan yang " "disimpan daripadanya. Anda tidak dapat membuat asal operasi ini." msgid "Cancel" msgstr "Batal" #. TRANSLATORS: This is abbreviation of "Translation Memory" used in Preferences on macOS. #. Long text looks weird there, too short (like TM) too, but less so. "General" is about ideal #. length there. msgid "TM" msgstr "MT" msgid "" "Source code extractors are used to find translatable strings in the source " "code files and extract them so that they can be translated." msgstr "" "Pengekstrak kod sumber digunakan untuk mencari rentetan yang boleh " "diterjemah dalam fail kod sumber dan mengekstraknya supaya ia boleh " "diterjemahkan." msgid "Custom Extractors:" msgstr "Pengekstrak Khas:" msgid "Custom extractors:" msgstr "Pengekstrak khas:" msgid "Edit…" msgstr "Edit…" msgid "GNU gettext" msgstr "GNU gettext" msgid "" "Supports all programming languages recognized by GNU gettext tools (PHP, C/C+" "+, C#, Perl, Python, Java, JavaScript and others)." msgstr "" "Menyokong semua bahasa pengaturcaraan yang diiktiraf oleh alat gettext GNU " "(PHP, C/C++, C#, Perl, Python, Java, JavaScript dan sebagainya)." msgid "Delete extractor" msgstr "Hapuskan pengekstrak" #, c-format msgid "Are you sure you want to delete the “%s” extractor?" msgstr "Adakah anda pasti anda mahu menghapus extractor \"%s\"?" msgid "Extractors" msgstr "Pengekstrak" msgid "Accounts" msgstr "Akaun" msgid "Automatically check for updates" msgstr "Periksa kemaskini secara automatik" msgid "Include beta versions" msgstr "Termasuk versi beta" msgid "" "Beta versions contain the latest new features and improvements, but may be a " "bit less stable." msgstr "" "Versi beta mengandungi ciri-ciri dan penambahbaikan baru yang terbaru, " "tetapi berkemungkinan kurang stabil sedikit." msgid "Updates" msgstr "Kemaskini" msgid "" "These settings affect internal formatting of PO files. Adjust them if you " "have specific requirements e.g. because of version control." msgstr "" "Tetapan berikut menjejaskan pemformatan dalaman fail PO. Laraskannya jika " "anda mempunyai keperluan khusus misalnya kerana kawalan versi." msgid "Line endings:" msgstr "Garis penamat:" msgid "Unix (recommended)" msgstr "Unix (disarankan)" msgid "Windows" msgstr "Windows" #. TRANSLATORS: Followed by text control for entering number; wraps text at given width msgid "Wrap at:" msgstr "Balut pada:" msgid "Preserve formatting of existing files" msgstr "Pelihara pemformatan fail sedia ada" msgid "Advanced" msgstr "Lanjutan" msgid "Pre-translating…" msgstr "Pra-menterjemahkan…" #, c-format msgid "Pre-translated %u string" msgid_plural "Pre-translated %u strings" msgstr[0] "Pra-terjemah %u rentetan" #. TRANSLATORS: This is a somewhat common term describing the action where #. you apply the translation memory and/or machine translation to all of the #. strings you're translating as the first step, followed by correcting, #. improving etc., i.e. actually translating the strings. This may be tricky #. to express in other languages as simply as in English, but please try to #. keep it similarly concise. Please try to avoid, if possible, describing it #. as "auto-translation" and similar, because such terminology would mislead #. some users into thinking it's all that needs to be done (spoken from #. experience). "Pre-translate" nicely expresses that it's only the step done #. *before* actual translation. msgid "Pre-translate" msgstr "Pra-terjemah" msgid "Only fill in exact matches" msgstr "Hanya masukkan padanan sama" msgid "" "By default, inaccurate results are filled in as well and marked as needing " "work. Check this option to only include accurate matches." msgstr "" msgid "Don’t mark exact matches as needing work" msgstr "Jangan tandakan padanan tepat sebagai perlu dikerjakan" msgid "" "Only enable if you trust the quality of your TM. By default, all matches " "from the TM are marked as needing work and should be reviewed before use." msgstr "" "Dayakan hanya jika anda mempercayai kualiti TM anda. Secara lalai, semua " "padanan daripada TM yang ditandakan sebagai perlu dikerjakan dan hendaklah " "disemak sebelum digunakan." msgid "" "Pre-translation automatically finds exact or fuzzy matches for untranslated " "strings in the translation memory and fills in their translations." msgstr "" #, c-format msgid "%d entry was pre-translated." msgid_plural "%d entries were pre-translated." msgstr[0] "Masukan %d adalah dipra-terjemah." msgid "" "The translations were marked as needing work, because they may be " "inaccurate. You should review them for correctness." msgstr "" msgid "No entries could be pre-translated." msgstr "Tiada masukan boleh dipra-terjemah." msgid "" "The TM doesn’t contain any strings similar to the content of this file. It " "is only effective for semi-automatic translations after Poedit learns enough " "from files that you translated manually." msgstr "" "TM tidak mengandungi sebarang rentetan yang sama dengan kandungan fail ini. " "Ianya hanya berkesan untuk terjemahan separa-automatik selepas Poedit " "belajar dengan cukup dari fail yang anda terjemahkan secara manual." msgid "" "Drag and Drop Folders Here\n" "\n" "or use the + button" msgstr "" "Tarik dan Lepas Folder Di sini\n" "\n" "atau gunakan butang +" msgid "" "Drag and drop folders here\n" "\n" "or use the + button" msgstr "" "Tarik dan lepas folder di sini\n" "\n" "atau gunakan butang +" msgid "Add Folders…" msgstr "Tambah Folder…" msgid "Add folders…" msgstr "Tambah folder…" msgid "Add Files…" msgstr "Tambah Fail…" msgid "Add files…" msgstr "Tambah fail…" msgid "Add Wildcard…" msgstr "Tambah Kad bebas…" msgid "Add wildcard…" msgstr "Tambah kad bebas…" msgid "Paths" msgstr "Laluan" msgid "Excluded paths" msgstr "Laluan Dikecualikan" msgid "Advanced extraction settings" msgstr "Tetapan pengekstrakan lanjutan" msgid "Extract notes for translators from:" msgstr "Ekstrak nota untuk penterjemah dari:" msgid "Comments prefixed with:" msgstr "" msgid "All comments" msgstr "Semua komen" msgid "Additional xgettext flags:" msgstr "Bendera xgettext tambahan:" msgid "Additional keywords" msgstr "Kata kunci tambahan" msgid "Name of the project the translation is for" msgstr "Nama projek terjemahan adalah untuk" msgid "Team name and email address or URL" msgstr "Nama pasukan dan alamat e-mel atau URL" msgid "e.g. nplurals=2; plural=(n > 1);" msgstr "cth. nplurals=2; plural=(n > 1);" msgid "UTF-8 (recommended)" msgstr "UTF-8 (disarankan)" msgid "Please save the file first. This section cannot be edited until then." msgstr "Sila simpan fail dahulu. Seksyen ini tidak boleh diedit buat masa ini." msgid "Not all plural forms are translated." msgstr "Tidak semua bentuk jamak diterjemahkan." msgid "The translation should start as a sentence." msgstr "Terjemahan mestilah dimulakan sebagai satu ayat." msgid "The translation should start with a lowercase character." msgstr "Terjemahan mestilah dimulakan dengan huruf kecil." msgid "The translation doesn’t start with a space." msgstr "Terjemahan tidak dimulakan dengan ruang." msgid "The translation starts with a space, but the source text doesn’t." msgstr "Terjemahan dimulakan dengan ruang, tetapi tidak dengan teks sumber." msgid "The translation is missing a newline at the end." msgstr "Terjemahan tidak mempunyai barisan baru pada pengakhiran." msgid "The translation ends with a newline, but the source text doesn’t." msgstr "" "Terjemahan berakhir dengan barisan baru, tetapi tidak dengan teks sumber." msgid "The translation is missing a space at the end." msgstr "Terjemahan tidak mempunyai ruang pada pengakhiran." msgid "The translation ends with a space, but the source text doesn’t." msgstr "Terjemahan berakhir dengan ruang, tetapi tidak dengan teks sumber." #, c-format msgid "The translation should end with “%s”." msgstr "Terjemahan hendaklah berakhir dengan \"%s\"." #, c-format msgid "The translation should not end with “%s”." msgstr "Terjemahan tidak harus berakhir dengan \"%s\"." #, c-format msgid "The translation ends with “%s”, but the source text ends with “%s”." msgstr "" "Terjemahan itu berakhir dengan \"%s\", tetapi teks sumber berakhir dengan " "\"%s\"." msgid "Comment:" msgstr "Komen:" msgid "OK" msgstr "OK" msgid "C&lear" msgstr "&Lapang" msgid "Clear the comment" msgstr "Lapangkan komen" msgid "New" msgstr "Baru" msgid "Create new translations project" msgstr "Cipta projek terjemahan baru" msgid "Edit" msgstr "Edit" msgid "Edit the project" msgstr "Edit projek" msgid "Delete the project" msgstr "Padam projek" msgid "Update all" msgstr "Kemaskini semua" msgid "Update all catalogs in the project" msgstr "Kemaskini semua katalog dalam projek" msgid "Edit project" msgstr "Edit projek" msgid "Project name:" msgstr "Nama Projek" msgid "Browse" msgstr "Lungsur" msgid "Add directory to the list" msgstr "Tambah direktori pada senarai" msgid "&New…" msgstr "&Baru…" msgid "New from &POT/PO file…" msgstr "Baru dari fail &POT/PO…" msgid "New From &POT/PO File…" msgstr "Baru Dari Fail &POT/PO…" msgid "&Open…" msgstr "&Buka…" msgid "Open Recent" msgstr "Buka Terbaru" msgid "Open from Crowdin…" msgstr "Buka dari Crowdin…" msgid "Open From Crowdin…" msgstr "Buka dari Crowdin…" msgid "&Close" msgstr "&Tutup" msgid "&Save" msgstr "&Simpan" msgid "Save &as…" msgstr "Simpan &sebagai…" msgid "Save &As…" msgstr "Simpan &Sebagai…" msgid "Compile to MO…" msgstr "Kompil ke MO…" msgid "E&xport as HTML…" msgstr "E&ksport sebagai HTML…" msgid "Check for updates…" msgstr "Semak kemas kini…" msgid "&Preferences…" msgstr "&Keutamaan…" msgid "Catalogs &manager" msgstr "&Pegurus katalog" msgid "Catalogs &Manager" msgstr "&Pengurus Katalog" msgid "E&xit" msgstr "K&eluar" msgid "Quit" msgstr "Keluar" msgid "Copy from singular" msgstr "Salin daripada tunggal" msgid "Copy From Singular" msgstr "Salin Daripada Tunggal" msgid "Translation needs &work" msgstr "" msgid "Translation Needs &Work" msgstr "" msgid "Edit &comment" msgstr "Edit &komen" msgid "Edit &Comment" msgstr "Edit &Komen" msgid "Suggestions" msgstr "Cadangan" msgid "&Find…" msgstr "&Cari…" msgid "Replace…" msgstr "Ganti…" msgid "Find next" msgstr "Cari berikut" msgid "Find previous" msgstr "Cari terdahulu" msgid "Find and Replace…" msgstr "Cari dan Ganti…" msgid "Find Next" msgstr "Cari Berikut" msgid "Find Previous" msgstr "Cari Terdahulu" msgid "&Preferences" msgstr "&Keutamaan" msgid "Display entry &IDs" msgstr "Paparan &ID masukan" msgid "Display Entry &IDs" msgstr "Paparan &ID Masukan" msgid "Sort by &file order" msgstr "Susun urutan &fail" msgid "Sort by &File Order" msgstr "Susun dengan Urutan &Fail" msgid "Sort by &source" msgstr "Susun dengan &sumber" msgid "Sort by &Source" msgstr "Susun dengan &Sumber" msgid "Sort by &translation" msgstr "Susun dengan &terjemahan" msgid "Sort by &Translation" msgstr "Susun dengan &Terjemahan" msgid "&Group by context" msgstr "&Kumpulan melalui konteks" msgid "&Group By Context" msgstr "&Kumpulkan Melalui Konteks" msgid "Entries with errors first" msgstr "Kemasukan dengan ralat dahulu" msgid "Entries with Errors First" msgstr "Kemasukan dengan Ralat Dahulu" msgid "&Untranslated entries first" msgstr "&Masukan tidak diterjemah terlebih dahulu" msgid "&Untranslated Entries First" msgstr "&Masukan Belum Diterjemah Terlebih Dahulu" msgid "&Show references" msgstr "&Tunjuk rujukan" msgid "&Show References" msgstr "&Tunjuk Rujukan" msgid "Show sidebar" msgstr "Papar bar sisi" msgid "Show status bar" msgstr "Papar bar status" msgid "C&atalog" msgstr "K&atalog" msgid "&Update from sources" msgstr "&Kemas kini dari sumber" msgid "&Update from Sources" msgstr "&Kemas kini dari Sumber" msgid "Update from &POT file…" msgstr "Kemaskini dari fail &POT…" msgid "Update from &POT File…" msgstr "Kemaskini dari Fail &POT…" msgid "Sync with Crowdin" msgstr "Selaras dengan Crowdin" msgid "Pre-&translate…" msgstr "Pra-terjemah…" msgid "&Purge deleted translations" msgstr "&Singkirkan terjemahan dihapus" msgid "&Purge Deleted Translations" msgstr "&Singkirkan Terjemahan Dihapus" msgid "&Validate translations" msgstr "&Sahkan terjemahan" msgid "&Validate Translations" msgstr "&Sahkan Terjemahan" msgid "&Properties…" msgstr "&Ciri-ciri…" msgid "&Done and next" msgstr "&Selesai dan seterusnya" msgid "&Done and Next" msgstr "&Selesai dan Seterusnya" msgid "&Previous translation" msgstr "&Terjemahan sebelumnya" msgid "&Previous Translation" msgstr "&Terjemahan Sebelumnya" msgid "&Next translation" msgstr "&Terjemahan seterusnya" msgid "&Next Translation" msgstr "&Terjemahan Seterusnya" msgid "P&revious unfinished" msgstr "Te&rdahulu tidak selesai" msgid "P&revious Unfinished" msgstr "Te&rdahulu Tidak Selesai" msgid "Ne&xt unfinished" msgstr "&Selepasnya yang tidak selesai" msgid "Ne&xt Unfinished" msgstr "&Selepasnya yang Tidak Selesai" msgid "Previous plural form" msgstr "Bentuk majmuk yang sebelumnya" msgid "Previous Plural Form" msgstr "Bentuk majmuk yang sebelumnya" msgid "Next plural form" msgstr "Bentuk majmuk yang seterusnya" msgid "Next Plural Form" msgstr "Bentuk majmuk yang seterusnya" msgid "&Online help" msgstr "&Bantuan dalam talian" msgid "&Online Help" msgstr "&Bantuan dalam talian" msgid "&GNU gettext manual" msgstr "Manual &GNU gettext" msgid "&GNU gettext Manual" msgstr "Manual &GNU gettext" msgid "&About Poedit" msgstr "&Mengenai Poedit" msgid "&About" msgstr "&Mengenai" msgid "Extractor setup" msgstr "Persediaan pengekstrak" msgid "List of extensions separated by semicolons (e.g. *.cpp;*.h):" msgstr "Senarai sambungan dipisah oleh tanda ; (contoh: *.cpp,*.h):" msgid "Invocation:" msgstr "Seruan:" msgid "Command to extract translations:" msgstr "Perintah untuk mengekstrak terjemahan:" msgid "" "This is the command used to launch the extractor.\n" "%o expands to the name of output file, %K to list\n" "of keywords, %F to list of input files,\n" "%C to charset flag (see below)." msgstr "" "Ini ialah perintah yang digunakan untuk melancarkan pengekstrak.\n" "%o mengembang ke nama fail output, %K untuk menyenaraikan, \n" "kata kunci, %F untuk menyenaraikan fail input,\n" "%C ke bendera charset (lihat di bawah)." msgid "An item in keywords list:" msgstr "Item dalam senarai kata kunci:" msgid "" "This will be attached to the command line once\n" "for each keyword. %k expands to the keyword." msgstr "" "Ini akan dilampirkan ke garis perintah sekali\n" "untuk setiap kata kunci. %k mengembang kepada kata kunci." msgid "An item in input files list:" msgstr "Item dalam fail senarai masukan:" #, c-format msgid "" "This will be attached to the command line once\n" "for each input file. %f expands to the filename." msgstr "" "Ini akan dilampirkan ke garis perintah sekali\n" "untuk setiap fail input. %f mengembang kepada nama fail." msgid "Source code charset:" msgstr "Set aksara kod sumber:" #, c-format msgid "" "This will be attached to the command line\n" "only if source code charset was given. %c expands to charset value." msgstr "" "Ini akan lampirkan ke garis perintah\n" "hanya jika kod sumber charset telah diberikan. %c mengembang ke nilai " "charset." msgid "Catalog properties" msgstr "Ciri-ciri katalog" msgid "Project name and version:" msgstr "Nama Projek dan versi :" msgid "Language team:" msgstr "Pasukan bahasa:" msgid "Plural forms:" msgstr "Bentuk jamak:" msgid "Use default rules for this language" msgstr "Gunakan peraturan lalai untuk bahasa ini" msgid "Use custom expression" msgstr "Guna ungkapan langganan" msgid "Learn about plural forms" msgstr "Pelajari perihal bentuk kata jamak" msgid "Charset:" msgstr "Charset:" msgid "Advanced Extraction Settings…" msgstr "Tetapan Pengekstrakan Lanjutan…" msgid "Advanced extraction settings…" msgstr "Tetapan pengekstrakan lanjutan…" msgid "Translation Properties" msgstr "Sifat Terjemahan" msgid "Translation properties" msgstr "Sifat terjemahan" msgid "Sources Paths" msgstr "Laluan Sumber" msgid "Sources paths" msgstr "Laluan sumber" msgid "Extract text from source files in the following directories:" msgstr "Ekstrak teks daripada fail sumber di dalam direktori berikut:" msgid "Base path:" msgstr "Laluan asas:" msgid "Sources Keywords" msgstr "Kata kunci Sumber" msgid "Sources keywords" msgstr "Katakunci sumber" msgid "" "Use these keywords (function names) to recognize translatable strings\n" "in source files:" msgstr "" "Gunakan katakunci ini (nama fungsi) untuk mengenali rentetan boleh terjemah\n" "dalam fail sumber:" msgid "Also use default keywords for supported languages" msgstr "Gunakan juga kata kunci lalai untuk bahasa yang disokong" msgid "Learn About Gettext Keywords" msgstr "Pelajari Perihal Kata Kunci Gettext" msgid "Learn about gettext keywords" msgstr "Pelajari perihal katakunci gettext" msgid "Update summary" msgstr "Kemaskini ringkasan" msgid "" "These strings were found in the sources but were not in the catalog.\n" "Poedit will add them to the catalog now." msgstr "" "Rentetan ditemui dalam sumber tetapi tidak di katalog.\n" "Poedit akan menambahnya ke katalog sekarang." msgid "New strings" msgstr "Rentetan baru" msgid "" "These strings are no longer in the sources.\n" "Poedit will remove them from the catalog now." msgstr "" "Rentetan tiada lagi dalam sumber. Poedit\n" "akan membuangnya dari katalog sekarang." msgid "Obsolete strings" msgstr "Rentetan usang" msgid "(0 new, 0 obsolete)" msgstr "(0 baru, 0 usang)" msgid "Open" msgstr "Buka" msgid "Save catalog" msgstr "Simpan katalog" msgid "Validate" msgstr "Pengesahan" msgid "Check for errors in the translation" msgstr "Periksa kesalahan dalam terjemahan" msgid "Update" msgstr "Kemaskini" msgid "Update catalog - synchronize it with sources" msgstr "Kemaskini katalog - segerakkannya dengan sumber" msgid "Sidebar" msgstr "Bar sisi" msgid "Show or hide the sidebar" msgstr "Papar atau sembunyi bar sisi" #. TRANSLATORS: "Previous" as in used in the past, now replaced with newer. msgid "Previous source text:" msgstr "Teks sumber sebelumnya:" msgid "" "The old source text (before it changed during an update) that the now-" "inaccurate translation corresponds to." msgstr "" "Sumber teks lama(sebelum ditukar semasa kemas kini) yang berpadanan " "terjemahan tidak tepat-sekarang." msgid "Notes for translators:" msgstr "Nota untuk penterjemah:" msgid "Add comment" msgstr "Tambah komen" msgid "Add Comment" msgstr "Tambah Komen" msgid "Translation suggestions:" msgstr "Cadangan penterjemahan:" #. TRANSLATORS: This is shown when no translation suggestions can be found in the TM (Windows). msgid "No matches found" msgstr "Tiada padanan ditemui" #. TRANSLATORS: This is shown when no translation suggestions can be found in the TM (macOS, Linux). msgid "No Matches Found" msgstr "Tiada Padanan Ditemui" msgid "This string was found in Poedit’s translation memory." msgstr "Rentetan ini telah didapati dalam memori terjemahan Poedit." msgid "Cannot create temporary directory." msgstr "Tidak dapat mencipta direktori sementara." msgid "Welcome to Poedit" msgstr "Selamat Datang ke Poedit" #. TRANSLATORS: This is version information in about dialog, "%s" will be #. version number when used #, c-format msgid "Version %s" msgstr "Versi %s" msgid "Edit a Translation" msgstr "Edit Terjemahan" msgid "Edit a translation" msgstr "Edit terjemahan" msgid "Open an existing PO file and edit the translation." msgstr "Buka dan edit fail PO sedia ada." msgid "" "Take an existing PO file or POT template and create a new translation from " "it." msgstr "Ambil fail PO atau templat POT dan cipta terjemahan baru daripadanya." msgid "Collaborate on a Translation with Others" msgstr "Bekerjasama dalam Terjemahan dengan Orang lain" msgid "Collaborate on a translation with others" msgstr "Bekerjasama dalam terjemahan dengan orang lain" msgid "" "Download a file from Crowdin project, translate and sync your changes back." msgstr "" "Muat turun fail daripada projek Crowdin, terjemah dan segerakkan perubahan " "anda kembali." msgid "What is Crowdin?" msgstr "Apa itu Crowdin?" msgid "There are no translations. That’s unusual." msgstr "Tida terdapat terjemahan. Ini luar biasa." msgid "" "Translatable entries aren’t added manually in the Gettext system, but are " "automatically extracted\n" "from source code. This way, they stay up to date and accurate.\n" "Translators typically use PO template files (POTs) prepared for them by the " "developer." msgstr "" "Masukan boleh diterjemah tidak ditambah secara manual dalam sistem Gettext, " "tetapi diekstrak secara automatik\n" "daripada kod sumber. Dengan cara ini, ianya akan sentiasa dikemaskini dan " "jitu.\n" "Penterjemah kebiasaannya menggunakan fail templat PO (POT) yang disediakan " "untuk mereka oleh pembangun." msgid "(Learn more about GNU gettext)" msgstr "(Ketahui lebih lanjut mengenai GNU gettext)" msgid "The simplest way to fill this catalog is to update it from a POT:" msgstr "" "Cara paling mudah untuk mengisi katalog ini adalah dengan mengemaskini " "daripada POT:" msgid "Update from POT" msgstr "Kemaskini dari POT" msgid "Take translatable strings from an existing POT template." msgstr "Ambil rentetan boleh diterjemah daripada templat POT sedia ada." msgid "" "You can also extract translatable strings directly from the source code:" msgstr "" "Anda boleh ekstrak rentetan boleh diterjemah secara terus daripada kod " "sumber:" msgid "Extract from sources" msgstr "Ekstrak daripada sumber" msgid "Configure source code extraction in Properties." msgstr "Konfigur pengekstrakan kod sumber pada Ciri-ciri." msgid "Sync" msgstr "Segerak" msgid "Synchronize the translation with Crowdin" msgstr "Menyegerakkan terjemahan dengan Crowdin" #. TRANSLATORS: This is titlebar of about dialog, "%s" is application name #. ("Poedit" here, but please use "%s") #, c-format msgid "About %s" msgstr "Mengenai %s" #. TRANSLATORS: Title of the preferences window on Windows and Linux. "%s" is replaced with "Poedit" when running. #, c-format msgid "%s Preferences" msgstr "%s Keutamaan" #. TRANSLATORS: macOS item in app menu msgid "Services" msgstr "Perkhidmatan" #. TRANSLATORS: macOS item in app menu, %s is replaced with "Poedit" #, c-format msgid "Hide %s" msgstr "Sembunyi %s" #. TRANSLATORS: macOS item in app menu msgid "Hide Others" msgstr "Sembunyi Lain" #. TRANSLATORS: macOS item in app menu msgid "Show All" msgstr "Tunjuk Semua" #. TRANSLATORS: macOS item in app menu, %s is replaced with "Poedit" #, c-format msgid "Quit %s" msgstr "Keluar dari %s" #. TRANSLATORS: macOS item in app menu msgid "Preferences…" msgstr "Keutamaan…" msgid "Preferences..." msgstr "Keutamaan..." #. TRANSLATORS: Title of a category in Windows task menu (right-click icon in taskbar) msgid "Recent" msgstr "Terbaru" #. TRANSLATORS: Title of a category in Windows task menu (right-click icon in taskbar) msgid "Frequent" msgstr "Kerap" msgid "&Apply" msgstr "&Gunakan" msgid "Apply" msgstr "Gunakan" msgid "&Back" msgstr "&Kembali" msgid "Back" msgstr "Kembali" msgid "&Cancel" msgstr "&Batal" msgid "&Clear" msgstr "&Buang" msgid "Clear" msgstr "Buang" msgid "Copy" msgstr "Salin" msgid "Cu&t" msgstr "Poton&g" msgid "Cut" msgstr "Potong" msgid "&Delete" msgstr "&Padam" msgid "&Quit" msgstr "&Keluar" msgid "File" msgstr "Fail" msgid "Help" msgstr "Sokongan" msgid "&New" msgstr "&Baru" msgid "&No" msgstr "&Tidak" msgid "No" msgstr "Tidak" msgid "&OK" msgstr "&OK" msgid "Open…" msgstr "Buka…" msgid "&Open..." msgstr "&Buka..." msgid "Open..." msgstr "Buka..." msgid "&Paste" msgstr "&Tampal" msgid "Paste" msgstr "Tampal" msgid "Preferences" msgstr "Keutamaan" msgid "&Redo" msgstr "&Buat Semula" msgid "Refresh" msgstr "Segar semula" msgid "&Save as" msgstr "&Simpan sebagai" msgid "Save as" msgstr "Simpan sebagai" msgid "Select &All" msgstr "Pilih &Semua" msgid "Select All" msgstr "Pilih Semua" msgid "&Undo" msgstr "&Buat Asal" msgid "&Yes" msgstr "&Ya" msgid "Yes" msgstr "Ya" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Shift+" msgstr "Shift+" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Enter" msgstr "Enter" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Up" msgstr "Up" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Down" msgstr "Down" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Left" msgstr "Kiri" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Right" msgstr "Kanan" #. TRANSLATORS: Keyboard shortcut, must correspond to translation of "Ctrl+" msgid "ctrl" msgstr "ctrl" #. TRANSLATORS: Keyboard shortcut, must correspond to translation of "Alt+" msgid "alt" msgstr "alt" #. TRANSLATORS: Keyboard shortcut, must correspond to translation of "Shift+" msgid "shift" msgstr "shift" poedit-2.0.6/locales/nb.mo0000664000372000037200000013622513230132042012301 00000000000000P%1 1 11<11J 2gW2 22 22 222 3333%3+333B3Q3W3]3f3z333333333333 3 44 4)4 04=4M4c4y44444444445 5(5D5Y5n55555555 6 '6:36:n6 666 6 666 6 7 #707?7O7c7~77777 71898'>8f88 8878689)=9g9 l9]w99A9I*:t:{:; ;;";:; U;`;.h;;;;;;;;<*<F<#[<<<<<<<<(<(=7= R=s=|== ==/= = >>#>9>L>b>2>>>>> ?)???????@@@ 2@?@R@Ee@"@?@ AA*.A YAfAyAK~A"A5A#B)BHAH HHI 'IHI PI ]IiI"nI;I(IIJ&J 5J ?JMJjJ ~JJJJJ JJK:K PK<^K.KKKKLL*%LPLVLgL xL LLJMNMgM MMMMM#MM'M$N7DN$|N%NNNNNNOOOO O2O P#P9PNP]PlPtP|PPPPPPPPQQQnQERZR>aR RRRR@RS-TzSzjzzzzzzzz{9{9M{ {{{{{{{{||+|>|T|c||+|!|+|}}4+}`}+e}%}#}}}2}= ~!^~(~~ ~c~ A/Eq S\a&i-Ā)!; ]j'Ł߁  !+=Oa&f&'ʂ .>-\ ǃك:Kd| o u؅ޅH2{8 Άن/ #2V6"= )<Ng Ɉш׈8o#s͉0Ar ˊЊԊ$ 4.)c,#));ei'\   )6I\p ύ   2=C LXj|3Pl  ď8(G c ny Ðא#73?sA-ȑ/Ia*iǒ֒| ̓.&)9*c<'˔*7;MP . C6Q ז );Kax&l,;՘Aޘ 1;B>]IG+s 6DS+dҜ  ) 1<C L X bp x  - ߝ  ž ̞ ٞ  +C [e v ߟ,(< eoxĠ ܠ 1Li}{'GP hs   ʢFϢ2CSj ' %Ҥ 7%O,uN5**Ue8ƧH KR[KFv^Tժ,*@WDBݫ+ /L|$.)S+}1Hۭ$/Sݮj1V-de=O=P7pƲ]7c)>Qo׵ ̶޶ %0Ib s ~G9"T'w&^Ƹ%=F _j Ĺҹع @5:;p 4oty}/'ڻ&.H N\!sD}],6 9BW6tC3H>C'# )h?*Kq#-0^aG2zFYblx&2LADZ.EwPi=Ab[kv @4uh~ uL@|pnf.nTN? QI2:qOKcajd F!p ]U>T+rXi=J%Vxz51^s4 NH/F"8/XJ`om #UwQk :Gs$ 8jL!~I1,(<D-9B>|;$H(E?g<y!dYgIo \ <eN+rM5&cM5 :"K-A+EmZ7C"603B $%RfRVeyOG*S@ M,4}_{O%W91J)S[`' 7)v &;*{(l_.03=\7P8/t';P (modified) (unsaved)%d entry%d entries%d entry was pre-translated.%d entries were pre-translated.%d error%d errors%d issue with the translation found.%d issues with the translation found.%i line of file “%s” was not loaded correctly.%i lines of file “%s” were not loaded correctly.%s Format%s Preferences%s format&About&About Poedit&Apply&Back&Bookmarks&Cancel&Clear&Close&Copy&Delete&Done and Next&Done and next&Edit&File&Find…&GNU gettext Manual&GNU gettext manual&Go&Group By Context&Group by context&Help&New&New…&Next >&Next Translation&Next translation&No&OK&Online Help&Online help&Open...&Open…&Paste&Preferences&Preferences…&Previous Translation&Previous translation&Properties…&Purge Deleted Translations&Purge deleted translations&Quit&Redo&Replace&Save&Save as&Show References&Show references&Undo&Untranslated Entries First&Untranslated entries first&Update from Sources&Update from sources&Validate Translations&Validate translations&View&Yes(0 new, 0 obsolete)(Learn more about GNU gettext)(New: %i, obsolete: %i)(Use default language)(requires Windows 8 or newer)< &PreviousDrag and Drop Folders Here or use the + buttonDrag and drop folders here or use the + buttonAbout %sAccountsAdd CommentAdd Files…Add Folders…Add Wildcard…Add commentAdd directory to the listAdd files…Add folders…Add wildcard…Additional keywordsAdditional xgettext flags:AdvancedAdvanced Extraction Settings…Advanced extraction settingsAdvanced extraction settings…All Translation FilesAll commentsAlso use default keywords for supported languagesAlt+Always change focus to text input fieldAn item in input files list:An item in keywords list:AppearanceApplyAre you sure you want to delete the “%s” extractor?Are you sure you want to reset the translation memory?Automatically check for updatesAutomatically compile MO file when savingBackBase path:Beta versions contain the latest new features and improvements, but may be a bit less stable.Bring All to FrontBroken catalog file: plural form msgstr used without msgid_pluralBroken catalog file: singular form msgstr used together with msgid_pluralBrowseBy default, inaccurate results are filled in as well and marked as needing work. Check this option to only include accurate matches.C&atalogC&learCancelCannot create temporary directory.Cannot execute program: %sCapitalizeCatalogCatalog modified. Do you want to save changes?Catalog propertiesCatalogs &ManagerCatalogs &managerCatalogs ManagerChange UI languageCharset:Check Document NowCheck Grammar With SpellingCheck Spelling While TypingCheck for Updates…Check for errors in the translationCheck for updates…Check spellingClearClear TranslationClear the commentClear translationCloseCollaborate on a Translation with OthersCollaborate on a translation with othersCollecting source files…Command to extract translations:Comment:Comments prefixed with:Compile to MO…Compile to…Compiled Translation FilesConfigure source code extraction in Properties.ConfirmationCopyCopy From SingularCopy from Source TextCopy from singularCopy from source textCorrect Spelling AutomaticallyCouldn’t load file %s, it is probably corrupted.Couldn’t save file %s.Create New TranslationCreate new translationCreate new translations projectCrowdin errorCrowdin is an online localization management platform and collaborative translation tool. Poedit can seamlessly sync PO files managed at Crowdin.Ctrl+Cu&tCustom Extractors:Custom extractors:CutDatabase size on disk:DeleteDelete extractorDelete the projectDirectories:Display Entry &IDsDisplay entry &IDsDo you really want to do mass update of all catalogs in this project?Do you want to delete the project?Do you want to remove all translations that are no longer used?Don’t SaveDon’t Show AgainDon’t mark exact matches as needing workDon’t saveDon’t show againDownDownload a file from Crowdin project, translate and sync your changes back.Downloading latest translations…Downloading translations is disabled in this project.E&xitE&xport as HTML…EditEdit &CommentEdit &commentEdit CommentEdit a TranslationEdit a translationEdit commentEdit projectEdit the projectEditingEdit…Email:EnterEnter Full ScreenEntries in the catalog are probably incorrect.Entries in this catalog have different plural forms count from what catalog’s Plural-Forms header saysEntries with Errors FirstEntries with errors firstEntries with errors were marked in red in the list. Details of the error will be shown when you select such an entry.Error loading message catalog file “%s”.Error opening fileError opening file %s!Error saving catalogErrorsEverythingExcluded pathsExport as…Extract from sourcesExtract notes for translators from:Extract text from source files in the following directories:Extracting translatable strings…Extractor setupExtractorsFailed command: %sFailed to communicate with Poedit process.Failed to load extracted catalog.Failed to merge gettext catalogs.Failed to update translation memory: %sFileFile “%s” doesn’t exist.File “%s” is not a message catalog.File “%s” is read-only and cannot be saved. Please save it under different name.File:Finalizing…FindFind NextFind PreviousFind and Replace…Find in commentsFind in source textsFind in translationsFind nextFind previousFix LanguageFix languageFix the HeaderFix the headerForm %iFrequentGNU gettextGeneralGo to Bookmark %iGo to bookmark %iHTML FilesHelpHide %sHide OthersHide SidebarHide Status BarHide this notification messageIDIf you continue with purging, all translations marked as deleted will be permanently removed. You will have to translate them again if they are added back in the future.Ignore caseImporting translations…Include beta versionsInformation about the translatorInstallInvalid fileInvocation:KeepLanguage Code or Name (e.g. en_GB)Language of the translation is the same as source language.Language of the translation isn’t set.Language of the translation:Language selectionLanguage team:Language:Last modifiedLearn About Gettext KeywordsLearn From Files…Learn MoreLearn More About CrowdinLearn about gettext keywordsLearn about plural formsLearn from files…Learn moreLearn more about CrowdinLeftLine %d of file “%s” is corrupted (not valid %s data).Line endings:List of extensions separated by semicolons (e.g. *.cpp;*.h):MO files can’t be directly edited in Poedit.Make Lower CaseMake Upper CaseMalformed header: “%s”Merging differences…MinimizeName of the project the translation is forName:Ne&xt UnfinishedNe&xt unfinishedNeeds WorkNeeds workNever let the list of strings take focus. If enabled, you must use Ctrl-arrows for keyboard navigation but you can also type text immediately, without having to press Tab to change focus.NewNew From &POT/PO File…New from &POT/PO file…New stringsNext Plural FormNext plural formNoNo Matches FoundNo entries could be pre-translated.No matches foundNo problems with the translation found.No references for the selected item.No translation projects listed in your Crowdin account.Not all plural forms are translated.Not authorized, please sign in again.Notes for translators:OKObsolete stringsOneOnly enable if you trust the quality of your TM. By default, all matches from the TM are marked as needing work and should be reviewed before use.Only fill in exact matchesOpenOpen Crowdin translationOpen From Crowdin…Open RecentOpen an existing PO file and edit the translation.Open catalogOpen catalog templateOpen from Crowdin…Open in EditorOpen in editorOpen...Open…OptionsOtherP&revious UnfinishedP&revious unfinishedPO TranslationPO Translation FilesPOT Translation TemplatesPOT files are only templates and don’t contain any translations themselves. To make a translation, create a new PO file based on the template.PastePaste and Match StylePathsPlease open and edit the corresponding PO file instead. When you save it, the MO file will be updated as well.Please save the file first. This section cannot be edited until then.PluralPlural forms expression used by the catalog is unusual for %s.Plural forms:Plural:PoeditPoedit - Catalogs managerPoedit automatically fixed invalid content in the file “%s”.Poedit can attempt to fill in new entries from only previous translations in the file or from your entire translation memory. Using the TM won’t be very effective if it’s near-empty, but it will get better as you add more translations to it.Poedit is an easy to use translations editor.Pre-&translate…Pre-translatePre-translatedPre-translated %u stringPre-translated %u stringsPre-translating…Pre-translation automatically finds exact or fuzzy matches for untranslated strings in the translation memory and fills in their translations.PreferencesPreferences...Preferences…Preserve formatting of existing filesPrevious Plural FormPrevious plural formPrevious source text:Project name and version:Project name:Project:PurgePurge deleted translationsQuitQuit %sRecentRedoReferences:RefreshRemaining: %dReplaceReplace &AllReplace &allReplacement stringReplace…Required header Plural-Forms is missing.ResetReset translation memoryResetting the translation memory will irrevocably delete all stored translations from it. You can’t undo this operation.ReviewRightSaveSave &As…Save &as…Save asSave as…Save catalogSave changesSelect &AllSelect AllSelect directorySelect translation files to importSelect your preferred languageServicesSet Bookmark %iSet LanguageSet bookmark %iSet languageShift+Show AllShow SidebarShow Spelling and GrammarShow Status BarShow SubstitutionsShow or hide the sidebarShow sidebarShow status barShow summary after catalog updateSidebarSign InSign OutSign inSign in to CrowdinSign outSigned in as:SingularSingular:Smart Copy/PasteSmart DashesSmart LinksSmart QuotesSort by &File OrderSort by &SourceSort by &TranslationSort by &file orderSort by &sourceSort by &translationSource code charset:Source code extractors are used to find translatable strings in the source code files and extract them so that they can be translated.Source code not available.Source fileSource file occurrence:Source textSource text — %sSource text:Sources KeywordsSources PathsSources keywordsSources pathsSpeechSpellchecking is disabled, because the dictionary for %s isn’t installed.Spelling and GrammarStart SpeakingStop SpeakingStored translations:String to findSubstitutionsSuggestionsSuggestions are not available if the translation language is not set correctly. Other features, such as plural forms, may be affected as well.Supports all programming languages recognized by GNU gettext tools (PHP, C/C++, C#, Perl, Python, Java, JavaScript and others).SyncSync with CrowdinSynchronize the translation with CrowdinSyncingSyncing errorSyncing with %s failed.Syncing with %s…Syncing with Crowdin failed.Syntax error in Plural-Forms header ("%s").TMTake an existing PO file or POT template and create a new translation from it.Take translatable strings from an existing POT template.Team name and email address or URLText ReplacementThe TM doesn’t contain any strings similar to the content of this file. It is only effective for semi-automatic translations after Poedit learns enough from files that you translated manually.The catalog couldn’t be saved in “%s” charset as specified in catalog settings. It was saved in UTF-8 instead and the setting was modified accordingly.The file cannot be compiled into the MO format and used.The file cannot be opened.The file contained duplicate items, which is not allowed in PO files and would prevent the file from being used. Poedit fixed the issue, but you should review translations of any items marked as needing work and correct them if necessary.The file may be either corrupted or in a format not recognized by Poedit.The file was compiled into the MO format, but it will probably not work correctly.The file was saved safely and compiled into the MO format, but it will probably not work correctly.The file was saved safely, but it cannot be compiled into the MO format and used.The file was saved safely.The old source text (before it changed during an update) that the now-inaccurate translation corresponds to.The simplest way to fill this catalog is to update it from a POT:The translation doesn’t start with a space.The translation ends with a newline, but the source text doesn’t.The translation ends with a space, but the source text doesn’t.The translation ends with “%s”, but the source text ends with “%s”.The translation is missing a newline at the end.The translation is missing a space at the end.The translation is ready for use, but %d entry is not translated yet.The translation is ready for use, but %d entries are not translated yet.The translation is ready for use.The translation should end with “%s”.The translation should not end with “%s”.The translation should start as a sentence.The translation should start with a lowercase character.The translation starts with a space, but the source text doesn’t.The translations were marked as needing work, because they may be inaccurate. You should review them for correctness.There are no translations. That’s unusual.There was a problem formatting the file nicely (but it was saved all right).There were errors when loading the catalog. Some data may be missing or corrupted as the result.These settings affect internal formatting of PO files. Adjust them if you have specific requirements e.g. because of version control.These strings are no longer in the sources. Poedit will remove them from the catalog now.These strings were found in the sources but were not in the catalog. Poedit will add them to the catalog now.This catalog has entries with plural forms, but doesn’t have Plural-Forms header configured.This file can only be edited in Crowdin’s web interface.This is the command used to launch the extractor. %o expands to the name of output file, %K to list of keywords, %F to list of input files, %C to charset flag (see below).This project has no files that can be translated in Poedit.This string was found in Poedit’s translation memory.This will be attached to the command line only if source code charset was given. %c expands to charset value.This will be attached to the command line once for each input file. %f expands to the filename.This will be attached to the command line once for each keyword. %k expands to the keyword.TotalTransformationsTranslatable entries aren’t added manually in the Gettext system, but are automatically extracted from source code. This way, they stay up to date and accurate. Translators typically use PO template files (POTs) prepared for them by the developer.Translated: %d of %d (%d %%)Translation LanguageTranslation MemoryTranslation Needs &WorkTranslation PropertiesTranslation needs &workTranslation propertiesTranslation suggestions:Translation — %sTranslation:Translations couldn’t be updated from the source code, because no code was found in the location specified in the catalog’s Properties.TwoUTF-8 (recommended)UndoUnhandled exception occurred: %sUnix (recommended)UntransUpUpdateUpdate allUpdate all catalogs in the projectUpdate catalog - synchronize it with sourcesUpdate from &POT File…Update from &POT file…Update from POTUpdate summaryUpdatesUpdating catalogUpdating failedUpdating the catalog failed. Click on 'Details >>' for details.Updating user information…Uploading translations…Use custom expressionUse custom list font:Use custom text fields font:Use default rules for this languageUse these keywords (function names) to recognize translatable strings in source files:Use translation memoryValidateValidation resultsVersion %sWaiting for authentication…Welcome to PoeditWhat is Crowdin?When updating from sourcesWhole words onlyWindowWindowsWrap aroundWrap at:YesYou can also extract translatable strings directly from the source code:You can’t drop more than one file on Poedit window.You must restart Poedit for this change to take effect.Your NameYour changes will be lost if you don’t save them.Your name and email address are only used to set the Last-Translator header of GNU gettext files.ZeroZoomaltctrldon’t delete temporary files (for debugging)e.g. nplurals=2; plural=(n > 1);fuzzy match within the filego to item at given line numberhandle a poedit:// URIpre-translate from TMshiftunknown languageyour_email@example.com“%s” is not a valid POT file.Project-Id-Version: poedit Report-Msgid-Bugs-To: help@poedit.net POT-Creation-Date: 2017-12-05 15:52+0100 PO-Revision-Date: 2017-12-05 09:51-0500 Last-Translator: vslavik Language-Team: Norwegian Bokmal Language: nb_NO MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=(n != 1); X-Generator: crowdin.com X-Crowdin-Project: poedit X-Crowdin-Language: nb X-Crowdin-File: /locales/poedit.pot (endret) (ulagret)%d oppføring%d oppføringer%d oppføring ble forhånds-oversatt.%d oppføringer ble forhånds-oversatt.%d feil%d feil%d problem med oversettelsen funnet.%d problemer med oversettelsen funnet.linje %i i filen '%s' ble ikke riktig lastet inn.linjene %i i filen '%s' ble ikke riktig lastet inn.%s-format%s preferanser%s-formatOm&Om PoeditBrukTil&bake&BokmerkerAvbrytTøm&AvsluttKopier&Slett&Utført og nesteUtført og neste&Rediger&Fil&Søk…&GNU gettext-dokumentasjon&GNU gettext-dokumentasjon&Gå&Sorter etter sammenheng&Sorter etter sammenheng&Hjelp&Ny&Ny…&Neste →&Neste oversettelse&Neste oversettelse&Nei&OKHjelp på nettHjelp på nett&Åpne ...&Åpne…&Lim inn&Innstillinger&Innstillinger…Tidligere oversettelse&Tidligere oversettelse&Egenskaper…Fjern slettede oversettelser&Fjern slettede oversettelser&AvsluttGjø&r om&ErstattLa&greLagre &somVi&s referanser&Vis referanser&Angre&Uoversatte poster først&Uoversatte poster førstOppdater fra kilde&Oppdater fra kilden&Valider oversettelser&Valider oversettelser&VisJa(0 nye, 0 utgåtte)(Lær mer om GNU gettext)(Ny: %i, foreldet: %i)(Bruk standard språk)(krever Windows 8 eller nyere)← &TidligereDra og slipp mapper her eller bruk + knappenDra og slipp mapper her eller bruk + knappenOm %sKontoerLegg til kommentarLegg til filer…Legg til mapper…Legg til jokertegn…Legg til kommentarLegg katalog til listaLegg til filer…Legg til mapper…Legg til jokertegn…Flere søkeordYtterligere xgettext-flagg:AvansertAvanserte innstillinger for eksportering…Avanserte utvinningsinnstillingerAvanserte innstillinger for eksportering…Alle oversettelsesfilerAlle kommentarerBruk forvalgte nøkkelord også for støttede språkAlt+&Fokuser automatisk på oversettelsesfeltetEt element i lista over inndatafiler:Et element i lista over nøkkelord:UtseendeLegg tilEr du sikker på at du vil slette "%s" ekstraktor?Er du sikker på at du vil tilbakestille oversettelsesminnet?Automatisk se etter oppdateringerAutomatisk kompiler MO-filen ved lagringTilbake&Grunnsti:Beta-versjoner inneholder de nyeste funksjonene og forbedringene, men kan være litt mindre stabil.Plasser fremstØdelagt katalogfil: flertallsform msgstr brukt uten msgid_pluralØdelagt katalogfil: entallsform msgstr brukt sammen med msgid_pluralBla &gjennomSom forvalg er unøyaktige resultater utfylt samt merket som Trenger arbeid. Huk av dette alternativet for å bbare inkludere nøyaktig treff.K&atalogTøm&AvbrytKan ikke opprette midlertidig katalog.Kan ikke kjøre program: %sStor forbokstavKatalogKatalogen er endret. Vil du lagre endringene?KatalogegenskaperKatalog&behandlerKatalog&håndtererKatalogbehandlingSett språk for brukergrensesnitt&Tegnkoding:Sjekk dokumentet nåKontroller grammatikk i stavekontrollenStavekontroll mens du skriverSe etter oppdateringer…Se etter feil i oversettelseSe etter oppdateringer…StavesjekkKlargjørTøm oversettelseFjern kommentarenTøm oversettelseLukkSamarbeid om en oversettelse med andreSamarbeid om en oversettelse med andreSamler kildefilene…Kommando for å pakke ut oversettelser:Kommentar:Kommentarer som innledes med:Kompiler til MO…Kompiler til…Kompilerte oversettelsesfilerKonfigurer kildekodeutvinningen i Egenskaper.BekreftelseKopierKopier fra entallKopier fra kildetekstenKopier fra entallKopier fra kildetekstenKorrigere stavefeil automatiskKunne ikke laste filen %s. Den er mest sannsynlig korrupt.Kunne ikke lagre fil %s.Opprett ny oversettelseOpprett ny oversettelseLag nytt oversettelsesprosjektCrowdin-feilCrowdin er en plattform for lokaliseringsbehandling og et samarbeidende oversettelsesverktøy på nett. Poedit kan sømløst synkronisere PO-filer som håndteres på Crowdin.Ctrl+Klipp &utEgendefinerte utpakkere:Egendefinerte utpakkere:Klipp utDatabasestørrelsen på disk:SlettSlett ekstraktorSlett prosjektMapper:Vis oppførings-&IDerVis oppførings-&IDerVil du virkelig gjøre masseoppdatering av alle katalogene i prosjektet?Vil du slette prosjektet?Vil du fjerne alle oversettelser som ikke lenger brukes?Ikke lagreIkke vis igjenIkke marker nøyaktige treff som Trenger arbeidIkke lagreIkke vis igjenNedLast ned en fil fra Crowdin-prosjekt, oversett og synkroniser endringene dine tilbake.Laster ned nyeste oversettelser...Nedlasting av oversettelser er deaktivert i dette prosjektet.AvsluttE&ksporter som HTML…&RedigerRediger &kommentar&Rediger kommentarRediger kommentarRedigér en oversettelseRediger en oversettelseRediger kommentarRediger prosjektRediger prosjektRedigeringRediger…E-post:SkrivGå til fullskjermOppføringene i katalogen er sannsynligvis ikke i orden.Oppføringer i denne katalogen har forskjellige flertallsformer enn hva hodet i mappens flertallsformer tilsierOppføringer med feil førstOppføringer med feil førstOppføringer med feil ble markert med rødt i listen. Detaljer om feilen vises når du velger en sådan oppføring.Feil under lasting av meldingskatalogfilen "%s".Feil under åpning av filenFeil ved åpning av fila «%s».Feil ved lagring av katalogFeilAltEkskluderte banerEksporter som…Utdrag fra kilderHent ut notater for oversettere fra:Trekk ut tekst fra kildefiler i følgende kataloger:Trekker ut oversettbare tekst-strenger…Utpakker-oppsettUtpakkerKommandoen mislyktes: %sKunne ikke kommunisere med Poedit-prosessen.Klarte ikke laste utpakket katalog.Klarte ikke slå sammen gettex-kataloger.Kan ikke oppdatere oversettingsminnet: %sFilFilen "%s" finnes ikke.Filen "%s" er ikke en meldings-katalog.Filen "%s" er skrivebeskyttet og kan ikke lagres. Vennligst lagre filen under et annet navn.Fil:Fullfører…FinnFinn nesteFinn forrigeSøk og erstatt…Finn i kommentarerFinn i kildeteksterFinn i oversettelserFinn nesteFinn forrigeRett opp språkRett opp språkReparer prefiksenReparer prefiksenForm %iGjentakendeGNU gettextGenereltGå til bokmerke %iGå til bokmerke %iHTML-filerHjelpSkjul %sSkjul andreSkjul sidepaneletSkjul statuslinjeSkjul denne meldingenIDHvis du fortsetter med rensingen, vil alle oversettelser merket som slettet fjernes permanent. Du må oversette dem igjen hvis de legges tilbake i fremtiden.Ignorer små/STORE bokstaverImporterer oversettelser…Inkluder betaversjonerInformasjon om oversetterenInstallerUgyldig filStart: BeholdSpråkkode eller navn (f.eks no)Språket i oversettelsen er det samme som kildespråket.Språket for oversettelsen er ikke satt.Språket til oversettelsen:SpråkvalgSpråklag:Språk:Sist endretLær om Gettext-nøkkelordLær fra filer…Lær merLær mer om CrowdinLær om gettext søkeordLær om flertallsformerLær fra filer…Lær merLær mer om CrowdinVenstreLinje %d i filen "%s" er korrupt (ugyldig %s data).Linjeavslutninger:Liste over etternavn skilt med semikolon (f.eks. «*.cpp; *.h»):MO-filer kan ikke redigeres direkte i Poedit.Gjør om til små bokstaverGjør om til store bokstaverMisformet topptekst: "%s"Fletter forskjellene…MinimerNavnet på prosjektet oversettelsen er forNavn:Neste uferdigeNeste uferdigeTrenger arbeidTrenger arbeidLa aldri tekstlisten få fokus. Du må bruke Ctrl + piltast for å bevege deg mellom tekstene, men du kan også skrive direkte, uten å måtte trykke på Tab først.&NyNy fra &POT/PO fil…Ny fra &POT/PO fil…Nye teksterNeste flertallsformNeste flertallsformNeiIngen treff funnetIngen oppføringer kan bli forhånds-oversatt.Ingen treff funnetIngen problemer med oversettelsen funnet.Ingen referanser for det valgte elementet.Ingen oversettelsesprosjekter er listet i din Crowdin-konto.Ikke alle flertallsformer er oversatte.Ikke autorisert, vennligst logg inn igjen.Notater for oversettere:&OKUtgåtte strengerEnBare skru på dette hvis du stoler på kvaliteten på ditt OM. Som forvalg, blir alle treff fra OM markert som Trenger arbeid, og bør ses over før de brukes.Fyll kun ut nøyaktige treffÅpneÅpne Crowdin-oversettelseÅpne fra Crowdin…Åpne senesteÅpne en eksisterende PO-fil og rediger oversettelsen.Åpne katalogÅpne katalogmalÅpne fra Crowdin…Åpne i redigeringsprogramÅpne i redigeringsprogramÅpne...Åpne…AlternativerAndreFo&rrige uferdigeFo&rrige uferdigePO-oversettelsePO oversettelsesfilerPOT OversettelsesmalerPOT-filer er bare maler og inneholder ikke noen oversettelser i seg selv. For å lage en oversettelse, opprett en ny PO-fil basert på malen.Lim innLim og samsvar med stilStierVennligst åpne og rediger den tilsvarende PO-filen i stedet. Når du lagrer den, oppdateres MO-filen også.Lagre filen først. Denne delen kan ikke redigeres før da.FlertallFlertallsformuttrykket som brukes av katalogen er uvanlig for %s.Flertallsformer:Flertall:PoeditPoedit - KataloghåndtererPoedit rettet automatisk opp ugyldig innhold i filen “%s”.Poedit kan prøve å fylle inn nye oppføringer ved bruk av tidligere oversettelser i fila, eller fra hele ditt oversettelsesminne. Bruk av OM vil ikke være særlig effektivt, siden den nesten er tom, men det bedrer seg etterhvert som oversettelser blir lagt til.Poedit er et redigeringsprogram for oversettelser som er enkelt å bruke.Forhånds&oversett…Forhånds-oversettForhånds-oversattForhånds-oversatte %u tekststrengForhånds-oversatte %u tekststrengerForhånds-oversetter…Forhånds-oversettelse vil automatisk finne eksakte eller vilkårlige sammensettinger for uoversatte strenger i oversettelses-minnet og fyller deretter ut oversettelsene.InnstillingerPreferanser...Innstillinger…Beholde formateringen av eksisterende filerForrige flertallsformForrige flertallsformTidligere kildetekst:&Prosjektnavn og -versjon:Prosjektnavn:Prosjekt:TømmeFjern slettede oversettelserAvsluttAvslutt %sNyligeGjør omReferanser:OppdatérGjenstår: %dErstattErstatt &alleErstatt &alleErstatningsstrengErstatt…Den påkrevde prefiksen Plural-Forms mangler.TilbakestillTilbakestill oversettingsminnetÅ tilbakestille oversettelsesminnet vil ugjenkallelig slette alle lagrede oversettelser fra den. Du kan ikke angre operasjonen.GjennomgangHøyreLagreLagre &som…Lagre &som…Lagre somLagre som…Lagre katalogLagre endringer&Merk alleMerk alleVelg mappeVelg oversettelsesfiler som skal importeresVelg foretrukket språkTjenesterAngi bokmerke %iAngi språkAngi bokmerke %iAngi språkShift+Vis alleVis sidepaneletVis stavekontroll og grammatikkVis statuslinjeVis erstatningerVis eller skjul sidepaneletVis sidepaneletVis statuslinje&Vis sammendrag etter katalogoppdateringSidepanelLogg innLogg utLogg innLogg inn på CrowdinLogg utPålogget som:EntallEntall:Enkel Kopiering/Lim innEnkle punkterEnkle lenkerApostrofSorter etter &filrekkefølgeSorter etter &kildeSorter etter overse&ttelseSorter etter &filrekkefølgeSorter etter &kildeSorter etter overse&ttelseKildekodetegnsett:Kildekodeutpakkere brukes til å finne oversettbare strenger i kildekodefiler og å pakke dem ut slik at de kan oversettes.Kildekode er ikke tilgjengelig.KildefilForekomst i kildefilen:KildetekstKildetekst — %sKildetekst:Kilde-nøkkelordKildestierKilder nøkkelordKildebanerTaleStavekontroll er deaktivert fordi ordlisten for %s ikke er installert.Stavekontroll og grammatikkBegynn å snakkeSlutt å snakkeLagrede oversettelser:Strengen som skal finnesErstatningerForslagForslag er ikke tilgjengelig hvis oversettelsespråket ikke er riktig angitt. Andre funksjoner, for eksempel flertallsformer, påvirkes også.Støtter alle programmeringsspråk som er gjenkjent av GNU gettext-verktøy (PHP, C/C++, C#, Perl, Python, Java, JavaScript og andre).SynkroniserSynkroniser med CrowdinSynkroniser oversettelsen med CrowdinSynkronisererSynkronseringsfeilSynkronisering med %s feilet.Synkroniserer med %s…Synkronisering med Crowdin mislyktes.Syntaksfeil i prefiksen Plural-Forms ("%s").TMTa en eksisterende PO-fil eller POT-mal og opprett en ny oversettelse fra den.Ta oversettbare strenger fra en eksisterende POT mal.Lagnavn og e-postadresse eller nettadresseTeksterstatningTM inneholder ikke strenger lik innholdet i denne filen. Det er bare effektivt for semi-automatiske oversettelser, som Poedit lærer fra filer som du oversetter manuelt.Katalogen kan ikke lagres i "%s"-tegnsettet som angitt i innstillingene for mappen. Den ble lagret i UTF-8-tegnsettet istedenfor og innstillingene for mappen ble endret tilsvarende.Filen kunne ikke kompileres inn i MO-formatet og brukes.Filen kunne ikke åpnes.Filen inneholder dupliserte elementer, som ikke er tillatt i PO-filer og vil hindre at filen blir brukt. Poedit har løst problemet, men du bør vurdere oversettelser av alle elementer merket med "Trenger arbeid" og rette dem om nødvendig.Filen kan være skadet eller i et format som ikke gjenkjennes av Poedit.Filen ble kompilert i MO-format, men vil sannsynligvis ikke fungere riktig.Filen ble trygt lagret og kompilert i MO-format, men vil sannsynligvis ikke fungere riktig.Filen ble trygt lagret, men kunne ikke bli kompilert i MO-format og brukes.Filen ble trygt lagret.Den gamle kildeteksten (før den endres under en oppdatering) som den nå ikke-nøyaktige oversettelsen samsvarer med.Den enkleste måten å fylle ut denne katalogen på, er å oppdatere den fra en POT:Oversettelsen starter ikke med et mellomrom.Oversettelsen slutter med en linje, men kildeteksten gjør ikke.Oversettelsen slutter med et mellomrom, men kildeteksten gjør ikke.Oversettelsen slutter med "%s", men kildeteksten slutter med "%s".Oversettelsen mangler en linje på slutten.Oversettelsen mangler et mellomrom på slutten.Oversettelsen er klar til bruk, men %d oppføringen er ikke oversatt enda.Oversettelsen er klar til bruk, men %d strenger er ikke oversatt enda.Oversettelsen er klar til bruk.Oversettelsen burde slutte med "%s".Oversettelsen burde ikke slutte med "%s".Oversettelsen burde begynne som en setning.Oversettelsen burde begynne med en liten bokstav.Oversettelsen starter med et mellomrom, men kildeteksten gjør det ikke.Oversettelsene ble markert som Trenger arbeid, fordi de kan være unøyaktige. Du bør gjennomse dem for å vurdere hvor korrekte de er.Det finnes ingen oversettelser. Det er uvanlig.Det oppstod et problem med å formatere filen på pent vis (men den ble lagret OK).Det oppstod feil ved lasting av denne katalogen. Som et resultat kan noe data mangle eller være ødelagt.Disse innstillingene påvirker den interne formateringen av PO-filer. Juster dem hvis du har bestemte krav, f.eks på grunn av versjonskontroll.Disse tekstene finnes ikke lenger i kildefilene. De blir derfor fjernet fra katalogen.Disse strengene finnes i kildefilene, men ikke i katalogen. De blir derfor lagt til i katalogen nå.Denne mappen har oppføringer med flertallsformer, men har ikke satt opp et hode med flertallsformer.Denne filen kan kun redigeres i Crowdin sitt web-grensesnitt.Denne kommandoen brukes til å starte utpakker. %o utvides til navnet på utdatafilen, %K til listen over søkeord, %F til listen over inndatafiler, og %C til karaktersettsflagget (se nedenfor).Dette prosjektet har ingen filer som kan oversettes i Poedit.Denne strengen ble funnet i Poedits oversettelsesminne.Dette blir lagt til kommandolinja bare hvis kildekodetegnsett ble angitt. %c blir utvidet til tegnsettets verdi.Dette blir lagt til kommandolinja en gang for hver inndatafil. %f blir utvidet til filnavnet.Dette blir føyd til kommandolinja én gang for hvert nøkkelord. %k blir utvidet til nøkkelordet.TotaltTransformasjonerOversettbare oppføringer legges ikke inn manuelt i Gettext-systemet, men er automatisk utviklet fra kildekoden. På denne måten vil de holde seg oppdatert og nøyaktige. Oversettere bruker vanligvis PO-malfiler (POT) forberedt for dem av utvikleren.Oversatt: %d av %d (%d %%)OversettelsespråketOversettelsesminneOversettelsen trenger &arbeidOversettelsesegenskaperOversettelsen trenger &arbeidEgenskaper for oversettelseOversettelsesforslag:Oversettelse — %sOversettelse:Oversettelser kunne ikke oppdateres fra kildekoden fordi det ikke fantes noen kode på plasseringen spesifisert i katalogens egenskaper.ToUTF-8 (anbefales)AngreUbehandlet unntak oppstod: %sUNIX (anbefales)Ikke oversettbartOppOppdaterOppdater alleOppdater alle katalogene i prosjektetOppdater katalogOppdater fra &POT-fil…Oppdater fra &POT-fil…Oppdater fra POTSammendragOppdateringerOppdaterer katalogOppdatering mislyktesOppdatering av katalog mislyktes. Klikk på "Detaljer >>' for detaljer.Oppdaterer brukerinformasjon...Laster opp oversettelser...Bruk egendefinerte uttrykkBruk egendefinert listeskrifttype:Bruk egendefinert tekstfelt-skrifttype:Bruk standardregler for dette språketBruk disse nøkkelordene (funksjonsnavn) til å gjenkjenne oversettbare strenger i kildefiler:Bruk oversettelsesminneValidereResultater av valideringVersjon %sVenter på godkjenning...Velkommen til PoeditHva er Crowdin?Ved oppdatering fra kilderBare hele ordVinduWindowsPakk rundtVikle på:JaDu kan også hente oversettbare strenger direkte fra kildekoden:Du kan ikke dra mer enn én fil inn i Poedit-vinduet.Du må starte Poedit på nytt for å bruke disse endringeneDitt navnDine endringer vil gå tapt hvis du ikke lagrer dem.Navnet og E-postadressen din brukes bare til å bestemme hvem som skal oppføres som den seneste oversetteren av GNU gettext-filer.NullZoomaltctrlikke slett midlertidige filer (for feilsøking)f.eks nplurals = 2; flertall = (n > 1);fuzzy-treff i filagå til elementet på gitt linjenummerhåndter en poedit://-URIforhånds-oversatt fra TMshiftUkjent språkdin_epost@eksempel.com«%s» er ikke en gyldig POT-fil.poedit-2.0.6/locales/az.mo0000664000372000037200000011162713230132075012321 00000000000000i& & &&&J& '$' 3'=' D' R']'d'j'r'''''''''''' ( ( +(8(A( H(U(k(((((((((().)C)X)o))))))) *:*:S* *** * ***** ++'!+I+f+ +7+6++), D,]O,,A,I-L-S-\-c-"j-- --.---.!.2.E.N.a.}..#....//(/ F/g/p/// ///// 00>0U0l0 00,12171;1R1Y1j1 }111E1"1?2 Y2f2 y222K2"25 3C3I3 N3 \3 j3w3 3 3333333.34-4uG44444 55 5*5<?5|5 55*5!5!5'6A6 G6U6 Z6 d6r666 6 6 6 6666 777+7 =7H7 P7 \7i7y777 E8Q8 g88 8 88"8;8 9*9 =9 G9U9 i9t9999 99 9< :.F:u:::*:::::; ;;;;;'<$)<7N<%<<<<<<<< =2 = S=`=v========= >>>>n>E,?r?>y????@?-"@P@%_@@@@@ @@@@AA$A )A 5ACA KA XAeA(xAAAzA;BBB GB RB _B lB xBB"BBBB BB CC C )C6CPC`CsC CC!CCCCCCC DD D)D :D GD SD`DtDDDDDDDnE EE EE EE EEKEKF`F oF}FF F FFJGOG(aG GG+GGNG83HlH}H8@IyIIIRIc1JQJJAKDK!K,KL"L`oLLYVMmM:NYN;O7AOmyO_O[GPPPPPPPQ.Q AQNQQQQ QR+R3R6R =R"HR,kRRRRRR?R S=SWSmSS#SVST2T;T NTYTwTTTTT TTHT7U PUaZUUUUU UUV VV5VX+X?XQXCcX XX X XXXX Y YY&Y p,qDq]q-mqqqqqr rr s#s9s9Os3sHs-t#4tXt[tlt"pttt"tAt u$u;uJu Yufumuu uuuu v#vv~v]QwwIwwx xO%x@uxx$xxyy4yTyeyny"wyyy y y y yyyz.z Jz!Tzpvzzzz{{3{D{T{0e{*{ {{{{ {| | | 5|V|q||||8| }} &}0}7} N} X}f}k}#q}}}}!}!}~!5~W~r~~~Xv R `uƀ؀)-71iOlQ"N/QA_@|.J7(;EXeOZFVRs ƊneVi&-!?aq ӌߌhm 'ލ)/BrWَ)1[#z*(ɏ4'%ΐ  #&Je)u ͑QF7~,0!5Wio/{ fg~E1=yvHN[kjMUR?\L_+Dd*,P,xBT[-(FY DG)3hwR  -!:94uj72#S&p/m"YMoQ{pKVlJI6$d%'CrWEfA}'zqoZ<B:@^WgK mG5|nS"4PAt2s!Je#n`ci?qL$]>~lt;3zU ab^ckh\%0H]x*(|OZ;i16 a8`7}CQ.=w b0TO XF)vu9XN >Is5<r+y&.@_8 eV  (modified) (unsaved)%d entry%d entries%d error%d errors%d issue with the translation found.%d issues with the translation found.%s Format%s Preferences%s format&About&About Poedit&Bookmarks&Close&Copy&Delete&Done and Next&Done and next&Edit&File&GNU gettext Manual&GNU gettext manual&Go&Group By Context&Group by context&Help&Next >&Next Translation&Next translation&Online Help&Online help&Open...&Paste&Preferences&Previous Translation&Previous translation&Purge Deleted Translations&Purge deleted translations&Redo&Replace&Save&Show References&Show references&Undo&Untranslated Entries First&Untranslated entries first&Update from Sources&Update from sources&Validate Translations&Validate translations&View(0 new, 0 obsolete)(Learn more about GNU gettext)(New: %i, obsolete: %i)(Use default language)(requires Windows 8 or newer)< &PreviousDrag and Drop Folders Here or use the + buttonDrag and drop folders here or use the + buttonAbout %sAccountsAdd CommentAdd commentAdd directory to the listAdditional keywordsAdvancedAll Translation FilesAll commentsAlt+Always change focus to text input fieldAn item in input files list:An item in keywords list:AppearanceAre you sure you want to delete the “%s” extractor?Are you sure you want to reset the translation memory?Automatically check for updatesAutomatically compile MO file when savingBase path:Beta versions contain the latest new features and improvements, but may be a bit less stable.Bring All to FrontBroken catalog file: plural form msgstr used without msgid_pluralBroken catalog file: singular form msgstr used together with msgid_pluralBrowseC&atalogC&learCancelCannot create temporary directory.Cannot execute program: %sCapitalizeCatalogCatalog modified. Do you want to save changes?Catalog propertiesCatalogs &ManagerCatalogs &managerCatalogs ManagerChange UI languageCharset:Check Document NowCheck Grammar With SpellingCheck Spelling While TypingCheck for Updates…Check for errors in the translationCheck spellingClear TranslationClear the commentClear translationCloseCollaborate on a translation with othersCommand to extract translations:Comment:Compiled Translation FilesConfigure source code extraction in Properties.ConfirmationCopyCopy From SingularCopy from Source TextCopy from singularCopy from source textCorrect Spelling AutomaticallyCreate New TranslationCreate new translationCreate new translations projectCrowdin errorCrowdin is an online localization management platform and collaborative translation tool. Poedit can seamlessly sync PO files managed at Crowdin.Ctrl+Cu&tCutDatabase size on disk:DeleteDelete extractorDelete the projectDirectories:Display Entry &IDsDisplay entry &IDsDo you really want to do mass update of all catalogs in this project?Do you want to delete the project?Do you want to remove all translations that are no longer used?Don’t SaveDon’t Show AgainDon’t saveDon’t show againDownDownload a file from Crowdin project, translate and sync your changes back.Downloading latest translations…Downloading translations is disabled in this project.E&xitEditEdit &CommentEdit &commentEdit CommentEdit a translationEdit commentEdit projectEdit the projectEditingEdit…Email:EnterEnter Full ScreenEntries in the catalog are probably incorrect.Entries with Errors FirstEntries with errors firstEntries with errors were marked in red in the list. Details of the error will be shown when you select such an entry.Error opening fileError opening file %s!Error saving catalogErrorsEverythingExcluded pathsExport as…Extract from sourcesExtract text from source files in the following directories:Extractor setupExtractorsFailed command: %sFailed to communicate with Poedit process.Failed to load extracted catalog.Failed to merge gettext catalogs.Failed to update translation memory: %sFile:Finalizing…FindFind NextFind PreviousFind in commentsFind in source textsFind in translationsFind nextFind previousFix LanguageFix languageFix the HeaderFix the headerForm %iGNU gettextGeneralGo to Bookmark %iGo to bookmark %iHTML FilesHide %sHide OthersHide SidebarHide Status BarHide this notification messageIDIf you continue with purging, all translations marked as deleted will be permanently removed. You will have to translate them again if they are added back in the future.Ignore caseInclude beta versionsInformation about the translatorInstallInvalid fileInvocation:KeepLanguage Code or Name (e.g. en_GB)Language of the translation is the same as source language.Language of the translation:Language selectionLanguage:Last modifiedLearn From Files…Learn MoreLearn More About CrowdinLearn about gettext keywordsLearn about plural formsLearn from files…Learn moreLearn more about CrowdinLine endings:List of extensions separated by semicolons (e.g. *.cpp;*.h):MO files can’t be directly edited in Poedit.Make Lower CaseMake Upper CaseMinimizeName of the project the translation is forName:Ne&xt UnfinishedNe&xt unfinishedNever let the list of strings take focus. If enabled, you must use Ctrl-arrows for keyboard navigation but you can also type text immediately, without having to press Tab to change focus.NewNew stringsNext Plural FormNext plural formNo Matches FoundNo matches foundNo problems with the translation found.No references for the selected item.No translation projects listed in your Crowdin account.Not authorized, please sign in again.Notes for translators:OKObsolete stringsOneOnly fill in exact matchesOpenOpen Crowdin translationOpen RecentOpen an existing PO file and edit the translation.Open catalogOpen catalog templateOpen in EditorOpen in editorOptionsOtherP&revious UnfinishedP&revious unfinishedPO TranslationPO Translation FilesPOT Translation TemplatesPOT files are only templates and don’t contain any translations themselves. To make a translation, create a new PO file based on the template.PastePaste and Match StylePathsPlease open and edit the corresponding PO file instead. When you save it, the MO file will be updated as well.Please save the file first. This section cannot be edited until then.PluralPlural forms expression used by the catalog is unusual for %s.Plural:PoeditPoedit - Catalogs managerPoedit automatically fixed invalid content in the file “%s”.Poedit is an easy to use translations editor.Preferences...Preserve formatting of existing filesPrevious Plural FormPrevious plural formPrevious source text:Project name and version:Project name:Project:PurgePurge deleted translationsQuitQuit %sRedoReferences:Remaining: %dReplaceReplace &AllReplace &allReplacement stringRequired header Plural-Forms is missing.ResetReset translation memoryResetting the translation memory will irrevocably delete all stored translations from it. You can’t undo this operation.ReviewSaveSave as…Save catalogSave changesSelect &AllSelect AllSelect directorySelect translation files to importSelect your preferred languageServicesSet Bookmark %iSet LanguageSet bookmark %iSet languageShift+Show AllShow SidebarShow Spelling and GrammarShow Status BarShow SubstitutionsShow or hide the sidebarShow sidebarShow status barShow summary after catalog updateSidebarSign InSign OutSign inSign in to CrowdinSign outSigned in as:SingularSingular:Smart Copy/PasteSmart DashesSmart LinksSmart QuotesSort by &File OrderSort by &SourceSort by &TranslationSort by &file orderSort by &sourceSort by &translationSource code charset:Source code extractors are used to find translatable strings in the source code files and extract them so that they can be translated.Source code not available.Source fileSource file occurrence:Source textSource text — %sSource text:Sources keywordsSources pathsSpeechSpellchecking is disabled, because the dictionary for %s isn’t installed.Spelling and GrammarStart SpeakingStop SpeakingStored translations:String to findSubstitutionsSuggestionsSuggestions are not available if the translation language is not set correctly. Other features, such as plural forms, may be affected as well.SyncSync with CrowdinSynchronize the translation with CrowdinSyncing errorSyncing with Crowdin failed.Syntax error in Plural-Forms header ("%s").TMTake an existing PO file or POT template and create a new translation from it.Take translatable strings from an existing POT template.Text ReplacementThe TM doesn’t contain any strings similar to the content of this file. It is only effective for semi-automatic translations after Poedit learns enough from files that you translated manually.The file cannot be compiled into the MO format and used.The file cannot be opened.The file may be either corrupted or in a format not recognized by Poedit.The file was compiled into the MO format, but it will probably not work correctly.The file was saved safely and compiled into the MO format, but it will probably not work correctly.The file was saved safely, but it cannot be compiled into the MO format and used.The file was saved safely.The simplest way to fill this catalog is to update it from a POT:The translation is ready for use, but %d entry is not translated yet.The translation is ready for use, but %d entries are not translated yet.The translation is ready for use.There are no translations. That’s unusual.There was a problem formatting the file nicely (but it was saved all right).There were errors when loading the catalog. Some data may be missing or corrupted as the result.These settings affect internal formatting of PO files. Adjust them if you have specific requirements e.g. because of version control.These strings are no longer in the sources. Poedit will remove them from the catalog now.These strings were found in the sources but were not in the catalog. Poedit will add them to the catalog now.This file can only be edited in Crowdin’s web interface.This is the command used to launch the extractor. %o expands to the name of output file, %K to list of keywords, %F to list of input files, %C to charset flag (see below).This project has no files that can be translated in Poedit.This string was found in Poedit’s translation memory.This will be attached to the command line only if source code charset was given. %c expands to charset value.This will be attached to the command line once for each input file. %f expands to the filename.This will be attached to the command line once for each keyword. %k expands to the keyword.TotalTransformationsTranslated: %d of %d (%d %%)Translation LanguageTranslation MemoryTranslation propertiesTranslation suggestions:Translation — %sTranslation:Translations couldn’t be updated from the source code, because no code was found in the location specified in the catalog’s Properties.TwoUTF-8 (recommended)UndoUnhandled exception occurred: %sUnix (recommended)UntransUpUpdateUpdate allUpdate all catalogs in the projectUpdate catalog - synchronize it with sourcesUpdate from POTUpdate summaryUpdatesUpdating catalogUpdating failedUpdating the catalog failed. Click on 'Details >>' for details.Updating user information…Uploading translations…Use custom expressionUse custom list font:Use custom text fields font:Use default rules for this languageUse these keywords (function names) to recognize translatable strings in source files:Use translation memoryValidateValidation resultsVersion %sWaiting for authentication…Welcome to PoeditWhat is Crowdin?Whole words onlyWindowWindowsWrap aroundWrap at:You can also extract translatable strings directly from the source code:You must restart Poedit for this change to take effect.Your NameYour name and email address are only used to set the Last-Translator header of GNU gettext files.ZeroZoomaltctrle.g. nplurals=2; plural=(n > 1);handle a poedit:// URIshiftunknown languageyour_email@example.comProject-Id-Version: poedit Report-Msgid-Bugs-To: help@poedit.net POT-Creation-Date: 2017-12-05 15:52+0100 PO-Revision-Date: 2017-09-21 11:21-0400 Last-Translator: vslavik Language-Team: Azerbaijani Language: az_AZ MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=(n != 1); X-Generator: crowdin.com X-Crowdin-Project: poedit X-Crowdin-Language: az X-Crowdin-File: /locales/poedit.pot (modifikasiya edilmiş) (qeyd edilməmiş)%d yazı%d yazı%d xəta%d xətaTərcümədə %d xəta tapıldı.Tərcümədə %d xəta tapıldı.%s Format%s Nizamlamalar%s format&Haqqında&Poedit Haqqında&Seçilmişlər&Bağla&Köçür&Sİl&Tamamla və Sonrakı&Tamamla və sonrakı&Redaktə et&Fayl&GNU gettext Kitabı&GNU gettext kitabı&Get&Kontekstə Görə Qrup&Kontekstə görə qrup&Yardım&Sonrakı >&Sonrakı Tərcümə&Sonrakı tərcümə&Onlayn Yardım&Onlayn yardım&Aç...&Yapışdır&Xüsusiyyətlər&Öncəki Tərcümə&Öncəki tərcümə&Silinmiş Tərcümələri Yox Edin &Silinmiş tərcümələri yox edin&Yenilə&Dəyişdir&Qeyd et&Parametrləri Göstər&Parametrləri göstər&Geri Al&Tərcümə Edilməmiş Yazılar Ən Üstdə Görünsün&Tərcümə edilməmiş yazılar ən üstdə görünsün&Mənbədən Yenilə&Mənbədən yenilə&Tərcümələri Təsdiqlə&Tərcümələri təsdiqlə&Bax(0 yeni, 0 əski)(GNU GETTEXT haqqında daha ətraflı məlumat)(Yeni: %i, əski: %i)(Mövcud dildən istifadə et)(Windows 8 və ya daha yenisi gərəkdir)< &ÖncəkiQovluqları Buraya Sürüşdürün və Buraxın ya da + düyməsindən istifadə edinQovluqları buraya sürüşdürün və buraxın ya da + düyməsindən istifadə edin%s HaqqındaHesablarŞərh Əlavə EtŞərh əlavə etSiyahıya kataloq əlavə etƏlavə açar kəlmələrQabaqcılBütün Tərcümə FayllarıBütün şərhlərAlt+Hər zaman giriş sahəsində mətn fokusunu dəyişdirGiriş faylları siyahısındakı bir maddə:Açar kəlmələri siyahısındakı bir maddə:Görünüş“%s” ekstraktorunu silmək istədiyinizdən əminsinizmi?Tərcümə yaddaşını sıfırlamaq istədiyinizə əminsiniz?Yenilənmələr üçün avtomatik yoxlaQeyd etmə sırasında MO faylının kompliyasiyasıƏsas yol:Beta versiyalar ən son xüsusiyyətlərə malikdirlər, ancaq stabil işləmə xüsusunda bir az qeyri-stabildirlər.Tamamını Önə GətirYararsız kataloq faylı: cəm forma msgstr, msgid_plural olmadan istifadə edilmişdirYararsız kataloq faylı: cəm forması msgstr, msgid_plural ilə birlikdə istifadə edilmişdirGətirK&ataloqT&əmizləİmtinaMüvəqqəti direktoriya yaradıla bilmir.Proqram işə salına bilmir: %sBöyüdünKataloqKataloq modifikasiya edildi. Dəyişikliklər qeyd edilsinmi?Kataloq xüsusiyyətləriKataloq &MeneceriKataloq &meneceriKataloq Meneceriİnrfeys dilini dəyişKodlaşdırma:Sənədi Yenidən YoxlaQrammatikanı və Yazma Qaydasını YoxlaTərcümə vaxtı orfoqrafiyanı yoxlaYenilikləri yoxla…Tərcümədəki xətaları yoxlaYazma qaydasını yoxlaTərcüməni TəmizləŞərhi silinTərcüməni təmizləBağlaTərcümədə başqaları ilə iştirak edinTərcümələri çıxarmaq üçün əmr:Şərh:Kompliyasiya Edilmiş Tərcümə FayllarıXüsusiyyətlər bölməsindən mənbə koddan almağı konfiqurasiya edin.TəsdiqKöçürTək Olandan KöçürMənbə Mətnindən KöçürTək olandan köçürMənbə mətnindən köçürYazı Avtomatik Korreksiya EdilsinYeni Tərcümə YaratYeni tərcümə yaratYeni tərcümə layihəsi hazırlayınCrowdin xətasıCrowdin bir onlayn lokalizasiya idarəetmə platforması və iş birliyinə əsaslanan tərcümə alətidir. Poedit problemsiz olaraq Crowdin-də idarə edilən PO fayllarını sinxronlaşdıra bilər.Ctrl+Kə&sKəsVerilənlər bazasının diskdəki ölçüsü:SilEkstraktoru silLayihəni silDirektoriyalar:Qeyd &№ və Kodlar GöstərilsinQeyd &№ və kodlar göstərilsinSiz həqiqətən də kütləvi şəkildə bütün kateqoriyaları yeniləmk istəyirsinizmi?Siz layihəni silmək istəyirsiniz?Artıq istifadə edilməyən bütün əməliyyatların silinməsini istəyirsinizmi?Qeyd etməYenidən göstərməQeyd etməYenidən göstərməAşağıCrowdin layihəsindən bir fayl endirin, tərcümə edin və təkrar dəyişikliklərinizi sinxronlaşdırın.Ən son tərcümələr endirilir…Bu layihədə tərcümələri endirmək deaktivasiya edildi.Ç&ıxRedaktə et&Şərhi Redaktə Et&Şərhi redaktə etŞərhi Redaktə EtTərcüməni redaktə etŞərhi redaktə etLayihəni redaktə etLayihəni redaktə etRedaktəRedaktə et…E-poçt:EnterTam Ekran Daxil edinKataloqdakı yazılar böyük ehtimalla yanlışdır.Əvvəlcə Xətalı Olan YazılarƏvvəlcə xətalı olan yazılarXətalı sətirlər siyahıda qırmızı rəngdə göstərilir. Xəta haqqında məlumata baxmaq üçün sətri seçin.Fayl açılması sırasında xəta'%s' faylı açılarkən xəta oldu!kataloq qeyd edilərkən xəta olduXətalarHər şeyİstisna edilmiş yollarFərqli ixrac et…Mənbələrdən alınsınMənbə fayllarındakı mətnləri bu direktoriyaya çıxart:Ekstraktoru qurEkstraktorlarƏmr xətası: %sPoedit əməliyyatı ilə əlaqə qurmaq baş tutmadı.Çıxardıldığı kataloq yüklənmədi.Gettext kataloqlarını birləşdirərkən bir xəta baş verdi.Tərcümə yaddaşı yenilənə bilmədi: %sFayl:Tamamlanır…TapSonrakını TapınÖncəkini TapınŞərhlərdə tapınMənbə mətnlərdə axtarTərcümələrdə tapSonrakını tapınÖncəkini tapınDili DüzəltDili düzəltBaşlığı DüzəltBaşlığı düzəltFormat %iGNU gettextƏsasSeçilmişlərə geri dön %iSeçilmişə get %iHTML Faylları%s GizlətDigərlərini GizlətYan menyunu GizlətStatus Çubuğunu GizlətBu xəbərdarlıq mesajını gizlədinIDDavam etsəniz, silinmək üçün işarələnmiş bütün tərcümələr yox olacaq. Gələcəkdə bunlar yenidən əlavə olunarsa, təkrar tərcümə etmək məcburiyyətində qalacaqsınız.Böyük-kiçik hərfləri gözardı etBeta versiyaları da alınsınTərcüməçi haqqında məlumatQurXətalı faylÇağrış:TutDil Kodu və ya Adı (məs. az_AZ)Tərcümə dili mənbə dili ilə eynidir.Tərcümə dili:Dil seçimiDil:Son modifikasiyaFayllardan öyrən…Daha çox məlumatCrowdin Haqqında Məlumat Əldə EdinGettext açar kəlmələrindən öyrənilsinCəm formatları öyrəninFayllardan öyrən…Daha çox məlumatCrowdin haqqında məlumat əldə edinSətir sonları:Vergüllə ayrılmış uzantı siyahısı (məs. *.cpp;*.h):MO faylları birbaşa Poedit içində redaktə edilə bilməz.Kiçik Hərfə ÇevirinBöyük Hərfə ÇevirinMinimallaşdırBunun üçün hazırlanan tərcümənin adı:Ad:S&onrakı TamamlanmamışS&onrakı tamamlanmamışBu parametr aktivləşdirildiyində, işarələyici əsla sətir siyahısına fokuslana bilməz. Beləcə fokusu dəyişdirmək üçün (Tab) tuşuna basmadan tərcüməni həmən yaza bilərsiniz. Gəzinmək üçün Ctrl-Aşağı/Yuxarı oxlarından istifadə etməlisiniz.YeniYeni sətirNövbəti Cəm NövüNövbəti cəm növüUyğunluq TapılmadıUyğunluq tapılmadıTərcümə ilə əlaqqədar heç bir problem tapılmadı.Seçilmiş element üçün heç bir mənbə yoxdur.Crowdin hesabınızda siyahılanan heç bir tərcümə layihəsi yoxdur.İzniniz yoxdur, lütfən təkrar daxil olun.Tərcüməçilər üçün qeydlər:OKƏski sətirlərBirSadəcə tam uyğunluqları doldurAçCrowdin tərcüməsini açSon İstifadə Edilənləri AçınMövcud olan bir PO faylını açaraq tərcüməni redaktə edin.Kataloqu açKataloq şablonunu açRedaktorda AçRedaktorda açParametrlərDigərÖ&ncəki TamamlanmamışÖ&ncəki tamamlanmamışPO TərcüməPO Tərcümə FayllarıPOT Tərcümə ŞablonlarıPOT Faylları sadəcə şablonlardır və özü-özündən hər hansı bir tərcüməyə sahib olmazlar. Bir tərcümə etmək üçün şablonu əsas alan yeni bir PO faylı yaradın.YapışdırYapışdır və Stilləri TutuşdurYollarLütfən bunun yerinə əlaqədar PO faylını açın və redaktə edin. Qeyd etdiyiniz zaman, MO faylı da yenilənəcəkdir.Lütfən əvvəlcə faylı qeyd edin. Qeyd etdikdən sonra bu bölmə redaktə edilə bilər.Cəm%s üçün istifadə edilən cəm formatı ifadəsi alışılmış deyil.Cəm:PoeditPoedit - Kataloq meneceriPoedit, “%s” faylındakı etibarsız içəriyi avtomatik olaraq düzəltdi.Poedit asan istifadə edilə bilən bir tərcümə redaktorudur.Xüsusiyyətlər...Var olan faylların formatını qoruƏvvəlki Cəm NövüƏvvəlki cəm növüÖncəki mənbə mətni:Layihənin adı və versiyası:Layihənin adı:Layihə:Yox edinSilinmiş tərcümələri yox edinÇıx%s ÇıxYeniləyinReferanslar:Qalan: %dDəyişdirDəyişdir &HamısınıDəyişdir &HamısınıDəyişdirmə sətriGərəkli başlıq Cəm-Formatları əksikdir.SıfırlaTərcümə yaddaşını sıfırlaTərcümə yaddaşını sildikdə bütün saxlanılan tərcümələri siləcək. Bunu geri ala bilməyəcəksiz.BaxışQeyd etFərqli saxla…Kataloqu qeyd etDəyişiklikləri qeyd etTamamını &SeçTamamını SeçDirektoriya seçİdxal ediləcək tərcümə fayllarını seçinİstifadə etmək istədiyiniz dili seçinXidmətlərSeçilmiş Qur %iDili QurSeçilmiş qur %iDil qurunShift+Hamısını GöstərYan menyunu GöstərYazma və Qrammatikanı GöstərStatus Çubuğunu GöstərDəyişikliklər GöstərilsinYan paneli göstər/gizlətYan menyunu göstərStatus çubuğunu göstərKataloq yeniləndikdən sonra nəticələr göstərilsinYan menyuGirişÇıxışGirişCrowdin-ə giriş edinÇıxışGiriş edən:TəkTək:Ağıllı Köçürmə/YapışdırmaAğıllı TirelərAğıllı BağlantılarAğıllı Sitatlar&Fayldakı Sıraya Görə Sırala&Mənbə Mətninə Görə Sırala&Tərcüməyə Görə Sırala&Fayldakı sıraya görə sırala&Mənbəyə görə sırala&Tərcüməyə görə sıralaMənbə kodu kodlaşması:Mənbə kodu ekstraktorları mənbə kodu fayllarında tərcümə ediləcək sətrləri tapmaq və onları çıxararaq tərcümə etməyə hazır vəziyyətə gətirirlər.Mənbə kodu əlçatan deyil.Mənbə faylıMənbə kodu yaradılması:Mənbə mətniMənbə mətni — %sMənbə mətni:Mənbə açar kəlmələriMənbə yollarıDanışınYazı korrektoru deaktivasiya edildi, çünki %s üçün lüğət qurulmuş deyil.Yazma və QrammatikaDanışmağa BaşlayınDanışmağı DayandırınQeyd edilmiş tərcümələr:Tapılacaq sətirDəyişikliklərMəsləhətlərTərcümə dili doğru olaraq qurulmazsa, məsləhətlər istifadə edilə bilməz. Cəm formatlar kimi, digər özəlliklər də təsirlənə bilər.SinxronlaşdırCrowdin ilə SinxronlaşdırınTərcüməni Crowdin ilə sinxronlaşdırEyniləşdirmə xətasıCrowdin ilə sinxronlaşdırma baş tutmadı.Cəm-Formatı başlığında sintaksis xətası ("%s").TYMövcud olan bir PO faylı ya da POT şablonundan yeni bir tərcümə yaradın.Tərcümə edilə bilinən sətirləri birbaşa POT şablonundan ala bilərsiniz.Mətn DəyişikliyiTY bu faylın məzmununa oxşayan heç bir sətrə sahib deyil. Bu yarım-avtomatik tərcümələr üçün keçərlidir. Poedit bunları əllə tərcümə edilmiş fayllardan öyrənəcək.Fayl, MO formatında kompliyasiya edilə bilməz və istifadə edilə bilməz.Fayl açılmadı.Fayl yararsızdır ya da fayl formatı Poedit tərəfindən təyin edilə bilmir.Fayl, MO formatında kompliyasiya edildibi, ancaq böyük ehtimalla, düzgün işləməyəcək.Fayl problemsiz olaraq MO formatında kompliyasiya olundu və qeyd edildi, ancaq böyük ehtimalla ola bilsin ki, düzgün işləməsin.Fayl problemsiz qeyd edildi, ancaq MO formatında baş tutmadı.Fayl təhlükəsiz bir şəkildə qeyd edildi.Bu kataloqu doldurmağın ən asan yolu bir POT faylından yeniləməkdir:Tərcümə istifadə üçün hazırdır, ancaq %d sətir hələlik tərcümə edilməmişdir.Tərcümə istifadə üçün hazırdır, ancaq %d sətir hələlik tərcümə edilməmişdir.Tərcümə istifadə üçün hazırdır.Orada heç bir tərcümə yoxdur. Bu qeyri-adi bir şeydir.Fayl gözəl şəkildə formatlanmadı, ancaq problemsiz qeyd edildi.Kataloq yüklənərkən bəzi problemlər oldu. Bəzi məlumatlar itmiş və ya yararsız ola bilər.Bu parametrlər, PO fayllarının daxili formatlarına təsir edə bilər. Məsələn, versiya testi səbəbilə xüsusi tələbləriniz varsa onları korrektə edin.Bu sətirlər artıq mənbədə yoxdur.Poedit bunları kataloqdan çıxardacaq.Mənbədə olan bu sətirlər kataloqda yoxdur. Poedit bunları kataloqa əlavə edəcək.Bu fayl sadəcə Crowdin-in veb interfeysində redaktə edilə bilər.Bu, ekstraktoru işlətmək üçün istifadə edilən əmrdir. %o çıxış faylı adına, %K açar kəlmələrin siyahısına, %F giriş fayllarının siyahısına, %C nsimvoluna dönüşür (aşağıya baxın).Bu layihə, Poedit içində tərcümə edilə bilinən heç bir fayla sahib deyil.Bu sətr Poedit-in TY tapıldı.Mənbə xarakter əmri verilmişdirsə, bu əmr sətrinə əlavə ediləcəkdir. %c xarakter dəyərini yazar.Bu, hər yazı faylı üçün bir dəfə əmr sətrinə əlavə ediləcəkdir. %f fayl adını yazar.Bu, hər açar kəlmə üçün bir dəfə əmr sətrinə əlavə ediləcəkdir. %k açar kəlməni yazar.ÜmumiTransformasiyalar%d / %d (%d %%) tərcümə edildiTərcümə DiliTərcümə YaddaşıTərcümə xüsusiyyətləriTərcümə xüsusiyyətləri:Tərcümə — %sTərcümə:Tərcümələr mənbə kodundan yenilənmədi, çünki kataloqun Xüsusiyyətlərində göstərilən mövqedə heç bir kod tapılmadı.İkiUTF-8 (məsləhət görülür)Geri qaytarGözlənilməz bir xəta baş verdi: %sUnix (məsləhət görülür)Tərcümə edilməmişYuxarıYeniləTamamını yeniləLayihədəki bütün kataloqları yeniləKataloqu yenilə - mənbə ilə sinxronlaşdırPOT-dan YeniləYenilənmənin nəticəsiYenilənmələrKataloq yenilənirYenilənmə baş tutmadıKataloq yenilənmədi. Əlavə məlumat üçünn 'Detallar >>' düyməsinə tıklayın.İstifadəçi məlumatları yenilənir...Tərcümələr göndərilir…Özəl ifadədən istifadə edilsinÖzəl şrift siyahısından istifadə et:Özəl şrift sahəsindən istifadə et:Bu dil üçün mövcud qaydalardan istifadə edilsinMənbə fayllarındakı tərcümə edilə bilinən sətirlər tanındığında, mövcud olanların yanında bu açar kəlmələr (funksiya adları) istifadə edilsin.Tərcümə yaddaşından istifadə etTəsdiqləTəsdiqləmə nəticələriVersiya %sTəsdiqləmə üçün gözləyir...Poedit-ə Xoş GəlmisinizCrowdin nədir?Mətnə eyni ilə uyğun gələnləri tapPəncərəWindowsÇevrəsində sürüşdürSürüşdürmə yönü:Tərcümə edilə bilinən sətirləri birbaşa mənbə kodundan ala bilərsiniz:Dəyişikliklər Poedit yenidən başladıldıqdan sonra aktiv olacaq.AdınızAdınız və e-poçt ünvanınız sadəcə GNU gettext fayllarında Son Tərcüməçi başlığını tərtibləmək üçün istifadə edilir.SıfırYaxınlaşdıraltctrlməs. nplurals=2; plural=(n > 1);bir poedit:// URIshiftbilinməyən dilyour_email@example.compoedit-2.0.6/locales/zh_TW.po0000664000372000037200000014261313230131554012745 00000000000000msgid "" msgstr "" "Project-Id-Version: poedit\n" "Report-Msgid-Bugs-To: help@poedit.net\n" "POT-Creation-Date: 2017-12-05 15:52+0100\n" "PO-Revision-Date: 2017-12-05 09:50-0500\n" "Last-Translator: vslavik \n" "Language-Team: Chinese Traditional\n" "Language: zh_TW\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" "X-Generator: crowdin.com\n" "X-Crowdin-Project: poedit\n" "X-Crowdin-Language: zh-TW\n" "X-Crowdin-File: /locales/poedit.pot\n" msgid "Hide this notification message" msgstr "隱藏這項通知訊息" msgid "Don’t Show Again" msgstr "不要再顯示" msgid "Don’t show again" msgstr "不要再顯示" #, c-format msgid "(New: %i, obsolete: %i)" msgstr "(新增:%i,棄用:%i)" msgid "Updating catalog" msgstr "更新編目檔中" msgid "Collecting source files…" msgstr "正在收集來源檔..." msgid "Extracting translatable strings…" msgstr "正在抽出可翻譯的字串..." msgid "Failed to load extracted catalog." msgstr "無法載入抽出的編目檔。" msgid "Merging differences…" msgstr "正合併差異..." #, c-format msgid "“%s” is not a valid POT file." msgstr "「%s」不是有效的 POT 檔。" #, c-format msgid "%i line of file “%s” was not loaded correctly." msgid_plural "%i lines of file “%s” were not loaded correctly." msgstr[0] "共有 %i 列 (檔案「%s」中) 未正確載入。" #, c-format msgid "Line %d of file “%s” is corrupted (not valid %s data)." msgstr "第 %d 列 (檔案「%s」中) 已毀損 (不是有效的 %s 資料)。" #, c-format msgid "Malformed header: “%s”" msgstr "格式不良的檔頭:「%s」" msgid "" "Broken catalog file: singular form msgstr used together with msgid_plural" msgstr "損毀的編目檔:將單數形式的 msgstr 與 msgid_plural 並用" msgid "Broken catalog file: plural form msgstr used without msgid_plural" msgstr "損毀的編目檔:雖使用複數形式的 msgstr 卻沒有 msgid_plural" msgid "" "There were errors when loading the catalog. Some data may be missing or " "corrupted as the result." msgstr "載入編目檔時發生錯誤。結果可能某些資料闕漏或損毀。" #, c-format msgid "Couldn’t load file %s, it is probably corrupted." msgstr "無法載入 %s 檔,可能已損毀。" #, c-format msgid "" "File “%s” is read-only and cannot be saved.\n" "Please save it under different name." msgstr "" "檔案「%s」因唯讀而無法儲存。\n" "請以不同檔名儲存檔案。" #, c-format msgid "Couldn’t save file %s." msgstr "無法儲存 %s 檔。" msgid "" "There was a problem formatting the file nicely (but it was saved all right)." msgstr "試圖讓檔案的排版格式變得整齊時遭遇問題 (但仍舊順利儲存)。" #, c-format msgid "" "The catalog couldn’t be saved in “%s” charset as specified in catalog " "settings.\n" "\n" "It was saved in UTF-8 instead and the setting was modified accordingly." msgstr "" "這個編目檔無法以編目檔設定中所指定的「%s」字集儲存。\n" "\n" "它已改用 UTF-8 儲存,設定值也同時隨之修改。" msgid "Error saving catalog" msgstr "儲存編目檔時發生錯誤" msgid "PO Translation Files" msgstr "PO 翻譯檔" msgid "POT Translation Templates" msgstr "POT 翻譯模板" msgid "All Translation Files" msgstr "所有翻譯檔" msgid "(Use default language)" msgstr "(使用預設語言)" msgid "Select your preferred language" msgstr "選取您偏好的語言" msgid "Language selection" msgstr "語言選擇" msgid "You must restart Poedit for this change to take effect." msgstr "您得要重新啟動 Poedit 這項更動才會生效。" msgid "Syncing" msgstr "同步中" #. TRANSLATORS: %s is a cloud destination, e.g. "Crowdin" or ftp.wordpress.com etc. #, c-format msgid "Syncing with %s…" msgstr "正和 %s 同步…" #. TRANSLATORS: %s is a cloud destination, e.g. "Crowdin" or ftp.wordpress.com etc. #, c-format msgid "Syncing with %s failed." msgstr "和 %s 的同步失敗。" msgid "Syncing error" msgstr "同步發生錯誤" msgid "Downloading translations is disabled in this project." msgstr "此專案已停用翻譯下載。" msgid "Not authorized, please sign in again." msgstr "尚未獲得授權,請重新登入。" msgid "" "Crowdin is an online localization management platform and collaborative " "translation tool. Poedit can seamlessly sync PO files managed at Crowdin." msgstr "" "Crowdin 是線上在地化管理平臺暨翻譯協作工具。Poedit 可以無縫同步 Crowdin 上管" "理的 PO 檔。" msgid "Sign In" msgstr "登入" msgid "Sign in" msgstr "登入" msgid "Sign Out" msgstr "登出" msgid "Sign out" msgstr "登出" msgid "Waiting for authentication…" msgstr "正在等候身分核對⋯" msgid "Updating user information…" msgstr "正在更新使用者資訊⋯" msgid "Signed in as:" msgstr "登入身分:" msgid "Learn More About Crowdin" msgstr "深入瞭解 Crowdin" msgid "Learn more about Crowdin" msgstr "深入瞭解 Crowdin" msgid "Sign in to Crowdin" msgstr "登入 Crowdin" msgid "Open Crowdin translation" msgstr "開啟 Crowdin 翻譯" msgid "Project:" msgstr "專案:" msgid "Language:" msgstr "語言:" msgid "File:" msgstr "檔案:" msgid "No translation projects listed in your Crowdin account." msgstr "您的 Crowdin 帳號中尚無翻譯專案。" msgid "This project has no files that can be translated in Poedit." msgstr "這個專案沒有可在 Poedit 中翻譯的檔案。" msgid "This file can only be edited in Crowdin’s web interface." msgstr "這份檔案僅能在 Crowdin 的網頁介面中編輯。" msgid "Downloading latest translations…" msgstr "正在下載最新的翻譯⋯" msgid "Syncing with Crowdin failed." msgstr "與 Crowdin 同步失敗。" msgid "Crowdin error" msgstr "Crowdin 錯誤" msgid "Uploading translations…" msgstr "正在上傳翻譯⋯" msgid "&Copy" msgstr "複製(&C)" msgid "Learn more" msgstr "深入瞭解" msgid "Learn More" msgstr "深入瞭解" msgid "&Help" msgstr "說明(&H)" msgid "MO files can’t be directly edited in Poedit." msgstr "無法在 Poedit 中直接編輯 MO 檔。" msgid "Error opening file" msgstr "開啟檔案發生錯誤" msgid "" "Please open and edit the corresponding PO file instead. When you save it, " "the MO file will be updated as well." msgstr "請改開啟並編輯對應的 PO 檔。當您儲存時,MO 檔會同時更新。" msgid "don’t delete temporary files (for debugging)" msgstr "不要刪除暫存檔 (供除錯用)" msgid "handle a poedit:// URI" msgstr "處理 poedit:// URI" msgid "go to item at given line number" msgstr "前往指定列號的項目" msgid "Failed to communicate with Poedit process." msgstr "無法與 Poedit 程序溝通。" #, c-format msgid "Unhandled exception occurred: %s" msgstr "遭遇未處理的例外:%s" msgid "Open catalog" msgstr "開啟編目檔" #, c-format msgid "File “%s” doesn’t exist." msgstr "「%s」檔不存在。" msgid "Poedit is an easy to use translations editor." msgstr "Poedit 是個易用的翻譯編輯器。" msgid "Catalogs Manager" msgstr "編目檔管理員" msgid "Check for Updates…" msgstr "檢查更新…" msgid "&Edit" msgstr "編輯(&E)" msgid "Undo" msgstr "取消動作" msgid "Redo" msgstr "再次動作" msgid "Paste and Match Style" msgstr "貼上並比對樣式" msgid "Delete" msgstr "刪除" msgid "Spelling and Grammar" msgstr "拼字與文法" msgid "Show Spelling and Grammar" msgstr "顯示拼字與文法" msgid "Check Document Now" msgstr "立刻檢查文件" msgid "Check Spelling While Typing" msgstr "打字同時檢查拼字" msgid "Check Grammar With Spelling" msgstr "檢查文法與拼字" msgid "Correct Spelling Automatically" msgstr "自動校正拼字" msgid "Substitutions" msgstr "替換項目" msgid "Show Substitutions" msgstr "顯示替換項目" msgid "Smart Copy/Paste" msgstr "智慧複製/貼上" msgid "Smart Quotes" msgstr "智慧引號" msgid "Smart Dashes" msgstr "智慧破折號" msgid "Smart Links" msgstr "智慧連結" msgid "Text Replacement" msgstr "文字取代" msgid "Transformations" msgstr "轉換" msgid "Make Upper Case" msgstr "轉為大寫" msgid "Make Lower Case" msgstr "轉為小寫" msgid "Capitalize" msgstr "轉為大寫" msgid "Speech" msgstr "朗讀" msgid "Start Speaking" msgstr "開始朗讀" msgid "Stop Speaking" msgstr "停止朗讀" msgid "&View" msgstr "檢視(&V)" msgid "Enter Full Screen" msgstr "進入全螢幕" msgid "Window" msgstr "視窗" msgid "Minimize" msgstr "最小化" msgid "Zoom" msgstr "調整遠近" msgid "Bring All to Front" msgstr "全部帶到最前方" #. TRANSLATORS:File kind displayed in Finder/Explorer msgid "PO Translation" msgstr "PO 翻譯" msgid "The file cannot be opened." msgstr "無法開啟檔案。" msgid "Invalid file" msgstr "檔案無效" msgid "" "The file may be either corrupted or in a format not recognized by Poedit." msgstr "檔案可能損毀,或是採用 Poedit 無法辨認的格式。" msgid "You can’t drop more than one file on Poedit window." msgstr "您不能拖曳超過一個檔案進 Poedit 視窗裡。" #, c-format msgid "File “%s” is not a message catalog." msgstr "「%s」檔不是訊息編目檔。" msgid "Poedit" msgstr "Poedit" msgid "&File" msgstr "檔案(&F)" msgid "&Go" msgstr "前往(&G)" #. TRANSLATORS: %s is language name in its basic form (as you #. would see e.g. in a list of supported languages). You may need #. to rephrase it, e.g. to an equivalent of "for language %s". #, c-format msgid "" "Spellchecking is disabled, because the dictionary for %s isn’t installed." msgstr "由於尚未安裝 %s 字典,已停用拼寫檢查。" msgid "Install" msgstr "安裝" msgid "Catalog modified. Do you want to save changes?" msgstr "專案已修改,您確定要儲存這些修改嗎?" msgid "Save changes" msgstr "儲存變更" msgid "Your changes will be lost if you don’t save them." msgstr "如果不儲存,會失去您所做過的變更。" msgid "Save" msgstr "儲存" msgid "Don’t save" msgstr "不要儲存" msgid "Don’t Save" msgstr "不要儲存" msgid "Save as…" msgstr "另存為…" msgid "Compile to…" msgstr "編譯成…" msgid "Compiled Translation Files" msgstr "編譯的翻譯檔" msgid "Export as…" msgstr "匯出為…" msgid "HTML Files" msgstr "HTML 檔案" msgid "Open catalog template" msgstr "開啟編目模板檔" msgid "Source code not available." msgstr "原始碼無法使用。" msgid "Updating failed" msgstr "更新失敗" msgid "" "Translations couldn’t be updated from the source code, because no code was " "found in the location specified in the catalog’s Properties." msgstr "" "由於在專案的屬性中所指定的位置找不到程式代碼,所以無法從原始碼更新翻譯。" msgid "Entries in the catalog are probably incorrect." msgstr "專案裡的項目可能有不正確。" msgid "Updating the catalog failed. Click on 'Details >>' for details." msgstr "專案更新失敗。請按下 [Details >>] 查看詳細資訊。" #, c-format msgid "%d issue with the translation found." msgid_plural "%d issues with the translation found." msgstr[0] "譯文中發現 %d 個問題。" msgid "Validation results" msgstr "驗證結果" msgid "" "Entries with errors were marked in red in the list. Details of the error " "will be shown when you select such an entry." msgstr "出錯的項目在清單中以紅色標記。您可以點選該項目以顯示詳細的錯誤資訊。" msgid "The file was saved safely." msgstr "檔案已順利儲存。" msgid "" "The file was saved safely and compiled into the MO format, but it will " "probably not work correctly." msgstr "檔案已順利儲存,且成功編譯為 MO 格式,但仍可能無法正常運作。" msgid "" "The file was saved safely, but it cannot be compiled into the MO format and " "used." msgstr "檔案已順利儲存,但是無法編譯成 MO 格式所以也無法真的使用。" msgid "" "The file was compiled into the MO format, but it will probably not work " "correctly." msgstr "檔案已編譯成 MO 格式,但可能無法正常運作。" msgid "The file cannot be compiled into the MO format and used." msgstr "檔案無法編譯成 MO 格式並使用。" msgid "No problems with the translation found." msgstr "找不到譯文的問題。" #, c-format msgid "The translation is ready for use, but %d entry is not translated yet." msgid_plural "" "The translation is ready for use, but %d entries are not translated yet." msgstr[0] "譯文已準備好可供使用,但還有 %d 項尚未翻譯。" msgid "The translation is ready for use." msgstr "譯文已準備好可供使用。" #, c-format msgid "Poedit automatically fixed invalid content in the file “%s”." msgstr "Poedit 已自動修正「%s」檔中的無效內容。" msgid "" "The file contained duplicate items, which is not allowed in PO files and " "would prevent the file from being used. Poedit fixed the issue, but you " "should review translations of any items marked as needing work and correct " "them if necessary." msgstr "" "檔案包含重複項目,然而 PO 檔並不允許重複,進而使檔案無法使用。Poedit 已修正這" "個問題,但您應該校閱任何標記為需要處理的項目,如有需要也請校正其內容。" msgid "Language of the translation isn’t set." msgstr "尚未設定譯文的語言。" msgid "Set Language" msgstr "設定語言" msgid "Set language" msgstr "設定語言" #. TRANSLATORS: This is shown underneath "Language of the translation isn't set (or ...is the same as source language)." msgid "" "Suggestions are not available if the translation language is not set " "correctly. Other features, such as plural forms, may be affected as well." msgstr "" "如果未正確設定翻譯語言,則無法使用翻譯建議。其他功能,如複數型,也可能受到影" "響。" msgid "Language of the translation is the same as source language." msgstr "翻譯語言與來源語言相同。" msgid "Fix Language" msgstr "修正語言" msgid "Fix language" msgstr "修正語言" msgid "" "This catalog has entries with plural forms, but doesn’t have Plural-Forms " "header configured." msgstr "這個編目檔內含有複數形式之條目,但卻尚未設定 Plural-Forms 檔頭。" msgid "" "Entries in this catalog have different plural forms count from what " "catalog’s Plural-Forms header says" msgstr "此編目檔中條目的複數形式數目,與編目檔 Plural-Forms 檔頭的記錄不符" msgid "Required header Plural-Forms is missing." msgstr "闕漏必要的 Plural-Forms 檔頭。" #, c-format msgid "Syntax error in Plural-Forms header (\"%s\")." msgstr "Plural-Forms 檔頭中有語法錯誤 (\"%s\")。" msgid "Fix the Header" msgstr "修正檔頭" msgid "Fix the header" msgstr "修正檔頭" #. TRANSLATORS: %s is language name in its basic form (as you #. would see e.g. in a list of supported languages). You may need #. to rephrase it, e.g. to an equivalent of "for language %s". #, c-format msgid "Plural forms expression used by the catalog is unusual for %s." msgstr "這個專案所採用的複數形式表述式,對 %s 來說並不常見。" #. TRANSLATORS: A verb, shown as action button with ""Plural forms expression used by the catalog is unusual for %s.")" msgid "Review" msgstr "校閱" #, c-format msgid "Error loading message catalog file “%s”." msgstr "載入訊息編目檔「%s」時發生錯誤。" #, c-format msgid "Translated: %d of %d (%d %%)" msgstr "已譯:%d / %d (%d %%)" #, c-format msgid "Remaining: %d" msgstr "剩餘:%d" #, c-format msgid "%d error" msgid_plural "%d errors" msgstr[0] "%d 項錯誤" #, c-format msgid "%d entry" msgid_plural "%d entries" msgstr[0] "%d 項" msgid " (unsaved)" msgstr " (未儲存)" msgid " (modified)" msgstr " (已修改)" #, c-format msgid "Failed to update translation memory: %s" msgstr "無法更新翻譯記憶:%s" msgid "Purge deleted translations" msgstr "淨空已刪除的譯文" msgid "Do you want to remove all translations that are no longer used?" msgstr "請問您是否想要移除所有不再用到的譯文?" msgid "" "If you continue with purging, all translations marked as deleted will be " "permanently removed. You will have to translate them again if they are added " "back in the future." msgstr "" "如果您繼續淨空,所有標示為已刪除之譯文將永遠移除。如果未來這些訊息重新加回" "來,您就得重新再翻譯一遍。" msgid "Keep" msgstr "保留" msgid "Purge" msgstr "淨空" msgid "Copy from source text" msgstr "從來源文字複製" msgid "Copy from Source Text" msgstr "從來源文字複製" #. TRANSLATORS: This is the key shortcut used in menus on Windows, some languages call them differently #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Ctrl+" msgstr "Ctrl+" msgid "Clear translation" msgstr "清除譯文" msgid "Clear Translation" msgstr "清除譯文" msgid "Edit comment" msgstr "編輯註解" msgid "Edit Comment" msgstr "編輯註解" msgid "References:" msgstr "參照:" msgid "&Bookmarks" msgstr "書籤(&B)" #. TRANSLATORS: This is the key shortcut used in menus on Windows, some languages call them differently #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Alt+" msgstr "Alt+" #, c-format msgid "Set bookmark %i" msgstr "設定書籤 %i" #, c-format msgid "Go to bookmark %i" msgstr "前往書籤 %i" #, c-format msgid "Set Bookmark %i" msgstr "設定書籤 %i" #, c-format msgid "Go to Bookmark %i" msgstr "前往書籤 %i" msgid "Hide Sidebar" msgstr "隱藏側邊欄" msgid "Show Sidebar" msgstr "顯示側邊欄" msgid "Hide Status Bar" msgstr "隱藏狀態列" msgid "Show Status Bar" msgstr "顯示狀態列" msgid "Source text:" msgstr "來源文字:" msgid "Singular:" msgstr "單數:" msgid "Plural:" msgstr "複數:" msgid "Translation:" msgstr "譯文:" msgid "Pre-translated" msgstr "前置翻譯" msgid "Needs Work" msgstr "需要處理" #. TRANSLATORS: This indicates that the string's translation isn't final #. and has known problems. For example, it might be machine translated or #. fuzzy matched from an older string. The translation should be short and #. convey this. If it's problematic to translate it, "Needs review" is #. acceptable substitute, but note that the meaning is subtly different: #. "needs review" implies that somebody else should review the string after #. I am done with it (i.e. consider it good), while "needs work" implies I #. need to return to it and finish the translation. msgid "Needs work" msgstr "需要處理" msgid "" "POT files are only templates and don’t contain any translations themselves.\n" "To make a translation, create a new PO file based on the template." msgstr "" "POT 檔僅只是翻譯模板,檔案內並不包含任何翻譯。\n" "若要翻譯,請根據該模板建立新的 PO 檔。" msgid "Create New Translation" msgstr "建立新翻譯" msgid "Create new translation" msgstr "建立新翻譯" msgid "Everything" msgstr "每一項" #, c-format msgid "Form %i" msgstr "形式 %i" msgid "Singular" msgstr "單數" msgid "Zero" msgstr "零" msgid "One" msgstr "壹" msgid "Two" msgstr "貳" msgid "Plural" msgstr "複數" msgid "Other" msgstr "其他" #, c-format msgid "%s Format" msgstr "%s 格式" #. TRANSLATORS: %s is replaced with language name, e.g. "PHP" or "C", so "PHP Format" etc." #, c-format msgid "%s format" msgstr "%s 格式" msgid "Source text" msgstr "來源文字" #, c-format msgid "Translation — %s" msgstr "譯文 — %s" msgid "ID" msgstr "ID" #, c-format msgid "Source text — %s" msgstr "來源文字 — %s" msgid "unknown language" msgstr "未知語言" #, c-format msgid "Failed command: %s" msgstr "指令執行失敗:%s" msgid "Failed to merge gettext catalogs." msgstr "無法合併 gettext 編目檔。" msgid "Source file" msgstr "來源檔案" msgid "Source file occurrence:" msgstr "來源檔案出現處:" msgid "Open in Editor" msgstr "以編輯器開啟" msgid "Open in editor" msgstr "以編輯器開啟" msgid "No references for the selected item." msgstr "選取的項目沒有參照。" #, c-format msgid "Error opening file %s!" msgstr "開啟 %s 檔時發生錯誤!" msgid "Find" msgstr "尋找" msgid "Replace" msgstr "取代" #. TRANSLATORS: Expander in Find window for additional options (case sensitive etc.) msgid "Options" msgstr "選項" msgid "Ignore case" msgstr "忽略字母大小寫" msgid "Wrap around" msgstr "前後循環" msgid "Whole words only" msgstr "只針對整個單詞" msgid "Find in source texts" msgstr "尋找來源文字" msgid "Find in translations" msgstr "從譯文中尋找" msgid "Find in comments" msgstr "從註解中尋找" msgid "Close" msgstr "關閉" msgid "Replace &All" msgstr "全部取代(&A)" msgid "Replace &all" msgstr "全部取代(&A)" msgid "&Replace" msgstr "取代(&R)" msgid "< &Previous" msgstr "< 上一個(&P)" msgid "&Next >" msgstr "下一個(&N) >" msgid "String to find" msgstr "要尋找的字串" msgid "Replacement string" msgstr "取代用字串" #, c-format msgid "Cannot execute program: %s" msgstr "無法執行程式:%s" msgid "Language Code or Name (e.g. en_GB)" msgstr "語言代碼或名稱 (例:zh_TW)" msgid "Translation Language" msgstr "譯文語言" msgid "Language of the translation:" msgstr "譯文的語言:" msgid "Poedit - Catalogs manager" msgstr "Poedit - 專案管理員" msgid "Catalog" msgstr "專案" msgid "Total" msgstr "總計" msgid "Untrans" msgstr "未譯" msgid "Errors" msgstr "錯誤" msgid "Last modified" msgstr "上次修改於" msgid "Select directory" msgstr "選取目錄" msgid "Directories:" msgstr "目錄:" msgid "" msgstr "<未命名>" msgid "Do you want to delete the project?" msgstr "請問您是否想刪除這個專案?" msgid "Confirmation" msgstr "確認" msgid "" "Do you really want to do mass update of\n" "all catalogs in this project?" msgstr "" "請問您是否真想要大規模更新\n" "這個專案中的所有專案?" msgid "Information about the translator" msgstr "譯者資訊" msgid "Name:" msgstr "姓名:" msgid "Your Name" msgstr "您的姓名" msgid "Email:" msgstr "電子郵件:" msgid "your_email@example.com" msgstr "your_email@example.com" msgid "" "Your name and email address are only used to set the Last-Translator header " "of GNU gettext files." msgstr "" "您的姓名與電子郵件位址僅用於設定 GNU gettext 檔的 Last-Translator 標頭部份。" msgid "Editing" msgstr "編輯" msgid "Automatically compile MO file when saving" msgstr "儲存時自動編譯 MO 檔" msgid "Show summary after catalog update" msgstr "更新專案後顯示摘要" msgid "Check spelling" msgstr "檢查拼寫" msgid "Always change focus to text input field" msgstr "永遠將焦點放在文字輸入欄位中" msgid "" "Never let the list of strings take focus. If enabled, you must use Ctrl-" "arrows for keyboard navigation but you can also type text immediately, " "without having to press Tab to change focus." msgstr "" "永遠不要讓字串清單取得焦點。如果您啟用這個選項,就得並用 Ctrl 鍵與方向鍵才能" "以鍵盤導覽,不過同時您能立即輸入文字,而不必先按 Tab 鍵變更輸入焦點。" msgid "Appearance" msgstr "外觀" msgid "Use custom list font:" msgstr "使用自訂清單字型:" msgid "Use custom text fields font:" msgstr "使用自訂文字欄位自型:" msgid "Change UI language" msgstr "變更介面語言" #. TRANSLATORS: This is a note appended to "Check spelling" when running on older Windows versions msgid "(requires Windows 8 or newer)" msgstr "(需要 Windows 8 或更高版本)" msgid "General" msgstr "一般" msgid "Use translation memory" msgstr "使用翻譯記憶" msgid "Learn From Files…" msgstr "從檔案中學習…" msgid "Learn from files…" msgstr "從檔案中學習…" #. TRANSLATORS: This is a button that deletes everything in the translation memory (i.e. clears/resets it). msgid "Reset" msgstr "重設" #. TRANSLATORS: Followed by "match translations within the file" or "pre-translate from TM" msgid "When updating from sources" msgstr "從來源更新時" #. TRANSLATORS: Preceded by "When updating from sources" msgid "fuzzy match within the file" msgstr "在檔案內部模糊比對" #. TRANSLATORS: Preceded by "When updating from sources" msgid "pre-translate from TM" msgstr "用翻譯記憶作為前置翻譯" msgid "" "Poedit can attempt to fill in new entries from only previous translations in " "the file or from your entire translation memory. Using the TM won’t be very " "effective if it’s near-empty, but it will get better as you add more " "translations to it." msgstr "" "Poedit 可以試圖根據檔案中之前的譯文填入新項目,或採用您的整個翻譯記憶填入新項" "目。若翻譯記憶的量很少則用起來效果不會很好,不過隨著您加入越多譯文效果也會逐" "漸改善。" msgid "Stored translations:" msgstr "儲存的翻譯:" msgid "Database size on disk:" msgstr "資料庫在磁碟上的大小:" msgid "Select translation files to import" msgstr "選取要匯入的翻譯檔" msgid "Translation Memory" msgstr "翻譯記憶" msgid "Importing translations…" msgstr "正匯入譯文…" msgid "Finalizing…" msgstr "正在收尾…" msgid "Reset translation memory" msgstr "重設翻譯記憶" msgid "Are you sure you want to reset the translation memory?" msgstr "您確定要重設翻譯記憶?" msgid "" "Resetting the translation memory will irrevocably delete all stored " "translations from it. You can’t undo this operation." msgstr "重設翻譯記憶將刪除所有儲存過的翻譯,且不可回復。您將無法還原這項操作。" msgid "Cancel" msgstr "取消" #. TRANSLATORS: This is abbreviation of "Translation Memory" used in Preferences on macOS. #. Long text looks weird there, too short (like TM) too, but less so. "General" is about ideal #. length there. msgid "TM" msgstr "翻譯記憶" msgid "" "Source code extractors are used to find translatable strings in the source " "code files and extract them so that they can be translated." msgstr "原始碼抽取器用於尋找源瑪檔中的可譯字串,並將之抽取出來以便翻譯。" msgid "Custom Extractors:" msgstr "自訂抽取器:" msgid "Custom extractors:" msgstr "自訂抽取器:" msgid "Edit…" msgstr "編輯…" msgid "GNU gettext" msgstr "GNU gettext" msgid "" "Supports all programming languages recognized by GNU gettext tools (PHP, C/C+" "+, C#, Perl, Python, Java, JavaScript and others)." msgstr "" "支援所有 GNU gettext 工具能辨識的程式語言(PHP、C/C++、C#、Perl、Python、" "Java、JavaScript 與其他等)。" msgid "Delete extractor" msgstr "刪除抽取器" #, c-format msgid "Are you sure you want to delete the “%s” extractor?" msgstr "您確定要刪除「%s」抽取器?" msgid "Extractors" msgstr "抽取器" msgid "Accounts" msgstr "帳號" msgid "Automatically check for updates" msgstr "自動檢查更新" msgid "Include beta versions" msgstr "包括 Beta 版" msgid "" "Beta versions contain the latest new features and improvements, but may be a " "bit less stable." msgstr "Beta 版本包含最新功能和改善,但可能有點不穩定。" msgid "Updates" msgstr "更新" msgid "" "These settings affect internal formatting of PO files. Adjust them if you " "have specific requirements e.g. because of version control." msgstr "" "這些設定會影響 PO 檔案的內部格式化處理方式。如果您有特定需求再調整它們,例" "如:需要行版本控制。" msgid "Line endings:" msgstr "列結尾:" msgid "Unix (recommended)" msgstr "Unix (建議採用)" msgid "Windows" msgstr "Windows" #. TRANSLATORS: Followed by text control for entering number; wraps text at given width msgid "Wrap at:" msgstr "換行位置:" msgid "Preserve formatting of existing files" msgstr "保留既有檔案的格式化處理方式" msgid "Advanced" msgstr "進階" msgid "Pre-translating…" msgstr "前置翻譯中…" #, c-format msgid "Pre-translated %u string" msgid_plural "Pre-translated %u strings" msgstr[0] "已前置翻譯 %u 項字串" #. TRANSLATORS: This is a somewhat common term describing the action where #. you apply the translation memory and/or machine translation to all of the #. strings you're translating as the first step, followed by correcting, #. improving etc., i.e. actually translating the strings. This may be tricky #. to express in other languages as simply as in English, but please try to #. keep it similarly concise. Please try to avoid, if possible, describing it #. as "auto-translation" and similar, because such terminology would mislead #. some users into thinking it's all that needs to be done (spoken from #. experience). "Pre-translate" nicely expresses that it's only the step done #. *before* actual translation. msgid "Pre-translate" msgstr "前置翻譯" msgid "Only fill in exact matches" msgstr "僅只填入完全相符項目" msgid "" "By default, inaccurate results are filled in as well and marked as needing " "work. Check this option to only include accurate matches." msgstr "" "預設情況下,也會同時填入不精確的項目,並將之標記為需要處理。勾選此選項以僅只" "納入精確符合的項目。" msgid "Don’t mark exact matches as needing work" msgstr "不要將完全符合的項目標記為需要處理" msgid "" "Only enable if you trust the quality of your TM. By default, all matches " "from the TM are marked as needing work and should be reviewed before use." msgstr "" "請您只有在信任翻譯記憶的品質時才啟用。預設情況下,所有翻譯記憶的符合項目都會" "標記為需要處理,並請在採用前先校閱。" msgid "" "Pre-translation automatically finds exact or fuzzy matches for untranslated " "strings in the translation memory and fills in their translations." msgstr "" "前置翻譯會從翻譯記憶中自動尋找完全相同、或相似的翻譯並填入未翻譯的項目中。" #, c-format msgid "%d entry was pre-translated." msgid_plural "%d entries were pre-translated." msgstr[0] "%d 項已先前置翻譯。" msgid "" "The translations were marked as needing work, because they may be " "inaccurate. You should review them for correctness." msgstr "這些譯文被標記為需要處理,可能翻譯尚未明確。您應該校閱它們是否正確。" msgid "No entries could be pre-translated." msgstr "沒有項目可以先前置翻譯。" msgid "" "The TM doesn’t contain any strings similar to the content of this file. It " "is only effective for semi-automatic translations after Poedit learns enough " "from files that you translated manually." msgstr "" "翻譯記憶尚未包含任何類似此檔案內容的字串。這僅在 Poedit 學習夠多您手動翻譯的" "檔案後,才會對半自動翻譯有效用。" msgid "" "Drag and Drop Folders Here\n" "\n" "or use the + button" msgstr "" "請將資料夾拖放到這裡\n" "\n" "或是使用 + 鈕" msgid "" "Drag and drop folders here\n" "\n" "or use the + button" msgstr "" "請將資料夾拖放到這裡\n" "\n" "或是使用 + 鈕" msgid "Add Folders…" msgstr "加入資料夾…" msgid "Add folders…" msgstr "加入資料夾…" msgid "Add Files…" msgstr "加入檔案…" msgid "Add files…" msgstr "加入檔案…" msgid "Add Wildcard…" msgstr "加入萬用字符…" msgid "Add wildcard…" msgstr "加入萬用字符…" msgid "Paths" msgstr "路徑" msgid "Excluded paths" msgstr "排除的路徑" msgid "Advanced extraction settings" msgstr "進階抽取設定" msgid "Extract notes for translators from:" msgstr "抽取翻譯者備註:" msgid "Comments prefixed with:" msgstr "註解前綴字為:" msgid "All comments" msgstr "所有註解" msgid "Additional xgettext flags:" msgstr "額外的 xgettext 旗標:" msgid "Additional keywords" msgstr "額外的關鍵字" msgid "Name of the project the translation is for" msgstr "翻譯的目標專案名稱" msgid "Team name and email address or URL" msgstr "團隊名稱和電子郵件位址或 URL" msgid "e.g. nplurals=2; plural=(n > 1);" msgstr "例:nplurals=2; plural=(n > 1);" msgid "UTF-8 (recommended)" msgstr "UTF-8 (建議採用)" msgid "Please save the file first. This section cannot be edited until then." msgstr "請先儲存檔案。直到儲存之後,此區段才能編輯。" msgid "Not all plural forms are translated." msgstr "尚未譯完所有的複數形。" msgid "The translation should start as a sentence." msgstr "譯文應該以句子起頭。" msgid "The translation should start with a lowercase character." msgstr "譯文應該以小寫字元起頭。" msgid "The translation doesn’t start with a space." msgstr "譯文並非以空白字元起同。" msgid "The translation starts with a space, but the source text doesn’t." msgstr "譯文以空白起頭,但源文並非如此。" msgid "The translation is missing a newline at the end." msgstr "譯文缺失結尾處的新列字元。" msgid "The translation ends with a newline, but the source text doesn’t." msgstr "譯文以新列字元結尾,但源文並非如此。" msgid "The translation is missing a space at the end." msgstr "譯文結尾缺失空白字元。" msgid "The translation ends with a space, but the source text doesn’t." msgstr "譯文以空白字元結尾,但源文並非如此。" #, c-format msgid "The translation should end with “%s”." msgstr "譯文應該以「%s」結尾。" #, c-format msgid "The translation should not end with “%s”." msgstr "譯文不應該以「%s」結尾。" #, c-format msgid "The translation ends with “%s”, but the source text ends with “%s”." msgstr "譯文雖以「%s」結尾,但源文卻以「%s」結尾。" msgid "Comment:" msgstr "註解:" msgid "OK" msgstr "確定" msgid "C&lear" msgstr "清除(&L)" msgid "Clear the comment" msgstr "清除註解" msgid "New" msgstr "新增" msgid "Create new translations project" msgstr "建立新的翻譯專案" msgid "Edit" msgstr "編輯" msgid "Edit the project" msgstr "編輯這個專案" msgid "Delete the project" msgstr "刪除本專案" msgid "Update all" msgstr "更新全部" msgid "Update all catalogs in the project" msgstr "更新專案中的所有專案" msgid "Edit project" msgstr "編輯專案" msgid "Project name:" msgstr "專案名稱:" msgid "Browse" msgstr "瀏覽" msgid "Add directory to the list" msgstr "把目錄加入清單中" msgid "&New…" msgstr "新增(&N)…" msgid "New from &POT/PO file…" msgstr "從 &POT/PO 檔新增…" msgid "New From &POT/PO File…" msgstr "從 &POT/PO 檔新增…" msgid "&Open…" msgstr "開啟(&O)…" msgid "Open Recent" msgstr "開啟最近檔案" msgid "Open from Crowdin…" msgstr "從 Crowdin 開啟…" msgid "Open From Crowdin…" msgstr "從 Crowdin 開啟…" msgid "&Close" msgstr "關閉(&C)" msgid "&Save" msgstr "儲存(&S)" msgid "Save &as…" msgstr "另存為(&A)…" msgid "Save &As…" msgstr "另存為(&A)…" msgid "Compile to MO…" msgstr "編譯成 MO…" msgid "E&xport as HTML…" msgstr "匯出為 HTML(&X)…" msgid "Check for updates…" msgstr "檢查更新…" msgid "&Preferences…" msgstr "偏好設定(&P)…" msgid "Catalogs &manager" msgstr "專案管理員(&M)" msgid "Catalogs &Manager" msgstr "專案管理員(&M)" msgid "E&xit" msgstr "離開(&X)" msgid "Quit" msgstr "退出" msgid "Copy from singular" msgstr "從單數複製" msgid "Copy From Singular" msgstr "從單數複製" msgid "Translation needs &work" msgstr "翻譯需要處理(&W)" msgid "Translation Needs &Work" msgstr "翻譯需要處理(&W)" msgid "Edit &comment" msgstr "編輯註解(&C)" msgid "Edit &Comment" msgstr "編輯註解(&C)" msgid "Suggestions" msgstr "建議" msgid "&Find…" msgstr "尋找(&F)…" msgid "Replace…" msgstr "取代…" msgid "Find next" msgstr "往後尋找" msgid "Find previous" msgstr "往前尋找" msgid "Find and Replace…" msgstr "尋找與取代…" msgid "Find Next" msgstr "往後尋找" msgid "Find Previous" msgstr "往前尋找" msgid "&Preferences" msgstr "偏好設定(&P)" msgid "Display entry &IDs" msgstr "顯示項目 &ID" msgid "Display Entry &IDs" msgstr "顯示項目 &ID" msgid "Sort by &file order" msgstr "按照檔案順序排列(&F)" msgid "Sort by &File Order" msgstr "按照檔案順序排列(&F)" msgid "Sort by &source" msgstr "按照來源排列(&S)" msgid "Sort by &Source" msgstr "按照來源排列(&S)" msgid "Sort by &translation" msgstr "按照譯文排列(&T)" msgid "Sort by &Translation" msgstr "按照譯文排列(&T)" msgid "&Group by context" msgstr "依情境分組(&G)" msgid "&Group By Context" msgstr "依情境分組(&)" msgid "Entries with errors first" msgstr "錯誤項目優先" msgid "Entries with Errors First" msgstr "錯誤項目優先" msgid "&Untranslated entries first" msgstr "先顯示未翻譯項(&U)" msgid "&Untranslated Entries First" msgstr "先顯示未翻譯項(&U)" msgid "&Show references" msgstr "顯示參照(&S)" msgid "&Show References" msgstr "顯示參照(&S)" msgid "Show sidebar" msgstr "顯示側邊欄" msgid "Show status bar" msgstr "顯示狀態列" msgid "C&atalog" msgstr "專案(&A)" msgid "&Update from sources" msgstr "從來源更新(&U)" msgid "&Update from Sources" msgstr "從來源更新(&U)" msgid "Update from &POT file…" msgstr "從 &POT 檔更新…" msgid "Update from &POT File…" msgstr "從 &POT 檔更新…" msgid "Sync with Crowdin" msgstr "與 Crowdin 同步" msgid "Pre-&translate…" msgstr "前置翻譯(&T)…" msgid "&Purge deleted translations" msgstr "淨空已刪除的譯文(&P)" msgid "&Purge Deleted Translations" msgstr "淨空已刪除的譯文(&P)" msgid "&Validate translations" msgstr "驗證譯文(&V)" msgid "&Validate Translations" msgstr "驗證譯文(&V)" msgid "&Properties…" msgstr "屬性(&P)…" msgid "&Done and next" msgstr "完成並移至下一項(&D)" msgid "&Done and Next" msgstr "完成並移至下一項(&D)" msgid "&Previous translation" msgstr "前一項翻譯(&P)" msgid "&Previous Translation" msgstr "前一項翻譯(&P)" msgid "&Next translation" msgstr "下一項翻譯(&N)" msgid "&Next Translation" msgstr "下一項翻譯(&N)" msgid "P&revious unfinished" msgstr "前一項未完成(&R)" msgid "P&revious Unfinished" msgstr "前一項未完成(&R)" msgid "Ne&xt unfinished" msgstr "下一項未完成(&X)" msgid "Ne&xt Unfinished" msgstr "下一項未完成(&X)" msgid "Previous plural form" msgstr "上個複數形式" msgid "Previous Plural Form" msgstr "上個複數形式" msgid "Next plural form" msgstr "下個複數形式" msgid "Next Plural Form" msgstr "下個複數形式" msgid "&Online help" msgstr "線上說明(&O)" msgid "&Online Help" msgstr "線上說明(&O)" msgid "&GNU gettext manual" msgstr "&GNU gettext 手冊" msgid "&GNU gettext Manual" msgstr "&GNU gettext 手冊" msgid "&About Poedit" msgstr "關於 Poedit(&A)" msgid "&About" msgstr "關於(&A)" msgid "Extractor setup" msgstr "抽取器設置" msgid "List of extensions separated by semicolons (e.g. *.cpp;*.h):" msgstr "副檔名清單,請用半形分號隔開 (例:*.cpp; *.h):" msgid "Invocation:" msgstr "喚起:" msgid "Command to extract translations:" msgstr "抽取翻譯用的指令:" msgid "" "This is the command used to launch the extractor.\n" "%o expands to the name of output file, %K to list\n" "of keywords, %F to list of input files,\n" "%C to charset flag (see below)." msgstr "" "這是用來啟動抽取器的指令。\n" "%o 會展開成輸出檔的名稱,%K 是\n" "關鍵字清單,%F 是輸入檔清單,\n" "%C 是字集旗標 (參閱下方)。" msgid "An item in keywords list:" msgstr "關鍵字清單中的一個項目:" msgid "" "This will be attached to the command line once\n" "for each keyword. %k expands to the keyword." msgstr "" "這個內容會按照每個關鍵字逐次\n" "附到命令列中。%k 會展開成關鍵字。" msgid "An item in input files list:" msgstr "輸入檔清單中的一個項目:" #, c-format msgid "" "This will be attached to the command line once\n" "for each input file. %f expands to the filename." msgstr "" "這個內容會按照每個輸入檔逐次\n" "附到命令列中。%f 會展開成檔名。" msgid "Source code charset:" msgstr "原始碼字集:" #, c-format msgid "" "This will be attached to the command line\n" "only if source code charset was given. %c expands to charset value." msgstr "" "只有在給定原始碼字集時,這個內容\n" "才會附到命令列中。%c 會展開成字集的值。" msgid "Catalog properties" msgstr "專案屬性" msgid "Project name and version:" msgstr "專案名稱及版本:" msgid "Language team:" msgstr "語言團隊:" msgid "Plural forms:" msgstr "複數形式:" msgid "Use default rules for this language" msgstr "使用此語言的預設規則" msgid "Use custom expression" msgstr "使用自訂表述式" msgid "Learn about plural forms" msgstr "瞭解複數型態" msgid "Charset:" msgstr "字元集:" msgid "Advanced Extraction Settings…" msgstr "進階抽取設定…" msgid "Advanced extraction settings…" msgstr "進階抽取設定…" msgid "Translation Properties" msgstr "譯文屬性" msgid "Translation properties" msgstr "譯文屬性" msgid "Sources Paths" msgstr "來源路徑" msgid "Sources paths" msgstr "來源路徑" msgid "Extract text from source files in the following directories:" msgstr "從下列目錄中擷取源檔內的文字" msgid "Base path:" msgstr "基礎路徑:" msgid "Sources Keywords" msgstr "來源關鍵字" msgid "Sources keywords" msgstr "來源關鍵字" msgid "" "Use these keywords (function names) to recognize translatable strings\n" "in source files:" msgstr "" "在來源檔案中使用這些關鍵字 (函式名稱) 來\n" "識別可翻譯字串:" msgid "Also use default keywords for supported languages" msgstr "也為支援的語言使用預設關鍵字" msgid "Learn About Gettext Keywords" msgstr "瞭解 Gettext 關鍵字" msgid "Learn about gettext keywords" msgstr "學習 gettext 關鍵字" msgid "Update summary" msgstr "更新摘要" msgid "" "These strings were found in the sources but were not in the catalog.\n" "Poedit will add them to the catalog now." msgstr "" "在來源中發現這些字串,但專案中卻沒有。\n" "Poedit 現在會將它們加入專案中。" msgid "New strings" msgstr "新增字串" msgid "" "These strings are no longer in the sources.\n" "Poedit will remove them from the catalog now." msgstr "" "這些字串已不在來源之中。\n" "Poedit 現在會從專案中將之移除。" msgid "Obsolete strings" msgstr "過時字串" msgid "(0 new, 0 obsolete)" msgstr "(沒有新的,也沒有過時的)" msgid "Open" msgstr "開啟" msgid "Save catalog" msgstr "儲存專案" msgid "Validate" msgstr "驗證" msgid "Check for errors in the translation" msgstr "檢查譯文中是否有錯誤" msgid "Update" msgstr "更新" msgid "Update catalog - synchronize it with sources" msgstr "更新專案 - 與來源同步" msgid "Sidebar" msgstr "側邊欄" msgid "Show or hide the sidebar" msgstr "顯示或隱藏側邊欄。" #. TRANSLATORS: "Previous" as in used in the past, now replaced with newer. msgid "Previous source text:" msgstr "過去的來源文字:" msgid "" "The old source text (before it changed during an update) that the now-" "inaccurate translation corresponds to." msgstr "現在的不精確譯文對應的是(在用模板檔更新之前)舊的源文。" msgid "Notes for translators:" msgstr "給譯者的備註:" msgid "Add comment" msgstr "加入註解" msgid "Add Comment" msgstr "加入註解" msgid "Translation suggestions:" msgstr "譯文建議:" #. TRANSLATORS: This is shown when no translation suggestions can be found in the TM (Windows). msgid "No matches found" msgstr "找不到符合項目" #. TRANSLATORS: This is shown when no translation suggestions can be found in the TM (macOS, Linux). msgid "No Matches Found" msgstr "找不到符合項目" msgid "This string was found in Poedit’s translation memory." msgstr "此字串已在 Poedit 的翻譯記憶中找到。" msgid "Cannot create temporary directory." msgstr "無法建立暫存目錄。" msgid "Welcome to Poedit" msgstr "歡迎使用 Poedit" #. TRANSLATORS: This is version information in about dialog, "%s" will be #. version number when used #, c-format msgid "Version %s" msgstr "版本 %s" msgid "Edit a Translation" msgstr "編輯翻譯" msgid "Edit a translation" msgstr "編輯譯文" msgid "Open an existing PO file and edit the translation." msgstr "開啟現有的 PO 檔並編輯譯文。" msgid "" "Take an existing PO file or POT template and create a new translation from " "it." msgstr "從既有的 PO 檔或 POT 模板檔建立新翻譯。" msgid "Collaborate on a Translation with Others" msgstr "與其他人協作翻譯" msgid "Collaborate on a translation with others" msgstr "與其他人協作翻譯" msgid "" "Download a file from Crowdin project, translate and sync your changes back." msgstr "從 Crowdin 下載檔案,翻譯,再將更動同步回去。" msgid "What is Crowdin?" msgstr "什麼是 Crowdin?" msgid "There are no translations. That’s unusual." msgstr "沒有譯文。這並不尋常。" msgid "" "Translatable entries aren’t added manually in the Gettext system, but are " "automatically extracted\n" "from source code. This way, they stay up to date and accurate.\n" "Translators typically use PO template files (POTs) prepared for them by the " "developer." msgstr "" "可翻譯條目並非以手動方式加入 Gettext 系統中,而是自動從源碼\n" "中抽出。如此一來,條目不只能維持在最新狀態,還能保持精確。\n" "譯者通常使用開發者提供的 PO 模板檔 (POT)。" msgid "(Learn more about GNU gettext)" msgstr "(深入瞭解 GNU gettext)" msgid "The simplest way to fill this catalog is to update it from a POT:" msgstr "填充此專案的最簡單方式就是從 POT 檔更新:" msgid "Update from POT" msgstr "從 POT 檔更新" msgid "Take translatable strings from an existing POT template." msgstr "從既有的 POT 模板檔拿取可翻譯字串。" msgid "" "You can also extract translatable strings directly from the source code:" msgstr "您也可以直接從原始碼抽出可翻譯字串:" msgid "Extract from sources" msgstr "從來源更新" msgid "Configure source code extraction in Properties." msgstr "在 [屬性] 中設定原始碼抽出項目。" msgid "Sync" msgstr "同步" msgid "Synchronize the translation with Crowdin" msgstr "同步 Crowdin 翻譯" #. TRANSLATORS: This is titlebar of about dialog, "%s" is application name #. ("Poedit" here, but please use "%s") #, c-format msgid "About %s" msgstr "關於 %s" #. TRANSLATORS: Title of the preferences window on Windows and Linux. "%s" is replaced with "Poedit" when running. #, c-format msgid "%s Preferences" msgstr "%s 偏好設定" #. TRANSLATORS: macOS item in app menu msgid "Services" msgstr "服務" #. TRANSLATORS: macOS item in app menu, %s is replaced with "Poedit" #, c-format msgid "Hide %s" msgstr "隱藏 %s" #. TRANSLATORS: macOS item in app menu msgid "Hide Others" msgstr "隱藏其他" #. TRANSLATORS: macOS item in app menu msgid "Show All" msgstr "顯示全部" #. TRANSLATORS: macOS item in app menu, %s is replaced with "Poedit" #, c-format msgid "Quit %s" msgstr "退出 %s" #. TRANSLATORS: macOS item in app menu msgid "Preferences…" msgstr "偏好設定…" msgid "Preferences..." msgstr "設定偏好..." #. TRANSLATORS: Title of a category in Windows task menu (right-click icon in taskbar) msgid "Recent" msgstr "最近" #. TRANSLATORS: Title of a category in Windows task menu (right-click icon in taskbar) msgid "Frequent" msgstr "常用" msgid "&Apply" msgstr "套用(&A)" msgid "Apply" msgstr "套用" msgid "&Back" msgstr "返回(&B)" msgid "Back" msgstr "返回" msgid "&Cancel" msgstr "取消(&C)" msgid "&Clear" msgstr "清除(&C)" msgid "Clear" msgstr "清除" msgid "Copy" msgstr "複製" msgid "Cu&t" msgstr "剪下(&T)" msgid "Cut" msgstr "剪下" msgid "&Delete" msgstr "刪除(&D)" msgid "&Quit" msgstr "離開(&Q)" msgid "File" msgstr "檔案" msgid "Help" msgstr "說明" msgid "&New" msgstr "新增(&N)" msgid "&No" msgstr "否(&N)" msgid "No" msgstr "否" msgid "&OK" msgstr "確定(&O)" msgid "Open…" msgstr "開啟…" msgid "&Open..." msgstr "開啟(&O)..." msgid "Open..." msgstr "開啟..." msgid "&Paste" msgstr "貼上(&P)" msgid "Paste" msgstr "貼上" msgid "Preferences" msgstr "偏好設定" msgid "&Redo" msgstr "重做(&R)" msgid "Refresh" msgstr "重整" msgid "&Save as" msgstr "另存為(&S)" msgid "Save as" msgstr "另存為" msgid "Select &All" msgstr "選取全部(&A)" msgid "Select All" msgstr "選取全部" msgid "&Undo" msgstr "復原(&U)" msgid "&Yes" msgstr "是(&Y)" msgid "Yes" msgstr "是" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Shift+" msgstr "Shift+" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Enter" msgstr "Enter" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Up" msgstr "上鍵" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Down" msgstr "下鍵" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Left" msgstr "左鍵" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Right" msgstr "右鍵" #. TRANSLATORS: Keyboard shortcut, must correspond to translation of "Ctrl+" msgid "ctrl" msgstr "ctrl" #. TRANSLATORS: Keyboard shortcut, must correspond to translation of "Alt+" msgid "alt" msgstr "alt" #. TRANSLATORS: Keyboard shortcut, must correspond to translation of "Shift+" msgid "shift" msgstr "shift" poedit-2.0.6/locales/ka.mo0000664000372000037200000006553713230132077012314 00000000000000KLx yJ  !% + 8E N[w4KQe |  ' *D IATI"!<.Ds##5; DQg} E"3?V"5    # 0=NV].cu2<G!!   #0OR  ( 2@Y r}< '   ! & ? L b j r x          - !;! U!c!l!r!!! !!!(!!! ! ! " ""<" C" P"!]""""""" " """" #!#1#F# [#g# # ## ####+#$Q$!o$L$`$Y?%m%:&;B&m~&_&[L''' ''''''( ("(,;(h(w((?(V(')0) C)N)_)g)7k)))))))++,$,,-9%-9_-"---->.>C..".H.K/Q/8h/5/H/H 0>i0508081 P18^1b112227Q272828233s83X3B4H48d44u5*6@6Z6t6O6W657N77788;A8A}88V8:09!k9497949/:E:e:J{:J:Y;Tk;;;;(;<&<?=F=S=7>>>>>;-?=i?:?7?7@!R@t@@g@@DBTWB_B CHCCujDDDE1E7CE {EEE>E;E:F=FGH!$H+FH rH%}H4HH:yI4IIJ;J;J KM7M N[NMjNN@N OO:)O.dOGOO!O P2 P2SP1P7PP$Q%Q"DQgQCnQQFU>#VybV%VWW.WAW`W4yWW?W/XN>X?X/XNX=LY%Y#Y&Y&YD"Z7gZ>Z'ZP[{W[[[^\-]^__`?a@acd d:de 8e8Be{e7eee.fZ0f}f7 g!Ag7cg g"hi7ijA5jwj jj 'k4kPkTkYk\0EiL[tvwVM lH>| ~Cqefdj6<9Ko ,/ RDuN4(+x=_h&GU3#IYS'}52b:n8z$Pyk.a ]?mZsB;^JFOW!7{r1Q*)%cT"AXg`-p@ (modified)%d issue with the translation found.%d issues with the translation found.&About&About Poedit&Bookmarks&Close&Done and Next&Done and next&Edit&File&Go&Help&Online Help&Online help&Open...&Preferences&Purge Deleted Translations&Purge deleted translations&Save&Show References&Show references&Untranslated Entries First&Untranslated entries first&Update from Sources&Update from sources&Validate Translations&Validate translations&View(0 new, 0 obsolete)(Use default language)About %sAccountsAdd CommentAdd commentAdd directory to the listAll Translation FilesAlt+Always change focus to text input fieldAn item in input files list:An item in keywords list:BackBase path:Broken catalog file: plural form msgstr used without msgid_pluralBroken catalog file: singular form msgstr used together with msgid_pluralBrowseC&atalogC&learCancelCannot create temporary directory.Cannot execute program: %sCatalogCatalog modified. Do you want to save changes?Catalog propertiesCatalogs &ManagerCatalogs &managerChange UI languageCharset:Check for errors in the translationCheck spellingClearClear TranslationClear the commentClear translationCloseComment:ConfirmationCopy from Source TextCopy from source textCorrect Spelling AutomaticallyCreate new translations projectCtrl+CutDeleteDelete the projectDirectories:Do you really want to do mass update of all catalogs in this project?Do you want to delete the project?Do you want to remove all translations that are no longer used?Downloading latest translations…Downloading translations is disabled in this project.E&xitEditEdit &CommentEdit &commentEdit CommentEdit commentEdit projectEdit the projectEditingEmail:EnterEntries in the catalog are probably incorrect.Entries with errors were marked in red in the list. Details of the error will be shown when you select such an entry.Error opening fileError opening file %s!Error saving catalogExtract text from source files in the following directories:Failed command: %sFailed to load extracted catalog.Failed to merge gettext catalogs.FileFile:FindFind in commentsFix the headerForm %iHTML FilesHelpHide SidebarHide this notification messageIDIf you continue with purging, all translations marked as deleted will be permanently removed. You will have to translate them again if they are added back in the future.InstallInvocation:KeepLanguage selectionLanguage:Last modifiedLearn More About CrowdinLearn about plural formsLearn moreLearn more about CrowdinList of extensions separated by semicolons (e.g. *.cpp;*.h):Name:Ne&xt UnfinishedNe&xt unfinishedNever let the list of strings take focus. If enabled, you must use Ctrl-arrows for keyboard navigation but you can also type text immediately, without having to press Tab to change focus.NewNew stringsNoNo problems with the translation found.Notes for translators:OKObsolete stringsOneOpenOpen Crowdin translationOpen catalogOpen catalog templateOpen...OptionsOtherP&revious UnfinishedP&revious unfinishedPO Translation FilesPOT Translation TemplatesPastePathsPluralPlural:PoeditPoedit - Catalogs managerPoedit is an easy to use translations editor.Project name and version:Project name:Project:PurgePurge deleted translationsQuitRedoReferences:RefreshReplaceRequired header Plural-Forms is missing.ResetSaveSave catalogSave changesSelect AllSelect directorySelect your preferred languageShift+Show SidebarShow sidebarShow summary after catalog updateSidebarSign InSign OutSign inSign in to CrowdinSign outSigned in as:Singular:Sort by &File OrderSort by &SourceSort by &TranslationSort by &file orderSort by &sourceSort by &translationSource code charset:Source fileSource file occurrence:Source textSource text:Sources keywordsSources pathsSpelling and GrammarSyncSyncing with Crowdin failed.Syntax error in Plural-Forms header ("%s").TMThe file was saved safely, but it cannot be compiled into the MO format and used.The translation is ready for use.There was a problem formatting the file nicely (but it was saved all right).There were errors when loading the catalog. Some data may be missing or corrupted as the result.These strings are no longer in the sources. Poedit will remove them from the catalog now.These strings were found in the sources but were not in the catalog. Poedit will add them to the catalog now.This file can only be edited in Crowdin’s web interface.This project has no files that can be translated in Poedit.This will be attached to the command line only if source code charset was given. %c expands to charset value.This will be attached to the command line once for each input file. %f expands to the filename.This will be attached to the command line once for each keyword. %k expands to the keyword.TotalTranslation MemoryTranslation:TwoUTF-8 (recommended)UndoUnix (recommended)UntransUpdateUpdate allUpdate all catalogs in the projectUpdate catalog - synchronize it with sourcesUpdate summaryUpdatesUpdating catalogUpdating the catalog failed. Click on 'Details >>' for details.Use these keywords (function names) to recognize translatable strings in source files:ValidateValidation resultsVersion %sWhole words onlyWindowsYesYou must restart Poedit for this change to take effect.ZeroZoomaltctrlshiftProject-Id-Version: poedit Report-Msgid-Bugs-To: help@poedit.net POT-Creation-Date: 2017-12-05 15:52+0100 PO-Revision-Date: 2017-12-05 09:49-0500 Last-Translator: vslavik Language-Team: Georgian Language: ka_GE MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=(n != 1); X-Generator: crowdin.com X-Crowdin-Project: poedit X-Crowdin-Language: ka X-Crowdin-File: /locales/poedit.pot (შეიცვალა)თარგმანთან დაკავშირებით წარმოიშვა %d შეფერხება.თარგმანთან დაკავშირებით წარმოიშვა %d შეფერხება.შ&ესახებPoedit-ის შ&ესახებ&სანიშნეებიდა&კეტვა&დასრულება და შემდეგი&დასრულება და შემდეგი&რედაქტირება&ფაილი&გადასვლა&დახმარება&ონლაინ-სახელმძღვანელო&ონლაინ-სახელმძღვანელოგ&ახსნა...&პარამეტრები&წაშლილ თარგმანთა გაწმენდაწაშლილი თარგმანების &ამოშლაშ&ენახვა&მითითებების ჩვენებააჩვენე დ&ახმარებები&ჯერ უთარგმნელი შენატანები&ჯერ უთარგმნელი შენატანებიწყაროებიდან &განახლებაგანახლება &წყაროდანთარგმანის &ვალიდაციათარგმანის &ვალიდაცია&ხედი(0 ახალი, 0 მოძველებული)(გამოიყენე სისტემის სტანდარტული ენა)<უსახელო>%s-ის შესახებანგარიშებიკომენტარის დამატებაკომენტარის დამატებაუჯრის სიაში დამატებათარგმნის ყველა ფაილიAlt+ყოველთვის გააქტიურე ტექსტის ჩასაწერი ველიელემენტი შესაყვანი ფაილის სიაში:ელემენტი სიტყვათა სიაში:დაბრუნებაძირითადი მდებარეობა:არასწორი catalog ფაილი: გამოყენებულია msgstr მრავლობითის ფორმა, msgid_plural -ის მითითების გარეშეარასწორი catalog ფაილი: მხოლობითი ფორმა msgstr გამოყენებულია msgid_plural -თან ერთადმოძიებაკ&ატალოგიგა&წმენდაგაუქმებადროებითი ფოლდერი ვერ შეიქმნა.%s პროგრამის გაშვება ვერ ხერხდებაკატალოგიკატალოგი შეიცვალა. გნებავთ ცვლილებების შენახვა?კატალოგის თვისებებიკატალოგთა &მმართველიკატალოგების &მენეჯერიინტერფეისის ენის შეცვლაკოდირება:თარგმანში შეცდომების შემოწმებამართლწერის შემოწმებაგასუფთავებათარგმანის გაწმენდადოკუმენტის გაწმენდათარგმანის გაწმენდადაკეტვაშენიშვნები:დასტურისაწყისი ტექსტიდან კოპირებასაწყისი ტექსტიდან კოპირებამართლწერის ავტომატური შემოწმებაშექმენი ახალი სათარგმი პროექტიCtrl+ამოჭრაწაშლაპროექტის წაშლაუჯრები:მართლა გნებავთ ამ პროექტში მყოფი ყველა კატალოგის მასიური განახლება განახორციელოთ?გნებავთ პროექტის წაშლა?გსურთ ყველა იმ თარგმანის წაშლა, რომლებიც აღარ გამოიყენება?იტვირთება უახლესი თარგმანები…თარგმანების ჩამოტვირთვა გამორთულია ამ პროექტში.გა&სვლადამუშავებაშენიშვნის &რედაქტირებაშე&ნიშვნის დამუშავებაშენიშვნის რედაქტირებაშენიშვნის დამუშავებაპროექტის დამუშავებაპროექტის დამუშავებარედაქტირებაელ-ფოსტა:Enterშენატანები კატალოგში ალბათ არასწორია.შეცდომებიან შენატანები სიაში წითლად არის მონიშნული. შეცდომის დეტალები შენატანის არჩევისას გამოჩნდება.შეცდომა ფაილის გახსნისასშეცდომა %s ფაილის გამოძახებისას!შეცდომა კატალოგის დამახსოვრებისასშემდეგი ფოლდერებში წყარო-ფაილებიდან ტექსტის ამოღება:ვერ შესრულებული ბრძანება: %sამოღებული კატალოგის ჩატვირთვა ვერ განხორციელდა.gettext კატალოგთა გაერთიანება ვერ განხორციელდა.ფაილიფაილი:ძებნაშენიშვნებში ძიებაჰედერის გამოსწორება%i-დანHTML ფაილებიდახმარებაგვერდითა ზოლის დამალვადამალე ეს შეტყობინებაIDთუ გაწმენდას გააგრძელებთ, სამუდამოდ წაიშლება ყველა ის თარგმანი, რომლებიც აღარ გამოიყენება. მომავალში მათი ხელახლა თარგმნა მოგიწევთ, თუ კატალოგს კვლავ დაემატება.დაყენებაინვოკაცია:შენარჩუნებაენების ამორჩევაენა:ბოლო ცვლილებაშეიტყვეთ მეტი Crowdin-ზედამატებითი ინფორმაცია მრავლობითის ფორმებთან დაკავშირებითდამატებითი ინფიმაციაშეიტყვეთ მეტი Crowdin-ზეგაფართოებების სია წერტილ-მძიმეებით გამოყოფილი (მაგ. *.cpp;*.h):სახელი:შემ&დეგი დაუსრულებელიშემ&დეგი დაუსრულებელიარასოდეს გააქტიურდეს სათარგმნი ტექსტების სარკმელი. თუ ამ ფუნქციას ჩართავთ, Ctrl+ისრების საშუალებით შეგეძლებათ ტექსტებს შორის ნავიგაცია, მაგრამ ტექსტის შეყვანა პირდაპირ იქნება შესაძლებელი, შესაბამისად ტექსტის ჩასაწერად Tab ღილაკზე ხელის დაჭერა აღარ მოგიწევთახალიახალი შეტყობინებებიარათარგმანში შეცდომები ვერ მოიძებნა.შენიშვნები მთარგმნელთათვის:კარგიმოძველებული სტრიქონებიერთიგახსნაიხილეთ Crowdin-ის თარგმანიკატალოგის გახსნაკატალოგის შაბლონის გახსნაგახსნა...პარამეტრებისხვაწ&ინა დაუსრულებელიწ&ინა დაუსრულებელიPO თარგმნის ფაილებიPO თარგმნის შაბლონებიჩასმამდებარეობებიმრავლობითიმრავლობითში:PoeditPoedit - კატალოგების მენეჯერიPoedit ადვილად გამოსაყენებელი თარგმანების რედაქტორია.პროექტის სახელი და ვერსია:პროექტის სახელი:პროექტი:გაწმენდაწაშლილი თარგმანებისგან გაწმენდაგასვლააღდგენადახმარებები:განახლებაჩანაცვლებაფაილს აკლია აუცილებელი ჰედერი მრავლობითის ფორმებთან (Plural-Forms) დაკავშირებით.გადატვირთვაშენახვაკატალოგის დამახსოვრებაცვლილებების დამახსოვრებაყველას მონიშვნაუჯრის ამორჩევაამოირჩიეთ სასურველი ენაShift+გვერდითა ზოლის ჩვენებაგვერდითა ზოლის ჩვენებაკატალოგის განახლების შემდეგ შედეგები აჩვენეგვერდითა ზოლიშესვლაგამოსვლაშესვლაშედით Crowdin-ზეგამოსვლაშესული ხართ, როგორც:მხოლობითში:&ფაილის წყობით დალაგება&წყაროთი დალაგებათ&არგმანის მიხედვით დალაგება&ფაილის წყობით დალაგება&წყაროთი დალაგებათ&არგმანის მიხედვით დალაგებაპროგრ. წყაროს კოდირება:საწყისი ფაილიწყაროს ფაილი:წყაროს ტექსტი:წყაროს ტექსტი:წყაროს საკვანძო სიტყვებიწყაროს მდებარეობებიმართლწერა და გრამატიკასინქრონიზაციაCrowdin-თან სინქრონიზაცია ჩაიშალა.სინტაქსური შეცდომა Plural-Forms ჰედერის ჩანაწერში ("%s").TMფაილი წარმატებით იქნა შენახული, თუმცა მისი MO ფორმატში კომპილაცია და გამოყენება ვერ მოხერხდა.თარგმანი გამოსაყენებლად მზად არის.ფაილის უკეთ ფორმატირებისას პრობლემა შეიქმნა (თუმცა ფაილი გამართულად იქნა შენახული).შეცდომა კატალოგის გამოძახებისას. შესაძლოა ინფორმაციის ნაწილი არასრული ან დაზიანებული იყოს.ეს სტრიწონები წყაროებში აღარ მოიპოვება. Poedit კატალოგიდან ამოშლის მათ.ეს სიტყვები მოიძებნა წყაროებში, თუმცა კატალოგებში არა. poEdir კატალოგში დაამატებს მათ.ამ ფაილის რედაქტირება შეიძლება მხოლოდ Crowdin-ის ვებ-ინტერფეისზე.ამ პროექტს არ აქვს ფაილები, რომლების თარგმნა შეიძლება Poedit-ზე.ეს მიემაგრება ბრძანებათა სტრიქონს მხოლოდ მაშინ თუ წყაროს კოდირება (charset) მითითებული იყო. %c ჩანაცვლდება კოდირების სახელით.ეს მიემაგრება ბრძანებათა სტრიქონს ყოველ შესაყვან ფაილზე. %f გაიშლება ფაილის სახელად.ეს ბრძანებათა სტრიქონს მიემაგრება ერთხელ ყოველ სიტყვაზე. %k იშლება როგორც სიტყვა.სულთარგმანის მეხსიერებათარგმანი:ორიUTF-8 (რეკომენდირებულია)დაბრუნებაUnix (რეკომენდირებულია)უთარგმნგანახლებაყველას განახლებაგანაახლე ყველა კატალოგი პროექტშიკატალოგის განახლება - წყაროებთან სინქრონიზებაშეჯამების განახლებაგანახლებებიკატალოგის განახლებაკატალოგის განახლება ვერ განხორციელდა. დააწკაპუნეთ „დაწვრილებით >>“-ზე დამატებითი ინფორმაციისათვის.წყაროს ფაილებში თარგმნადი სტრიქონების ამოსაცნობად ამ საკვანძო სიტყვების (ფუნქციათა სახელების) გამოყენება:ვალიდაციავალიდაციის შედეგებივერისა %sმხოლოდ მთლიანი სიტყვებიWindowsდიახამ ცვლილების გასააქტიურებლად Poedit თავიდან უნდა გამოიძახოთ.ნულიდაახლოებაaltctrlshiftpoedit-2.0.6/locales/be@latin.po0000664000372000037200000012213013230132075013417 00000000000000# Belarusian latin translation of poedit # Alaksandar Navicki , 2007 msgid "" msgstr "" "Project-Id-Version: Poedit 1.6\n" "Report-Msgid-Bugs-To: help@poedit.net\n" "POT-Creation-Date: 2017-12-05 15:52+0100\n" "PO-Revision-Date: 2008-03-03 14:41+0200\n" "Last-Translator: Alaksandar Navicki \n" "Language-Team: \n" "Language: be@latin\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Poedit-SourceCharset: utf-8\n" "Plural-Forms: nplurals=3; plural=n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 " "|| n%100>=20) ? 1 : 2;\n" msgid "Hide this notification message" msgstr "" msgid "Don’t Show Again" msgstr "" msgid "Don’t show again" msgstr "" #, fuzzy, c-format msgid "(New: %i, obsolete: %i)" msgstr "(%i novych, %i sastarełych)" #, fuzzy msgid "Updating catalog" msgstr "Aktualizacyja katalohu..." msgid "Collecting source files…" msgstr "" msgid "Extracting translatable strings…" msgstr "" msgid "Failed to load extracted catalog." msgstr "Nie ŭdałosia zahruzić raspakavany katalah." msgid "Merging differences…" msgstr "" #, c-format msgid "“%s” is not a valid POT file." msgstr "" #, c-format msgid "%i line of file “%s” was not loaded correctly." msgid_plural "%i lines of file “%s” were not loaded correctly." msgstr[0] "" msgstr[1] "" msgstr[2] "" #, c-format msgid "Line %d of file “%s” is corrupted (not valid %s data)." msgstr "" #, c-format msgid "Malformed header: “%s”" msgstr "" msgid "" "Broken catalog file: singular form msgstr used together with msgid_plural" msgstr "" "Paškodžany fajł katalohu: adzinočny lik z msgstr užyty razam z msgid_plural" msgid "Broken catalog file: plural form msgstr used without msgid_plural" msgstr "Paškodžany fajł katalohu: množny lik z msgstr užyty biez msgid_plural" msgid "" "There were errors when loading the catalog. Some data may be missing or " "corrupted as the result." msgstr "" "Zdarylisia pamyłki padčas zahruzki katalohu, i tamu moža nie stavać častki " "źviestak, albo jany mohuć być niapravilnymi." #, c-format msgid "Couldn’t load file %s, it is probably corrupted." msgstr "" #, c-format msgid "" "File “%s” is read-only and cannot be saved.\n" "Please save it under different name." msgstr "" #, c-format msgid "Couldn’t save file %s." msgstr "" msgid "" "There was a problem formatting the file nicely (but it was saved all right)." msgstr "" #, c-format msgid "" "The catalog couldn’t be saved in “%s” charset as specified in catalog " "settings.\n" "\n" "It was saved in UTF-8 instead and the setting was modified accordingly." msgstr "" msgid "Error saving catalog" msgstr "Pamyłka pry zapisie katalohu" #, fuzzy msgid "PO Translation Files" msgstr "Pamiać pierakładaŭ" #, fuzzy msgid "POT Translation Templates" msgstr "Pamiać pierakładaŭ" msgid "All Translation Files" msgstr "" msgid "(Use default language)" msgstr "(Užyj zmoŭčanuju movu)" msgid "Select your preferred language" msgstr "" msgid "Language selection" msgstr "Vybar movy" msgid "You must restart Poedit for this change to take effect." msgstr "Kab źmieny byli zachavanyja, treba ŭruchomić prahramu Poedit znoŭ." msgid "Syncing" msgstr "" #. TRANSLATORS: %s is a cloud destination, e.g. "Crowdin" or ftp.wordpress.com etc. #, c-format msgid "Syncing with %s…" msgstr "" #. TRANSLATORS: %s is a cloud destination, e.g. "Crowdin" or ftp.wordpress.com etc. #, c-format msgid "Syncing with %s failed." msgstr "" msgid "Syncing error" msgstr "" msgid "Downloading translations is disabled in this project." msgstr "" msgid "Not authorized, please sign in again." msgstr "" msgid "" "Crowdin is an online localization management platform and collaborative " "translation tool. Poedit can seamlessly sync PO files managed at Crowdin." msgstr "" msgid "Sign In" msgstr "" msgid "Sign in" msgstr "" msgid "Sign Out" msgstr "" msgid "Sign out" msgstr "" msgid "Waiting for authentication…" msgstr "" msgid "Updating user information…" msgstr "" msgid "Signed in as:" msgstr "" msgid "Learn More About Crowdin" msgstr "" msgid "Learn more about Crowdin" msgstr "" msgid "Sign in to Crowdin" msgstr "" msgid "Open Crowdin translation" msgstr "" msgid "Project:" msgstr "" msgid "Language:" msgstr "Mova:" msgid "File:" msgstr "" msgid "No translation projects listed in your Crowdin account." msgstr "" msgid "This project has no files that can be translated in Poedit." msgstr "" msgid "This file can only be edited in Crowdin’s web interface." msgstr "" msgid "Downloading latest translations…" msgstr "" msgid "Syncing with Crowdin failed." msgstr "" msgid "Crowdin error" msgstr "" msgid "Uploading translations…" msgstr "" msgid "&Copy" msgstr "" msgid "Learn more" msgstr "" msgid "Learn More" msgstr "" msgid "&Help" msgstr "&Dapamoha" msgid "MO files can’t be directly edited in Poedit." msgstr "" #, fuzzy msgid "Error opening file" msgstr "Pamyłka pry adčynieńni fajłu %s!" msgid "" "Please open and edit the corresponding PO file instead. When you save it, " "the MO file will be updated as well." msgstr "" msgid "don’t delete temporary files (for debugging)" msgstr "" msgid "handle a poedit:// URI" msgstr "" msgid "go to item at given line number" msgstr "" msgid "Failed to communicate with Poedit process." msgstr "" #, c-format msgid "Unhandled exception occurred: %s" msgstr "" msgid "Open catalog" msgstr "Adčyni kataloh" #, c-format msgid "File “%s” doesn’t exist." msgstr "" msgid "Poedit is an easy to use translations editor." msgstr "" #, fuzzy msgid "Catalogs Manager" msgstr "&Kiraŭnik katalohaŭ" msgid "Check for Updates…" msgstr "" msgid "&Edit" msgstr "&Redahuj" msgid "Undo" msgstr "Viarni" msgid "Redo" msgstr "" msgid "Paste and Match Style" msgstr "" msgid "Delete" msgstr "Vydal" msgid "Spelling and Grammar" msgstr "" msgid "Show Spelling and Grammar" msgstr "" msgid "Check Document Now" msgstr "" msgid "Check Spelling While Typing" msgstr "" msgid "Check Grammar With Spelling" msgstr "" msgid "Correct Spelling Automatically" msgstr "" msgid "Substitutions" msgstr "" msgid "Show Substitutions" msgstr "" msgid "Smart Copy/Paste" msgstr "" msgid "Smart Quotes" msgstr "" msgid "Smart Dashes" msgstr "" msgid "Smart Links" msgstr "" msgid "Text Replacement" msgstr "" #, fuzzy msgid "Transformations" msgstr "Pierakład" msgid "Make Upper Case" msgstr "" msgid "Make Lower Case" msgstr "" msgid "Capitalize" msgstr "" msgid "Speech" msgstr "" msgid "Start Speaking" msgstr "" msgid "Stop Speaking" msgstr "" msgid "&View" msgstr "&Vyhlad" msgid "Enter Full Screen" msgstr "" #, fuzzy msgid "Window" msgstr "Windows" msgid "Minimize" msgstr "" msgid "Zoom" msgstr "" msgid "Bring All to Front" msgstr "" #. TRANSLATORS:File kind displayed in Finder/Explorer #, fuzzy msgid "PO Translation" msgstr "Pierakład" msgid "The file cannot be opened." msgstr "" msgid "Invalid file" msgstr "" msgid "" "The file may be either corrupted or in a format not recognized by Poedit." msgstr "" msgid "You can’t drop more than one file on Poedit window." msgstr "" #, c-format msgid "File “%s” is not a message catalog." msgstr "" msgid "Poedit" msgstr "Poedit" msgid "&File" msgstr "&Fajł" msgid "&Go" msgstr "" #. TRANSLATORS: %s is language name in its basic form (as you #. would see e.g. in a list of supported languages). You may need #. to rephrase it, e.g. to an equivalent of "for language %s". #, c-format msgid "" "Spellchecking is disabled, because the dictionary for %s isn’t installed." msgstr "" msgid "Install" msgstr "" msgid "Catalog modified. Do you want to save changes?" msgstr "Kataloh zmadyfikavany. Zapisać źmieny?" msgid "Save changes" msgstr "Zapišy źmieny" msgid "Your changes will be lost if you don’t save them." msgstr "" msgid "Save" msgstr "Zapišy" msgid "Don’t save" msgstr "" msgid "Don’t Save" msgstr "" msgid "Save as…" msgstr "" msgid "Compile to…" msgstr "" #, fuzzy msgid "Compiled Translation Files" msgstr "Pierakład" msgid "Export as…" msgstr "" msgid "HTML Files" msgstr "" msgid "Open catalog template" msgstr "Adčyni šablon katalohu" #, fuzzy msgid "Source code not available." msgstr "Kadavańnie kryničnaha kodu:" #, fuzzy msgid "Updating failed" msgstr "Aktualizacyja katalohu..." msgid "" "Translations couldn’t be updated from the source code, because no code was " "found in the location specified in the catalog’s Properties." msgstr "" msgid "Entries in the catalog are probably incorrect." msgstr "Zapisy ŭ katalohu vierahodna niapravilnyja." #, fuzzy msgid "Updating the catalog failed. Click on 'Details >>' for details." msgstr "" "Nie ŭdałosia aktualizavać kataloh. Kab paznajomicca z padrabiaznaściami, " "klikni 'Bolej>>'." #, c-format msgid "%d issue with the translation found." msgid_plural "%d issues with the translation found." msgstr[0] "" msgstr[1] "" msgstr[2] "" #, fuzzy msgid "Validation results" msgstr "Pamiać pierakładaŭ" msgid "" "Entries with errors were marked in red in the list. Details of the error " "will be shown when you select such an entry." msgstr "" msgid "The file was saved safely." msgstr "" msgid "" "The file was saved safely and compiled into the MO format, but it will " "probably not work correctly." msgstr "" msgid "" "The file was saved safely, but it cannot be compiled into the MO format and " "used." msgstr "" msgid "" "The file was compiled into the MO format, but it will probably not work " "correctly." msgstr "" msgid "The file cannot be compiled into the MO format and used." msgstr "" #, fuzzy msgid "No problems with the translation found." msgstr "Spasyłak da hetaj frazy nia znojdziena." #, fuzzy, c-format msgid "The translation is ready for use, but %d entry is not translated yet." msgid_plural "" "The translation is ready for use, but %d entries are not translated yet." msgstr[0] "Pierakład &sumniŭny" msgstr[1] "Pierakład &sumniŭny" msgstr[2] "Pierakład &sumniŭny" #, fuzzy msgid "The translation is ready for use." msgstr "Pierakład &sumniŭny" #, c-format msgid "Poedit automatically fixed invalid content in the file “%s”." msgstr "" msgid "" "The file contained duplicate items, which is not allowed in PO files and " "would prevent the file from being used. Poedit fixed the issue, but you " "should review translations of any items marked as needing work and correct " "them if necessary." msgstr "" msgid "Language of the translation isn’t set." msgstr "" #, fuzzy msgid "Set Language" msgstr "Abiary movu" #, fuzzy msgid "Set language" msgstr "Abiary movu" #. TRANSLATORS: This is shown underneath "Language of the translation isn't set (or ...is the same as source language)." msgid "" "Suggestions are not available if the translation language is not set " "correctly. Other features, such as plural forms, may be affected as well." msgstr "" msgid "Language of the translation is the same as source language." msgstr "" msgid "Fix Language" msgstr "" msgid "Fix language" msgstr "" msgid "" "This catalog has entries with plural forms, but doesn’t have Plural-Forms " "header configured." msgstr "" msgid "" "Entries in this catalog have different plural forms count from what " "catalog’s Plural-Forms header says" msgstr "" msgid "Required header Plural-Forms is missing." msgstr "" #, c-format msgid "Syntax error in Plural-Forms header (\"%s\")." msgstr "" msgid "Fix the Header" msgstr "" msgid "Fix the header" msgstr "" #. TRANSLATORS: %s is language name in its basic form (as you #. would see e.g. in a list of supported languages). You may need #. to rephrase it, e.g. to an equivalent of "for language %s". #, c-format msgid "Plural forms expression used by the catalog is unusual for %s." msgstr "" #. TRANSLATORS: A verb, shown as action button with ""Plural forms expression used by the catalog is unusual for %s.")" msgid "Review" msgstr "" #, c-format msgid "Error loading message catalog file “%s”." msgstr "" #, c-format msgid "Translated: %d of %d (%d %%)" msgstr "" #, c-format msgid "Remaining: %d" msgstr "" #, c-format msgid "%d error" msgid_plural "%d errors" msgstr[0] "" msgstr[1] "" msgstr[2] "" #, c-format msgid "%d entry" msgid_plural "%d entries" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgid " (unsaved)" msgstr "" msgid " (modified)" msgstr " (zmadyfikavany)" #, fuzzy, c-format msgid "Failed to update translation memory: %s" msgstr "Aktualizuj pamiać pierakładaŭ" msgid "Purge deleted translations" msgstr "Ačyść ad nieŭžyvanych pierakładaŭ" msgid "Do you want to remove all translations that are no longer used?" msgstr "" #, fuzzy msgid "" "If you continue with purging, all translations marked as deleted will be " "permanently removed. You will have to translate them again if they are added " "back in the future." msgstr "" "Sapraŭdy vydalić usie nieŭžyvanyja pierakłady z katalohu?\n" "Kali tak, daviadziecca pierakładać ich jašče raz, kali raptam u budučyni ich " "znoŭ dadaduć." msgid "Keep" msgstr "" msgid "Purge" msgstr "" #, fuzzy msgid "Copy from source text" msgstr "&Aktualizuj z krynicaŭ" msgid "Copy from Source Text" msgstr "" #. TRANSLATORS: This is the key shortcut used in menus on Windows, some languages call them differently #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Ctrl+" msgstr "" #, fuzzy msgid "Clear translation" msgstr "Pierakład" #, fuzzy msgid "Clear Translation" msgstr "Pierakład" msgid "Edit comment" msgstr "Redahuj kamentar" #, fuzzy msgid "Edit Comment" msgstr "Redahuj &kamentar" msgid "References:" msgstr "Spasyłki:" msgid "&Bookmarks" msgstr "&Zakładki" #. TRANSLATORS: This is the key shortcut used in menus on Windows, some languages call them differently #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Alt+" msgstr "" #, fuzzy, c-format msgid "Set bookmark %i" msgstr "Paznač zakładku %i\tAlt-%i" #, fuzzy, c-format msgid "Go to bookmark %i" msgstr "Pierajdzi da zakładki %i\tCtrl-%i" #, fuzzy, c-format msgid "Set Bookmark %i" msgstr "Paznač zakładku %i\tAlt-%i" #, fuzzy, c-format msgid "Go to Bookmark %i" msgstr "Pierajdzi da zakładki %i\tCtrl-%i" msgid "Hide Sidebar" msgstr "" msgid "Show Sidebar" msgstr "" msgid "Hide Status Bar" msgstr "" msgid "Show Status Bar" msgstr "" #, fuzzy msgid "Source text:" msgstr "Kryničny fajł" msgid "Singular:" msgstr "Adzinočny lik:" msgid "Plural:" msgstr "Množny lik:" #, fuzzy msgid "Translation:" msgstr "Pierakład" msgid "Pre-translated" msgstr "" msgid "Needs Work" msgstr "" #. TRANSLATORS: This indicates that the string's translation isn't final #. and has known problems. For example, it might be machine translated or #. fuzzy matched from an older string. The translation should be short and #. convey this. If it's problematic to translate it, "Needs review" is #. acceptable substitute, but note that the meaning is subtly different: #. "needs review" implies that somebody else should review the string after #. I am done with it (i.e. consider it good), while "needs work" implies I #. need to return to it and finish the translation. msgid "Needs work" msgstr "" msgid "" "POT files are only templates and don’t contain any translations themselves.\n" "To make a translation, create a new PO file based on the template." msgstr "" msgid "Create New Translation" msgstr "" #, fuzzy msgid "Create new translation" msgstr "Stvary novy prajekt pierakładaŭ" msgid "Everything" msgstr "" #, c-format msgid "Form %i" msgstr "Forma %i" msgid "Singular" msgstr "" msgid "Zero" msgstr "" msgid "One" msgstr "" msgid "Two" msgstr "" msgid "Plural" msgstr "" msgid "Other" msgstr "" #, c-format msgid "%s Format" msgstr "" #. TRANSLATORS: %s is replaced with language name, e.g. "PHP" or "C", so "PHP Format" etc." #, c-format msgid "%s format" msgstr "" #, fuzzy msgid "Source text" msgstr "Kryničny fajł" #, fuzzy, c-format msgid "Translation — %s" msgstr "Pierakład" msgid "ID" msgstr "" #, c-format msgid "Source text — %s" msgstr "" msgid "unknown language" msgstr "" #, c-format msgid "Failed command: %s" msgstr "Pamyłka zahadu: %s" msgid "Failed to merge gettext catalogs." msgstr "Nie ŭdałosia spałuvyć katalahi gettext." msgid "Source file" msgstr "Kryničny fajł" #, fuzzy msgid "Source file occurrence:" msgstr "Kryničny fajł" #, fuzzy msgid "Open in Editor" msgstr "Redaktar" #, fuzzy msgid "Open in editor" msgstr "Redaktar" msgid "No references for the selected item." msgstr "" #, c-format msgid "Error opening file %s!" msgstr "Pamyłka pry adčynieńni fajłu %s!" #, fuzzy msgid "Find" msgstr "Znajdzi..." msgid "Replace" msgstr "" #. TRANSLATORS: Expander in Find window for additional options (case sensitive etc.) msgid "Options" msgstr "" msgid "Ignore case" msgstr "" msgid "Wrap around" msgstr "" msgid "Whole words only" msgstr "Tolki cełyja słovy" msgid "Find in source texts" msgstr "" #, fuzzy msgid "Find in translations" msgstr "Pierakład" msgid "Find in comments" msgstr "Znajdzi ŭ kamentaroch" #, fuzzy msgid "Close" msgstr "Za&čyni" msgid "Replace &All" msgstr "" msgid "Replace &all" msgstr "" msgid "&Replace" msgstr "" #, fuzzy msgid "< &Previous" msgstr "< Papiaredni" #, fuzzy msgid "&Next >" msgstr "Nastupny >" msgid "String to find" msgstr "" msgid "Replacement string" msgstr "" #, fuzzy, c-format msgid "Cannot execute program: %s" msgstr "Niemahčyma ŭruchomić prahramu: " msgid "Language Code or Name (e.g. en_GB)" msgstr "" #, fuzzy msgid "Translation Language" msgstr "Pierakład" #, fuzzy msgid "Language of the translation:" msgstr "Ačyść ad nieŭžyvanych pierakładaŭ" msgid "Poedit - Catalogs manager" msgstr "Poedit – Kiraŭnik katalohaŭ" msgid "Catalog" msgstr "Kataloh" msgid "Total" msgstr "Usiaho" msgid "Untrans" msgstr "Niepierakł" msgid "Errors" msgstr "" msgid "Last modified" msgstr "Niadaŭna zmadyfikavana" msgid "Select directory" msgstr "Abiary kataloh" msgid "Directories:" msgstr "Katalohi:" msgid "" msgstr "" msgid "Do you want to delete the project?" msgstr "Sapraŭdy vydalić hety prajekt?" msgid "Confirmation" msgstr "Paćvierdžańnie" msgid "" "Do you really want to do mass update of\n" "all catalogs in this project?" msgstr "" "Ty sapraŭdy chočaš masava aktualizavać\n" "usie katalohi ŭ hetym prajekcie?" #, fuzzy msgid "Information about the translator" msgstr "Ačyść ad nieŭžyvanych pierakładaŭ" msgid "Name:" msgstr "" #, fuzzy msgid "Your Name" msgstr "Imia j proźvišča:" msgid "Email:" msgstr "" msgid "your_email@example.com" msgstr "" msgid "" "Your name and email address are only used to set the Last-Translator header " "of GNU gettext files." msgstr "" #, fuzzy msgid "Editing" msgstr "Redahuj" #, fuzzy msgid "Automatically compile MO file when saving" msgstr "Aŭtamatyčna stvaraj fajł .mo pry zapisie" msgid "Show summary after catalog update" msgstr "Pakazvaj padsumavańni paśla aktualizacyi katalohu" msgid "Check spelling" msgstr "" msgid "Always change focus to text input field" msgstr "Zaŭždy pierachodź da pola ŭvodu tekstu" msgid "" "Never let the list of strings take focus. If enabled, you must use Ctrl-" "arrows for keyboard navigation but you can also type text immediately, " "without having to press Tab to change focus." msgstr "" "Nikoli nie davaj fokus śpisu radkoŭ. Kali ŭklučana, treba karystacca Ctrl" "+strełkami dla navihacyi z klavijatury, ale možna taksama ŭvodzić tekst " "adrazu, biez naciskańnia Tab, kab źmianić fokus." msgid "Appearance" msgstr "" #, fuzzy msgid "Use custom list font:" msgstr "Užyj ułasny šryft dla tekstavych paloŭ" #, fuzzy msgid "Use custom text fields font:" msgstr "Užyj ułasny šryft dla tekstavych paloŭ" msgid "Change UI language" msgstr "Źmiani movu interfejsu" #. TRANSLATORS: This is a note appended to "Check spelling" when running on older Windows versions msgid "(requires Windows 8 or newer)" msgstr "" msgid "General" msgstr "" #, fuzzy msgid "Use translation memory" msgstr "Aktualizuj pamiać pierakładaŭ" msgid "Learn From Files…" msgstr "" msgid "Learn from files…" msgstr "" #. TRANSLATORS: This is a button that deletes everything in the translation memory (i.e. clears/resets it). msgid "Reset" msgstr "" #. TRANSLATORS: Followed by "match translations within the file" or "pre-translate from TM" msgid "When updating from sources" msgstr "" #. TRANSLATORS: Preceded by "When updating from sources" msgid "fuzzy match within the file" msgstr "" #. TRANSLATORS: Preceded by "When updating from sources" msgid "pre-translate from TM" msgstr "" msgid "" "Poedit can attempt to fill in new entries from only previous translations in " "the file or from your entire translation memory. Using the TM won’t be very " "effective if it’s near-empty, but it will get better as you add more " "translations to it." msgstr "" #, fuzzy msgid "Stored translations:" msgstr "Sumniŭny pierakład" msgid "Database size on disk:" msgstr "" #, fuzzy msgid "Select translation files to import" msgstr "Aktualizuj pamiać pierakładaŭ" msgid "Translation Memory" msgstr "Pamiać pierakładaŭ" msgid "Importing translations…" msgstr "" msgid "Finalizing…" msgstr "" #, fuzzy msgid "Reset translation memory" msgstr "Aktualizuj pamiać pierakładaŭ" #, fuzzy msgid "Are you sure you want to reset the translation memory?" msgstr "Aktualizuj pamiać pierakładaŭ" msgid "" "Resetting the translation memory will irrevocably delete all stored " "translations from it. You can’t undo this operation." msgstr "" msgid "Cancel" msgstr "Anuluj" #. TRANSLATORS: This is abbreviation of "Translation Memory" used in Preferences on macOS. #. Long text looks weird there, too short (like TM) too, but less so. "General" is about ideal #. length there. msgid "TM" msgstr "" msgid "" "Source code extractors are used to find translatable strings in the source " "code files and extract them so that they can be translated." msgstr "" msgid "Custom Extractors:" msgstr "" msgid "Custom extractors:" msgstr "" msgid "Edit…" msgstr "" msgid "GNU gettext" msgstr "" msgid "" "Supports all programming languages recognized by GNU gettext tools (PHP, C/C+" "+, C#, Perl, Python, Java, JavaScript and others)." msgstr "" msgid "Delete extractor" msgstr "" #, c-format msgid "Are you sure you want to delete the “%s” extractor?" msgstr "" #, fuzzy msgid "Extractors" msgstr "&Aktualizuj z krynicaŭ" msgid "Accounts" msgstr "" #, fuzzy msgid "Automatically check for updates" msgstr "Aŭtamatyčna praviaraj najaŭnaść novaj versii Poedit" msgid "Include beta versions" msgstr "" msgid "" "Beta versions contain the latest new features and improvements, but may be a " "bit less stable." msgstr "" #, fuzzy msgid "Updates" msgstr "Aktualizuj" msgid "" "These settings affect internal formatting of PO files. Adjust them if you " "have specific requirements e.g. because of version control." msgstr "" #, fuzzy msgid "Line endings:" msgstr "Farmat zakančeńnia radkoŭ:" msgid "Unix (recommended)" msgstr "" msgid "Windows" msgstr "Windows" #. TRANSLATORS: Followed by text control for entering number; wraps text at given width msgid "Wrap at:" msgstr "" msgid "Preserve formatting of existing files" msgstr "" msgid "Advanced" msgstr "" msgid "Pre-translating…" msgstr "" #, c-format msgid "Pre-translated %u string" msgid_plural "Pre-translated %u strings" msgstr[0] "" msgstr[1] "" msgstr[2] "" #. TRANSLATORS: This is a somewhat common term describing the action where #. you apply the translation memory and/or machine translation to all of the #. strings you're translating as the first step, followed by correcting, #. improving etc., i.e. actually translating the strings. This may be tricky #. to express in other languages as simply as in English, but please try to #. keep it similarly concise. Please try to avoid, if possible, describing it #. as "auto-translation" and similar, because such terminology would mislead #. some users into thinking it's all that needs to be done (spoken from #. experience). "Pre-translate" nicely expresses that it's only the step done #. *before* actual translation. msgid "Pre-translate" msgstr "" msgid "Only fill in exact matches" msgstr "" msgid "" "By default, inaccurate results are filled in as well and marked as needing " "work. Check this option to only include accurate matches." msgstr "" msgid "Don’t mark exact matches as needing work" msgstr "" msgid "" "Only enable if you trust the quality of your TM. By default, all matches " "from the TM are marked as needing work and should be reviewed before use." msgstr "" msgid "" "Pre-translation automatically finds exact or fuzzy matches for untranslated " "strings in the translation memory and fills in their translations." msgstr "" #, c-format msgid "%d entry was pre-translated." msgid_plural "%d entries were pre-translated." msgstr[0] "" msgstr[1] "" msgstr[2] "" msgid "" "The translations were marked as needing work, because they may be " "inaccurate. You should review them for correctness." msgstr "" msgid "No entries could be pre-translated." msgstr "" msgid "" "The TM doesn’t contain any strings similar to the content of this file. It " "is only effective for semi-automatic translations after Poedit learns enough " "from files that you translated manually." msgstr "" msgid "" "Drag and Drop Folders Here\n" "\n" "or use the + button" msgstr "" msgid "" "Drag and drop folders here\n" "\n" "or use the + button" msgstr "" msgid "Add Folders…" msgstr "" msgid "Add folders…" msgstr "" msgid "Add Files…" msgstr "" msgid "Add files…" msgstr "" msgid "Add Wildcard…" msgstr "" msgid "Add wildcard…" msgstr "" msgid "Paths" msgstr "Ściežki" msgid "Excluded paths" msgstr "" msgid "Advanced extraction settings" msgstr "" msgid "Extract notes for translators from:" msgstr "" msgid "Comments prefixed with:" msgstr "" msgid "All comments" msgstr "" msgid "Additional xgettext flags:" msgstr "" #, fuzzy msgid "Additional keywords" msgstr "Abjekt u śpisie klučavych słovaŭ:" #, fuzzy msgid "Name of the project the translation is for" msgstr "Spasyłak da hetaj frazy nia znojdziena." msgid "Team name and email address or URL" msgstr "" msgid "e.g. nplurals=2; plural=(n > 1);" msgstr "" msgid "UTF-8 (recommended)" msgstr "" msgid "Please save the file first. This section cannot be edited until then." msgstr "" msgid "Not all plural forms are translated." msgstr "" msgid "The translation should start as a sentence." msgstr "" msgid "The translation should start with a lowercase character." msgstr "" msgid "The translation doesn’t start with a space." msgstr "" msgid "The translation starts with a space, but the source text doesn’t." msgstr "" msgid "The translation is missing a newline at the end." msgstr "" msgid "The translation ends with a newline, but the source text doesn’t." msgstr "" msgid "The translation is missing a space at the end." msgstr "" msgid "The translation ends with a space, but the source text doesn’t." msgstr "" #, c-format msgid "The translation should end with “%s”." msgstr "" #, c-format msgid "The translation should not end with “%s”." msgstr "" #, c-format msgid "The translation ends with “%s”, but the source text ends with “%s”." msgstr "" msgid "Comment:" msgstr "Kamentar:" msgid "OK" msgstr "OK" #, fuzzy msgid "C&lear" msgstr "Vyčyść" msgid "Clear the comment" msgstr "Vyčyść hety kamentar" msgid "New" msgstr "Novy" msgid "Create new translations project" msgstr "Stvary novy prajekt pierakładaŭ" msgid "Edit" msgstr "Redahuj" msgid "Edit the project" msgstr "Redahuj prajekt" msgid "Delete the project" msgstr "Vydal prajekt" msgid "Update all" msgstr "Aktualizuj usie" msgid "Update all catalogs in the project" msgstr "Aktualizuj usie katalohi ŭ prajekcie" msgid "Edit project" msgstr "Redahuj prajekt" msgid "Project name:" msgstr "Nazva prajektu:" msgid "Browse" msgstr "Prahladaj" msgid "Add directory to the list" msgstr "Dadaj kataloh u śpis" msgid "&New…" msgstr "" msgid "New from &POT/PO file…" msgstr "" msgid "New From &POT/PO File…" msgstr "" msgid "&Open…" msgstr "" #, fuzzy msgid "Open Recent" msgstr "Adčyni kataloh" msgid "Open from Crowdin…" msgstr "" msgid "Open From Crowdin…" msgstr "" msgid "&Close" msgstr "Za&čyni" msgid "&Save" msgstr "&Zapišy" msgid "Save &as…" msgstr "" msgid "Save &As…" msgstr "" msgid "Compile to MO…" msgstr "" msgid "E&xport as HTML…" msgstr "" msgid "Check for updates…" msgstr "" msgid "&Preferences…" msgstr "" msgid "Catalogs &manager" msgstr "&Kiraŭnik katalohaŭ" #, fuzzy msgid "Catalogs &Manager" msgstr "&Kiraŭnik katalohaŭ" #, fuzzy msgid "E&xit" msgstr "Redahuj" msgid "Quit" msgstr "" msgid "Copy from singular" msgstr "" msgid "Copy From Singular" msgstr "" msgid "Translation needs &work" msgstr "" msgid "Translation Needs &Work" msgstr "" msgid "Edit &comment" msgstr "Redahuj &kamentar" #, fuzzy msgid "Edit &Comment" msgstr "Redahuj &kamentar" #, fuzzy msgid "Suggestions" msgstr "Pamiać pierakładaŭ" msgid "&Find…" msgstr "" msgid "Replace…" msgstr "" #, fuzzy msgid "Find next" msgstr "Znajdzi ŭ kamentaroch" #, fuzzy msgid "Find previous" msgstr "< Papiaredni" msgid "Find and Replace…" msgstr "" #, fuzzy msgid "Find Next" msgstr "Znajdzi ŭ kamentaroch" #, fuzzy msgid "Find Previous" msgstr "< Papiaredni" #, fuzzy msgid "&Preferences" msgstr "Nałady" #, fuzzy msgid "Display entry &IDs" msgstr "Pakazvaj &numary radkoŭ" #, fuzzy msgid "Display Entry &IDs" msgstr "Pakazvaj &dvukośsi" msgid "Sort by &file order" msgstr "" msgid "Sort by &File Order" msgstr "" #, fuzzy msgid "Sort by &source" msgstr "Pierakład" msgid "Sort by &Source" msgstr "" #, fuzzy msgid "Sort by &translation" msgstr "Sumniŭny pierakład" #, fuzzy msgid "Sort by &Translation" msgstr "Pierakład" msgid "&Group by context" msgstr "" msgid "&Group By Context" msgstr "" msgid "Entries with errors first" msgstr "" msgid "Entries with Errors First" msgstr "" msgid "&Untranslated entries first" msgstr "" msgid "&Untranslated Entries First" msgstr "" msgid "&Show references" msgstr "&Pakazvaj spasyłki" #, fuzzy msgid "&Show References" msgstr "&Pakazvaj spasyłki" msgid "Show sidebar" msgstr "" msgid "Show status bar" msgstr "" msgid "C&atalog" msgstr "K&ataloh" msgid "&Update from sources" msgstr "&Aktualizuj z krynicaŭ" #, fuzzy msgid "&Update from Sources" msgstr "&Aktualizuj z krynicaŭ" msgid "Update from &POT file…" msgstr "" msgid "Update from &POT File…" msgstr "" msgid "Sync with Crowdin" msgstr "" msgid "Pre-&translate…" msgstr "" msgid "&Purge deleted translations" msgstr "&Ačyść ad nieŭžyvanych pierakładaŭ" #, fuzzy msgid "&Purge Deleted Translations" msgstr "&Ačyść ad nieŭžyvanych pierakładaŭ" #, fuzzy msgid "&Validate translations" msgstr "&Pryciemnieny śpis pierakładaŭ" #, fuzzy msgid "&Validate Translations" msgstr "Pierakład" msgid "&Properties…" msgstr "" #, fuzzy msgid "&Done and next" msgstr "Znajdzi ŭ kamentaroch" msgid "&Done and Next" msgstr "" #, fuzzy msgid "&Previous translation" msgstr "Pierakład" #, fuzzy msgid "&Previous Translation" msgstr "Pierakład" #, fuzzy msgid "&Next translation" msgstr "Pierakład" #, fuzzy msgid "&Next Translation" msgstr "Pierakład" msgid "P&revious unfinished" msgstr "" msgid "P&revious Unfinished" msgstr "" msgid "Ne&xt unfinished" msgstr "" msgid "Ne&xt Unfinished" msgstr "" msgid "Previous plural form" msgstr "" msgid "Previous Plural Form" msgstr "" msgid "Next plural form" msgstr "" msgid "Next Plural Form" msgstr "" msgid "&Online help" msgstr "" msgid "&Online Help" msgstr "" #, fuzzy msgid "&GNU gettext manual" msgstr "Dakumentacyja GNU gettext" #, fuzzy msgid "&GNU gettext Manual" msgstr "Dakumentacyja GNU gettext" #, fuzzy msgid "&About Poedit" msgstr "&Pra..." #, fuzzy msgid "&About" msgstr "&Pra..." #, fuzzy msgid "Extractor setup" msgstr "&Aktualizuj z krynicaŭ" msgid "List of extensions separated by semicolons (e.g. *.cpp;*.h):" msgstr "Śpis pašyreńniaŭ, padzielenych znakam ';' (naprykład: *.cpp;*.h):" msgid "Invocation:" msgstr "Vyklik:" #, fuzzy msgid "Command to extract translations:" msgstr "Aŭtamatyčnyja pierakłady:" #, fuzzy msgid "" "This is the command used to launch the extractor.\n" "%o expands to the name of output file, %K to list\n" "of keywords, %F to list of input files,\n" "%C to charset flag (see below)." msgstr "" "Heta zahad, jaki vykarystoŭvajecca dziela ŭruchamleńnia analizatara.\n" "%o aznačaje nazvu vyjściovaha fajłu, %K śpis klučavych słovaŭ,\n" "%F śpis uvachodnych fajłaŭ, %C paznačaje kadavańnie (hladzi nižej)." msgid "An item in keywords list:" msgstr "Abjekt u śpisie klučavych słovaŭ:" msgid "" "This will be attached to the command line once\n" "for each keyword. %k expands to the keyword." msgstr "" "Heta budzie dałučana da zahadnaha radka\n" "dla kožnaha klučavoha słova. %k razhortvaje klučavoje słova." msgid "An item in input files list:" msgstr "Abjekt u śpisie ŭvachodnych fajłaŭ:" #, c-format msgid "" "This will be attached to the command line once\n" "for each input file. %f expands to the filename." msgstr "" "Heta budzie dadadziena da zahdanaha radka\n" "dla kožnaha ŭvachodnaha fajłu. %f razhortvaje nazvu fajłu." msgid "Source code charset:" msgstr "Kadavańnie kryničnaha kodu:" #, c-format msgid "" "This will be attached to the command line\n" "only if source code charset was given. %c expands to charset value." msgstr "" msgid "Catalog properties" msgstr "" msgid "Project name and version:" msgstr "Nazva prajektu i versija:" msgid "Language team:" msgstr "" msgid "Plural forms:" msgstr "" #, fuzzy msgid "Use default rules for this language" msgstr "(Užyj zmoŭčanuju movu)" msgid "Use custom expression" msgstr "" msgid "Learn about plural forms" msgstr "" msgid "Charset:" msgstr "Nabor znakaŭ:" msgid "Advanced Extraction Settings…" msgstr "" msgid "Advanced extraction settings…" msgstr "" msgid "Translation Properties" msgstr "" #, fuzzy msgid "Translation properties" msgstr "Pamiać pierakładaŭ" msgid "Sources Paths" msgstr "" #, fuzzy msgid "Sources paths" msgstr "Ściežki pošuku" msgid "Extract text from source files in the following directories:" msgstr "" msgid "Base path:" msgstr "Asnoŭnaja ściežka:" msgid "Sources Keywords" msgstr "" #, fuzzy msgid "Sources keywords" msgstr "Ściežki pošuku" #, fuzzy msgid "" "Use these keywords (function names) to recognize translatable strings\n" "in source files:" msgstr "" "Užyj hetyja klučavyja słovy (nazvy funkcyjaŭ) dziela raspaznańnia\n" "pierakładaŭ u fajłach-krynicach, jak dadatak da zmoŭčanych słovaŭ." msgid "Also use default keywords for supported languages" msgstr "" msgid "Learn About Gettext Keywords" msgstr "" msgid "Learn about gettext keywords" msgstr "" msgid "Update summary" msgstr "Aktualizuj padsumavańnie" msgid "" "These strings were found in the sources but were not in the catalog.\n" "Poedit will add them to the catalog now." msgstr "" "Hetyja frazy byli znojdzienyja ŭ aryhinale, ale ich niama ŭ katalohu.\n" "Poedit dadaść ich zaraz u kataloh." msgid "New strings" msgstr "Novyja frazy" msgid "" "These strings are no longer in the sources.\n" "Poedit will remove them from the catalog now." msgstr "" "Hetych fraz u aryhinale ŭžo niama.\n" "Poedit vydalić ich zaraz z katalohu." msgid "Obsolete strings" msgstr "Sastarełyja frazy" msgid "(0 new, 0 obsolete)" msgstr "(0 novych, 0 sastarełych)" msgid "Open" msgstr "Adčyni" msgid "Save catalog" msgstr "Zapišy kataloh" #, fuzzy msgid "Validate" msgstr "Pamiać pierakładaŭ" #, fuzzy msgid "Check for errors in the translation" msgstr "Skapijuj aryhinał u pole pierakładu" msgid "Update" msgstr "Aktualizuj" msgid "Update catalog - synchronize it with sources" msgstr "Aktualizuj kataloh – synchranizuj jaho z krynicami" msgid "Sidebar" msgstr "" msgid "Show or hide the sidebar" msgstr "" #. TRANSLATORS: "Previous" as in used in the past, now replaced with newer. #, fuzzy msgid "Previous source text:" msgstr "&Aktualizuj z krynicaŭ" msgid "" "The old source text (before it changed during an update) that the now-" "inaccurate translation corresponds to." msgstr "" #, fuzzy msgid "Notes for translators:" msgstr "Aŭtamatyčnyja pierakłady:" #, fuzzy msgid "Add comment" msgstr "Redahuj kamentar" #, fuzzy msgid "Add Comment" msgstr "Redahuj &kamentar" #, fuzzy msgid "Translation suggestions:" msgstr "Pamiać pierakładaŭ" #. TRANSLATORS: This is shown when no translation suggestions can be found in the TM (Windows). #, fuzzy msgid "No matches found" msgstr "Nia znojdziena fajłaŭ u: " #. TRANSLATORS: This is shown when no translation suggestions can be found in the TM (macOS, Linux). msgid "No Matches Found" msgstr "" #, fuzzy msgid "This string was found in Poedit’s translation memory." msgstr "Aktualizuj pamiać pierakładaŭ" #, fuzzy msgid "Cannot create temporary directory." msgstr "Niemahčyma stvaryć kataloh bazy źviestak!" #, fuzzy msgid "Welcome to Poedit" msgstr "&Pra..." #. TRANSLATORS: This is version information in about dialog, "%s" will be #. version number when used #, fuzzy, c-format msgid "Version %s" msgstr "versija" msgid "Edit a Translation" msgstr "" #, fuzzy msgid "Edit a translation" msgstr "Pierakład" msgid "Open an existing PO file and edit the translation." msgstr "" msgid "" "Take an existing PO file or POT template and create a new translation from " "it." msgstr "" msgid "Collaborate on a Translation with Others" msgstr "" msgid "Collaborate on a translation with others" msgstr "" msgid "" "Download a file from Crowdin project, translate and sync your changes back." msgstr "" msgid "What is Crowdin?" msgstr "" msgid "There are no translations. That’s unusual." msgstr "" msgid "" "Translatable entries aren’t added manually in the Gettext system, but are " "automatically extracted\n" "from source code. This way, they stay up to date and accurate.\n" "Translators typically use PO template files (POTs) prepared for them by the " "developer." msgstr "" msgid "(Learn more about GNU gettext)" msgstr "" msgid "The simplest way to fill this catalog is to update it from a POT:" msgstr "" #, fuzzy msgid "Update from POT" msgstr "Aktualizuj z fajłu &POT..." msgid "Take translatable strings from an existing POT template." msgstr "" msgid "" "You can also extract translatable strings directly from the source code:" msgstr "" #, fuzzy msgid "Extract from sources" msgstr "&Aktualizuj z krynicaŭ" msgid "Configure source code extraction in Properties." msgstr "" msgid "Sync" msgstr "" msgid "Synchronize the translation with Crowdin" msgstr "" #. TRANSLATORS: This is titlebar of about dialog, "%s" is application name #. ("Poedit" here, but please use "%s") #, fuzzy, c-format msgid "About %s" msgstr "Pra Poedit" #. TRANSLATORS: Title of the preferences window on Windows and Linux. "%s" is replaced with "Poedit" when running. #, c-format msgid "%s Preferences" msgstr "" #. TRANSLATORS: macOS item in app menu msgid "Services" msgstr "" #. TRANSLATORS: macOS item in app menu, %s is replaced with "Poedit" #, c-format msgid "Hide %s" msgstr "" #. TRANSLATORS: macOS item in app menu msgid "Hide Others" msgstr "" #. TRANSLATORS: macOS item in app menu msgid "Show All" msgstr "" #. TRANSLATORS: macOS item in app menu, %s is replaced with "Poedit" #, c-format msgid "Quit %s" msgstr "" #. TRANSLATORS: macOS item in app menu msgid "Preferences…" msgstr "" msgid "Preferences..." msgstr "" #. TRANSLATORS: Title of a category in Windows task menu (right-click icon in taskbar) msgid "Recent" msgstr "" #. TRANSLATORS: Title of a category in Windows task menu (right-click icon in taskbar) msgid "Frequent" msgstr "" msgid "&Apply" msgstr "" msgid "Apply" msgstr "" msgid "&Back" msgstr "" msgid "Back" msgstr "" msgid "&Cancel" msgstr "" msgid "&Clear" msgstr "" msgid "Clear" msgstr "" msgid "Copy" msgstr "" msgid "Cu&t" msgstr "" msgid "Cut" msgstr "" #, fuzzy msgid "&Delete" msgstr "Vydal" msgid "&Quit" msgstr "" msgid "File" msgstr "" msgid "Help" msgstr "" msgid "&New" msgstr "" msgid "&No" msgstr "" msgid "No" msgstr "" msgid "&OK" msgstr "" msgid "Open…" msgstr "" msgid "&Open..." msgstr "&Adčyni..." msgid "Open..." msgstr "" msgid "&Paste" msgstr "" msgid "Paste" msgstr "" msgid "Preferences" msgstr "" msgid "&Redo" msgstr "" msgid "Refresh" msgstr "" msgid "&Save as" msgstr "" msgid "Save as" msgstr "" msgid "Select &All" msgstr "" msgid "Select All" msgstr "" #, fuzzy msgid "&Undo" msgstr "Viarni" msgid "&Yes" msgstr "" msgid "Yes" msgstr "" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Shift+" msgstr "" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Enter" msgstr "" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Up" msgstr "" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Down" msgstr "" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Left" msgstr "" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Right" msgstr "" #. TRANSLATORS: Keyboard shortcut, must correspond to translation of "Ctrl+" msgid "ctrl" msgstr "" #. TRANSLATORS: Keyboard shortcut, must correspond to translation of "Alt+" msgid "alt" msgstr "" #. TRANSLATORS: Keyboard shortcut, must correspond to translation of "Shift+" msgid "shift" msgstr "" poedit-2.0.6/locales/th.po0000664000372000037200000013377413230131554012335 00000000000000msgid "" msgstr "" "Project-Id-Version: poedit\n" "Report-Msgid-Bugs-To: help@poedit.net\n" "POT-Creation-Date: 2017-12-05 15:52+0100\n" "PO-Revision-Date: 2017-07-27 03:15-0400\n" "Last-Translator: vslavik \n" "Language-Team: Thai\n" "Language: th_TH\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" "X-Generator: crowdin.com\n" "X-Crowdin-Project: poedit\n" "X-Crowdin-Language: th\n" "X-Crowdin-File: /locales/poedit.pot\n" msgid "Hide this notification message" msgstr "ซ่อนข้อความแจ้งเตือนนี้" msgid "Don’t Show Again" msgstr "" msgid "Don’t show again" msgstr "" #, c-format msgid "(New: %i, obsolete: %i)" msgstr "(ใหม่: %i, ล้าสมัย: %i)" msgid "Updating catalog" msgstr "" msgid "Collecting source files…" msgstr "" msgid "Extracting translatable strings…" msgstr "" msgid "Failed to load extracted catalog." msgstr "ล้มเหลวในการโหลดรายการที่ขยาย" msgid "Merging differences…" msgstr "" #, c-format msgid "“%s” is not a valid POT file." msgstr "" #, c-format msgid "%i line of file “%s” was not loaded correctly." msgid_plural "%i lines of file “%s” were not loaded correctly." msgstr[0] "" #, c-format msgid "Line %d of file “%s” is corrupted (not valid %s data)." msgstr "" #, c-format msgid "Malformed header: “%s”" msgstr "" msgid "" "Broken catalog file: singular form msgstr used together with msgid_plural" msgstr "แฟ้มรายการที่เสียหาย: รูปแบบเอกพจน์ถูกใชเรวมกับรูปแบบพหูพจน์" msgid "Broken catalog file: plural form msgstr used without msgid_plural" msgstr "แฟ้มรายการที่เสียหาย: รูปแบบพหูพจน์สำหรับ msgstr ถูกใช้โดยไม่มี msgid_plural" msgid "" "There were errors when loading the catalog. Some data may be missing or " "corrupted as the result." msgstr "ผิดผลาดระหว่างมีการโหลดรายการ ข้อมูลบางอันอาจจะหายหรือไม่สามารถใช้การได้" #, c-format msgid "Couldn’t load file %s, it is probably corrupted." msgstr "" #, c-format msgid "" "File “%s” is read-only and cannot be saved.\n" "Please save it under different name." msgstr "" #, c-format msgid "Couldn’t save file %s." msgstr "" msgid "" "There was a problem formatting the file nicely (but it was saved all right)." msgstr "มีปัญหาการจัดรูปแบบแฟ้มให้สวยงาม (แต่แฟ้มได้รับการบันทึกเรียบร้อย)" #, c-format msgid "" "The catalog couldn’t be saved in “%s” charset as specified in catalog " "settings.\n" "\n" "It was saved in UTF-8 instead and the setting was modified accordingly." msgstr "" msgid "Error saving catalog" msgstr "ข้อผิดผลาดในการบันทึกรายการ" msgid "PO Translation Files" msgstr "ไฟล์แปลภาษา PO" msgid "POT Translation Templates" msgstr "แม่แบบการแปล POT" msgid "All Translation Files" msgstr "แฟ้มการแปลทั้งหมด" msgid "(Use default language)" msgstr "(ใช้ภาษาเริ่มต้น)" msgid "Select your preferred language" msgstr "เลือกภาษาที่คุณต้องการ" msgid "Language selection" msgstr "การเลือกภาษา" msgid "You must restart Poedit for this change to take effect." msgstr "คุณต้องเริ่มต้น Poedit ใหม่เพื่อให้การเปลี่ยนแปลงมีผล" msgid "Syncing" msgstr "กำลังซิงค์" #. TRANSLATORS: %s is a cloud destination, e.g. "Crowdin" or ftp.wordpress.com etc. #, c-format msgid "Syncing with %s…" msgstr "" #. TRANSLATORS: %s is a cloud destination, e.g. "Crowdin" or ftp.wordpress.com etc. #, c-format msgid "Syncing with %s failed." msgstr "การซิงค์กับ %s ล้มเหลว" msgid "Syncing error" msgstr "ข้อผิดพลาดการซิงค์" msgid "Downloading translations is disabled in this project." msgstr "การดาวน์โหลดงานแปลถูกปิดใช้งานในโครงการนี้" msgid "Not authorized, please sign in again." msgstr "ไม่ได้รับอนุญาต โปรดเข้าสู่ระบบอีกครั้ง" msgid "" "Crowdin is an online localization management platform and collaborative " "translation tool. Poedit can seamlessly sync PO files managed at Crowdin." msgstr "" "Crowdin เป็นแพลตฟอร์มการจัดการการแปลออนไลน์และเครื่องมือการแปลร่วมกัน Poedit " "สามารถซิงค์แฟ้ม PO ที่จัดการที่ Crowdin ได้ทันที" msgid "Sign In" msgstr "เข้าสู่ระบบ" msgid "Sign in" msgstr "เข้าสู่ระบบ" msgid "Sign Out" msgstr "ออกจากระบบ" msgid "Sign out" msgstr "ออกจากระบบ" msgid "Waiting for authentication…" msgstr "กำลังรอการรับรองความถูกต้อง..." msgid "Updating user information…" msgstr "กำลังปรับปรุงข้อมูลผู้ใช้..." msgid "Signed in as:" msgstr "ลงชื่อเข้าใช้เป็น:" msgid "Learn More About Crowdin" msgstr "เรียนรู้เพิ่มเติมเกี่ยวกับ Crowdin" msgid "Learn more about Crowdin" msgstr "เรียนรู้เพิ่มเติมเกี่ยวกับ Crowdin" msgid "Sign in to Crowdin" msgstr "เข้าสู่ระบบ Crowdin" msgid "Open Crowdin translation" msgstr "เปิดงานแปล Crowdin" msgid "Project:" msgstr "โครงการ:" msgid "Language:" msgstr "ภาษา:" msgid "File:" msgstr "ไฟล์:" msgid "No translation projects listed in your Crowdin account." msgstr "ไม่มีโครงการแปลที่ระบุไว้ในบัญชี Crowdin ของคุณ" msgid "This project has no files that can be translated in Poedit." msgstr "โครงการนี้ไม่มีแฟ้มที่สามารถแปลใน Poedit ได้" msgid "This file can only be edited in Crowdin’s web interface." msgstr "แฟ้มนี้สามารถแก้ไขได้ในอินเทอร์เฟซเว็บของ Crowdin เท่านั้น" msgid "Downloading latest translations…" msgstr "ดาวน์โหลดการแปลล่าสุด..." msgid "Syncing with Crowdin failed." msgstr "การซิงค์กับ Crowdin ล้มเหลว" msgid "Crowdin error" msgstr "ข้อผิดพลาดของ Crowdin" msgid "Uploading translations…" msgstr "กำลังอัปโหลดงานแปล..." msgid "&Copy" msgstr "&คัดลอก" msgid "Learn more" msgstr "เรียนรู้เพิ่มเติม" msgid "Learn More" msgstr "เรียนรู้เพิ่มเติม" msgid "&Help" msgstr "&ช่วยเหลือ" msgid "MO files can’t be directly edited in Poedit." msgstr "แฟ้ม MO ไม่สามารถแก้ไขโดยตรงใน Poedit" msgid "Error opening file" msgstr "เกิดข้อผิดพลาดในการเปิดแฟ้ม" msgid "" "Please open and edit the corresponding PO file instead. When you save it, " "the MO file will be updated as well." msgstr "กรุณาเปิด และแก้ไขแฟ้ม PO ที่เกี่ยวข้องแทน เมื่อคุณบันทึก แฟ้ม MO จะถูกปรับปรุงไปด้วย" msgid "don’t delete temporary files (for debugging)" msgstr "" msgid "handle a poedit:// URI" msgstr "จัดการ URI poedit://" msgid "go to item at given line number" msgstr "" msgid "Failed to communicate with Poedit process." msgstr "การสื่อสารกับกระบวนการ Poedit ล้มเหลว" #, c-format msgid "Unhandled exception occurred: %s" msgstr "เกิดข้อยกเว้นที่จัดการไม่ได้: %s" msgid "Open catalog" msgstr "เปิดแค็ตตาล็อก" #, c-format msgid "File “%s” doesn’t exist." msgstr "" msgid "Poedit is an easy to use translations editor." msgstr "Poedit เป็นโปรแกรมแปลภาษาที่ง่ายต่อการใช้งาน" msgid "Catalogs Manager" msgstr "ตัวจัดการแค็ตตาล็อก" msgid "Check for Updates…" msgstr "" msgid "&Edit" msgstr "&แก้ไข" msgid "Undo" msgstr "เลิกทำ" msgid "Redo" msgstr "ทำซ้ำ" msgid "Paste and Match Style" msgstr "วางและจัดรูปแบบให้ตรงกัน" msgid "Delete" msgstr "ลบ" msgid "Spelling and Grammar" msgstr "การสะกดและไวยากรณ์" msgid "Show Spelling and Grammar" msgstr "แสดงการสะกดและไวยากรณ์" msgid "Check Document Now" msgstr "ตรวจสอบเอกสารทันที" msgid "Check Spelling While Typing" msgstr "ตรวจการสะกดขณะพิมพ์" msgid "Check Grammar With Spelling" msgstr "ตรวจไวยากรณ์และการสะกด" msgid "Correct Spelling Automatically" msgstr "แก้ไขการสะกดโดยอัตโนมัติ" msgid "Substitutions" msgstr "" msgid "Show Substitutions" msgstr "" msgid "Smart Copy/Paste" msgstr "" msgid "Smart Quotes" msgstr "" msgid "Smart Dashes" msgstr "" msgid "Smart Links" msgstr "" msgid "Text Replacement" msgstr "" msgid "Transformations" msgstr "" msgid "Make Upper Case" msgstr "" msgid "Make Lower Case" msgstr "" msgid "Capitalize" msgstr "ใช้อักษรตัวพิมพ์ใหญ่" msgid "Speech" msgstr "" msgid "Start Speaking" msgstr "เริ่มพูด" msgid "Stop Speaking" msgstr "หยุดพูด" msgid "&View" msgstr "&มุมมอง" msgid "Enter Full Screen" msgstr "เข้าโหมดเต็มหน้าจอ" msgid "Window" msgstr "หน้าต่าง" msgid "Minimize" msgstr "ย่อให้เล็กที่สุด" msgid "Zoom" msgstr "ย่อ/ขยาย" msgid "Bring All to Front" msgstr "นำทั้งหมดมาด้านหน้า" #. TRANSLATORS:File kind displayed in Finder/Explorer msgid "PO Translation" msgstr "การแปล PO" msgid "The file cannot be opened." msgstr "ไม่สามารถเปิดไฟล์" msgid "Invalid file" msgstr "ไฟล์ไม่ถูกต้อง" msgid "" "The file may be either corrupted or in a format not recognized by Poedit." msgstr "ไฟล์อาจจะเสียหาย หรืออยู่ในรูปแบบที่ Poedit ไม่รู้จัก" msgid "You can’t drop more than one file on Poedit window." msgstr "" #, c-format msgid "File “%s” is not a message catalog." msgstr "" msgid "Poedit" msgstr "Poedit" msgid "&File" msgstr "&ไฟล์" msgid "&Go" msgstr "ไ&ป" #. TRANSLATORS: %s is language name in its basic form (as you #. would see e.g. in a list of supported languages). You may need #. to rephrase it, e.g. to an equivalent of "for language %s". #, c-format msgid "" "Spellchecking is disabled, because the dictionary for %s isn’t installed." msgstr "การตรวจคำสะกดถูกปิดใช้งาน เนื่องจากไม่ได้ติดตั้งพจนานุกรมสำหรับภาษา %s" msgid "Install" msgstr "ติดตั้ง" msgid "Catalog modified. Do you want to save changes?" msgstr "รายการถูกปรับเปลี่ยน คุณต้องการจะบันทึกการเปลี่ยนแปลงหรือไม่?" msgid "Save changes" msgstr "บันทึกการเปลี่ยนแปลง" msgid "Your changes will be lost if you don’t save them." msgstr "" msgid "Save" msgstr "บันทึก" msgid "Don’t save" msgstr "" msgid "Don’t Save" msgstr "" msgid "Save as…" msgstr "" msgid "Compile to…" msgstr "" msgid "Compiled Translation Files" msgstr "แฟ้มการแปลที่คอมไพล์แล้ว" msgid "Export as…" msgstr "" msgid "HTML Files" msgstr "แฟ้ม HTML" msgid "Open catalog template" msgstr "เปิดรายการแม่แบบ" msgid "Source code not available." msgstr "" msgid "Updating failed" msgstr "" msgid "" "Translations couldn’t be updated from the source code, because no code was " "found in the location specified in the catalog’s Properties." msgstr "" msgid "Entries in the catalog are probably incorrect." msgstr "ข้อึความในรายการไม่ถูกต้อง" msgid "Updating the catalog failed. Click on 'Details >>' for details." msgstr "" #, c-format msgid "%d issue with the translation found." msgid_plural "%d issues with the translation found." msgstr[0] "" msgid "Validation results" msgstr "ผลการตรวจสอบ" msgid "" "Entries with errors were marked in red in the list. Details of the error " "will be shown when you select such an entry." msgstr "" msgid "The file was saved safely." msgstr "" msgid "" "The file was saved safely and compiled into the MO format, but it will " "probably not work correctly." msgstr "" msgid "" "The file was saved safely, but it cannot be compiled into the MO format and " "used." msgstr "" msgid "" "The file was compiled into the MO format, but it will probably not work " "correctly." msgstr "" msgid "The file cannot be compiled into the MO format and used." msgstr "" msgid "No problems with the translation found." msgstr "" #, c-format msgid "The translation is ready for use, but %d entry is not translated yet." msgid_plural "" "The translation is ready for use, but %d entries are not translated yet." msgstr[0] "" msgid "The translation is ready for use." msgstr "" #, c-format msgid "Poedit automatically fixed invalid content in the file “%s”." msgstr "" msgid "" "The file contained duplicate items, which is not allowed in PO files and " "would prevent the file from being used. Poedit fixed the issue, but you " "should review translations of any items marked as needing work and correct " "them if necessary." msgstr "" msgid "Language of the translation isn’t set." msgstr "" msgid "Set Language" msgstr "" msgid "Set language" msgstr "กำหนดภาษา" #. TRANSLATORS: This is shown underneath "Language of the translation isn't set (or ...is the same as source language)." msgid "" "Suggestions are not available if the translation language is not set " "correctly. Other features, such as plural forms, may be affected as well." msgstr "" msgid "Language of the translation is the same as source language." msgstr "" msgid "Fix Language" msgstr "" msgid "Fix language" msgstr "" msgid "" "This catalog has entries with plural forms, but doesn’t have Plural-Forms " "header configured." msgstr "" msgid "" "Entries in this catalog have different plural forms count from what " "catalog’s Plural-Forms header says" msgstr "" msgid "Required header Plural-Forms is missing." msgstr "" #, c-format msgid "Syntax error in Plural-Forms header (\"%s\")." msgstr "" msgid "Fix the Header" msgstr "" msgid "Fix the header" msgstr "" #. TRANSLATORS: %s is language name in its basic form (as you #. would see e.g. in a list of supported languages). You may need #. to rephrase it, e.g. to an equivalent of "for language %s". #, c-format msgid "Plural forms expression used by the catalog is unusual for %s." msgstr "" #. TRANSLATORS: A verb, shown as action button with ""Plural forms expression used by the catalog is unusual for %s.")" msgid "Review" msgstr "" #, c-format msgid "Error loading message catalog file “%s”." msgstr "" #, c-format msgid "Translated: %d of %d (%d %%)" msgstr "" #, c-format msgid "Remaining: %d" msgstr "" #, c-format msgid "%d error" msgid_plural "%d errors" msgstr[0] "" #, c-format msgid "%d entry" msgid_plural "%d entries" msgstr[0] "" msgid " (unsaved)" msgstr "" msgid " (modified)" msgstr "(ที่ถูกปรับเปลี่ยน)" #, c-format msgid "Failed to update translation memory: %s" msgstr "" msgid "Purge deleted translations" msgstr "ลบการแปลที่ลบถาวร" msgid "Do you want to remove all translations that are no longer used?" msgstr "" msgid "" "If you continue with purging, all translations marked as deleted will be " "permanently removed. You will have to translate them again if they are added " "back in the future." msgstr "" msgid "Keep" msgstr "" msgid "Purge" msgstr "" msgid "Copy from source text" msgstr "" msgid "Copy from Source Text" msgstr "" #. TRANSLATORS: This is the key shortcut used in menus on Windows, some languages call them differently #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Ctrl+" msgstr "" msgid "Clear translation" msgstr "" msgid "Clear Translation" msgstr "" msgid "Edit comment" msgstr "แก้ไขคำแนะนำ" msgid "Edit Comment" msgstr "" msgid "References:" msgstr "การอ้างอิง:" msgid "&Bookmarks" msgstr "&รายการโปรด" #. TRANSLATORS: This is the key shortcut used in menus on Windows, some languages call them differently #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Alt+" msgstr "" #, c-format msgid "Set bookmark %i" msgstr "" #, c-format msgid "Go to bookmark %i" msgstr "" #, c-format msgid "Set Bookmark %i" msgstr "" #, c-format msgid "Go to Bookmark %i" msgstr "" msgid "Hide Sidebar" msgstr "" msgid "Show Sidebar" msgstr "" msgid "Hide Status Bar" msgstr "" msgid "Show Status Bar" msgstr "" msgid "Source text:" msgstr "" msgid "Singular:" msgstr "เอกพจน์:" msgid "Plural:" msgstr "พหูพจน์:" msgid "Translation:" msgstr "การแปล:" msgid "Pre-translated" msgstr "" msgid "Needs Work" msgstr "" #. TRANSLATORS: This indicates that the string's translation isn't final #. and has known problems. For example, it might be machine translated or #. fuzzy matched from an older string. The translation should be short and #. convey this. If it's problematic to translate it, "Needs review" is #. acceptable substitute, but note that the meaning is subtly different: #. "needs review" implies that somebody else should review the string after #. I am done with it (i.e. consider it good), while "needs work" implies I #. need to return to it and finish the translation. msgid "Needs work" msgstr "" msgid "" "POT files are only templates and don’t contain any translations themselves.\n" "To make a translation, create a new PO file based on the template." msgstr "" msgid "Create New Translation" msgstr "" msgid "Create new translation" msgstr "" msgid "Everything" msgstr "" #, c-format msgid "Form %i" msgstr "ฟอร์ม %i" msgid "Singular" msgstr "" msgid "Zero" msgstr "ศูนย์" msgid "One" msgstr "" msgid "Two" msgstr "สอง" msgid "Plural" msgstr "" msgid "Other" msgstr "" #, c-format msgid "%s Format" msgstr "" #. TRANSLATORS: %s is replaced with language name, e.g. "PHP" or "C", so "PHP Format" etc." #, c-format msgid "%s format" msgstr "" msgid "Source text" msgstr "" #, c-format msgid "Translation — %s" msgstr "การแปล — %s" msgid "ID" msgstr "" #, c-format msgid "Source text — %s" msgstr "" msgid "unknown language" msgstr "ภาษาที่ไม่รู้จัก" #, c-format msgid "Failed command: %s" msgstr "คำสั่งที่ล้มเหลว: %s" msgid "Failed to merge gettext catalogs." msgstr "ล้มเหลวที่จะรวมรายการ gettext" msgid "Source file" msgstr "แฟ้มดั้งเดิม" msgid "Source file occurrence:" msgstr "" msgid "Open in Editor" msgstr "" msgid "Open in editor" msgstr "" msgid "No references for the selected item." msgstr "" #, c-format msgid "Error opening file %s!" msgstr "ข้อผิดลากในการเปิดแฟ้ม %s!" msgid "Find" msgstr "" msgid "Replace" msgstr "" #. TRANSLATORS: Expander in Find window for additional options (case sensitive etc.) msgid "Options" msgstr "" msgid "Ignore case" msgstr "" msgid "Wrap around" msgstr "" msgid "Whole words only" msgstr "ศัพท์อย่างเต็มเท่านั้น" msgid "Find in source texts" msgstr "" msgid "Find in translations" msgstr "ค้นหาในการแปล" msgid "Find in comments" msgstr "ค้นหาในความคิดเห็น" msgid "Close" msgstr "" msgid "Replace &All" msgstr "" msgid "Replace &all" msgstr "" msgid "&Replace" msgstr "" msgid "< &Previous" msgstr "" msgid "&Next >" msgstr "&ถัดไป >" msgid "String to find" msgstr "" msgid "Replacement string" msgstr "" #, c-format msgid "Cannot execute program: %s" msgstr "" msgid "Language Code or Name (e.g. en_GB)" msgstr "" msgid "Translation Language" msgstr "" msgid "Language of the translation:" msgstr "" msgid "Poedit - Catalogs manager" msgstr "Poedit - ตัวจัดการรายการ" msgid "Catalog" msgstr "รายการ" msgid "Total" msgstr "ทั้งหมด" msgid "Untrans" msgstr "ไม่ได้แปล" msgid "Errors" msgstr "" msgid "Last modified" msgstr "ปรับเปลี่ยนล่าสุด" msgid "Select directory" msgstr "เลือกไดเรกทอรี" msgid "Directories:" msgstr "ที่ตั้ง:" msgid "" msgstr "<ไม่มีชื่อ>" msgid "Do you want to delete the project?" msgstr "คุณต้องการจะลบโครงการหรือไม่?" msgid "Confirmation" msgstr "การยืนยัน" msgid "" "Do you really want to do mass update of\n" "all catalogs in this project?" msgstr "" "คุณต้องการจะปรับปรุงข้อมูลปรับปรุงทั้งหมดของ\n" "รายการทั้งหมดในโครงการหรือไม่?" msgid "Information about the translator" msgstr "" msgid "Name:" msgstr "" msgid "Your Name" msgstr "" msgid "Email:" msgstr "" msgid "your_email@example.com" msgstr "" msgid "" "Your name and email address are only used to set the Last-Translator header " "of GNU gettext files." msgstr "" msgid "Editing" msgstr "" msgid "Automatically compile MO file when saving" msgstr "" msgid "Show summary after catalog update" msgstr "แสดงผลลัพธ์หลังจากการปรับปรุงรายการ" msgid "Check spelling" msgstr "" msgid "Always change focus to text input field" msgstr "เปลี่ยนความละเอียดไปยังพื้นที่ของข้อความ" msgid "" "Never let the list of strings take focus. If enabled, you must use Ctrl-" "arrows for keyboard navigation but you can also type text immediately, " "without having to press Tab to change focus." msgstr "" "อย่าทำให้รายการของข้อมูลมีความละเอียด ถ้าเปิการใช้งาน คุณจะต้องใช้ลูกศรและ Ctr " "เพื่อการเคลือนที่เท่านั้นแต่คุณก็สามารถพิมพ์ข้อความได้ทันที โดยไม่ต้องในการปุ่ม Tab " msgid "Appearance" msgstr "" msgid "Use custom list font:" msgstr "" msgid "Use custom text fields font:" msgstr "" msgid "Change UI language" msgstr "เปลี่ยนภาษา UI " #. TRANSLATORS: This is a note appended to "Check spelling" when running on older Windows versions msgid "(requires Windows 8 or newer)" msgstr "" msgid "General" msgstr "" msgid "Use translation memory" msgstr "ใช้หน่วยความจำการแปล" msgid "Learn From Files…" msgstr "" msgid "Learn from files…" msgstr "" #. TRANSLATORS: This is a button that deletes everything in the translation memory (i.e. clears/resets it). msgid "Reset" msgstr "" #. TRANSLATORS: Followed by "match translations within the file" or "pre-translate from TM" msgid "When updating from sources" msgstr "" #. TRANSLATORS: Preceded by "When updating from sources" msgid "fuzzy match within the file" msgstr "" #. TRANSLATORS: Preceded by "When updating from sources" msgid "pre-translate from TM" msgstr "" msgid "" "Poedit can attempt to fill in new entries from only previous translations in " "the file or from your entire translation memory. Using the TM won’t be very " "effective if it’s near-empty, but it will get better as you add more " "translations to it." msgstr "" msgid "Stored translations:" msgstr "" msgid "Database size on disk:" msgstr "" msgid "Select translation files to import" msgstr "" msgid "Translation Memory" msgstr "ความจำของการแปล" msgid "Importing translations…" msgstr "" msgid "Finalizing…" msgstr "" msgid "Reset translation memory" msgstr "" msgid "Are you sure you want to reset the translation memory?" msgstr "" msgid "" "Resetting the translation memory will irrevocably delete all stored " "translations from it. You can’t undo this operation." msgstr "" msgid "Cancel" msgstr "ยกเลิก" #. TRANSLATORS: This is abbreviation of "Translation Memory" used in Preferences on macOS. #. Long text looks weird there, too short (like TM) too, but less so. "General" is about ideal #. length there. msgid "TM" msgstr "" msgid "" "Source code extractors are used to find translatable strings in the source " "code files and extract them so that they can be translated." msgstr "" msgid "Custom Extractors:" msgstr "" msgid "Custom extractors:" msgstr "" msgid "Edit…" msgstr "" msgid "GNU gettext" msgstr "" msgid "" "Supports all programming languages recognized by GNU gettext tools (PHP, C/C+" "+, C#, Perl, Python, Java, JavaScript and others)." msgstr "" msgid "Delete extractor" msgstr "" #, c-format msgid "Are you sure you want to delete the “%s” extractor?" msgstr "" msgid "Extractors" msgstr "" msgid "Accounts" msgstr "" msgid "Automatically check for updates" msgstr "" msgid "Include beta versions" msgstr "" msgid "" "Beta versions contain the latest new features and improvements, but may be a " "bit less stable." msgstr "" msgid "Updates" msgstr "" msgid "" "These settings affect internal formatting of PO files. Adjust them if you " "have specific requirements e.g. because of version control." msgstr "" msgid "Line endings:" msgstr "" msgid "Unix (recommended)" msgstr "Unix (แนะนำ)" msgid "Windows" msgstr "Windows" #. TRANSLATORS: Followed by text control for entering number; wraps text at given width msgid "Wrap at:" msgstr "" msgid "Preserve formatting of existing files" msgstr "" msgid "Advanced" msgstr "" msgid "Pre-translating…" msgstr "" #, c-format msgid "Pre-translated %u string" msgid_plural "Pre-translated %u strings" msgstr[0] "" #. TRANSLATORS: This is a somewhat common term describing the action where #. you apply the translation memory and/or machine translation to all of the #. strings you're translating as the first step, followed by correcting, #. improving etc., i.e. actually translating the strings. This may be tricky #. to express in other languages as simply as in English, but please try to #. keep it similarly concise. Please try to avoid, if possible, describing it #. as "auto-translation" and similar, because such terminology would mislead #. some users into thinking it's all that needs to be done (spoken from #. experience). "Pre-translate" nicely expresses that it's only the step done #. *before* actual translation. msgid "Pre-translate" msgstr "" msgid "Only fill in exact matches" msgstr "" msgid "" "By default, inaccurate results are filled in as well and marked as needing " "work. Check this option to only include accurate matches." msgstr "" msgid "Don’t mark exact matches as needing work" msgstr "" msgid "" "Only enable if you trust the quality of your TM. By default, all matches " "from the TM are marked as needing work and should be reviewed before use." msgstr "" msgid "" "Pre-translation automatically finds exact or fuzzy matches for untranslated " "strings in the translation memory and fills in their translations." msgstr "" #, c-format msgid "%d entry was pre-translated." msgid_plural "%d entries were pre-translated." msgstr[0] "" msgid "" "The translations were marked as needing work, because they may be " "inaccurate. You should review them for correctness." msgstr "" msgid "No entries could be pre-translated." msgstr "" msgid "" "The TM doesn’t contain any strings similar to the content of this file. It " "is only effective for semi-automatic translations after Poedit learns enough " "from files that you translated manually." msgstr "" msgid "" "Drag and Drop Folders Here\n" "\n" "or use the + button" msgstr "" msgid "" "Drag and drop folders here\n" "\n" "or use the + button" msgstr "" msgid "Add Folders…" msgstr "" msgid "Add folders…" msgstr "" msgid "Add Files…" msgstr "" msgid "Add files…" msgstr "" msgid "Add Wildcard…" msgstr "" msgid "Add wildcard…" msgstr "" msgid "Paths" msgstr "เส้นทาง" msgid "Excluded paths" msgstr "" msgid "Advanced extraction settings" msgstr "" msgid "Extract notes for translators from:" msgstr "" msgid "Comments prefixed with:" msgstr "" msgid "All comments" msgstr "" msgid "Additional xgettext flags:" msgstr "" msgid "Additional keywords" msgstr "" msgid "Name of the project the translation is for" msgstr "" msgid "Team name and email address or URL" msgstr "" msgid "e.g. nplurals=2; plural=(n > 1);" msgstr "เช่น nplurals=2; plural=(n > 1);" msgid "UTF-8 (recommended)" msgstr "UTF-8 (แนะนำ)" msgid "Please save the file first. This section cannot be edited until then." msgstr "" msgid "Not all plural forms are translated." msgstr "" msgid "The translation should start as a sentence." msgstr "" msgid "The translation should start with a lowercase character." msgstr "" msgid "The translation doesn’t start with a space." msgstr "" msgid "The translation starts with a space, but the source text doesn’t." msgstr "" msgid "The translation is missing a newline at the end." msgstr "" msgid "The translation ends with a newline, but the source text doesn’t." msgstr "" msgid "The translation is missing a space at the end." msgstr "" msgid "The translation ends with a space, but the source text doesn’t." msgstr "" #, c-format msgid "The translation should end with “%s”." msgstr "" #, c-format msgid "The translation should not end with “%s”." msgstr "" #, c-format msgid "The translation ends with “%s”, but the source text ends with “%s”." msgstr "" msgid "Comment:" msgstr "คำแนะนำ:" msgid "OK" msgstr "ตกลง" msgid "C&lear" msgstr "" msgid "Clear the comment" msgstr "ลบคำแนะนำ" msgid "New" msgstr "สร้างใหม่" msgid "Create new translations project" msgstr "สร้างโครงการแปลใหม่" msgid "Edit" msgstr "แก้ไข" msgid "Edit the project" msgstr "แก้ไขโครงการ" msgid "Delete the project" msgstr "ลบโครงการ" msgid "Update all" msgstr "อัพเดททั้งหมด" msgid "Update all catalogs in the project" msgstr "ปรับปรุงรายการทั้งหมดในโครงการ" msgid "Edit project" msgstr "แก้ไขโครงการ" msgid "Project name:" msgstr "ชื่อโครงการ:" msgid "Browse" msgstr "เรียกดู" msgid "Add directory to the list" msgstr "เพิ่มตำแหน่งไปยังรายการ" msgid "&New…" msgstr "" msgid "New from &POT/PO file…" msgstr "" msgid "New From &POT/PO File…" msgstr "" msgid "&Open…" msgstr "" msgid "Open Recent" msgstr "" msgid "Open from Crowdin…" msgstr "" msgid "Open From Crowdin…" msgstr "" msgid "&Close" msgstr "&ปิด" msgid "&Save" msgstr "&บันทึก" msgid "Save &as…" msgstr "" msgid "Save &As…" msgstr "" msgid "Compile to MO…" msgstr "" msgid "E&xport as HTML…" msgstr "" msgid "Check for updates…" msgstr "" msgid "&Preferences…" msgstr "" msgid "Catalogs &manager" msgstr "ตัวจัดการ&แค็ตตาล็อก" msgid "Catalogs &Manager" msgstr "ตัวจัดการ&แค็ตตาล็อก" msgid "E&xit" msgstr "" msgid "Quit" msgstr "ออก" msgid "Copy from singular" msgstr "" msgid "Copy From Singular" msgstr "" msgid "Translation needs &work" msgstr "" msgid "Translation Needs &Work" msgstr "" msgid "Edit &comment" msgstr "แก้ไขคำแ&นะนำ" msgid "Edit &Comment" msgstr "" msgid "Suggestions" msgstr "" msgid "&Find…" msgstr "" msgid "Replace…" msgstr "" msgid "Find next" msgstr "" msgid "Find previous" msgstr "" msgid "Find and Replace…" msgstr "" msgid "Find Next" msgstr "" msgid "Find Previous" msgstr "" msgid "&Preferences" msgstr "&ตั้งค่า" msgid "Display entry &IDs" msgstr "" msgid "Display Entry &IDs" msgstr "" msgid "Sort by &file order" msgstr "" msgid "Sort by &File Order" msgstr "" msgid "Sort by &source" msgstr "" msgid "Sort by &Source" msgstr "" msgid "Sort by &translation" msgstr "" msgid "Sort by &Translation" msgstr "" msgid "&Group by context" msgstr "" msgid "&Group By Context" msgstr "" msgid "Entries with errors first" msgstr "" msgid "Entries with Errors First" msgstr "" msgid "&Untranslated entries first" msgstr "" msgid "&Untranslated Entries First" msgstr "" msgid "&Show references" msgstr "แสดงการอ้า&งอิง" msgid "&Show References" msgstr "" msgid "Show sidebar" msgstr "" msgid "Show status bar" msgstr "" msgid "C&atalog" msgstr "รา&ยการ" msgid "&Update from sources" msgstr "ปรับปรุง&จากต้นฉบับ" msgid "&Update from Sources" msgstr "" msgid "Update from &POT file…" msgstr "" msgid "Update from &POT File…" msgstr "" msgid "Sync with Crowdin" msgstr "" msgid "Pre-&translate…" msgstr "" msgid "&Purge deleted translations" msgstr "&ลบการแปล" msgid "&Purge Deleted Translations" msgstr "" msgid "&Validate translations" msgstr "" msgid "&Validate Translations" msgstr "" msgid "&Properties…" msgstr "" msgid "&Done and next" msgstr "" msgid "&Done and Next" msgstr "" msgid "&Previous translation" msgstr "" msgid "&Previous Translation" msgstr "" msgid "&Next translation" msgstr "" msgid "&Next Translation" msgstr "" msgid "P&revious unfinished" msgstr "" msgid "P&revious Unfinished" msgstr "" msgid "Ne&xt unfinished" msgstr "" msgid "Ne&xt Unfinished" msgstr "" msgid "Previous plural form" msgstr "" msgid "Previous Plural Form" msgstr "" msgid "Next plural form" msgstr "" msgid "Next Plural Form" msgstr "" msgid "&Online help" msgstr "" msgid "&Online Help" msgstr "" msgid "&GNU gettext manual" msgstr "" msgid "&GNU gettext Manual" msgstr "" msgid "&About Poedit" msgstr "" msgid "&About" msgstr "" msgid "Extractor setup" msgstr "" msgid "List of extensions separated by semicolons (e.g. *.cpp;*.h):" msgstr "รายการของส่วนขยายแยกโดยใช้อัฒภาค (ต.ย. *.cpp;*.h):" msgid "Invocation:" msgstr "การร้องขอ:" msgid "Command to extract translations:" msgstr "" msgid "" "This is the command used to launch the extractor.\n" "%o expands to the name of output file, %K to list\n" "of keywords, %F to list of input files,\n" "%C to charset flag (see below)." msgstr "" msgid "An item in keywords list:" msgstr "รายการในรายการของศัพท์:" msgid "" "This will be attached to the command line once\n" "for each keyword. %k expands to the keyword." msgstr "" "นี้จะแนบแฟ้มไปยังคำสั่งหนึ่งครั้ง\n" "ต่อศัพท์ที่ใช้แต่ละคำ %k จะขยายไปยังชื่อของศัพท์ที่ใช้" msgid "An item in input files list:" msgstr "รายการในรายการของแฟ้ม:" #, c-format msgid "" "This will be attached to the command line once\n" "for each input file. %f expands to the filename." msgstr "" "นี้จะแนบแฟ้มคำสั่งไปยังรายการหนึ่งครั้ง\n" "สำหรับแฟ้มแต่ละแฟ้ม %f จะขยายไปยังชื่อของแฟ้ม" msgid "Source code charset:" msgstr "รหัสอักขระดั้งเดิม:" #, c-format msgid "" "This will be attached to the command line\n" "only if source code charset was given. %c expands to charset value." msgstr "" "นี้จะแนบแฟ้มคำสั่งของรายการ\n" "เมื่อรหัสชุดอักขระถูกมให้มาเท่านั้น %c จะขยายไปยังค่าของชุดอักขระ" msgid "Catalog properties" msgstr "" msgid "Project name and version:" msgstr "ชื่อและรุ่นของโครงการ:" msgid "Language team:" msgstr "" msgid "Plural forms:" msgstr "" msgid "Use default rules for this language" msgstr "" msgid "Use custom expression" msgstr "" msgid "Learn about plural forms" msgstr "" msgid "Charset:" msgstr "รูปแบบอักขระ:" msgid "Advanced Extraction Settings…" msgstr "" msgid "Advanced extraction settings…" msgstr "" msgid "Translation Properties" msgstr "" msgid "Translation properties" msgstr "" msgid "Sources Paths" msgstr "" msgid "Sources paths" msgstr "" msgid "Extract text from source files in the following directories:" msgstr "" msgid "Base path:" msgstr "ส่วนฐาน:" msgid "Sources Keywords" msgstr "" msgid "Sources keywords" msgstr "" msgid "" "Use these keywords (function names) to recognize translatable strings\n" "in source files:" msgstr "" msgid "Also use default keywords for supported languages" msgstr "" msgid "Learn About Gettext Keywords" msgstr "" msgid "Learn about gettext keywords" msgstr "" msgid "Update summary" msgstr "ปรับปรุงผลลัพธ์" msgid "" "These strings were found in the sources but were not in the catalog.\n" "Poedit will add them to the catalog now." msgstr "" "ข้อมูลพบในรายการดั้งเดิมแต่ไปได้อยู่ในรายการ\n" "Poedit จะเพิ่มแฟ้มไปยังรายการเดี๋ยวนี้" msgid "New strings" msgstr "สตริงใหม่" msgid "" "These strings are no longer in the sources.\n" "Poedit will remove them from the catalog now." msgstr "" "ข้อมูลที่ไม่ได้อยู่ในรายการดั้งเดิมนี้อีกต่อไป\n" "Poedit จะเอาแฟ้มออกจากรายการเดี๋ยวนี้" msgid "Obsolete strings" msgstr "ข้อมูลโดยแท้" msgid "(0 new, 0 obsolete)" msgstr "(0 ใหม่ 0 ล้าสมัย)" msgid "Open" msgstr "เปิด" msgid "Save catalog" msgstr "บันทึกแค็ตตาล็อก" msgid "Validate" msgstr "ตรวจสอบ" msgid "Check for errors in the translation" msgstr "" msgid "Update" msgstr "อัพเดท" msgid "Update catalog - synchronize it with sources" msgstr "ปรับปรุงรายการ - เชื่อมต่อกับแฟ้มดั้งเดิม" msgid "Sidebar" msgstr "" msgid "Show or hide the sidebar" msgstr "" #. TRANSLATORS: "Previous" as in used in the past, now replaced with newer. msgid "Previous source text:" msgstr "" msgid "" "The old source text (before it changed during an update) that the now-" "inaccurate translation corresponds to." msgstr "" msgid "Notes for translators:" msgstr "" msgid "Add comment" msgstr "" msgid "Add Comment" msgstr "" msgid "Translation suggestions:" msgstr "" #. TRANSLATORS: This is shown when no translation suggestions can be found in the TM (Windows). msgid "No matches found" msgstr "" #. TRANSLATORS: This is shown when no translation suggestions can be found in the TM (macOS, Linux). msgid "No Matches Found" msgstr "" msgid "This string was found in Poedit’s translation memory." msgstr "" msgid "Cannot create temporary directory." msgstr "" msgid "Welcome to Poedit" msgstr "ยินดีต้อนรับสู่ Poedit" #. TRANSLATORS: This is version information in about dialog, "%s" will be #. version number when used #, c-format msgid "Version %s" msgstr "เวอร์ชั่น %s" msgid "Edit a Translation" msgstr "" msgid "Edit a translation" msgstr "" msgid "Open an existing PO file and edit the translation." msgstr "" msgid "" "Take an existing PO file or POT template and create a new translation from " "it." msgstr "" msgid "Collaborate on a Translation with Others" msgstr "" msgid "Collaborate on a translation with others" msgstr "" msgid "" "Download a file from Crowdin project, translate and sync your changes back." msgstr "" msgid "What is Crowdin?" msgstr "" msgid "There are no translations. That’s unusual." msgstr "" msgid "" "Translatable entries aren’t added manually in the Gettext system, but are " "automatically extracted\n" "from source code. This way, they stay up to date and accurate.\n" "Translators typically use PO template files (POTs) prepared for them by the " "developer." msgstr "" msgid "(Learn more about GNU gettext)" msgstr "" msgid "The simplest way to fill this catalog is to update it from a POT:" msgstr "" msgid "Update from POT" msgstr "" msgid "Take translatable strings from an existing POT template." msgstr "" msgid "" "You can also extract translatable strings directly from the source code:" msgstr "" msgid "Extract from sources" msgstr "แตกไฟล์จากแหล่งข้อมูล" msgid "Configure source code extraction in Properties." msgstr "กำหนดค่าการแตกไฟล์โค้ดต้นฉบับในคุณสมบัติ" msgid "Sync" msgstr "" msgid "Synchronize the translation with Crowdin" msgstr "" #. TRANSLATORS: This is titlebar of about dialog, "%s" is application name #. ("Poedit" here, but please use "%s") #, c-format msgid "About %s" msgstr "เกี่ยวกับ %s" #. TRANSLATORS: Title of the preferences window on Windows and Linux. "%s" is replaced with "Poedit" when running. #, c-format msgid "%s Preferences" msgstr "" #. TRANSLATORS: macOS item in app menu msgid "Services" msgstr "บริการ" #. TRANSLATORS: macOS item in app menu, %s is replaced with "Poedit" #, c-format msgid "Hide %s" msgstr "ซ่อน %s" #. TRANSLATORS: macOS item in app menu msgid "Hide Others" msgstr "ซ่อนคนอื่น" #. TRANSLATORS: macOS item in app menu msgid "Show All" msgstr "แสดงทั้งหมด" #. TRANSLATORS: macOS item in app menu, %s is replaced with "Poedit" #, c-format msgid "Quit %s" msgstr "ออกจาก %s" #. TRANSLATORS: macOS item in app menu msgid "Preferences…" msgstr "" msgid "Preferences..." msgstr "ตัวเลือก..." #. TRANSLATORS: Title of a category in Windows task menu (right-click icon in taskbar) msgid "Recent" msgstr "" #. TRANSLATORS: Title of a category in Windows task menu (right-click icon in taskbar) msgid "Frequent" msgstr "" msgid "&Apply" msgstr "" msgid "Apply" msgstr "" msgid "&Back" msgstr "" msgid "Back" msgstr "" msgid "&Cancel" msgstr "" msgid "&Clear" msgstr "" msgid "Clear" msgstr "" msgid "Copy" msgstr "" msgid "Cu&t" msgstr "" msgid "Cut" msgstr "" msgid "&Delete" msgstr "&ลบ" msgid "&Quit" msgstr "" msgid "File" msgstr "" msgid "Help" msgstr "" msgid "&New" msgstr "" msgid "&No" msgstr "" msgid "No" msgstr "" msgid "&OK" msgstr "" msgid "Open…" msgstr "" msgid "&Open..." msgstr "&เปิด..." msgid "Open..." msgstr "" msgid "&Paste" msgstr "&วาง" msgid "Paste" msgstr "" msgid "Preferences" msgstr "" msgid "&Redo" msgstr "" msgid "Refresh" msgstr "" msgid "&Save as" msgstr "" msgid "Save as" msgstr "" msgid "Select &All" msgstr "เลือก&ทั้งหมด" msgid "Select All" msgstr "เลือกทั้งหมด" msgid "&Undo" msgstr "" msgid "&Yes" msgstr "" msgid "Yes" msgstr "" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Shift+" msgstr "" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Enter" msgstr "" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Up" msgstr "" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Down" msgstr "" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Left" msgstr "" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Right" msgstr "" #. TRANSLATORS: Keyboard shortcut, must correspond to translation of "Ctrl+" msgid "ctrl" msgstr "" #. TRANSLATORS: Keyboard shortcut, must correspond to translation of "Alt+" msgid "alt" msgstr "" #. TRANSLATORS: Keyboard shortcut, must correspond to translation of "Shift+" msgid "shift" msgstr "" poedit-2.0.6/locales/sq.mo0000664000372000037200000014265413230132042012330 00000000000000P%1 1 11<11J 2gW2 22 22 222 3333%3+333B3Q3W3]3f3z333333333333 3 44 4)4 04=4M4c4y44444444445 5(5D5Y5n55555555 6 '6:36:n6 666 6 666 6 7 #707?7O7c7~77777 71898'>8f88 8878689)=9g9 l9]w99A9I*:t:{:; ;;";:; U;`;.h;;;;;;;;<*<F<#[<<<<<<<<(<(=7= R=s=|== ==/= = >>#>9>L>b>2>>>>> ?)???????@@@ 2@?@R@Ee@"@?@ AA*.A YAfAyAK~A"A5A#B)BHAH HHI 'IHI PI ]IiI"nI;I(IIJ&J 5J ?JMJjJ ~JJJJJ JJK:K PK<^K.KKKKLL*%LPLVLgL xL LLJMNMgM MMMMM#MM'M$N7DN$|N%NNNNNNOOOO O2O P#P9PNP]PlPtP|PPPPPPPPQQQnQERZR>aR RRRR@RS-TNW!^DGŞJ XrG 'ơ ,Gcs | ¢ ʢ բ (;)Lv"} AMV\kz Ť٤-* HRiy  ɥ!=P1i ɦ Ϧۦ "6MlקŨԨ  2CXiaqө3 J Xb| ~/ ث%2,XbA%-SgD>خ.SLYlRgұbU)C8&K_9.'/޴32B;u4|,cQ|_QgXVAY?!:a~rr ""EWmӽ |lo( Ѿ۾ ޾)0*$[$ ڿL0g-1mL  !*B!Z| IB?] 4mJOTX4]!-1 .OUg-~D}],6 9BW6tC3H>C'# )h?*Kq#-0^aG2zFYblx&2LADZ.EwPi=Ab[kv @4uh~ uL@|pnf.nTN? QI2:qOKcajd F!p ]U>T+rXi=J%Vxz51^s4 NH/F"8/XJ`om #UwQk :Gs$ 8jL!~I1,(<D-9B>|;$H(E?g<y!dYgIo \ <eN+rM5&cM5 :"K-A+EmZ7C"603B $%RfRVeyOG*S@ M,4}_{O%W91J)S[`' 7)v &;*{(l_.03=\7P8/t';P (modified) (unsaved)%d entry%d entries%d entry was pre-translated.%d entries were pre-translated.%d error%d errors%d issue with the translation found.%d issues with the translation found.%i line of file “%s” was not loaded correctly.%i lines of file “%s” were not loaded correctly.%s Format%s Preferences%s format&About&About Poedit&Apply&Back&Bookmarks&Cancel&Clear&Close&Copy&Delete&Done and Next&Done and next&Edit&File&Find…&GNU gettext Manual&GNU gettext manual&Go&Group By Context&Group by context&Help&New&New…&Next >&Next Translation&Next translation&No&OK&Online Help&Online help&Open...&Open…&Paste&Preferences&Preferences…&Previous Translation&Previous translation&Properties…&Purge Deleted Translations&Purge deleted translations&Quit&Redo&Replace&Save&Save as&Show References&Show references&Undo&Untranslated Entries First&Untranslated entries first&Update from Sources&Update from sources&Validate Translations&Validate translations&View&Yes(0 new, 0 obsolete)(Learn more about GNU gettext)(New: %i, obsolete: %i)(Use default language)(requires Windows 8 or newer)< &PreviousDrag and Drop Folders Here or use the + buttonDrag and drop folders here or use the + buttonAbout %sAccountsAdd CommentAdd Files…Add Folders…Add Wildcard…Add commentAdd directory to the listAdd files…Add folders…Add wildcard…Additional keywordsAdditional xgettext flags:AdvancedAdvanced Extraction Settings…Advanced extraction settingsAdvanced extraction settings…All Translation FilesAll commentsAlso use default keywords for supported languagesAlt+Always change focus to text input fieldAn item in input files list:An item in keywords list:AppearanceApplyAre you sure you want to delete the “%s” extractor?Are you sure you want to reset the translation memory?Automatically check for updatesAutomatically compile MO file when savingBackBase path:Beta versions contain the latest new features and improvements, but may be a bit less stable.Bring All to FrontBroken catalog file: plural form msgstr used without msgid_pluralBroken catalog file: singular form msgstr used together with msgid_pluralBrowseBy default, inaccurate results are filled in as well and marked as needing work. Check this option to only include accurate matches.C&atalogC&learCancelCannot create temporary directory.Cannot execute program: %sCapitalizeCatalogCatalog modified. Do you want to save changes?Catalog propertiesCatalogs &ManagerCatalogs &managerCatalogs ManagerChange UI languageCharset:Check Document NowCheck Grammar With SpellingCheck Spelling While TypingCheck for Updates…Check for errors in the translationCheck for updates…Check spellingClearClear TranslationClear the commentClear translationCloseCollaborate on a Translation with OthersCollaborate on a translation with othersCollecting source files…Command to extract translations:Comment:Comments prefixed with:Compile to MO…Compile to…Compiled Translation FilesConfigure source code extraction in Properties.ConfirmationCopyCopy From SingularCopy from Source TextCopy from singularCopy from source textCorrect Spelling AutomaticallyCouldn’t load file %s, it is probably corrupted.Couldn’t save file %s.Create New TranslationCreate new translationCreate new translations projectCrowdin errorCrowdin is an online localization management platform and collaborative translation tool. Poedit can seamlessly sync PO files managed at Crowdin.Ctrl+Cu&tCustom Extractors:Custom extractors:CutDatabase size on disk:DeleteDelete extractorDelete the projectDirectories:Display Entry &IDsDisplay entry &IDsDo you really want to do mass update of all catalogs in this project?Do you want to delete the project?Do you want to remove all translations that are no longer used?Don’t SaveDon’t Show AgainDon’t mark exact matches as needing workDon’t saveDon’t show againDownDownload a file from Crowdin project, translate and sync your changes back.Downloading latest translations…Downloading translations is disabled in this project.E&xitE&xport as HTML…EditEdit &CommentEdit &commentEdit CommentEdit a TranslationEdit a translationEdit commentEdit projectEdit the projectEditingEdit…Email:EnterEnter Full ScreenEntries in the catalog are probably incorrect.Entries in this catalog have different plural forms count from what catalog’s Plural-Forms header saysEntries with Errors FirstEntries with errors firstEntries with errors were marked in red in the list. Details of the error will be shown when you select such an entry.Error loading message catalog file “%s”.Error opening fileError opening file %s!Error saving catalogErrorsEverythingExcluded pathsExport as…Extract from sourcesExtract notes for translators from:Extract text from source files in the following directories:Extracting translatable strings…Extractor setupExtractorsFailed command: %sFailed to communicate with Poedit process.Failed to load extracted catalog.Failed to merge gettext catalogs.Failed to update translation memory: %sFileFile “%s” doesn’t exist.File “%s” is not a message catalog.File “%s” is read-only and cannot be saved. Please save it under different name.File:Finalizing…FindFind NextFind PreviousFind and Replace…Find in commentsFind in source textsFind in translationsFind nextFind previousFix LanguageFix languageFix the HeaderFix the headerForm %iFrequentGNU gettextGeneralGo to Bookmark %iGo to bookmark %iHTML FilesHelpHide %sHide OthersHide SidebarHide Status BarHide this notification messageIDIf you continue with purging, all translations marked as deleted will be permanently removed. You will have to translate them again if they are added back in the future.Ignore caseImporting translations…Include beta versionsInformation about the translatorInstallInvalid fileInvocation:KeepLanguage Code or Name (e.g. en_GB)Language of the translation is the same as source language.Language of the translation isn’t set.Language of the translation:Language selectionLanguage team:Language:Last modifiedLearn About Gettext KeywordsLearn From Files…Learn MoreLearn More About CrowdinLearn about gettext keywordsLearn about plural formsLearn from files…Learn moreLearn more about CrowdinLeftLine %d of file “%s” is corrupted (not valid %s data).Line endings:List of extensions separated by semicolons (e.g. *.cpp;*.h):MO files can’t be directly edited in Poedit.Make Lower CaseMake Upper CaseMalformed header: “%s”Merging differences…MinimizeName of the project the translation is forName:Ne&xt UnfinishedNe&xt unfinishedNeeds WorkNeeds workNever let the list of strings take focus. If enabled, you must use Ctrl-arrows for keyboard navigation but you can also type text immediately, without having to press Tab to change focus.NewNew From &POT/PO File…New from &POT/PO file…New stringsNext Plural FormNext plural formNoNo Matches FoundNo entries could be pre-translated.No matches foundNo problems with the translation found.No references for the selected item.No translation projects listed in your Crowdin account.Not all plural forms are translated.Not authorized, please sign in again.Notes for translators:OKObsolete stringsOneOnly enable if you trust the quality of your TM. By default, all matches from the TM are marked as needing work and should be reviewed before use.Only fill in exact matchesOpenOpen Crowdin translationOpen From Crowdin…Open RecentOpen an existing PO file and edit the translation.Open catalogOpen catalog templateOpen from Crowdin…Open in EditorOpen in editorOpen...Open…OptionsOtherP&revious UnfinishedP&revious unfinishedPO TranslationPO Translation FilesPOT Translation TemplatesPOT files are only templates and don’t contain any translations themselves. To make a translation, create a new PO file based on the template.PastePaste and Match StylePathsPlease open and edit the corresponding PO file instead. When you save it, the MO file will be updated as well.Please save the file first. This section cannot be edited until then.PluralPlural forms expression used by the catalog is unusual for %s.Plural forms:Plural:PoeditPoedit - Catalogs managerPoedit automatically fixed invalid content in the file “%s”.Poedit can attempt to fill in new entries from only previous translations in the file or from your entire translation memory. Using the TM won’t be very effective if it’s near-empty, but it will get better as you add more translations to it.Poedit is an easy to use translations editor.Pre-&translate…Pre-translatePre-translatedPre-translated %u stringPre-translated %u stringsPre-translating…Pre-translation automatically finds exact or fuzzy matches for untranslated strings in the translation memory and fills in their translations.PreferencesPreferences...Preferences…Preserve formatting of existing filesPrevious Plural FormPrevious plural formPrevious source text:Project name and version:Project name:Project:PurgePurge deleted translationsQuitQuit %sRecentRedoReferences:RefreshRemaining: %dReplaceReplace &AllReplace &allReplacement stringReplace…Required header Plural-Forms is missing.ResetReset translation memoryResetting the translation memory will irrevocably delete all stored translations from it. You can’t undo this operation.ReviewRightSaveSave &As…Save &as…Save asSave as…Save catalogSave changesSelect &AllSelect AllSelect directorySelect translation files to importSelect your preferred languageServicesSet Bookmark %iSet LanguageSet bookmark %iSet languageShift+Show AllShow SidebarShow Spelling and GrammarShow Status BarShow SubstitutionsShow or hide the sidebarShow sidebarShow status barShow summary after catalog updateSidebarSign InSign OutSign inSign in to CrowdinSign outSigned in as:SingularSingular:Smart Copy/PasteSmart DashesSmart LinksSmart QuotesSort by &File OrderSort by &SourceSort by &TranslationSort by &file orderSort by &sourceSort by &translationSource code charset:Source code extractors are used to find translatable strings in the source code files and extract them so that they can be translated.Source code not available.Source fileSource file occurrence:Source textSource text — %sSource text:Sources KeywordsSources PathsSources keywordsSources pathsSpeechSpellchecking is disabled, because the dictionary for %s isn’t installed.Spelling and GrammarStart SpeakingStop SpeakingStored translations:String to findSubstitutionsSuggestionsSuggestions are not available if the translation language is not set correctly. Other features, such as plural forms, may be affected as well.Supports all programming languages recognized by GNU gettext tools (PHP, C/C++, C#, Perl, Python, Java, JavaScript and others).SyncSync with CrowdinSynchronize the translation with CrowdinSyncingSyncing errorSyncing with %s failed.Syncing with %s…Syncing with Crowdin failed.Syntax error in Plural-Forms header ("%s").TMTake an existing PO file or POT template and create a new translation from it.Take translatable strings from an existing POT template.Team name and email address or URLText ReplacementThe TM doesn’t contain any strings similar to the content of this file. It is only effective for semi-automatic translations after Poedit learns enough from files that you translated manually.The catalog couldn’t be saved in “%s” charset as specified in catalog settings. It was saved in UTF-8 instead and the setting was modified accordingly.The file cannot be compiled into the MO format and used.The file cannot be opened.The file contained duplicate items, which is not allowed in PO files and would prevent the file from being used. Poedit fixed the issue, but you should review translations of any items marked as needing work and correct them if necessary.The file may be either corrupted or in a format not recognized by Poedit.The file was compiled into the MO format, but it will probably not work correctly.The file was saved safely and compiled into the MO format, but it will probably not work correctly.The file was saved safely, but it cannot be compiled into the MO format and used.The file was saved safely.The old source text (before it changed during an update) that the now-inaccurate translation corresponds to.The simplest way to fill this catalog is to update it from a POT:The translation doesn’t start with a space.The translation ends with a newline, but the source text doesn’t.The translation ends with a space, but the source text doesn’t.The translation ends with “%s”, but the source text ends with “%s”.The translation is missing a newline at the end.The translation is missing a space at the end.The translation is ready for use, but %d entry is not translated yet.The translation is ready for use, but %d entries are not translated yet.The translation is ready for use.The translation should end with “%s”.The translation should not end with “%s”.The translation should start as a sentence.The translation should start with a lowercase character.The translation starts with a space, but the source text doesn’t.The translations were marked as needing work, because they may be inaccurate. You should review them for correctness.There are no translations. That’s unusual.There was a problem formatting the file nicely (but it was saved all right).There were errors when loading the catalog. Some data may be missing or corrupted as the result.These settings affect internal formatting of PO files. Adjust them if you have specific requirements e.g. because of version control.These strings are no longer in the sources. Poedit will remove them from the catalog now.These strings were found in the sources but were not in the catalog. Poedit will add them to the catalog now.This catalog has entries with plural forms, but doesn’t have Plural-Forms header configured.This file can only be edited in Crowdin’s web interface.This is the command used to launch the extractor. %o expands to the name of output file, %K to list of keywords, %F to list of input files, %C to charset flag (see below).This project has no files that can be translated in Poedit.This string was found in Poedit’s translation memory.This will be attached to the command line only if source code charset was given. %c expands to charset value.This will be attached to the command line once for each input file. %f expands to the filename.This will be attached to the command line once for each keyword. %k expands to the keyword.TotalTransformationsTranslatable entries aren’t added manually in the Gettext system, but are automatically extracted from source code. This way, they stay up to date and accurate. Translators typically use PO template files (POTs) prepared for them by the developer.Translated: %d of %d (%d %%)Translation LanguageTranslation MemoryTranslation Needs &WorkTranslation PropertiesTranslation needs &workTranslation propertiesTranslation suggestions:Translation — %sTranslation:Translations couldn’t be updated from the source code, because no code was found in the location specified in the catalog’s Properties.TwoUTF-8 (recommended)UndoUnhandled exception occurred: %sUnix (recommended)UntransUpUpdateUpdate allUpdate all catalogs in the projectUpdate catalog - synchronize it with sourcesUpdate from &POT File…Update from &POT file…Update from POTUpdate summaryUpdatesUpdating catalogUpdating failedUpdating the catalog failed. Click on 'Details >>' for details.Updating user information…Uploading translations…Use custom expressionUse custom list font:Use custom text fields font:Use default rules for this languageUse these keywords (function names) to recognize translatable strings in source files:Use translation memoryValidateValidation resultsVersion %sWaiting for authentication…Welcome to PoeditWhat is Crowdin?When updating from sourcesWhole words onlyWindowWindowsWrap aroundWrap at:YesYou can also extract translatable strings directly from the source code:You can’t drop more than one file on Poedit window.You must restart Poedit for this change to take effect.Your NameYour changes will be lost if you don’t save them.Your name and email address are only used to set the Last-Translator header of GNU gettext files.ZeroZoomaltctrldon’t delete temporary files (for debugging)e.g. nplurals=2; plural=(n > 1);fuzzy match within the filego to item at given line numberhandle a poedit:// URIpre-translate from TMshiftunknown languageyour_email@example.com“%s” is not a valid POT file.Project-Id-Version: poedit Report-Msgid-Bugs-To: help@poedit.net POT-Creation-Date: 2017-12-05 15:52+0100 PO-Revision-Date: 2017-12-05 09:50-0500 Last-Translator: vslavik Language-Team: Albanian Language: sq_AL MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=(n != 1); X-Generator: crowdin.com X-Crowdin-Project: poedit X-Crowdin-Language: sq X-Crowdin-File: /locales/poedit.pot (i ndryshuar) (i paruajtur)%d zë%d zëraU përkthye paraprakisht %d zë.U përkthyen paraprakisht %d zëra.%d gabim%d gabimeU gjet %d problem te përkthimi.U gjetën %d probleme te përkthimi.%i rresht i kartelës “%s” s’u ngarkua saktësisht.%i rreshta të kartelës “%s” s’u ngarkuan saktësisht.Format %sParapëlqime mbi %sFormat %s&Mbi&Mbi Poedit-in&Zbatoje&Mbrapsht&Faqerojtës&Anuloje&Pastroje&Mbylle&Kopjoje&Fshije&U bë, Tjetri&U bë, tjetri&Përpunoni&Kartelë&Gjeni…Doracaku &GNU gettextDoracaku &GNU gettext&Shko&Grupoji Sipas Kontekstit&Grupoji sipas kontekstit&NdihmëE &reI &ri…&Pasuesi >Përkthimi &PasuesPërkthimi &pasues&Jo&OKNdihmë Në &InternetNdihmë në &Internet&Hapni…&Hapni…&Ngjite&Parapëlqime&Parapëlqime…Përkthimi i &MëparshëmPërkthimi i &mëparshëm&Veti…&Spastroji Përkthimet e Fshira&Spastroji përkthimet e fshira&Mbylle&Ribëje&Zëvendësoje&Ruaje&Ruaje si&Shfaq Referenca&Shfaq referenca&ZhbëjeSë Pari Zërat e &PapërkthyerSë pari zërat e &papërkthyer&Përditësoji prej Burimesh&Përditësoji prej burimesh&Vleftësoni Përkthime&Vleftësoni përkthime&Parje&Po(0 të rinj, 0 të vjetruar)(Mësoni më tepër mbi GNU gettext-in)(Të rinj: %i, të vjetruar: %i)(Përdor gjuhë parazgjedhje)(lyp Windows 8 ose më të ri)< I &mëparshmiTërhiqni dhe Lini Këtu Dosje ose përdorni butonin +Tërhiqni dhe lini këtu dosje ose përdorni butonin +Mbi %s-inLlogariShtoni KomentShtoni Kartela…Shtoni Dosje…Shtoni Shenja të Gjithëpushtetshme…Shto komentShtoni drejtori te listaShtoni kartela…Shtoni dosje…Shtoni shenja të gjithëpushtetshme…Fjalëkyçe shtesëShenja xgettext shtesë:Të mëtejshmeRregullime të Thelluara Përftimesh…Rregullime të thelluara përftimeshRregullime të thelluara përftimesh…Krejt Kartelat e PërkthimitKrejt komentetVeç kësaj, përdor fjalëkyçe parazgjedhje për gjuhët e mbuluaraAlt+Ndryshoje përherë fokusin për te fushë futjeje tekstiNjë zë në listë futje kartelash:Një zë në listë fjalëkyçesh:DukjeZbatojeJeni i sigurt se doni të fshihet përftuesi “%s”?Jeni i sigurt se doni të zerohet kujtesa e përkthimeve?Kontrollo vetvetiu për përditësimeGjatë daljes, përpilo vetvetiu kartelën MOMbrapshtShteg bazë:Versionet beta përmbajnë veçoritë dhe përmirësimet më të reja, por mund të jenë më pak të qëndrueshme.Sill Gjithçka PërparaKartelë katalogu e dëmtuar: vargje mesazhesh në shumës përdorur pa msgid_pluralKartelë katalogu e dëmtuar: vargje mesazhesh në njëjës përdorur bashkë me msgid_pluralShfletoniSi parazgjedhje, plotësohen edhe përfundimet e pasakta dhe shënohen si të turbullta. I vini shenjë kësaj mundësie që të përfshihen vetëm përputhjet e përpikta.&Katalog&PastrojeAnulojeS’krijohet dot drejtori e përkohshme.S’përmbushet dot programi: %sShkronja e parë e madheKatalogKatalogu u ndryshua. Doni të ruhen ndryshimet?Veti katalogu&Përgjegjës Katalogësh&Përgjegjës katalogëshPërgjegjës KatalogëshNdryshoni gjuhën për UI-nëShkronja:Kontrolloje Dokumentin TaniKontrollojini Gramatikën Me DrejtshkriminKontrolloji Drejtshkrimin Teksa ShtypetKontrollo për Përditësime…Kontrolloni për gabime te përkthimiKontrollo për përditësime…Kontrolloji drejtshkriminPastrojePastroje PërkthiminPastroje komentinPastroje përkthiminMbylleBashkëpunoni me të Tjerë për një PërkthimBashkëpunoni me të tjerë për një përkthimPo grumbullohen kartela burim…Urdhër për përftim përkthimesh:Koment:Komente të paraprira me:Përpilojeni si MO…Përpiloje te…Kartela Përkthimi të PërpiluaraFormësoni përftim nga kodi burim, te Vetitë.RipohimKopjojeKopjoje Prej NjëjësitKopjoje prej Teksti BurimKopjoje prej njëjësitKopjoje prej teksti burimNdreqe Vetvetiu DrejtshkriminKartela %s s’u ngarkua dot, ka gjasa të jetë e dëmtuar.S’u ruajt dot kartela %s.Krijoni Përkthim të RiKrijoni përkthim të riKrijoni projekt të ri përkthimiGabim Crowdin-iCrowdin është një platformë administrimi përkthimesh në internet dhe mjet përkthimi në bashkëpunim. Poedit-i mund të njëkohësojë pa të metë kartela PO të administruara në Crowdin.Ctrl+&PrijePërftues të Përshtatur:Përftues të përshtatur:PrijeniMadhësi baze të dhënash në disk:FshijeFshije përftuesinFshije projektinDrejtori:Shfaq &ID ZërashShfaq &ID zërashVërtet doni të bëhet përditësim masiv i krejt katalogëve në këtë projekt?Doni të fshihet projekti?Doni të hiqen krejt përkthimet që s’përdoren më?Mos e RuajMos e Shfaq SërishPërputhjeve të përpikta mos u vër shenjë si të lypnin punëMos e ruajMos e shfaq sërishDownShkarkoni një kartelë prej një projekti në Crowdin, përkthejeni dhe parashtroni ndryshimet tuaja.Po shkarkohen përkthimet më të reja…Shkarkimi i përkthimeve është i çaktivizuar për këtë projekt.&Dil&Eksportojeni si HTML…PërpunoniPërpunoni &KomentinPërpunoni &komentPërpunoni KomentinPërpunoni një PërkthimPërpunoni një përkthimPërpunoni komentPërpunoni projektPërpunoni projektinPërpunimPërpunoni…Email:ENTERKaloni Në Gjendjen Sa Krejt EkraniKa mundësi të ketë zëra të pasaktë në katalog.Zërat në këtë katalog kanë forma shumësi të ndryshme nga çka tregohet te fusha Plural-Forms e katalogutSë Pari Zërat me GabimeSë pari zërat me gabimeZërat me gabime janë shënuar me të kuqe te lista. Hollësitë e gabimit do të shfaqen pasi të keni përzgjedhur një zë të tillë.Gabim në ngarkimin e kartelës katalog mesazhesh “%s”.Gabim gjatë hapjes së kartelësGabim gjatë hapjes së kartelës %s!Gabim në ruajtje kataloguGabimeGjithçkaShtigje të përjashtuarEksportojeni si…Përftoji prej burimeshPërfto shënime për përkthyesin nga:Përfto tekst prej kartelash burim nga drejtoritë vijuese:Po përftohen vargje të përkthyeshëm…Rregullim i përftuesitPërftuesUrdhri që dështoi: %sDështoi komunikimi me procesin Poedit.Dështoi ngarkimi i katalogut të përftuar.Dështoi përzierja e katalogëve gettext.Dështoi përditësimi i kujtesës së përkthimeve: %sKartelëKartela “%s” s’ekziston.Kartela “%s” s’është katalog mesazhesh.Kartela “%s” është vetëm për lexim dhe s’mund të ruhet. Ju lutemi, ruajeni nën një emër tjetër.Kartelë:Po përfundohet…GjejGjej PasuesinGjej të MëparshminGjeni dhe Zëvendësoni…Gjej në komenteGjej në tekste burimGjej në përkthimeGjej pasuesinGjej të mëparshminNdreqeni GjuhënNdreqeni gjuhënNdreqni KryetNdreqni kryetForma %iTë shpeshtaGNU gettextTë përgjithshmeShkoni te Faqerojtësi %iShkoni te faqerojtësi %iKartela HTMLNdihmëFshihe %sFshihi të TjerëtFshihe AnështyllënFshihe Shtyllën e GjendjeveFshihe këtë mesazh njoftimiIDNëse vazhdoni me spastrimin, krejt përkthimet e shënuara si të fshira do të hiqen përgjithmonë. Do t’ju duhet t’i ripërktheni, nëse shtohen sërish në të ardhmen.Shpërfille shkrimin me të madhe/me të vogëlPo importohen përkthimet…Përfshi versione betaTë dhëna rreth përkthyesitInstalojeKartelë e pavlefshmeThirrje:MbajiKod ose Emër Gjuhe (p.sh. sq)Gjuha e përkthimit është e njëjtë me gjuhën burim.S’është caktuar gjuha e përkthimit.Gjuha e përkthimit:Përzgjedhje gjuheEkip gjuhe:Gjuhë:Ndryshuar së fundiMësoni Rreth Fjalëkyçesh GettextMëso Prej Kartelave…Mësoni Më TepërMësoni Më Tepër Mbi Crowdin-inMësoni rreth fjalëkyçesh gettextMësoni më tepër rreth formash shumësiMëso prej kartelave…Mësoni më tepërMësoni më tepër mbi Crowdin-inMajtasRreshti %d i kartelës “%s” është i dëmtuar (pa të dhëna %s të vlefshme).Funde rreshtash:Listë zgjatimesh, të ndarë me pikëpresje (p.sh. *.cpp;*.h):Kartelat MO s’mund të përpunohen drejt e në Poedit.Kaloje në Shkronja të VoglaKaloje në Shkronja të MëdhaKrye e keqformuar: “%s”Po përzihen dallimet…MinimizojeEmri i projektit për të cilin bëhet përkthimiEmër:Pas&uesi i pambaruarPas&uesi i pambaruarLyp PunëLyp punëMos e lër kurrë listën e vargjeve të kontrollojë fokusin. Nëse është aktiv, duhet të përdorni Ctrl-shigjeta për lëvizje me tastierë, por gjithashtu mund të shtypni tekst përnjëherë, pa qenë nevoja të shtypni Tab për të ndryshuar fokusin.I riI ri prej Kartele &POT/PO…I ri prej kartele &POT/PO…Vargje të rinjForma Pasuese e ShumësitForma pasuese e shumësitJoS’u Gjetën PërputhjeS’u përkthye dot paraprakisht ndonjë zë.S’u gjetën përputhjeS’u gjetën probleme me përkthimin.Pa referenca për objektin e përzgjedhur.Pa projekte përkthimi në llogarinë tuaj Crowdin.S’janë përkthyer krejt format e shumësit.Jo i autorizuar, ju lutemi, ribëni hyrjen.Shënime për përkthyesit:OKVargje të vjetruarNjëAktivizojeni vetëm nëse besoni në cilësinë e KP-së suaj. Si parazgjedhje, krejt përputhjet prej KP-së shënohen si të turbullta dhe do të duheshin marrë në shqyrtim.Plotëso vetëm përputhjet e përpiktaHapeHape përkthimin në CrowdinHapeni Prej Crowdin-i…Hap Një Nga të RejatHapni një kartelë PO ekzistuese dhe përpunoni përkthimin.Hap katalogHap gjedhe kataloguHapeni prej Crowdin-i…Hape në PërpunuesHape në përpunuesHapni…Hapni…MundësiTjetërI më&parshmi i PambaruarI më&parshmi i pambaruarPërkthimi në trajtë POKartela Përkthimi POGjedhe Përkthimi POTKartelat POT janë thjesht gjedhe dhe s’përmbajnë ndonjë përkthim. Që të bëni një përkthim, krijoni një kartelë të re PO të bazuar te gjedhja.NgjitniNgjite dhe Përputhi StilinShtigjeJu lutemi, në vend të kësaj, hapni dhe përpunoni kartelën përgjegjëse PO. Kur ta ruani, do të përditësohet edhe kartela MO.Ju lutemi, së pari ruajeni kartelën. Kjo pjesë s’mund të përpunohet para ruajtjes.ShumësShprehja për forma shumësi e përdorur nga katalogu është e pazakontë për %s.Forma shumësi:Shumës:PoeditPoedit - Përgjegjës katalogëshPoedit-i ndreqi vetvetiu lëndë të pavlefshme te kartela “%s”.Poedit-i mund të provojë të plotësojë zëra të rinj që nga përkthime të dikurshme vetëm prej kartelës, ose prej krejt kujtesës së përkthimit. Përdorimi i KP-së s’do të jetë kushedi çë i efektshëm, nëse kjo është thuajse e zbrazët, por do të përmirësohet, dora-dorës që shtoni përkthime në të.Poedit është një përpunues përkthimesh i lehtë për t’u përdorur.Përkthe p&araprakisht…Përkthim paraprakPërkthyer paraprakisht%u varg i përkthyer paraprakisht%u vargje të përkthyer paraprakishtParapërkthim…Parapërkthimi gjen në kujtesën e përkthimeve përputhje të sakta ose të përafërta për vargje përkthimesh dhe i plotëson ato në kutizën e përkthimit.ParapëlqimeParapëlqime…Parapëlqime…Ruaje formatimin e kartelave ekzistueseForma e Mëparshme e ShumësitForma e mëparshme e shumësitTeksti burim i dikurshëm:Emër dhe version projekti:Emër projekti:Projekt:SpastrojiSpastroji përkthimet e fshiraMbylleMbylleni %sSë fundiRibëjeReferenca:RifreskojeTë mbetura: %dZëvendësojeZëvendësoji &KrejtZëvendësoji &krejtVarg zëvendësimiZëvendësoni…I mungon krye e domosdoshme Plural-Forms.ZerojeTë zerohet kujtesa e përkthimeveZerimi i kujtesës së përkthimit do të shkaktojë fshirjen, pa prapakthim, të krejt përkthimeve të depozituara në të. Këtë veprim s’mund ta zhbëni.ShqyrtojeniDjathtasRuajeRuajeni &Si…Ruajeni &si…Ruaje siRuajeni si…Ruaje katalogunRuaji ndryshimetPërzgjidhe &KrejtPërzgjidheni KrejtPërzgjidhni drejtoriPërzgjidhni kartela përkthimi për importimPërzgjidhni gjuhën tuaj të parapëlqyerShërbimeCaktoni Faqerojtës %iCaktoni GjuhënCaktoni faqerojtës %iCaktoni gjuhënShift+Shfaqi KrejtShfaqe AnështyllënShfaq Drejtshkrim dhe GramatikëShfaqe Shtyllën e GjendjeveShfaq ZëvendësimeShfaqni ose fshihni anështyllënShfaq anështyllëShfaq shtyllë gjendjeshPas përditësimesh katalogu, shfaq përmbledhjenAnështyllëHyniDilniHyniHyni në CrowdinDilniI futur si:NjëjësNjëjës:Kopjim/Ngjitje e MençurVija Ndarëse të MençuraLidhje të MençuraThonjëza të MençuraRenditi sipas Rendi &KartelashRenditi sipas &BurimeshRenditi sipas &PërkthimeshRenditi sipas rendi &kartelashRenditi sipas &burimeshRenditi sipas &përkthimeshShkronja kodi burim:Përftuesit prej kodi burim përdoren për të gjetur vargje të përkthyeshme në kartela kodi burim dhe për t’i përftuar ato, që të mund të përkthehen.Pa kod burim të gatshëm.Kartelë burimHasje në kartelë burim:Teksti burimTeksti burim — %sTeksti burim:Fjalëkyçe BurimeshShtigje BurimeshFjalëkyçe burimeshShtigje burimeshE folurKontrolli i drejtshkrimit është i çaktivizuar, ngaqë fjalori për %s s’është i instaluar.Drejtshkrim dhe GramatikëFilloni të FolurënNdalni të FolurënPërkthime të depozituara:Varg për t’u gjeturZëvendësimeSugjerimeS’jepen sugjerime, në rast se gjuha e përkthimi s’është caktuar saktë. Kjo mund të prekë edhe veçori të tjera, format e shumësit, për shembull.Mbulon krejt gjuhët e programimit të pranuara nga mjete GNU gettext (PHP, C/C++, C#, Perl, Python, Java, JavaScript, etj).NjëkohësojeNjëkohësoje me Crowdin-inNjëkohësojeni përkthimin me atë në CrowdinNjëkohësimGabim njëkohësimiNjëkohësimi me %s dështoi.Po njëkohësohet me %s…Njëkohësimi me Crowdin-in dështoi.Gabim sintakse te kryet Plural-Forms ("%s").KPMerrni një kartelë ekzistuese PO ose një gjedhe POT dhe krijoni prej saj një përkthim të ri.Merri vargjet e përkthyeshëm prej një gjedheje POT ekzistuese.Emër ekipi dhe adresë email ose URLZëvendësim TekstiKP-ja s’përmban ndonjë varg të ngjashëm me lëndën e kësaj kartele. Ka efekt vetëm për përkthime gjysmë të vetvetishme, pasi Poedit të grumbullojë mjaftueshëm lëndë prej kartelave që përktheni dorazi.Katalogu s’u ruajt dot nën shkronjat “%s” e treguara në rregullime katalogu. U ruajt nën UTF-8 dhe rregullimi u ndryshua për përputhje.Kartela s’përpilohet dot në formatin MO dhe të përdoret.Kartela s’hapet dot.Kartela përmbante zëra të përsëdytur, çka në kartelat PO s’lejohet dhe mund të pengojë përdorimin e kartelës. Poedit e ndreqi problemin, por do të duhej që të shqyrtonit përkthimet e cilitdo zë të shënuar si i turbullt dhe t’i ndreqni ato, në qoftë e nevojshme.Kartela mund të jetë ose e dëmtuar, ose në një format të panjohur nga Poedit.Kartela u përpilua nën formatin MO, por sipas gjasash s’do të funksionojë si duhet.Kartela u ruajt pa cen dhe u përpilua nën formatin MO, por sipas gjasash s’do të funksionojë si duhet.Kartela u ruajt pa cen, por s’përpilohet dot në formatin MO dhe të përdoret.Kartela u ruajt pa cen.Teksti burim i dikurshëm (përpara se të ndryshohej gjatë një përditësimi) të cilit i takon përkthimi tanimë jo i saktë.Rruga më e lehtë për të plotësuar këtë katalog është përditësimi i tij prej një POT-i:Përkthimi nuk fillon me një hapësirë.Përkthimi përfundon me një simbol rreshti të ri, por jo burimi.Përkthimi përfundon me një hapësirë, por jo burimi.Përkthimi përfundon me “%s”, por teksti burim përfundon me “%s”.Përkthimit i mungon një simbol rreshti të ri në fund.Përkthimit i mungon një hapësirë në fund.Përkthimi është gati për përdorim, por %d zë është ende i papërkthyer.Përkthimi është gati për përdorim, por %d zëra janë ende të papërkthyer.Përkthimi është gati për përdorim.Përkthimi duhet të mbarojë me një “%s”.Përkthimi s’duhet të mbarojë me një “%s”.Përkthimi duhet të fillojë me një togfjalësh.Përkthimi duhet të fillojë me një shkronjë të vogël.Përkthimi fillon me një hapësirë, por jo burimi.Përkthimet janë shënuar si të turbullta, ngaqë mund të jenë të pasakta. Do të duhej t’u kontrollonit saktësinë.S’ka përkthime. Kjo është e pazakontë.Pati një problem me formatimin si duhet të kartelës (por u ruajt në rregull).Pati gabime gjatë ngarkimit të katalogut. Për pasojë, disa nga të dhënat mund të kenë humbur ose të jenë dëmtuar.Këto rregullime prekin formatim të brendshëm të kartelave PO. Prekini nëse keni domosdoshmëri specifike, për shembull, për shkak sistemi kontrolli versionesh.Këto vargje s’janë më në burime. Poedit do t’i heqë prej katalogut tani.Këto vargje u gjetën në burime, por s’qenë te katalogu. Poedit do t’i shtojë te katalogu tani.Ky katalog ka zëra me forma shumësi, por s’ka të formësuar fushën Plural-Forms.Kjo kartelë mund të përpunohet te ndërfaqja web e Crowdin-it.Ky është urdhri i përdorur për të nisur përtypësin. %o bëhet emri i kartelës përfundim, %K lista e fjalëkyçeve, %F lista e kartelave hyrëse, %C simboli i shkronjave (shihni më poshtë).Ky projekt s’ka kartela që mund të përkthehen nën Poedit.Ky varg u gjet në kujtesën e përkthimeve të Poedit-it.Kjo do t’i bashkëngjitet rreshtit të urdhrave vetëm nëse janë dhënë shkronja kodi burim. %c bëhet emri i shkronjave.Kjo do t’i bashkëngjitet rreshtit të urdhrave një herë për çdo kartelë hyrje. %f bëhet emri i kartelës.Kjo do t’i bashkëngjitet rreshtit të urdhrave një herë për çdo fjalëkyç. %k bëhet vlera e fjalëkyçit.GjithsejShndërrimeNë sistemin Gettext, zërat e përkthyeshëm nuk shtohen dorazi, përftohen automatikisht që nga kodi burim. Në këtë mënyrë, ata mbeten të përditësuar dhe të saktë. Zakonisht përkthyesit përdorin kartela PO (POT) të përgatitura për ta nga zhvilluesi.Të përkthyera: %d nga %d (%d %%)Gjuhë PërkthimiKujtesë PërkthimeshPërkthimi Lyp &PunëVeti PërkthimeshPërkthimi lyp &punëVeti përkthimeshSugjerime përkthimi:Përkthim — %sPërkthim:S’u përditësuan dot përkthimet që prej kodit burim, ngaqë s’u gjet kod në vendin e treguar te Vetitë e katalogut.DyUTF-8 (e këshillueshme)ZhbëjeNdodhi një përjashtim i patrajtuar: %sUnix (e këshillueshme)PapërkthUpPërditësojePërditësoji krejtPërditëso tërë katalogët në projektPërditëso katalogun - njëkohësoje me burimetPërditësojeni prej Kartele &POT…Përditësojeni prej kartele &POT…Përditësojeni prej POT-iPërditëso përmbledhjenPërditësimePo përditësohet kataloguPërditësimi dështoiPërditësimi i katalogut dështoi. Për hollësi, klikoni te 'Hollësi >>'.Po përditësohen të dhëna mbi përdoruesin…Po ngarkohen përkthime…Përdor shprehje vetjakePërdor shkronja vetjake liste:Përdor shkronja vetjake për fusha tekstesh:Për këtë gjuhë përdor rregullat parazgjedhjePërdorini këta fjalëkyçe (emra funksionesh) për të dalluar vargje të përkthyeshëm te kartelat burim:Përdor kujtesë përkthimeshVleftësojePërfundime vleftësimiVersioni %sPo pritet për mirëfilltësim…Mirë se vini te PoeditÇ’është Crowdin-i?Kur përditësohet që nga burimiVetëm fjalë të plotaDritareWindowsMbështilleMbështille në gjatësinë:PoMund të përftoni vargje të përkthyeshëm edhe drejt e nga kodi burim:S’mund të jepni më tepër se një kartelë te dritarja Poedit.Duhet të rinisni Poedit-in, pa të hyjnë në fuqi ndryshimet.Emri JuajNdryshimet tuaja do të humbasin, nëse s’i ruani.Emri dhe email-i juaj përdoren vetëm për të plotësuar fushën Last-Translator të kartelave GNU gettext.ZeroZoomaltctrlmos fshi kartela të përkohshme (për diagnostikim)p.sh. nplurals=2; plural=(n > 1);plotëso përputhje të turbullta nga kartelashko tek objekti në rreshtin me numrin e dhënëtrajto një URI poedit://përkthe paraprakisht prej KP-jeshiftgjuhë e panjohuryour_email@example.com“%s” s’është kartelë POT e vlefshme.poedit-2.0.6/locales/sk.po0000664000372000037200000015412413230131554012327 00000000000000msgid "" msgstr "" "Project-Id-Version: poedit\n" "Report-Msgid-Bugs-To: help@poedit.net\n" "POT-Creation-Date: 2017-12-05 15:52+0100\n" "PO-Revision-Date: 2017-09-21 11:20-0400\n" "Last-Translator: vslavik \n" "Language-Team: Slovak\n" "Language: sk_SK\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" "X-Generator: crowdin.com\n" "X-Crowdin-Project: poedit\n" "X-Crowdin-Language: sk\n" "X-Crowdin-File: /locales/poedit.pot\n" msgid "Hide this notification message" msgstr "Skryť toto upozornenie" msgid "Don’t Show Again" msgstr "Nabudúce nezobrazovať" msgid "Don’t show again" msgstr "Nabudúce nezobrazovať" #, c-format msgid "(New: %i, obsolete: %i)" msgstr "(Nové: %i, zastaralé: %i)" msgid "Updating catalog" msgstr "Aktualizovanie katalógu" msgid "Collecting source files…" msgstr "Zber zdrojových súborov..." msgid "Extracting translatable strings…" msgstr "Extrahovanie reťazcov na preklad..." msgid "Failed to load extracted catalog." msgstr "Nepodarilo sa načítať extrahovaný katalóg." msgid "Merging differences…" msgstr "Zlučovanie zmien..." #, c-format msgid "“%s” is not a valid POT file." msgstr "„%s\" nie je platný súbor POT." #, c-format msgid "%i line of file “%s” was not loaded correctly." msgid_plural "%i lines of file “%s” were not loaded correctly." msgstr[0] "%i riadok súboru „%s\" sa nenačítal správne." msgstr[1] "%i riadoky súboru „%s\" sa nenačítali správne." msgstr[2] "%i riadokov súboru „%s\" sa nenačítali správne." #, c-format msgid "Line %d of file “%s” is corrupted (not valid %s data)." msgstr "Riadok %d súbor „%s\" je poškodený (%s nie sú platné údaje)." #, c-format msgid "Malformed header: “%s”" msgstr "Poškodená hlavička: „%s\"" msgid "" "Broken catalog file: singular form msgstr used together with msgid_plural" msgstr "" "Chybný súbor katalógu: tvar jednotného čísla msgstr je použitý aj v " "msgid_plural" msgid "Broken catalog file: plural form msgstr used without msgid_plural" msgstr "" "Poškodený súbor katalógu: tvar množného čísla msgstr použitý bez msgid_plural" msgid "" "There were errors when loading the catalog. Some data may be missing or " "corrupted as the result." msgstr "" "Nastala chyba pri načítavaní katalógu. Niektoré údaje môžu chýbať alebo byť " "poškodené." #, c-format msgid "Couldn’t load file %s, it is probably corrupted." msgstr "Nepolo možné načítať súbor %s, pravdepodobne je poškodený." #, c-format msgid "" "File “%s” is read-only and cannot be saved.\n" "Please save it under different name." msgstr "" "Súbor “%s” je iba na čítanie a nemôže byť uložený.\n" "Prosím, uložte ho pod iným názvom." #, c-format msgid "Couldn’t save file %s." msgstr "Súbor %s nie je možné uložiť." msgid "" "There was a problem formatting the file nicely (but it was saved all right)." msgstr "" "Vyskytol sa problém pri formátovaní súboru (napriek tomu bol správne " "uložený)." #, c-format msgid "" "The catalog couldn’t be saved in “%s” charset as specified in catalog " "settings.\n" "\n" "It was saved in UTF-8 instead and the setting was modified accordingly." msgstr "" "Katalóg nie je možné uložiť v znakovej sade “%s” špecifikovanej v nastavení " "katalógu.\n" "\n" "Katalóg bol uložený v UTF-8 a nastavenia boli podľa toho upravené." msgid "Error saving catalog" msgstr "Chyba pri ukladaní katalógu" msgid "PO Translation Files" msgstr "PO súbory prekladu" msgid "POT Translation Templates" msgstr "Šablóny prekladania POT" msgid "All Translation Files" msgstr "Všetky prekladané súbory" msgid "(Use default language)" msgstr "(Použiť pôvodný jazyk)" msgid "Select your preferred language" msgstr "Vyberte si váš preferovaný jazyk" msgid "Language selection" msgstr "Výber jazyka" msgid "You must restart Poedit for this change to take effect." msgstr "Musíte reštartovať program Poedit, aby sa prejavili zmeny." msgid "Syncing" msgstr "Synchronizácia" #. TRANSLATORS: %s is a cloud destination, e.g. "Crowdin" or ftp.wordpress.com etc. #, c-format msgid "Syncing with %s…" msgstr "Synchronizácia so službou %s…" #. TRANSLATORS: %s is a cloud destination, e.g. "Crowdin" or ftp.wordpress.com etc. #, c-format msgid "Syncing with %s failed." msgstr "Synchronizácia s %s zlyhala." msgid "Syncing error" msgstr "Chyba synchronizácie" msgid "Downloading translations is disabled in this project." msgstr "V tomto projekte je sťahovanie prekladov vypnuté." msgid "Not authorized, please sign in again." msgstr "Chyba pri autorizácii, skúste sa prihlásiť znova." msgid "" "Crowdin is an online localization management platform and collaborative " "translation tool. Poedit can seamlessly sync PO files managed at Crowdin." msgstr "" "Crowdin je služba pre správu online prekladov a nástroj pre spoluprácu pri " "nich. Program Poedit môže jednoducho synchronizovať .PO súbory spravované v " "službe Crowdin." msgid "Sign In" msgstr "Prihlásiť" msgid "Sign in" msgstr "Prihlásiť" msgid "Sign Out" msgstr "Odhlásiť" msgid "Sign out" msgstr "Odhlásiť" msgid "Waiting for authentication…" msgstr "Prebieha overovanie vášho účtu…" msgid "Updating user information…" msgstr "Aktualizujú sa informácie o používateľovi…" msgid "Signed in as:" msgstr "Prihlásený ako:" msgid "Learn More About Crowdin" msgstr "Viac informácií o službe Crowdin" msgid "Learn more about Crowdin" msgstr "Viac informácií o službe Crowdin" msgid "Sign in to Crowdin" msgstr "Prihlásenie do služby Crowdin" msgid "Open Crowdin translation" msgstr "Otvoriť Crowdin preklad" msgid "Project:" msgstr "Projekt:" msgid "Language:" msgstr "Jazyk prekladu:" msgid "File:" msgstr "Súbor:" msgid "No translation projects listed in your Crowdin account." msgstr "Neboli nájdené žiadne prekladateľské projekty vo vašom účte Crowdin." msgid "This project has no files that can be translated in Poedit." msgstr "" "Tento projekt neobsahuje žiadne súbory, ktoré môžu byť preložené programom " "Poedit." msgid "This file can only be edited in Crowdin’s web interface." msgstr "" "Tento súbor môže byť upravovaný iba vo webovom rozhraní služby Crowdin." msgid "Downloading latest translations…" msgstr "Sťahovanie najnovších prekladov…" msgid "Syncing with Crowdin failed." msgstr "Synchronizácia so službou Crowdin zlyhala." msgid "Crowdin error" msgstr "Chyba – Crowdin" msgid "Uploading translations…" msgstr "Odosielanie prekladov…" msgid "&Copy" msgstr "&Kopírovať" msgid "Learn more" msgstr "Zistiť viac" msgid "Learn More" msgstr "Zistiť viac" msgid "&Help" msgstr "&Pomoc" msgid "MO files can’t be directly edited in Poedit." msgstr "MO súbory nemôžu by upravované priamo v programe Poedit." msgid "Error opening file" msgstr "Chyba pri otváraní súboru" msgid "" "Please open and edit the corresponding PO file instead. When you save it, " "the MO file will be updated as well." msgstr "" "Otvorte a upravte namiesto toho zodpovedajúci PO súbor. Po jeho uložení bude " "takisto aktualizovaný aj MO súbor." msgid "don’t delete temporary files (for debugging)" msgstr "neodstrániť dočasné súbory (pre ladenie)" msgid "handle a poedit:// URI" msgstr "handle a poedit:// URI" msgid "go to item at given line number" msgstr "choďte k položke na dané číslo riadku" msgid "Failed to communicate with Poedit process." msgstr "Nie je možné komunikovať s presom programu Poedit." #, c-format msgid "Unhandled exception occurred: %s" msgstr "Došlo k neočakávanej chybe: %s" msgid "Open catalog" msgstr "Otvoriť katalóg" #, c-format msgid "File “%s” doesn’t exist." msgstr "Súbor „%s\" neexistuje." msgid "Poedit is an easy to use translations editor." msgstr "Program Poedit je jednoducho použiteľný editor prekladov." msgid "Catalogs Manager" msgstr "Správca katalógov" msgid "Check for Updates…" msgstr "Kontrola aktualizácií…" msgid "&Edit" msgstr "&Upraviť" msgid "Undo" msgstr "Späť" msgid "Redo" msgstr "Zmena" msgid "Paste and Match Style" msgstr "Prilepiť a prispôsobiť štýl" msgid "Delete" msgstr "Odstrániť" msgid "Spelling and Grammar" msgstr "Pravopis a gramatika" msgid "Show Spelling and Grammar" msgstr "Zobraziť pravopis a gramatiku" msgid "Check Document Now" msgstr "Skontrolovať dokument teraz" msgid "Check Spelling While Typing" msgstr "Kontrolovať gramatiku počas písania" msgid "Check Grammar With Spelling" msgstr "Skontrolovať gramatiku so slovníkom" msgid "Correct Spelling Automatically" msgstr "Automaticky opravovať gramatiku" msgid "Substitutions" msgstr "Zámeny" msgid "Show Substitutions" msgstr "Zobraziť návrhy" msgid "Smart Copy/Paste" msgstr "Rýchle kopírovanie/prilepenie" msgid "Smart Quotes" msgstr "Chytré úvodzovky" msgid "Smart Dashes" msgstr "Chytré pomlčky" msgid "Smart Links" msgstr "Chytré odkazy" msgid "Text Replacement" msgstr "Zámena textu" msgid "Transformations" msgstr "Zmeny" msgid "Make Upper Case" msgstr "Zmeniť na VEĽKÉ PÍSMO" msgid "Make Lower Case" msgstr "Zmeniť na malé písmo" msgid "Capitalize" msgstr "Veľké písmená" msgid "Speech" msgstr "Jazyk" msgid "Start Speaking" msgstr "Začať rozprávanie" msgid "Stop Speaking" msgstr "Zastaviť rozprávanie" msgid "&View" msgstr "&Zobraziť" msgid "Enter Full Screen" msgstr "Na celú obrazovku" msgid "Window" msgstr "Okno" msgid "Minimize" msgstr "Minimalizovať" msgid "Zoom" msgstr "Priblíženie" msgid "Bring All to Front" msgstr "Preniesť všetko dopredu" #. TRANSLATORS:File kind displayed in Finder/Explorer msgid "PO Translation" msgstr "PO preklad" msgid "The file cannot be opened." msgstr "Súbor nemohol byť otvorený." msgid "Invalid file" msgstr "Neplatný súbor" msgid "" "The file may be either corrupted or in a format not recognized by Poedit." msgstr "" "Súbor môže byť poškodený alebo formát nebol rozoznaný programom Poedit." msgid "You can’t drop more than one file on Poedit window." msgstr "Nemôžete vložiť viac ako jeden súbor do okna Poedit." #, c-format msgid "File “%s” is not a message catalog." msgstr "Súbor „%s\" nie je správa katalógu." msgid "Poedit" msgstr "Poedit" msgid "&File" msgstr "&Súbor" msgid "&Go" msgstr "P&rejsť" #. TRANSLATORS: %s is language name in its basic form (as you #. would see e.g. in a list of supported languages). You may need #. to rephrase it, e.g. to an equivalent of "for language %s". #, c-format msgid "" "Spellchecking is disabled, because the dictionary for %s isn’t installed." msgstr "" "Kontrola pravopisu je vypnutá, pretože slovník pre jazyk %s nie je " "nainštalovaný." msgid "Install" msgstr "Inštalovať" msgid "Catalog modified. Do you want to save changes?" msgstr "Katalóg bol zmenený. Želáte si uložiť zmeny?" msgid "Save changes" msgstr "Uložiť zmeny" msgid "Your changes will be lost if you don’t save them." msgstr "Vaše úpravy budú stratené ak ich neuložíte." msgid "Save" msgstr "Uložiť" msgid "Don’t save" msgstr "Neukladať" msgid "Don’t Save" msgstr "Neukladať" msgid "Save as…" msgstr "Uložiť ako..." msgid "Compile to…" msgstr "Kompilovať do..." msgid "Compiled Translation Files" msgstr "Spracované súbory prekladu" msgid "Export as…" msgstr "Exportovať ako..." msgid "HTML Files" msgstr "HTML súbory" msgid "Open catalog template" msgstr "Otvoriť katalóg návrhov" msgid "Source code not available." msgstr "Zdrojový kód nie je k dispozícii." msgid "Updating failed" msgstr "Aktualizácia zlyhala" msgid "" "Translations couldn’t be updated from the source code, because no code was " "found in the location specified in the catalog’s Properties." msgstr "" "Nepodarilo sa aktualizovať preklady zo zdrojového kódu, pretože sa nenašiel " "žiadny kód umiestnenia vo vlastnostiach katalógu." msgid "Entries in the catalog are probably incorrect." msgstr "Záznamy v katalógu sú pravdepodobne nesprávne." msgid "Updating the catalog failed. Click on 'Details >>' for details." msgstr "" "Aktualizácia katalógu zlyhala. Kliknite na „Podrobnosti >>\" pre viac " "detailov." #, c-format msgid "%d issue with the translation found." msgid_plural "%d issues with the translation found." msgstr[0] "Našiel sa %d problém s prekladom." msgstr[1] "Našli sa %d problémy s prekladom." msgstr[2] "Našlo sa %d problémov s prekladom." msgid "Validation results" msgstr "Výsledky overovania" msgid "" "Entries with errors were marked in red in the list. Details of the error " "will be shown when you select such an entry." msgstr "" "Záznamy s chybami boli v zozname vyznačené na červeno. Podrobnosti o chybe " "budú zobrazené, ak vyberiete nejaký záznam." msgid "The file was saved safely." msgstr "Súbor bol bezpečne uložený." msgid "" "The file was saved safely and compiled into the MO format, but it will " "probably not work correctly." msgstr "" "Súbor bol bezpečne uložený a skompilovaný do MO formátu, ale pravdepodobne " "nebude pracovať správne." msgid "" "The file was saved safely, but it cannot be compiled into the MO format and " "used." msgstr "" "Súbor bol bezpečne uložený, ale nemôže byť skompilovaný do formátu MO a " "následne použitý." msgid "" "The file was compiled into the MO format, but it will probably not work " "correctly." msgstr "" "Súbor vo formáte MO bol vytvorený, ale pravdepodobne nefunguje správne." msgid "The file cannot be compiled into the MO format and used." msgstr "Súbor MO nemôže byť vytvorený a použitý." msgid "No problems with the translation found." msgstr "Nenašli sa žiadne problémy s prekladom." #, c-format msgid "The translation is ready for use, but %d entry is not translated yet." msgid_plural "" "The translation is ready for use, but %d entries are not translated yet." msgstr[0] "" "Preklad je pripravený na používanie, ale %d záznam ešte nie je preložený." msgstr[1] "" "Preklad je pripravený na používanie, ale %d záznamy ešte nie sú preložené." msgstr[2] "" "Preklad je pripravený na používanie, ale %d záznamov ešte nie je preložených." msgid "The translation is ready for use." msgstr "Preklad je pripravený na používanie." #, c-format msgid "Poedit automatically fixed invalid content in the file “%s”." msgstr "Program Poedit automaticky opraví neplatný obsah v súbore \"%s\"." msgid "" "The file contained duplicate items, which is not allowed in PO files and " "would prevent the file from being used. Poedit fixed the issue, but you " "should review translations of any items marked as needing work and correct " "them if necessary." msgstr "" "Súbor obsahoval duplicitné položky, čo nie je v PO súboroch povolené a a " "zabránilo by to ich použitiu. Poedit tento problém opravil, ale mali by ste " "skontrolovať všetky preklady označené ako nepresné a prípadne ich opraviť." msgid "Language of the translation isn’t set." msgstr "Jazyk prekladu nie je nastavený." msgid "Set Language" msgstr "Nastaviť jazyk" msgid "Set language" msgstr "Vybrať jazyk" #. TRANSLATORS: This is shown underneath "Language of the translation isn't set (or ...is the same as source language)." msgid "" "Suggestions are not available if the translation language is not set " "correctly. Other features, such as plural forms, may be affected as well." msgstr "" "Návrhy nie sú dostupné ak jazyk prekladu nie je nastavený správne. Ostatné " "funkcie, ako množné číslo, tým môžu byť ovplyvnené." msgid "Language of the translation is the same as source language." msgstr "Jazyk prekladu je taký istý ako zdrojový jazyk." msgid "Fix Language" msgstr "Zmeniť jazyk" msgid "Fix language" msgstr "Opraviť jazyk" msgid "" "This catalog has entries with plural forms, but doesn’t have Plural-Forms " "header configured." msgstr "" "Tento katalóg obsahuje položky s množným číslom, ale nemá nakonfigurovanú " "hlavička množného čísla." msgid "" "Entries in this catalog have different plural forms count from what " "catalog’s Plural-Forms header says" msgstr "" "Položky v tomto katalógu majú iné počty množných čísiel než ako je " "nakonfigurovaná hlavička množných čísiel katalógu" msgid "Required header Plural-Forms is missing." msgstr "Potrebná hlavička Plural-Forms sa nenašla." #, c-format msgid "Syntax error in Plural-Forms header (\"%s\")." msgstr "Chyba syntaxe v hlavičke Plural-Forms (\"%s\")." msgid "Fix the Header" msgstr "Opraviť hlavičku" msgid "Fix the header" msgstr "Opraviť hlavičku" #. TRANSLATORS: %s is language name in its basic form (as you #. would see e.g. in a list of supported languages). You may need #. to rephrase it, e.g. to an equivalent of "for language %s". #, c-format msgid "Plural forms expression used by the catalog is unusual for %s." msgstr "" "Katalógom použité vyjadrenie množného čísla je nezvyčajné pre jazyk %s." #. TRANSLATORS: A verb, shown as action button with ""Plural forms expression used by the catalog is unusual for %s.")" msgid "Review" msgstr "Náhľad" #, c-format msgid "Error loading message catalog file “%s”." msgstr "Chyba pri načítaní správy súbor katalógu „%s\"." #, c-format msgid "Translated: %d of %d (%d %%)" msgstr "Preložené: %d z %d (%d %%)" #, c-format msgid "Remaining: %d" msgstr "Zostáva: %d" #, c-format msgid "%d error" msgid_plural "%d errors" msgstr[0] "%d chyba" msgstr[1] "%d chyby" msgstr[2] "%d chýb" #, c-format msgid "%d entry" msgid_plural "%d entries" msgstr[0] "%d položka" msgstr[1] "%d položky" msgstr[2] "%d položiek" msgid " (unsaved)" msgstr " (neuložené)" msgid " (modified)" msgstr " (zmenené)" #, c-format msgid "Failed to update translation memory: %s" msgstr "Nepodarilo sa aktualizovať pamäť prekladov: %s" msgid "Purge deleted translations" msgstr "Odstrániť zmazané preklady" msgid "Do you want to remove all translations that are no longer used?" msgstr "Chcete odstrániť všetky preklady, ktoré sa už viac nepoužívajú?" msgid "" "If you continue with purging, all translations marked as deleted will be " "permanently removed. You will have to translate them again if they are added " "back in the future." msgstr "" "Ak budete pokračovať s čistením, všetky preklady označené ako zmazané budú " "natrvalo odstránené. V prípade, že budú v budúcnosti znovu pridané, budete " "ich musieť preložiť znovu." msgid "Keep" msgstr "Zachovať" msgid "Purge" msgstr "Vyčistiť" msgid "Copy from source text" msgstr "Skopírovať zo zdrojového textu" msgid "Copy from Source Text" msgstr "Skopírovať zo zdrojového textu" #. TRANSLATORS: This is the key shortcut used in menus on Windows, some languages call them differently #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Ctrl+" msgstr "Ctrl+" msgid "Clear translation" msgstr "Zmazať preklad" msgid "Clear Translation" msgstr "Zmazať preklad" msgid "Edit comment" msgstr "Upraviť komentár" msgid "Edit Comment" msgstr "Upraviť komentár" msgid "References:" msgstr "Odkazy:" msgid "&Bookmarks" msgstr "&Záložky" #. TRANSLATORS: This is the key shortcut used in menus on Windows, some languages call them differently #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Alt+" msgstr "Alt+" #, c-format msgid "Set bookmark %i" msgstr "Nastaviť záložku: %i" #, c-format msgid "Go to bookmark %i" msgstr "Prejsť na záložku: %i" #, c-format msgid "Set Bookmark %i" msgstr "Nastaviť záložku: %i" #, c-format msgid "Go to Bookmark %i" msgstr "Prejsť na záložku: %i" msgid "Hide Sidebar" msgstr "Skryť bočný panel" msgid "Show Sidebar" msgstr "Zobraziť bočný panel" msgid "Hide Status Bar" msgstr "Skryť stavový riadok" msgid "Show Status Bar" msgstr "Zobraziť stavový riadok" msgid "Source text:" msgstr "Zdrojový text:" msgid "Singular:" msgstr "Jednotné číslo:" msgid "Plural:" msgstr "Množné číslo:" msgid "Translation:" msgstr "Preklad:" msgid "Pre-translated" msgstr "Predbežne preložené" msgid "Needs Work" msgstr "Vyžaduje pozornosť" #. TRANSLATORS: This indicates that the string's translation isn't final #. and has known problems. For example, it might be machine translated or #. fuzzy matched from an older string. The translation should be short and #. convey this. If it's problematic to translate it, "Needs review" is #. acceptable substitute, but note that the meaning is subtly different: #. "needs review" implies that somebody else should review the string after #. I am done with it (i.e. consider it good), while "needs work" implies I #. need to return to it and finish the translation. msgid "Needs work" msgstr "Vyžaduje pozornosť" msgid "" "POT files are only templates and don’t contain any translations themselves.\n" "To make a translation, create a new PO file based on the template." msgstr "" "Súbory POT sú iba šablóny a samé neobsahujú žiadne preklady.\n" "Ak chcete vytvoriť nový preklad, vytvorte nový PO súbor na základe šablóny." msgid "Create New Translation" msgstr "Vytvoriť nový preklad" msgid "Create new translation" msgstr "Vytvoriť nový preklad" msgid "Everything" msgstr "Všetko" #, c-format msgid "Form %i" msgstr "Tvar %i" msgid "Singular" msgstr "Jednotné číslo" msgid "Zero" msgstr "Nula" msgid "One" msgstr "Jeden" msgid "Two" msgstr "Dva" msgid "Plural" msgstr "Množné číslo" msgid "Other" msgstr "Ostatné" #, c-format msgid "%s Format" msgstr "%s formát" #. TRANSLATORS: %s is replaced with language name, e.g. "PHP" or "C", so "PHP Format" etc." #, c-format msgid "%s format" msgstr "%s formát" msgid "Source text" msgstr "Zdrojový text" #, c-format msgid "Translation — %s" msgstr "Preklad - %s" msgid "ID" msgstr "ID" #, c-format msgid "Source text — %s" msgstr "Zdrojový text – %s" msgid "unknown language" msgstr "neznámy jazyk" #, c-format msgid "Failed command: %s" msgstr "Neplatný príkaz: %s" msgid "Failed to merge gettext catalogs." msgstr "Nepodarilo sa zlúčiť katalógy gettext." msgid "Source file" msgstr "Zdrojový súbor" msgid "Source file occurrence:" msgstr "Výskyt v zdrojovom súbore:" msgid "Open in Editor" msgstr "Otvoriť v editore" msgid "Open in editor" msgstr "Otvoriť v editore" msgid "No references for the selected item." msgstr "Žiadne odporúčanie pre vybanú položku." #, c-format msgid "Error opening file %s!" msgstr "Chyba pri otváraní súboru „%s\"" msgid "Find" msgstr "Hľadať" msgid "Replace" msgstr "Nahradiť" #. TRANSLATORS: Expander in Find window for additional options (case sensitive etc.) msgid "Options" msgstr "Možnosti" msgid "Ignore case" msgstr "Ignorovať veľkosť písmen" msgid "Wrap around" msgstr "Vyhľadávať dookola" msgid "Whole words only" msgstr "Iba celé slová" msgid "Find in source texts" msgstr "Hľadať v zdrojových textoch" msgid "Find in translations" msgstr "Hľadať v prekladoch" msgid "Find in comments" msgstr "Vyhľadať v komentároch" msgid "Close" msgstr "Zatvoriť" msgid "Replace &All" msgstr "Nahradiť &všetko" msgid "Replace &all" msgstr "Nahradiť &všetko" msgid "&Replace" msgstr "&Nahradiť" msgid "< &Previous" msgstr "< &Predchádzajúci" msgid "&Next >" msgstr "&Nasledujúci >" msgid "String to find" msgstr "Vyhľadávaný reťazec" msgid "Replacement string" msgstr "Nahradené reťazcom" #, c-format msgid "Cannot execute program: %s" msgstr "Nepodarilo sa spustiť program: %s" msgid "Language Code or Name (e.g. en_GB)" msgstr "Kód alebo názov jazyku (napr. en_GB)" msgid "Translation Language" msgstr "Jazyk prekladu" msgid "Language of the translation:" msgstr "Jazyk prekladu:" msgid "Poedit - Catalogs manager" msgstr "Poedit – Správca katalógov" msgid "Catalog" msgstr "Katalóg" msgid "Total" msgstr "Celkovo" msgid "Untrans" msgstr "Nepreložené" msgid "Errors" msgstr "Chyby" msgid "Last modified" msgstr "Posledná zmena" msgid "Select directory" msgstr "Vyberte si priečinok" msgid "Directories:" msgstr "Priečinky:" msgid "" msgstr "" msgid "Do you want to delete the project?" msgstr "Chcete odstrániť tento projekt?" msgid "Confirmation" msgstr "Potvrdenie" msgid "" "Do you really want to do mass update of\n" "all catalogs in this project?" msgstr "" "Naozaj chcete urobiť hromadnú aktualizáciu\n" "všetkých katalógov v tomto projekte?" msgid "Information about the translator" msgstr "Informácie o prekladateľovi" msgid "Name:" msgstr "Meno:" msgid "Your Name" msgstr "Vaše meno" msgid "Email:" msgstr "Email:" msgid "your_email@example.com" msgstr "vas_email@priklad.sk" msgid "" "Your name and email address are only used to set the Last-Translator header " "of GNU gettext files." msgstr "" "Vaše meno a emailová adresa sú použité iba v hlavičke Last-Translator v GNU " "gettext súboroch." msgid "Editing" msgstr "Úprava prekladov" msgid "Automatically compile MO file when saving" msgstr "Automaticky aktualizovať MO súbor pri uložení" msgid "Show summary after catalog update" msgstr "Zobraziť sumarizáciu po aktualizácii katalógu" msgid "Check spelling" msgstr "Kontrola gramatiky" msgid "Always change focus to text input field" msgstr "Vždy aktivovať políčko pre zadávanie textu" msgid "" "Never let the list of strings take focus. If enabled, you must use Ctrl-" "arrows for keyboard navigation but you can also type text immediately, " "without having to press Tab to change focus." msgstr "" "Zakázať, aby bol aktivovaný zoznam reťazcov. Ak je táto voľba aktívna, " "musíte pre navigáciu v zozname reťazcov použiť Ctrl + šípky na klávesnici. " "Takto môžete priamo začať písať text bez nutnosti stlačiť klávesu Tab pre " "aktiváciu poľa." msgid "Appearance" msgstr "Vzhľad" msgid "Use custom list font:" msgstr "Použiť vlastný zoznam písmen:" msgid "Use custom text fields font:" msgstr "Použiť vlastný zoznam písmen polí:" msgid "Change UI language" msgstr "Zmena jazyka rozhrania" #. TRANSLATORS: This is a note appended to "Check spelling" when running on older Windows versions msgid "(requires Windows 8 or newer)" msgstr "(požadovaný Windows 8 alebo novší)" msgid "General" msgstr "Všeobecné" msgid "Use translation memory" msgstr "Použiť pamäť prekladov (PP)" msgid "Learn From Files…" msgstr "Učiť sa zo súborov..." msgid "Learn from files…" msgstr "Učiť sa zo súborov..." #. TRANSLATORS: This is a button that deletes everything in the translation memory (i.e. clears/resets it). msgid "Reset" msgstr "Obnoviť" #. TRANSLATORS: Followed by "match translations within the file" or "pre-translate from TM" msgid "When updating from sources" msgstr "Pri aktualizácii zo zdroja " #. TRANSLATORS: Preceded by "When updating from sources" msgid "fuzzy match within the file" msgstr "označiť ako nepresné v súbore" #. TRANSLATORS: Preceded by "When updating from sources" msgid "pre-translate from TM" msgstr "predbežne preložiť z PP" msgid "" "Poedit can attempt to fill in new entries from only previous translations in " "the file or from your entire translation memory. Using the TM won’t be very " "effective if it’s near-empty, but it will get better as you add more " "translations to it." msgstr "" "Poedit sa pokúsi vyplniť nové reťazce iba z predošlých prekladov v súbore " "alebo z celej pamäti prekladov. Prekladanie pomocou PP nebude príliš účinné " "ak je skoro prázdna, ale bude lepšie ak pridáte viac prekladov." msgid "Stored translations:" msgstr "Počet uložených prekladov:" msgid "Database size on disk:" msgstr "Veľkosť databázy na disku:" msgid "Select translation files to import" msgstr "Vyberte súbor prekladu pre import" msgid "Translation Memory" msgstr "Pamäť prekladov" msgid "Importing translations…" msgstr "Importujú sa preklady..." msgid "Finalizing…" msgstr "Dokončuje sa..." msgid "Reset translation memory" msgstr "Obnoviť pamäť prekladov" msgid "Are you sure you want to reset the translation memory?" msgstr "Ste si istý že chcete obnoviť pamäť prekladov?" msgid "" "Resetting the translation memory will irrevocably delete all stored " "translations from it. You can’t undo this operation." msgstr "" "Obnovením pamäte prekladov natrvalo vymažete všetky uložené preklady. Túto " "operáciu nie je možné vrátiť späť." msgid "Cancel" msgstr "Zrušiť" #. TRANSLATORS: This is abbreviation of "Translation Memory" used in Preferences on macOS. #. Long text looks weird there, too short (like TM) too, but less so. "General" is about ideal #. length there. msgid "TM" msgstr "PP" msgid "" "Source code extractors are used to find translatable strings in the source " "code files and extract them so that they can be translated." msgstr "" "Zdrojové kódy extraktorov sú použité na vyhľadávanie preložiteľných reťazcov " "v zdrojovom kóde súborov a vybraté ak môžu byť preložené." msgid "Custom Extractors:" msgstr "Používateľské extraktory:" msgid "Custom extractors:" msgstr "Používateľské extraktory:" msgid "Edit…" msgstr "Upraviť..." msgid "GNU gettext" msgstr "GNU gettext" msgid "" "Supports all programming languages recognized by GNU gettext tools (PHP, C/C+" "+, C#, Perl, Python, Java, JavaScript and others)." msgstr "" "Podporuje všetky programovacie jazyky nástrojov GNU gettext (PHP, C/C++, C#, " "Perl, Python, Java, JavaScript a ďalšie)." msgid "Delete extractor" msgstr "Odstrániť extractor" #, c-format msgid "Are you sure you want to delete the “%s” extractor?" msgstr "Ste si istý, že chcete vymazať extraktor „%s\"?" msgid "Extractors" msgstr "Extraktory" msgid "Accounts" msgstr "Účty" msgid "Automatically check for updates" msgstr "Automaticky kontrolovať aktualizácie" msgid "Include beta versions" msgstr "Zahrnúť beta verzie programu" msgid "" "Beta versions contain the latest new features and improvements, but may be a " "bit less stable." msgstr "" "Beta verzie obsahujú najnovšie funkcie a vylepšenia, ale môžu byť menej " "stabilné." msgid "Updates" msgstr "Aktualizácie" msgid "" "These settings affect internal formatting of PO files. Adjust them if you " "have specific requirements e.g. because of version control." msgstr "" "Tieto nastavenia majú vplyv na interné formátovanie PO súborov.Zmeňte ich, " "iba ak máte špeciálne požiadavky, napríklad kvôli kontrole verzií." msgid "Line endings:" msgstr "Ukončenie riadkov:" msgid "Unix (recommended)" msgstr "Unix (odporúčané)" msgid "Windows" msgstr "Windows" #. TRANSLATORS: Followed by text control for entering number; wraps text at given width msgid "Wrap at:" msgstr "Zalomiť po:" msgid "Preserve formatting of existing files" msgstr "Zachovať existujúce formátovanie súborov" msgid "Advanced" msgstr "Rozšírené" msgid "Pre-translating…" msgstr "Prebieha predbežný preklad…" #, c-format msgid "Pre-translated %u string" msgid_plural "Pre-translated %u strings" msgstr[0] "Predbežne preložený %u reťazec" msgstr[1] "Predbežne preložené %u reťazce" msgstr[2] "Predbežne preložených %u reťazcov" #. TRANSLATORS: This is a somewhat common term describing the action where #. you apply the translation memory and/or machine translation to all of the #. strings you're translating as the first step, followed by correcting, #. improving etc., i.e. actually translating the strings. This may be tricky #. to express in other languages as simply as in English, but please try to #. keep it similarly concise. Please try to avoid, if possible, describing it #. as "auto-translation" and similar, because such terminology would mislead #. some users into thinking it's all that needs to be done (spoken from #. experience). "Pre-translate" nicely expresses that it's only the step done #. *before* actual translation. msgid "Pre-translate" msgstr "Predpreložiť" msgid "Only fill in exact matches" msgstr "Vyplniť iba presné zhody" msgid "" "By default, inaccurate results are filled in as well and marked as needing " "work. Check this option to only include accurate matches." msgstr "" "Predvolene sú chybné výsledky doplnené a označené ako potrebujú pozornosť. " "Začiarknite túto možnosť, aby boli doplnené iba presné zhody." msgid "Don’t mark exact matches as needing work" msgstr "Neoznačovať presné výsledky ako potrebujú pozornosť" msgid "" "Only enable if you trust the quality of your TM. By default, all matches " "from the TM are marked as needing work and should be reviewed before use." msgstr "" "Povoľte iba ak dôverujete kvalitu vášej PP. Predvolene všetky zhody z PP sú " "označené ako vyžadujúce vašu pozornosť a mali by byť posúdené pred použitím." msgid "" "Pre-translation automatically finds exact or fuzzy matches for untranslated " "strings in the translation memory and fills in their translations." msgstr "" "Pri použití predbežného prekladu budú nájdené presné alebo čiastočné zhody " "pre nepreložené preklady v pamäti prekladov a budú doplnené do prekladov." #, c-format msgid "%d entry was pre-translated." msgid_plural "%d entries were pre-translated." msgstr[0] "%d reťazec bol predbežne preložený" msgstr[1] "%d reťazce boli predbežne preložené" msgstr[2] "%d reťazcov bolo predbežne preložených" msgid "" "The translations were marked as needing work, because they may be " "inaccurate. You should review them for correctness." msgstr "" "Preklady boli označené ako potrebujú pozornosť, pretože môžu byť nepresné a " "môžu potrebovať úpravy." msgid "No entries could be pre-translated." msgstr "Žiadne reťazce neboli predbežne preložené." msgid "" "The TM doesn’t contain any strings similar to the content of this file. It " "is only effective for semi-automatic translations after Poedit learns enough " "from files that you translated manually." msgstr "" "Pamäť prekladov neobsahuje žiaden reťazec podobný obsahu tohto súboru. Tento " "spôsob je účinný iba pre poloautomatické preklady po tom ako sa Poedit naučí " "zo súborov, ktoré ste preložili manuálne." msgid "" "Drag and Drop Folders Here\n" "\n" "or use the + button" msgstr "" "Sem pretiahnite a pustite priečinky \n" "\n" "alebo použite + tlačidlo" msgid "" "Drag and drop folders here\n" "\n" "or use the + button" msgstr "" "Sem pretiahnite a pustite priečinky\n" "\n" "alebo použite + tlačidlo" msgid "Add Folders…" msgstr "Pridať zložky..." msgid "Add folders…" msgstr "Pridať zložky..." msgid "Add Files…" msgstr "Pridať súbory..." msgid "Add files…" msgstr "Pridať súbory..." msgid "Add Wildcard…" msgstr "Pridať Wildcard..." msgid "Add wildcard…" msgstr "Pridať Wildcard..." msgid "Paths" msgstr "Cesty" msgid "Excluded paths" msgstr "Vylúčené cesty" msgid "Advanced extraction settings" msgstr "Rozšírené nastavenia extrakcie" msgid "Extract notes for translators from:" msgstr "Extrahovať poznámky pre prekladateľov z:" msgid "Comments prefixed with:" msgstr "Komentárov začínajúcich reťazcom:" msgid "All comments" msgstr "Všetkých komentárov" msgid "Additional xgettext flags:" msgstr "Dodatočné xgettext indikátory:" msgid "Additional keywords" msgstr "Doplnkové kľúčové slová" msgid "Name of the project the translation is for" msgstr "Názov projektu prekladu je pre" msgid "Team name and email address or URL" msgstr "Názov tímu a e-mailová adresa alebo URL" msgid "e.g. nplurals=2; plural=(n > 1);" msgstr "napr. nplurals=2; plural=(n > 1);" msgid "UTF-8 (recommended)" msgstr "UTF-8 (odporúčané)" msgid "Please save the file first. This section cannot be edited until then." msgstr "Najprv uložte súbor. Táto sekcia nemôže byť bez uloženia upravovaná." msgid "Not all plural forms are translated." msgstr "Nie všetky množné čísla sú preložené." msgid "The translation should start as a sentence." msgstr "Preklad by mal začať ako veta." msgid "The translation should start with a lowercase character." msgstr "Preklad by mal začať malým písmenom." msgid "The translation doesn’t start with a space." msgstr "Preklad nezačína medzerou." msgid "The translation starts with a space, but the source text doesn’t." msgstr "Preklad začína medzerou, ale zdrojový text nie." msgid "The translation is missing a newline at the end." msgstr "Prekladu chýba nový riadok na konci." msgid "The translation ends with a newline, but the source text doesn’t." msgstr "Preklad končí novým riadkom, ale zdrojový text nie." msgid "The translation is missing a space at the end." msgstr "V preklade chýba medzera na konci." msgid "The translation ends with a space, but the source text doesn’t." msgstr "Preklad končí medzerou, ale zdrojový text nie." #, c-format msgid "The translation should end with “%s”." msgstr "Preklad by mal končiť s \"%s\"." #, c-format msgid "The translation should not end with “%s”." msgstr "Preklad by nemal končiť s \"%s\"." #, c-format msgid "The translation ends with “%s”, but the source text ends with “%s”." msgstr "Preklad končí s \"%s\", ale zdrojový text končí s \"%s\"." msgid "Comment:" msgstr "Komentár:" msgid "OK" msgstr "OK" msgid "C&lear" msgstr "V&yčistiť" msgid "Clear the comment" msgstr "Vymazať komentár" msgid "New" msgstr "Nový" msgid "Create new translations project" msgstr "Vytvoriť nový projekt prekladu" msgid "Edit" msgstr "Upraviť" msgid "Edit the project" msgstr "Upraviť projekt" msgid "Delete the project" msgstr "Odstrániť projekt" msgid "Update all" msgstr "Aktualizovať všetko" msgid "Update all catalogs in the project" msgstr "Aktualizovať všetky katalógy v projekte" msgid "Edit project" msgstr "Upraviť projekt" msgid "Project name:" msgstr "Názov projektu:" msgid "Browse" msgstr "Prehliadať" msgid "Add directory to the list" msgstr "Pridať priečinok do zoznamu" msgid "&New…" msgstr "&Nový..." msgid "New from &POT/PO file…" msgstr "Nový zo súboru &POT/PO..." msgid "New From &POT/PO File…" msgstr "Nový zo súboru &POT/PO..." msgid "&Open…" msgstr "&Otvoriť..." msgid "Open Recent" msgstr "Otvoriť posledné" msgid "Open from Crowdin…" msgstr "Otvoriť z Crowdin..." msgid "Open From Crowdin…" msgstr "Otvoriť z Crowdin..." msgid "&Close" msgstr "&Zatvoriť" msgid "&Save" msgstr "&Uložiť" msgid "Save &as…" msgstr "Uložiť &ako..." msgid "Save &As…" msgstr "Uložiť &ako..." msgid "Compile to MO…" msgstr "Kompilovať do MO..." msgid "E&xport as HTML…" msgstr "E&xportovať ako HTML..." msgid "Check for updates…" msgstr "Skontrolovať aktualizácie..." msgid "&Preferences…" msgstr "&Predvoľby..." msgid "Catalogs &manager" msgstr "&Správca katalógov" msgid "Catalogs &Manager" msgstr "&Správca katalógov" msgid "E&xit" msgstr "U&končiť" msgid "Quit" msgstr "Ukončiť" msgid "Copy from singular" msgstr "Kopírovať zo singulára" msgid "Copy From Singular" msgstr "Kopírovať zo singulára" msgid "Translation needs &work" msgstr "Preklad vyžaduje &pozornosť" msgid "Translation Needs &Work" msgstr "Preklad vyžaduje &pozornosť" msgid "Edit &comment" msgstr "&Upraviť komentár" msgid "Edit &Comment" msgstr "&Upraviť komentár" msgid "Suggestions" msgstr "Návrhy" msgid "&Find…" msgstr "&Nájsť..." msgid "Replace…" msgstr "Nahradiť..." msgid "Find next" msgstr "Nájsť nasledujúci" msgid "Find previous" msgstr "Hľadať predchádzajúci" msgid "Find and Replace…" msgstr "Nájsť a nahradiť..." msgid "Find Next" msgstr "Hľadať nasledujúci" msgid "Find Previous" msgstr "Nájsť predchádzajúci" msgid "&Preferences" msgstr "Nas&tavenia" msgid "Display entry &IDs" msgstr "Zobraziť &ID záznamu" msgid "Display Entry &IDs" msgstr "Zobraziť &ID záznamu" msgid "Sort by &file order" msgstr "Usporiadať podľa poradia &súborov" msgid "Sort by &File Order" msgstr "Usporiadať podľa &poradia súborov" msgid "Sort by &source" msgstr "Usporiadať podľa &zdroja" msgid "Sort by &Source" msgstr "Usporiadať podľa &zdroja" msgid "Sort by &translation" msgstr "Usporiadať podľa &prekladu" msgid "Sort by &Translation" msgstr "Usporiadať podľa &prekladu" msgid "&Group by context" msgstr "&Zoskupiť podľa súvislostí" msgid "&Group By Context" msgstr "&Zoskupiť podľa súvislostí" msgid "Entries with errors first" msgstr "Položky s chybami ako prvé" msgid "Entries with Errors First" msgstr "Položky s chybami ako prvé" msgid "&Untranslated entries first" msgstr "&Najskôr nepreložené záznamy" msgid "&Untranslated Entries First" msgstr "&Najskôr nepreložené záznamy" msgid "&Show references" msgstr "&Zobraziť odkazy" msgid "&Show References" msgstr "&Zobraziť odkazy" msgid "Show sidebar" msgstr "Zobraziť bočný panel" msgid "Show status bar" msgstr "Zobraziť stavový riadok" msgid "C&atalog" msgstr "&Katalóg" msgid "&Update from sources" msgstr "&Aktualizovať zo zdroja" msgid "&Update from Sources" msgstr "&Aktualizovať zo zdroja" msgid "Update from &POT file…" msgstr "Aktualizovať zo súboru POT..." msgid "Update from &POT File…" msgstr "Aktualizovať zo súboru POT..." msgid "Sync with Crowdin" msgstr "Synchronizácia so službou Crowdin" msgid "Pre-&translate…" msgstr "Pred-&preklad..." msgid "&Purge deleted translations" msgstr "Odstrániť &nepoužívané preklady" msgid "&Purge Deleted Translations" msgstr "Odstrániť &nepoužívané preklady" msgid "&Validate translations" msgstr "&Overiť preklady" msgid "&Validate Translations" msgstr "&Overiť preklady" msgid "&Properties…" msgstr "&Vlastnosti..." msgid "&Done and next" msgstr "&Dokončiť a prejsť na ďalší" msgid "&Done and Next" msgstr "&Dokončiť a prejsť na ďalší" msgid "&Previous translation" msgstr "&Predchádzajúci preklad" msgid "&Previous Translation" msgstr "&Predchádzajúci preklad" msgid "&Next translation" msgstr "&Nasledujúci preklad" msgid "&Next Translation" msgstr "&Nasledujúci preklad" msgid "P&revious unfinished" msgstr "P&redošlý nedokončený" msgid "P&revious Unfinished" msgstr "P&redošlý nedokončený" msgid "Ne&xt unfinished" msgstr "Nasledujúci &nedokončený" msgid "Ne&xt Unfinished" msgstr "Nasledujúci &nedokončený" msgid "Previous plural form" msgstr "Predhádzajúci tvar plurálu" msgid "Previous Plural Form" msgstr "Predhádzajúci tvar plurálu" msgid "Next plural form" msgstr "Ďalší tvar plurálu" msgid "Next Plural Form" msgstr "Ďalší tvar plurálu" msgid "&Online help" msgstr "&Pomocník online" msgid "&Online Help" msgstr "&Pomocník online" msgid "&GNU gettext manual" msgstr "Dokumentácia &GNU gettext" msgid "&GNU gettext Manual" msgstr "Dokumentácia &GNU gettext" msgid "&About Poedit" msgstr "&O programe Poedit" msgid "&About" msgstr "&O programe..." msgid "Extractor setup" msgstr "Nastavenia extraktora" msgid "List of extensions separated by semicolons (e.g. *.cpp;*.h):" msgstr "Zoznam prípon oddelených bodkočiarkou (napr. *.cpp;*.h):" msgid "Invocation:" msgstr "Vyvolanie:" msgid "Command to extract translations:" msgstr "Príkaz pre extrakciu prekladov:" msgid "" "This is the command used to launch the extractor.\n" "%o expands to the name of output file, %K to list\n" "of keywords, %F to list of input files,\n" "%C to charset flag (see below)." msgstr "" "Tento príkaz sa používa na spustenie extraktora.\n" "„%o\" sa zamení za meno výstupného súboru,\n" "„%K\" na zoznam kľúčových slov, „%F\" na zoznam\n" "vstupných súborov, „%C\" na znak kódovej stránky\n" "(pozri nižšie)." msgid "An item in keywords list:" msgstr "Položka v zozname kľúčových slov:" msgid "" "This will be attached to the command line once\n" "for each keyword. %k expands to the keyword." msgstr "" "Toto bude pripojené k príkazovému riadku raz pre každé\n" "kľúčové slovo. „%k\" sa zamení sa kľúčové slovo." msgid "An item in input files list:" msgstr "Položka v zozname vstupných súborov:" #, c-format msgid "" "This will be attached to the command line once\n" "for each input file. %f expands to the filename." msgstr "" "Toto bude pripojené k príkazu raz pre každý vstupný\n" "súbor. „%f\" sa zamení názvom súboru." msgid "Source code charset:" msgstr "Zdrojový kód znakovej sady:" #, c-format msgid "" "This will be attached to the command line\n" "only if source code charset was given. %c expands to charset value." msgstr "" "Toto bude pripojené do príkazového riadku iba ak je zadaný\n" "zdroj znakovej sady. „%c\" sa rozšíri o hodnotu znakovej sady." msgid "Catalog properties" msgstr "Vlastnosti katalógu" msgid "Project name and version:" msgstr "Názov projektu a verzia:" msgid "Language team:" msgstr "Prekladateľský tým:" msgid "Plural forms:" msgstr "Formy plurálu:" msgid "Use default rules for this language" msgstr "Použiť predvolené pravidlá pre tento jazyk" msgid "Use custom expression" msgstr "Použiť vlastný výraz" msgid "Learn about plural forms" msgstr "Zistiť informácie o formách množného čísla" msgid "Charset:" msgstr "Znaková sada:" msgid "Advanced Extraction Settings…" msgstr "Rozšírené nastavenie extrakcie..." msgid "Advanced extraction settings…" msgstr "Rozšírené nastavenie extrakcie..." msgid "Translation Properties" msgstr "Nastavenia prekladania" msgid "Translation properties" msgstr "Vlastnosti prekladu" msgid "Sources Paths" msgstr "Cesty k zdrojom" msgid "Sources paths" msgstr "Cesty k zdrojom" msgid "Extract text from source files in the following directories:" msgstr "Aktualizovať text zo zdrojových súborov v nasledovných adresároch:" msgid "Base path:" msgstr "Základná cesta:" msgid "Sources Keywords" msgstr "Zdrojové kľúčové slová" msgid "Sources keywords" msgstr "Zdrojové kľúčové slová" msgid "" "Use these keywords (function names) to recognize translatable strings\n" "in source files:" msgstr "" "Použiť tieto kľúčové slová (názvy funkcií) pre rozlíšenie preložiteľných\n" "reťazcov v zdrojových súboroch:" msgid "Also use default keywords for supported languages" msgstr "Tiež použiť predvolené kľúčové slová pre podporované jazyky" msgid "Learn About Gettext Keywords" msgstr "Ďalšie informácie o Gettext kľúčových slovách" msgid "Learn about gettext keywords" msgstr "Zistiť informácie o gettext kľúčových slovách" msgid "Update summary" msgstr "Súhrn aktualizácie" msgid "" "These strings were found in the sources but were not in the catalog.\n" "Poedit will add them to the catalog now." msgstr "" "Tieto reťazce boli nájdené v zdroji ale v katalógu sa nenachádzajú.\n" "Program Poedit ich teraz pridá do katalógu." msgid "New strings" msgstr "Nové reťazce" msgid "" "These strings are no longer in the sources.\n" "Poedit will remove them from the catalog now." msgstr "" "Tieto reťazce sa už nenachádzajú v zdrojových kódoch.\n" "Program Poedit ich teraz odstráni z katalógu." msgid "Obsolete strings" msgstr "Vyradené preklady" msgid "(0 new, 0 obsolete)" msgstr "(žiadne nové, žiadne vyradené)" msgid "Open" msgstr "Otvoriť" msgid "Save catalog" msgstr "Uložiť katalóg" msgid "Validate" msgstr "Overiť" msgid "Check for errors in the translation" msgstr "Skontrolovať chyby v preklade" msgid "Update" msgstr "Aktualizovať" msgid "Update catalog - synchronize it with sources" msgstr "Aktualizovať katalóg - synchronizácia so zdrojom" msgid "Sidebar" msgstr "Bočný panel" msgid "Show or hide the sidebar" msgstr "Zobraziť alebo skryť bočný panel" #. TRANSLATORS: "Previous" as in used in the past, now replaced with newer. msgid "Previous source text:" msgstr "Predchádzajúci zdrojový text:" msgid "" "The old source text (before it changed during an update) that the now-" "inaccurate translation corresponds to." msgstr "" "Starý zdrojový text (pred zmenou počas aktualizácie), bude teraz označený " "ako nepresný preklad." msgid "Notes for translators:" msgstr "Poznámky pre prekladateľov:" msgid "Add comment" msgstr "Pridať komentár" msgid "Add Comment" msgstr "Pridať komentár" msgid "Translation suggestions:" msgstr "Návrhy prekladu:" #. TRANSLATORS: This is shown when no translation suggestions can be found in the TM (Windows). msgid "No matches found" msgstr "Nenájdené žiadne zhody" #. TRANSLATORS: This is shown when no translation suggestions can be found in the TM (macOS, Linux). msgid "No Matches Found" msgstr "Nenašli sa žiadne zhody" msgid "This string was found in Poedit’s translation memory." msgstr "Tento reťazec bol nájdený v pamäti prekladov programu Poedit." msgid "Cannot create temporary directory." msgstr "Nepodarilo sa vytvoriť dočasný adresár." msgid "Welcome to Poedit" msgstr "Vitajte v programe Poedit" #. TRANSLATORS: This is version information in about dialog, "%s" will be #. version number when used #, c-format msgid "Version %s" msgstr "Verzia %s" msgid "Edit a Translation" msgstr "Upraviť preklad" msgid "Edit a translation" msgstr "Upraviť preklad" msgid "Open an existing PO file and edit the translation." msgstr "Otvoriť existujúci PO súbor a upraviť preklad." msgid "" "Take an existing PO file or POT template and create a new translation from " "it." msgstr "Použiť existujúci PO súbor alebo POT šablónu a vytvoriť nový preklad." msgid "Collaborate on a Translation with Others" msgstr "Spolupracovať na preklade s ostatnými" msgid "Collaborate on a translation with others" msgstr "Spolupracovať na preklade s ostatnými" msgid "" "Download a file from Crowdin project, translate and sync your changes back." msgstr "" "Stiahnuť súbor zo služby Crowdin, preložiť a synchronizovať späť so zmenami." msgid "What is Crowdin?" msgstr "Čo je to Crowdin?" msgid "There are no translations. That’s unusual." msgstr "V súboru nie sú žiadne preklady. Toto je nezvyčajné." msgid "" "Translatable entries aren’t added manually in the Gettext system, but are " "automatically extracted\n" "from source code. This way, they stay up to date and accurate.\n" "Translators typically use PO template files (POTs) prepared for them by the " "developer." msgstr "" "Prekladateľné reťazce nie sú pridávané manuálne v systéme Gettext, ale sú " "automaticky extrahované\n" "zo zdrojového kódu. Takto zostanú aktuálne a správne.\n" "Prekladatelia zvyčajne používajú súbory PO šablón (s príponou POT), ktoré sú " "pripravené vývojarom." msgid "(Learn more about GNU gettext)" msgstr "(Dočítajte sa viac o GNU gettext)" msgid "The simplest way to fill this catalog is to update it from a POT:" msgstr "" "Najjednoduchšia cesta, ako vyplniť tento katalóg, je aktualizovať ho z POT " "šablóny:" msgid "Update from POT" msgstr "Aktualizovať z POT súboru" msgid "Take translatable strings from an existing POT template." msgstr "Použiť prekladateľné reťazce z existujúcej POT šablóny." msgid "" "You can also extract translatable strings directly from the source code:" msgstr "Môžete vybrať prekladateľné reťazce priamo z zdrojového kódu:" msgid "Extract from sources" msgstr "Aktualizovať zo zdrojov" msgid "Configure source code extraction in Properties." msgstr "Nastaviť pôvod zdrojového kódu v Nastaveniach." msgid "Sync" msgstr "Synchronizácia" msgid "Synchronize the translation with Crowdin" msgstr "Synchronizácia prekladu so službou Crowdin" #. TRANSLATORS: This is titlebar of about dialog, "%s" is application name #. ("Poedit" here, but please use "%s") #, c-format msgid "About %s" msgstr "O programe %s" #. TRANSLATORS: Title of the preferences window on Windows and Linux. "%s" is replaced with "Poedit" when running. #, c-format msgid "%s Preferences" msgstr "Nastavenia programu %s" #. TRANSLATORS: macOS item in app menu msgid "Services" msgstr "Služby" #. TRANSLATORS: macOS item in app menu, %s is replaced with "Poedit" #, c-format msgid "Hide %s" msgstr "Skryť %s" #. TRANSLATORS: macOS item in app menu msgid "Hide Others" msgstr "Skryť ostatné" #. TRANSLATORS: macOS item in app menu msgid "Show All" msgstr "Zobraziť všetko" #. TRANSLATORS: macOS item in app menu, %s is replaced with "Poedit" #, c-format msgid "Quit %s" msgstr "Ukončiť %s" #. TRANSLATORS: macOS item in app menu msgid "Preferences…" msgstr "Predvoľby..." msgid "Preferences..." msgstr "Predvoľby" #. TRANSLATORS: Title of a category in Windows task menu (right-click icon in taskbar) msgid "Recent" msgstr "Nedávne" #. TRANSLATORS: Title of a category in Windows task menu (right-click icon in taskbar) msgid "Frequent" msgstr "Časté" msgid "&Apply" msgstr "&Použiť" msgid "Apply" msgstr "Použiť" msgid "&Back" msgstr "&Späť" msgid "Back" msgstr "Späť" msgid "&Cancel" msgstr "&Zrušiť" msgid "&Clear" msgstr "&Vyčistiť" msgid "Clear" msgstr "Vyčistiť" msgid "Copy" msgstr "Kopírovať" msgid "Cu&t" msgstr "V&ystrihnúť" msgid "Cut" msgstr "Vystrihnúť" msgid "&Delete" msgstr "&Zmazať" msgid "&Quit" msgstr "&Ukončiť" msgid "File" msgstr "Súbor" msgid "Help" msgstr "Pomoc" msgid "&New" msgstr "&Nový" msgid "&No" msgstr "&Nie" msgid "No" msgstr "Nie" msgid "&OK" msgstr "&OK" msgid "Open…" msgstr "Otvoriť..." msgid "&Open..." msgstr "&Otvoriť..." msgid "Open..." msgstr "Otvoriť..." msgid "&Paste" msgstr "&Vložiť" msgid "Paste" msgstr "Vložiť" msgid "Preferences" msgstr "Predvoľby" msgid "&Redo" msgstr "&Znovu" msgid "Refresh" msgstr "Obnoviť" msgid "&Save as" msgstr "&Uložiť ako" msgid "Save as" msgstr "Uložiť ako" msgid "Select &All" msgstr "Vybrať &Všetko" msgid "Select All" msgstr "Vybrať všetko" msgid "&Undo" msgstr "&Zrušiť" msgid "&Yes" msgstr "&Áno" msgid "Yes" msgstr "Áno" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Shift+" msgstr "Shift+" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Enter" msgstr "Enter" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Up" msgstr "Hore" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Down" msgstr "Dole" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Left" msgstr "Vľavo" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Right" msgstr "Vpravo" #. TRANSLATORS: Keyboard shortcut, must correspond to translation of "Ctrl+" msgid "ctrl" msgstr "ctrl" #. TRANSLATORS: Keyboard shortcut, must correspond to translation of "Alt+" msgid "alt" msgstr "alt" #. TRANSLATORS: Keyboard shortcut, must correspond to translation of "Shift+" msgid "shift" msgstr "shift" poedit-2.0.6/locales/fa.mo0000664000372000037200000010440613230132076012273 00000000000000| P! Q! ]!h!g{!! ! !" """'"6"<"B"F"X"j"p"x"" " """ """"#!#*#0#A#G#c######## $ $&$/$ 8$ D$P$j$~$$$'$$$ %7 %6D%{% %]%&A&IY&&&&& &&.&')':'M'V'i''''''''(( 1(R( [(i( (((((2()-)D) d)r)* **"*5*9*P*W*h* {*E*"* ** ++1+"6+5Y+++ + ++ + ++++, ,,.",uQ,,,, -- -"--P- `-k-*~-!-!--' .T4... . .... . . . //(/7/?/G/Y/ k/v/ ~/ ///// /0 0 0!0"&0;I0(000 0 0 01 1%1:>1 y1<1.1122.2E2N2T2e2v223 63'B37j3%3333333 4"484G4V4^4f4l44444444n4e5l5t5{5@5-566)6 C6Q6Z6`6{666 6 66 6 66 6667 7 7 7 *7 77 C7N7"_777 77 777 778"858 N8![8}888888 88 88 8 8 99&969K9_9o999 99 99 9::K:h:}: ::: ::[; c;q;;;;;;8l<<<I=R=cL>Q>??!?L?`@Y|@m@^DA:A;A_B[zBBBBCC-C @CMCCC CDDD!D (D"3D,VDDDDD?DDE2EHE_EhE {EEEEEE5E7 F DF3NFFFFF.FFFFGG!)GKG$IKXKrKKKKK&K KL L"$L GL(UL(~L#L!LLLM..M4]M MMM MMM#N%%NKN#ZN~NVNAN9OVOl_OhO:5PpPP#QZAQTQQQR' R2RFRdORRRRRS,6S,cS-S-SSTT5TOT7XT.T TT%T UU"U"=U"`UIU3UV3 VTVeVYW_W.zW.WW2WX X:XLXu]XHXY%.YTY%fY Y1YEYZ Z%Z>ZVZnZZZZZZZ[C[_[49\,n\(\ \\$\?] U]v]+]J]8^8@^"y^3^^ \_ f_q___(_(_ ``2`F`Z`r`` ``````'a'=a&ea aa'aaaab=bm]b-bbc "c,cBc/Zcc/cJcdV0dbdde"e/BereeeeeTg]g2xgUgAh,Ch ph{hhh"hh#h% i%1iWiji|iii iii j(j EjRjkkkko2kGkkkl5l HlTl-clll lllllmm9mVm)jm m mmmmmn#nF9n7nnnnooo/o+Nozo o*ooBpGp[pdpmpvpppp p%p!p q(q7Cq){q,q7q) r*4r(_r"rr"rrr s%s BsgMssss$t5tRtctMuau;uu@uvv7vj/w"wwwWyryBzz6{{5||hh}{}M~~`r_ Ӂ! 1=т ւ0 5IRc7{F2(Qz3$B5g)Dž߅ <B` yh MۇE4D'y-؈[W nl#C+}|wHA  3X.`^0 *> X AyBNZu?N9jw5*x7"n!?L~c(K=y Q:S_}:CYUuOaO_e mpS'v(q;f%428Y]QBU,&P\sT\0zhL/#D&cvRe6@g.'aI-)4ko, DI6=E] <fHZF{`J|xk~@Vi3tT7PidRM 1W+p$$b8); dV{1"rg^G2q!GKEs9h5bFtmo-Jl[>jMr/%<z (modified) (unsaved)%d error%d errors%i line of file “%s” was not loaded correctly.%i lines of file “%s” were not loaded correctly.&About&About Poedit&Bookmarks&Close&Copy&Delete&Done and Next&Done and next&Edit&File&Go&Group By Context&Group by context&Help&Next >&Next Translation&Next translation&Online Help&Online help&Open...&Paste&Preferences&Previous Translation&Previous translation&Purge deleted translations&Redo&Replace&Save&Show references&Undo&Untranslated Entries First&Untranslated entries first&Update from Sources&Update from sources&View(0 new, 0 obsolete)(New: %i, obsolete: %i)(Use default language)(requires Windows 8 or newer)< &PreviousAbout %sAccountsAdd CommentAdd commentAdd directory to the listAdditional keywordsAdvancedAll Translation FilesAlt+Always change focus to text input fieldAn item in input files list:An item in keywords list:AppearanceAre you sure you want to delete the “%s” extractor?Are you sure you want to reset the translation memory?Automatically check for updatesBase path:Beta versions contain the latest new features and improvements, but may be a bit less stable.Bring All to FrontBroken catalog file: plural form msgstr used without msgid_pluralBroken catalog file: singular form msgstr used together with msgid_pluralBrowseC&atalogCancelCannot execute program: %sCapitalizeCatalogCatalog modified. Do you want to save changes?Catalogs &managerCatalogs ManagerChange UI languageCharset:Check Document NowCheck Grammar With SpellingCheck Spelling While TypingCheck for Updates…Check for updates…Check spellingClear TranslationClear the commentClear translationCloseCollecting source files…Command to extract translations:Comment:Compile to…Compiled Translation FilesConfirmationCopyCopy from Source TextCopy from source textCorrect Spelling AutomaticallyCouldn’t load file %s, it is probably corrupted.Couldn’t save file %s.Create new translationCreate new translations projectCrowdin errorCrowdin is an online localization management platform and collaborative translation tool. Poedit can seamlessly sync PO files managed at Crowdin.Ctrl+Cu&tCustom Extractors:Custom extractors:CutDatabase size on disk:DeleteDelete extractorDelete the projectDirectories:Do you really want to do mass update of all catalogs in this project?Do you want to delete the project?Don’t SaveDon’t Show AgainDon’t saveDon’t show againDownDownloading latest translations…Downloading translations is disabled in this project.E&xitEditEdit &commentEdit CommentEdit a translationEdit commentEdit projectEdit the projectEditingEdit…Email:EnterEnter Full ScreenEntries in the catalog are probably incorrect.Entries with errors were marked in red in the list. Details of the error will be shown when you select such an entry.Error opening fileError opening file %s!Error saving catalogEverythingExcluded pathsExport as…Extracting translatable strings…Extractor setupExtractorsFailed command: %sFailed to communicate with Poedit process.Failed to load extracted catalog.Failed to merge gettext catalogs.File “%s” doesn’t exist.File “%s” is not a message catalog.File “%s” is read-only and cannot be saved. Please save it under different name.File:FindFind NextFind PreviousFind in commentsFind in source textsFind in translationsFind nextFind previousFix LanguageFix languageFix the HeaderFix the headerForm %iGeneralGo to Bookmark %iGo to bookmark %iHTML FilesHide %sHide OthersHide SidebarHide Status BarHide this notification messageIDInclude beta versionsInformation about the translatorInstallInvalid fileInvocation:KeepLanguage Code or Name (e.g. en_GB)Language of the translation is the same as source language.Language of the translation isn’t set.Language of the translation:Language selectionLanguage:Last modifiedLearn MoreLearn More About CrowdinLearn moreLearn more about CrowdinLine %d of file “%s” is corrupted (not valid %s data).Line endings:List of extensions separated by semicolons (e.g. *.cpp;*.h):MO files can’t be directly edited in Poedit.Make Lower CaseMake Upper CaseMalformed header: “%s”Merging differences…MinimizeName:Ne&xt UnfinishedNe&xt unfinishedNever let the list of strings take focus. If enabled, you must use Ctrl-arrows for keyboard navigation but you can also type text immediately, without having to press Tab to change focus.NewNew stringsNo problems with the translation found.No translation projects listed in your Crowdin account.Not authorized, please sign in again.Notes for translators:OKObsolete stringsOneOpenOpen Crowdin translationOpen catalogOpen catalog templateOpen in EditorOpen in editorOpen…OptionsOtherP&revious UnfinishedP&revious unfinishedPO TranslationPO Translation FilesPOT Translation TemplatesPastePaste and Match StylePathsPlease open and edit the corresponding PO file instead. When you save it, the MO file will be updated as well.PluralPlural:PoeditPoedit - Catalogs managerPoedit automatically fixed invalid content in the file “%s”.Poedit is an easy to use translations editor.Preferences...Previous source text:Project name and version:Project name:Project:PurgePurge deleted translationsQuitQuit %sRedoReferences:Remaining: %dReplaceReplace &AllReplace &allReplacement stringReplace…ResetReset translation memoryReviewSaveSave as…Save catalogSave changesSelect &AllSelect AllSelect directorySelect translation files to importSelect your preferred languageSet Bookmark %iSet LanguageSet bookmark %iSet languageShift+Show AllShow SidebarShow Spelling and GrammarShow Status BarShow SubstitutionsShow or hide the sidebarShow sidebarShow summary after catalog updateSidebarSign InSign OutSign inSign in to CrowdinSign outSigned in as:SingularSingular:Smart Copy/PasteSmart DashesSmart LinksSmart QuotesSort by &File OrderSort by &SourceSort by &TranslationSort by &file orderSort by &sourceSort by &translationSource code charset:Source code not available.Source fileSource file occurrence:Source textSource text — %sSource text:Sources keywordsSpeechSpellchecking is disabled, because the dictionary for %s isn’t installed.Spelling and GrammarStart SpeakingStop SpeakingStored translations:String to findSubstitutionsSuggestions are not available if the translation language is not set correctly. Other features, such as plural forms, may be affected as well.SyncingSyncing errorSyncing with %s failed.Syncing with %s…Syncing with Crowdin failed.TMText ReplacementThe catalog couldn’t be saved in “%s” charset as specified in catalog settings. It was saved in UTF-8 instead and the setting was modified accordingly.The file cannot be compiled into the MO format and used.The file cannot be opened.The file contained duplicate items, which is not allowed in PO files and would prevent the file from being used. Poedit fixed the issue, but you should review translations of any items marked as needing work and correct them if necessary.The file may be either corrupted or in a format not recognized by Poedit.The file was compiled into the MO format, but it will probably not work correctly.The file was saved safely and compiled into the MO format, but it will probably not work correctly.The file was saved safely, but it cannot be compiled into the MO format and used.The file was saved safely.The translation is ready for use, but %d entry is not translated yet.The translation is ready for use, but %d entries are not translated yet.The translation is ready for use.There was a problem formatting the file nicely (but it was saved all right).There were errors when loading the catalog. Some data may be missing or corrupted as the result.These strings are no longer in the sources. Poedit will remove them from the catalog now.These strings were found in the sources but were not in the catalog. Poedit will add them to the catalog now.This catalog has entries with plural forms, but doesn’t have Plural-Forms header configured.This file can only be edited in Crowdin’s web interface.This project has no files that can be translated in Poedit.This will be attached to the command line once for each input file. %f expands to the filename.This will be attached to the command line once for each keyword. %k expands to the keyword.TotalTransformationsTranslation LanguageTranslation MemoryTranslation suggestions:Translation — %sTranslation:Translations couldn’t be updated from the source code, because no code was found in the location specified in the catalog’s Properties.TwoUndoUnhandled exception occurred: %sUnix (recommended)UntransUpUpdateUpdate allUpdate all catalogs in the projectUpdate catalog - synchronize it with sourcesUpdate summaryUpdatesUpdating catalogUpdating failedUpdating the catalog failed. Click on 'Details >>' for details.Updating user information…Uploading translations…Use custom list font:Use translation memoryValidateValidation resultsVersion %sWaiting for authentication…Welcome to PoeditWhole words onlyWindowWindowsYou can’t drop more than one file on Poedit window.You must restart Poedit for this change to take effect.Your NameYour changes will be lost if you don’t save them.ZeroZoomaltctrldon’t delete temporary files (for debugging)go to item at given line numberhandle a poedit:// URIshiftunknown languageyour_email@example.com“%s” is not a valid POT file.Project-Id-Version: poedit Report-Msgid-Bugs-To: help@poedit.net POT-Creation-Date: 2017-12-05 15:52+0100 PO-Revision-Date: 2018-01-18 07:56-0500 Last-Translator: vslavik Language-Team: Persian Language: fa_IR MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=(n != 1); X-Generator: crowdin.com X-Crowdin-Project: poedit X-Crowdin-Language: fa X-Crowdin-File: /locales/poedit.pot (تغییریافته) (ذخیره نشده)%d خطا%d خطا%i خط از فایل %s درست بارگزاری نشده است.%i خط از فایل %s درست بارگزاری نشده است.دربارهدرباره Poeditنشاندارها&بستن& کپیحذفانجام و بعدیانجام و بعدی&ویرایش&پرونده& برو& گروه بندی بر اساس زمینه& گروه بندی بر اساس زمینه&راهنما& بعدی > ترجمه های بعدی& ترجمه های بعدیراهنمایی برخطراهنمایی برخط&باز کردن...جاي گذاري[&P]&ترجیحاتترجمه قبلیترجمه قبلیحذف ترجمه های پاک شده& ازنو&جایگزینی&ذخیره&نشان دادن مرجع‌ها&بازگشتاول ورود ترجمه نشده هااول ورود ترجمه نشده هابروز رسانی از منابعبروز&سازی از منابع&نما)۰ جدید, ۰ کهنه)(جدید: %i منسوخ: %i)(استفاده از زبان پیش‌فرض)(ویندوز 8 یا جدیدتر ضروری است)قبلی ><بی‌نام>درباره %sحساب هااضافه کردن نظراضافه کردن نظرافزودن شاخه به لیستواژه های كليدی اضافیپیشرفتهتمام فایل های ترجمهAlt+همیشه تمرکز به محوطه درونداد متن تغییر داده شودیک مورد در لیست پرونده‌های درونداد:یک مورد در لیست واژه‌های کلیدی:ظاهرآیا مطمئن هستید که میخواهید “%s” استخراج کننده را حذف کنید؟آیا مطمئن هستید می خواهید حافظه ترجمه را تنظیم مجدد کنید؟بررسی بروزرسانی ها بصورت خودکارمسیر پایه:نسخه های بتا شامل آخرین ویژگی های جدید و پیشرفته هستند، اما ممکن است کمی ناپایدار باشند.آوردن همه به جلوپرونده مخدوش شده : msgstr جمعی بدون استفاده از msgid_pluralپرونده مخدوش شده : msgstr تکی با استفاده از msgid_pluralمرورپوشهلغوبرنامه اجرا نمی شود: %sدرشت نویسیپوشهپوشه تغییر کرد. آیا می‌خواهید تغییرات را ذخیره نمایید؟مدیر &پوشه‌هامدیریت کاتالوگتغییر زیان مجموعه‌نویسه:سند را بررسی کنبررسی دستور زبان با املابررسی املا در هنگام تایپبررسی برای به روز رسانی…بررسی برای به روز رسانی…بررسی املاپاکسازی ترجمهپاک کردن توضیحپاکسازی ترجمهببنددر حال جمع آوری فایل های منبع…فرمان برای استخراج ترجمه:توضیح:کامپایل به…پرونده ترجمه تهیه شدتاییدکپیکپی کردن از خود متنکپی کردن از خود متنتصحیح خودکار املاءناتوان در بازکردن فایل %s ، فایل خراب است.نمی توان فایل %s را ذخیره کرد.ایجاد ترجمه جدیدایجاد یک پروژه‌ی ترجمه جدیدخطای CrowdinCrowdin یک برنامه ی آنلاین محلی سازی زبان و ابزار ترجمه گروهی و مشترکانه است. Poedit به صورت پیشفرض توانایی همگام سازی فایل های PO در Crowdin دارد.Ctrl+بریدن و انتقالاستخراج کننده های سفارشی:استخراج کننده های سفارشی:برشحجم پایگاه داده بر روی دیسک:حذفحذف استخراج کنندهحذف پروژهشاخه‌ها:آیا واقعاً می‌خواهید همه پوشه‌ها در این پروژه بروزسازی نمایید؟آیا می‌خواهید که این پروژه را حذف کنید؟ذخیره نکندیگر نمایش داده نشودذخیره نکندیگر نمایش داده نشودپاییندر حال دانلود آخرین ترجمه…دانلود ترجمه برای این پروژه مسدود است.خروجویرایشویرایش تو&ضیحویرایش توضیحویرایش ترجمهویرایش توضیحویرایش پروژهویرایش پروژهدر حال ویرایشویرایش…پست الکترونیک:Enterحالت تمام صفحهورودی‌های در پوشه احتمالا درست نیست.مقالات با خطا در لیست قرمز نشان داده شده است. جزئیات این خطا هنگامی که شما چنین ورودی را انتخاب می کنید نمایش داده می شود.در باز کردن فابل خطایی رخ دادخطا در باز کردن پرونده %s!خطا در ذخیره کردن پوشههمه چیزمسیر های جدا شدهبرون ریزی به عنوان…در حال استخراج متن های قابل ترجمه…نصب استخراج کنندهاستخراج کنندهفرمان‌های شکست خورده: %sعدم موفقیت در ارتباط با فرآیند ارسال Poedit.پرونده '%s' پوشه پیغام نمی‌باشد.پرونده '%s' پوشه پیغام نمی‌باشد.فایل "%s" وجود ندارد.پرونده '%s' پیام کاتالوگ نیست.فایل '%s' فقط خواندنی استو نمی تواندی ذخیره شود لطفا با نام دیگری ذخیره نمایید.فایل:یافتنیافتن بعدییافتن قبلییافتن در توضیحاتپیدا کردن در متون منبعپیدا کردن در ترجمه‌هایافتن بعدییافتن قبلیتعمیر زبانتعمیر زبانتعمیر سرنویستعمیر سرنویساز %iعمومیبرو به نشانک %iبرو به نشانک %iپرونده HTMLپنهانسازی %sپنهانسازی بقیهپنهان کردن نوار جانبیپنهان کردن نوار وضعیتاین اعلان را پنهان کنشناسهشامل نسخه های بتااطلاعات در مورد مترجمنصبفایل نا معتبراحضاریه:نگه‌دارکد زبان و یا نام (به عنوان مثال en_GB)زبانی که قصد دارید به آن ترجمه کنید همان زبان فایل ترجمه است.زبان ترجمه مشخص نشده است.زبان ترجمه:گزینش زبانزبان:آخرین تغییربیشتر بدانیداطلاعات بیشتر در مورد Crowdinبیشتر بدانیداطلاعات بیشتر در مورد Crowdinخط %d از فایل %s خراب است(داده معتبر %s نیست).انتهای خط:لیست دنباله‌های جدا شده توسط سمیکلون (e.g. *.cpp;*.h):فایل های MO نمی توانند به طور مستقیم در Poedit ویرایش شوند.حروف را کوچک کنحروف را بزرگ کنسربرگ نادرست: '%s”در حال ادغام موارد مختلف…کوچک سازینام:نا تمام های بعدناتمام های بعدهرگز اجازه نده که لیست رشته‌ها تمرکز را بگیرد. اگر فعال شده، شما باید از پیکان‌های صفحه‌کلید برای صفحه‌نوردی استفاده کرده ولی همچنین می‌توانید بلافاصله نگارش متن را بدون فشار دادن کلید جهش برای تغییر تمرکز انجام دهید.جدیدرشته‌های جدیدهیچ مشکلی با ترجمه یافت نشد.هیچ پروژه‌ای ترجمه شده در حساب Crowdin وجود ندارد.ورودی غیر مجاز,لطفا مجددا وارد شوید.یادداشت ها برای مترجمان:تاییدرشته‌های کهنهیکباز کردنباز کردن ترجمه Crowdinباز کردن پوشهباز کردن الگوی پوشهباز کردن در ویرایشگرباز کردن در ویرایشگرباز کردن…گزینه‌هاسایر مواردناتمام های قبلناتمام های قبلترجمه POفایل های ترجمه Poقالب ترجمه POTجای گذاریجای گذاری و تطابق قالبمسیرهالطفاً باز کردن و ویرایش فایل صندوق پستی مربوطه عوض. هنگامی که آن را ذخیره فایل MO هم بروز خواهد شد.جمعجمع:PoeditPoedit - مدیر پوشهPoedit به طور خودکار محتوای نامعتبر در فایل "%s" را درست خواهد کرد.Poedit ابزاری آسان برای ویرایش ترجمه هاست.ترجیحات...متن منبع قبلی:نسخه و نام پروژه:نام پروژه:پروژه:پاکسازیلیست ترجمه‌های &سایه شدهخروجخروج از %sاز سرمرجع‌ها:باقی مانده: %dجایگزینیجایگزینی همهجایگزینی همهعبارت جایگزینجایگزین نمودن…تنظیم مجددتنظیم مجدد حافظه ترجمهبررسیذخیرهذخیره به عنوان…ذخیره پوشهذخیره‌ی تغییراتانتخاب همهانتخاب همهانتخاب شاخهانتخاب پرونده های ترجمه برای درون ریزیزبانی که ترجیحی را انتخاب کنیدتنظیم نشانک %iانتخاب زبانتنظیم نشانک %iانتخاب زبانShift+نمایش همهنمایش نوار جانبینمایش املاء و دستورزباننمایش نوار وضعیتنمایش جایگزینی هانمایش یا عدم نمایش نوارنمایش نوار جانبینشان دادن خلاصه بعد از بروزسازی پوشهنوار کناریورودخروجورودورود به Crowdinخروجورود به عنوان:مفردمفرد:کپی/جای گذاری هوشمندخط تیره های هوشمندپیوندهای هوشمندنقل قول هوشمندمرتب کردن بر اساس پرونده سفارشمرتب کردن بر اساس منبعمرتب کردن بر اساس & ترجمهمرتب کردن بر اساس پرونده سفارشمرتب کردن بر اساس منبعمرتب کردن بر اساس ترجمهمجموعه‌نویسه کد منبع:کد منبع موجود نیست.پرونده منبعرخداد در فایل منبع:منبع متنمنبع متن — %sمنبع متن:واژه های كليدی منابعگفتارغلط املایی یاب غیر فعال است,زیرا لغت نامه برای %s نصب نشده.املا و دستور زبانشروع به صحبت کردنتوقف صحبت کردنترجمه های ذخیره شده:عبارت جهت جستجوجایگزینیاگر زبان ترجمه به درستی تنظیم نشده باشد پیشنهادات در دسترس نیست. سایر ویژگی ها، از قبیل فرم های جمع، ممکن است تحت تاثیر قرار گیرد.همگام سازیخطای همگام‌سازیهمگام سازی با %s موفقیت آمیز نبود.همگام سازی با %s…همگام سازی با Crowdin موفقیت آمیز نبود.TMجایگزینی متنپوشه نمی تواند در مجموعه نویسه '%s' همانطور که در تنظیمات پوشه مشخص شده ذخیره شود. آن در UTF-8 بجایش ذخیره شد و تنظیمات بر اساس آن تغییر یافت.فایل را نمی توان به قالب MO متصل کرد و مورد استفاده قرار داد.پرونده باز نمی شود.این پرونده حاوی موارد تکراری است که در فایلهای PO مجاز نیست و از استفاده از پرونده جلوگیری می کند. Poedit موضوع را رفع کرد، اما شما باید ترجمه هر یک از اقلام مشخص شده به عنوان مورد نیاز را بررسی کنید و در صورت لزوم آنها را اصلاح کنید.پرونده ممکن است یا خراب شده و یا در قالب توسط ارسال Poedit شناخته شده.این فایل به قالب MO متصل شد، اما احتمالا به درستی کار نخواهد کرد.فایل با خیال راحت ذخیره شد و به قالب MO متصل شد، اما احتمالا به درستی کار نخواهد کرد.پرونده با خیال راحت ذخیره شده است، ولی نمی تواند آن را وارد به فرمت MO درآورده و از آن استفاده شود.پرونده به راحتی ذخیره شده است.ترجمه آماده برای استفاده است، اما نوشته های %d هنوز ترجمه شده است.ترجمه آماده برای استفاده است، اما نوشته های %d هنوز ترجمه شده است.ترجمه آماده برای استفاده است.در فرمت کردن به صورت کاملا صحیح مشکلی به وجود آمده(به هرحال فایل ذخیره شده).خطا در هنگام باز کردن پرونده. برخی از داده از بین رفته است.این رشته‌ها دیگر در منابع نیستند. Poedit آنها از پوشه اکنون برمی‌دارد.این رشته‌ها در منابع یافت شد ولی در پوشه وجود نداشتند. Poedit آنها را به پوشه اکنون اضافه می‌کند.این کاتالوگ دارای مدخل با فرم های متعدد است، اما هدر جمع-فرمها پیکربندی نشده است.این فایل را تنها در رابط وب Crowdin را می توان ویرایش کرد.این پروژه هیچ پرونده ای که می توانید در ارسال Poedit ترجمه شده است.این به خط فرمان یکبار برای هر پرونده‌ی درونداد ضمیمه خواهد شد. %f به نام پرونده گسترش می‌یابد.این به خط فرمان یکبار برای هر پرونده‌ی درونداد ضمیمه خواهد شد. %k به کلیدواژه گسترش می‌یابد.جمع کلتغییر شکل هاترجمه زبانحافظه ترجمهپیشنهاد های ترجمه:ترجمه — %sترجمه:چون هیچ یک از کدهای در محل مشخص شده در کاتالوگ خواص یافت ترجمه از کد منبع بروز کند.دوبازگردهنگام استثنا رخ داده است: %sیونیکس (توصیه شده)ترجمه نشدهبالابروزسازیبروزسازی همهبروزسازی همه پوشه‌ها در پروژهپوشه بروزسازی - همزمان سازی آن با منابعخلاصه بروزسازیبه روز رسانی هابه روزرسانی لیستبه روز رسانی انجام نشدبه روز رسانی کاتالوگ انجام نشد. با کلیک بر روی "اطلاعات بیشتر >>' برای جزئیات بیشتر.به روز رسانی اطلاعات کاربر…در حال آپلود ترجمه…استفاده از فهرست فونت سفارشی:استفاده از حافظه ترجمهتایید اعتبارنتایج ارزیابینسخه %sدر حال انتظار برای تأیید اعتبار…خوش آمدید به Poeditفقط کلمه کاملپنجرهپنجره‌هاشما می‌توانید بیش از یک پرونده را در پنجره Poedit بیاندازید.شما باید Poedit را برای تأثیر کردن این تغییرات دوباره راه‌اندازی نمایید.اسم شمااگر ذخیره نکنید، تغییرات شما از بین می رود.صفربزرگنمايیaltctrlفایل ها اصلی را پاک نکنید(برای رفع باگ)رفتن به مورد در شماره خط دادهرسیدگی ارسال poedit: / / URIshiftزبان ناشناختهyour_email@example.com“%s” یک فایل صحیح POT نیست.poedit-2.0.6/locales/vi.mo0000664000372000037200000014616413230132042012323 00000000000000M$81 91 E1P1<d11J1g1 g2q2 22 222 222222222233"363:3L3^3d3i3q3y3333 3 3333 333 4!404L4h4n4t4}4444444455-5D5J5O5c5555 5:5:6 Q6[6d6 m6 y666 66 6666 7&7/7O7l77 7177'78+8 E8P87V8688)89 9]9}9A9I9:#::::":: :;.;?;R;d;v;;;;;;;#<'<<<K<Q<c<u<<(<(<< <=$=<= M=[=/v= ====== >2)>\>u>>> >>c?i?n??????? ???E @"S@?v@ @@*@ AA!AK&A"rA5AAAA A A BB%B 8B EBRBcBkBsBzBB.BBBuB,kCCCCC CC CD#D<>D"{DD DD*D!D!E';EcEhE'ETEF FF F 'F5FIFZFoF F F F FFFFF FFF G G(G-G 5G AGNG^G}GG *H6HPH fHH H HH"H;H( I5IRIeI tI ~III IIIIJ +J6JOJ:TJ J<J.J KK)KDK[K*dKKKK K KKLLL LLLLL#M%M'6M$^M7M$M%MNN N1N5NNNNO O2"O UObOxOOOOOOOOOOPP1PPPPnPESQQ>Q QQQQ@RWR-MS{S SS2SSS TTT%TTTTU )U7U@UFUaUfUnUuU zUU UU U UU U(UV Vz$VVVV V VV V V V V W W"WAW`WiW yWW WWW WWWWW X#X!3XUX]XeXnXvXX XX XX X X XXXY#Y7YGY\YqYY ZZ 7ZCZ VZcZ tZZ ZZKZZ [ [&[;[ J[ X[d[[s\x\(\\ \\\\+]=]N@]8]"]]]8^^_I`RL`c`QaUalpaAa-bCMbAbKb0c.Pcc!d)0d-Zd+d8dCdu1e,eLe`!ffYgmbg^g:/hjh;i7Rimi_i[Xjjjjjjk'k>kVkmkk kk2l6lJl Olpllll l"l,ll m"m2mAmImZm?jmmmmm n#*nVNnnnn nnoo$o?oPoWo _okotoHxo5o7o /p39pamppppp.p q2qNqnqqqqq!qq s ss's t(tQ?tttttt t t u u "u/u7uBEV(ڌ  &8.PM2͍+2?r2 ގ") u5 Ə ˏ ׏"2 K Was  ϐ ې *6>Wm !̒#! 4@ \ j-vD5?X kx."ݔ2&A"hM•W#C{ ϖ"ٖ! &(OUt &ט%ݘ% )7Og#n4Ǚ1.^GH=#- Q\ms/=mr9 %Eem u"" ͝ם̞kܞH ȟZ՟0 KY`V|JӠ<[o(Ѣ 0!%=c r |FϤ ֤  *AX k8y&ƥ  æ Цݦ4%Z xç֧ݧ" 0K#c?  (6 Q_wҩ&!* L&m! תͫ& ;Ob z b¬%A S&_ u .;'V~!¯/BTNWL, 6`%g^ j)3]r9kWWXU4BX&))0ӹ3D8X}ֺN~Iͻd|vCyf4ZTMF-u * 8Fd}  3A(*S er w3>##3W/w  o/Z+88*c (8Ss"  qXuP L*w  ",0.5%d%,2/D*CzH  Z5;?+2.g' J(K& cwvD& 7KXP#Lw:0gdx:l3,K//aSEBAk+jJ<0R WZPu #m!}f24%^e >t1)A'+HBYM>!.Lk9,42n d|.*l 3n\?CF@p70- V<FzU8 N3i&8_=Wb{qM5=GV< *5/:-e~qY1jIU9 F%%oL7x`HQ6>h$,@XT(`$m@;6' "4[Dr^\]yOfE"GEt1vR|Npu{)_abis](sc $TJ =-Do9IOB);QryA}~CS6#!M[hI8"?G  (modified) (unsaved)%d entry%d entries%d entry was pre-translated.%d entries were pre-translated.%d error%d errors%d issue with the translation found.%d issues with the translation found.%i line of file “%s” was not loaded correctly.%i lines of file “%s” were not loaded correctly.%s Format%s Preferences%s format&About&About Poedit&Apply&Back&Bookmarks&Cancel&Clear&Close&Copy&Delete&Done and Next&Done and next&Edit&File&Find…&GNU gettext Manual&GNU gettext manual&Go&Group By Context&Group by context&Help&New&New…&Next >&Next Translation&Next translation&No&OK&Online Help&Online help&Open...&Open…&Paste&Preferences&Preferences…&Previous Translation&Previous translation&Properties…&Purge Deleted Translations&Purge deleted translations&Quit&Redo&Replace&Save&Save as&Show References&Show references&Undo&Untranslated Entries First&Untranslated entries first&Update from Sources&Update from sources&Validate Translations&Validate translations&View&Yes(0 new, 0 obsolete)(Learn more about GNU gettext)(New: %i, obsolete: %i)(Use default language)(requires Windows 8 or newer)< &PreviousDrag and Drop Folders Here or use the + buttonDrag and drop folders here or use the + buttonAbout %sAccountsAdd CommentAdd Files…Add Folders…Add Wildcard…Add commentAdd directory to the listAdd files…Add folders…Add wildcard…Additional keywordsAdditional xgettext flags:AdvancedAdvanced Extraction Settings…Advanced extraction settingsAdvanced extraction settings…All Translation FilesAll commentsAlso use default keywords for supported languagesAlt+Always change focus to text input fieldAn item in input files list:An item in keywords list:AppearanceApplyAre you sure you want to delete the “%s” extractor?Are you sure you want to reset the translation memory?Automatically check for updatesAutomatically compile MO file when savingBackBase path:Beta versions contain the latest new features and improvements, but may be a bit less stable.Bring All to FrontBroken catalog file: plural form msgstr used without msgid_pluralBroken catalog file: singular form msgstr used together with msgid_pluralBrowseBy default, inaccurate results are filled in as well and marked as needing work. Check this option to only include accurate matches.C&atalogC&learCancelCannot create temporary directory.Cannot execute program: %sCapitalizeCatalogCatalog modified. Do you want to save changes?Catalog propertiesCatalogs &ManagerCatalogs &managerCatalogs ManagerChange UI languageCharset:Check Document NowCheck Grammar With SpellingCheck Spelling While TypingCheck for Updates…Check for errors in the translationCheck for updates…Check spellingClearClear TranslationClear the commentClear translationCloseCollaborate on a Translation with OthersCollaborate on a translation with othersCollecting source files…Command to extract translations:Comment:Comments prefixed with:Compile to MO…Compile to…Compiled Translation FilesConfigure source code extraction in Properties.ConfirmationCopyCopy From SingularCopy from Source TextCopy from singularCopy from source textCorrect Spelling AutomaticallyCouldn’t load file %s, it is probably corrupted.Couldn’t save file %s.Create New TranslationCreate new translationCreate new translations projectCrowdin errorCrowdin is an online localization management platform and collaborative translation tool. Poedit can seamlessly sync PO files managed at Crowdin.Ctrl+Cu&tCustom Extractors:Custom extractors:CutDatabase size on disk:DeleteDelete extractorDelete the projectDirectories:Display Entry &IDsDisplay entry &IDsDo you really want to do mass update of all catalogs in this project?Do you want to delete the project?Do you want to remove all translations that are no longer used?Don’t SaveDon’t Show AgainDon’t mark exact matches as needing workDon’t saveDon’t show againDownDownload a file from Crowdin project, translate and sync your changes back.Downloading latest translations…Downloading translations is disabled in this project.E&xitE&xport as HTML…EditEdit &CommentEdit &commentEdit CommentEdit a TranslationEdit a translationEdit commentEdit projectEdit the projectEditingEdit…Email:EnterEnter Full ScreenEntries in the catalog are probably incorrect.Entries with Errors FirstEntries with errors firstEntries with errors were marked in red in the list. Details of the error will be shown when you select such an entry.Error loading message catalog file “%s”.Error opening fileError opening file %s!Error saving catalogErrorsEverythingExcluded pathsExport as…Extract from sourcesExtract notes for translators from:Extract text from source files in the following directories:Extracting translatable strings…Extractor setupExtractorsFailed command: %sFailed to communicate with Poedit process.Failed to load extracted catalog.Failed to merge gettext catalogs.Failed to update translation memory: %sFileFile “%s” doesn’t exist.File “%s” is not a message catalog.File “%s” is read-only and cannot be saved. Please save it under different name.File:Finalizing…FindFind NextFind PreviousFind and Replace…Find in commentsFind in source textsFind in translationsFind nextFind previousFix LanguageFix languageFix the HeaderFix the headerForm %iFrequentGNU gettextGeneralGo to Bookmark %iGo to bookmark %iHTML FilesHelpHide %sHide OthersHide SidebarHide Status BarHide this notification messageIDIf you continue with purging, all translations marked as deleted will be permanently removed. You will have to translate them again if they are added back in the future.Ignore caseImporting translations…Include beta versionsInformation about the translatorInstallInvalid fileInvocation:KeepLanguage Code or Name (e.g. en_GB)Language of the translation is the same as source language.Language of the translation isn’t set.Language of the translation:Language selectionLanguage team:Language:Last modifiedLearn About Gettext KeywordsLearn From Files…Learn MoreLearn More About CrowdinLearn about gettext keywordsLearn about plural formsLearn from files…Learn moreLearn more about CrowdinLeftLine %d of file “%s” is corrupted (not valid %s data).Line endings:List of extensions separated by semicolons (e.g. *.cpp;*.h):MO files can’t be directly edited in Poedit.Make Lower CaseMake Upper CaseMalformed header: “%s”Merging differences…MinimizeName of the project the translation is forName:Ne&xt UnfinishedNe&xt unfinishedNeeds WorkNeeds workNever let the list of strings take focus. If enabled, you must use Ctrl-arrows for keyboard navigation but you can also type text immediately, without having to press Tab to change focus.NewNew From &POT/PO File…New from &POT/PO file…New stringsNext Plural FormNext plural formNoNo Matches FoundNo entries could be pre-translated.No matches foundNo problems with the translation found.No references for the selected item.No translation projects listed in your Crowdin account.Not all plural forms are translated.Not authorized, please sign in again.Notes for translators:OKObsolete stringsOneOnly enable if you trust the quality of your TM. By default, all matches from the TM are marked as needing work and should be reviewed before use.Only fill in exact matchesOpenOpen Crowdin translationOpen From Crowdin…Open RecentOpen an existing PO file and edit the translation.Open catalogOpen catalog templateOpen from Crowdin…Open in EditorOpen in editorOpen...Open…OptionsOtherP&revious UnfinishedP&revious unfinishedPO TranslationPO Translation FilesPOT Translation TemplatesPOT files are only templates and don’t contain any translations themselves. To make a translation, create a new PO file based on the template.PastePaste and Match StylePathsPlease open and edit the corresponding PO file instead. When you save it, the MO file will be updated as well.Please save the file first. This section cannot be edited until then.PluralPlural forms expression used by the catalog is unusual for %s.Plural forms:Plural:PoeditPoedit - Catalogs managerPoedit automatically fixed invalid content in the file “%s”.Poedit can attempt to fill in new entries from only previous translations in the file or from your entire translation memory. Using the TM won’t be very effective if it’s near-empty, but it will get better as you add more translations to it.Poedit is an easy to use translations editor.Pre-&translate…Pre-translatePre-translatedPre-translated %u stringPre-translated %u stringsPre-translating…Pre-translation automatically finds exact or fuzzy matches for untranslated strings in the translation memory and fills in their translations.PreferencesPreferences...Preferences…Preserve formatting of existing filesPrevious Plural FormPrevious plural formPrevious source text:Project name and version:Project name:Project:PurgePurge deleted translationsQuitQuit %sRecentRedoReferences:RefreshRemaining: %dReplaceReplace &AllReplace &allReplacement stringReplace…Required header Plural-Forms is missing.ResetReset translation memoryResetting the translation memory will irrevocably delete all stored translations from it. You can’t undo this operation.ReviewRightSaveSave &As…Save &as…Save asSave as…Save catalogSave changesSelect &AllSelect AllSelect directorySelect translation files to importSelect your preferred languageServicesSet Bookmark %iSet LanguageSet bookmark %iSet languageShift+Show AllShow SidebarShow Spelling and GrammarShow Status BarShow SubstitutionsShow or hide the sidebarShow sidebarShow status barShow summary after catalog updateSidebarSign InSign OutSign inSign in to CrowdinSign outSigned in as:SingularSingular:Smart Copy/PasteSmart DashesSmart LinksSmart QuotesSort by &File OrderSort by &SourceSort by &TranslationSort by &file orderSort by &sourceSort by &translationSource code charset:Source code extractors are used to find translatable strings in the source code files and extract them so that they can be translated.Source code not available.Source fileSource file occurrence:Source textSource text — %sSource text:Sources KeywordsSources PathsSources keywordsSources pathsSpeechSpellchecking is disabled, because the dictionary for %s isn’t installed.Spelling and GrammarStart SpeakingStop SpeakingStored translations:String to findSubstitutionsSuggestionsSuggestions are not available if the translation language is not set correctly. Other features, such as plural forms, may be affected as well.Supports all programming languages recognized by GNU gettext tools (PHP, C/C++, C#, Perl, Python, Java, JavaScript and others).SyncSync with CrowdinSynchronize the translation with CrowdinSyncingSyncing errorSyncing with %s failed.Syncing with %s…Syncing with Crowdin failed.Syntax error in Plural-Forms header ("%s").TMTake an existing PO file or POT template and create a new translation from it.Take translatable strings from an existing POT template.Team name and email address or URLText ReplacementThe TM doesn’t contain any strings similar to the content of this file. It is only effective for semi-automatic translations after Poedit learns enough from files that you translated manually.The file cannot be compiled into the MO format and used.The file cannot be opened.The file contained duplicate items, which is not allowed in PO files and would prevent the file from being used. Poedit fixed the issue, but you should review translations of any items marked as needing work and correct them if necessary.The file may be either corrupted or in a format not recognized by Poedit.The file was compiled into the MO format, but it will probably not work correctly.The file was saved safely and compiled into the MO format, but it will probably not work correctly.The file was saved safely, but it cannot be compiled into the MO format and used.The file was saved safely.The old source text (before it changed during an update) that the now-inaccurate translation corresponds to.The simplest way to fill this catalog is to update it from a POT:The translation doesn’t start with a space.The translation ends with a newline, but the source text doesn’t.The translation ends with a space, but the source text doesn’t.The translation ends with “%s”, but the source text ends with “%s”.The translation is missing a newline at the end.The translation is missing a space at the end.The translation is ready for use, but %d entry is not translated yet.The translation is ready for use, but %d entries are not translated yet.The translation is ready for use.The translation should end with “%s”.The translation should not end with “%s”.The translation should start as a sentence.The translation should start with a lowercase character.The translation starts with a space, but the source text doesn’t.The translations were marked as needing work, because they may be inaccurate. You should review them for correctness.There are no translations. That’s unusual.There was a problem formatting the file nicely (but it was saved all right).There were errors when loading the catalog. Some data may be missing or corrupted as the result.These settings affect internal formatting of PO files. Adjust them if you have specific requirements e.g. because of version control.These strings are no longer in the sources. Poedit will remove them from the catalog now.These strings were found in the sources but were not in the catalog. Poedit will add them to the catalog now.This catalog has entries with plural forms, but doesn’t have Plural-Forms header configured.This file can only be edited in Crowdin’s web interface.This is the command used to launch the extractor. %o expands to the name of output file, %K to list of keywords, %F to list of input files, %C to charset flag (see below).This project has no files that can be translated in Poedit.This string was found in Poedit’s translation memory.This will be attached to the command line only if source code charset was given. %c expands to charset value.This will be attached to the command line once for each input file. %f expands to the filename.This will be attached to the command line once for each keyword. %k expands to the keyword.TotalTransformationsTranslated: %d of %d (%d %%)Translation LanguageTranslation MemoryTranslation Needs &WorkTranslation PropertiesTranslation needs &workTranslation propertiesTranslation suggestions:Translation — %sTranslation:Translations couldn’t be updated from the source code, because no code was found in the location specified in the catalog’s Properties.TwoUTF-8 (recommended)UndoUnhandled exception occurred: %sUnix (recommended)UntransUpUpdateUpdate allUpdate all catalogs in the projectUpdate catalog - synchronize it with sourcesUpdate from &POT File…Update from &POT file…Update from POTUpdate summaryUpdatesUpdating catalogUpdating failedUpdating the catalog failed. Click on 'Details >>' for details.Updating user information…Uploading translations…Use custom expressionUse custom list font:Use custom text fields font:Use default rules for this languageUse these keywords (function names) to recognize translatable strings in source files:Use translation memoryValidateValidation resultsVersion %sWaiting for authentication…Welcome to PoeditWhat is Crowdin?When updating from sourcesWhole words onlyWindowWindowsWrap aroundWrap at:YesYou can also extract translatable strings directly from the source code:You can’t drop more than one file on Poedit window.You must restart Poedit for this change to take effect.Your NameYour changes will be lost if you don’t save them.Your name and email address are only used to set the Last-Translator header of GNU gettext files.ZeroZoomaltctrldon’t delete temporary files (for debugging)e.g. nplurals=2; plural=(n > 1);fuzzy match within the filego to item at given line numberhandle a poedit:// URIpre-translate from TMshiftunknown languageyour_email@example.com“%s” is not a valid POT file.Project-Id-Version: poedit Report-Msgid-Bugs-To: help@poedit.net POT-Creation-Date: 2017-12-05 15:52+0100 PO-Revision-Date: 2017-09-21 11:20-0400 Last-Translator: vslavik Language-Team: Vietnamese Language: vi_VN MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=1; plural=0; X-Generator: crowdin.com X-Crowdin-Project: poedit X-Crowdin-Language: vi X-Crowdin-File: /locales/poedit.pot (đã sửa) (chưa lưu)%d mục%d mục đã được dịch trước.%d lỗiTìm thấy trong bản dịch %d lỗi.%i dòng của tập tin '%s' đã không được nạp một cách chính xác.Định dạng %sCấu hình %sđịnh dạng %s&Giới thiệu&Giới thiệu về Poedit&Áp dụng&Quay lạiĐánh &dấu&Hủy bỏ&Dọn dẹpĐó&ng&Sao&Xóa&Thực hiện và làm tiếp&Thực hiện và làm tiếp&Biên tập&Chính&Tìm…Sổ tay hướng dẫn sử dụng &GNU gettextSổ tay hướng dẫn sử dụng &GNU gettextNhả&y đếnNhóm Theo N&gữ CảnhNhóm theo n&gữ cảnhT&rợ giúp&Mới&Mới…&Tiếp theo >Bản Dịch &Kế TiếpBản dịch &kế tiếp&Không&Đồng ýTrợ Giúp &Trực tuyếnTrợ giúp &trực tuyến&Mở...&Mở…&Dán&Cá nhân hóa&Cá nhân hóa…Bản Dịch &TrướcBản dịch &Trước&Thuộc tính…&Thanh lọc các chuỗi đã xóa&Thanh lọc các chuỗi đã xóa&Thoát&Làm lạiT&hay thế&Lưu&Lưu như&Hiển thị tham chiếu&Hiển thị tham chiếu&Hoàn tácMục &chưa dịch đầu tiênMục &chưa dịch đầu tiên&Cập nhật từ Mã nguồn&Cập nhật từ mã nguồn&Thẩm tra bản dịch&Thẩm tra bản dịch&Trình bày&Vâng(0 mới, 0 cũ)(Học thêm về GNU gettext)(Mới: %i, quá cũ: %i)(Dùng ngôn ngữ mặc định)(yêu cầu Windows 8 hay mới hơn)< &TrướcKéo và Thả Thư mục Ở đây hoặc sử dụng nút +Kéo và thả thư mục ở đây hoặc sử dụng nút +Giới thiệu về %sTài khoảnThêm Bình LuậnThêm Tệp Tin…Thêm Thư Mục…Thêm ký tự đại diện…Thêm bình luậnThêm thư mục vào danh sáchThêm tệp tin…Thêm thư mục…Thêm ký tự đại diện…Từ khoá bổ xungBổ sung cờ xgettext :Nâng caoCài Đặt Giải Nén Nâng Cao…Cài đặt giải nén nâng caoCài đặt giải nén nâng cao…Tất Cả Các Tập Tin Bản DịchTất cả bình luậnCũng có thể sử dụng từ khóa mặc định cho các ngôn ngữ được hỗ trợAlt+Luôn luôn để focus vào ô nhập liệuMột mục tin trong danh sách các tập tin nguồn vào:Một mục tin trong danh sách các từ khóa:Giao diệnÁp dụngBạn có chắc muốn xóa trình giải nén "%s"?Bạn có chắc bạn muốn đặt lại bộ nhớ dịch thuật?Tự động kiểm tra cập nhậtTự động biên dịch tập tin MO khi lưuQuay lạiĐường dẫn cơ sở:Phiên bản beta chứa các tính năng và cải tiến mới nhất, nhưng có thể ít ổn định.Mang Tất Cả ra TrướcTập tin catalog hỏng: dạng số nhiều msgstr được sử dụng mà không có msgid_pluralTập tin catalog hỏng: dạng số ít msgstr mà sử dụng với msgid_pluralDuyệtTheo mặc định, kết quả không chính xác được điền vào là tốt và được đánh dấu là cần làm việc. Chọn tuỳ chọn này để chỉ bao gồm các từ khớp chính xác.C&atalog&Dọn dẹpHủy bỏKhông thể tạo thư mục tạm.Không thể thi hành chương trình: %sViết HoaCatalogCatalog đã bị sửa. Bạn có muốn lưu lại các thay đổi không?Các thuộc tính của catalog&Quản lý các catalog&Quản lý các catalogQuản lý các catalogThay đổi ngôn ngữ UIBảng mã ký tự:Kiểm Tra Tài Liệu NgayKiểm Tra Ngữ Pháp Với Chính TảKiểm Tra Chính Tả Trong Khi GõKiểm tra cập nhật…Tìm kiếm các lỗi trong bản dịchKiểm tra cập nhật…Kiểm tra lỗi chính tảDọn dẹpXóa phần dịchXóa phần chú thíchXóa phần dịchĐóngCộng tác trên một bản dịch với những người khácCộng tác trên một bản dịch với những người khácĐang thu thập các tập tin nguồn…Lệnh để giải nén các bản dịch:Chú thích:Bình luận bắt đầu bằng:Biên dịch sang MO…Biên dịch sang…Các tập tin bản dịch đã được biên dịchCấu hình việc rút trích mã nguồn trong `Thuộc tính'.Sự xác thựcSao chépSao chép từ số ítChép từ chuỗi nguồnSao chép từ số ítChép từ chuỗi nguồnSửa Chính Tả Tự ĐộngKhông thể tải tập tin %s, nó gần như chắc chắn đã bị hỏng.Không thể lưu tập tin %s.Tạo Bản Dịch MớiTạo bản dịch mớiTạo một dự án dịch mớiCrowdin lỗiCrowdin là một nơi quản lý trực tuyến nền tảng và các công cụ dịch thuật hợp tác. Poedit có thể liên tục đồng bộ tập tin PO quản lý tại Crowdin.Ctrl+Cắ&tTùy Chọn Giải Nén:Tùy chọn giải nén:CắtKích thước của cơ sở dữ liệu trên đĩa:Xóa bỏXóa trình giải nénXóa bỏ dự ánThư mục:Hiển thị các &ID mục vàoHiển thị các &ID mục vàoBạn có muốn cập nhật hàng loạt tất cả các catalog trong dự án này?Bạn có muốn xóa bỏ dự án không?Bạn có muốn loại bỏ tất cả các chuỗi không còn sử dụng nữa không?Không LưuKhông Hiển Thị LạiKhông đánh dấu các từ khớp chính xác là cần làm việcKhông lưuKhông hiển thị lạiXuốngTải một tập tin từ dự án Crowdin, dịch và đồng bộ các thay đổi của bạn trở lại.Đang tải xuống bản dịch mới nhất…Tải về bản dịch bị vô hiệu hóa trong dự án này.Thoá&t&Xuất ra định dạng HTML…Biên tậpSửa &chú thíchSửa &chú thíchSửa chú thíchSửa một bản dịchSửa một bản dịchSửa chú thíchChỉnh sửa dự ánChỉnh sửa dự ánĐang chỉnh sửaChỉnh sửa…Email:EnterNhập Toàn Màn HìnhCác mục từ trong catalog chắc chắn là không đúng.Mục Có Lỗi Đầu TiênMục có lỗi đầu tiênCác mục có lỗi được đánh dấu màu đỏ trong danh sách. Chi tiết về lỗi sẽ hiển thị khi bạn chọn mục tương ứng đó.Gặp lỗi khi đang tải các chuỗi từ tập tin catalog '%s'.Lỗi mở tập tinGặp lỗi khi đang mở tập tin %s!Gặp lỗi khi lưu catalogLỗiMọi thứĐường dẫn loại trừXuất ra như…Trích từ mã nguồnGiải nén ghi chú cho người dịch từ:Trích xuất văn bản từ mã nguồn trong những thư mục sau đây:Đang giải nén các chuỗi có thể dịch…Thiết lập ExtractorTrình giải nénLệnh bị sai: %sKhông thể giao tiếp với quá trình Poedit.Lỗi rút trích catalog.Lỗi trộn catalog gettext.Gặp lỗi khi cập nhật bộ nhớ dịch: %sTập tinTập tin "%s" không tồn tại.Tập tin '%s' không phải là catalog.Tệp tin %s chỉ cho phép đọc và không thể lưu lại được. Xin hãy lưu lại với một tên khác.Tập tin:Hoàn thành…TìmTìm tiếpTìm lùiTìm và Thay thế…Tìm trong chú thíchTìm trong các văn bản nguồnTìm trong phần dịchTìm tiếpTìm lùiSửa ngôn ngữSửa chữa ngôn ngữSửa Phần ĐầuSửa phần đầuDạng %iThường xuyênGNU gettextTổng quanĐi đến Dấu Trang %iĐi đến dấu trang %iTập tin HTMLTrợ giúpẨn %sẨn Những Thứ KhácẨn Thanh Công CụẨn Thanh Trạng TháiẨn lời cảnh báo này điIDNếu bạn vẫn muốn thanh lọc, tất cả các chuỗi dịch mà được đánh dấu là đã xoá sẽ bị gỡ bỏ hoàn toàn khỏi tập tin. Bạn sẽ phải dịch lại chúng nếu người lập trình sử dụng lại nó trong tương lai.Trường hợp bỏ quaĐang nhập các bản dịch…Bao gồm cả bản thử nghiệmThông tin về các dịch giảCài đặtTập tin không hợp lệLệnh gọi:Giữ lạiMã ngôn ngữ hoặc tên (ví dụ: vi_VN)Ngôn ngữ của bản dịch là giống như ngôn ngữ nguồn.Ngôn ngữ của bản dịch chưa được đặt.Ngôn ngữ của bản dịch:Lựa chọn ngôn ngữNhóm ngôn ngữ:Ngôn ngữ:Lần sửa cuốiTìm hiểu thêm về các từ khoá GettextTìm hiểu từ các tập tin…Tìm Hiểu ThêmTìm Hiểu Thêm Về CrowdinHọc thêm về các từ khóa của GNU gettextTìm hiểu dạng thức số nhiềuTìm hiểu từ các tập tin…Tìm hiểu thêmTìm hiểu thêm về CrowdinTráiDòng %d của tập tin '%s' bị hỏng (dữ liệu không hợp lệ %s).Dòng kết thúc:Danh sách đuôi tập tin ngăn cách bởi dấu chấm phẩy (ví dụ *.cpp;*.h):Tập tin MO không thể chỉnh sửa trực tiếp trong Poedit.Chữ thườngChữ HOABị thay đổi tiêu đề: "%s"Đang trộn các khác biệt…Thu nhỏTên của dự án của bản dịchTên:Câu chưa dịch &tiếp theoCâu chưa dịch &tiếp theoCần làmCần làm việcĐừng bao giờ để danh sách chuỗi nhận focus. Nếu cho phép, bạn phải sử dụng Ctrl-Phím mũi tên để có thể di chuyển bằng bàn phím nhưng bạn lại có thể nhập chữ một cách trực tiếp, mà không cần phải nhấn Tab để thay đổi focus.MớiTạo Mới Từ Tệp Tin &POT/PO…Tạo mới từ tệp tin &POT/PO…Chuỗi mớiDạng số tiếp theoDạng số tiếp theoKhôngKhông tìm thấy các từ khớpKhông có mục có thể được trước dịch.Không tìm thấy từ khớpKhông tìm thấy lỗi nào trong bản dịch.Không có tham chiếu cho mục đã chọn.Không có dự án dịch thuật được liệt kê trong tài khoản Crowdin của bạn.Không phải tất cả các hình thức số nhiều được dịch.Không có thẩm quyền, xin vui lòng đăng nhập lại.Ghi chú dành cho người dịch:Đồng ýChuỗi đã cũMộtChỉ cho phép nếu bạn tin tưởng chất lượng TM của bạn. Theo mặc định, tất cả các từ khớp từ TM được đánh dấu là cần làm việc và nên được xem lại.Chỉ điền vào các từ khớp chính xácMởMở Crowdin dịchMở Từ Crowdin…Mở gần đâyMở một tập tin PO sẵn có và sửa bản dịch.Mở catalogMở tập tin catalog mẫuMở từ Crowdin…Mở trong Trình Soạn ThảoMở trong trình soạn thảoMở...Mở…Tùy chọnKhácCâu cần dịch liền t&rướcCâu cần dịch liền t&rướcPO DịchPO Dịch Tập TinPO Dịch MẫuCác tập tin POT chỉ là các mẫu và không chứa bất kì bản dịch nào của chính chúng. Để tạo 1 bản dịch, tạo 1 tập tin PO mới dựa trên mẫu.DánDán và Khớp KiểuĐường dẫnHãy mở và chỉnh sửa các tập tin PO. Khi bạn lưu nó, tập tin MO sẽ được cập nhật.Vui lòng lưu tập tin này trước. Phần này không được chỉnh sửa cho đến khi tập tin được lưu lại.Số nhiềuDạng thức số nhiều được dùng cho catalog là bất thường đối với %s.Hình thức số nhiều:Số nhiều:PoeditPoedit - Quản lý catalogPoedit đã tự động sửa các nội dung không hợp lệ trong tập tin "%s".Poedit có thể cố gắng để điền vào mục mới từ bản dịch trước đó trong tập tin hoặc từ toàn bộ bộ nhớ dịch của bạn. Sử dụng TM sẽ không thể hiệu quả nếu nó gần như trống rỗng, nhưng nó sẽ trở nên tốt hơn khi bạn thêm nhiều bản dịch với nó.Poedit rất dễ dùng cho việc biên tập bản dịch.Dịch &trước…Dịch trướcDịch trướcChuỗi %u đã được dịch trướcĐang dịch trước...Bản dịch tự động tìm kiếm kết hợp chính xác hoặc làm mờ cho các chuỗi chưa dịch trong bộ nhớ dịch và điền vào bản dịch của họ.Tùy chọnCá nhân hóa...Cá nhân hóa…Duy trì định dạng của tập tin đã cóDạng số nhiều trướcDạng số nhiều trướcVăn bản nguồn trước đó:Tên và phiên bản của dự án:Tên dự án:Dự án:Thanh lọcXóa bỏ các chuỗi dịch bị đánh dấu là không dùng nữaThoátThoát %sGần đâyLàm lạiTham chiếu:Làm mớiCòn lại: %dThay thếThay Thế &Tất CảThay Thế &tất cảThay thế chuỗiThay thế…Phần đầu Plural-Forms đã yêu cầu bị thiếu.Thiết lập lạiĐặt lại bộ nhớ dịch thuậtĐặt lại bộ nhớ dịch thuật sẽ xóa bỏ tất cả bản dịch được lưu trữ từ nó. Bạn không thể hoàn tác thao tác này.Xem lạiPhảiLưuLưu &Như…Lưu &như…Lưu nhưLưu như…Lưu catalogLưu thay đổiChọn &Tất CảChọn Tất cảChọn thư mụcChọn các tập tin bản dịch để nhập vàoChọn ngôn ngữ ưa thíchDịch vụĐặt Dấu Trang %iĐặt ngôn ngữĐặt dấu trang %iĐặt ngôn ngữShift+Hiển Thị Tất CảHiện thanh công cụHiện Chính Tả và Ngữ PhápHiển Thanh Trạng TháiHiển Thị Thay ThếHiện hoặc ẩn thanh công cụHiện thanh công cụHiển thanh trạng tháiHiển thị thông tin tóm tắt sau khi cập nhật catalogThanh tiện íchĐăng NhậpĐăng XuấtĐăng nhậpĐăng nhập vào CrowdinĐăng xuấtĐăng nhập như là:Dạng số ítDạng số ít:Sao Chép/Dán Thông MinhDấu Gạch Ngang Thông MinhLiên Kết Thông MinhTrích Dẫn Thông MinhSắp xếp theo thứ tự &Tập tinSắp xếp theo &chuỗi nguồnSắp xếp theo chuỗi &dịchSắp xếp theo thứ tự &tập tinSắp xếp theo &chuỗi nguồnSắp xếp theo chuỗi &dịchBảng mã dữ liệu nguồn:Trình giải nén mã nguồn được dùng để tìm các chuỗi có thể dịch trong các tập tin mã nguồn và giải nén nó vì thế chúng có thể được dịch.Mã nguồn không có sẵn.Tập tin mã nguồnXuất hiện trong tập tin nguồn:Văn bản nguồnMã nguồn văn bản — %sVăn bản nguồn:Nguồn từ khóaĐường dẫn nguồnTừ khóa dùng cho mã nguồnĐường dẫn mã nguồnLời nóiKiểm tra chính tả bị vô hiệu, bởi vì từ điển cho %s không được cài đặt.Chính Tả và Ngữ PhápBắt Đầu NóiDừng NóiCác bản dịch được lưu trữ:Chuỗi cần tìmThay ThếĐề xuấtGợi ý không có sẵn nếu ngôn ngữ bản dịch không được thiết lập đúng. Các tính năng khác, chẳng hạn như hình thức số nhiều, có thể bị ảnh hưởng.Hỗ trợ tất cả các ngôn ngữ lập trình được công nhận bởi công cụ GNU gettext (PHP, C/c + +, C#, Perl, Python, Java, JavaScript và những ngôn ngữ khác).Đồng bộĐồng bộ với CrowdinĐồng bộ bản dịch với CrowdinĐồng bộLỗi đồng bộĐồng bộ với %s bị lỗi.Đang đồng bộ với %s…Đồng bộ với Crowdin không thành công.Cú pháp lỗi trong khai báo phần đầu Plural-Forms ("%s").TMLấy một tập tin PO hay mẫu POT và tạo bản dịch mới từ đó.Lấy các chuỗi có thể dịch được từ một mẫu POT sẵn có.Tên nhóm và địa chỉ email hoặc URLThay Thế Văn BảnTM không chứa bất kỳ chuỗi tương tự cho nội dung của tập tin này. Nó là chỉ có hiệu lực cho các bản dịch bán tự động sau khi Poedit học đủ từ các tập tin mà bạn đã dịch thủ công.Các tập tin không thể được biên dịch thành các định dạng MO và sử dụng.Không thể mở tập-tin.Tập tin chứa các mục trùng lặp, mà không được cho phép trong các tập tin PO và sẽ ngăn chặn các tập tin được sử dụng từ chúng. Poedit đã sửa vấn đề, nhưng bạn nên xem lại các bản dịch của bất kỳ mục nào được đánh dấu là cần làm việc và sửa lại chúng nếu cần thiết.Tập tin có lẽ đã hư hỏng hoặc là Poedit không chấp nhận định dạng này.Các tập tin được biên dịch vào các định dạng MO, nhưng nó sẽ có lẽ không làm việc một cách chính xác.Các tập tin được lưu một cách an toàn và biên soạn thành định dạng MO, nhưng nó sẽ có lẽ không làm việc một cách chính xác.Tập tin đã được lưu một cách an toàn, nhưng nó không thể được biên dịch thành định dạng MO để có thể sử dụng được.Tệp được lưu một cách an toàn.Các nguồn văn bản cũ (trước khi nó thay đổi trong quá trình cập nhật) mà bản dịch hiện thời không chính xác tương ứng.Cách đơn giản nhất để điền thông tin cho catalog này là cập nhật nó từ một tập tin POT:Bản dịch không bắt đầu với một dấu cách.Bản dịch kết thúc với một dòng mới, nhưng văn bản nguồn không có.Bản dịch kết thúc với một dấu cách, nhưng văn bản nguồn không có.Bản dịch kết thúc bằng "%s", nhưng văn bản nguồn kết thúc bằng "%s".Bản dịch đang thiếu 1 dòng mới ở cuối.Các bản dịch là thiếu một dấu cách ở phần cuối.Bản dịch đã sẵn sàng để sử dụng, nhưng %d mục không được dịch.Bản dịch đã sẵn sàng để dùngBản dịch nên kết thúc với "%s".Bản dịch không nên kết thúc với "%s".Bản dịch nên bắt đầu như là một câu.Bản dịch nên bắt đầu với một ký tự chữ thường.Bản dịch bắt đầu với một dấu cách, nhưng văn bản nguồn không có.Các bản dịch đã được đánh dấu là cần làm việc, bởi vì chúng có thể không chính xác. Bạn nên xem lại chúng cho việc sửa chữa.Ở đây không có bản dịch nào cả. Điều này là bất thường.Có vấn đề với định dạng (nhưng vẫn có thể lưu lại).Có nhiều lỗi khi tải lên tập tin catalog. Một số dữ liệu bị mất hay sai lạc.Các thiết đặt này ảnh hưởng đến định dạng bên trong của các tập tin PO. Điều chỉnh chúng nếu bạn có yêu cầu cụ thể ví dụ vì kiểm soát phiên bản.Những chuỗi này không còn tồn tại trong tập tin nguồn nữa. Poedit sẽ loại bỏ chúng bây giờ.Các chuỗi tìm thấy trong tập tin nguồn nhưng không có trong catalog. Poedit sẽ thêm vào ngay bây giờ.Có các mục tin dạng số nhiều, nhưng chưa được khai báo ở phần đầu Plural-Form.Tập tin này chỉ có thể được chỉnh sửa trong giao diện web của Crowdin.Đây là lệnh được dùng để khởi chạy trình giải nén. %o mở rộng tên của tập tin đầu ra, %K tới danh sách các từ khóa, %F tới danh sách tập tin đầu vào, %C tới cờ bộ mã ký tự (xem bên dưới).Dự án này đã không có tập tin nào có thể được dịch trong Poedit.Chuỗi này được tìm thấy trong bộ nhớ bản dịch của Poedit.Cái này sẽ gắn với dòng lệnh chỉ khi bộ mã ký tự nguồn được đưa ra. %c được triển khai thành giá trị bộ ký tự.Cái này sẽ gắn với dòng lệnh một lần với mỗi tập tin đầu vào. %f được triển khai thành tên tập tin.Cái này sẽ gắn với dòng lệnh một lần cho mỗi từ khóa. %k được triển khai thành từ khóa.Tổng cộngBiến ĐổiĐã dịch: %d of %d (%d %%)Ngôn ngữ bản dịchCơ sở dữ liệu dịchBản Dịch Cần Làm &ViệcThuộc tính dịchBản dịch cần làm &việcThuộc tính bản dịchCác gợi ý dịch:Bản dịch — %sBản dịch:Bản dịch không thể được cập nhật từ mã nguồn, bởi vì không có mã nào được tìm thấy tại vị trí chỉ định trong Thuộc tính của danh mục.HaiUTF-8 (nên dùng)Huỷ thao tác trướcChưa được xử lý ngoại lệ: %sUnix (nên dùng)Chưa dịchLênCập nhậtCập nhật tất cảCập nhật tất cả các catalog trong dự ánCập nhật catalog - đồng bộ hóa nó với mã nguồnCập nhật từ tập tin &POT…Cập nhật từ tập tin &POT…Cập nhật từ tệp tin POTTóm tắt sơ lược quá trình cập nhậtCập NhậtCập nhật catalogCập Nhật không thành côngCập nhật catalog không thành công. Bấm chuột vào 'Chi tiết >>' để có thông tin đầy đủ.Đang cập nhật thông tin người dùng…Tải lên bản dịch…Dùng biểu thức tự chọnSử dụng danh sách tùy chỉnh phông:Sử dụng font tùy chỉnh các trường văn bản:Sử dụng quy tắc mặc định cho ngôn ngữ nàySử dụng những từ khóa (tên hàm) để nó có thể nhận ra các chuỗi có thể dịch trong tập tin mã nguồn:Dùng bộ nhớ bản dịchThẩm traKết quả xác nhậnPhiên bản %sĐang chờ xác thực…Chào mừng bạn dùng PoeditCrowdin là gì?Khi cập nhật từ nguồnPhải khớp toàn bộ các từCửa sổKiểu WindowsNgắt khoảngNgắt tại:VângBạn đồng thời có thể rút trích các chuỗi có thể dịch được trực tiếp từ mã nguồn:Bạn không thể kéo thả nhiều hơn một tập tin vào trong cửa sổ Poedit.Bạn phải khởi động lại Poedit để các thay đổi có tác dụng.Tên BạnCác thay đổi của bạn sẽ bị mất nếu bạn không lưu chúng.Tên và địa chỉ email của bạn chỉ được sử dụng để thiết lập các tiêu đề dịch giả cuối cùng của GNU gettext tập tin.Số khôngPhóng toaltctrlkhông xóa tập tin tạm (để gỡ lỗi)ví dụ: nplurals=2; plural=(n > 1);Làm mờ trùng bên trong tập tinnhảy tới mục với số dòng đã choxử lý một poedit:// URIDịch trước từ TMshiftkhông hiểu ngôn ngữthevuong@live.comTập tin '%s' không hợp định dạng POT.poedit-2.0.6/locales/zh_TW.mo0000664000372000037200000013223213230132042012727 00000000000000P%1 1 11<11J 2gW2 22 22 222 3333%3+333B3Q3W3]3f3z333333333333 3 44 4)4 04=4M4c4y44444444445 5(5D5Y5n55555555 6 '6:36:n6 666 6 666 6 7 #707?7O7c7~77777 71898'>8f88 8878689)=9g9 l9]w99A9I*:t:{:; ;;";:; U;`;.h;;;;;;;;<*<F<#[<<<<<<<<(<(=7= R=s=|== ==/= = >>#>9>L>b>2>>>>> ?)???????@@@ 2@?@R@Ee@"@?@ AA*.A YAfAyAK~A"A5A#B)BHAH HHI 'IHI PI ]IiI"nI;I(IIJ&J 5J ?JMJjJ ~JJJJJ JJK:K PK<^K.KKKKLL*%LPLVLgL xL LLJMNMgM MMMMM#MM'M$N7DN$|N%NNNNNNOOOO O2O P#P9PNP]PlPtP|PPPPPPPPQQQnQERZR>aR RRRR@RS-T KX_x ƁЁ .ELScy(ۂ+v: ƒՃ!( 8BSId'9ք 3- an~?Ņ! '.? P ] j w  ņˆ'ۆ\`sf/6Vu | *̈! )3 K!l!ΉՉ#K ]gw ~ ъ  % 2< COVf v ً܋s  ͌׌#ތ$'F Yf v ̍ #0EGL @*  'H [e  ƏӏȐ $.Si-!ґ'2 9FJ/E(XГ  3 =J{[הޔRBNL 6V(En o̗ <IY*iӘ  & -7 > KU \ho &ҙٙiV]dk|  Ϛ ܚ% 5B R_ fs؛ %,3BIY `j~ Ŝܜ'>`Q ˝؝ " 2? O\7c Ş؞ xx *4Gau/ 6Π2(8 an +ƢܢA=X4UT;Q$66= '^!@! #,P$o0fŧ!,TNKP{e̩Y29ƪ5i2jҫX=[   2? Vc s l <PW^ erƯܯ  A"d!˰S `s z ֱ +6/8f8 ز3c} $!޳!+M S`"wD}],6 9BW6tC3H>C'# )h?*Kq#-0^aG2zFYblx&2LADZ.EwPi=Ab[kv @4uh~ uL@|pnf.nTN? QI2:qOKcajd F!p ]U>T+rXi=J%Vxz51^s4 NH/F"8/XJ`om #UwQk :Gs$ 8jL!~I1,(<D-9B>|;$H(E?g<y!dYgIo \ <eN+rM5&cM5 :"K-A+EmZ7C"603B $%RfRVeyOG*S@ M,4}_{O%W91J)S[`' 7)v &;*{(l_.03=\7P8/t';P (modified) (unsaved)%d entry%d entries%d entry was pre-translated.%d entries were pre-translated.%d error%d errors%d issue with the translation found.%d issues with the translation found.%i line of file “%s” was not loaded correctly.%i lines of file “%s” were not loaded correctly.%s Format%s Preferences%s format&About&About Poedit&Apply&Back&Bookmarks&Cancel&Clear&Close&Copy&Delete&Done and Next&Done and next&Edit&File&Find…&GNU gettext Manual&GNU gettext manual&Go&Group By Context&Group by context&Help&New&New…&Next >&Next Translation&Next translation&No&OK&Online Help&Online help&Open...&Open…&Paste&Preferences&Preferences…&Previous Translation&Previous translation&Properties…&Purge Deleted Translations&Purge deleted translations&Quit&Redo&Replace&Save&Save as&Show References&Show references&Undo&Untranslated Entries First&Untranslated entries first&Update from Sources&Update from sources&Validate Translations&Validate translations&View&Yes(0 new, 0 obsolete)(Learn more about GNU gettext)(New: %i, obsolete: %i)(Use default language)(requires Windows 8 or newer)< &PreviousDrag and Drop Folders Here or use the + buttonDrag and drop folders here or use the + buttonAbout %sAccountsAdd CommentAdd Files…Add Folders…Add Wildcard…Add commentAdd directory to the listAdd files…Add folders…Add wildcard…Additional keywordsAdditional xgettext flags:AdvancedAdvanced Extraction Settings…Advanced extraction settingsAdvanced extraction settings…All Translation FilesAll commentsAlso use default keywords for supported languagesAlt+Always change focus to text input fieldAn item in input files list:An item in keywords list:AppearanceApplyAre you sure you want to delete the “%s” extractor?Are you sure you want to reset the translation memory?Automatically check for updatesAutomatically compile MO file when savingBackBase path:Beta versions contain the latest new features and improvements, but may be a bit less stable.Bring All to FrontBroken catalog file: plural form msgstr used without msgid_pluralBroken catalog file: singular form msgstr used together with msgid_pluralBrowseBy default, inaccurate results are filled in as well and marked as needing work. Check this option to only include accurate matches.C&atalogC&learCancelCannot create temporary directory.Cannot execute program: %sCapitalizeCatalogCatalog modified. Do you want to save changes?Catalog propertiesCatalogs &ManagerCatalogs &managerCatalogs ManagerChange UI languageCharset:Check Document NowCheck Grammar With SpellingCheck Spelling While TypingCheck for Updates…Check for errors in the translationCheck for updates…Check spellingClearClear TranslationClear the commentClear translationCloseCollaborate on a Translation with OthersCollaborate on a translation with othersCollecting source files…Command to extract translations:Comment:Comments prefixed with:Compile to MO…Compile to…Compiled Translation FilesConfigure source code extraction in Properties.ConfirmationCopyCopy From SingularCopy from Source TextCopy from singularCopy from source textCorrect Spelling AutomaticallyCouldn’t load file %s, it is probably corrupted.Couldn’t save file %s.Create New TranslationCreate new translationCreate new translations projectCrowdin errorCrowdin is an online localization management platform and collaborative translation tool. Poedit can seamlessly sync PO files managed at Crowdin.Ctrl+Cu&tCustom Extractors:Custom extractors:CutDatabase size on disk:DeleteDelete extractorDelete the projectDirectories:Display Entry &IDsDisplay entry &IDsDo you really want to do mass update of all catalogs in this project?Do you want to delete the project?Do you want to remove all translations that are no longer used?Don’t SaveDon’t Show AgainDon’t mark exact matches as needing workDon’t saveDon’t show againDownDownload a file from Crowdin project, translate and sync your changes back.Downloading latest translations…Downloading translations is disabled in this project.E&xitE&xport as HTML…EditEdit &CommentEdit &commentEdit CommentEdit a TranslationEdit a translationEdit commentEdit projectEdit the projectEditingEdit…Email:EnterEnter Full ScreenEntries in the catalog are probably incorrect.Entries in this catalog have different plural forms count from what catalog’s Plural-Forms header saysEntries with Errors FirstEntries with errors firstEntries with errors were marked in red in the list. Details of the error will be shown when you select such an entry.Error loading message catalog file “%s”.Error opening fileError opening file %s!Error saving catalogErrorsEverythingExcluded pathsExport as…Extract from sourcesExtract notes for translators from:Extract text from source files in the following directories:Extracting translatable strings…Extractor setupExtractorsFailed command: %sFailed to communicate with Poedit process.Failed to load extracted catalog.Failed to merge gettext catalogs.Failed to update translation memory: %sFileFile “%s” doesn’t exist.File “%s” is not a message catalog.File “%s” is read-only and cannot be saved. Please save it under different name.File:Finalizing…FindFind NextFind PreviousFind and Replace…Find in commentsFind in source textsFind in translationsFind nextFind previousFix LanguageFix languageFix the HeaderFix the headerForm %iFrequentGNU gettextGeneralGo to Bookmark %iGo to bookmark %iHTML FilesHelpHide %sHide OthersHide SidebarHide Status BarHide this notification messageIDIf you continue with purging, all translations marked as deleted will be permanently removed. You will have to translate them again if they are added back in the future.Ignore caseImporting translations…Include beta versionsInformation about the translatorInstallInvalid fileInvocation:KeepLanguage Code or Name (e.g. en_GB)Language of the translation is the same as source language.Language of the translation isn’t set.Language of the translation:Language selectionLanguage team:Language:Last modifiedLearn About Gettext KeywordsLearn From Files…Learn MoreLearn More About CrowdinLearn about gettext keywordsLearn about plural formsLearn from files…Learn moreLearn more about CrowdinLeftLine %d of file “%s” is corrupted (not valid %s data).Line endings:List of extensions separated by semicolons (e.g. *.cpp;*.h):MO files can’t be directly edited in Poedit.Make Lower CaseMake Upper CaseMalformed header: “%s”Merging differences…MinimizeName of the project the translation is forName:Ne&xt UnfinishedNe&xt unfinishedNeeds WorkNeeds workNever let the list of strings take focus. If enabled, you must use Ctrl-arrows for keyboard navigation but you can also type text immediately, without having to press Tab to change focus.NewNew From &POT/PO File…New from &POT/PO file…New stringsNext Plural FormNext plural formNoNo Matches FoundNo entries could be pre-translated.No matches foundNo problems with the translation found.No references for the selected item.No translation projects listed in your Crowdin account.Not all plural forms are translated.Not authorized, please sign in again.Notes for translators:OKObsolete stringsOneOnly enable if you trust the quality of your TM. By default, all matches from the TM are marked as needing work and should be reviewed before use.Only fill in exact matchesOpenOpen Crowdin translationOpen From Crowdin…Open RecentOpen an existing PO file and edit the translation.Open catalogOpen catalog templateOpen from Crowdin…Open in EditorOpen in editorOpen...Open…OptionsOtherP&revious UnfinishedP&revious unfinishedPO TranslationPO Translation FilesPOT Translation TemplatesPOT files are only templates and don’t contain any translations themselves. To make a translation, create a new PO file based on the template.PastePaste and Match StylePathsPlease open and edit the corresponding PO file instead. When you save it, the MO file will be updated as well.Please save the file first. This section cannot be edited until then.PluralPlural forms expression used by the catalog is unusual for %s.Plural forms:Plural:PoeditPoedit - Catalogs managerPoedit automatically fixed invalid content in the file “%s”.Poedit can attempt to fill in new entries from only previous translations in the file or from your entire translation memory. Using the TM won’t be very effective if it’s near-empty, but it will get better as you add more translations to it.Poedit is an easy to use translations editor.Pre-&translate…Pre-translatePre-translatedPre-translated %u stringPre-translated %u stringsPre-translating…Pre-translation automatically finds exact or fuzzy matches for untranslated strings in the translation memory and fills in their translations.PreferencesPreferences...Preferences…Preserve formatting of existing filesPrevious Plural FormPrevious plural formPrevious source text:Project name and version:Project name:Project:PurgePurge deleted translationsQuitQuit %sRecentRedoReferences:RefreshRemaining: %dReplaceReplace &AllReplace &allReplacement stringReplace…Required header Plural-Forms is missing.ResetReset translation memoryResetting the translation memory will irrevocably delete all stored translations from it. You can’t undo this operation.ReviewRightSaveSave &As…Save &as…Save asSave as…Save catalogSave changesSelect &AllSelect AllSelect directorySelect translation files to importSelect your preferred languageServicesSet Bookmark %iSet LanguageSet bookmark %iSet languageShift+Show AllShow SidebarShow Spelling and GrammarShow Status BarShow SubstitutionsShow or hide the sidebarShow sidebarShow status barShow summary after catalog updateSidebarSign InSign OutSign inSign in to CrowdinSign outSigned in as:SingularSingular:Smart Copy/PasteSmart DashesSmart LinksSmart QuotesSort by &File OrderSort by &SourceSort by &TranslationSort by &file orderSort by &sourceSort by &translationSource code charset:Source code extractors are used to find translatable strings in the source code files and extract them so that they can be translated.Source code not available.Source fileSource file occurrence:Source textSource text — %sSource text:Sources KeywordsSources PathsSources keywordsSources pathsSpeechSpellchecking is disabled, because the dictionary for %s isn’t installed.Spelling and GrammarStart SpeakingStop SpeakingStored translations:String to findSubstitutionsSuggestionsSuggestions are not available if the translation language is not set correctly. Other features, such as plural forms, may be affected as well.Supports all programming languages recognized by GNU gettext tools (PHP, C/C++, C#, Perl, Python, Java, JavaScript and others).SyncSync with CrowdinSynchronize the translation with CrowdinSyncingSyncing errorSyncing with %s failed.Syncing with %s…Syncing with Crowdin failed.Syntax error in Plural-Forms header ("%s").TMTake an existing PO file or POT template and create a new translation from it.Take translatable strings from an existing POT template.Team name and email address or URLText ReplacementThe TM doesn’t contain any strings similar to the content of this file. It is only effective for semi-automatic translations after Poedit learns enough from files that you translated manually.The catalog couldn’t be saved in “%s” charset as specified in catalog settings. It was saved in UTF-8 instead and the setting was modified accordingly.The file cannot be compiled into the MO format and used.The file cannot be opened.The file contained duplicate items, which is not allowed in PO files and would prevent the file from being used. Poedit fixed the issue, but you should review translations of any items marked as needing work and correct them if necessary.The file may be either corrupted or in a format not recognized by Poedit.The file was compiled into the MO format, but it will probably not work correctly.The file was saved safely and compiled into the MO format, but it will probably not work correctly.The file was saved safely, but it cannot be compiled into the MO format and used.The file was saved safely.The old source text (before it changed during an update) that the now-inaccurate translation corresponds to.The simplest way to fill this catalog is to update it from a POT:The translation doesn’t start with a space.The translation ends with a newline, but the source text doesn’t.The translation ends with a space, but the source text doesn’t.The translation ends with “%s”, but the source text ends with “%s”.The translation is missing a newline at the end.The translation is missing a space at the end.The translation is ready for use, but %d entry is not translated yet.The translation is ready for use, but %d entries are not translated yet.The translation is ready for use.The translation should end with “%s”.The translation should not end with “%s”.The translation should start as a sentence.The translation should start with a lowercase character.The translation starts with a space, but the source text doesn’t.The translations were marked as needing work, because they may be inaccurate. You should review them for correctness.There are no translations. That’s unusual.There was a problem formatting the file nicely (but it was saved all right).There were errors when loading the catalog. Some data may be missing or corrupted as the result.These settings affect internal formatting of PO files. Adjust them if you have specific requirements e.g. because of version control.These strings are no longer in the sources. Poedit will remove them from the catalog now.These strings were found in the sources but were not in the catalog. Poedit will add them to the catalog now.This catalog has entries with plural forms, but doesn’t have Plural-Forms header configured.This file can only be edited in Crowdin’s web interface.This is the command used to launch the extractor. %o expands to the name of output file, %K to list of keywords, %F to list of input files, %C to charset flag (see below).This project has no files that can be translated in Poedit.This string was found in Poedit’s translation memory.This will be attached to the command line only if source code charset was given. %c expands to charset value.This will be attached to the command line once for each input file. %f expands to the filename.This will be attached to the command line once for each keyword. %k expands to the keyword.TotalTransformationsTranslatable entries aren’t added manually in the Gettext system, but are automatically extracted from source code. This way, they stay up to date and accurate. Translators typically use PO template files (POTs) prepared for them by the developer.Translated: %d of %d (%d %%)Translation LanguageTranslation MemoryTranslation Needs &WorkTranslation PropertiesTranslation needs &workTranslation propertiesTranslation suggestions:Translation — %sTranslation:Translations couldn’t be updated from the source code, because no code was found in the location specified in the catalog’s Properties.TwoUTF-8 (recommended)UndoUnhandled exception occurred: %sUnix (recommended)UntransUpUpdateUpdate allUpdate all catalogs in the projectUpdate catalog - synchronize it with sourcesUpdate from &POT File…Update from &POT file…Update from POTUpdate summaryUpdatesUpdating catalogUpdating failedUpdating the catalog failed. Click on 'Details >>' for details.Updating user information…Uploading translations…Use custom expressionUse custom list font:Use custom text fields font:Use default rules for this languageUse these keywords (function names) to recognize translatable strings in source files:Use translation memoryValidateValidation resultsVersion %sWaiting for authentication…Welcome to PoeditWhat is Crowdin?When updating from sourcesWhole words onlyWindowWindowsWrap aroundWrap at:YesYou can also extract translatable strings directly from the source code:You can’t drop more than one file on Poedit window.You must restart Poedit for this change to take effect.Your NameYour changes will be lost if you don’t save them.Your name and email address are only used to set the Last-Translator header of GNU gettext files.ZeroZoomaltctrldon’t delete temporary files (for debugging)e.g. nplurals=2; plural=(n > 1);fuzzy match within the filego to item at given line numberhandle a poedit:// URIpre-translate from TMshiftunknown languageyour_email@example.com“%s” is not a valid POT file.Project-Id-Version: poedit Report-Msgid-Bugs-To: help@poedit.net POT-Creation-Date: 2017-12-05 15:52+0100 PO-Revision-Date: 2017-12-05 09:50-0500 Last-Translator: vslavik Language-Team: Chinese Traditional Language: zh_TW MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=1; plural=0; X-Generator: crowdin.com X-Crowdin-Project: poedit X-Crowdin-Language: zh-TW X-Crowdin-File: /locales/poedit.pot (已修改) (未儲存)%d 項%d 項已先前置翻譯。%d 項錯誤譯文中發現 %d 個問題。共有 %i 列 (檔案「%s」中) 未正確載入。%s 格式%s 偏好設定%s 格式關於(&A)關於 Poedit(&A)套用(&A)返回(&B)書籤(&B)取消(&C)清除(&C)關閉(&C)複製(&C)刪除(&D)完成並移至下一項(&D)完成並移至下一項(&D)編輯(&E)檔案(&F)尋找(&F)…&GNU gettext 手冊&GNU gettext 手冊前往(&G)依情境分組(&)依情境分組(&G)說明(&H)新增(&N)新增(&N)…下一個(&N) >下一項翻譯(&N)下一項翻譯(&N)否(&N)確定(&O)線上說明(&O)線上說明(&O)開啟(&O)...開啟(&O)…貼上(&P)偏好設定(&P)偏好設定(&P)…前一項翻譯(&P)前一項翻譯(&P)屬性(&P)…淨空已刪除的譯文(&P)淨空已刪除的譯文(&P)離開(&Q)重做(&R)取代(&R)儲存(&S)另存為(&S)顯示參照(&S)顯示參照(&S)復原(&U)先顯示未翻譯項(&U)先顯示未翻譯項(&U)從來源更新(&U)從來源更新(&U)驗證譯文(&V)驗證譯文(&V)檢視(&V)是(&Y)(沒有新的,也沒有過時的)(深入瞭解 GNU gettext)(新增:%i,棄用:%i)(使用預設語言)(需要 Windows 8 或更高版本)< 上一個(&P)請將資料夾拖放到這裡 或是使用 + 鈕請將資料夾拖放到這裡 或是使用 + 鈕<未命名>關於 %s帳號加入註解加入檔案…加入資料夾…加入萬用字符…加入註解把目錄加入清單中加入檔案…加入資料夾…加入萬用字符…額外的關鍵字額外的 xgettext 旗標:進階進階抽取設定…進階抽取設定進階抽取設定…所有翻譯檔所有註解也為支援的語言使用預設關鍵字Alt+永遠將焦點放在文字輸入欄位中輸入檔清單中的一個項目:關鍵字清單中的一個項目:外觀套用您確定要刪除「%s」抽取器?您確定要重設翻譯記憶?自動檢查更新儲存時自動編譯 MO 檔返回基礎路徑:Beta 版本包含最新功能和改善,但可能有點不穩定。全部帶到最前方損毀的編目檔:雖使用複數形式的 msgstr 卻沒有 msgid_plural損毀的編目檔:將單數形式的 msgstr 與 msgid_plural 並用瀏覽預設情況下,也會同時填入不精確的項目,並將之標記為需要處理。勾選此選項以僅只納入精確符合的項目。專案(&A)清除(&L)取消無法建立暫存目錄。無法執行程式:%s轉為大寫專案專案已修改,您確定要儲存這些修改嗎?專案屬性專案管理員(&M)專案管理員(&M)編目檔管理員變更介面語言字元集:立刻檢查文件檢查文法與拼字打字同時檢查拼字檢查更新…檢查譯文中是否有錯誤檢查更新…檢查拼寫清除清除譯文清除註解清除譯文關閉與其他人協作翻譯與其他人協作翻譯正在收集來源檔...抽取翻譯用的指令:註解:註解前綴字為:編譯成 MO…編譯成…編譯的翻譯檔在 [屬性] 中設定原始碼抽出項目。確認複製從單數複製從來源文字複製從單數複製從來源文字複製自動校正拼字無法載入 %s 檔,可能已損毀。無法儲存 %s 檔。建立新翻譯建立新翻譯建立新的翻譯專案Crowdin 錯誤Crowdin 是線上在地化管理平臺暨翻譯協作工具。Poedit 可以無縫同步 Crowdin 上管理的 PO 檔。Ctrl+剪下(&T)自訂抽取器:自訂抽取器:剪下資料庫在磁碟上的大小:刪除刪除抽取器刪除本專案目錄:顯示項目 &ID顯示項目 &ID請問您是否真想要大規模更新 這個專案中的所有專案?請問您是否想刪除這個專案?請問您是否想要移除所有不再用到的譯文?不要儲存不要再顯示不要將完全符合的項目標記為需要處理不要儲存不要再顯示下鍵從 Crowdin 下載檔案,翻譯,再將更動同步回去。正在下載最新的翻譯⋯此專案已停用翻譯下載。離開(&X)匯出為 HTML(&X)…編輯編輯註解(&C)編輯註解(&C)編輯註解編輯翻譯編輯譯文編輯註解編輯專案編輯這個專案編輯編輯…電子郵件:Enter進入全螢幕專案裡的項目可能有不正確。此編目檔中條目的複數形式數目,與編目檔 Plural-Forms 檔頭的記錄不符錯誤項目優先錯誤項目優先出錯的項目在清單中以紅色標記。您可以點選該項目以顯示詳細的錯誤資訊。載入訊息編目檔「%s」時發生錯誤。開啟檔案發生錯誤開啟 %s 檔時發生錯誤!儲存編目檔時發生錯誤錯誤每一項排除的路徑匯出為…從來源更新抽取翻譯者備註:從下列目錄中擷取源檔內的文字正在抽出可翻譯的字串...抽取器設置抽取器指令執行失敗:%s無法與 Poedit 程序溝通。無法載入抽出的編目檔。無法合併 gettext 編目檔。無法更新翻譯記憶:%s檔案「%s」檔不存在。「%s」檔不是訊息編目檔。檔案「%s」因唯讀而無法儲存。 請以不同檔名儲存檔案。檔案:正在收尾…尋找往後尋找往前尋找尋找與取代…從註解中尋找尋找來源文字從譯文中尋找往後尋找往前尋找修正語言修正語言修正檔頭修正檔頭形式 %i常用GNU gettext一般前往書籤 %i前往書籤 %iHTML 檔案說明隱藏 %s隱藏其他隱藏側邊欄隱藏狀態列隱藏這項通知訊息ID如果您繼續淨空,所有標示為已刪除之譯文將永遠移除。如果未來這些訊息重新加回來,您就得重新再翻譯一遍。忽略字母大小寫正匯入譯文…包括 Beta 版譯者資訊安裝檔案無效喚起:保留語言代碼或名稱 (例:zh_TW)翻譯語言與來源語言相同。尚未設定譯文的語言。譯文的語言:語言選擇語言團隊:語言:上次修改於瞭解 Gettext 關鍵字從檔案中學習…深入瞭解深入瞭解 Crowdin學習 gettext 關鍵字瞭解複數型態從檔案中學習…深入瞭解深入瞭解 Crowdin左鍵第 %d 列 (檔案「%s」中) 已毀損 (不是有效的 %s 資料)。列結尾:副檔名清單,請用半形分號隔開 (例:*.cpp; *.h):無法在 Poedit 中直接編輯 MO 檔。轉為小寫轉為大寫格式不良的檔頭:「%s」正合併差異...最小化翻譯的目標專案名稱姓名:下一項未完成(&X)下一項未完成(&X)需要處理需要處理永遠不要讓字串清單取得焦點。如果您啟用這個選項,就得並用 Ctrl 鍵與方向鍵才能以鍵盤導覽,不過同時您能立即輸入文字,而不必先按 Tab 鍵變更輸入焦點。新增從 &POT/PO 檔新增…從 &POT/PO 檔新增…新增字串下個複數形式下個複數形式否找不到符合項目沒有項目可以先前置翻譯。找不到符合項目找不到譯文的問題。選取的項目沒有參照。您的 Crowdin 帳號中尚無翻譯專案。尚未譯完所有的複數形。尚未獲得授權,請重新登入。給譯者的備註:確定過時字串壹請您只有在信任翻譯記憶的品質時才啟用。預設情況下,所有翻譯記憶的符合項目都會標記為需要處理,並請在採用前先校閱。僅只填入完全相符項目開啟開啟 Crowdin 翻譯從 Crowdin 開啟…開啟最近檔案開啟現有的 PO 檔並編輯譯文。開啟編目檔開啟編目模板檔從 Crowdin 開啟…以編輯器開啟以編輯器開啟開啟...開啟…選項其他前一項未完成(&R)前一項未完成(&R)PO 翻譯PO 翻譯檔POT 翻譯模板POT 檔僅只是翻譯模板,檔案內並不包含任何翻譯。 若要翻譯,請根據該模板建立新的 PO 檔。貼上貼上並比對樣式路徑請改開啟並編輯對應的 PO 檔。當您儲存時,MO 檔會同時更新。請先儲存檔案。直到儲存之後,此區段才能編輯。複數這個專案所採用的複數形式表述式,對 %s 來說並不常見。複數形式:複數:PoeditPoedit - 專案管理員Poedit 已自動修正「%s」檔中的無效內容。Poedit 可以試圖根據檔案中之前的譯文填入新項目,或採用您的整個翻譯記憶填入新項目。若翻譯記憶的量很少則用起來效果不會很好,不過隨著您加入越多譯文效果也會逐漸改善。Poedit 是個易用的翻譯編輯器。前置翻譯(&T)…前置翻譯前置翻譯已前置翻譯 %u 項字串前置翻譯中…前置翻譯會從翻譯記憶中自動尋找完全相同、或相似的翻譯並填入未翻譯的項目中。偏好設定設定偏好...偏好設定…保留既有檔案的格式化處理方式上個複數形式上個複數形式過去的來源文字:專案名稱及版本:專案名稱:專案:淨空淨空已刪除的譯文退出退出 %s最近再次動作參照:重整剩餘:%d取代全部取代(&A)全部取代(&A)取代用字串取代…闕漏必要的 Plural-Forms 檔頭。重設重設翻譯記憶重設翻譯記憶將刪除所有儲存過的翻譯,且不可回復。您將無法還原這項操作。校閱右鍵儲存另存為(&A)…另存為(&A)…另存為另存為…儲存專案儲存變更選取全部(&A)選取全部選取目錄選取要匯入的翻譯檔選取您偏好的語言服務設定書籤 %i設定語言設定書籤 %i設定語言Shift+顯示全部顯示側邊欄顯示拼字與文法顯示狀態列顯示替換項目顯示或隱藏側邊欄。顯示側邊欄顯示狀態列更新專案後顯示摘要側邊欄登入登出登入登入 Crowdin登出登入身分:單數單數:智慧複製/貼上智慧破折號智慧連結智慧引號按照檔案順序排列(&F)按照來源排列(&S)按照譯文排列(&T)按照檔案順序排列(&F)按照來源排列(&S)按照譯文排列(&T)原始碼字集:原始碼抽取器用於尋找源瑪檔中的可譯字串,並將之抽取出來以便翻譯。原始碼無法使用。來源檔案來源檔案出現處:來源文字來源文字 — %s來源文字:來源關鍵字來源路徑來源關鍵字來源路徑朗讀由於尚未安裝 %s 字典,已停用拼寫檢查。拼字與文法開始朗讀停止朗讀儲存的翻譯:要尋找的字串替換項目建議如果未正確設定翻譯語言,則無法使用翻譯建議。其他功能,如複數型,也可能受到影響。支援所有 GNU gettext 工具能辨識的程式語言(PHP、C/C++、C#、Perl、Python、Java、JavaScript 與其他等)。同步與 Crowdin 同步同步 Crowdin 翻譯同步中同步發生錯誤和 %s 的同步失敗。正和 %s 同步…與 Crowdin 同步失敗。Plural-Forms 檔頭中有語法錯誤 ("%s")。翻譯記憶從既有的 PO 檔或 POT 模板檔建立新翻譯。從既有的 POT 模板檔拿取可翻譯字串。團隊名稱和電子郵件位址或 URL文字取代翻譯記憶尚未包含任何類似此檔案內容的字串。這僅在 Poedit 學習夠多您手動翻譯的檔案後,才會對半自動翻譯有效用。這個編目檔無法以編目檔設定中所指定的「%s」字集儲存。 它已改用 UTF-8 儲存,設定值也同時隨之修改。檔案無法編譯成 MO 格式並使用。無法開啟檔案。檔案包含重複項目,然而 PO 檔並不允許重複,進而使檔案無法使用。Poedit 已修正這個問題,但您應該校閱任何標記為需要處理的項目,如有需要也請校正其內容。檔案可能損毀,或是採用 Poedit 無法辨認的格式。檔案已編譯成 MO 格式,但可能無法正常運作。檔案已順利儲存,且成功編譯為 MO 格式,但仍可能無法正常運作。檔案已順利儲存,但是無法編譯成 MO 格式所以也無法真的使用。檔案已順利儲存。現在的不精確譯文對應的是(在用模板檔更新之前)舊的源文。填充此專案的最簡單方式就是從 POT 檔更新:譯文並非以空白字元起同。譯文以新列字元結尾,但源文並非如此。譯文以空白字元結尾,但源文並非如此。譯文雖以「%s」結尾,但源文卻以「%s」結尾。譯文缺失結尾處的新列字元。譯文結尾缺失空白字元。譯文已準備好可供使用,但還有 %d 項尚未翻譯。譯文已準備好可供使用。譯文應該以「%s」結尾。譯文不應該以「%s」結尾。譯文應該以句子起頭。譯文應該以小寫字元起頭。譯文以空白起頭,但源文並非如此。這些譯文被標記為需要處理,可能翻譯尚未明確。您應該校閱它們是否正確。沒有譯文。這並不尋常。試圖讓檔案的排版格式變得整齊時遭遇問題 (但仍舊順利儲存)。載入編目檔時發生錯誤。結果可能某些資料闕漏或損毀。這些設定會影響 PO 檔案的內部格式化處理方式。如果您有特定需求再調整它們,例如:需要行版本控制。這些字串已不在來源之中。 Poedit 現在會從專案中將之移除。在來源中發現這些字串,但專案中卻沒有。 Poedit 現在會將它們加入專案中。這個編目檔內含有複數形式之條目,但卻尚未設定 Plural-Forms 檔頭。這份檔案僅能在 Crowdin 的網頁介面中編輯。這是用來啟動抽取器的指令。 %o 會展開成輸出檔的名稱,%K 是 關鍵字清單,%F 是輸入檔清單, %C 是字集旗標 (參閱下方)。這個專案沒有可在 Poedit 中翻譯的檔案。此字串已在 Poedit 的翻譯記憶中找到。只有在給定原始碼字集時,這個內容 才會附到命令列中。%c 會展開成字集的值。這個內容會按照每個輸入檔逐次 附到命令列中。%f 會展開成檔名。這個內容會按照每個關鍵字逐次 附到命令列中。%k 會展開成關鍵字。總計轉換可翻譯條目並非以手動方式加入 Gettext 系統中,而是自動從源碼 中抽出。如此一來,條目不只能維持在最新狀態,還能保持精確。 譯者通常使用開發者提供的 PO 模板檔 (POT)。已譯:%d / %d (%d %%)譯文語言翻譯記憶翻譯需要處理(&W)譯文屬性翻譯需要處理(&W)譯文屬性譯文建議:譯文 — %s譯文:由於在專案的屬性中所指定的位置找不到程式代碼,所以無法從原始碼更新翻譯。貳UTF-8 (建議採用)取消動作遭遇未處理的例外:%sUnix (建議採用)未譯上鍵更新更新全部更新專案中的所有專案更新專案 - 與來源同步從 &POT 檔更新…從 &POT 檔更新…從 POT 檔更新更新摘要更新更新編目檔中更新失敗專案更新失敗。請按下 [Details >>] 查看詳細資訊。正在更新使用者資訊⋯正在上傳翻譯⋯使用自訂表述式使用自訂清單字型:使用自訂文字欄位自型:使用此語言的預設規則在來源檔案中使用這些關鍵字 (函式名稱) 來 識別可翻譯字串:使用翻譯記憶驗證驗證結果版本 %s正在等候身分核對⋯歡迎使用 Poedit什麼是 Crowdin?從來源更新時只針對整個單詞視窗Windows前後循環換行位置:是您也可以直接從原始碼抽出可翻譯字串:您不能拖曳超過一個檔案進 Poedit 視窗裡。您得要重新啟動 Poedit 這項更動才會生效。您的姓名如果不儲存,會失去您所做過的變更。您的姓名與電子郵件位址僅用於設定 GNU gettext 檔的 Last-Translator 標頭部份。零調整遠近altctrl不要刪除暫存檔 (供除錯用)例:nplurals=2; plural=(n > 1);在檔案內部模糊比對前往指定列號的項目處理 poedit:// URI用翻譯記憶作為前置翻譯shift未知語言your_email@example.com「%s」不是有效的 POT 檔。poedit-2.0.6/locales/it.mo0000664000372000037200000014264113230132076012324 00000000000000P%1 1 11<11J 2gW2 22 22 222 3333%3+333B3Q3W3]3f3z333333333333 3 44 4)4 04=4M4c4y44444444445 5(5D5Y5n55555555 6 '6:36:n6 666 6 666 6 7 #707?7O7c7~77777 71898'>8f88 8878689)=9g9 l9]w99A9I*:t:{:; ;;";:; U;`;.h;;;;;;;;<*<F<#[<<<<<<<<(<(=7= R=s=|== ==/= = >>#>9>L>b>2>>>>> ?)???????@@@ 2@?@R@Ee@"@?@ AA*.A YAfAyAK~A"A5A#B)BHAH HHI 'IHI PI ]IiI"nI;I(IIJ&J 5J ?JMJjJ ~JJJJJ JJK:K PK<^K.KKKKLL*%LPLVLgL xL LLJMNMgM MMMMM#MM'M$N7DN$|N%NNNNNNOOOO O2O P#P9PNP]PlPtP|PPPPPPPPQQQnQERZR>aR RRRR@RS-T)љB>UXjn,BGb u3 ěݛ"*0G ^l'&NdWN Qet}I: , 90Fw AL \,jɡ 'G LW _ mz âۢ- @ ͣףޣ  *=N^+tƤܤ)"?b|%ӥ6$ 3 ?KR c o | ʦܦ  8M)d 6 WeϨTm  ̩ ٩ &2%Jp%«%ݫ@DOG;*Ӭܭ9O Z\_S'kyQ (_A?ʲF .Q,"O*r./̴;>8mw)]mVkfLRC۹8XffO̻$/T$pǽ ٽ-ھ '0=n ȿ#ֿR=h*05(Rn{ *6QeyJ:<:w +wb gsw.|$ . 9NUhD}],6 9BW6tC3H>C'# )h?*Kq#-0^aG2zFYblx&2LADZ.EwPi=Ab[kv @4uh~ uL@|pnf.nTN? QI2:qOKcajd F!p ]U>T+rXi=J%Vxz51^s4 NH/F"8/XJ`om #UwQk :Gs$ 8jL!~I1,(<D-9B>|;$H(E?g<y!dYgIo \ <eN+rM5&cM5 :"K-A+EmZ7C"603B $%RfRVeyOG*S@ M,4}_{O%W91J)S[`' 7)v &;*{(l_.03=\7P8/t';P (modified) (unsaved)%d entry%d entries%d entry was pre-translated.%d entries were pre-translated.%d error%d errors%d issue with the translation found.%d issues with the translation found.%i line of file “%s” was not loaded correctly.%i lines of file “%s” were not loaded correctly.%s Format%s Preferences%s format&About&About Poedit&Apply&Back&Bookmarks&Cancel&Clear&Close&Copy&Delete&Done and Next&Done and next&Edit&File&Find…&GNU gettext Manual&GNU gettext manual&Go&Group By Context&Group by context&Help&New&New…&Next >&Next Translation&Next translation&No&OK&Online Help&Online help&Open...&Open…&Paste&Preferences&Preferences…&Previous Translation&Previous translation&Properties…&Purge Deleted Translations&Purge deleted translations&Quit&Redo&Replace&Save&Save as&Show References&Show references&Undo&Untranslated Entries First&Untranslated entries first&Update from Sources&Update from sources&Validate Translations&Validate translations&View&Yes(0 new, 0 obsolete)(Learn more about GNU gettext)(New: %i, obsolete: %i)(Use default language)(requires Windows 8 or newer)< &PreviousDrag and Drop Folders Here or use the + buttonDrag and drop folders here or use the + buttonAbout %sAccountsAdd CommentAdd Files…Add Folders…Add Wildcard…Add commentAdd directory to the listAdd files…Add folders…Add wildcard…Additional keywordsAdditional xgettext flags:AdvancedAdvanced Extraction Settings…Advanced extraction settingsAdvanced extraction settings…All Translation FilesAll commentsAlso use default keywords for supported languagesAlt+Always change focus to text input fieldAn item in input files list:An item in keywords list:AppearanceApplyAre you sure you want to delete the “%s” extractor?Are you sure you want to reset the translation memory?Automatically check for updatesAutomatically compile MO file when savingBackBase path:Beta versions contain the latest new features and improvements, but may be a bit less stable.Bring All to FrontBroken catalog file: plural form msgstr used without msgid_pluralBroken catalog file: singular form msgstr used together with msgid_pluralBrowseBy default, inaccurate results are filled in as well and marked as needing work. Check this option to only include accurate matches.C&atalogC&learCancelCannot create temporary directory.Cannot execute program: %sCapitalizeCatalogCatalog modified. Do you want to save changes?Catalog propertiesCatalogs &ManagerCatalogs &managerCatalogs ManagerChange UI languageCharset:Check Document NowCheck Grammar With SpellingCheck Spelling While TypingCheck for Updates…Check for errors in the translationCheck for updates…Check spellingClearClear TranslationClear the commentClear translationCloseCollaborate on a Translation with OthersCollaborate on a translation with othersCollecting source files…Command to extract translations:Comment:Comments prefixed with:Compile to MO…Compile to…Compiled Translation FilesConfigure source code extraction in Properties.ConfirmationCopyCopy From SingularCopy from Source TextCopy from singularCopy from source textCorrect Spelling AutomaticallyCouldn’t load file %s, it is probably corrupted.Couldn’t save file %s.Create New TranslationCreate new translationCreate new translations projectCrowdin errorCrowdin is an online localization management platform and collaborative translation tool. Poedit can seamlessly sync PO files managed at Crowdin.Ctrl+Cu&tCustom Extractors:Custom extractors:CutDatabase size on disk:DeleteDelete extractorDelete the projectDirectories:Display Entry &IDsDisplay entry &IDsDo you really want to do mass update of all catalogs in this project?Do you want to delete the project?Do you want to remove all translations that are no longer used?Don’t SaveDon’t Show AgainDon’t mark exact matches as needing workDon’t saveDon’t show againDownDownload a file from Crowdin project, translate and sync your changes back.Downloading latest translations…Downloading translations is disabled in this project.E&xitE&xport as HTML…EditEdit &CommentEdit &commentEdit CommentEdit a TranslationEdit a translationEdit commentEdit projectEdit the projectEditingEdit…Email:EnterEnter Full ScreenEntries in the catalog are probably incorrect.Entries in this catalog have different plural forms count from what catalog’s Plural-Forms header saysEntries with Errors FirstEntries with errors firstEntries with errors were marked in red in the list. Details of the error will be shown when you select such an entry.Error loading message catalog file “%s”.Error opening fileError opening file %s!Error saving catalogErrorsEverythingExcluded pathsExport as…Extract from sourcesExtract notes for translators from:Extract text from source files in the following directories:Extracting translatable strings…Extractor setupExtractorsFailed command: %sFailed to communicate with Poedit process.Failed to load extracted catalog.Failed to merge gettext catalogs.Failed to update translation memory: %sFileFile “%s” doesn’t exist.File “%s” is not a message catalog.File “%s” is read-only and cannot be saved. Please save it under different name.File:Finalizing…FindFind NextFind PreviousFind and Replace…Find in commentsFind in source textsFind in translationsFind nextFind previousFix LanguageFix languageFix the HeaderFix the headerForm %iFrequentGNU gettextGeneralGo to Bookmark %iGo to bookmark %iHTML FilesHelpHide %sHide OthersHide SidebarHide Status BarHide this notification messageIDIf you continue with purging, all translations marked as deleted will be permanently removed. You will have to translate them again if they are added back in the future.Ignore caseImporting translations…Include beta versionsInformation about the translatorInstallInvalid fileInvocation:KeepLanguage Code or Name (e.g. en_GB)Language of the translation is the same as source language.Language of the translation isn’t set.Language of the translation:Language selectionLanguage team:Language:Last modifiedLearn About Gettext KeywordsLearn From Files…Learn MoreLearn More About CrowdinLearn about gettext keywordsLearn about plural formsLearn from files…Learn moreLearn more about CrowdinLeftLine %d of file “%s” is corrupted (not valid %s data).Line endings:List of extensions separated by semicolons (e.g. *.cpp;*.h):MO files can’t be directly edited in Poedit.Make Lower CaseMake Upper CaseMalformed header: “%s”Merging differences…MinimizeName of the project the translation is forName:Ne&xt UnfinishedNe&xt unfinishedNeeds WorkNeeds workNever let the list of strings take focus. If enabled, you must use Ctrl-arrows for keyboard navigation but you can also type text immediately, without having to press Tab to change focus.NewNew From &POT/PO File…New from &POT/PO file…New stringsNext Plural FormNext plural formNoNo Matches FoundNo entries could be pre-translated.No matches foundNo problems with the translation found.No references for the selected item.No translation projects listed in your Crowdin account.Not all plural forms are translated.Not authorized, please sign in again.Notes for translators:OKObsolete stringsOneOnly enable if you trust the quality of your TM. By default, all matches from the TM are marked as needing work and should be reviewed before use.Only fill in exact matchesOpenOpen Crowdin translationOpen From Crowdin…Open RecentOpen an existing PO file and edit the translation.Open catalogOpen catalog templateOpen from Crowdin…Open in EditorOpen in editorOpen...Open…OptionsOtherP&revious UnfinishedP&revious unfinishedPO TranslationPO Translation FilesPOT Translation TemplatesPOT files are only templates and don’t contain any translations themselves. To make a translation, create a new PO file based on the template.PastePaste and Match StylePathsPlease open and edit the corresponding PO file instead. When you save it, the MO file will be updated as well.Please save the file first. This section cannot be edited until then.PluralPlural forms expression used by the catalog is unusual for %s.Plural forms:Plural:PoeditPoedit - Catalogs managerPoedit automatically fixed invalid content in the file “%s”.Poedit can attempt to fill in new entries from only previous translations in the file or from your entire translation memory. Using the TM won’t be very effective if it’s near-empty, but it will get better as you add more translations to it.Poedit is an easy to use translations editor.Pre-&translate…Pre-translatePre-translatedPre-translated %u stringPre-translated %u stringsPre-translating…Pre-translation automatically finds exact or fuzzy matches for untranslated strings in the translation memory and fills in their translations.PreferencesPreferences...Preferences…Preserve formatting of existing filesPrevious Plural FormPrevious plural formPrevious source text:Project name and version:Project name:Project:PurgePurge deleted translationsQuitQuit %sRecentRedoReferences:RefreshRemaining: %dReplaceReplace &AllReplace &allReplacement stringReplace…Required header Plural-Forms is missing.ResetReset translation memoryResetting the translation memory will irrevocably delete all stored translations from it. You can’t undo this operation.ReviewRightSaveSave &As…Save &as…Save asSave as…Save catalogSave changesSelect &AllSelect AllSelect directorySelect translation files to importSelect your preferred languageServicesSet Bookmark %iSet LanguageSet bookmark %iSet languageShift+Show AllShow SidebarShow Spelling and GrammarShow Status BarShow SubstitutionsShow or hide the sidebarShow sidebarShow status barShow summary after catalog updateSidebarSign InSign OutSign inSign in to CrowdinSign outSigned in as:SingularSingular:Smart Copy/PasteSmart DashesSmart LinksSmart QuotesSort by &File OrderSort by &SourceSort by &TranslationSort by &file orderSort by &sourceSort by &translationSource code charset:Source code extractors are used to find translatable strings in the source code files and extract them so that they can be translated.Source code not available.Source fileSource file occurrence:Source textSource text — %sSource text:Sources KeywordsSources PathsSources keywordsSources pathsSpeechSpellchecking is disabled, because the dictionary for %s isn’t installed.Spelling and GrammarStart SpeakingStop SpeakingStored translations:String to findSubstitutionsSuggestionsSuggestions are not available if the translation language is not set correctly. Other features, such as plural forms, may be affected as well.Supports all programming languages recognized by GNU gettext tools (PHP, C/C++, C#, Perl, Python, Java, JavaScript and others).SyncSync with CrowdinSynchronize the translation with CrowdinSyncingSyncing errorSyncing with %s failed.Syncing with %s…Syncing with Crowdin failed.Syntax error in Plural-Forms header ("%s").TMTake an existing PO file or POT template and create a new translation from it.Take translatable strings from an existing POT template.Team name and email address or URLText ReplacementThe TM doesn’t contain any strings similar to the content of this file. It is only effective for semi-automatic translations after Poedit learns enough from files that you translated manually.The catalog couldn’t be saved in “%s” charset as specified in catalog settings. It was saved in UTF-8 instead and the setting was modified accordingly.The file cannot be compiled into the MO format and used.The file cannot be opened.The file contained duplicate items, which is not allowed in PO files and would prevent the file from being used. Poedit fixed the issue, but you should review translations of any items marked as needing work and correct them if necessary.The file may be either corrupted or in a format not recognized by Poedit.The file was compiled into the MO format, but it will probably not work correctly.The file was saved safely and compiled into the MO format, but it will probably not work correctly.The file was saved safely, but it cannot be compiled into the MO format and used.The file was saved safely.The old source text (before it changed during an update) that the now-inaccurate translation corresponds to.The simplest way to fill this catalog is to update it from a POT:The translation doesn’t start with a space.The translation ends with a newline, but the source text doesn’t.The translation ends with a space, but the source text doesn’t.The translation ends with “%s”, but the source text ends with “%s”.The translation is missing a newline at the end.The translation is missing a space at the end.The translation is ready for use, but %d entry is not translated yet.The translation is ready for use, but %d entries are not translated yet.The translation is ready for use.The translation should end with “%s”.The translation should not end with “%s”.The translation should start as a sentence.The translation should start with a lowercase character.The translation starts with a space, but the source text doesn’t.The translations were marked as needing work, because they may be inaccurate. You should review them for correctness.There are no translations. That’s unusual.There was a problem formatting the file nicely (but it was saved all right).There were errors when loading the catalog. Some data may be missing or corrupted as the result.These settings affect internal formatting of PO files. Adjust them if you have specific requirements e.g. because of version control.These strings are no longer in the sources. Poedit will remove them from the catalog now.These strings were found in the sources but were not in the catalog. Poedit will add them to the catalog now.This catalog has entries with plural forms, but doesn’t have Plural-Forms header configured.This file can only be edited in Crowdin’s web interface.This is the command used to launch the extractor. %o expands to the name of output file, %K to list of keywords, %F to list of input files, %C to charset flag (see below).This project has no files that can be translated in Poedit.This string was found in Poedit’s translation memory.This will be attached to the command line only if source code charset was given. %c expands to charset value.This will be attached to the command line once for each input file. %f expands to the filename.This will be attached to the command line once for each keyword. %k expands to the keyword.TotalTransformationsTranslatable entries aren’t added manually in the Gettext system, but are automatically extracted from source code. This way, they stay up to date and accurate. Translators typically use PO template files (POTs) prepared for them by the developer.Translated: %d of %d (%d %%)Translation LanguageTranslation MemoryTranslation Needs &WorkTranslation PropertiesTranslation needs &workTranslation propertiesTranslation suggestions:Translation — %sTranslation:Translations couldn’t be updated from the source code, because no code was found in the location specified in the catalog’s Properties.TwoUTF-8 (recommended)UndoUnhandled exception occurred: %sUnix (recommended)UntransUpUpdateUpdate allUpdate all catalogs in the projectUpdate catalog - synchronize it with sourcesUpdate from &POT File…Update from &POT file…Update from POTUpdate summaryUpdatesUpdating catalogUpdating failedUpdating the catalog failed. Click on 'Details >>' for details.Updating user information…Uploading translations…Use custom expressionUse custom list font:Use custom text fields font:Use default rules for this languageUse these keywords (function names) to recognize translatable strings in source files:Use translation memoryValidateValidation resultsVersion %sWaiting for authentication…Welcome to PoeditWhat is Crowdin?When updating from sourcesWhole words onlyWindowWindowsWrap aroundWrap at:YesYou can also extract translatable strings directly from the source code:You can’t drop more than one file on Poedit window.You must restart Poedit for this change to take effect.Your NameYour changes will be lost if you don’t save them.Your name and email address are only used to set the Last-Translator header of GNU gettext files.ZeroZoomaltctrldon’t delete temporary files (for debugging)e.g. nplurals=2; plural=(n > 1);fuzzy match within the filego to item at given line numberhandle a poedit:// URIpre-translate from TMshiftunknown languageyour_email@example.com“%s” is not a valid POT file.Project-Id-Version: poedit Report-Msgid-Bugs-To: help@poedit.net POT-Creation-Date: 2017-12-05 15:52+0100 PO-Revision-Date: 2017-12-05 09:49-0500 Last-Translator: vslavik Language-Team: Italian Language: it_IT MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=(n != 1); X-Generator: crowdin.com X-Crowdin-Project: poedit X-Crowdin-Language: it X-Crowdin-File: /locales/poedit.pot (modificato) (non salvato)%d voce%d voci%d elemento è stato pre-tradotto.%d elementi sono stati pre-tradotti.%d errore%d erroriÈ stato trovato %d problema nella traduzione.Sono stati trovati %d problemi nella traduzione.La linea %i del file “%s” non è stata caricata correttamente.%i linee del file “%s” non sono state caricate correttamente.Formato %s%s Preferenzeformato %sInform&azioniInform&azioni su Poedit&Applica&IndietroSegnali&bri&Annulla&Pulisci&Chiudi&Copia&Elimina&Applica e prosegui&Applica e prosegui&Modifica&FileTrova…Documentazione &GNU gettextDocumentazione &GNU gettext&Vai&Raggruppa per contesto&Raggruppa per contesto&Aiuto&Nuovo&Nuovo…Ava&nti >Traduzione &successivaTraduzione &successiva&No&OK&Guida in linea&Guida in linea&Apri...&Apri…&Incolla&Preferenze&Preferenze…Traduzione &precedenteTraduzione &precedente&Proprietà…&Rimuovi traduzioni eliminate&Rimuovi traduzioni eliminate&Esci&Ripeti&Sostituisci&Salva&Salva comeMo&stra riferimenti&Visualizza i riferimenti&Annulla&Prima voci non tradotte&Prima le voci non tradotte&Aggiorna dai sorgenti&Aggiorna dai sorgentiVerifica traduzioni&Verifica traduzioni&Visualizza&Sì(0 nuove, 0 obsolete)(Altre informazioni su GNU gettext)(nuovi: %i obsoleti: %i)(Utilizza la lingua predefinita)(richiede Windows 8 o successivo)< &IndietroTrascina qui le cartelle o usa il pulsante +Trascina qui le cartelle o usa il pulsante +Informazioni su %sAccountAggiungi commentoAggiungi file…Aggiungi cartelle…Aggiungi carattere jolly…Aggiungi commentoAggiungi cartella all'elencoAggiungi file…Aggiungi cartelle…Aggiungi carattere jolly…Parole chiave aggiuntiveAttributi xgettext aggiuntivi:AvanzateImpostazioni di estrazione avanzate…Impostazioni di estrazione avanzateImpostazioni di estrazione avanzate…Tutti i file di traduzioneTutti i commentiUsa anche parole chiave predefinite per le lingue supportateAlt+Posiziona sempre il cursore nel campo di immissione del testoOggetto nell'elenco dei file di input:Oggetto nell'elenco delle parole chiave:AspettoApplicaSei sicuro di voler eliminare l'estrattore "%s"?Sei sicuro di voler azzerare la memoria di traduzione?Controlla automaticamente gli aggiornamentiCompila automaticamente il file MO durante il salvataggioIndietroPercorso di base:Le versioni beta contengono le ultime novità e miglioramenti, ma possono essere un po' meno stabili.Mostra tutto in primo pianoFile di catalogo con errori: forma plurale di msgstr usata senza msgid_pluralFile di catalogo con errori: forma singolare di msgstr usata con msgid_pluralSfogliaIn modo predefinito le traduzioni non accurate sono tradotte e segnate come da verificare. Spunta questa opzione per includere solo le traduzioni con corrispondenza esatta.C&atalogoCance&llaAnnullaImpossibile creare la cartella temporanea.Impossibile eseguire il programma: %sRendi maiuscoloCatalogoCatalogo modificato. Vuoi salvare le modifiche?Proprietà del catalogo&Gestore cataloghi&Gestore dei cataloghiGestore dei cataloghiCambia la lingua dell'interfacciaSet di caratteri:Verifica ora il documentoVerifica grammatica ed ortografiaControllo ortografico durante la digitazioneControlla gli aggiornamenti…Controlla gli errori nella traduzioneVerifica aggiornamenti…Controllo ortograficoPulisciCancella traduzioneCancella il commentoCancella la traduzioneChiudiCollabora ad una traduzione con altriCollabora a una traduzione con altriRaccolta dei files sorgenti…Comando per estrarre le traduzioni:Commento:Commenti preceduti da:Compila in MO…Compila in…File di traduzione compilatiConfigura estrazione codice sorgente in Proprietà.ConfermaCopiaCopia dal singolareCopia dal testo sorgenteCopia dal singolareCopia dal testo sorgenteCorreggi automaticamente l'ortografiaImpossibile caricare il file %s, potrebbe essere danneggiato.Impossibile salvare il file %s.Crea una nuova traduzioneCrea una nuova traduzioneCrea nuovo progetto di traduzioneErrore di CrowdinCrowdin è un sistema online di gestione traduzioni di tipo collaborativo. Poedit può sincronizzare i file PO gestiti da Crowdin.Ctrl+&TagliaEstrattori personalizzati:Estrattori personalizzati:TagliaDimensione database sul disco:EliminaElimina estrattoreElimina il progettoCartelle:Visualizza ID elementoVisualizza &ID elementoEseguire un aggiornamento di massa di tutti i cataloghi del progetto?Vuoi eliminare il progetto?Vuoi rimuovere dalla memoria di traduzione tutte le traduzioni non più utilizzate?Non salvareNon mostrare piùNon segnare le corrispondenze esatte come 'Da verificare'Non salvareNon mostrare piùGiùScarica un file da un progetto Crowdin, traducilo e sincronizzalo con le tue modifiche. Gli altri traduttori vedranno sul loro programma le tue modifiche in un attimo, facendo clic su sincronizza e senza rischiare di lavorare sulle stesse parti di altri.È in corso il download dell'ultima versione della traduzione...In questo progetto il download della traduzione è diabilitato.E&sciE&sporta come HTML…ModificaModifica &commentoModifica il &commentoModifica commentoModifica una traduzioneModifica una traduzioneModifica il commentoModifica progettoModifica il progettoModificaModifica…Email:InvioModalità a schermo interoLe voci nel catalogo sono probabilmente non corrette.Le voci in questo catalogo hanno un numero di forme plurali diverso da quello previsto dall'intestazione Plural-FormsPrima le voci con erroriPrima le voci con erroriLe voci con errori sono state marcate in rosso nell'elenco. I dettagli dell'errore saranno visualizzati quando selezionerai una determinata voce.Errore di caricamento del file di catalogo dei messaggi "%s".Errore durante l'apertura del fileErrore durante l'apertura del file %s!Errore durante il salvataggio del catalogoErroriQualsiasiPercorsi esclusiEsporta come…Estrai dai sorgentiEstrai le note per i traduttori da:Estrai testo dai file sorgenti nelle seguenti cartelle:Estrazione delle stringhe traducibili…Installazione di estrattoreEstrattoriComando non riuscito: %sErrore di comunicazione con il processo di Poedit.Impossibile caricare il catalogo estratto.Impossibile unire i cataloghi gettext.Impossibile aggiornare la memoria di traduzione: %sFileIl file "%s" non esiste.Il file "%s" non è un catalogo di messaggi.Il file "%s" è in sola lettura e non può essere salvato. Salvalo con un nome diverso.File:Finalizzazione in corso…TrovaTrova successivoTrova precedenteTrova e sostituisci…Trova nei commentiTrova nel testo sorgenteTrova nella traduzioneTrova successivoTrova precedenteCorreggi la linguaCorreggi la linguaCorreggi l'intestazioneCorreggi l'intestazioneModulo %iFrequentiGNU gettextGeneraleVai al segnalibro %iVai al segnalibro %iFIle HTMLAiutoNascondi %sNascondi altriNascondi barra lateraleNascondi barra di statoNascondi questo messaggio di notificaIDSe si continua nella pulizia, tutte le traduzioni segnate come eliminate verranno rimosse definitivamente. Se esse verranno nuovamente aggiunte in futuro sarà necessario tradurle nuovamente.Non distinguere maiuscole e minuscoleImportazione traduzioni in corso…Includi versioni betaInformazioni sul traduttoreInstallaFile non validoInvocazione:MantieniCodice o nome della lingua (es. it_IT)La lingua della traduzione è la stessa della lingua sorgente. Cosa stai cercando di fare?Non è stata impostata la lingua di destinazione della traduzione.Lingua della traduzione:Selezione della linguaSquadra di traduzione:Lingua:Ultima modificaMaggiori info sulle parole chiave GettextImpara dai file…Ulteriori informazioniAltre info su CrowdinInfo sulle parole chiave gettextInformazioni sulle forme pluraliImpara dai file…Per saperne di piùAltre info su CrowdinSinistraLa riga %d del file "%s" è danneggiata (dati %s non validi).Terminazioni di riga:Elenco di estensioni separate da punto e virgola (ad es. *.cpp;*.h):I file MO non possono essere modificati direttamente con Poedit.Trasforma in minuscoloTrasforma in maiuscoloIntestazione non valida: "%s"Unione delle differenze…Riduci a iconaNome del progetto per la traduzioneNome:Incompiuta &successivaIncompiuta &successivaNecessita verificaRichiede verificaNon permettere mai che nella lista delle stringhe si posizioni automaticamente il cursore. Se abilitato, è necessario usare Ctrl-frecce direzionali per la navigazione con la tastiera, ma è anche possibile scrivere il testo immediatamente, senza dover premere Tab per posizionare il cursore.NuovoNuovo da file &POT/PO…Nuovo da file &POT/PO…Nuove stringheForma plurale successivaForma plurale successivaNoNessuna corrispondenza trovataNessun elemento è stato pre-tradotto.Nessuna corrispondenza trovataNessun problema trovato nella traduzione.Non ci sono riferimenti per l'elemento selezionato.Non c'è alcun progetto di traduzione nel tuo account Crowdin.Non tutte le forme plurali sono tradotte.Non autorizzato. È necessario autenticarsi per procedere, grazie.Note per i traduttori:OKStringhe obsoleteUnoAbilitala solo se ti fidi della qualità della MT. In modo predefinito tutte le corrispondenze dalla MT sono segnate come 'Da verificare' e devono essere controllate.Riempi solo quelle con corrispondenza esattaApriApri traduzione su CrowdinApri da Crowdin…Apri recenteApri un file PO esistente e modifica la traduzione.Apri catalogoApri modello di catalogoApri da Crowdin…Apri nell'editorApri nell'editorApri...Apri…OpzioniAltroIncompiuta p&recedenteIncompiuta p&recedenteTraduzione POFile di traduzione POTemplate di traduzione POTI file POT sono solo modelli e non contengono traduzioni. Per fare una traduzione, crea un nuovo file PO utilizzando un modello.IncollaIncolla e verifica corrispondenze stilePercorsiApri e modifica il file PO corrispondente. Durante il salvataggio sarà aggiornato anche il file MO.Salva prima il file. Questa sezione non può essere modificata fino ad allora.PluraleI plurali contenuti nel catalogo sono inusuali in %s: controlla se sono corretti.Forme plurali:Plurale:PoeditPoedit - Gestore cataloghiPoedit correggerà automaticamente il contenuto non valido nel file "%s".Poedit può tentare di riempire in nuove voci da sole traduzioni precedenti nel file o dalla tua memoria di traduzione. Utilizzare solo la MT potrebbe non essere molto efficace, se è quasi vuota, ma sarà meglio se si aggiungono altre traduzioni.Poedit è un editor per traduzioni semplice da utilizzare.Pre-&traduci…Pre-tradurrePre-tradotte%u stringa pre-tradotta%u stringhe pre-tradottePre-traduzione in corso…La Pre-traduzione trova automaticamente nella memoria di traduzione le corrispondenze esatte o da verificare per le stringhe non tradotte e le riempie con le loro traduzioni.PreferenzeImpostazioni...Preferenze…Preserva la formattazione dei file esistentiForma plurale precedenteForma plurale precedenteTesto sorgente precedente:Nome e versione del progetto:Nome del progetto:Progetto:RimuoviRimuovi le traduzioni eliminateEsciEsci da %sRecentiRipeti azioneRiferimenti:AggiornaRimanenti: %dSostituisciSostituisci t&uttoSostituisci t&uttoStringa di sostituzioneSostituisci…Manca l'intestazione richiesta per i plurali.ResettaAzzera la memoria di traduzioneL'azzeramento della memoria eliminerà in modo irrimediabile tutte le traduzioni. Non puoi annullare questa operazione dopo averla eseguita.RevisionaDestraSalvaS&alva come…S&alva come…Salva comeSalva come…Salva catalogoSalva le modificheSeleziona &tuttoSeleziona tuttoSeleziona la cartellaSeleziona i file di traduzione da importareSeleziona la lingua preferitaServiziImposta segnalibro %iImposta linguaImposta segnalibro %iImposta linguaMaiusc+Visualizza tuttoMostra barra lateraleVisualizza ortografia e grammaticaVisualizza barra di statoMostra le sostituzioniVisualizza/nascondi la barra lateraleVisualizza barra lateraleVisualizza barra di statoVisualizza riepilogo dopo l'aggiornamento del catalogoBarra lateraleAutenticatiDisconnettiAccediAccedi a CrowdinDisconnettiAccedi come:SingolareSingolare:Copia/incolla rapidoTrattini velociCollegamenti rapidiVirgolette velociOrdina per ordine &fileOrdina per &sorgenteOrdina per &traduzioneOrdina per ordine &fileOrdina per &sorgenteOrdina per &traduzioneInsieme di caratteri del codice sorgente:Gli estrattori di codice sorgente vengono utilizzati per trovare stringhe traducibili nei file di codice sorgente ed estrarli in modo che essi possano essere tradotti.Codice sorgente non disponibile.File sorgenteOccorrenze nel file sorgente:Testo sorgenteTesto sorgente — %sTesto sorgente:Parole chiave sorgentiPercorsi dei sorgentiChiavi ricerca sorgentePercorsi sorgenteDiscorsoIl controllo ortografico è disabilitato poiché il dizionario %s non è installato.Ortografia e grammaticaAvvia parlatoFerma parlatoTraduzioni memorizzate:Stringa da trovareSostituzioniSuggerimentiI suggerimenti non sono disponibili se la lingua di traduzione non è impostata correttamente. Anche altre caratteristiche, come i plurali, possono presentare dei problemi.Supporta tutti i linguaggi di programmazione riconosciuti dagli strumenti di GNU gettext (PHP, C/C++, C#, Perl, Python, Java, JavaScript e altri).SincronizzaSincronizza con CrowdinSincronizza la traduzione con CrowdinSincronizzazioneErrore di sincronizzazioneSincronizzazione con %s non riuscita.Sincronizzazione con %s…Sincronizzazione con Crowdin fallita.Errore di sintassi nell'intestazione delle forme plurali ("%s").MTApri un file PO o un modello POT e crea una nuova traduzione a partire da esso.Estrai le stringhe da tradurre da un modello POT esistente.Nome e indirizzo email della squadra o URLSostituzione testoLA MT non contiene nessuna stringa simile al contenuto di questo file. la MT diventa usabile per traduzioni semi-automatiche solo dopo che Poedit impara abbastanza dai file che hai tradotto manualmente.Il catalogo non può essere salvato con il set di caratteri "%s" come specificato nelle impostazioni di catalogo. Invece è stato salvato in formato UTF-8 e l'impostazione è stata modificata di conseguenza.Il file non può essere compilato nel formato MO e usato.Il file non può essere aperto.Il file contiene elementi duplicati, che non sono permessi nei file PO e devono essere rimossi per prevenirne l'uso. Poedit correggerà questo problema, ma dovrai rivedere le traduzioni di ogni elemento segnato come "Da verificare" e correggerle se necessario.Il file potrebbe essere danneggiato o in un formato non riconosciuto da Poedit.Il file è stato compilato nel formato MO, ma probabilmente non funzionerà correttamente.Il file è stato salvato e compilato nel formato MO, ma potrebbe non funzionare correttamente.Il file è stato salvato, ma non può essere compilato nel formato MO e utilizzato.Il file è stato correttamente salvato.Il vecchio testo sorgente (prima della modifica durante un aggiornamento) che corrisponde alla traduzione non verificata.La via più semplice per compilare questo catalogo è aggiornarlo da un file POT.La traduzione non inizia con uno spazio.La traduzione termina con un fine riga, ma non il testo sorgente.La traduzione termina con uno spazio, ma non il testo sorgente.La traduzione termina con "%s", ma il testo sorgente termina con "%s".Manca un fine riga alla fine della traduzione.Manca uno spazio alla fine della traduzione.La traduzione è pronta per l'uso, ma %d elemento non è ancora stato tradotto.La traduzione è pronta per l'uso, ma %d elementi non sono stati ancora tradotti.La traduzione è pronta per l'uso.La traduzione dovrebbe terminare con "%s".La traduzione non dovrebbe terminare con "%s".La traduzione dovrebbe iniziare come una frase.La traduzione dovrebbe iniziare con un carattere minuscolo.La traduzione inizia con uno spazio, ma non il testo sorgente.Le traduzioni erano state segnate come non verificate, perché non accurate. Devi verificarne la correttezza.Non ci sono traduzioni, Questo è strano.Si è verificato un problema nella formattazione del file (ma è stato salvato correttamente)Si sono verificati errori durante il caricamento del catalogo. Come risultato alcuni dati potrebbero essere mancanti o danneggiati.Queste impostazioni influenzano la formattazione interna dei file PO. Modificale se hai requisiti specifici, ad esempio a causa del controllo versione.Queste stringhe non ci sono più nei sorgenti. Poedit ora le rimuoverà dal catalogo.Queste stringhe sono state trovate nei sorgenti ma non nel catalogo. Poedit ora le aggiungerà al catalogo.Questo catalogo ha alcune voci con forme plurali, ma non ha una intestazione Plural-Forms configurata.Questo file può essere modificato solamente tramite l'interfaccia web di Crowdin.Questo è il comando usato per avviare l'estrattore. %o rappresenta il nome del file in uscita, %K l'elenco delle parole chiave, %F l'elenco dei file di input, %C l'opzione dell'insieme di caratteri (vedi sotto).Questo progetto non ha file che possono essere tradotti con Poedit.La stringa è stata trovata nella memoria di traduzione.Verrà aggiunto alla riga di comando solo se è specificato il set di caratteri del sorgente. %c rappresenta il valore del set di di caratteri.Verrà aggiunto alla riga di comando un volta per ogni file di input. %f rappresenta il nome del file.Sarà accodato alla riga di comando una volta per ogni parola chiave. %k rappresenta la parola chiave.TotaleTrasformazioniLe voci di traduzione non sono state aggiunte manualmente nel sistema Gettext, ma sono state estratte automaticamente dal codice sorgente. In questo modo, rimangono aggiornate e accurate. I traduttori di solito usano i file modello (POT) preparati per loro dagli sviluppatori.Tradotti: %d di %d (%d %%)Lingua della traduzioneMemoria di traduzione (TM)La traduzione richiede una &verificaProprietà della traduzioneLa traduzione richiede una &verificaProprietà traduzioneSuggerimenti di traduzione:Traduzione — %sTraduzione:Le traduzioni non possono essere aggiornate dal codice sorgente poichè non è stato trovato nessun codice sorgente nel percorso specifcato nelle proprietà catalogo.DueUTF-8 (consigliato)AnnullaSi è verificata un'eccezione non gestita: %sUnix (consigliato)Non tradotteSuAggiornaAggiorna tuttoAggiorna tutti i cataloghi del progettoAggiorna catalogo - sincronizzalo con i sorgentiAggiorna da file &POT…Aggiorna da file &POT…Aggiorna da file POTAggiorna riepilogoAggiornamentiAggiornamento del catalogo in corsoAggiornamento non riuscitoAggiornamento del catalogo non riuscito. Fai clic su 'Dettagli >>' per i dettagli.È in corso l'aggiornamento delle informazioni dell'utente...Aggiornamento delle traduzioni in corso...Usa espressione personaleUsa il carattere per gli elenchi personalizzati:Usa un carattere personalizzato per i campi di testo:Usa regole predefinite per questa linguaUtilizza queste parole chiave (nomi delle funzioni) per riconoscere le stringhe traducibili nei file sorgenti:Usa la memoria di traduzioneVerificaRisultati della convalidaVersione %sAutenticazione in corso...Benvenuto in PoeditChe cos'è Crowdin?Quando aggiorni dai sorgentiSolo parole intereFinestraWindowsTorna su se raggiungi la fineA capo automatico a:SìPuoi anche estrarre stringhe da tradurre direttamente dal codice sorgente:Impossibile trascinare più file nella finestra di Poedit.Riavvia Poedit affinché questo cambiamento abbia effetto.Il tuo nomeLe modifiche saranno perse se non le salvi.Il tuo nome e indirizzo email sono usati solo per impostare l'intestazione dell'ultimo traduttore dei file GNU gettext.ZeroIngrandiscialtctrlnon eliminare i file temporanei (per il debug)esempio. nplurals=2; plural=(n > 1);verifica corrispondenza nel filevai all'elemento allo specifico numero di rigagestire un poedit:// URIpre-traduci dalla MTmaiusclingua sconosciutala_tua_email@esempio.com"%s" non è un file POT valido.poedit-2.0.6/locales/zh_CN.po0000664000372000037200000014250513230131554012713 00000000000000msgid "" msgstr "" "Project-Id-Version: poedit\n" "Report-Msgid-Bugs-To: help@poedit.net\n" "POT-Creation-Date: 2017-12-05 15:52+0100\n" "PO-Revision-Date: 2017-09-21 11:38-0400\n" "Last-Translator: vslavik \n" "Language-Team: Chinese Simplified\n" "Language: zh_CN\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" "X-Generator: crowdin.com\n" "X-Crowdin-Project: poedit\n" "X-Crowdin-Language: zh-CN\n" "X-Crowdin-File: /locales/poedit.pot\n" msgid "Hide this notification message" msgstr "隐藏这条消息" msgid "Don’t Show Again" msgstr "不再显示" msgid "Don’t show again" msgstr "不再显示" #, c-format msgid "(New: %i, obsolete: %i)" msgstr "(新条目:%i 项;已过时:%i 项)" msgid "Updating catalog" msgstr "正在更新编目" msgid "Collecting source files…" msgstr "正在收集源文件…" msgid "Extracting translatable strings…" msgstr "正在提取可翻译字符串…" msgid "Failed to load extracted catalog." msgstr "加载已提取的编目失败。" msgid "Merging differences…" msgstr "正在合并差异…" #, c-format msgid "“%s” is not a valid POT file." msgstr "“%s”不是一个有效的 POT 文件。" #, c-format msgid "%i line of file “%s” was not loaded correctly." msgid_plural "%i lines of file “%s” were not loaded correctly." msgstr[0] "文件“%2$s”的第 %1$i 行未能正确加载。" #, c-format msgid "Line %d of file “%s” is corrupted (not valid %s data)." msgstr "文件“%2$s”的第 %1$d 行已损坏(不是有效的 %3$s 数据)。" #, c-format msgid "Malformed header: “%s”" msgstr "首部格式异常:“%s”" msgid "" "Broken catalog file: singular form msgstr used together with msgid_plural" msgstr "编目文件不当:单数形式的 msgstr 被用在 msgid_plural" msgid "Broken catalog file: plural form msgstr used without msgid_plural" msgstr "编目文件不当:复数形式的 msgstr 被用在没有 msgid_plural 的位置" msgid "" "There were errors when loading the catalog. Some data may be missing or " "corrupted as the result." msgstr "加载编目时遇到错误。有些数据可能缺失或损坏。" #, c-format msgid "Couldn’t load file %s, it is probably corrupted." msgstr "不能加载文件 %s,它可能已损坏。" #, c-format msgid "" "File “%s” is read-only and cannot be saved.\n" "Please save it under different name." msgstr "" "文件“%s”为只读,不能保存。\n" "请使用其他名称保存。" #, c-format msgid "Couldn’t save file %s." msgstr "不能保存文件 %s。" msgid "" "There was a problem formatting the file nicely (but it was saved all right)." msgstr "在精确格式化文件时有一个问题(但文件保存正确)。" #, c-format msgid "" "The catalog couldn’t be saved in “%s” charset as specified in catalog " "settings.\n" "\n" "It was saved in UTF-8 instead and the setting was modified accordingly." msgstr "" "不能按编目设置中所指定的将编目保存为 “%s” 字符集。\n" "\n" "将保存为 UTF-8 字符集,设置也会相应地被修改。" msgid "Error saving catalog" msgstr "保存编目时出错" msgid "PO Translation Files" msgstr "PO 翻译文件" msgid "POT Translation Templates" msgstr "POT 翻译模板" msgid "All Translation Files" msgstr "所有翻译文件" msgid "(Use default language)" msgstr "(使用默认语言)" msgid "Select your preferred language" msgstr "选择您的首选语言" msgid "Language selection" msgstr "语言选择" msgid "You must restart Poedit for this change to take effect." msgstr "您必须重新启动 Poedit 才能使这个更改生效。" msgid "Syncing" msgstr "同步中" #. TRANSLATORS: %s is a cloud destination, e.g. "Crowdin" or ftp.wordpress.com etc. #, c-format msgid "Syncing with %s…" msgstr "正在与 %s 同步…" #. TRANSLATORS: %s is a cloud destination, e.g. "Crowdin" or ftp.wordpress.com etc. #, c-format msgid "Syncing with %s failed." msgstr "与 %s 同步失败。" msgid "Syncing error" msgstr "同步出错" msgid "Downloading translations is disabled in this project." msgstr "此项目禁用了下载翻译。" msgid "Not authorized, please sign in again." msgstr "未授权,请尝试重新登录。" msgid "" "Crowdin is an online localization management platform and collaborative " "translation tool. Poedit can seamlessly sync PO files managed at Crowdin." msgstr "" "Crowdin 是一个在线的本地化管理平台和协作翻译工具。Poedit 可以无缝同步在 " "Crowdin 上管理的 PO 文件。" msgid "Sign In" msgstr "登录" msgid "Sign in" msgstr "登录" msgid "Sign Out" msgstr "登出" msgid "Sign out" msgstr "登出" msgid "Waiting for authentication…" msgstr "正在等待身份验证…" msgid "Updating user information…" msgstr "正在更新用户信息…" msgid "Signed in as:" msgstr "已登录为:" msgid "Learn More About Crowdin" msgstr "了解更多有关 Crowdin" msgid "Learn more about Crowdin" msgstr "了解更多有关 Crowdin" msgid "Sign in to Crowdin" msgstr "登录到 Crowdin" msgid "Open Crowdin translation" msgstr "打开 Crowdin 翻译" msgid "Project:" msgstr "项目:" msgid "Language:" msgstr "语言:" msgid "File:" msgstr "文件:" msgid "No translation projects listed in your Crowdin account." msgstr "您的 Crowdin 账户中没有列出翻译项目。" msgid "This project has no files that can be translated in Poedit." msgstr "此项目没有可以在 Poedit 中翻译的文件。" msgid "This file can only be edited in Crowdin’s web interface." msgstr "只能在 Crowdin 的网页界面中编辑此文件。" msgid "Downloading latest translations…" msgstr "正在下载最新的翻译…" msgid "Syncing with Crowdin failed." msgstr "与 Crowdin 同步失败。" msgid "Crowdin error" msgstr "Crowdin 错误" msgid "Uploading translations…" msgstr "正在上传翻译…" msgid "&Copy" msgstr "复制(&C)" msgid "Learn more" msgstr "了解更多" msgid "Learn More" msgstr "了解更多" msgid "&Help" msgstr "帮助(&H)" msgid "MO files can’t be directly edited in Poedit." msgstr "MO 文件不能直接在 Poedit 中编辑。" msgid "Error opening file" msgstr "打开文件时出错" msgid "" "Please open and edit the corresponding PO file instead. When you save it, " "the MO file will be updated as well." msgstr "请打开并编辑对应的 PO 文件。当你保存它时,MO 文件也将被更新。" msgid "don’t delete temporary files (for debugging)" msgstr "不删除临时文件(用于调试)" msgid "handle a poedit:// URI" msgstr "处理 poedit:// URI" msgid "go to item at given line number" msgstr "跳转到给定行号项目" msgid "Failed to communicate with Poedit process." msgstr "与 Poedit 进程的通信失败。" #, c-format msgid "Unhandled exception occurred: %s" msgstr "发生了不能处理的异常:%s" msgid "Open catalog" msgstr "打开编目" #, c-format msgid "File “%s” doesn’t exist." msgstr "文件“%s”不存在。" msgid "Poedit is an easy to use translations editor." msgstr "Poedit 是一个易于使用的翻译编辑器。" msgid "Catalogs Manager" msgstr "编目管理器" msgid "Check for Updates…" msgstr "检查更新…" msgid "&Edit" msgstr "编辑(&E)" msgid "Undo" msgstr "撤销" msgid "Redo" msgstr "重做" msgid "Paste and Match Style" msgstr "粘贴并匹配样式" msgid "Delete" msgstr "删除" msgid "Spelling and Grammar" msgstr "拼写和语法" msgid "Show Spelling and Grammar" msgstr "显示拼写和语法" msgid "Check Document Now" msgstr "立即检查文档" msgid "Check Spelling While Typing" msgstr "在输入时检查拼写" msgid "Check Grammar With Spelling" msgstr "检查拼写和语法" msgid "Correct Spelling Automatically" msgstr "自动更正拼写错误" msgid "Substitutions" msgstr "替换" msgid "Show Substitutions" msgstr "显示替换项目" msgid "Smart Copy/Paste" msgstr "智能复制/粘贴" msgid "Smart Quotes" msgstr "智能引号" msgid "Smart Dashes" msgstr "智能短划线" msgid "Smart Links" msgstr "智能链接" msgid "Text Replacement" msgstr "文本替换" msgid "Transformations" msgstr "转换" msgid "Make Upper Case" msgstr "转为大写" msgid "Make Lower Case" msgstr "转为小写" msgid "Capitalize" msgstr "大写" msgid "Speech" msgstr "朗读" msgid "Start Speaking" msgstr "开始朗读" msgid "Stop Speaking" msgstr "停止朗读" msgid "&View" msgstr "查看(&V)" msgid "Enter Full Screen" msgstr "进入全屏模式" msgid "Window" msgstr "窗口" msgid "Minimize" msgstr "最小化" msgid "Zoom" msgstr "缩放" msgid "Bring All to Front" msgstr "全部带到最前方" #. TRANSLATORS:File kind displayed in Finder/Explorer msgid "PO Translation" msgstr "PO 翻译" msgid "The file cannot be opened." msgstr "该文件无法打开。" msgid "Invalid file" msgstr "无效文件" msgid "" "The file may be either corrupted or in a format not recognized by Poedit." msgstr "该文件可能已损坏或不是 Poedit 所能识别的格式。" msgid "You can’t drop more than one file on Poedit window." msgstr "您不能拖放一个以上的文件到 Poedit 窗口。" #, c-format msgid "File “%s” is not a message catalog." msgstr "文件“%s”不是一个消息编目。" msgid "Poedit" msgstr "Poedit" msgid "&File" msgstr "文件(&F)" msgid "&Go" msgstr "转到(&G)" #. TRANSLATORS: %s is language name in its basic form (as you #. would see e.g. in a list of supported languages). You may need #. to rephrase it, e.g. to an equivalent of "for language %s". #, c-format msgid "" "Spellchecking is disabled, because the dictionary for %s isn’t installed." msgstr "拼写检查被禁用,因为 %s 的字典没有安装。" msgid "Install" msgstr "安装" msgid "Catalog modified. Do you want to save changes?" msgstr "编目已修改。您想要保存更改吗?" msgid "Save changes" msgstr "保存更改" msgid "Your changes will be lost if you don’t save them." msgstr "如果您不保存,您的更改将丢失。" msgid "Save" msgstr "保存" msgid "Don’t save" msgstr "不保存" msgid "Don’t Save" msgstr "不保存" msgid "Save as…" msgstr "另存为…" msgid "Compile to…" msgstr "编译到…" msgid "Compiled Translation Files" msgstr "已编译的翻译文件" msgid "Export as…" msgstr "导出为…" msgid "HTML Files" msgstr "HTML 文件" msgid "Open catalog template" msgstr "打开编目模板" msgid "Source code not available." msgstr "源代码不可用。" msgid "Updating failed" msgstr "更新失败" msgid "" "Translations couldn’t be updated from the source code, because no code was " "found in the location specified in the catalog’s Properties." msgstr "不能从源代码更新翻译,因为在目录属性中指定的位置没有发现代码。" msgid "Entries in the catalog are probably incorrect." msgstr "编目中的条目可能不正确。" msgid "Updating the catalog failed. Click on 'Details >>' for details." msgstr "更新编目失败。点击“详细资料 >>”了解详情。" #, c-format msgid "%d issue with the translation found." msgid_plural "%d issues with the translation found." msgstr[0] "在翻译中发现了 %d 个问题。" msgid "Validation results" msgstr "验证结果" msgid "" "Entries with errors were marked in red in the list. Details of the error " "will be shown when you select such an entry." msgstr "" "有错误的条目在列表中被标记为红色。您选择这样的条目时将显示错误的详细信息。" msgid "The file was saved safely." msgstr "文件已被安全地保存。" msgid "" "The file was saved safely and compiled into the MO format, but it will " "probably not work correctly." msgstr "文件已安全地保存,并编译成 MO 格式的文件,但它可能不能正常工作。" msgid "" "The file was saved safely, but it cannot be compiled into the MO format and " "used." msgstr "文件已安全地保存,但它不能被编译成 MO 格式并使用。" msgid "" "The file was compiled into the MO format, but it will probably not work " "correctly." msgstr "文件被编译成 MO 格式,但它可能不能正确工作。" msgid "The file cannot be compiled into the MO format and used." msgstr "文件不能编译成 MO 格式并使用。" msgid "No problems with the translation found." msgstr "翻译中未发现问题。" #, c-format msgid "The translation is ready for use, but %d entry is not translated yet." msgid_plural "" "The translation is ready for use, but %d entries are not translated yet." msgstr[0] "翻译可以使用了,不过还有 %d 个条目没有被翻译。" msgid "The translation is ready for use." msgstr "翻译可以使用了。" #, c-format msgid "Poedit automatically fixed invalid content in the file “%s”." msgstr "Poedit 自动修复了“%s”文件中的无效内容。" msgid "" "The file contained duplicate items, which is not allowed in PO files and " "would prevent the file from being used. Poedit fixed the issue, but you " "should review translations of any items marked as needing work and correct " "them if necessary." msgstr "" "该文件中包含重复的项目,这是不允许的,并且影响了该文件被使用。Poedit 修复了该" "问题,但您应该审阅任何已被标记为“需要处理”的翻译和纠正它们(如有必要)。" msgid "Language of the translation isn’t set." msgstr "翻译语言未设置。" msgid "Set Language" msgstr "设置语言" msgid "Set language" msgstr "选择语言" #. TRANSLATORS: This is shown underneath "Language of the translation isn't set (or ...is the same as source language)." msgid "" "Suggestions are not available if the translation language is not set " "correctly. Other features, such as plural forms, may be affected as well." msgstr "" "如果翻译语言设置不正确,建议将不可用。其他特性(例如复数形式)也可能受到影" "响。" msgid "Language of the translation is the same as source language." msgstr "翻译语言与源语言相同。" msgid "Fix Language" msgstr "修复语言" msgid "Fix language" msgstr "修复语言" msgid "" "This catalog has entries with plural forms, but doesn’t have Plural-Forms " "header configured." msgstr "这个编目有带有复数形式的条目,但没有已配置的 Plural-Forms 头。" msgid "" "Entries in this catalog have different plural forms count from what " "catalog’s Plural-Forms header says" msgstr "这个编目中的条目的复数形式数量与编目的 Plural-Forms 头所说明的不同" msgid "Required header Plural-Forms is missing." msgstr "缺少必需的头 Plural-Forms。" #, c-format msgid "Syntax error in Plural-Forms header (\"%s\")." msgstr "在 Plural-Forms 头中存在语法错误 (\"%s\")。" msgid "Fix the Header" msgstr "修复文件头" msgid "Fix the header" msgstr "修正头" #. TRANSLATORS: %s is language name in its basic form (as you #. would see e.g. in a list of supported languages). You may need #. to rephrase it, e.g. to an equivalent of "for language %s". #, c-format msgid "Plural forms expression used by the catalog is unusual for %s." msgstr "该目录中所使用的复数形式对于 %s 是不同寻常的。" #. TRANSLATORS: A verb, shown as action button with ""Plural forms expression used by the catalog is unusual for %s.")" msgid "Review" msgstr "检查" #, c-format msgid "Error loading message catalog file “%s”." msgstr "加载消息编目文件“%s”时遇到错误。" #, c-format msgid "Translated: %d of %d (%d %%)" msgstr "已翻译:%d 共计 %d (%d %%)" #, c-format msgid "Remaining: %d" msgstr "剩余:%d" #, c-format msgid "%d error" msgid_plural "%d errors" msgstr[0] "%d 错误" #, c-format msgid "%d entry" msgid_plural "%d entries" msgstr[0] "%d 条目" msgid " (unsaved)" msgstr " (未保存)" msgid " (modified)" msgstr " (已修改)" #, c-format msgid "Failed to update translation memory: %s" msgstr "更新翻译记忆库失败: %s " msgid "Purge deleted translations" msgstr "清除已删除的翻译" msgid "Do you want to remove all translations that are no longer used?" msgstr "您确定要移除所有不再使用的翻译吗?" msgid "" "If you continue with purging, all translations marked as deleted will be " "permanently removed. You will have to translate them again if they are added " "back in the future." msgstr "" "如果您继续清除,则所有被标记为已删除的翻译都将被永久移除。如果未来它们被添加" "回来,您必须再翻译一遍。" msgid "Keep" msgstr "保持" msgid "Purge" msgstr "清除" msgid "Copy from source text" msgstr "复制源文本" msgid "Copy from Source Text" msgstr "复制源文本" #. TRANSLATORS: This is the key shortcut used in menus on Windows, some languages call them differently #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Ctrl+" msgstr "Ctrl+" msgid "Clear translation" msgstr "清除翻译" msgid "Clear Translation" msgstr "清除翻译" msgid "Edit comment" msgstr "编辑注释" msgid "Edit Comment" msgstr "编辑注释" msgid "References:" msgstr "引用:" msgid "&Bookmarks" msgstr "书签(&B)" #. TRANSLATORS: This is the key shortcut used in menus on Windows, some languages call them differently #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Alt+" msgstr "Alt+" #, c-format msgid "Set bookmark %i" msgstr "设置书签 %i" #, c-format msgid "Go to bookmark %i" msgstr "转至书签 %i" #, c-format msgid "Set Bookmark %i" msgstr "设置书签 %i" #, c-format msgid "Go to Bookmark %i" msgstr "转至书签 %i" msgid "Hide Sidebar" msgstr "隐藏侧边栏" msgid "Show Sidebar" msgstr "显示侧边栏" msgid "Hide Status Bar" msgstr "隐藏状态栏" msgid "Show Status Bar" msgstr "显示状态栏" msgid "Source text:" msgstr "源文本:" msgid "Singular:" msgstr "单数:" msgid "Plural:" msgstr "复数:" msgid "Translation:" msgstr "翻译:" msgid "Pre-translated" msgstr "已预翻译" msgid "Needs Work" msgstr "需要处理" #. TRANSLATORS: This indicates that the string's translation isn't final #. and has known problems. For example, it might be machine translated or #. fuzzy matched from an older string. The translation should be short and #. convey this. If it's problematic to translate it, "Needs review" is #. acceptable substitute, but note that the meaning is subtly different: #. "needs review" implies that somebody else should review the string after #. I am done with it (i.e. consider it good), while "needs work" implies I #. need to return to it and finish the translation. msgid "Needs work" msgstr "需要处理" msgid "" "POT files are only templates and don’t contain any translations themselves.\n" "To make a translation, create a new PO file based on the template." msgstr "" "POT 文件只是模板,不包含任何翻译内容。\n" "若要制作一个翻译,请基于模板创建一个新的 PO 文件。" msgid "Create New Translation" msgstr "创建新的翻译" msgid "Create new translation" msgstr "创建新的翻译" msgid "Everything" msgstr "一切" #, c-format msgid "Form %i" msgstr "表格 %i" msgid "Singular" msgstr "单数" msgid "Zero" msgstr "零" msgid "One" msgstr "一" msgid "Two" msgstr "二" msgid "Plural" msgstr "复数" msgid "Other" msgstr "其他" #, c-format msgid "%s Format" msgstr "%s 格式" #. TRANSLATORS: %s is replaced with language name, e.g. "PHP" or "C", so "PHP Format" etc." #, c-format msgid "%s format" msgstr "%s 格式" msgid "Source text" msgstr "源文本" #, c-format msgid "Translation — %s" msgstr "翻译 — %s" msgid "ID" msgstr "ID" #, c-format msgid "Source text — %s" msgstr "源文本 — %s" msgid "unknown language" msgstr "未知语言" #, c-format msgid "Failed command: %s" msgstr "命令失败:%s" msgid "Failed to merge gettext catalogs." msgstr "合并 gettext 编目失败。" msgid "Source file" msgstr "源文件" msgid "Source file occurrence:" msgstr "源文件出现:" msgid "Open in Editor" msgstr "在编辑器中打开" msgid "Open in editor" msgstr "在编辑器中打开" msgid "No references for the selected item." msgstr "没有对选定项的引用。" #, c-format msgid "Error opening file %s!" msgstr "打开文件 %s 时出错!" msgid "Find" msgstr "查找" msgid "Replace" msgstr "替换" #. TRANSLATORS: Expander in Find window for additional options (case sensitive etc.) msgid "Options" msgstr "选项" msgid "Ignore case" msgstr "忽略大小写" msgid "Wrap around" msgstr "全字匹配" msgid "Whole words only" msgstr "仅整个单词" msgid "Find in source texts" msgstr "在源文本中查找" msgid "Find in translations" msgstr "在翻译中查找" msgid "Find in comments" msgstr "在注释中查找" msgid "Close" msgstr "关闭" msgid "Replace &All" msgstr "全部替换(&A)" msgid "Replace &all" msgstr "全部替换(&A)" msgid "&Replace" msgstr "替换(&R)" msgid "< &Previous" msgstr "< 上一个(&P)" msgid "&Next >" msgstr "下一个(&N) >" msgid "String to find" msgstr "要查找的字符串" msgid "Replacement string" msgstr "替换字符串" #, c-format msgid "Cannot execute program: %s" msgstr "不能执行程序: %s" msgid "Language Code or Name (e.g. en_GB)" msgstr "语言的代码或名称(例如:en_GB)" msgid "Translation Language" msgstr "翻译" msgid "Language of the translation:" msgstr "要翻译的语言:" msgid "Poedit - Catalogs manager" msgstr "Poedit - 编目管理器" msgid "Catalog" msgstr "编目" msgid "Total" msgstr "总计" msgid "Untrans" msgstr "未翻译" msgid "Errors" msgstr "错误" msgid "Last modified" msgstr "最后修改" msgid "Select directory" msgstr "选择目录" msgid "Directories:" msgstr "目录:" msgid "" msgstr "<未命名>" msgid "Do you want to delete the project?" msgstr "您确定要删除此项目吗?" msgid "Confirmation" msgstr "确认" msgid "" "Do you really want to do mass update of\n" "all catalogs in this project?" msgstr "" "您确定要对这个项目中的所有编目执行\n" "大规模更新吗?" msgid "Information about the translator" msgstr "关于翻译者的信息" msgid "Name:" msgstr "名称:" msgid "Your Name" msgstr "你的名字" msgid "Email:" msgstr "电子邮件:" msgid "your_email@example.com" msgstr "your_email@example.com" msgid "" "Your name and email address are only used to set the Last-Translator header " "of GNU gettext files." msgstr "" "你的名称和电子邮件地址仅用于设置 GNU gettext 文件的 Last-Translator 信息。" msgid "Editing" msgstr "编辑" msgid "Automatically compile MO file when saving" msgstr "在保存时自动编译 MO 文件" msgid "Show summary after catalog update" msgstr "在编目更新之后显示摘要" msgid "Check spelling" msgstr "检查拼写" msgid "Always change focus to text input field" msgstr "总是将焦点移动到文本输入字段" msgid "" "Never let the list of strings take focus. If enabled, you must use Ctrl-" "arrows for keyboard navigation but you can also type text immediately, " "without having to press Tab to change focus." msgstr "" "从不让字串列表取得焦点。如果启用,您必须使用 “Ctrl-方向键” 进行键盘导航,但您" "也可以立即输入文本,不用按 Tab 改变焦点。" msgid "Appearance" msgstr "外观" msgid "Use custom list font:" msgstr "使用自定义的列表字体:" msgid "Use custom text fields font:" msgstr "使用自定义的文本框字体:" msgid "Change UI language" msgstr "更改用户界面语言" #. TRANSLATORS: This is a note appended to "Check spelling" when running on older Windows versions msgid "(requires Windows 8 or newer)" msgstr "(需要 Windows 8 或更高版本)" msgid "General" msgstr "常规" msgid "Use translation memory" msgstr "使用翻译记忆" msgid "Learn From Files…" msgstr "从文件学习…" msgid "Learn from files…" msgstr "从文件学习…" #. TRANSLATORS: This is a button that deletes everything in the translation memory (i.e. clears/resets it). msgid "Reset" msgstr "重置" #. TRANSLATORS: Followed by "match translations within the file" or "pre-translate from TM" msgid "When updating from sources" msgstr "当从源文更新时" #. TRANSLATORS: Preceded by "When updating from sources" msgid "fuzzy match within the file" msgstr "在文件内模糊匹配" #. TRANSLATORS: Preceded by "When updating from sources" msgid "pre-translate from TM" msgstr "根据翻译记忆预翻译" msgid "" "Poedit can attempt to fill in new entries from only previous translations in " "the file or from your entire translation memory. Using the TM won’t be very " "effective if it’s near-empty, but it will get better as you add more " "translations to it." msgstr "" "Poedit 可以根据以前的翻译文件或你的翻译记忆库来尝试填写新条目。接近空的翻译记" "忆库不会很有效,但如果你为它添加了更多的翻译,它也会变得更好。" msgid "Stored translations:" msgstr "存储翻译:" msgid "Database size on disk:" msgstr "磁盘上数据文件的大小:" msgid "Select translation files to import" msgstr "选择需要导入的翻译文件" msgid "Translation Memory" msgstr "翻译记忆" msgid "Importing translations…" msgstr "正在导入翻译…" msgid "Finalizing…" msgstr "正在完成…" msgid "Reset translation memory" msgstr "重置翻译记忆库" msgid "Are you sure you want to reset the translation memory?" msgstr "你确定你要重置翻译记忆库吗?" msgid "" "Resetting the translation memory will irrevocably delete all stored " "translations from it. You can’t undo this operation." msgstr "重置翻译记忆库将无可挽回地删除其中存储的所有翻译。你无法撤消此操作。" msgid "Cancel" msgstr "取消" #. TRANSLATORS: This is abbreviation of "Translation Memory" used in Preferences on macOS. #. Long text looks weird there, too short (like TM) too, but less so. "General" is about ideal #. length there. msgid "TM" msgstr "翻译记忆" msgid "" "Source code extractors are used to find translatable strings in the source " "code files and extract them so that they can be translated." msgstr "" "源代码提取器用于在源代码文件中找到可翻译字符串和提取它们,以便它们可以被翻" "译。" msgid "Custom Extractors:" msgstr "自定义提取器︰" msgid "Custom extractors:" msgstr "自定义提取器︰" msgid "Edit…" msgstr "编辑…" msgid "GNU gettext" msgstr "GNU gettext" msgid "" "Supports all programming languages recognized by GNU gettext tools (PHP, C/C+" "+, C#, Perl, Python, Java, JavaScript and others)." msgstr "" "支持 GNU gettext 工具可识别的所有编程语言(PHP、C/C++、C#、Perl、Python、" "Java、JavaScript 等)。" msgid "Delete extractor" msgstr "删除提取器" #, c-format msgid "Are you sure you want to delete the “%s” extractor?" msgstr "您确定要删除“%s”提取器吗?" msgid "Extractors" msgstr "提取器" msgid "Accounts" msgstr "账号" msgid "Automatically check for updates" msgstr "自动检查更新" msgid "Include beta versions" msgstr "包括测试版本" msgid "" "Beta versions contain the latest new features and improvements, but may be a " "bit less stable." msgstr "测试版包含最新功能和改进,但可能有点不太稳定。" msgid "Updates" msgstr "更新" msgid "" "These settings affect internal formatting of PO files. Adjust them if you " "have specific requirements e.g. because of version control." msgstr "" "这些设置会影响 PO 文件的内部格式。如果你有特定的要求例如版本控制时,调整它" "们。" msgid "Line endings:" msgstr "行结束符:" msgid "Unix (recommended)" msgstr "Unix(推荐)" msgid "Windows" msgstr "Windows" #. TRANSLATORS: Followed by text control for entering number; wraps text at given width msgid "Wrap at:" msgstr "换行在:" msgid "Preserve formatting of existing files" msgstr "保留现有文件的格式" msgid "Advanced" msgstr "高级" msgid "Pre-translating…" msgstr "正在预翻译…" #, c-format msgid "Pre-translated %u string" msgid_plural "Pre-translated %u strings" msgstr[0] "已预翻译 %u 个字符串" #. TRANSLATORS: This is a somewhat common term describing the action where #. you apply the translation memory and/or machine translation to all of the #. strings you're translating as the first step, followed by correcting, #. improving etc., i.e. actually translating the strings. This may be tricky #. to express in other languages as simply as in English, but please try to #. keep it similarly concise. Please try to avoid, if possible, describing it #. as "auto-translation" and similar, because such terminology would mislead #. some users into thinking it's all that needs to be done (spoken from #. experience). "Pre-translate" nicely expresses that it's only the step done #. *before* actual translation. msgid "Pre-translate" msgstr "预翻译" msgid "Only fill in exact matches" msgstr "仅填补完全匹配的项" msgid "" "By default, inaccurate results are filled in as well and marked as needing " "work. Check this option to only include accurate matches." msgstr "" "默认情况下,不准确的结果被填补并标记为需要处理。选中此选项只包括精确匹配的" "项。" msgid "Don’t mark exact matches as needing work" msgstr "不将精确匹配标为需要处理" msgid "" "Only enable if you trust the quality of your TM. By default, all matches " "from the TM are marked as needing work and should be reviewed before use." msgstr "" "仅在您信任你的翻译记忆的质量时启用。默认情况下,从翻译记忆匹配的所有条目被标" "记为模糊,在使用前应加以审查。" msgid "" "Pre-translation automatically finds exact or fuzzy matches for untranslated " "strings in the translation memory and fills in their translations." msgstr "" "预翻译自动在翻译记忆库中查找未翻译字符串的精确或模糊匹配项,并将其填入翻译。" #, c-format msgid "%d entry was pre-translated." msgid_plural "%d entries were pre-translated." msgstr[0] "%d 个条目已进行预翻译。" msgid "" "The translations were marked as needing work, because they may be " "inaccurate. You should review them for correctness." msgstr "这些翻译被标记为需要处理,因为其可能不准确。请检查它们的准确性。" msgid "No entries could be pre-translated." msgstr "没有条目可预翻译。" msgid "" "The TM doesn’t contain any strings similar to the content of this file. It " "is only effective for semi-automatic translations after Poedit learns enough " "from files that you translated manually." msgstr "" "翻译记忆库中没有包含任何与此文件内容相似的字符串。 Poedit 需要通过你手动翻译" "的文件来得到充分的学习,然后才能在半自动翻译中发挥作用。" msgid "" "Drag and Drop Folders Here\n" "\n" "or use the + button" msgstr "" "拖放文件夹到这里\n" "\n" "或者使用 + 按钮" msgid "" "Drag and drop folders here\n" "\n" "or use the + button" msgstr "" "拖放文件夹到这里\n" "\n" "或者使用 + 按钮" msgid "Add Folders…" msgstr "添加文件夹…" msgid "Add folders…" msgstr "添加文件夹…" msgid "Add Files…" msgstr "添加文件…" msgid "Add files…" msgstr "添加文件…" msgid "Add Wildcard…" msgstr "添加通配符…" msgid "Add wildcard…" msgstr "添加通配符…" msgid "Paths" msgstr "路径" msgid "Excluded paths" msgstr "排除的路径" msgid "Advanced extraction settings" msgstr "高级提取设置" msgid "Extract notes for translators from:" msgstr "为译者提取注释自:" msgid "Comments prefixed with:" msgstr "有前缀的评论:" msgid "All comments" msgstr "所有评论" msgid "Additional xgettext flags:" msgstr "额外的 xgettext 标志︰" msgid "Additional keywords" msgstr "额外的关键字" msgid "Name of the project the translation is for" msgstr "翻译的项目名称" msgid "Team name and email address or URL" msgstr "团队名称和电子邮件地址或 URL" msgid "e.g. nplurals=2; plural=(n > 1);" msgstr "例如: nplurals=2; plural=(n > 1);" msgid "UTF-8 (recommended)" msgstr "UTF-8(推荐)" msgid "Please save the file first. This section cannot be edited until then." msgstr "请先保存文件。以下内容在此之前不能被编辑。" msgid "Not all plural forms are translated." msgstr "复数形式不需全部翻译。" msgid "The translation should start as a sentence." msgstr "翻译应该为一个句子。" msgid "The translation should start with a lowercase character." msgstr "翻译开头应该为小写字母。" msgid "The translation doesn’t start with a space." msgstr "翻译没有以空格开头。" msgid "The translation starts with a space, but the source text doesn’t." msgstr "翻译开头存在源文本没有的空格。" msgid "The translation is missing a newline at the end." msgstr "翻译结尾缺少换行。" msgid "The translation ends with a newline, but the source text doesn’t." msgstr "翻译以换行符结尾,但是源文本没有换行符。" msgid "The translation is missing a space at the end." msgstr "翻译结尾缺少空格。" msgid "The translation ends with a space, but the source text doesn’t." msgstr "翻译以空格结尾,但是源文本没有空格。" #, c-format msgid "The translation should end with “%s”." msgstr "翻译应以“%s”结尾。" #, c-format msgid "The translation should not end with “%s”." msgstr "翻译不应以“%s”结尾。" #, c-format msgid "The translation ends with “%s”, but the source text ends with “%s”." msgstr "翻译以“%s”结尾,但是源文本是“%s”。" msgid "Comment:" msgstr "注释:" msgid "OK" msgstr "确定" msgid "C&lear" msgstr "清除(&L)" msgid "Clear the comment" msgstr "清除注释" msgid "New" msgstr "新建" msgid "Create new translations project" msgstr "创建新的翻译项目" msgid "Edit" msgstr "编辑" msgid "Edit the project" msgstr "编辑项目" msgid "Delete the project" msgstr "删除项目" msgid "Update all" msgstr "更新全部" msgid "Update all catalogs in the project" msgstr "更新项目中的所有编目" msgid "Edit project" msgstr "编辑项目" msgid "Project name:" msgstr "项目名称:" msgid "Browse" msgstr "浏览" msgid "Add directory to the list" msgstr "将目录添加到列表" msgid "&New…" msgstr "新建…" msgid "New from &POT/PO file…" msgstr "从 &POT/PO 文件新建…" msgid "New From &POT/PO File…" msgstr "从 &POT/PO 文件新建…" msgid "&Open…" msgstr "打开(&O)…" msgid "Open Recent" msgstr "打开最近的" msgid "Open from Crowdin…" msgstr "从 Crowdin 打开…" msgid "Open From Crowdin…" msgstr "从 Crowdin 打开…" msgid "&Close" msgstr "关闭(&C)" msgid "&Save" msgstr "保存(&S)" msgid "Save &as…" msgstr "另存为(&A)…" msgid "Save &As…" msgstr "另存为(&A)…" msgid "Compile to MO…" msgstr "编译为 MO…" msgid "E&xport as HTML…" msgstr "导出为 HTML(&X)…" msgid "Check for updates…" msgstr "检查更新…" msgid "&Preferences…" msgstr "首选项(&P)…" msgid "Catalogs &manager" msgstr "编目管理器(&M)" msgid "Catalogs &Manager" msgstr "编目管理器(&M)" msgid "E&xit" msgstr "退出(&X)" msgid "Quit" msgstr "退出" msgid "Copy from singular" msgstr "复制单数" msgid "Copy From Singular" msgstr "复制单数" msgid "Translation needs &work" msgstr "翻译需要处理(&W)" msgid "Translation Needs &Work" msgstr "翻译需要处理(&W)" msgid "Edit &comment" msgstr "编辑注释(&C)" msgid "Edit &Comment" msgstr "编辑注释(&C)" msgid "Suggestions" msgstr "建议" msgid "&Find…" msgstr "查找(&F)…" msgid "Replace…" msgstr "替换…" msgid "Find next" msgstr "查找下一个" msgid "Find previous" msgstr "查找上一个" msgid "Find and Replace…" msgstr "查找和替换…" msgid "Find Next" msgstr "查找下一个" msgid "Find Previous" msgstr "查找上一个" msgid "&Preferences" msgstr "首选项(&P)" msgid "Display entry &IDs" msgstr "显示条目 &ID" msgid "Display Entry &IDs" msgstr "显示条目 &ID" msgid "Sort by &file order" msgstr "按文件顺序排序(&F)" msgid "Sort by &File Order" msgstr "按文件顺序排序(&F)" msgid "Sort by &source" msgstr "按源文排序(&S)" msgid "Sort by &Source" msgstr "按源文排序(&S)" msgid "Sort by &translation" msgstr "按翻译排序(&T)" msgid "Sort by &Translation" msgstr "按翻译排序(&T)" msgid "&Group by context" msgstr "按上下文分组(&G)" msgid "&Group By Context" msgstr "按上下文分组(&G)" msgid "Entries with errors first" msgstr "带有错误的条目优先" msgid "Entries with Errors First" msgstr "带有错误的条目优先" msgid "&Untranslated entries first" msgstr "未翻译条目优先(&U)" msgid "&Untranslated Entries First" msgstr "未翻译条目优先(&U)" msgid "&Show references" msgstr "显示引用(&S)" msgid "&Show References" msgstr "显示引用(&S)" msgid "Show sidebar" msgstr "显示侧边栏" msgid "Show status bar" msgstr "显示状态栏" msgid "C&atalog" msgstr "编目(&A)" msgid "&Update from sources" msgstr "从源文更新(&U)" msgid "&Update from Sources" msgstr "从源文更新(&U)" msgid "Update from &POT file…" msgstr "从 POT 文件更新(&P)…" msgid "Update from &POT File…" msgstr "从 POT 文件更新(&P)…" msgid "Sync with Crowdin" msgstr "与 Crowdin 同步" msgid "Pre-&translate…" msgstr "预翻译(&T)…" msgid "&Purge deleted translations" msgstr "清除已删除的翻译(&P)" msgid "&Purge Deleted Translations" msgstr "清除已删除的翻译(&P)" msgid "&Validate translations" msgstr "验证翻译(&V)" msgid "&Validate Translations" msgstr "验证翻译(&V)" msgid "&Properties…" msgstr "属性(&P)…" msgid "&Done and next" msgstr "完成并转到下一个(&D)" msgid "&Done and Next" msgstr "完成并转到下一个(&D)" msgid "&Previous translation" msgstr "前一个翻译(&P)" msgid "&Previous Translation" msgstr "前一个翻译(&P)" msgid "&Next translation" msgstr "下一个翻译(&N)" msgid "&Next Translation" msgstr "下一个翻译(&N)" msgid "P&revious unfinished" msgstr "上一个未完成(&R)" msgid "P&revious Unfinished" msgstr "上一个未完成(&R)" msgid "Ne&xt unfinished" msgstr "下一个未完成(&X)" msgid "Ne&xt Unfinished" msgstr "下一个未完成(&X)" msgid "Previous plural form" msgstr "上一个复数形式" msgid "Previous Plural Form" msgstr "上一个复数形式" msgid "Next plural form" msgstr "下一个复数形式" msgid "Next Plural Form" msgstr "下一个复数形式" msgid "&Online help" msgstr "在线帮助(&O)" msgid "&Online Help" msgstr "在线帮助(&O)" msgid "&GNU gettext manual" msgstr "&GNU gettext 手册" msgid "&GNU gettext Manual" msgstr "&GNU gettext 手册" msgid "&About Poedit" msgstr "关于 Poedit (&A)" msgid "&About" msgstr "关于(&A)" msgid "Extractor setup" msgstr "提取器安装" msgid "List of extensions separated by semicolons (e.g. *.cpp;*.h):" msgstr "用分号分隔的扩展名列表(例如 *.cpp;*.h):" msgid "Invocation:" msgstr "调用:" msgid "Command to extract translations:" msgstr "提取翻译的命令:" msgid "" "This is the command used to launch the extractor.\n" "%o expands to the name of output file, %K to list\n" "of keywords, %F to list of input files,\n" "%C to charset flag (see below)." msgstr "" "这是用来启动提取器的命令。\n" "%o 提取到输出文件的名称,%K \n" "关键字的列表,%F \n" "输入文件的列表,%C \n" "字符集标记(见下面)。" msgid "An item in keywords list:" msgstr "在关键字列表中的项:" msgid "" "This will be attached to the command line once\n" "for each keyword. %k expands to the keyword." msgstr "" "对于每个关键字,这将被附加到命令行一次。\n" "%k 展开成关键字。" msgid "An item in input files list:" msgstr "在输入文件列表中的项:" #, c-format msgid "" "This will be attached to the command line once\n" "for each input file. %f expands to the filename." msgstr "" "对于每个输入文件,这将被附加到命令行一次。\n" "%f 展开成文件名。" msgid "Source code charset:" msgstr "源代码字符集:" #, c-format msgid "" "This will be attached to the command line\n" "only if source code charset was given. %c expands to charset value." msgstr "" "仅在指定了源代码字符集时,这才被附加到命令行。\n" "%c 展开成字符集值。" msgid "Catalog properties" msgstr "编目属性" msgid "Project name and version:" msgstr "项目名称和版本:" msgid "Language team:" msgstr "语言团队:" msgid "Plural forms:" msgstr "复数形式:" msgid "Use default rules for this language" msgstr "使用默认语言" msgid "Use custom expression" msgstr "使用自定义表达式" msgid "Learn about plural forms" msgstr "了解复数形式" msgid "Charset:" msgstr "字符集:" msgid "Advanced Extraction Settings…" msgstr "高级提取设置…" msgid "Advanced extraction settings…" msgstr "高级提取设置…" msgid "Translation Properties" msgstr "翻译属性" msgid "Translation properties" msgstr "翻译属性" msgid "Sources Paths" msgstr "源路径" msgid "Sources paths" msgstr "源路径" msgid "Extract text from source files in the following directories:" msgstr "从下列目录中的源文件提取文本:" msgid "Base path:" msgstr "基本路径:" msgid "Sources Keywords" msgstr "源关键字" msgid "Sources keywords" msgstr "源关键字" msgid "" "Use these keywords (function names) to recognize translatable strings\n" "in source files:" msgstr "使用这些关键字(函数名)来识别源文件中的可翻译字串:" msgid "Also use default keywords for supported languages" msgstr "支持的语言也使用默认的关键字" msgid "Learn About Gettext Keywords" msgstr "了解 Gettext 关键字" msgid "Learn about gettext keywords" msgstr "了解 gettext 关键字" msgid "Update summary" msgstr "更新摘要" msgid "" "These strings were found in the sources but were not in the catalog.\n" "Poedit will add them to the catalog now." msgstr "" "在源文中找到这些字串,但编目中没有。\n" "Poedit 现在将把这些字串添加到编目。" msgid "New strings" msgstr "新建字串" msgid "" "These strings are no longer in the sources.\n" "Poedit will remove them from the catalog now." msgstr "" "源文件中不再有这些字串。\n" "Poedit 现在将从编目中移除这些字串。" msgid "Obsolete strings" msgstr "已废弃的字串" msgid "(0 new, 0 obsolete)" msgstr "(0 个新建,0 个已废弃)" msgid "Open" msgstr "打开" msgid "Save catalog" msgstr "保存编目" msgid "Validate" msgstr "验证" msgid "Check for errors in the translation" msgstr "检查翻译中的错误" msgid "Update" msgstr "更新" msgid "Update catalog - synchronize it with sources" msgstr "更新编目 - 将其与源文同步" msgid "Sidebar" msgstr "侧边栏" msgid "Show or hide the sidebar" msgstr "显示或隐藏侧边栏" #. TRANSLATORS: "Previous" as in used in the past, now replaced with newer. msgid "Previous source text:" msgstr "上一个源文本:" msgid "" "The old source text (before it changed during an update) that the now-" "inaccurate translation corresponds to." msgstr "现在不准确的翻译对应的旧的源文本(在此次更新的变更前)。" msgid "Notes for translators:" msgstr "给译员的注释:" msgid "Add comment" msgstr "添加注释" msgid "Add Comment" msgstr "添加注释" msgid "Translation suggestions:" msgstr "翻译建议:" #. TRANSLATORS: This is shown when no translation suggestions can be found in the TM (Windows). msgid "No matches found" msgstr "未找到匹配项" #. TRANSLATORS: This is shown when no translation suggestions can be found in the TM (macOS, Linux). msgid "No Matches Found" msgstr "未找到匹配项" msgid "This string was found in Poedit’s translation memory." msgstr "Poedit 的翻译记忆库中找到此字符串。" msgid "Cannot create temporary directory." msgstr "不能创建临时目录。" msgid "Welcome to Poedit" msgstr "欢迎使用 Poedit" #. TRANSLATORS: This is version information in about dialog, "%s" will be #. version number when used #, c-format msgid "Version %s" msgstr "版本 %s" msgid "Edit a Translation" msgstr "编辑翻译" msgid "Edit a translation" msgstr "编辑翻译" msgid "Open an existing PO file and edit the translation." msgstr "打开一个现有的PO文件并编辑翻译。" msgid "" "Take an existing PO file or POT template and create a new translation from " "it." msgstr "利用现有的 PO 文件或者 POT 模板创建一个新的翻译。" msgid "Collaborate on a Translation with Others" msgstr "与其他人协作翻译" msgid "Collaborate on a translation with others" msgstr "与其他人协作一个翻译" msgid "" "Download a file from Crowdin project, translate and sync your changes back." msgstr "从 Crowdin 项目下载一个文件、翻译,然后将您的更改同步回去。" msgid "What is Crowdin?" msgstr "Crowdin 是什么?" msgid "There are no translations. That’s unusual." msgstr "找不到翻译文件,这不正常" msgid "" "Translatable entries aren’t added manually in the Gettext system, but are " "automatically extracted\n" "from source code. This way, they stay up to date and accurate.\n" "Translators typically use PO template files (POTs) prepared for them by the " "developer." msgstr "" "翻译条目不会在 Gettext 系统中手动添加条目,但是会自动从源代码中提取。\n" "这样一来,我们可以掌握最新和最准确的需要翻译的条目。\n" "翻译人员通常使用由开发商为他们准备PO模板文件(POTS)。" msgid "(Learn more about GNU gettext)" msgstr "(了解更多关于 GNU gettext 的内容)" msgid "The simplest way to fill this catalog is to update it from a POT:" msgstr "填补这个编目的最简单的办法是从一个 POT 文件更新:" msgid "Update from POT" msgstr "从 POT 文件更新" msgid "Take translatable strings from an existing POT template." msgstr "从现有的 POT 模板中提取可翻译的字符串。" msgid "" "You can also extract translatable strings directly from the source code:" msgstr "你也可以直接从源代码中提取可翻译的字符串:" msgid "Extract from sources" msgstr "从源代码中提取" msgid "Configure source code extraction in Properties." msgstr "在属性中配置源代码提取。" msgid "Sync" msgstr "同步" msgid "Synchronize the translation with Crowdin" msgstr "与 Crowdin 同步翻译" #. TRANSLATORS: This is titlebar of about dialog, "%s" is application name #. ("Poedit" here, but please use "%s") #, c-format msgid "About %s" msgstr "关于 %s" #. TRANSLATORS: Title of the preferences window on Windows and Linux. "%s" is replaced with "Poedit" when running. #, c-format msgid "%s Preferences" msgstr "%s 首选项" #. TRANSLATORS: macOS item in app menu msgid "Services" msgstr "服务" #. TRANSLATORS: macOS item in app menu, %s is replaced with "Poedit" #, c-format msgid "Hide %s" msgstr "隐藏 %s" #. TRANSLATORS: macOS item in app menu msgid "Hide Others" msgstr "隐藏其他" #. TRANSLATORS: macOS item in app menu msgid "Show All" msgstr "全部显示" #. TRANSLATORS: macOS item in app menu, %s is replaced with "Poedit" #, c-format msgid "Quit %s" msgstr "退出 %s" #. TRANSLATORS: macOS item in app menu msgid "Preferences…" msgstr "首选项…" msgid "Preferences..." msgstr "首选项..." #. TRANSLATORS: Title of a category in Windows task menu (right-click icon in taskbar) msgid "Recent" msgstr "最近" #. TRANSLATORS: Title of a category in Windows task menu (right-click icon in taskbar) msgid "Frequent" msgstr "频繁" msgid "&Apply" msgstr "应用(&A)" msgid "Apply" msgstr "应用" msgid "&Back" msgstr "返回(&B)" msgid "Back" msgstr "返回" msgid "&Cancel" msgstr "取消(&C)" msgid "&Clear" msgstr "清除(&C)" msgid "Clear" msgstr "清除" msgid "Copy" msgstr "复制" msgid "Cu&t" msgstr "剪切(&T)" msgid "Cut" msgstr "剪切" msgid "&Delete" msgstr "刪除(&D)" msgid "&Quit" msgstr "退出(&Q)" msgid "File" msgstr "文件" msgid "Help" msgstr "帮助" msgid "&New" msgstr "新建(&N)" msgid "&No" msgstr "否(&N)" msgid "No" msgstr "否" msgid "&OK" msgstr "确定(&O)" msgid "Open…" msgstr "打开…" msgid "&Open..." msgstr "打开(&O)..." msgid "Open..." msgstr "打开..." msgid "&Paste" msgstr "粘贴(&P)" msgid "Paste" msgstr "粘贴" msgid "Preferences" msgstr "首选项" msgid "&Redo" msgstr "恢复(&R)" msgid "Refresh" msgstr "刷新" msgid "&Save as" msgstr "另存为(&S)" msgid "Save as" msgstr "另存为" msgid "Select &All" msgstr "全选(&A)" msgid "Select All" msgstr "全选" msgid "&Undo" msgstr "撤销(&U)" msgid "&Yes" msgstr "是(&Y)" msgid "Yes" msgstr "是" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Shift+" msgstr "Shift+" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Enter" msgstr "Enter" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Up" msgstr "Up" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Down" msgstr "Down" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Left" msgstr "左" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Right" msgstr "右" #. TRANSLATORS: Keyboard shortcut, must correspond to translation of "Ctrl+" msgid "ctrl" msgstr "ctrl" #. TRANSLATORS: Keyboard shortcut, must correspond to translation of "Alt+" msgid "alt" msgstr "alt" #. TRANSLATORS: Keyboard shortcut, must correspond to translation of "Shift+" msgid "shift" msgstr "shift" poedit-2.0.6/locales/ar.mo0000664000372000037200000016105513230132075012311 00000000000000N$H1 I1 U1`1<t11J1g2 w22 22 222 22222222 333323F3J3\3n3t3y333333 3 3333 334414@4\4x4~44444444445&5=5T5Z5_5s5555 5:5:&6 a6k6t6 }6 666 66 6667767?7_7|77 7177'78;8 U8`87f8688)89 $9]/99A9I9,:3::::":: ;;. ;O;b;t;;;;;;;;#<7<L<[<a<s<<<(<(<< =+=4=L= ]=k=/= =====>>29>l>>>> >>s?y?~??????? ?? @E@"c@?@ @@*@ AA1AK6A"A5AAAA A B B"B5B HB UBbBsB{BBBB.BhB:CTCunC,CD$D;DPD WDbD qD~D#D<D"DE 'E2E*EE!pE!E'EEE'FT(F}F FF F FFFFF F G G "G/G>GMGUG ^GjGrGG GGG G GGGGG HHH HI I I!I"&I;II(IIII I IJ"J 6JAJZJwJJ JJJ:J K<K.SKKKKKK*KLLL 0L ;LFLMMM 8MDMUMfMiM#zMM'M$M7M$4N%YNNNNNNAO\OaOzO O2O OOOPP$P,P4PR XRfRnRuR@RR-SS TT2#TVTiT TUU%"UHU]UrUU UUUUUUUU UU VV V *V7V JV(UV~VVzVWW%W *W 6WBW JW UW bW oW {WW"WWWW WW XX#X ,X9XSXcXvX XX!XXXXXXY YY "Y,Y =Y JY VYcYwYYYYYYYqZ ZZ ZZ ZZ ZZ [[K![m[[ [[[ [ [[l\\\(],] 4]B]Z]m]+]]N]8^A^R^_8__`I`RAacaQaJblebAb-cCBcAc0c.c(d!d)d-e+1e8]eCeue,PfL}f`f+gYgm h^yh:hi;i7im3j_j[k]kckskmlllllllm)m sDsUs!ls,s uubu@vJEwVwx zz zzz { {{ &{ 0{ :{ D{ N{#X{#|{ { {{${${ ||8| S| a| k|x|"|"|| ||| } '} 2}<}L}"c}"}}-}-} ~~ &~ 4~>~N~g~ ~6~6~~.6.e #B)09*jTTS gqȁ+"9R6j# ł/҂,//$_pJ3_= фބ0<1U5ą߅'see gr X fp4y*وEFb݉ )1?"q/#Ċ #=W2`20Ƌ)!,3`t$H+'3+['$Cԍ";Z)yӏ3-6Ph)x)i̐"6KY Vԑ + 9Zbc)ƒC 4>V_zÓד ! 2$@ekGҔ)h)GU#%  # D V4wj4Lh}18Ř716h(q5nЙ ?Mhq""Κ# 6SpЛ##>b t(М)( "+N$g ƞ4ў7(>g Uџ#'K6jU'#C6bVaQv+Ȣ+' 'Hp?y )ţ)/SE¥(()RW7k8,T-r1"ҧ  )3/&8_v<˩8 U a mz)) ת$"ūs qr 3Z׭2K˯!9Oi_z[j|<(Ѳ(!#%Ek,ȳ ѳݳ !.G`zAδ"״̵9Nb9x"ն.BI([&ʷ6(!J:iĸ˸Ը ۸  $2I_$u#׹#1.N}0X'˻ .N.j N¼/E$[ɽkt1 ÿο"2$GWUJC_YUE3UaEm*,Zl7glgF9U16/:f18c p; I`wXd15SgP yy+<h''"$G_q (3 H7S8>]|\-m**79H(C l + 5 T _ jx{E HP3t{B)+B&'i63+D{I ![5<@,3/g' K)L& cxvD' 8LXP#M*w;1hdy:m3-K0/bTECBk+jK=1R XZQu $m"}f34&^f ?t1)A(,BIBYM>!/Ml:-52n e|.+l!4o\?DG@q70.V=FzU8  O4j'9`>Wc|qN6=HW< * 60;.e~rZ2kJ V9 G&%p L8x`HR7?i%,AYU)a%nA;7( #5\Er_]]yPgF"HFu2wS}Npv{_abit^(sd$TJ >-Eo:IOC*<Qsz~CS6$"N[hJ9#@G  (modified) (unsaved)%d entry%d entries%d entry was pre-translated.%d entries were pre-translated.%d error%d errors%d issue with the translation found.%d issues with the translation found.%i line of file “%s” was not loaded correctly.%i lines of file “%s” were not loaded correctly.%s Format%s Preferences%s format&About&About Poedit&Apply&Back&Bookmarks&Cancel&Clear&Close&Copy&Delete&Done and Next&Done and next&Edit&File&Find…&GNU gettext Manual&GNU gettext manual&Go&Group By Context&Group by context&Help&New&New…&Next >&Next Translation&Next translation&No&OK&Online Help&Online help&Open...&Open…&Paste&Preferences&Preferences…&Previous Translation&Previous translation&Properties…&Purge Deleted Translations&Purge deleted translations&Quit&Redo&Replace&Save&Save as&Show References&Show references&Undo&Untranslated Entries First&Untranslated entries first&Update from Sources&Update from sources&Validate Translations&Validate translations&View&Yes(0 new, 0 obsolete)(Learn more about GNU gettext)(New: %i, obsolete: %i)(Use default language)(requires Windows 8 or newer)< &PreviousDrag and Drop Folders Here or use the + buttonDrag and drop folders here or use the + buttonAbout %sAccountsAdd CommentAdd Files…Add Folders…Add Wildcard…Add commentAdd directory to the listAdd files…Add folders…Add wildcard…Additional keywordsAdditional xgettext flags:AdvancedAdvanced Extraction Settings…Advanced extraction settingsAdvanced extraction settings…All Translation FilesAll commentsAlso use default keywords for supported languagesAlt+Always change focus to text input fieldAn item in input files list:An item in keywords list:AppearanceApplyAre you sure you want to delete the “%s” extractor?Are you sure you want to reset the translation memory?Automatically check for updatesAutomatically compile MO file when savingBackBase path:Beta versions contain the latest new features and improvements, but may be a bit less stable.Bring All to FrontBroken catalog file: plural form msgstr used without msgid_pluralBroken catalog file: singular form msgstr used together with msgid_pluralBrowseBy default, inaccurate results are filled in as well and marked as needing work. Check this option to only include accurate matches.C&atalogC&learCancelCannot create temporary directory.Cannot execute program: %sCapitalizeCatalogCatalog modified. Do you want to save changes?Catalog propertiesCatalogs &ManagerCatalogs &managerCatalogs ManagerChange UI languageCharset:Check Document NowCheck Grammar With SpellingCheck Spelling While TypingCheck for Updates…Check for errors in the translationCheck for updates…Check spellingClearClear TranslationClear the commentClear translationCloseCollaborate on a Translation with OthersCollaborate on a translation with othersCollecting source files…Command to extract translations:Comment:Comments prefixed with:Compile to MO…Compile to…Compiled Translation FilesConfigure source code extraction in Properties.ConfirmationCopyCopy From SingularCopy from Source TextCopy from singularCopy from source textCorrect Spelling AutomaticallyCouldn’t load file %s, it is probably corrupted.Couldn’t save file %s.Create New TranslationCreate new translationCreate new translations projectCrowdin errorCrowdin is an online localization management platform and collaborative translation tool. Poedit can seamlessly sync PO files managed at Crowdin.Ctrl+Cu&tCustom Extractors:Custom extractors:CutDatabase size on disk:DeleteDelete extractorDelete the projectDirectories:Display Entry &IDsDisplay entry &IDsDo you really want to do mass update of all catalogs in this project?Do you want to delete the project?Do you want to remove all translations that are no longer used?Don’t SaveDon’t Show AgainDon’t mark exact matches as needing workDon’t saveDon’t show againDownDownload a file from Crowdin project, translate and sync your changes back.Downloading latest translations…Downloading translations is disabled in this project.E&xitE&xport as HTML…EditEdit &CommentEdit &commentEdit CommentEdit a TranslationEdit a translationEdit commentEdit projectEdit the projectEditingEdit…Email:EnterEnter Full ScreenEntries in the catalog are probably incorrect.Entries in this catalog have different plural forms count from what catalog’s Plural-Forms header saysEntries with Errors FirstEntries with errors firstEntries with errors were marked in red in the list. Details of the error will be shown when you select such an entry.Error loading message catalog file “%s”.Error opening fileError opening file %s!Error saving catalogErrorsEverythingExcluded pathsExport as…Extract from sourcesExtract notes for translators from:Extract text from source files in the following directories:Extracting translatable strings…Extractor setupExtractorsFailed command: %sFailed to communicate with Poedit process.Failed to load extracted catalog.Failed to merge gettext catalogs.Failed to update translation memory: %sFileFile “%s” doesn’t exist.File “%s” is not a message catalog.File “%s” is read-only and cannot be saved. Please save it under different name.File:Finalizing…FindFind NextFind PreviousFind and Replace…Find in commentsFind in source textsFind in translationsFind nextFind previousFix LanguageFix languageFix the HeaderFix the headerForm %iFrequentGNU gettextGeneralGo to Bookmark %iGo to bookmark %iHTML FilesHelpHide %sHide OthersHide SidebarHide Status BarHide this notification messageIDIf you continue with purging, all translations marked as deleted will be permanently removed. You will have to translate them again if they are added back in the future.Ignore caseImporting translations…Include beta versionsInformation about the translatorInstallInvalid fileInvocation:KeepLanguage Code or Name (e.g. en_GB)Language of the translation is the same as source language.Language of the translation isn’t set.Language of the translation:Language selectionLanguage team:Language:Last modifiedLearn About Gettext KeywordsLearn From Files…Learn MoreLearn More About CrowdinLearn about gettext keywordsLearn about plural formsLearn from files…Learn moreLearn more about CrowdinLeftLine %d of file “%s” is corrupted (not valid %s data).Line endings:List of extensions separated by semicolons (e.g. *.cpp;*.h):MO files can’t be directly edited in Poedit.Make Lower CaseMake Upper CaseMalformed header: “%s”Merging differences…MinimizeName of the project the translation is forName:Ne&xt UnfinishedNe&xt unfinishedNeeds WorkNeeds workNever let the list of strings take focus. If enabled, you must use Ctrl-arrows for keyboard navigation but you can also type text immediately, without having to press Tab to change focus.NewNew From &POT/PO File…New from &POT/PO file…New stringsNext Plural FormNext plural formNoNo Matches FoundNo entries could be pre-translated.No matches foundNo problems with the translation found.No references for the selected item.No translation projects listed in your Crowdin account.Not all plural forms are translated.Not authorized, please sign in again.Notes for translators:OKObsolete stringsOneOnly enable if you trust the quality of your TM. By default, all matches from the TM are marked as needing work and should be reviewed before use.Only fill in exact matchesOpenOpen Crowdin translationOpen From Crowdin…Open RecentOpen an existing PO file and edit the translation.Open catalogOpen catalog templateOpen from Crowdin…Open in EditorOpen in editorOpen...Open…OptionsOtherP&revious UnfinishedP&revious unfinishedPO TranslationPO Translation FilesPOT Translation TemplatesPOT files are only templates and don’t contain any translations themselves. To make a translation, create a new PO file based on the template.PastePaste and Match StylePathsPlease open and edit the corresponding PO file instead. When you save it, the MO file will be updated as well.Please save the file first. This section cannot be edited until then.PluralPlural forms expression used by the catalog is unusual for %s.Plural forms:Plural:PoeditPoedit - Catalogs managerPoedit automatically fixed invalid content in the file “%s”.Poedit can attempt to fill in new entries from only previous translations in the file or from your entire translation memory. Using the TM won’t be very effective if it’s near-empty, but it will get better as you add more translations to it.Poedit is an easy to use translations editor.Pre-&translate…Pre-translatePre-translatedPre-translated %u stringPre-translated %u stringsPre-translating…Pre-translation automatically finds exact or fuzzy matches for untranslated strings in the translation memory and fills in their translations.PreferencesPreferences...Preferences…Preserve formatting of existing filesPrevious Plural FormPrevious plural formPrevious source text:Project name and version:Project name:Project:PurgePurge deleted translationsQuitQuit %sRecentRedoReferences:RefreshRemaining: %dReplaceReplace &AllReplace &allReplacement stringReplace…Required header Plural-Forms is missing.ResetReset translation memoryResetting the translation memory will irrevocably delete all stored translations from it. You can’t undo this operation.ReviewRightSaveSave &As…Save &as…Save asSave as…Save catalogSave changesSelect &AllSelect AllSelect directorySelect translation files to importSelect your preferred languageServicesSet Bookmark %iSet LanguageSet bookmark %iSet languageShift+Show AllShow SidebarShow Spelling and GrammarShow Status BarShow SubstitutionsShow or hide the sidebarShow sidebarShow status barShow summary after catalog updateSidebarSign InSign OutSign inSign in to CrowdinSign outSigned in as:SingularSingular:Smart Copy/PasteSmart DashesSmart LinksSmart QuotesSort by &File OrderSort by &SourceSort by &TranslationSort by &file orderSort by &sourceSort by &translationSource code charset:Source code extractors are used to find translatable strings in the source code files and extract them so that they can be translated.Source code not available.Source fileSource file occurrence:Source textSource text — %sSource text:Sources KeywordsSources PathsSources keywordsSources pathsSpeechSpellchecking is disabled, because the dictionary for %s isn’t installed.Spelling and GrammarStart SpeakingStop SpeakingStored translations:String to findSubstitutionsSuggestionsSuggestions are not available if the translation language is not set correctly. Other features, such as plural forms, may be affected as well.Supports all programming languages recognized by GNU gettext tools (PHP, C/C++, C#, Perl, Python, Java, JavaScript and others).SyncSync with CrowdinSynchronize the translation with CrowdinSyncingSyncing errorSyncing with %s failed.Syncing with %s…Syncing with Crowdin failed.Syntax error in Plural-Forms header ("%s").TMTake an existing PO file or POT template and create a new translation from it.Take translatable strings from an existing POT template.Text ReplacementThe TM doesn’t contain any strings similar to the content of this file. It is only effective for semi-automatic translations after Poedit learns enough from files that you translated manually.The catalog couldn’t be saved in “%s” charset as specified in catalog settings. It was saved in UTF-8 instead and the setting was modified accordingly.The file cannot be compiled into the MO format and used.The file cannot be opened.The file contained duplicate items, which is not allowed in PO files and would prevent the file from being used. Poedit fixed the issue, but you should review translations of any items marked as needing work and correct them if necessary.The file may be either corrupted or in a format not recognized by Poedit.The file was compiled into the MO format, but it will probably not work correctly.The file was saved safely and compiled into the MO format, but it will probably not work correctly.The file was saved safely, but it cannot be compiled into the MO format and used.The file was saved safely.The old source text (before it changed during an update) that the now-inaccurate translation corresponds to.The simplest way to fill this catalog is to update it from a POT:The translation doesn’t start with a space.The translation ends with a newline, but the source text doesn’t.The translation ends with a space, but the source text doesn’t.The translation is missing a newline at the end.The translation is missing a space at the end.The translation is ready for use, but %d entry is not translated yet.The translation is ready for use, but %d entries are not translated yet.The translation is ready for use.The translation should end with “%s”.The translation should not end with “%s”.The translation should start as a sentence.The translation should start with a lowercase character.The translation starts with a space, but the source text doesn’t.The translations were marked as needing work, because they may be inaccurate. You should review them for correctness.There are no translations. That’s unusual.There was a problem formatting the file nicely (but it was saved all right).There were errors when loading the catalog. Some data may be missing or corrupted as the result.These settings affect internal formatting of PO files. Adjust them if you have specific requirements e.g. because of version control.These strings are no longer in the sources. Poedit will remove them from the catalog now.These strings were found in the sources but were not in the catalog. Poedit will add them to the catalog now.This catalog has entries with plural forms, but doesn’t have Plural-Forms header configured.This file can only be edited in Crowdin’s web interface.This is the command used to launch the extractor. %o expands to the name of output file, %K to list of keywords, %F to list of input files, %C to charset flag (see below).This project has no files that can be translated in Poedit.This string was found in Poedit’s translation memory.This will be attached to the command line only if source code charset was given. %c expands to charset value.This will be attached to the command line once for each input file. %f expands to the filename.This will be attached to the command line once for each keyword. %k expands to the keyword.TotalTransformationsTranslatable entries aren’t added manually in the Gettext system, but are automatically extracted from source code. This way, they stay up to date and accurate. Translators typically use PO template files (POTs) prepared for them by the developer.Translated: %d of %d (%d %%)Translation LanguageTranslation MemoryTranslation Needs &WorkTranslation PropertiesTranslation needs &workTranslation propertiesTranslation suggestions:Translation — %sTranslation:Translations couldn’t be updated from the source code, because no code was found in the location specified in the catalog’s Properties.TwoUTF-8 (recommended)UndoUnhandled exception occurred: %sUnix (recommended)UntransUpUpdateUpdate allUpdate all catalogs in the projectUpdate catalog - synchronize it with sourcesUpdate from &POT File…Update from &POT file…Update from POTUpdate summaryUpdatesUpdating catalogUpdating failedUpdating the catalog failed. Click on 'Details >>' for details.Updating user information…Uploading translations…Use custom expressionUse custom list font:Use custom text fields font:Use default rules for this languageUse these keywords (function names) to recognize translatable strings in source files:Use translation memoryValidateValidation resultsVersion %sWaiting for authentication…Welcome to PoeditWhat is Crowdin?When updating from sourcesWhole words onlyWindowWindowsWrap aroundWrap at:YesYou can also extract translatable strings directly from the source code:You can’t drop more than one file on Poedit window.You must restart Poedit for this change to take effect.Your NameYour changes will be lost if you don’t save them.Your name and email address are only used to set the Last-Translator header of GNU gettext files.ZeroZoomaltctrldon’t delete temporary files (for debugging)e.g. nplurals=2; plural=(n > 1);fuzzy match within the filego to item at given line numberhandle a poedit:// URIpre-translate from TMshiftunknown languageyour_email@example.com“%s” is not a valid POT file.Project-Id-Version: poedit Report-Msgid-Bugs-To: help@poedit.net POT-Creation-Date: 2017-12-05 15:52+0100 PO-Revision-Date: 2017-12-05 09:48-0500 Last-Translator: vslavik Language-Team: Arabic Language: ar_SA MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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); X-Generator: crowdin.com X-Crowdin-Project: poedit X-Crowdin-Language: ar X-Crowdin-File: /locales/poedit.pot (معدّل) (غير محفوظ)لا مدخلاتمدخلة واحدةمدخلتان%d مدخلات%d مدخلة%d مدخلةلا مدخلات تُرجمت مسبقًا.تُرجمت مدخلة واحدة مسبقًا.تُرجمت مدخلتين مسبقًا.تُرجمت %d مدخلات مسبقًا.تُرجمت %d مدخلة مسبقًا.تُرجمت %d مدخلة مسبقًا.لا أخطاءخطأ واحدخطآن%d أخطاء%d خطأ%d خطألم يُعثر على مشاكل مع التّرجمات.عُثر على مشكلة واحدة مع التّرجمات.عُثر على مشكلتين مع التّرجمات.عُثر على %d مشاكل مع التّرجمات.عُثر على %d مشكلة مع التّرجمات.عُثر على %d مشكلة مع التّرجمات.%i سطر ملف ““%s”” لم يتم تحميله بشكل صحيح.%i سطر الملف ““%s”” لم يتم تحميله بشكل صحيح.%i سطر الملف ““%s”” لم يتم تحميله بشكل صحيح.%i سطر الملف ““%s”” لم يتم تحميله بشكل صحيح.%i سطر الملف ““%s”” لم يتم تحميله بشكل صحيح.%i آسطر الملف ““%s”” لم يتم تحميله بشكل صحيح.نسق %sتفضيلات %sنسق %s&عنْ&عنْ Poedit&طبّق&عُدال&علاماتأل&غِام&سحأ&غلقا&نسخا&حذف&تمّت وإلى التّالية&تمّت وإلى التّاليةت&حرير&ملفّ&إيجاد…كتيّب &غنو غِت​تكستكتيّب &غنو غِت​تكستانت&قال&جمّع بالسّياق&جمّع بالسّياقم&ساعدة&جديد&جديد…ال&تّالية >التّرجمة ال&تّاليةالتّرجمة ال&تّالية&لا&حسنًامساعدة &شبكيّةمساعدة &شبكيّةا&فتح...&فتح…أ&لصقت&فضيلات&التفضيلات…التّرجمة ال&سّابقةالتّرجمة ال&سّابقة&خصائص…ن&ظّف التّرجمات المحذوفةن&ظّف التّرجمات المحذوفةأ&نهِأ&عدا&ستبدلا&حفظا&حفظ ك‍أ&ظهر المراجعأ&ظهر المراجعترا&جعالمدخلات &غير المترجمة أوّلًاالمدخلات &غير المترجمة أوّلًا&حدّث من المصادر&حدّث من المصادرت&حقّق من سلامة التّرجماتت&حقّق من سلامة التّرجماتمن&ظورن&عم(لا جديدة، لا بائدة)(اطّلع على المزيد عن «غنو غِت‌تكست»)(الجديدة: %i، البائدة: %i)(استخدم اللغة الافتراضيّة)(يتطلّب «وندوز» 8 وأحدث)< ال&سّابقةاسحب وأسقط المجلّدات هنا أو استخدم زر +اسحب وأسقط المجلّدات هنا أو استخدم زر +<غير معنون>عنْ %sالحساباتأضف تعليقًاأضف ملفّات…أضف مجلّدات…أضف حرف بدل…أضف تعليقًاأضف الدّليل إلى القائمةأضف ملفّات…أضف مجلّدات…أضف حرف بدل…الكلمات المفتاحيّة الإضافيّةرايات xgettext إضافيّة:متقدّمإعدادات استخراج متقدّمة…إعدادات استخراج متقدّمةإعدادات استخراج متقدّمة…كلّ ملفّات التّرجمةكل التّعليقاتاستخدم أيضًا الكلمات المفتاحيّة الافتراضيّة للّغات المدعومةAlt+غيّر دائمًا التّركيز إلى حقل إدخال النصّعنصر في قائمة ملفّات الدّخل:عنصر في قائمة الكلمات المفتاحيّة:المظهرطبّقأمتأكّد من حذف مستخرج «%s»؟أمتأكّد من تصفير ذاكرة التّرجمة؟التمس آليًّا عن التّحديثاتصرّف آليًّا ملف ‎.mo عند الحفظعُدالمسار الأساس:نسخ بيتا تحوي المزايا الجديدة الأخيرة مع التّحسينات، لكن قد تكون أقلّ استقرارًا.اجلب الكلّ إلى الأمامملفّ الكتالوج معطوب: استُخدمت صيغة الجمع msgstr دون msgid_pluralملفّ الكتالوج معطوب: استُخدمت صيغة المفرد msgstr مع msgid_pluralتصفّحافتراضيًّا، تُملأ النّتائج غير الدّقيقة أيضًا وتُعلّم بِ‍”تحتاج عملًا“. أشّر على هذا الخيار لتضمين المطابقات الدّقيقة فقط.&كتالوجام&سحألغِتعذّر إنشاء الدّليل المؤقّت.تعذّر تنفيذ البرنامج: %sكبّر الحروفالكتالوجعُدّل الكتالوج. أتريد حفظ التّعديلات؟خصائص الكتالوجم&دير الكتالوجاتم&دير الكتالوجاتمدير الكتالوجاتغيّر لغة الواجهةطقم المحارف:دقّق المستند الآندقّق النّحو مع الإملاءدقّق الإملاء أثناء الكتابةالتمس التّحديثات…تحقّق الأخطاء في التّرجمةتحقق من التحديثات…دقّق الإملاءامسحامسح التّرجمةامسح التّعليقامسح التّرجمةأغلقتعاون على التّرجمة مع الغيرتعاون على التّرجمة مع الغيرجاري تجميع ملفّات المصدر…أمر استخراج التّرجمات:التّعليق:التعليقات المُبتدأة ب‍:جمع الى MO…صرّف إلى…ملفّات ترجمة مصرّفةاضبط استخراج الكود المصدريّ في الخصائص.أكّدانسخانسخ من الصّيغة المفردةانسخ من النّصّ المصدرانسخ من الصّيغة المفردةانسخ من النّصّ المصدرصحّح الإملاء آليًّاتعذّر تحميل الملفّ %s، قد يكون فاسدًا.تعذّر حفظ الملفّ %s.أنشئ ترجمة جديدةأنشئ ترجمة جديدةأنشئ مشروع ترجمات جديدخطأ «كراودِن»«كراودِن» هي منصّة إلكترونيّة لإدارة التّرجمات وأداة ترجمة تعاونيّة. يمكن ل‍Poedit مزامنة ملفّات PO المُدارة في «كراودِن» بسهولة.Ctrl+&قصّمستخرجات مخصّصة:مستخرجات مخصّصة:قصّحجم قاعدة البيانات في القرص:احذفاحذف المستخرجاحذف المشروعالأدلّة:اعرض م&عرّفات المدخلاتاعرض م&عرّفات المدخلاتأمتأكّد من عمل تحديث شامل لكلّ الكتالوجات في هذا المشروع؟أتريد حذف المشروع؟أتريد إزالة كلّ التّرجمات غير المستخدمة؟لا تحفظعدم العرض مجدّدًالا تعلّم المطابقات التّامّة بِ‍”تحتاج عملًا“لا تحفظعدم العرض مجدّدًاأسفلنزّل ملفًّا من مشروع «كراودِن»، ترجمه وزامن تعديلاتك.ينزّل أحدث التّرجمات…عُطِّل تنزيل التّرجمات لهذا المشروع.أ&نهِت&صدير كـHTML…حرّرحرّر التّ&عليقحرّر التّ&عليقحرّر التّعليقحرّر ترجمةحرّر ترجمةحرّر التّعليقحرّر المشروعحرّر المشروعالتّحريرتحرير…البريد الإلكترونيّ:Enterادخل ملء الشّاشةقد تكون المدخلات في الكتالوج غير صالحة.المدخلات في هذا الكتالوج لها صيغ معدود مختلفة عمّا تقوله ترويسة صيغ جموع الكتالوجالمدخلات مع أخطاء أولاالمدخلات مع أخطاء أولاالمدخلات بأخطاء عُلّمت بالأحمر في القائمة. ستظهر تفاصيل الخطأ عندما تختار مدخلة ما.خطأ في تحميل ملفّ كتالوج الرّسائل ”%s“.خطأ في فتح الملفّخطأ في فتح الملفّ %s!خطأ عند حفظ الكتالوجأخطاءكلّ شيءالمسارات المستثناةصدّر ك‍…استخرج من المصادراستخرج ملاحظات المترجمين من:استخرج النّصوص من الملفّات المصدريّة في الأدلّة التّالية:جاري إستخراج مقاطع الترجمة…إعداد المستخرجالمستخرجاتفشل الأمر: %sفشل الاتّصال مع عمليّة Poedit.فشل تحميل الكتالوج المُستخرَج.فشل دمج كاتالوجات «غِت‌تكست».فشل تحديث ذاكرة التّرجمة: %sملفّالملفّ ”%s“ غير موجود.الملفّ ”%s“ ليس كتالوج رسائل.الملفّ ”%s“ للقراءة فقط ولا يمكن حفظه. رجاء احفظه باسم مختلف.الملفّ:جاري الإنهاء…ابحثابحث عن التّاليابحث عن السّابقإيجاد والاستبدال…ابحث في التّعليقاتابحث في نصوص المصدرابحث في التّرجماتابحث عن التّاليابحث عن السّابقأصلح اللغةأصلح اللغةأصلح التّرويسةأصلح التّرويسةالصّيغة %iالمتكرّرةغنو غِت‌‌تكستعامّانتقل إلى العلامة %iانتقل إلى العلامة %iملفّات HTMLمساعدةأخفِ «%s»أخفِ البقيةأخفِ الشّريط الجانبيّأخفِ شريط الحالةأخفِ رسالة الإخطار هذهالمعرّفإن تابعت مع التّنظيف، ستُزال كلّ التّرجمات المعلّمة بِ‍”محذوفة“ نهائيًّا. ستستطيع ترجمتها مجدّدًا إن أُضيفت في المستقبل.تجاهل حالة الأحرفيستورد التّرجمات…ضمّن نسخ بيتامعلومات حول المترجمثبّتالملفّ غير صالحالاستدعاء:أبقهارمز اللغة أو اسمها (مثلًا en_GB)لغة التّرجمة نفسها لغة المصدر.لغة التّرجمة لم تُضبط.لغة التّرجمة:حدّد اللّغةفريق التّرجمة:اللّغة:آخر تعديلتعلّم المزيد عن كلمات «غِت‌​تكست» المفتاحيّةتعلّم من الملفّات…اطّلع على المزيداطّلع على المزيد عن «كراودِن»تعلّم المزيد عن كلمات «غِت‌​تكست» المفتاحيّةتعلّم حول صيغ المعدودتعلّم من الملفّات…اطّلع على المزيداطّلع على المزيد عن «كراودِن»شمالالسطر %d من الملف “%s” معطوب (بيانات %s غير صالحة).نهايات الأسطر:قائمة الامتدادات مفصولة بفواصل منقوطة (مثلًا ‎*.cpp;*.h):لا يمكن تحرير ملفّات MO مباشرةً في «محرِّر Po».اجعلها بحالة أحرف صغيرةاجعلها بحالة أحرف كبيرةالتّرويسة فاسدة: ”%s“جاري دمج الاختلافات…صغّراسم المشروع الذي تكون التّرجمات لهالاسم:غير المنتهية ال&تّاليةغير المنتهية ال&تّاليةتحتاج عملًاتحتاج عملًالا تدع قائمة السلاسل تأخذ التّركيز أبدًا. إن فُعّل، عليك استخدام مفتاح Ctrl مع الأسهم للتّنقّل عبر لوحة المفاتيح. يمكنك هكذا طباعة النصّ مباشرةً دون الحاجة إلى ضغط مفتاح Tab لتغيير التّركيز.جديدملف جديد من &POT/PO…ملف جديد من &POT/PO…السلاسل الجديدةصيغة المعدود التّاليةصيغة المعدود التّاليةلالا مطابقاتلا مدخلات يمكن ترجمتها مسبقًا.لا مطابقاتلم يُعثر على مشاكل مع التّرجمة.لا مراجع للعنصر المحدّد.لا مشاريع ترجمة موجودة في حسابك على «كراودِن».لم تُترجم كلّ صيغ الجموع.غير مستوثق، رجاء لِج ثانية.ملاحظات للمترجمين:حسنًاالسّلاسل البائدةواحدفعّله فقط إن كنت تثق بجودة TM. افتراضيًّا، كلّ المطابقات من TM تُعلّم بِ‍”تحتاج عملًا“ ويجب مراجعتها قبل استخدامها.املأ فقط المطابقات التّامّةافتحافتح ترجمة «كراودِن»فتح من Crowdin…افتح الأخيرةافتح ملفّ PO موجود وحرّر التّرجمة.افتح كتالوجًاافتح قالب كتالوجفتح من Crowdin…افتح في المحرّرافتح في المحرّرافتح...افتح…خياراتأخرىغير المنتهية ال&سّابقةغير المنتهية ال&سّابقةترجمة POملفّات PO ترجميّةملفّات POT قالبيّةملفّات POT ما هي إلّا قوالب لا تحوي ترجمات. لبدء بترجمة، أنشئ ملفّ PO مبنيّ على القالب.ألصقألصق النّمط وطابقهالمساراترجاء افتح ملفّ PO المقابل وحرّره عوض ذلك. عندما تحفظه، سيُحدَّث ملفّ MO كذلك.رجاء احفظ الملفّ أوّلًا. لا يمكن تحرير هذا القسم حتّى ذلك الحين.الجمعتعبير صيغ المعدود الذي يستخدمه الكتالوج ليس هو الصّحيح للغة %s.صيغ المعدود:الجمع:محرّر Po«محرِّر Po» - مدير الكتالوجاتلقد أصلح Poedit محتوى غير صالح تلقائيا في الملف ”%s“.يمكن ل‍«محرِّر Po» محاولة ملء المدخلات الجديدة فقط من التّرجمات السّابقة في الملفّ أو من ذاكرة التّرجمة كلّها. استخدام ذاكرة التّرجمة لن يكون فعّالًا جديًّا إن كانت شبه فارغة، ولكنّها ستصبح أفضل متى ما أضف ترجمات أخرى إليها.«محرِّر Po» هو محرّر ترجمات سهل الاستخدام.الترجمة &المسبقة…ترجم مسبقًاتُرجمت مسبقًالم يُترجم أيّ مقطع مسبقًاتُرجم مقطع واحد مسبقًاتُرجم مقطعين مسبقًاتُرجمت %u مقاطع مسبقًاتُرجمت %u مقطعًا مسبقًاتُرجمت %u مقطع مسبقًايترجم مسبقًا…التّرجمة مسبقًا تبحث آليًّا عن المطابقات التّامّة أو الغبشة للسّلاسل غير المترجمة، وذلك في ذاكرة التّرجمة لملء التّرجمات.تفضيلاتتفضيلات...التّفضيلات…حافظ على تنسيق الملفّات الموجودةصيغة المعدود السّابقةصيغة المعدود السّابقةنصّ المصدر السابق:اسم المشروع وإصداره:اسم المشروع:المشروع:نظّفنظّف التّرجمات المحذوفةأنهِأنهِ %sالأخيرةأعدالمراجع:أنعشالمتبقّي: %dاستبدلاستبدل ال&كلّاستبدل ال&كلّنصّ الاستبدالاستبدال…ترويسة صيغ المعدود المطلوبة مفقودة.صفّرصفّر ذاكرة الترجمةتصفير ذاكرة الترجمة سيحذف كلّ التّرجمات المخزّنة منها إلى الأبد. لا عودة عن هذه العمليّة.راجعيميناحفظحفظ &باسم…حفظ &باسم…احفظ ك‍احفظ ك‍…احفظ الكتالوجاحفظ التّعديلاتحدّد الك&لّحدّد الكلّاختر دليلًااختر ملفات التّرجمة لاستيرادهااختر لغتك المفضّلةالخدماتاضبط العلامة %iاضبط اللغةاضبط العلامة %iاضبط اللغةShift+أظهر الكلأظهر الشّريط الجانبيّأظهر الإملاء والنّحوأظهر شريط الحالةأظهر الاستبدالاتأظهر الشّريط الجانبيّ أو أخفهأظهر الشّريط الجانبيّأظهر شريط الحالةأظهر ملخّصًا بعد تحديث الكتالوجالشّريط الجانبيّلِجاخرجلِجلِج إلى «كراودِن»اخرجوالج كَ‍:المفردالمفرد:نسخ/لصق ذكيّشُرَط ذكيّةروابط ذكيّةعلامات اقتباس ذكيّةافرز بترتيب ال&ملفّافرز بالم&صدرافرز بال&تّرجمةافرز بترتيب ال&ملفّافرز بالم&صدرافرز بال&تّرجمةطقم محارف الكود المصدريّ:تُستخدم مستخرجات الكود المصدريّ للبحث عن السّلاسل القابلة للتّرجمة في ملفّات الكود المصدريّ واستخراجها ليمكن ترجمتها.الكود المصدريّ غير متوفّر.الملفّ المصدرحدوثات الملفّ المصدر:النصّ المصدرالنّصّ المصدر — %sالنّصّ المصدر:كلمات المصادر المفتاحيّةمسارات المصادركلمات المصادر المفتاحيّةمسارات المصادرالنّطقتدقيق الإملاء معطّل لأنّ قاموس %s غير مثبّت.الإملاء والنّحوابدأ النّطقأوقف النّطقالتّرجمات المخزّنة:النّص للبحث عنهالاستبدالاتالاقتراحاتالاقتراحات لا تتوفّر إن لم تضبط لغة التّرجمة ضبطًا صحيحًا. الميزات الأخرى (كصيغ المعدود) قد تتأثّر أيضًا.يدعم كلّ لغات البرمجة التي تتعرّف عليها أدوات غنو ‌غِت‌‌تكست (PHP، وسي/سي++، وسي#، وبيرل، وبايثون، وجافا، وجافاسكربت وغيرها).زامنزامن مع كراودِنزامن التّرجمة مع «كراودِن»يزامنخطأ في المزامنةفشلت المزامنة مع %s.يزامن مع %s…فشلت المزامنة مع «كراودِن».خطأ صياغيّ في ترويسة صيغ المعدود (”%s“).TMخُذ ملفّ PO أو قالب POT موجودين وأنشئ ترجمة منهما.خُذ السّلاسل التّرجميّة من قالب POT موجود.استبدال النّصّلا تحوي TM أيّة سلاسة مشابهة لمحتوى الملفّ. هي فعّالة فقط للتّرجمات شبه الآليّة بعد أن يتعلّم Poedit كفايةً من الملفّات التي تترجمها يدويًّا.تعذّر حفظ الكتالوج بطقم المحارف ”%s“ كما هو محدّد في إعدادات الكتالوج. حُفِظ الملفّ بترميز UTF-8 بدل ذلك وعُدّل الإعداد وفقًا لذلك.تعذّر تصريف الملفّ إلى نسق MO فلا يمكن استخدامه.تعذّر فتح الملفّ.يحوي الملفّ عناصر مكرّرة وذلك غير مسموح في ملفّات PO وسيمنع استخدام الملفّ. أصلح Poedit المشكلة، ولكن عليك مراجعة ترجمات العناصر المعلّمة ك‍”تحتاج عملًا“ وتصحيحها إن لزم.لربّما يكون الملفّ تالفًا أو بنسق لا يفهمه Poedit.صُرّف الملفّ إلى نسق MO لكنّ ربما لن يعمل عملًا صحيحًا.حُفظ الملفّ حفظًا آمنًا وصُرّف إلى نسق MO، لكنّه قد لا يعمل عملًا صحيحًا.حُفظ الملفّ حفظًا آمنًا، لكن فشل تصريفه إلى نسق MO واستخدامه.حُفظ الملفّ حفظًا آمنًا.نصّ المصدر القديم (قبل أن يتغيّر أثناء التحديث) الذي تقابله التّرجمة غير الدّقيقة الحاليّة.الطريقة الأسهل لملء هذا الكتالوج هي بتحديثه من POT:يجب ألّا تبدأ التّرجمة بمسافة.انتهت التّرجمة بمسافة، ولكنّ النّصّ المصدر لم ينتهِ بها.انتهت التّرجمة بسطر جديد، ولكنّ النّصّ المصدر لم ينتهِ بها.ينقص التّرجمة سطرًا جديدًا في نهايتها.ينقص التّرجمة مسافة في نهايتها.التّرجمة جاهزة لاستخدامها، ولا توجد مدخلات بحاجة إلى ترجمة.التّرجمة جاهزة لاستخدامها، لكن توجد مدخلة واحدة بحاجة إلى ترجمة.التّرجمة جاهزة لاستخدامها، لكن توجد مدخلتين بحاجة إلى الترجمة.التّرجمة جاهزة لاستخدامها، لكن توجد %d مدخلات بحاجة إلى ترجمة.التّرجمة جاهزة لاستخدامها، لكن توجد %d مدخلة بحاجة إلى ترجمة.التّرجمة جاهزة لاستخدامها، لكن توجد %d مدخلة بحاجة إلى ترجمة.التّرجمة جاهزة لاستخدامها.يجب أن تنتهي التّرجمة ب‍”%s“.يجب ألّا تنتهي التّرجمة ب‍”%s“.يجب أن تبدأ التّرجمة كجملة.يجب أن تبدأ التّرجمة بحرف صغير.بدأت التّرجمة بمسافة، ولكنّ النّصّ المصدر لم يبدأ بها.عُلّمت التّرجمات ب‍”تحتاج عملًا“، لأنّها قد تكون غير دقيقة. عليك مراجعتها لتصحيحها.ليست هناك ترجمات. هذا غير طبيعيّ.حدثت مشكلة أثناء تنسيق الملفّ تنسيقًا جميلًا (لكنّه حُفِظ حفظًا صحيحًا).حدثت أخطاء عند تحميل الكتالوج. قد تكون بعض البيانات ناقصة أو تالفة نتيجة إلى ذلك.تؤثّر هذه الإعدادات على تنسيق ملفّات PO الدّاخليّ. عدّلها إن أردت متطلّبات محدّدة كالتّحكّم بالإصدارات.السّلاسل لم تعد موجودة في المصادر. سيحذفها «محرِّر Po» من الكتالوج الآن.عُثر على هذه السلاسل في المصادر لكنّها غير موجودة في الكتالوج. سيُضيفها «محرِّر Po» الآن إلى الكتالوج.يحوي هذا الكتالوج مدخلات بصيغ معدود، لكنّه لا يحوي ترويسة مضبوطة.يمكن تحرير هذا الملفّ فقط في واجهة «كراودِن» على الوبّ.يُستخدم هذا الأمر لإطلاق المستخرج. يُوسّع ‎%o إلى اسم ملفّ الخرج، و‎%K إلى قائمة الكلمات المفتاحيّة، و‎%F إلى قائمة ملفّات الدّخل، و‎%C إلى راية طقم المحارف (طالع أدناه).ليس في هذا المشروع ملفّات يمكن ترجمتها في Poedit.عُثر على السّلسلة في ذاكرة ترجمة «محرِّر Po».سيُرفق هذا بسطر الأمر فقط إن أُعطي طقم المحارف. يُوسّع ‎%c إلى قيمة طقم المحارف.سيُرفق هذا بسطر الأمر مرّة لكلّ ملفّ دخل. يُوسّع ‎%f إلى اسم الملفّ.سيُرفق هذا بسطر الأمر مرّة لكلّ ملفّ دخل. يُوسّع ‎%K إلى الكلمة المفتاحيّة.المجموعالتّحويلاتلا تتم إضافة الإدخالات القابلة للترجمة يدويا في نظام Gettext، ولكن يتم استخراجها تلقائيا من شفرة المصدر. وبهذه الطريقة، فإنها تبقى محدثة ودقيقة. يستخدم المترجمون عادة ملفات نماذج PO (POTs) المعدة لهم بواسطة المطور.المُترجَمة: %d من %d ‏(%d %%)لغة التّرجمةذاكرة التّرجمةتحتاج التّرجمة &عملًاخصائص التّرجمةتحتاج التّرجمة &عملًاخصائص التّرجمةاقتراحات التّرجمة:التّرجمة — %sالتّرجمة:تعذّر تحديث التّرجمات من الكود المصدريّ بسبب عدم العثور على كود المكان المحدّد في تفضيلات الكتالوج.إثنانUTF-8 (مستحسن)تراجعحدث خطأ لا يمكن التّعامل معه: %sيُنِكس (مستحسن)غير المترجمةأعلىحدّثحدّث الكلّحدّث كلّ الكتالوجات في المشروعتحديث الكتالوج - زامِنه مع المصادرتحديث من ملف &POT…تحديث من ملف &POT…حدّث من POTملخص التّحديثالتّحديثاتيحدّث الكتالوجفشل التّحديثفشل تحديث الكتالوج. انقر ’التّفاصيل >>‘ للتّفاصيل.يحدّث معلومات المستخدم…يرفع التّرجمات…استخدم تعبيرًا مخصّصًااستخدم خطّ قوائم مخصّص:استخدم خطّ حقول النّصوص مخصّص:استخدم قواعد اللغة الافتراضيّةاستخدم الكلمات المفتاحيّة هذه (أسماء الدّوال) للتعرّف على السلاسل القابلة للتّرجمة في الملفات المصدريّة:استخدم ذاكرة التّرجمةتحقّق من السّلامةنتائج الفحصالنّسخة %sينتظر الاستيثاق…مرحبًا في Poeditما «كراودِن»؟عند التّحديث من المصادركامل الكلمات فقطنافذةوندوزلفّ حوللفّ عند:نعميمكنك أيضًا استخراج السّلاسل التّرجميّة مباشرةً من الكود المصدريّ:لا يمكنك إسقاط أكثر من ملف واحد في Poedit.عليك إعادة تشغيل Poedit لتطبيق التّعديلات.اسمكستفقد تعديلاتك إن لم تحفظها.يُستخدم اسمك وبريدك الإلكترونيّ فقط لضبط ترويسة ”آخر مترجم“ لملفّات «غنو غِت‌تكست».صفرقرّبaltctrlلا تحذف الملفّات المؤقّتة (للتّنقيح)مثلًا nplurals=2; plural=(n > 1);‎مطابقة غبشة داخل الملفّانتقل إلى العنصر في رقم السطر المعينتعامل مع معرّف poedit://‎ترجم مسبقًا من ذاكرة التّرجمةshiftلغة مجهولةyour_email@example.comالملفّ ”%s“ ليس ملفّ POT صالح.poedit-2.0.6/locales/sr.mo0000664000372000037200000014672413230132042012333 00000000000000!8- 9- E-P-d-Jw-g- *.4. C.M. T.b.i. o.z.............///#/+/=/O/S/ W/ d/q/z/ ////////0 00'080>0Z0v00000000 1$1;1 Y1:e1:1 111 1 22 2+2 E2R2a2u2~2 22'222 33736N33)33 3]3=4AP4I44444"45 85C5.K5z55555555 6)6#>6b6q6w6666(6(67 7A7 J7X7/s7 77777782&8Y8r888 88`9f9k9o9999 999E9"*:?M: :: :::K:";5A;w;}; ; ; ;;; ; ;;;< <<<.+<hZ<<<u<,m===== == =><>"Y>|> >>*>!>!>'?A?F?'e?? ?? ? ???? ? @ @ @+@:@I@Q@ Z@f@n@@ @@@ @ @@@@@ AAA AA B BB""B;EB(BBBB B BCC 2C=CVCsCC CCC:C D<D.OD~DDDDD*DE EE ,E 7EBEE FFF0F3F#DFhF'yF$F7F$F%#GIG`GcGtGxGGG G2G GGH"H1H9HAHGH\HqHHHH@IFI\InbIEIJ>J ]JkJsJzJ@J-J KK K 3K?K%NKtKKKK KKKKL LLL L+L 3LAL IL VLcL(vLLLzL9M@MFMKM SM ^M kM xM MM"MMMM MN N%N,N 5NBN\NlNN NN!NNNNNN O O"O +O5O FO SO _OlOOOOOOOOzP PP PP PP PQ Q#QK*QvQQ QQQ Q QQuRzR(RR RRRR+S?SNBS8SSS8TTITRf]1ć'#1JUB?Q#u.;)"Hk"Ɋ @ `n7 ċ'ϋ' 5@P"h((݌ ,%7.]%ǎ ؎1S7l׏ : %[ 20%? Rsd|aXb'+&&6 ]5h$$˓ -" PZ,v,ЕՕ3%,A?nd>FR+ ŗ%җ 7 ;)H0rW!0"N"q (( "!>` E-R CϜsޜRo*sC%ižGڞ0"0S@*ş 2) \g}   ѠޠZ' 6ơn }"Ǣ18M& &&"<C$Y1~*ۤA$:*_K֥&B#Tx6Φ!3&#Z%~3#ا%+"N0H7h ۩""3V p{!)!+K w" ȫ٫Ҭ(9R#i5íEh)`kppw3so1'dz0LŴCyV<е7 TE9JԷOHoKC4H}0ۼVt/˽pklؿt 0=&Z)))9Yy x#B"/2CA\U2'G#Z(~@."o#,CC9 G4g<  <IQ gu~z}P^#%@fl:FV(~"?CN8 "p;x{1o9y ,-J *z Q3q3hVM&*zvKfin@HMk~$7j#g2tk(Da  =1XI[O ^h<LH!m)rRN@d.A4_g<$+2%u%D/|>}Y `#;0]w9rp6q]5 QXdn:.4We\6 CZ>`E^TU:F{'by_EcUSl[o0 -7mK\fG)sau  !O=b '&GJjWT cvte PwR+},IZliB/xYs8SP|?5BLA (modified) (unsaved)%d entry%d entries%d error%d errors%d issue with the translation found.%d issues with the translation found.%i line of file “%s” was not loaded correctly.%i lines of file “%s” were not loaded correctly.%s Format%s Preferences%s format&About&About Poedit&Apply&Back&Bookmarks&Cancel&Clear&Close&Copy&Delete&Done and Next&Done and next&Edit&File&GNU gettext Manual&GNU gettext manual&Go&Group By Context&Group by context&Help&New&Next >&Next Translation&Next translation&No&OK&Online Help&Online help&Open...&Paste&Preferences&Previous Translation&Previous translation&Purge Deleted Translations&Purge deleted translations&Quit&Redo&Replace&Save&Save as&Show References&Show references&Undo&Untranslated Entries First&Untranslated entries first&Update from Sources&Update from sources&Validate Translations&Validate translations&View&Yes(0 new, 0 obsolete)(Learn more about GNU gettext)(New: %i, obsolete: %i)(Use default language)(requires Windows 8 or newer)< &PreviousDrag and Drop Folders Here or use the + buttonDrag and drop folders here or use the + buttonAbout %sAccountsAdd CommentAdd Files…Add Folders…Add commentAdd directory to the listAdd files…Add folders…Additional keywordsAdvancedAll Translation FilesAll commentsAlt+Always change focus to text input fieldAn item in input files list:An item in keywords list:AppearanceApplyAre you sure you want to delete the “%s” extractor?Are you sure you want to reset the translation memory?Automatically check for updatesAutomatically compile MO file when savingBackBase path:Beta versions contain the latest new features and improvements, but may be a bit less stable.Bring All to FrontBroken catalog file: plural form msgstr used without msgid_pluralBroken catalog file: singular form msgstr used together with msgid_pluralBrowseC&atalogC&learCancelCannot create temporary directory.Cannot execute program: %sCapitalizeCatalogCatalog modified. Do you want to save changes?Catalog propertiesCatalogs &ManagerCatalogs &managerCatalogs ManagerChange UI languageCharset:Check Document NowCheck Grammar With SpellingCheck Spelling While TypingCheck for Updates…Check for errors in the translationCheck spellingClearClear TranslationClear the commentClear translationCloseCollaborate on a Translation with OthersCollaborate on a translation with othersCollecting source files…Command to extract translations:Comment:Compile to…Compiled Translation FilesConfigure source code extraction in Properties.ConfirmationCopyCopy From SingularCopy from Source TextCopy from singularCopy from source textCorrect Spelling AutomaticallyCouldn’t load file %s, it is probably corrupted.Couldn’t save file %s.Create New TranslationCreate new translationCreate new translations projectCrowdin errorCrowdin is an online localization management platform and collaborative translation tool. Poedit can seamlessly sync PO files managed at Crowdin.Ctrl+Cu&tCutDatabase size on disk:DeleteDelete extractorDelete the projectDirectories:Display Entry &IDsDisplay entry &IDsDo you really want to do mass update of all catalogs in this project?Do you want to delete the project?Do you want to remove all translations that are no longer used?Don’t SaveDon’t Show AgainDon’t saveDon’t show againDownDownload a file from Crowdin project, translate and sync your changes back.Downloading latest translations…Downloading translations is disabled in this project.E&xitEditEdit &CommentEdit &commentEdit CommentEdit a TranslationEdit a translationEdit commentEdit projectEdit the projectEditingEdit…Email:EnterEnter Full ScreenEntries in the catalog are probably incorrect.Entries in this catalog have different plural forms count from what catalog’s Plural-Forms header saysEntries with Errors FirstEntries with errors firstEntries with errors were marked in red in the list. Details of the error will be shown when you select such an entry.Error loading message catalog file “%s”.Error opening fileError opening file %s!Error saving catalogErrorsEverythingExcluded pathsExport as…Extract from sourcesExtract text from source files in the following directories:Extracting translatable strings…Extractor setupExtractorsFailed command: %sFailed to communicate with Poedit process.Failed to load extracted catalog.Failed to merge gettext catalogs.Failed to update translation memory: %sFileFile “%s” doesn’t exist.File “%s” is not a message catalog.File:Finalizing…FindFind NextFind PreviousFind in commentsFind in source textsFind in translationsFind nextFind previousFix LanguageFix languageFix the HeaderFix the headerForm %iFrequentGNU gettextGeneralGo to Bookmark %iGo to bookmark %iHTML FilesHelpHide %sHide OthersHide SidebarHide Status BarHide this notification messageIDIf you continue with purging, all translations marked as deleted will be permanently removed. You will have to translate them again if they are added back in the future.Ignore caseImporting translations…Include beta versionsInformation about the translatorInstallInvalid fileInvocation:KeepLanguage Code or Name (e.g. en_GB)Language of the translation is the same as source language.Language of the translation isn’t set.Language of the translation:Language selectionLanguage team:Language:Last modifiedLearn About Gettext KeywordsLearn From Files…Learn MoreLearn More About CrowdinLearn about gettext keywordsLearn about plural formsLearn from files…Learn moreLearn more about CrowdinLeftLine %d of file “%s” is corrupted (not valid %s data).Line endings:List of extensions separated by semicolons (e.g. *.cpp;*.h):MO files can’t be directly edited in Poedit.Make Lower CaseMake Upper CaseMalformed header: “%s”Merging differences…MinimizeName of the project the translation is forName:Ne&xt UnfinishedNe&xt unfinishedNeeds WorkNeeds workNever let the list of strings take focus. If enabled, you must use Ctrl-arrows for keyboard navigation but you can also type text immediately, without having to press Tab to change focus.NewNew stringsNext Plural FormNext plural formNoNo Matches FoundNo entries could be pre-translated.No matches foundNo problems with the translation found.No references for the selected item.No translation projects listed in your Crowdin account.Not all plural forms are translated.Not authorized, please sign in again.Notes for translators:OKObsolete stringsOneOnly fill in exact matchesOpenOpen Crowdin translationOpen RecentOpen an existing PO file and edit the translation.Open catalogOpen catalog templateOpen in EditorOpen in editorOpen...OptionsOtherP&revious UnfinishedP&revious unfinishedPO TranslationPO Translation FilesPOT Translation TemplatesPOT files are only templates and don’t contain any translations themselves. To make a translation, create a new PO file based on the template.PastePaste and Match StylePathsPlease open and edit the corresponding PO file instead. When you save it, the MO file will be updated as well.Please save the file first. This section cannot be edited until then.PluralPlural forms expression used by the catalog is unusual for %s.Plural forms:Plural:PoeditPoedit - Catalogs managerPoedit automatically fixed invalid content in the file “%s”.Poedit is an easy to use translations editor.Pre-translatePre-translatedPre-translating…PreferencesPreferences...Preserve formatting of existing filesPrevious Plural FormPrevious plural formPrevious source text:Project name and version:Project name:Project:PurgePurge deleted translationsQuitQuit %sRecentRedoReferences:RefreshRemaining: %dReplaceReplace &AllReplace &allReplacement stringRequired header Plural-Forms is missing.ResetReset translation memoryResetting the translation memory will irrevocably delete all stored translations from it. You can’t undo this operation.ReviewRightSaveSave asSave as…Save catalogSave changesSelect &AllSelect AllSelect directorySelect translation files to importSelect your preferred languageServicesSet Bookmark %iSet LanguageSet bookmark %iSet languageShift+Show AllShow SidebarShow Spelling and GrammarShow Status BarShow SubstitutionsShow or hide the sidebarShow sidebarShow status barShow summary after catalog updateSidebarSign InSign OutSign inSign in to CrowdinSign outSigned in as:SingularSingular:Smart Copy/PasteSmart DashesSmart LinksSmart QuotesSort by &File OrderSort by &SourceSort by &TranslationSort by &file orderSort by &sourceSort by &translationSource code charset:Source code extractors are used to find translatable strings in the source code files and extract them so that they can be translated.Source code not available.Source fileSource file occurrence:Source textSource text — %sSource text:Sources KeywordsSources PathsSources keywordsSources pathsSpeechSpellchecking is disabled, because the dictionary for %s isn’t installed.Spelling and GrammarStart SpeakingStop SpeakingStored translations:String to findSubstitutionsSuggestionsSuggestions are not available if the translation language is not set correctly. Other features, such as plural forms, may be affected as well.SyncSync with CrowdinSynchronize the translation with CrowdinSyncingSyncing errorSyncing with %s failed.Syncing with %s…Syncing with Crowdin failed.Syntax error in Plural-Forms header ("%s").TMTake an existing PO file or POT template and create a new translation from it.Take translatable strings from an existing POT template.Text ReplacementThe TM doesn’t contain any strings similar to the content of this file. It is only effective for semi-automatic translations after Poedit learns enough from files that you translated manually.The file cannot be compiled into the MO format and used.The file cannot be opened.The file may be either corrupted or in a format not recognized by Poedit.The file was compiled into the MO format, but it will probably not work correctly.The file was saved safely and compiled into the MO format, but it will probably not work correctly.The file was saved safely, but it cannot be compiled into the MO format and used.The file was saved safely.The simplest way to fill this catalog is to update it from a POT:The translation doesn’t start with a space.The translation ends with a newline, but the source text doesn’t.The translation ends with a space, but the source text doesn’t.The translation ends with “%s”, but the source text ends with “%s”.The translation is missing a newline at the end.The translation is missing a space at the end.The translation is ready for use, but %d entry is not translated yet.The translation is ready for use, but %d entries are not translated yet.The translation is ready for use.The translation should end with “%s”.The translation should not end with “%s”.The translation should start as a sentence.The translation should start with a lowercase character.The translation starts with a space, but the source text doesn’t.There are no translations. That’s unusual.There was a problem formatting the file nicely (but it was saved all right).There were errors when loading the catalog. Some data may be missing or corrupted as the result.These settings affect internal formatting of PO files. Adjust them if you have specific requirements e.g. because of version control.These strings are no longer in the sources. Poedit will remove them from the catalog now.These strings were found in the sources but were not in the catalog. Poedit will add them to the catalog now.This catalog has entries with plural forms, but doesn’t have Plural-Forms header configured.This file can only be edited in Crowdin’s web interface.This is the command used to launch the extractor. %o expands to the name of output file, %K to list of keywords, %F to list of input files, %C to charset flag (see below).This project has no files that can be translated in Poedit.This string was found in Poedit’s translation memory.This will be attached to the command line only if source code charset was given. %c expands to charset value.This will be attached to the command line once for each input file. %f expands to the filename.This will be attached to the command line once for each keyword. %k expands to the keyword.TotalTransformationsTranslated: %d of %d (%d %%)Translation LanguageTranslation MemoryTranslation Needs &WorkTranslation PropertiesTranslation needs &workTranslation propertiesTranslation suggestions:Translation — %sTranslation:Translations couldn’t be updated from the source code, because no code was found in the location specified in the catalog’s Properties.TwoUTF-8 (recommended)UndoUnhandled exception occurred: %sUnix (recommended)UntransUpUpdateUpdate allUpdate all catalogs in the projectUpdate catalog - synchronize it with sourcesUpdate from POTUpdate summaryUpdatesUpdating catalogUpdating failedUpdating the catalog failed. Click on 'Details >>' for details.Updating user information…Uploading translations…Use custom expressionUse custom list font:Use custom text fields font:Use default rules for this languageUse these keywords (function names) to recognize translatable strings in source files:Use translation memoryValidateValidation resultsVersion %sWaiting for authentication…Welcome to PoeditWhat is Crowdin?Whole words onlyWindowWindowsWrap aroundWrap at:YesYou can also extract translatable strings directly from the source code:You must restart Poedit for this change to take effect.Your NameYour changes will be lost if you don’t save them.Your name and email address are only used to set the Last-Translator header of GNU gettext files.ZeroZoomaltctrldon’t delete temporary files (for debugging)e.g. nplurals=2; plural=(n > 1);handle a poedit:// URIshiftunknown languageyour_email@example.com“%s” is not a valid POT file.Project-Id-Version: poedit Report-Msgid-Bugs-To: help@poedit.net POT-Creation-Date: 2017-12-05 15:52+0100 PO-Revision-Date: 2017-07-27 03:15-0400 Last-Translator: vslavik Language-Team: Serbian (Cyrillic) Language: sr_SP MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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); X-Generator: crowdin.com X-Crowdin-Project: poedit X-Crowdin-Language: sr X-Crowdin-File: /locales/poedit.pot (измењено) (није сачувано)%d унос%d уноса%d уноса%d грешка%d грешке%d грешакаУ преводу је пронађен %d проблем.У преводу су пронађена %d проблема.У преводу је пронађено %d проблема.%i линија датотеке „%s“ није учитана тачно.%i линије датотеке „%s“ нису учитане тачно.%i линија датотеке „%s“ нису учитане тачно.Облик %sПоставке %s-аоблик „%s“&О програму&О Poedit-у&Примени&Назад&Обележивачи&Откажи&Очисти&Затвори&Копирај&ОбришиПримени и &наставиПримени и &настави&Уређивање&ДатотекаУпутство за &GNU gettextУпутство за &GNU gettext&Навигација&Групиши по контексту&Групиши по контексту&Помоћ&Ново&Следеће >&Следећи превод&Следећи превод&Не&У реду&Помоћ на мрежи&Помоћ на мрежи&Отвори…&Налепи&Жељене поставке&Претходни превод&Претходни превод&Очисти обрисане преводе&Очисти обрисане преводе&Одустани&Понови&замени&Сачувај&Сачувај каоПрикажи &референцеПрикажи &референце&ОпозовиПрво н&епреведене ставкеПрво н&епреведене ставкеАжурирај из &извораАжурирај из &извораПровери &ваљаност преводаПровери &ваљаност превода&Приказ&Да(0 нових, 0 застарелих)Детаљније о GNU gettext-у(нових: %i, застарелих: %i)(подразумевани језик)(Windows 8 или новији)< П&ретходноОвде превуците фасцикле или кликните на дугме „+“Овде превуците фасцикле или кликните на дугме „+“<неименовано>О %s-уНалозиДодај коментарДодај датотеке...Додај омоте...Додај коментарДодајте фасциклу на списак.Додај датотеке...Додај омоте...Додатне кључне речиНапредноСве датотеке преводаСве напоменеAlt+Увек пребаци &фокус на поље за унос текстаСтавка у списку улазних датотека:Ставка у списку кључних речи:ИзгледПримениЗаиста желите да обришете издвајач „%s“?Желите ли да очистите преводилачку меморију?Аутоматски проверавај има ли ажурирањаАутоматски компилирај MO датотеку при чувањуНазадОсновна путања:Бета верзије садрже најновије функције и побољшања, али могу бити мање стабилне.Постави све у предњи планГрешка у датотеци каталога: msgstr за множинске облике је употребљен без msgid_pluralГрешка у датотеци каталога: msgstr за једнински облик је употребљен заједно са msgid_plural&Потражи…&КаталогО&чисти&ОткажиНе могу да креирам привремену фасциклу.Не могу да извршим програм: %sПретвори у велика почетна словаКаталогКаталог је измењен. Желите ли да сачувате измене?Својства каталога&Управљач каталозима&Управљач каталозимаМенаџер каталога&Промени језик интерфејсаКодирање:Провери документПровери граматику уз правописПровери правопис при уносуПровери надградње...Проверите има ли грешака у преводу.Проверавај правописОчисти&Очисти преводОчистите коментар.&Очисти превод&ЗатвориСарађујте у превођењу са другимаПреводите заједно с другимаПрикупљам изворне датотеке...Команда за издвајање изворног текста:Коментар:Преведи у...Компилиране датотеке преводаПодесите издвајање из изворног кода у „Својствима“.ПотврдаКопирајКопирај једнину&Копирај из изворног текстаКопирај једнину&Копирај из изворног текстаАутоматски исправи правописне грешкеНисам успео учитати датотеку „%s“, вероватно је неисправнаНисам успео сачувати датотеку„%s“.Направи нови преводНаправи нови преводНаправите нови пројекат за превођење.Грешка на Crowdin-уCrowdin је интернет платформа за заједничку локализацију и превод. Poedit може аутоматски да синхронизује PO датотеке са Crowdin-ом.Ctrl+&ИсециИсециВеличина базе података:&ИзбришиОбриши издвајачОбришите пројекат.Фасцикле:И&дентификатори ставки&Идентификатори ставкиЗаиста желите да ажурирате све каталоге у овом пројекту?Желите ли да избришете пројекат?Желите ли да уклоните све преводе који се више не користе?Не чувајНе приказуј поновоНе чувајНе приказуј поновоDownПреузмите датотеку са пројекта Crowdin, преведите је и синхронизујте своје измене.Преузимам најновије преводе…Преузимање превода је онемогућено у овом пројекту.&Изађи&УредиУреди &коментарУреди &коментарУреди коментарУреди преводУреди преводУређивање коментараУређивање пројектаУредите пројекат.УређивањеУреди...Имејл:EnterПређи у режим целог екранаУноси у каталогу су вероватни нетачни.Уноси у овој збирци имају другачије бројеве облика множине од оног које је уписано у заглављу облика множине.Прво ставке са грешкамаПрво ставке са грешкамаУноси са грешкама су означени црвеном бојом. Детаљи грешке ће бити приказани када изаберете такав унос.Десила се грешка при учитавању датотеке збирке „%s“.Грешка при отварању датотекеГрешка при отварању датотеке „%s“.Грешка при чувању каталогаГрешкеСвеИзузете путањеИзвези као...Издвој из извораИздвојте текст из изворних датотека у следеће фасцикле.Извлачим преводиве ниске...Подешавање издвајачаИздвајачиНеуспела команда: %sНе могу да комуницирам са процесом Poedit-а.Не могу да учитам издвојени каталог.Не могу да објединим gettext каталоге.Не могу да ажурирам преводилачку меморију: %sДатотекаДатотека „%s“ не постоји.Датотека „%s“ није збирка ниски.Датотека:Завршавам...П&ронађиПронађи &следећеПронађи пр&етходно&Коментари&Изворни текст&ПреводиПронађи &следећеПронађи пр&етходноИсправи језикИсправи језикИсправи заглављеИсправи заглављеОблик %iЧесто коришћеноОпширније о Гнуовом геттекстуОпштеПређи на обележивач %iПређи на обележивач %iHTML датотекеПомоћСакриј %sСакриј другеСакриј бочну тракуСакриј статусну тракуСакриј ово обавештењеIDАко наставите са чишћењем, сви преводи означени као избрисани ће бити трајно уклоњени. Мораћете их поново превести ако буду враћени у будућности.Занемари величину словаУвозим преводе...Укључи &бета верзијеИнформације о преводиоцуИнсталирајНеисправна датотекаПозивање&ЗадржиИме или кôд језика (нпр. sr_RS)Језик превода се поклапа са изворним језиком.Језик још увек није постављен.Језик превода:Избор језикаЈезичка задруга:Језик:Последња изменаВише о кључним речима геттекстаПроучи из датотека...ДетаљнијеДетаљније о Crowdin-уВише о кључним речима gettext-аВише о облицима за множинуПроучи из датотека...ДетаљнијеДетаљније о Crowdin-улевоЛинија %d датотеке „%s“ је кварна (нису ваљани подаци %s).Завршеци редова:Списак наставака одвојених тачка-зарезом (нпр. *.cpp;*.h):MO датотеке се не могу директно уређивати у Poedit-у.Претвори у мала словаПретвори у велика словаКварно заглавље „%s“Упоређујем разлике...УмањиИме пројекта који се преводи.Име:С&ледећа недовршенаС&ледећа недовршенаЗахтева дорадуТребује радНе дозвољава да списак стрингова заузме фокус. Ако је омогућено, мораћете да користите Ctrl и стрелице за навигацију, али нећете морати да притискате Tab за унос текста.&НовоНови стринговиСледећи множински обликСледећи множински обликНеНема резултатаНема претпреводивих ставки.Нема резултатаУ преводу нема проблема.За изабрану ставку нема референци.Нема преводилачких пројеката на вашем налогу на Crowdin-у.Нису сви облици множине преведениНемате овлашћења. Поново се пријавите.Напомене за преводиоце:&У редуЗастарели стринговиЈеданКопирај само тачна подударањаОтвориОтвори превод са Crowdin-аОтварање недавне датотекеОтворите постојећу PO датотеку и уредите превод.Отварање каталогаОтварање шаблона каталогаОтвори у уређивачуОтвори у уређивачуОтвориОпцијеДругоП&ретходна недовршенаП&ретходна недовршенаPO преводPO датотеке преводаPOT шаблони преводаPOT датотеке су само шаблони и они не садрже преводе. Да бисте израдили превод, направите нову PO датотеку засновану на шаблону.НалепиНалепи у тренутном стилуПутањеОтворите и уређујте одговарајућу PO датотеку. Када је сачувате, MO датотека ће такође бити ажурирана.Прво сачувајте датотеку. Овај одељак не може да се уређује док то не урадите.МножинаИзраз за множинске облике у каталогу није уобичајен за %s језик.Облици множине:Множина:PoeditPoedit – менаџер каталогаPoedit је аутоматски исправио неисправан садржај у датотеци „%s“.Poedit је једноставан уређивач превода.ПретпреведиПретпреводПретпревод...ПодешавањаПодешавања...Очувај обликовање постојећих датотекаПретходни множински обликПретходни множински обликПретходна верзија изворног текста:Име пројекта и верзија:Име пројекта:Пројекат:&ОчистиЧишћење избрисаних преводаИзађиИзађи из %s-аСкорашњеПоновиРеференце:ОвежиПреостало: %dЗамениЗамени &свеЗамени &свеСтринг за заменуНедостаје обавезно заглавље за множинске облике.ОчистиОчисти преводилачку меморијуАко поништите преводилачку меморију, обрисаћете све преводе у њој. Ова радња је неповратна.Проверидесно&СачувајСачувај каоСачувај као...Сачувајте каталог.Чување изменаИзабери &свеИзабери свеИзбор фасциклеИзбор датотеке превода за увозИзбор жељеног језикаУслугеПостави обележивач %iПостави језикПостави обележивач %iПостави језикShift+Прикажи свеПрикажи бочну тракуПрикажи &правописне грешкеПрикажи статусну тракуПрикажи &заменеПрикажите или сакријте бочну траку.Прикажи бочну тракуПрикажи статусну тракуПрикажи &резиме након ажурирања каталогаБочна тракаПријави меОдјави меПријави меПријава на CrowdinОдјави меПријављени сте као:ЈеднинаЈеднина:Паметно копирање/налепљивањеПаметне цртеПаметни линковиПаметни наводнициСортирај по &реду у датотециСортирај по &изворуСортирај по &преводуСортирај по &реду у датотециСортирај по &изворуСортирај по &преводуКодирање изворног кода:Модули за издвајање се користе за проналажење и издвајање стрингова за превођење у датотекама изворног кода.Изворни кôд је недоступан.Изворна датотекаПојављивање изворне датотеке:Изворни текстИзворни текст – %sИзворни текст:Кључне речи извораПутање извораКључне речи извораПутање извораГоворПровера правописа је онемогућена јер није инсталиран речник за %s језик.Провера правописаПокрени модул за говорЗаустави модул за говорСачувани преводи:Стринг за претрагуЗаменеПредлозиПредлози нису доступни ако језик превода није исправно постављен. Друге функције такође могу бити недоступне, попут множинских облика.СинхронизацијаСинхронизуј са Crowdin-омСинхронизујте превод са Crowdin-омУсклађивањеГрешка усклађивањаУсклађивање са %s није успело.Усклађујем са %s…Синхронизација са Crowdin-ом није успела.Синтактичка грешка у заглављу за множинске облике („%s“).МеморијаНаправите нови превод из постојеће PO или POT датотеке.Копирајте стрингове за превођење из постојећег POT шаблона.Замена текстаПреводилачка меморија не садржи стрингове који су слични онима у тренутној датотеци. Ова опција је корисна за полуаутоматске преводе тек након што Poedit научи довољно из датотека које сте ручно превели.Датотека не може бити компилирана у MO формат за каснију употребу.Не могу да отворим датотеку.Датотека је оштећена или је у формату који Poedit не препознаје.Датотека је компилирана у MO формат, али вероватно неће исправно радити.Датотека је сачувана и компилирана у MO формат, али вероватно неће исправно радити.Датотека је сачувана, али не може бити компилирана у MO формат за каснију употребу.Датотека је сачувана.Најједноставнији начин да попуните овај каталог јесте да га ажурирате помоћу POT датотеке:Превод не почиње размаком.Превод почиње новом линијом, али извод не.Превод почиње размаком, али извод не.Превод се завршава са „%s“, али изворни натпис се завршава са „%s“.Превод нема нову линију на крају.Превод нема празнину на концу.Превод је спреман за коришћење, али %d унос још није преведен.Превод је спреман за коришћење, али %d уноса још нису преведена.Превод је спреман за коришћење, али %d уноса још није преведено.Превод је спреман за коришћење.Превод би требало да се завршава са „%s“.Превод не би требало да се завршава са „%s“.Превод би требао почињати као реченица.Превод би требао почињати као мало слово.Превод почиње размаком, али извод не.Нема превода. То је необично.Дошло је до проблема при форматирању датотеке, али је успешно сачувана.Дошло је до проблема при учитавању каталога. Неки подаци можда недостају или су оштећени.Ове поставке утичу на унутрашње обликовање PO датотека. Прилагодите их својим потребама, нпр. ако користите систем за контролу верзија.Ови стрингови више нису у изворним датотекама. Сада ће бити уклоњени из каталога.Ови стрингови су пронађени у изворним датотекама, али их нема у каталогу. Сада ће бити додати.Ова збирка има уносе у облицима множине, али нема подешено заглавље облика множине.Ову датотеку је могуће уређивати само на Crowdin-у.Ова команда се користи за покретање издвајача. %o означава име излазне датотеке, %K списак кључних речи, %F списак улазних датотека, %C ознаку кодирања (погледајте испод).У овом пројекту нема датотека које је могуће превести у Poedit-у.Овај стринг је пронађен у Poedit-овој преводилачкој меморији.Ово ће бити додато на командну линију само ако је наведено кодирање извора. Ознака %c представља вредност кодирања.Ово ће бити прикачено на командну линију по једном за сваку улазну датотеку. Ознака %f представља име датотеке.Ово ће бити прикачено на командну линију по једном за сваку кључну реч. Ознака %k представља кључну реч.УкупноТрансформацијеПреведено: %d од %d (%d %%)Језик преводаПреводилачка меморијаПревод захтева &дорадуСвојства преводаПревод захтева &дорадуСвојства преводаПредлози преводa:Превод – %sПревод:Преводи не могу бити ажурирани из изворног кода јер он није пронађен на локацији која је наведена у својствима каталога.ДваUTF-8 (препоручује се)ОпозовиДошло је до неочекиваног изузетка: %sUnix (препоручује се)НепреведеноUpАжурирајА&журирај свеАжурирајте све каталоге у пројекту.Ажурирајте каталог и ускладите га са изворима.Ажурирај помоћу POT датотекеРезиме ажурирањаАжурирањаАжурирање каталогаАжурирање није успелоНе могу да ажурирам каталог. За више информација, кликните на „Детаљи >>“.Ажурирам информације о кориснику…Отпремам преводе…Прилагођени &израз:Фонт за списак:Фонт за текстуална поља:&Подразумевана правила за овај језикКористите ове кључне речи (имена функција) за препознавање стрингова за превођење у датотекама изворног кода:&Користи преводилачку меморијуПровери ваљаностРезултати провере ваљаностиВерзија %sЧекам на потврду аутентичности…Добро дошли у PoeditШта је Crowdin?&Само целе речиПрозорWindowsТражи укругПрелом:ДаСтрингове за превођење можете издвојити и директно из изворног кода:Потребно је да поново покренете Poedit како би ова измена ступила на снагу.Ваше имеИзмене ће бити изгубљене ако их не сачувате.Ваше име и имејл-адреса се користе само за постављање последњег преводиоца у заглављу GNU gettext датотека.НулаЗумирањеaltctrlне бриши привремене датотеке (ради праћења грешака)нпр. nplurals=2; plural=(n > 1);отварај адресу poedit://shiftнепознат језикadresa@primer.rs„%s“ није ваљана датотека ПОТ-а.poedit-2.0.6/locales/is.po0000664000372000037200000015247313230132076012332 00000000000000msgid "" msgstr "" "Project-Id-Version: poedit\n" "Report-Msgid-Bugs-To: help@poedit.net\n" "POT-Creation-Date: 2017-12-05 15:52+0100\n" "PO-Revision-Date: 2017-09-21 11:21-0400\n" "Last-Translator: vslavik \n" "Language-Team: Icelandic\n" "Language: is_IS\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: crowdin.com\n" "X-Crowdin-Project: poedit\n" "X-Crowdin-Language: is\n" "X-Crowdin-File: /locales/poedit.pot\n" msgid "Hide this notification message" msgstr "Fela þessi skilaboð" msgid "Don’t Show Again" msgstr "Ekki birta aftur" msgid "Don’t show again" msgstr "Ekki birta aftur" #, c-format msgid "(New: %i, obsolete: %i)" msgstr "(Nýtt: %i, úrelt: %i)" msgid "Updating catalog" msgstr "Uppfæri þýðingaskrá" msgid "Collecting source files…" msgstr "Safna upprunaskrám…" msgid "Extracting translatable strings…" msgstr "Næ í þýðanlega strengi…" msgid "Failed to load extracted catalog." msgstr "Mistókst að hlaða inn lesinni þýðingaskrá." msgid "Merging differences…" msgstr "Samþætti mismun…" #, c-format msgid "“%s” is not a valid POT file." msgstr "“%s\" er ógild POT skrá." #, c-format msgid "%i line of file “%s” was not loaded correctly." msgid_plural "%i lines of file “%s” were not loaded correctly." msgstr[0] "%i lína úr skránni '%s' var ekki lesin rétt inn." msgstr[1] "%i línur úr skránni '%s' voru ekki lesnar rétt inn." #, c-format msgid "Line %d of file “%s” is corrupted (not valid %s data)." msgstr "Lína “%d í skránni '%s' er skemmd (ekki gild %s gögn)." #, c-format msgid "Malformed header: “%s”" msgstr "Rangt formaður haus: “%s”" msgid "" "Broken catalog file: singular form msgstr used together with msgid_plural" msgstr "Skemmd þýðingaskrá: eintöluform msgstr notað með msgid_plural" msgid "Broken catalog file: plural form msgstr used without msgid_plural" msgstr "Skemmd þýðingaskrá: fleirtöluform msgstr notað án msgid_plural" msgid "" "There were errors when loading the catalog. Some data may be missing or " "corrupted as the result." msgstr "" "Það komu upp villur við að hlaða inn þýðingaskránni. Einhver gögn gæti " "vantað eða hafa skemmst við þetta." #, c-format msgid "Couldn’t load file %s, it is probably corrupted." msgstr "Gat ekki lesið skrána %s, hún er líklega skemmd." #, c-format msgid "" "File “%s” is read-only and cannot be saved.\n" "Please save it under different name." msgstr "" "Skráin '%s' er einungis lesanleg og er ekki hægt að vista hana.\n" "Vistaðu hana með öðru heiti." #, c-format msgid "Couldn’t save file %s." msgstr "Gat ekki vistað skrána %s." msgid "" "There was a problem formatting the file nicely (but it was saved all right)." msgstr "" "Það kom upp vandamál við að forma skrána rétt (en hún var samt vistuð rétt)." #, c-format msgid "" "The catalog couldn’t be saved in “%s” charset as specified in catalog " "settings.\n" "\n" "It was saved in UTF-8 instead and the setting was modified accordingly." msgstr "" "Ekki tókst að vista þýðingaskrá með '%s' stafatöflu eins og tiltekið er í " "kjörstillingum.\n" "\n" "Skráin var þess vegna vistuð í UTF-8 og stillingum breytt í samræmi við það." msgid "Error saving catalog" msgstr "Villa við vistun á þýðingaskrá" msgid "PO Translation Files" msgstr "PO þýðingaskrár" msgid "POT Translation Templates" msgstr "POT þýðingasniðmát" msgid "All Translation Files" msgstr "Allar þýðingaskrár" msgid "(Use default language)" msgstr "(Nota sjálfgefið tungumál)" msgid "Select your preferred language" msgstr "Veldu aðaltungumálið þitt" msgid "Language selection" msgstr "Velja tungumál" msgid "You must restart Poedit for this change to take effect." msgstr "Þú þarft að endurræsa Poedit til að þessi breyting taki gildi." msgid "Syncing" msgstr "Samstilling" #. TRANSLATORS: %s is a cloud destination, e.g. "Crowdin" or ftp.wordpress.com etc. #, c-format msgid "Syncing with %s…" msgstr "Samstilli við %s…" #. TRANSLATORS: %s is a cloud destination, e.g. "Crowdin" or ftp.wordpress.com etc. #, c-format msgid "Syncing with %s failed." msgstr "Samstilling við %s mistókst." msgid "Syncing error" msgstr "Villa í samstillingu" msgid "Downloading translations is disabled in this project." msgstr "Ekki er hægt að sækja þýðingar í þessu verki." msgid "Not authorized, please sign in again." msgstr "Ekki leyfilegt, skráðu þig aftur inn." msgid "" "Crowdin is an online localization management platform and collaborative " "translation tool. Poedit can seamlessly sync PO files managed at Crowdin." msgstr "" "Crowdin er staðfærslu- og þýðingakerfi á netinu, sem hjálpar til við " "samstarf þýðenda og umsýslu. Poedit getur samstillt hnökralaust við PO-skrár " "sem haldið er utan um á Crowdin." msgid "Sign In" msgstr "Skrá inn" msgid "Sign in" msgstr "Skrá inn" msgid "Sign Out" msgstr "Skrá út" msgid "Sign out" msgstr "Skrá út" msgid "Waiting for authentication…" msgstr "Bíð eftir auðkenningu…" msgid "Updating user information…" msgstr "Uppfæri upplýsingar um notanda…" msgid "Signed in as:" msgstr "Skráður inn sem:" msgid "Learn More About Crowdin" msgstr "Vita meira um Crowdin" msgid "Learn more about Crowdin" msgstr "Vita meira um Crowdin" msgid "Sign in to Crowdin" msgstr "Skrá inn í Crowdin" msgid "Open Crowdin translation" msgstr "Opna Crowdin þýðingu" msgid "Project:" msgstr "Verkefni:" msgid "Language:" msgstr "Tungumál:" msgid "File:" msgstr "Skrá:" msgid "No translation projects listed in your Crowdin account." msgstr "Engin þýðingarverkefni eru skráð á þínu Crowdin svæði." msgid "This project has no files that can be translated in Poedit." msgstr "Þetta verkefni er ekki með neinar skrár sem hægt er að þýða í Poedit." msgid "This file can only be edited in Crowdin’s web interface." msgstr "Þessari skrá er aðeins hægt að breyta á vefsvæði Crowdin." msgid "Downloading latest translations…" msgstr "Næ í nýjustu þýðingar…" msgid "Syncing with Crowdin failed." msgstr "Samstilling við Crowdin mistókst." msgid "Crowdin error" msgstr "Villa í Crowdin" msgid "Uploading translations…" msgstr "Sendi inn þýðingar…" msgid "&Copy" msgstr "&Afrita" msgid "Learn more" msgstr "Vita meira" msgid "Learn More" msgstr "Vita meira" msgid "&Help" msgstr "&Hjálp" msgid "MO files can’t be directly edited in Poedit." msgstr "Ekki er hægt að vinna beint með MO-skrár í Poedit." msgid "Error opening file" msgstr "Villa við að opna skrá" msgid "" "Please open and edit the corresponding PO file instead. When you save it, " "the MO file will be updated as well." msgstr "" "Opnaðu frekar og breyttu samsvarandi PO-skrá. Þegar þú vistar hana, verður " "MO-skráin líka uppfærð." msgid "don’t delete temporary files (for debugging)" msgstr "ekki eyða bráðabirgðaskrám (fyrir aflúsun)" msgid "handle a poedit:// URI" msgstr "meðhöndla poedit:// URI" msgid "go to item at given line number" msgstr "fara á atriði á tilteknu línunúmeri" msgid "Failed to communicate with Poedit process." msgstr "Gat ekki átt samskipti við Poedit-ferli." #, c-format msgid "Unhandled exception occurred: %s" msgstr "Ómeðhöndlað frávik kom upp: %s" msgid "Open catalog" msgstr "Opna þýðingaskrá" #, c-format msgid "File “%s” doesn’t exist." msgstr "Skráin '%s' finnst ekki." msgid "Poedit is an easy to use translations editor." msgstr "Poedit er auðveldur þýðingaritill." msgid "Catalogs Manager" msgstr "Þýðingaskráastjórn" msgid "Check for Updates…" msgstr "Athuga með uppfærslur…" msgid "&Edit" msgstr "Br&eyta" msgid "Undo" msgstr "Afturkalla" msgid "Redo" msgstr "Endurtaka" msgid "Paste and Match Style" msgstr "Líma og samsvara stíl" msgid "Delete" msgstr "Eyða" msgid "Spelling and Grammar" msgstr "Stafsetning og málfræði" msgid "Show Spelling and Grammar" msgstr "Birta stafsetningu og málfræði" msgid "Check Document Now" msgstr "Athuga skjal núna" msgid "Check Spelling While Typing" msgstr "Yfirfara stafsetningu á meðan skrifað er" msgid "Check Grammar With Spelling" msgstr "Yfirfara málfræði ásamt stafsetningu" msgid "Correct Spelling Automatically" msgstr "Leiðrétta stafsetningu sjálfvirkt" msgid "Substitutions" msgstr "Útskiptingar" msgid "Show Substitutions" msgstr "Birta útskiptingar" msgid "Smart Copy/Paste" msgstr "Snjöll afritun/líming" msgid "Smart Quotes" msgstr "Snjallar gæsalappir" msgid "Smart Dashes" msgstr "Snjöll strik" msgid "Smart Links" msgstr "Snjallir tenglar" msgid "Text Replacement" msgstr "Útskipting texta" msgid "Transformations" msgstr "Umbreytingar" msgid "Make Upper Case" msgstr "Gera allt að hástöfum" msgid "Make Lower Case" msgstr "Gera allt að lágstöfum" msgid "Capitalize" msgstr "Byrja öll orð á hástaf" msgid "Speech" msgstr "Tala" msgid "Start Speaking" msgstr "Hefja lestur" msgid "Stop Speaking" msgstr "Stöðva lestur" msgid "&View" msgstr "S&koða" msgid "Enter Full Screen" msgstr "Fylla skjáinn" msgid "Window" msgstr "Gluggi" msgid "Minimize" msgstr "Lágmarka" msgid "Zoom" msgstr "Aðdráttur" msgid "Bring All to Front" msgstr "Færa allt fremst" #. TRANSLATORS:File kind displayed in Finder/Explorer msgid "PO Translation" msgstr "PO þýðing" msgid "The file cannot be opened." msgstr "Ekki hægt að opna þessa skrá." msgid "Invalid file" msgstr "Ógild skrá" msgid "" "The file may be either corrupted or in a format not recognized by Poedit." msgstr "Skráin gæti verið skemmd eða á sniði sem Poedit þekkir ekki." msgid "You can’t drop more than one file on Poedit window." msgstr "Þú getur ekki sleppt fleiri en einni skrá í Poedit glugga." #, c-format msgid "File “%s” is not a message catalog." msgstr "Skráin '%s' er ekki þýðingaskrá." msgid "Poedit" msgstr "Poedit" msgid "&File" msgstr "&Skrá" msgid "&Go" msgstr "&Fara" #. TRANSLATORS: %s is language name in its basic form (as you #. would see e.g. in a list of supported languages). You may need #. to rephrase it, e.g. to an equivalent of "for language %s". #, c-format msgid "" "Spellchecking is disabled, because the dictionary for %s isn’t installed." msgstr "" "Stafsetningaryfirferð er óvirk, því ekki er búið að setja upp orðasafn fyrir " "tungumálið %s." msgid "Install" msgstr "Setja upp" msgid "Catalog modified. Do you want to save changes?" msgstr "Þýðingaskrá hefur verið breytt. Viltu vista breytingar?" msgid "Save changes" msgstr "Vista breytingar" msgid "Your changes will be lost if you don’t save them." msgstr "Breytingar tapast ef þú vistar þær ekki." msgid "Save" msgstr "Vista" msgid "Don’t save" msgstr "Ekki vista" msgid "Don’t Save" msgstr "Ekki vista" msgid "Save as…" msgstr "Vista sem…" msgid "Compile to…" msgstr "Vistþýða í…" msgid "Compiled Translation Files" msgstr "Vistþýddar þýðingaskrár" msgid "Export as…" msgstr "Flytja út sem…" msgid "HTML Files" msgstr "HTML skrár" msgid "Open catalog template" msgstr "Opna þýðingaskráarsniðmát" msgid "Source code not available." msgstr "Upprunakóði ekki tiltækur." msgid "Updating failed" msgstr "Uppfærsla mistókst" msgid "" "Translations couldn’t be updated from the source code, because no code was " "found in the location specified in the catalog’s Properties." msgstr "" "Ekki var hægt að uppfæra þýðingar úr frumkóða, vegna þess að enginn kóði " "fannst á þeim stað sem tilgreindur er í eiginleikum þýðingaskrárinnar." msgid "Entries in the catalog are probably incorrect." msgstr "Færslur í þýðingaskránni eru líklega rangar." msgid "Updating the catalog failed. Click on 'Details >>' for details." msgstr "" "Uppfærsla á þýðingaskrá mistókst. Ýttu á 'Meira>>' fyrir frekari upplýsingar." #, c-format msgid "%d issue with the translation found." msgid_plural "%d issues with the translation found." msgstr[0] "%d galli fannst á þýðingunni." msgstr[1] "%d gallar fundust á þýðingunni." msgid "Validation results" msgstr "Niðurstöður prófunar" msgid "" "Entries with errors were marked in red in the list. Details of the error " "will be shown when you select such an entry." msgstr "" "Færslur með villum eru auðkenndar með rauðum lit í listanum. Nánari " "upplýsingar um villurnar birtast þegar slík færsla er valin." msgid "The file was saved safely." msgstr "Skráin var sannlega vistuð." msgid "" "The file was saved safely and compiled into the MO format, but it will " "probably not work correctly." msgstr "" "Skráin var sannlega vistuð og vistþýdd yfir á MO-form , en mun líklega ekki " "virka rétt." msgid "" "The file was saved safely, but it cannot be compiled into the MO format and " "used." msgstr "" "Skráin var sannlega vistuð, en ekki er hægt að vistþýða hana yfir á MO-form " "til notkunar" msgid "" "The file was compiled into the MO format, but it will probably not work " "correctly." msgstr "" "Skráin var sannlega vistþýdd yfir á MO-form , en mun líklega ekki virka rétt." msgid "The file cannot be compiled into the MO format and used." msgstr "Ekki er hægt að vistþýða skrána yfir á MO-form til notkunar." msgid "No problems with the translation found." msgstr "Engin vandamál fundust í þýðingunni." #, c-format msgid "The translation is ready for use, but %d entry is not translated yet." msgid_plural "" "The translation is ready for use, but %d entries are not translated yet." msgstr[0] "Þýðingin er tilbúin til notkunar, en %d færsla er samt óþýdd." msgstr[1] "Þýðingin er tilbúin til notkunar, en %d færslur er samt óþýddar." msgid "The translation is ready for use." msgstr "Þýðingaminnið er tilbúið til notkunar." #, c-format msgid "Poedit automatically fixed invalid content in the file “%s”." msgstr "Poedit lagaði sjálfkrafa ógilt efni í '%s' skránni." msgid "" "The file contained duplicate items, which is not allowed in PO files and " "would prevent the file from being used. Poedit fixed the issue, but you " "should review translations of any items marked as needing work and correct " "them if necessary." msgstr "" "Skráin inniheldur tvítekin atriði sem er ekki leyfilegt í PO-skrám og sem " "myndi koma í veg fyrir að hægt sé að nota skrána. Poedit lagaði þetta, en þú " "ættir að yfirfara þau atriði sem merkt eru til athugunar og leiðrétta þau ef " "þörf krefur." msgid "Language of the translation isn’t set." msgstr "Tungumál þýðingar er ekki stillt." msgid "Set Language" msgstr "Settu inn tungumál" msgid "Set language" msgstr "Veldu tungumál" #. TRANSLATORS: This is shown underneath "Language of the translation isn't set (or ...is the same as source language)." msgid "" "Suggestions are not available if the translation language is not set " "correctly. Other features, such as plural forms, may be affected as well." msgstr "" "Tillögur eru ekki í boði ef tungumál þýðinga er ekki rétt skilgreint. Aðrir " "eiginleikar eins og fleirtöluform, gætu einnig valdið vandræðum." msgid "Language of the translation is the same as source language." msgstr "Tungumál þýðingar er það sama og upprunatungumálið." msgid "Fix Language" msgstr "Laga tungumál" msgid "Fix language" msgstr "Laga tungumál" msgid "" "This catalog has entries with plural forms, but doesn’t have Plural-Forms " "header configured." msgstr "" "Þessi þýðingaskrá er með færslum sem hafa fleirtöluform, en hún er ekki með " "skilgreiningu á Plural-Forms í haus." msgid "" "Entries in this catalog have different plural forms count from what " "catalog’s Plural-Forms header says" msgstr "" "Færslur í þessari þýðingaskrá eru með annan fleirtölufjölda en þann sem " "tiltekinn er í Plural-Forms-línu skráarhaussins" msgid "Required header Plural-Forms is missing." msgstr "Höfuðstrenginn Plural-Forms vantar." #, c-format msgid "Syntax error in Plural-Forms header (\"%s\")." msgstr "Formvilla í Plural-Forms hauslínu (\"%s\")." msgid "Fix the Header" msgstr "Laga skráarhausinn" msgid "Fix the header" msgstr "Laga hausinn" #. TRANSLATORS: %s is language name in its basic form (as you #. would see e.g. in a list of supported languages). You may need #. to rephrase it, e.g. to an equivalent of "for language %s". #, c-format msgid "Plural forms expression used by the catalog is unusual for %s." msgstr "Fleirtöluformssniðið sem notað er í þýðingaskránni er óvenjulegt í %s." #. TRANSLATORS: A verb, shown as action button with ""Plural forms expression used by the catalog is unusual for %s.")" msgid "Review" msgstr "Yfirfara" #, c-format msgid "Error loading message catalog file “%s”." msgstr "Villa við hleðslu á þýðingaskrá '%s'." #, c-format msgid "Translated: %d of %d (%d %%)" msgstr "Þýtt: %d af %d (%d %%)" #, c-format msgid "Remaining: %d" msgstr "Eftir: %d" #, c-format msgid "%d error" msgid_plural "%d errors" msgstr[0] "%d villa" msgstr[1] "%d villur" #, c-format msgid "%d entry" msgid_plural "%d entries" msgstr[0] "%d færsla" msgstr[1] "%d færslur" msgid " (unsaved)" msgstr " (óvistað)" msgid " (modified)" msgstr " (breytt)" #, c-format msgid "Failed to update translation memory: %s" msgstr "Mistókst að uppfæra þýðingaminni: %s" msgid "Purge deleted translations" msgstr "Henda eyddum þýðingum" msgid "Do you want to remove all translations that are no longer used?" msgstr "Viltu fjarlægja allar þýðingar sem ekki eru lengur notaðar?" msgid "" "If you continue with purging, all translations marked as deleted will be " "permanently removed. You will have to translate them again if they are added " "back in the future." msgstr "" "Ef þú heldur áfram að henda, verður öllum þýðingum sem merktar eru til að " "eyða endanlega eytt. Þú munt þurfa að þýða þær alveg aftur ef þeim verður " "bætt inn aftur síðar." msgid "Keep" msgstr "Halda" msgid "Purge" msgstr "Henda" msgid "Copy from source text" msgstr "Afrita úr upprunatexta" msgid "Copy from Source Text" msgstr "Afrita úr upprunatexta" #. TRANSLATORS: This is the key shortcut used in menus on Windows, some languages call them differently #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Ctrl+" msgstr "Ctrl+" msgid "Clear translation" msgstr "Hreinsa þýðingu" msgid "Clear Translation" msgstr "Hreinsa þýðingu" msgid "Edit comment" msgstr "Breyta athugasemd" msgid "Edit Comment" msgstr "Breyta athugasemd" msgid "References:" msgstr "Tilvísanir:" msgid "&Bookmarks" msgstr "&Bókamerki" #. TRANSLATORS: This is the key shortcut used in menus on Windows, some languages call them differently #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Alt+" msgstr "Alt+" #, c-format msgid "Set bookmark %i" msgstr "Setja bókamerkið %i" #, c-format msgid "Go to bookmark %i" msgstr "Fara á bókamerkið %i" #, c-format msgid "Set Bookmark %i" msgstr "Setja bókamerkið %i" #, c-format msgid "Go to Bookmark %i" msgstr "Fara á bókamerkið %i" msgid "Hide Sidebar" msgstr "Fela hliðarspjald" msgid "Show Sidebar" msgstr "Birta hliðarspjald" msgid "Hide Status Bar" msgstr "Fela stöðustiku" msgid "Show Status Bar" msgstr "Birta stöðustiku" msgid "Source text:" msgstr "Frumtexti:" msgid "Singular:" msgstr "Eintala:" msgid "Plural:" msgstr "Fleirtala:" msgid "Translation:" msgstr "Þýðing:" msgid "Pre-translated" msgstr "Forþýtt" msgid "Needs Work" msgstr "Þarfnast lagfæringa" #. TRANSLATORS: This indicates that the string's translation isn't final #. and has known problems. For example, it might be machine translated or #. fuzzy matched from an older string. The translation should be short and #. convey this. If it's problematic to translate it, "Needs review" is #. acceptable substitute, but note that the meaning is subtly different: #. "needs review" implies that somebody else should review the string after #. I am done with it (i.e. consider it good), while "needs work" implies I #. need to return to it and finish the translation. msgid "Needs work" msgstr "Þarfnast lagfæringa" msgid "" "POT files are only templates and don’t contain any translations themselves.\n" "To make a translation, create a new PO file based on the template." msgstr "" "POT skrár eru aðeins þýðingasniðmát og innihalda engar þýðingar.\n" "Til að þýða verður að búa til nýja PO skrá byggða á sniðmátinu." msgid "Create New Translation" msgstr "Búa til nýja þýðingu" msgid "Create new translation" msgstr "Búa til nýja þýðingu" msgid "Everything" msgstr "Allt" #, c-format msgid "Form %i" msgstr "Form %i" msgid "Singular" msgstr "Eintala" msgid "Zero" msgstr "Núll" msgid "One" msgstr "Einn" msgid "Two" msgstr "Tveir" msgid "Plural" msgstr "Fleirtala" msgid "Other" msgstr "Annað" #, c-format msgid "%s Format" msgstr "%s snið" #. TRANSLATORS: %s is replaced with language name, e.g. "PHP" or "C", so "PHP Format" etc." #, c-format msgid "%s format" msgstr "%s snið" msgid "Source text" msgstr "Frumtexti" #, c-format msgid "Translation — %s" msgstr "Þýðing — %s" msgid "ID" msgstr "Auðkenni (ID)" #, c-format msgid "Source text — %s" msgstr "Frumtexti — %s" msgid "unknown language" msgstr "óþekkt tungumál" #, c-format msgid "Failed command: %s" msgstr "Mislukkuð skipun: %s" msgid "Failed to merge gettext catalogs." msgstr "Mistókst að sameina gettext þýðingaskrár." msgid "Source file" msgstr "Upprunaskrá" msgid "Source file occurrence:" msgstr "Tilvik í upprunaskrá:" msgid "Open in Editor" msgstr "Opna í ritli" msgid "Open in editor" msgstr "Opna í ritli" msgid "No references for the selected item." msgstr "Engar tilvísanir í valið atriði." #, c-format msgid "Error opening file %s!" msgstr "Villa við opnun á skránni %s!" msgid "Find" msgstr "Finna" msgid "Replace" msgstr "Skipta út" #. TRANSLATORS: Expander in Find window for additional options (case sensitive etc.) msgid "Options" msgstr "Valkostir" msgid "Ignore case" msgstr "Hunsa há/lágstafi" msgid "Wrap around" msgstr "Umbrjóta texta" msgid "Whole words only" msgstr "Aðeins stök orð" msgid "Find in source texts" msgstr "Finna í frumtextum" msgid "Find in translations" msgstr "Finna í þýðingum" msgid "Find in comments" msgstr "Finna í athugasemdum" msgid "Close" msgstr "Loka" msgid "Replace &All" msgstr "Skipt&a út öllu" msgid "Replace &all" msgstr "Skipt&a út öllu" msgid "&Replace" msgstr "Ski&pta út" msgid "< &Previous" msgstr "< &Fyrra" msgid "&Next >" msgstr "&Næsta >" msgid "String to find" msgstr "Finna streng" msgid "Replacement string" msgstr "Útskiptistrengur" #, c-format msgid "Cannot execute program: %s" msgstr "Ekki tókst að ræsa forrit: %s" msgid "Language Code or Name (e.g. en_GB)" msgstr "Kóði eða heiti tungumáls (t.d. is_IS)" msgid "Translation Language" msgstr "Tungumál þýðingar" msgid "Language of the translation:" msgstr "Tungumál þýðingar:" msgid "Poedit - Catalogs manager" msgstr "Poedit - Þýðingaskráastjórn" msgid "Catalog" msgstr "Þýðingaskrá" msgid "Total" msgstr "Alls" msgid "Untrans" msgstr "Óþýtt" msgid "Errors" msgstr "Villur" msgid "Last modified" msgstr "Síðast breytt" msgid "Select directory" msgstr "Veldu möppu" msgid "Directories:" msgstr "Möppur:" msgid "" msgstr "<ónefnt>" msgid "Do you want to delete the project?" msgstr "Viltu eyða verkefninu?" msgid "Confirmation" msgstr "Staðfesting" msgid "" "Do you really want to do mass update of\n" "all catalogs in this project?" msgstr "" "Viltu virkilega framkvæma fjöldauppfærslu á\n" "öllum þýðingaskrám í þessu verki?" msgid "Information about the translator" msgstr "Upplýsingar um þýðandann" msgid "Name:" msgstr "Nafn:" msgid "Your Name" msgstr "Nafnið þitt" msgid "Email:" msgstr "Netfang:" msgid "your_email@example.com" msgstr "tolvupostfang@midlari.is" msgid "" "Your name and email address are only used to set the Last-Translator header " "of GNU gettext files." msgstr "" "Nafn þitt og netfang hér að neðan eru einungis til að fylla út " "höfuðstrenginn Last-Translator í skráarhaus GNU-gettext-skráa." msgid "Editing" msgstr "Vinnsla" msgid "Automatically compile MO file when saving" msgstr "Vistþýða sjálfkrafa MO-skrár við vistun" msgid "Show summary after catalog update" msgstr "Birta samantekt eftir uppfærslu þýðingaskráa" msgid "Check spelling" msgstr "Athuga stafsetningu" msgid "Always change focus to text input field" msgstr "Ávallt setja virkni á innsláttarreit" msgid "" "Never let the list of strings take focus. If enabled, you must use Ctrl-" "arrows for keyboard navigation but you can also type text immediately, " "without having to press Tab to change focus." msgstr "" "Aldrei að leyfa lista yfir strengi að yfirtaka virkni. Ef þetta er virkjað, " "verður þú að nota CTRL-örvar til að flakka með lyklaborði, en þú getur líka " "slegið inn texta samstundis án þess að þurfa að þrýsta á TAB til að breyta " "hvar virknin er." msgid "Appearance" msgstr "Útlit" msgid "Use custom list font:" msgstr "Nota sérsniðið letur í listum:" msgid "Use custom text fields font:" msgstr "Nota sérsniðið letur í textareitum:" msgid "Change UI language" msgstr "Veldu tungumál fyrir notendaviðmót" #. TRANSLATORS: This is a note appended to "Check spelling" when running on older Windows versions msgid "(requires Windows 8 or newer)" msgstr "(krefst Windows 8 eða nýrra)" msgid "General" msgstr "Almennt" msgid "Use translation memory" msgstr "Nota þýðingaminni" msgid "Learn From Files…" msgstr "Læra út frá skrám…" msgid "Learn from files…" msgstr "Læra út frá skrám…" #. TRANSLATORS: This is a button that deletes everything in the translation memory (i.e. clears/resets it). msgid "Reset" msgstr "Endurstilla" #. TRANSLATORS: Followed by "match translations within the file" or "pre-translate from TM" msgid "When updating from sources" msgstr "Þegar frumtextar eru uppfærðir" #. TRANSLATORS: Preceded by "When updating from sources" msgid "fuzzy match within the file" msgstr "nota loðna þýðingu í skrá" #. TRANSLATORS: Preceded by "When updating from sources" msgid "pre-translate from TM" msgstr "forþýða úr þýðingaminni" msgid "" "Poedit can attempt to fill in new entries from only previous translations in " "the file or from your entire translation memory. Using the TM won’t be very " "effective if it’s near-empty, but it will get better as you add more " "translations to it." msgstr "" "Poedit getur reynt að fylla inn í nýjar þýðingar með eingöngu fyrri þýðingum " "í skránni, eða með færslum úr þýðingaminninu þínu. Að nota þýðingaminnið er " "ekkert sérstaklega öflugt ef það er hálftómt, en þessi aðgerð verður smátt " "og smátt betri eftir því sem þýðingar bætast við." msgid "Stored translations:" msgstr "Geymdar þýðingar:" msgid "Database size on disk:" msgstr "Stærð gagnagrunns á diski:" msgid "Select translation files to import" msgstr "Veldu þær þýðingaskrár sem á að flytja inn" msgid "Translation Memory" msgstr "Þýðingaminni" msgid "Importing translations…" msgstr "Flyt inn þýðingar…" msgid "Finalizing…" msgstr "Geng frá…" msgid "Reset translation memory" msgstr "Núllstilla þýðingaminni" msgid "Are you sure you want to reset the translation memory?" msgstr "Ertu viss um að þú viljir núllstilla þýðingaminnið?" msgid "" "Resetting the translation memory will irrevocably delete all stored " "translations from it. You can’t undo this operation." msgstr "" "Núllstilling þýðingaminnis mun endanlega eyða öllum geymdum þýðingum úr því. " "Ekki er hægt að afturkalla þessa aðgerð." msgid "Cancel" msgstr "Hætta við" #. TRANSLATORS: This is abbreviation of "Translation Memory" used in Preferences on macOS. #. Long text looks weird there, too short (like TM) too, but less so. "General" is about ideal #. length there. msgid "TM" msgstr "Þýð.minni" msgid "" "Source code extractors are used to find translatable strings in the source " "code files and extract them so that they can be translated." msgstr "" "Frumkóðaþáttarar (source code extractors) eru notaðir til að finna þýðanlega " "strengi inni í frumkóðaskrám og setja í nýjar skrár svo hægt sé að þýða " "strengina." msgid "Custom Extractors:" msgstr "Sérsniðnir þáttarar:" msgid "Custom extractors:" msgstr "Sérsniðnir þáttarar:" msgid "Edit…" msgstr "Breyta…" msgid "GNU gettext" msgstr "GNU gettext" msgid "" "Supports all programming languages recognized by GNU gettext tools (PHP, C/C+" "+, C#, Perl, Python, Java, JavaScript and others)." msgstr "" "Styður öll forritunarmál sem GNU-gettext verkfærin þekkja (PHP, C/C++, C#, " "Perl, Python, Java, JavaScript og fleiri)." msgid "Delete extractor" msgstr "Eyða þáttara" #, c-format msgid "Are you sure you want to delete the “%s” extractor?" msgstr "Ertu viss um að þú viljir eyða “%s” þáttaranum?" msgid "Extractors" msgstr "Þáttarar" msgid "Accounts" msgstr "Aðgangar" msgid "Automatically check for updates" msgstr "Athuga sjálfvirkt með uppfærslur" msgid "Include beta versions" msgstr "Beta-útgáfur meðtaldar" msgid "" "Beta versions contain the latest new features and improvements, but may be a " "bit less stable." msgstr "" "Beta-útgáfur innihalda nýjustu eiginleika og bætingu á þeim sem fyrir voru, " "en gætu verið óstöðugri." msgid "Updates" msgstr "Uppfærslur" msgid "" "These settings affect internal formatting of PO files. Adjust them if you " "have specific requirements e.g. because of version control." msgstr "" "Þessar stillingar hafa áhrif á innra snið PO-skráa. Breyttu þeim ef þú hefur " "sértækar þarfir eins og t.d. vegna útgáfustýringar." msgid "Line endings:" msgstr "Línuendingar:" msgid "Unix (recommended)" msgstr "Unix (mælt er með þessu)" msgid "Windows" msgstr "Gluggar" #. TRANSLATORS: Followed by text control for entering number; wraps text at given width msgid "Wrap at:" msgstr "Umbrjóta við:" msgid "Preserve formatting of existing files" msgstr "Vernda snið fyrirliggjandi skráa" msgid "Advanced" msgstr "Ítarlegt" msgid "Pre-translating…" msgstr "Forþýðing…" #, c-format msgid "Pre-translated %u string" msgid_plural "Pre-translated %u strings" msgstr[0] "Forþýddi %u streng" msgstr[1] "Forþýddi %u strengi" #. TRANSLATORS: This is a somewhat common term describing the action where #. you apply the translation memory and/or machine translation to all of the #. strings you're translating as the first step, followed by correcting, #. improving etc., i.e. actually translating the strings. This may be tricky #. to express in other languages as simply as in English, but please try to #. keep it similarly concise. Please try to avoid, if possible, describing it #. as "auto-translation" and similar, because such terminology would mislead #. some users into thinking it's all that needs to be done (spoken from #. experience). "Pre-translate" nicely expresses that it's only the step done #. *before* actual translation. msgid "Pre-translate" msgstr "Forþýða" msgid "Only fill in exact matches" msgstr "Einungis fylla inn nákvæmar samsvaranir" msgid "" "By default, inaccurate results are filled in as well and marked as needing " "work. Check this option to only include accurate matches." msgstr "" "Sjálfgefið eru ónákvæmar niðurstöður settar inn og merktar eins og þær " "þarfnist lagfæringa. Hakaðu við þennan valkost til að einungis nákvæmar " "samsvaranir séu settar inn." msgid "Don’t mark exact matches as needing work" msgstr "Ekki merkja nákvæmar samsvaranir sem ófullgerðar" msgid "" "Only enable if you trust the quality of your TM. By default, all matches " "from the TM are marked as needing work and should be reviewed before use." msgstr "" "Einungis virkja þetta ef þú treystir þýðingaminninu þínu. Sjálfgefið eru " "allar samsvaranir úr þýðingaminninu merktar eins og þær þarfnist lagfæringa, " "því ætti að yfirfara þær og leiðrétta áður en þær eru notaðar." msgid "" "Pre-translation automatically finds exact or fuzzy matches for untranslated " "strings in the translation memory and fills in their translations." msgstr "" "Forþýðing finnur sjálfvirkt í þýðingaminni nákvæmar eða loðnar samsvaranir " "fyrir óþýdda strengi og setur þær inn sem þýðingar." #, c-format msgid "%d entry was pre-translated." msgid_plural "%d entries were pre-translated." msgstr[0] "%d færsla var forþýdd." msgstr[1] "%d færslur voru forþýddar." msgid "" "The translations were marked as needing work, because they may be " "inaccurate. You should review them for correctness." msgstr "" "Þýðingarnar voru merktar eins og þær þarfnist lagfæringa vegna þess að þær " "gætu verið ónákvæmar. Þú ættir að yfirfara þær og leiðrétta ef þörf krefur." msgid "No entries could be pre-translated." msgstr "Ekki var hægt að forþýða neinar færslur." msgid "" "The TM doesn’t contain any strings similar to the content of this file. It " "is only effective for semi-automatic translations after Poedit learns enough " "from files that you translated manually." msgstr "" "Þýðingaminnið inniheldur ekki neina strengi sem líkjast innihaldi þessarar " "skráar. Þýðingaminnið er aðeins nothæft til hálf-sjálfvirkra þýðinga þegar " "Poedit er búið að læra nógu mikið af þýðingum sem þú ert búinn að framkvæma " "handvirkt." msgid "" "Drag and Drop Folders Here\n" "\n" "or use the + button" msgstr "" "Dragðu og slepptu möppum hér\n" "\n" "eða notaðu + hnappinn" msgid "" "Drag and drop folders here\n" "\n" "or use the + button" msgstr "" "Dragðu og slepptu möppum hér\n" "\n" "eða notaðu + hnappinn" msgid "Add Folders…" msgstr "Bæta við möppum…" msgid "Add folders…" msgstr "Bæta við möppum…" msgid "Add Files…" msgstr "Bæta við skrám…" msgid "Add files…" msgstr "Bæta við skrám…" msgid "Add Wildcard…" msgstr "Bæta við algildistákni…" msgid "Add wildcard…" msgstr "Bæta við algildistákni…" msgid "Paths" msgstr "Slóðir" msgid "Excluded paths" msgstr "Slóðir sem á að sleppa" msgid "Advanced extraction settings" msgstr "Ítarlegar þáttunarstillingar" msgid "Extract notes for translators from:" msgstr "Ná í minnispunkta fyrir þýðendur úr:" msgid "Comments prefixed with:" msgstr "Athugasemdir eru með forskeytinu:" msgid "All comments" msgstr "Allar athugasemdir" msgid "Additional xgettext flags:" msgstr "Viðbótar xgettext flögg:" msgid "Additional keywords" msgstr "Aukaleg stikkorð:" msgid "Name of the project the translation is for" msgstr "Heiti þýðingaverkefnis sem þýðingin er ætluð" msgid "Team name and email address or URL" msgstr "Heiti á teymi og tölvupóstfang eða vefslóð" msgid "e.g. nplurals=2; plural=(n > 1);" msgstr "t.d. nplurals=2; plural=(n > 1);" msgid "UTF-8 (recommended)" msgstr "UTF-8 (mælt er með þessu)" msgid "Please save the file first. This section cannot be edited until then." msgstr "" "Endilega vistaðu skrána fyrst. Ekki er hægt að sýsla með þennan hluta fyrr " "en það hefur verið gert." msgid "Not all plural forms are translated." msgstr "Ekki eru öll fleirtöluform þýdd." msgid "The translation should start as a sentence." msgstr "Þýðingin ætti að byrja sem setning." msgid "The translation should start with a lowercase character." msgstr "Þýðingin ætti að byrja á lágstaf." msgid "The translation doesn’t start with a space." msgstr "Þýðingin byrjar ekki á bili." msgid "The translation starts with a space, but the source text doesn’t." msgstr "Þýðingin byrjar með bili, en upprunatextinn gerir það ekki." msgid "The translation is missing a newline at the end." msgstr "Þýðinguna vantar línuskiptitákn við endann." msgid "The translation ends with a newline, but the source text doesn’t." msgstr "Þýðingin endar með línuskiptitákni, en upprunatextinn gerir það ekki." msgid "The translation is missing a space at the end." msgstr "Þýðinguna vantar bil við endann." msgid "The translation ends with a space, but the source text doesn’t." msgstr "Þýðingin endar með bili, en upprunatextinn gerir það ekki." #, c-format msgid "The translation should end with “%s”." msgstr "Þýðingin ætti að enda með “%s”." #, c-format msgid "The translation should not end with “%s”." msgstr "Þýðingin ætti ekki að enda með “%s”." #, c-format msgid "The translation ends with “%s”, but the source text ends with “%s”." msgstr "Þýðingin byrjar með “%s”, en upprunatextinn endar með “%s”." msgid "Comment:" msgstr "Athugasemd:" msgid "OK" msgstr "Í lagi" msgid "C&lear" msgstr "&Hreinsa" msgid "Clear the comment" msgstr "Hreinsa athugasemd" msgid "New" msgstr "Nýtt" msgid "Create new translations project" msgstr "Búa til nýtt þýðingarverkefni" msgid "Edit" msgstr "Breyta" msgid "Edit the project" msgstr "Breyta þýðingarverkefni" msgid "Delete the project" msgstr "Eyða þýðingaverkefninu" msgid "Update all" msgstr "Uppfæra allt" msgid "Update all catalogs in the project" msgstr "Uppfæra allar þýðingaskrár í verkefninu" msgid "Edit project" msgstr "Breyta þýðingaverkefni" msgid "Project name:" msgstr "Heiti verkefnis:" msgid "Browse" msgstr "Velja" msgid "Add directory to the list" msgstr "Bæta möppu við á lista" msgid "&New…" msgstr "&Nýtt…" msgid "New from &POT/PO file…" msgstr "Nýtt úr &POT/PO skrá…" msgid "New From &POT/PO File…" msgstr "Nýtt úr &POT/PO skrá…" msgid "&Open…" msgstr "&Opna…" msgid "Open Recent" msgstr "Opna nýlegt" msgid "Open from Crowdin…" msgstr "Opna frá Crowdin…" msgid "Open From Crowdin…" msgstr "Opna frá Crowdin…" msgid "&Close" msgstr "&Loka" msgid "&Save" msgstr "Vi&sta" msgid "Save &as…" msgstr "Vist&a sem..." msgid "Save &As…" msgstr "Vist&a sem..." msgid "Compile to MO…" msgstr "Vistþýða sem MO…" msgid "E&xport as HTML…" msgstr "&Flytja út sem HTML…" msgid "Check for updates…" msgstr "Athuga með uppfærslur…" msgid "&Preferences…" msgstr "&Kjörstillingar…" msgid "Catalogs &manager" msgstr "Þýðingas&kráastjórn" msgid "Catalogs &Manager" msgstr "Þýðingas&kráastjórn" msgid "E&xit" msgstr "&Hætta" msgid "Quit" msgstr "Hætta" msgid "Copy from singular" msgstr "Afrita úr eintölu" msgid "Copy From Singular" msgstr "Afrita úr eintölu" msgid "Translation needs &work" msgstr "Þýðin&g þarfnast lagfæringa" msgid "Translation Needs &Work" msgstr "Þýðin&g þarfnast lagfæringa" msgid "Edit &comment" msgstr "Breyta &athugasemd" msgid "Edit &Comment" msgstr "Breyta &athugasemd" msgid "Suggestions" msgstr "Tillögur" msgid "&Find…" msgstr "&Finna…" msgid "Replace…" msgstr "Skipta út…" msgid "Find next" msgstr "Finna næsta" msgid "Find previous" msgstr "Finna fyrra" msgid "Find and Replace…" msgstr "Finna og skipta út…" msgid "Find Next" msgstr "Finna næsta" msgid "Find Previous" msgstr "Finna fyrra" msgid "&Preferences" msgstr "S&tillingar" msgid "Display entry &IDs" msgstr "Birta &auðkenni færslu" msgid "Display Entry &IDs" msgstr "Birta &auðkenni færslu" msgid "Sort by &file order" msgstr "Raða eftir s&kráaröð" msgid "Sort by &File Order" msgstr "Raða eftir s&kráaröð" msgid "Sort by &source" msgstr "Raða eftir &frumtexta" msgid "Sort by &Source" msgstr "Raða eftir &frumtexta" msgid "Sort by &translation" msgstr "&Raða eftir þýðingu" msgid "Sort by &Translation" msgstr "&Raða eftir þýðingu" msgid "&Group by context" msgstr "&Hópa eftir samhengi" msgid "&Group By Context" msgstr "&Hópa eftir samhengi" msgid "Entries with errors first" msgstr "Færslur með villum fyrst" msgid "Entries with Errors First" msgstr "Færslur með villum fyrst" msgid "&Untranslated entries first" msgstr "Óþýddar &færslur fyrst" msgid "&Untranslated Entries First" msgstr "Óþýddar &færslur fyrst" msgid "&Show references" msgstr "&Sýna tilvísanir" msgid "&Show References" msgstr "&Sýna tilvísanir" msgid "Show sidebar" msgstr "Birta hliðarspjald" msgid "Show status bar" msgstr "Birta stöðustiku" msgid "C&atalog" msgstr "Þýðing&askrá" msgid "&Update from sources" msgstr "&Uppfæra frá frumkóða" msgid "&Update from Sources" msgstr "&Uppfæra frá uppruna" msgid "Update from &POT file…" msgstr "Uppfæra frá &POT skrá…" msgid "Update from &POT File…" msgstr "Uppfæra frá &POT skrá…" msgid "Sync with Crowdin" msgstr "Samstilla við Crowdin" msgid "Pre-&translate…" msgstr "F&or-þýða…" msgid "&Purge deleted translations" msgstr "&Henda eyddum þýðingum" msgid "&Purge Deleted Translations" msgstr "&Henda eyddum þýðingum" msgid "&Validate translations" msgstr "&Sannreyna þýðingar" msgid "&Validate Translations" msgstr "&Sannreyna þýðingar" msgid "&Properties…" msgstr "&Eiginleikar…" msgid "&Done and next" msgstr "&Lokið og næsta" msgid "&Done and Next" msgstr "&Lokið og næsta" msgid "&Previous translation" msgstr "&Fyrri þýðing" msgid "&Previous Translation" msgstr "&Fyrri þýðing" msgid "&Next translation" msgstr "&Næsta þýðing" msgid "&Next Translation" msgstr "&Næsta þýðing" msgid "P&revious unfinished" msgstr "&Fyrri ókláruð" msgid "P&revious Unfinished" msgstr "&Fyrri ókláruð" msgid "Ne&xt unfinished" msgstr "&Næsta óklárað" msgid "Ne&xt Unfinished" msgstr "&Næsta óklárað" msgid "Previous plural form" msgstr "Fyrri fleirtala" msgid "Previous Plural Form" msgstr "Fyrri fleirtala" msgid "Next plural form" msgstr "Næsta fleirtala" msgid "Next Plural Form" msgstr "Næsta fleirtala" msgid "&Online help" msgstr "&Hjálp á netinu" msgid "&Online Help" msgstr "&Hjálp á netinu" msgid "&GNU gettext manual" msgstr "&GNU gettext handbók" msgid "&GNU gettext Manual" msgstr "&GNU gettext handbók" msgid "&About Poedit" msgstr "&Um Poedit" msgid "&About" msgstr "&Um forritið" msgid "Extractor setup" msgstr "Uppsetning þáttara" msgid "List of extensions separated by semicolons (e.g. *.cpp;*.h):" msgstr "Listi yfir skráaendingar aðskilið með semikommu (dæmi. *.cpp, *.h):" msgid "Invocation:" msgstr "Ræsing:" msgid "Command to extract translations:" msgstr "Skipun til að ná í þýðingar:" msgid "" "This is the command used to launch the extractor.\n" "%o expands to the name of output file, %K to list\n" "of keywords, %F to list of input files,\n" "%C to charset flag (see below)." msgstr "" "Þetta er skipunin sem notuð er til að ræsa þáttarann.\n" "%o stendur fyrir úttaksheiti skráar, %K fyrir lista\n" "af stikkorðum, %F fyrir lista af inntaksskrám,\n" "%C fyrir flagg stafatöflu (sjá hér að neðan)." msgid "An item in keywords list:" msgstr "Atriði í lista yfir stikkorð:" msgid "" "This will be attached to the command line once\n" "for each keyword. %k expands to the keyword." msgstr "" "Þetta mun verða viðhengt á skipanalínu, einu sinni\n" "fyrir hvert stikkorð. %k kemur í stað stikkorðsins." msgid "An item in input files list:" msgstr "Atriði í lista yfir inntaksskrár:" #, c-format msgid "" "This will be attached to the command line once\n" "for each input file. %f expands to the filename." msgstr "" "Þetta mun verða viðhengt á skipanalínu, einu sinni\n" "fyrir hverja inntaksskrá. %f kemur í stað skráarheitisins." msgid "Source code charset:" msgstr "Stafatafla frumkóða:" #, c-format msgid "" "This will be attached to the command line\n" "only if source code charset was given. %c expands to charset value." msgstr "" "Þetta mun verða viðhengt á skipanalínu, einungis\n" "ef upprunaleg stafatafla hefur verið gefið upp. %c kemur í stað gildis " "stafatöflunnar." msgid "Catalog properties" msgstr "Eiginleikar þýðingaskrár" msgid "Project name and version:" msgstr "Nafn þýðingaverkefnis og útgáfunúmer:" msgid "Language team:" msgstr "Tungumálateymi:" msgid "Plural forms:" msgstr "Fleirtöluform:" msgid "Use default rules for this language" msgstr "Nota sjálfgefnar reglur fyrir þetta tungumál" msgid "Use custom expression" msgstr "Nota sérsniðna segð" msgid "Learn about plural forms" msgstr "Vita meira um fleirtöluform" msgid "Charset:" msgstr "Stafatafla:" msgid "Advanced Extraction Settings…" msgstr "Ítarlegar þáttunarstillingar…" msgid "Advanced extraction settings…" msgstr "Ítarlegar þáttunarstillingar…" msgid "Translation Properties" msgstr "Eiginleikar þýðingar" msgid "Translation properties" msgstr "Eiginleikar þýðingar" msgid "Sources Paths" msgstr "Slóðir upprunaskráa" msgid "Sources paths" msgstr "Slóðir upprunaskráa" msgid "Extract text from source files in the following directories:" msgstr "Ná í texta úr upprunaskrám í eftirfarandi möppum:" msgid "Base path:" msgstr "Grunnslóð:" msgid "Sources Keywords" msgstr "Stikkorð upprunaskráa" msgid "Sources keywords" msgstr "Stikkorð upprunaskráa" msgid "" "Use these keywords (function names) to recognize translatable strings\n" "in source files:" msgstr "" "Nota þessi stikkorð (aðgerðaheiti) til að auðkenna þýðanlega strengi\n" "í upprunaskrám:" msgid "Also use default keywords for supported languages" msgstr "Einnig nota sjálfgefin stikkorð fyrir studd tungumál" msgid "Learn About Gettext Keywords" msgstr "Vita meira um gettext stikkorð" msgid "Learn about gettext keywords" msgstr "Vita meira um gettext stikkorð" msgid "Update summary" msgstr "Samantekt uppfærslu" msgid "" "These strings were found in the sources but were not in the catalog.\n" "Poedit will add them to the catalog now." msgstr "" "Þessir strengir fundust í kóða, en fundust ekki í þýðingaskrá.\n" "Poedit mun nú bæta við þessum strengjum." msgid "New strings" msgstr "Nýir strengir" msgid "" "These strings are no longer in the sources.\n" "Poedit will remove them from the catalog now." msgstr "" "Þessir strengir eru ekki lengur í upprunaskrám.\n" "Poedit mun nú fjarlægja þessa strengi úr þýðingaskránni." msgid "Obsolete strings" msgstr "Úreltir strengir" msgid "(0 new, 0 obsolete)" msgstr "(0 nýjar, 0 úreltar)" msgid "Open" msgstr "Opna" msgid "Save catalog" msgstr "Vista þýðingaskrá" msgid "Validate" msgstr "Sannreyna" msgid "Check for errors in the translation" msgstr "Athuga með villur í þýðingum" msgid "Update" msgstr "Uppfæra" msgid "Update catalog - synchronize it with sources" msgstr "Uppfæra þýðingaskrár - samræma við upprunaskrár" msgid "Sidebar" msgstr "Hliðarspjald" msgid "Show or hide the sidebar" msgstr "Birta eða fela hliðarspjald" #. TRANSLATORS: "Previous" as in used in the past, now replaced with newer. msgid "Previous source text:" msgstr "Fyrri frumtexti:" msgid "" "The old source text (before it changed during an update) that the now-" "inaccurate translation corresponds to." msgstr "" "Eldri frumtextinn (áður en hann breyttist við uppfærslu) sem þýðingin (núna " "ónákvæm) á við." msgid "Notes for translators:" msgstr "Minnispunktar fyrir þýðendur:" msgid "Add comment" msgstr "Bæta við athugasemd" msgid "Add Comment" msgstr "Bæta við athugasemd" msgid "Translation suggestions:" msgstr "Þýðingatillögur:" #. TRANSLATORS: This is shown when no translation suggestions can be found in the TM (Windows). msgid "No matches found" msgstr "Engar samsvaranir fundust" #. TRANSLATORS: This is shown when no translation suggestions can be found in the TM (macOS, Linux). msgid "No Matches Found" msgstr "Engar samsvaranir fundust" msgid "This string was found in Poedit’s translation memory." msgstr "Þessi strengur fannst í þýðingaminni Poedit." msgid "Cannot create temporary directory." msgstr "Ekki tókst að búa til bráðabirgðamöppu." msgid "Welcome to Poedit" msgstr "Velkomin í Poedit" #. TRANSLATORS: This is version information in about dialog, "%s" will be #. version number when used #, c-format msgid "Version %s" msgstr "Útgáfa %s" msgid "Edit a Translation" msgstr "Breyta þýðingu" msgid "Edit a translation" msgstr "Breyta þýðingu" msgid "Open an existing PO file and edit the translation." msgstr "Opna PO-skrá sem er til staðar og sýsla með þýðingar." msgid "" "Take an existing PO file or POT template and create a new translation from " "it." msgstr "" "Taka PO-skrá eða POT-sniðmát sem er til staðar og búa til nýjar þýðingar út " "frá því." msgid "Collaborate on a Translation with Others" msgstr "Vinna þýðingu í samstarfi við aðra" msgid "Collaborate on a translation with others" msgstr "Vinna þýðingu í samstarfi við aðra" msgid "" "Download a file from Crowdin project, translate and sync your changes back." msgstr "" "Náðu í skrá úr Crowdin-verkefni, þýddu og samstilltu breytingarnar þínar til " "baka." msgid "What is Crowdin?" msgstr "Hvað er Crowdin?" msgid "There are no translations. That’s unusual." msgstr "Það eru engar þýðingar. Mjög óvenjulegt." msgid "" "Translatable entries aren’t added manually in the Gettext system, but are " "automatically extracted\n" "from source code. This way, they stay up to date and accurate.\n" "Translators typically use PO template files (POTs) prepared for them by the " "developer." msgstr "" "Þýðanlegum færslum er ekki bætt handvirkt inn í Gettext kerfinu, heldur er " "náð í þær sjálfvirkt\n" "úr grunnkóða. Þannig eykst nákvæmni og þær eru alltaf uppfærðar.\n" "Þýðendur nota venjulega PO-sniðmát (POT) sem forritarar hafa útbúið fyrir þá." msgid "(Learn more about GNU gettext)" msgstr "(Læra meira um GNU gettext)" msgid "The simplest way to fill this catalog is to update it from a POT:" msgstr "" "Einfaldasta leiðin til að fylla þessa þýðingaskrá er að uppfæra hana frá a " "POT skrá:" msgid "Update from POT" msgstr "Uppfæra frá POT skrá" msgid "Take translatable strings from an existing POT template." msgstr "Taka þýðanlega strengi úr POT sniðmáti sem til er fyrir." msgid "" "You can also extract translatable strings directly from the source code:" msgstr "Þú getur líka náð í þýðanlega strengi beint úr grunnkóðanum:" msgid "Extract from sources" msgstr "Ná í úr frumkóða" msgid "Configure source code extraction in Properties." msgstr "Stilla útdrátt/þáttun upprunakóða í kjörstillingum." msgid "Sync" msgstr "Samstilla" msgid "Synchronize the translation with Crowdin" msgstr "Samræma þýðinguna með Crowdin" #. TRANSLATORS: This is titlebar of about dialog, "%s" is application name #. ("Poedit" here, but please use "%s") #, c-format msgid "About %s" msgstr "Um %s" #. TRANSLATORS: Title of the preferences window on Windows and Linux. "%s" is replaced with "Poedit" when running. #, c-format msgid "%s Preferences" msgstr "Kjörstillingar %s" #. TRANSLATORS: macOS item in app menu msgid "Services" msgstr "Þjónustur" #. TRANSLATORS: macOS item in app menu, %s is replaced with "Poedit" #, c-format msgid "Hide %s" msgstr "Fela %s" #. TRANSLATORS: macOS item in app menu msgid "Hide Others" msgstr "Fela annað" #. TRANSLATORS: macOS item in app menu msgid "Show All" msgstr "Birta allt" #. TRANSLATORS: macOS item in app menu, %s is replaced with "Poedit" #, c-format msgid "Quit %s" msgstr "Hætta í %s" #. TRANSLATORS: macOS item in app menu msgid "Preferences…" msgstr "Kjörstillingar…" msgid "Preferences..." msgstr "Stillingar..." #. TRANSLATORS: Title of a category in Windows task menu (right-click icon in taskbar) msgid "Recent" msgstr "Nýlegt" #. TRANSLATORS: Title of a category in Windows task menu (right-click icon in taskbar) msgid "Frequent" msgstr "Algengt" msgid "&Apply" msgstr "Virkj&a" msgid "Apply" msgstr "Virkja" msgid "&Back" msgstr "Til &baka" msgid "Back" msgstr "Til baka" msgid "&Cancel" msgstr "&Hætta við" msgid "&Clear" msgstr "Hre&insa" msgid "Clear" msgstr "Hreinsa" msgid "Copy" msgstr "Afrita" msgid "Cu&t" msgstr "&Klippa" msgid "Cut" msgstr "Klippa" msgid "&Delete" msgstr "&Eyða" msgid "&Quit" msgstr "&Hætta" msgid "File" msgstr "Skrá" msgid "Help" msgstr "Hjálp" msgid "&New" msgstr "&Nýtt" msgid "&No" msgstr "&Nei" msgid "No" msgstr "Nei" msgid "&OK" msgstr "Í &lagi" msgid "Open…" msgstr "Opna…" msgid "&Open..." msgstr "&Opna..." msgid "Open..." msgstr "Opna..." msgid "&Paste" msgstr "&Líma" msgid "Paste" msgstr "Líma" msgid "Preferences" msgstr "Kjörstillingar" msgid "&Redo" msgstr "Endu&rtaka" msgid "Refresh" msgstr "Endurlesa" msgid "&Save as" msgstr "Vi&sta sem" msgid "Save as" msgstr "Vista sem" msgid "Select &All" msgstr "Velja &allt" msgid "Select All" msgstr "Velja allt" msgid "&Undo" msgstr "&Afturkalla" msgid "&Yes" msgstr "&Já" msgid "Yes" msgstr "Já" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Shift+" msgstr "Shift+" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Enter" msgstr "Enter" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Up" msgstr "Upp" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Down" msgstr "Niður" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Left" msgstr "Vinstri" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Right" msgstr "Hægri" #. TRANSLATORS: Keyboard shortcut, must correspond to translation of "Ctrl+" msgid "ctrl" msgstr "ctrl" #. TRANSLATORS: Keyboard shortcut, must correspond to translation of "Alt+" msgid "alt" msgstr "alt" #. TRANSLATORS: Keyboard shortcut, must correspond to translation of "Shift+" msgid "shift" msgstr "shift" poedit-2.0.6/locales/ga.po0000664000372000037200000015714413230132076012306 00000000000000msgid "" msgstr "" "Project-Id-Version: poedit\n" "Report-Msgid-Bugs-To: help@poedit.net\n" "POT-Creation-Date: 2017-12-05 15:52+0100\n" "PO-Revision-Date: 2017-12-05 09:48-0500\n" "Last-Translator: vslavik \n" "Language-Team: Irish\n" "Language: ga_IE\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=5; plural=(n==1 ? 0 : n==2 ? 1 : n<7 ? 2 : n<11 ? 3 : " "4);\n" "X-Generator: crowdin.com\n" "X-Crowdin-Project: poedit\n" "X-Crowdin-Language: ga-IE\n" "X-Crowdin-File: /locales/poedit.pot\n" msgid "Hide this notification message" msgstr "Cuir an fógra seo i bhfolach" msgid "Don’t Show Again" msgstr "Ná Taispeáin Arís" msgid "Don’t show again" msgstr "Ná taispeáin arís" #, c-format msgid "(New: %i, obsolete: %i)" msgstr "(Nua: %i, dulta i léig: %i)" msgid "Updating catalog" msgstr "Catalóg á nuashonrú" msgid "Collecting source files…" msgstr "Foinsí á mbailiú…" msgid "Extracting translatable strings…" msgstr "Teaghráin inaistrithe á mbailiú…" msgid "Failed to load extracted catalog." msgstr "Níorbh féidir an chatalóg a baineadh amach a lódáil." msgid "Merging differences…" msgstr "Difríochtaí á gcumasc…" #, c-format msgid "“%s” is not a valid POT file." msgstr "Ní comhad POT ceart é “%s”." #, c-format msgid "%i line of file “%s” was not loaded correctly." msgid_plural "%i lines of file “%s” were not loaded correctly." msgstr[0] "Níor luchtaíodh %i líne i gcomhad '%s' mar is ceart." msgstr[1] "Níor luchtaíodh %i líne i gcomhad '%s' mar is ceart." msgstr[2] "Níor luchtaíodh %i líne i gcomhad '%s' mar is ceart." msgstr[3] "Níor luchtaíodh %i líne i gcomhad '%s' mar is ceart." msgstr[4] "Níor luchtaíodh %i líne i gcomhad '%s' mar is ceart." #, c-format msgid "Line %d of file “%s” is corrupted (not valid %s data)." msgstr "Líne %d i gcomhad '%s' truaillithe (ní sonraí bailí %s é)." #, c-format msgid "Malformed header: “%s”" msgstr "Ceanntásc míchumtha: '%s'" msgid "" "Broken catalog file: singular form msgstr used together with msgid_plural" msgstr "" "Comhad clár briste: baineadh feidhm as leagan uatha mgstr le msgid_plural" msgid "Broken catalog file: plural form msgstr used without msgid_plural" msgstr "" "Comhad comhaid briste: baineadh feidhm as leagan iolrach mgstr gan " "msgid_plural" msgid "" "There were errors when loading the catalog. Some data may be missing or " "corrupted as the result." msgstr "" "Tharla botúin i rith luchtú an clár. D'fhéadfadh sonraí bheith in easnamh nó " "truaillithe dá bharr." #, c-format msgid "Couldn’t load file %s, it is probably corrupted." msgstr "Níorbh fhéidir comhad %s a lódáil, is dóigh go bhfuil sé truaillithe." #, c-format msgid "" "File “%s” is read-only and cannot be saved.\n" "Please save it under different name." msgstr "" "Is comhad inléite-amháin é “%s” agus ní féidir é a chur i dtaisce.\n" "Cuir i dtaisce é faoi ainm eile." #, c-format msgid "Couldn’t save file %s." msgstr "Níorbh fhéidir comhad %s a shábháil." msgid "" "There was a problem formatting the file nicely (but it was saved all right)." msgstr "" "Níorbh fhéidir leagan amach deas a chur ar an gcomhad (ach sábháladh é mar " "sin féin)." #, c-format msgid "" "The catalog couldn’t be saved in “%s” charset as specified in catalog " "settings.\n" "\n" "It was saved in UTF-8 instead and the setting was modified accordingly." msgstr "" "Níorbh fhéidir an chatalóg a shábháil mar “%s” de réir socruithe na " "catalóige.\n" "\n" "Sábháladh mar UTF-8 é agus athraíodh an socrú dá bharr sin." msgid "Error saving catalog" msgstr "Tharla botún ag chuir an clár i dtaisce" msgid "PO Translation Files" msgstr "Comhaid Aistriúcháin PO" msgid "POT Translation Templates" msgstr "Teimpléid Aistriúcháin POT" msgid "All Translation Files" msgstr "Gach Comhad Aistriúcháin" msgid "(Use default language)" msgstr "(Bain feidhm as an béarla réamhshocraithe)" msgid "Select your preferred language" msgstr "Roghnaigh do rogha béarla" msgid "Language selection" msgstr "Rogha béarla" msgid "You must restart Poedit for this change to take effect." msgstr "Caithfear Poedit a atosú chun an athrú a chur i bhfeidhm." msgid "Syncing" msgstr "Á shioncronú" #. TRANSLATORS: %s is a cloud destination, e.g. "Crowdin" or ftp.wordpress.com etc. #, c-format msgid "Syncing with %s…" msgstr "Ag sioncronú le %s…" #. TRANSLATORS: %s is a cloud destination, e.g. "Crowdin" or ftp.wordpress.com etc. #, c-format msgid "Syncing with %s failed." msgstr "Níorbh fhéidir sioncronú le %s." msgid "Syncing error" msgstr "Earráid le linn sioncronaithe" msgid "Downloading translations is disabled in this project." msgstr "Ní féidir aistriúcháin a íosluchtú don togra seo." msgid "Not authorized, please sign in again." msgstr "Níl cead agat. Logáil isteach arís." msgid "" "Crowdin is an online localization management platform and collaborative " "translation tool. Poedit can seamlessly sync PO files managed at Crowdin." msgstr "" "Is éard atá in Crowdin ná ardán logánaithe ar líne agus uirlis aistriúcháin. " "Tá Poedit ábalta comhaid aistriúcháin a shioncronú le Crowdin." msgid "Sign In" msgstr "Logáil isteach" msgid "Sign in" msgstr "Logáil isteach" msgid "Sign Out" msgstr "Logáil Amach" msgid "Sign out" msgstr "Logáil amach" msgid "Waiting for authentication…" msgstr "Ag fanacht le fíordheimhniú…" msgid "Updating user information…" msgstr "Sonraí an úsáideora á nuashonrú…" msgid "Signed in as:" msgstr "Logáilte isteach mar:" msgid "Learn More About Crowdin" msgstr "Tuilleadh eolais faoi Crowdin" msgid "Learn more about Crowdin" msgstr "Tuilleadh eolais faoi Crowdin" msgid "Sign in to Crowdin" msgstr "Logáil isteach i Crowdin" msgid "Open Crowdin translation" msgstr "Oscail aistriúchán Crowdin" msgid "Project:" msgstr "Tionscadal:" msgid "Language:" msgstr "Béarla:" msgid "File:" msgstr "Comhad:" msgid "No translation projects listed in your Crowdin account." msgstr "Níl aon tionscadail aistriúcháin ceangailte le do chuntas Crowdin." msgid "This project has no files that can be translated in Poedit." msgstr "Níl aon chomhaid is féidir a aistriú in Poedit sa tionscadal seo." msgid "This file can only be edited in Crowdin’s web interface." msgstr "" "Is trí chomhéadan Gréasáin Crowdin amháin gur féidir an comhad seo a chur in " "eagar." msgid "Downloading latest translations…" msgstr "Na haistriúcháin is déanaí á n-íosluchtú…" msgid "Syncing with Crowdin failed." msgstr "Níorbh fhéidir sioncronú le Crowdin." msgid "Crowdin error" msgstr "Earráid Crowdin" msgid "Uploading translations…" msgstr "Aistriúcháin á n-uasluchtú…" msgid "&Copy" msgstr "&Cóipeáil" msgid "Learn more" msgstr "Tuilleadh eolais" msgid "Learn More" msgstr "Tuilleadh Eolais" msgid "&Help" msgstr "&Cabhair" msgid "MO files can’t be directly edited in Poedit." msgstr "Ní féidir comhaid MO a chur in eagar go díreach in Poedit." msgid "Error opening file" msgstr "Earráid agus an comhad á oscailt" msgid "" "Please open and edit the corresponding PO file instead. When you save it, " "the MO file will be updated as well." msgstr "" "Oscail agus cuir an comhad PO in eagar ina áit sin. Nuair a shábhálfaidh tú " "é, nuashonrófar an comhad MO freisin." msgid "don’t delete temporary files (for debugging)" msgstr "ná scrios comhaid shealadacha (dífhabhtú)" msgid "handle a poedit:// URI" msgstr "déileáil le URI poedit://" msgid "go to item at given line number" msgstr "léim go dtí an mhír ar an líne shonraithe" msgid "Failed to communicate with Poedit process." msgstr "Theip ar chumarsáid leis an bpróiseas Poedit." #, c-format msgid "Unhandled exception occurred: %s" msgstr "Tharla earráid gan réiteach: %s" msgid "Open catalog" msgstr "Oscail clár" #, c-format msgid "File “%s” doesn’t exist." msgstr "Níl comhad “%s” ann." msgid "Poedit is an easy to use translations editor." msgstr "Is eagarthóir aistriúcháin é Poedit atá furasta feidhm a bhaint as." msgid "Catalogs Manager" msgstr "Bainisteoir na gCatalóg" msgid "Check for Updates…" msgstr "Lorg Nuashonruithe…" msgid "&Edit" msgstr "&Eagar" msgid "Undo" msgstr "Cealaigh" msgid "Redo" msgstr "Athdhéan" msgid "Paste and Match Style" msgstr "Paste and Match Style" msgid "Delete" msgstr "Scrios" msgid "Spelling and Grammar" msgstr "Litriú agus Gramadach" msgid "Show Spelling and Grammar" msgstr "Taispeáin Litriú agus Gramadach" msgid "Check Document Now" msgstr "Seiceáil an Cháipéis Anois" msgid "Check Spelling While Typing" msgstr "Seiceáil Litrithe Bheo" msgid "Check Grammar With Spelling" msgstr "Seiceáil Gramadach agus Litriú" msgid "Correct Spelling Automatically" msgstr "Seiceáil Litrithe go hUathoibríoch" msgid "Substitutions" msgstr "Ionadaithe" msgid "Show Substitutions" msgstr "Taispeáin Ionadaithe" msgid "Smart Copy/Paste" msgstr "Cóipeáil/Greamú Cliste" msgid "Smart Quotes" msgstr "Athfhriotail Chliste" msgid "Smart Dashes" msgstr "Daiseanna Cliste" msgid "Smart Links" msgstr "Nascanna Cliste" msgid "Text Replacement" msgstr "Ionadú Téacs" msgid "Transformations" msgstr "Claochluithe" msgid "Make Upper Case" msgstr "Cás Uachtair" msgid "Make Lower Case" msgstr "Cás Íochtair" msgid "Capitalize" msgstr "Ceannlitir" msgid "Speech" msgstr "Caint" msgid "Start Speaking" msgstr "Tosaigh ag Labhairt" msgid "Stop Speaking" msgstr "Stop ag Labhairt" msgid "&View" msgstr "&Amharc" msgid "Enter Full Screen" msgstr "Mód Lánscáileáin" msgid "Window" msgstr "Fuinneog" msgid "Minimize" msgstr "Íoslaghdaigh" msgid "Zoom" msgstr "Súmáil" msgid "Bring All to Front" msgstr "Tabhair Uile Chun Tosaigh" #. TRANSLATORS:File kind displayed in Finder/Explorer msgid "PO Translation" msgstr "Aistriúchán PO" msgid "The file cannot be opened." msgstr "Ní féidir an comhad a oscailt." msgid "Invalid file" msgstr "Comhad neamhbhailí" msgid "" "The file may be either corrupted or in a format not recognized by Poedit." msgstr "" "Seans go bhfuil an comhad truaillithe, nó ní aithníonn Poedit an fhormáid." msgid "You can’t drop more than one file on Poedit window." msgstr "" "Ní féidir ach comhad amháin a chaitheamh isteach ar an fhuinneog PoEdit." #, c-format msgid "File “%s” is not a message catalog." msgstr "Ní comhad aistriúcháin é “%s”." msgid "Poedit" msgstr "Poedit" msgid "&File" msgstr "&Comhad" msgid "&Go" msgstr "&Téigh" #. TRANSLATORS: %s is language name in its basic form (as you #. would see e.g. in a list of supported languages). You may need #. to rephrase it, e.g. to an equivalent of "for language %s". #, c-format msgid "" "Spellchecking is disabled, because the dictionary for %s isn’t installed." msgstr "Níl an litreoir ar fáil, toisc nach bhfuil foclóir %s ann." msgid "Install" msgstr "Suiteáil" msgid "Catalog modified. Do you want to save changes?" msgstr "Clár mionathraithe. Ar mhaith leat na hathruithe a chur i dtaisce?" msgid "Save changes" msgstr "Cuir i dtaisce na hathruithe" msgid "Your changes will be lost if you don’t save them." msgstr "Caillfidh tú do chuid athruithe mura sábhálfaidh tú iad." msgid "Save" msgstr "Cuir i dtaisce" msgid "Don’t save" msgstr "Ná sábháil" msgid "Don’t Save" msgstr "Ná Sábháil" msgid "Save as…" msgstr "Sábháil mar…" msgid "Compile to…" msgstr "Tiomsaigh mar…" msgid "Compiled Translation Files" msgstr "Comhaid Aistriúcháin Tiomsaithe" msgid "Export as…" msgstr "Easpórtáil mar…" msgid "HTML Files" msgstr "Comhaid HTML" msgid "Open catalog template" msgstr "Oscail fíoraí an chláir" msgid "Source code not available." msgstr "Níl an cód foinseach ar fáil." msgid "Updating failed" msgstr "Theip ar nuashonrú" msgid "" "Translations couldn’t be updated from the source code, because no code was " "found in the location specified in the catalog’s Properties." msgstr "" "Níorbh fhéidir na haistriúcháin a nuashonrú ón gcód foinseach, toisc nár " "aimsíodh aon chód san áit sainithe in airíonna na catalóige." msgid "Entries in the catalog are probably incorrect." msgstr "Is dóigh go bhfuil na hiontrálacha sa chlár mícheart." msgid "Updating the catalog failed. Click on 'Details >>' for details." msgstr "" "Theip ar nuashonrú na catalóige. Cliceáil 'Mionsonraí >>' chun tuilleadh " "eolais a fháil." #, c-format msgid "%d issue with the translation found." msgid_plural "%d issues with the translation found." msgstr[0] "Aimsíodh %d fhadhb leis an aistriúchán." msgstr[1] "Aimsíodh %d fhadhb leis an aistriúchán." msgstr[2] "Aimsíodh %d fhadhb leis an aistriúchán." msgstr[3] "Aimsíodh %d bhfadhb leis an aistriúchán." msgstr[4] "Aimsíodh %d fadhb leis an aistriúchán." msgid "Validation results" msgstr "Torthaí an bhailíochtaithe" msgid "" "Entries with errors were marked in red in the list. Details of the error " "will be shown when you select such an entry." msgstr "" "Marcáladh earráidí le cló dearg sa liosta. Gheobhaidh tú mionsonraí na " "hearráide nuair a roghnóidh tú iontráil sa liosta." msgid "The file was saved safely." msgstr "Sábháladh an comhad." msgid "" "The file was saved safely and compiled into the MO format, but it will " "probably not work correctly." msgstr "" "Sábháladh an comhad agus tiomsaíodh mar chomhad MO é, ach is dócha nach n-" "oibreoidh sé mar is ceart." msgid "" "The file was saved safely, but it cannot be compiled into the MO format and " "used." msgstr "Sábháladh an comhad, ach ní féidir é a thiomsú mar chomhad MO." msgid "" "The file was compiled into the MO format, but it will probably not work " "correctly." msgstr "" "Tiomsaíodh an comhad mar chomhad MO, ach is dócha nach n-oibreoidh sé mar is " "ceart." msgid "The file cannot be compiled into the MO format and used." msgstr "Ní féidir an comhad a thiomsú mar chomhad MO." msgid "No problems with the translation found." msgstr "Níor aimsíodh aon fhadhb leis an aistriúchán." #, c-format msgid "The translation is ready for use, but %d entry is not translated yet." msgid_plural "" "The translation is ready for use, but %d entries are not translated yet." msgstr[0] "" "Tá an t-aistriúchán réidh le húsáid, ach tá %d teaghrán gan aistriúchán fós." msgstr[1] "" "Tá an t-aistriúchán réidh le húsáid, ach tá %d theaghrán gan aistriúchán fós." msgstr[2] "" "Tá an t-aistriúchán réidh le húsáid, ach tá %d theaghrán gan aistriúchán fós." msgstr[3] "" "Tá an t-aistriúchán réidh le húsáid, ach tá %d dteaghrán gan aistriúchán fós." msgstr[4] "" "Tá an t-aistriúchán réidh le húsáid, ach tá %d teaghrán gan aistriúchán fós." msgid "The translation is ready for use." msgstr "Tá an t-aistriúchán réidh le húsáid." #, c-format msgid "Poedit automatically fixed invalid content in the file “%s”." msgstr "Dheisigh Poedit ábhar neamhbhailí sa chomhad \"%s\" go huathoibríoch." msgid "" "The file contained duplicate items, which is not allowed in PO files and " "would prevent the file from being used. Poedit fixed the issue, but you " "should review translations of any items marked as needing work and correct " "them if necessary." msgstr "" "Bhí teaghráin dhúblacha sa chomhad, rud nach gceadaítear i gcomhaid PO. " "Réitigh Poedit an fhadhb, ach ba chóir duit na haistriúcháin a bhfuil " "tuilleadh oibre de dhíth orthu a athbhreithniú." msgid "Language of the translation isn’t set." msgstr "Níl teanga an aistriúcháin socraithe." msgid "Set Language" msgstr "Roghnaigh Teanga" msgid "Set language" msgstr "Roghnaigh teanga" #. TRANSLATORS: This is shown underneath "Language of the translation isn't set (or ...is the same as source language)." msgid "" "Suggestions are not available if the translation language is not set " "correctly. Other features, such as plural forms, may be affected as well." msgstr "" "Ní féidir moltaí a fháil mura bhfuil teanga an aistriúcháin socraithe. Agus " "beidh fadhbanna agat le gnéithe eile freisin, mar shampla iolraí." msgid "Language of the translation is the same as source language." msgstr "Is ionann an bhunteanga agus an sprioctheanga." msgid "Fix Language" msgstr "Athraigh an Teanga" msgid "Fix language" msgstr "Athraigh an teanga" msgid "" "This catalog has entries with plural forms, but doesn’t have Plural-Forms " "header configured." msgstr "" "Tá iontrálacha iolra sa chatalóg seo, ach níl an ceanntásc Plural-Forms " "socraithe." msgid "" "Entries in this catalog have different plural forms count from what " "catalog’s Plural-Forms header says" msgstr "" "Ní ionann líon na n-iolraí sa chatalóg seo agus an líon atá sainithe ar an " "líne Plural-Forms" msgid "Required header Plural-Forms is missing." msgstr "Ceanntásc riachtanach Plural-Forms ar iarraidh." #, c-format msgid "Syntax error in Plural-Forms header (\"%s\")." msgstr "Earráid chomhréire ar an líne Plural-Forms (\"%s\")." msgid "Fix the Header" msgstr "Deisigh an Ceanntásc" msgid "Fix the header" msgstr "Deisigh an ceanntásc" #. TRANSLATORS: %s is language name in its basic form (as you #. would see e.g. in a list of supported languages). You may need #. to rephrase it, e.g. to an equivalent of "for language %s". #, c-format msgid "Plural forms expression used by the catalog is unusual for %s." msgstr "Tá an líne Plural-Forms sa chatalóg as an ngnáth don teanga seo: %s." #. TRANSLATORS: A verb, shown as action button with ""Plural forms expression used by the catalog is unusual for %s.")" msgid "Review" msgstr "Athbhreithniú" #, c-format msgid "Error loading message catalog file “%s”." msgstr "Tharla botún ag luchtú comhad clár teachtaireachtaí “%s”." #, c-format msgid "Translated: %d of %d (%d %%)" msgstr "Aistrithe: %d as %d (%d %%)" #, c-format msgid "Remaining: %d" msgstr "Fágtha: %d" #, c-format msgid "%d error" msgid_plural "%d errors" msgstr[0] "%d earráid" msgstr[1] "%d earráid" msgstr[2] "%d earráid" msgstr[3] "%d n-earráid" msgstr[4] "%d earráid" #, c-format msgid "%d entry" msgid_plural "%d entries" msgstr[0] "%d iontráil" msgstr[1] "%d iontráil" msgstr[2] "%d iontráil" msgstr[3] "%d n-iontráil" msgstr[4] "%d iontráil" msgid " (unsaved)" msgstr " (gan sábháil)" msgid " (modified)" msgstr " (mionathraithe)" #, c-format msgid "Failed to update translation memory: %s" msgstr "Níorbh fhéidir an chuimhne aistriúchán a nuashonrú: %s" msgid "Purge deleted translations" msgstr "Glan aistriúcháin scriosta" msgid "Do you want to remove all translations that are no longer used?" msgstr "" "An bhfuil fonn ort na haistriúcháin go léir nach bhfuil in úsáid a scriosadh?" msgid "" "If you continue with purging, all translations marked as deleted will be " "permanently removed. You will have to translate them again if they are added " "back in the future." msgstr "" "Má leanann tú ar aghaidh leis seo, déanfar léirscriosadh buan ar gach " "aistriúchán atá marcáilte \"scriosta\". Beidh sé ort iad a aistriú arís má " "chuirtear ar ais iad amach anseo." msgid "Keep" msgstr "Ná Scrios" msgid "Purge" msgstr "Scrios" msgid "Copy from source text" msgstr "Cóipeáil ón fhoinse" msgid "Copy from Source Text" msgstr "Cóipeáil ón Fhoinse" #. TRANSLATORS: This is the key shortcut used in menus on Windows, some languages call them differently #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Ctrl+" msgstr "Ctrl+" msgid "Clear translation" msgstr "Glan an t-aistriúchán" msgid "Clear Translation" msgstr "Glan an tAistriúchán" msgid "Edit comment" msgstr "Déan eagar ar an nóta tráchta" msgid "Edit Comment" msgstr "Cuir Nóta Tráchta in Eagar" msgid "References:" msgstr "Tagairtí:" msgid "&Bookmarks" msgstr "&Astail" #. TRANSLATORS: This is the key shortcut used in menus on Windows, some languages call them differently #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Alt+" msgstr "Alt+" #, c-format msgid "Set bookmark %i" msgstr "Socraigh leabharmharc a %i" #, c-format msgid "Go to bookmark %i" msgstr "Oscail leabharmharc a %i" #, c-format msgid "Set Bookmark %i" msgstr "Socraigh Leabharmharc a %i" #, c-format msgid "Go to Bookmark %i" msgstr "Oscail Leabharmharc a %i" msgid "Hide Sidebar" msgstr "Cuir an Barra Taoibh i bhfolach" msgid "Show Sidebar" msgstr "Taispeáin an Barra Taoibh" msgid "Hide Status Bar" msgstr "Cuir an Barra Stádais i bhfolach" msgid "Show Status Bar" msgstr "Taispeáin an Barra Stádais" msgid "Source text:" msgstr "Foinse:" msgid "Singular:" msgstr "Uatha:" msgid "Plural:" msgstr "Iolra:" msgid "Translation:" msgstr "Aistriúchán:" msgid "Pre-translated" msgstr "Réamhaistrithe" msgid "Needs Work" msgstr "Tuilleadh oibre de dhíth" #. TRANSLATORS: This indicates that the string's translation isn't final #. and has known problems. For example, it might be machine translated or #. fuzzy matched from an older string. The translation should be short and #. convey this. If it's problematic to translate it, "Needs review" is #. acceptable substitute, but note that the meaning is subtly different: #. "needs review" implies that somebody else should review the string after #. I am done with it (i.e. consider it good), while "needs work" implies I #. need to return to it and finish the translation. msgid "Needs work" msgstr "Tuilleadh oibre de dhíth" msgid "" "POT files are only templates and don’t contain any translations themselves.\n" "To make a translation, create a new PO file based on the template." msgstr "" "Níl sna comhaid POT ach teimpléid; níl aon aistriúcháin iontu.\n" "Chun aistriúchán a dhéanamh, cruthaigh comhad nua PO, bunaithe ar an " "teimpléad." msgid "Create New Translation" msgstr "Cruthaigh Aistriúchán Nua" msgid "Create new translation" msgstr "Cruthaigh aistriúchán nua" msgid "Everything" msgstr "Gach Rud" #, c-format msgid "Form %i" msgstr "Leagan %i" msgid "Singular" msgstr "Uatha" msgid "Zero" msgstr "Náid" msgid "One" msgstr "Aon" msgid "Two" msgstr "Dó" msgid "Plural" msgstr "Iolra" msgid "Other" msgstr "Eile" #, c-format msgid "%s Format" msgstr "Formáid %s" #. TRANSLATORS: %s is replaced with language name, e.g. "PHP" or "C", so "PHP Format" etc." #, c-format msgid "%s format" msgstr "Formáid %s" msgid "Source text" msgstr "Téacs foinseach" #, c-format msgid "Translation — %s" msgstr "Aistriúchán — %s" msgid "ID" msgstr "Aitheantas" #, c-format msgid "Source text — %s" msgstr "Téacs foinseach — %s" msgid "unknown language" msgstr "teanga anaithnid" #, c-format msgid "Failed command: %s" msgstr "Ordú teipthe: %s" msgid "Failed to merge gettext catalogs." msgstr "Theip ar cláir gettext a chumascú. " msgid "Source file" msgstr "Comhad foinse" msgid "Source file occurrence:" msgstr "Tagairt san fhoinse:" msgid "Open in Editor" msgstr "Oscail san Eagarthóir" msgid "Open in editor" msgstr "Oscail san eagarthóir" msgid "No references for the selected item." msgstr "Níl aon tagairt don mhír roghnaithe." #, c-format msgid "Error opening file %s!" msgstr "Tharla botún ag oscailt comhad %s!" msgid "Find" msgstr "Aimsigh" msgid "Replace" msgstr "Ionadaigh" #. TRANSLATORS: Expander in Find window for additional options (case sensitive etc.) msgid "Options" msgstr "Roghanna" msgid "Ignore case" msgstr "Ná bac le cás uachtair/íochtair" msgid "Wrap around" msgstr "Timfhilleadh" msgid "Whole words only" msgstr "Focail iomlán amháin" msgid "Find in source texts" msgstr "Aimsigh sna foinsí" msgid "Find in translations" msgstr "Cuardaigh in aistriúcháin" msgid "Find in comments" msgstr "Aimsigh sna nótaí tráchta" msgid "Close" msgstr "Dún" msgid "Replace &All" msgstr "Ionadaigh &Uile" msgid "Replace &all" msgstr "Ionadaigh &uile" msgid "&Replace" msgstr "&Ionadaigh" msgid "< &Previous" msgstr "< &Roimhe Seo" msgid "&Next >" msgstr "&Ar Aghaidh >" msgid "String to find" msgstr "Teaghrán le haimsiú" msgid "Replacement string" msgstr "Teaghrán le cur ina ionad" #, c-format msgid "Cannot execute program: %s" msgstr "Ní féidir an clár a rith: %s" msgid "Language Code or Name (e.g. en_GB)" msgstr "Cód nó Ainm na Teanga (m.sh. ga_IE)" msgid "Translation Language" msgstr "Sprioctheanga" msgid "Language of the translation:" msgstr "Teanga an aistriúcháin:" msgid "Poedit - Catalogs manager" msgstr "Poedit - Bainisteoir Clár" msgid "Catalog" msgstr "Clár" msgid "Total" msgstr "Iomlán" msgid "Untrans" msgstr "Neamhaistrithe" msgid "Errors" msgstr "Earráidí" msgid "Last modified" msgstr "Mionathraithe an uair deirineadh ar an" msgid "Select directory" msgstr "Select directory" msgid "Directories:" msgstr "Comhadlannaí:" msgid "" msgstr "" msgid "Do you want to delete the project?" msgstr "An dteastaíonn uait an togra a scrios?" msgid "Confirmation" msgstr "Dearbhú" msgid "" "Do you really want to do mass update of\n" "all catalogs in this project?" msgstr "" "An bhfuil tú cinnte go dteastaíonn uait nuashonrú ollmhór\n" "dos na cláir uile sa togra seo a dhéanamh?" msgid "Information about the translator" msgstr "Eolas faoin aistritheoir" msgid "Name:" msgstr "Ainm:" msgid "Your Name" msgstr "D'ainm" msgid "Email:" msgstr "Ríomhphost:" msgid "your_email@example.com" msgstr "do_sheoladh@example.com" msgid "" "Your name and email address are only used to set the Last-Translator header " "of GNU gettext files." msgstr "" "Ní úsáidfear d'ainm nó do sheoladh r-phoist ach ar an líne Last-Translator i " "gcomhaid GNU gettext." msgid "Editing" msgstr "Cur in Eagar" msgid "Automatically compile MO file when saving" msgstr "Tiomsaigh mar chomhad MO go huathoibríoch agus é á shábháil" msgid "Show summary after catalog update" msgstr "Taispeáin achoimre tar éis nuashonrú an clár" msgid "Check spelling" msgstr "Seiceáil an litriú" msgid "Always change focus to text input field" msgstr "Athruigh an sprioc i gcónaí chuig réimse inchur téacs" msgid "" "Never let the list of strings take focus. If enabled, you must use Ctrl-" "arrows for keyboard navigation but you can also type text immediately, " "without having to press Tab to change focus." msgstr "" "Ná riamh lig don réim teaghráin bheith mar sprioc. Má tá sé chumasaithe, " "caithfear feidhm a bhaint as na saighdeanna Ctrl le haghaidh an méarchlár a " "fheidhmiú ach is féidir téacs a chlóscríobh láithreach, gan Tab a bhrúigh " "chun an sprioc a athrú." msgid "Appearance" msgstr "Cuma" msgid "Use custom list font:" msgstr "Úsáid cló saincheaptha liosta:" msgid "Use custom text fields font:" msgstr "Úsáid cló saincheaptha i réimsí téacs:" msgid "Change UI language" msgstr "Athraigh teanga an chomhéadain" #. TRANSLATORS: This is a note appended to "Check spelling" when running on older Windows versions msgid "(requires Windows 8 or newer)" msgstr "(Windows 8 nó níos déanaí)" msgid "General" msgstr "Ginearálta" msgid "Use translation memory" msgstr "Úsáid cuimhne aistriúcháin" msgid "Learn From Files…" msgstr "Foghlaim ó chomhaid…" msgid "Learn from files…" msgstr "Foghlaim ó chomhaid…" #. TRANSLATORS: This is a button that deletes everything in the translation memory (i.e. clears/resets it). msgid "Reset" msgstr "Athshocraigh" #. TRANSLATORS: Followed by "match translations within the file" or "pre-translate from TM" msgid "When updating from sources" msgstr "Agus teaghráin sa bhunteanga á nuashonrú" #. TRANSLATORS: Preceded by "When updating from sources" msgid "fuzzy match within the file" msgstr "garbhmheaitseáil laistigh den chomhad" #. TRANSLATORS: Preceded by "When updating from sources" msgid "pre-translate from TM" msgstr "réamhaistriúchán ón chuimhne aistriúcháin" msgid "" "Poedit can attempt to fill in new entries from only previous translations in " "the file or from your entire translation memory. Using the TM won’t be very " "effective if it’s near-empty, but it will get better as you add more " "translations to it." msgstr "" "Is féidir leat Poedit iarracht a dhéanamh iontrálacha nua a líonadh ó " "aistriúcháin eile sa chomhad seo amháin, nó ón chuimhne aistriúcháin iomlán. " "Ní bheidh an TM ró-éifeachtach má tá sé beagnach folamh, ach tiocfaidh " "feabhas uirthi de réir a chéile." msgid "Stored translations:" msgstr "Aistriúcháin stóráilte:" msgid "Database size on disk:" msgstr "Méid an bhunachair sonraí ar an diosca:" msgid "Select translation files to import" msgstr "Roghnaigh comhaid aistriúcháin le hiompórtáil" msgid "Translation Memory" msgstr "Cuimhne Aistriúcháin" msgid "Importing translations…" msgstr "Aistriúcháin á n-iompórtáil…" msgid "Finalizing…" msgstr "Á chríochnú…" msgid "Reset translation memory" msgstr "Athshocraigh an cuimhneachán aistriúchán" msgid "Are you sure you want to reset the translation memory?" msgstr "" "An bhfuil tú cinnte gur mhaith leat an chuimhne aistriúcháin a athshocrú?" msgid "" "Resetting the translation memory will irrevocably delete all stored " "translations from it. You can’t undo this operation." msgstr "" "Má athshocraíonn tú an chuimhne aistriúcháin, scriosfar gach aistriúchán atá " "inti go buan. Ní féidir dul ar ais air seo." msgid "Cancel" msgstr "Cealaigh" #. TRANSLATORS: This is abbreviation of "Translation Memory" used in Preferences on macOS. #. Long text looks weird there, too short (like TM) too, but less so. "General" is about ideal #. length there. msgid "TM" msgstr "TM" msgid "" "Source code extractors are used to find translatable strings in the source " "code files and extract them so that they can be translated." msgstr "" "Baintear úsáid as bailitheoir chun teaghráin inaistrithe a aimsiú i mbunchód " "sa chaoi gur féidir iad aistriú." msgid "Custom Extractors:" msgstr "Bailitheoirí Saincheaptha:" msgid "Custom extractors:" msgstr "Bailitheoirí saincheaptha:" msgid "Edit…" msgstr "Eagar…" msgid "GNU gettext" msgstr "GNU gettext" msgid "" "Supports all programming languages recognized by GNU gettext tools (PHP, C/C+" "+, C#, Perl, Python, Java, JavaScript and others)." msgstr "" "Tacaíonn sé le gach teanga ríomhchlárúcháin a aithníonn na huirlisí GNU " "gettext (PHP, C/C++, C#, Perl, Python, Java, JavaScript agus cinn eile)." msgid "Delete extractor" msgstr "Scrios an bailitheoir" #, c-format msgid "Are you sure you want to delete the “%s” extractor?" msgstr "An bhfuil tú cinnte gur mhaith leat an bailitheoir \"%s\" a scriosadh?" msgid "Extractors" msgstr "Bailitheoirí" msgid "Accounts" msgstr "Cuntais" msgid "Automatically check for updates" msgstr "Lorg nuashonruithe go huathoibríoch" msgid "Include beta versions" msgstr "Leaganacha béite san áireamh" msgid "" "Beta versions contain the latest new features and improvements, but may be a " "bit less stable." msgstr "" "Gheobhaidh tú na gnéithe agus na feabhsúcháin is déanaí sa leagan béite, ach " "seans nach mbeidh sé chomh cobhsaí." msgid "Updates" msgstr "Nuashonruithe" msgid "" "These settings affect internal formatting of PO files. Adjust them if you " "have specific requirements e.g. because of version control." msgstr "" "Rachaidh na socruithe seo i bhfeidhm ar fhormáidiú inmheánach comhad PO. Is " "féidir leat iad a athrú má tá riachtanais ar leith agat, m.sh. mar gheall ar " "chóras rialaithe leaganacha." msgid "Line endings:" msgstr "Deireadh líne:" msgid "Unix (recommended)" msgstr "Unix (molta)" msgid "Windows" msgstr "Windows" #. TRANSLATORS: Followed by text control for entering number; wraps text at given width msgid "Wrap at:" msgstr "Timfhilleadh ag:" msgid "Preserve formatting of existing files" msgstr "Caomhnaigh an formáidiú i gcomhaid atá ann" msgid "Advanced" msgstr "Casta" msgid "Pre-translating…" msgstr "Réamhaistriúchán ar siúl…" #, c-format msgid "Pre-translated %u string" msgid_plural "Pre-translated %u strings" msgstr[0] "%u teaghrán réamhaistrithe" msgstr[1] "%u theaghrán réamhaistrithe" msgstr[2] "%u theaghrán réamhaistrithe" msgstr[3] "%u dteaghrán réamhaistrithe" msgstr[4] "%u teaghrán réamhaistrithe" #. TRANSLATORS: This is a somewhat common term describing the action where #. you apply the translation memory and/or machine translation to all of the #. strings you're translating as the first step, followed by correcting, #. improving etc., i.e. actually translating the strings. This may be tricky #. to express in other languages as simply as in English, but please try to #. keep it similarly concise. Please try to avoid, if possible, describing it #. as "auto-translation" and similar, because such terminology would mislead #. some users into thinking it's all that needs to be done (spoken from #. experience). "Pre-translate" nicely expresses that it's only the step done #. *before* actual translation. msgid "Pre-translate" msgstr "Réamhaistriúchán" msgid "Only fill in exact matches" msgstr "Ná húsáid ach meaitseálacha cruinne" msgid "" "By default, inaccurate results are filled in as well and marked as needing " "work. Check this option to only include accurate matches." msgstr "" "De réir réamhshocraithe, úsáidtear torthaí neamhchruinne ón TM agus " "marcáiltear go bhfuil tuilleadh oibre de dhíth orthu. Cuir tic anseo chun " "torthaí cruinne amháin a úsáid." msgid "Don’t mark exact matches as needing work" msgstr "Ná marcáil go bhfuil tuilleadh oibre de dhíth más meaitseáil chruinn é" msgid "" "Only enable if you trust the quality of your TM. By default, all matches " "from the TM are marked as needing work and should be reviewed before use." msgstr "" "Ná húsáid an rogha seo mura bhfuil an-mhuinín agat as do chuimhne " "aistriúcháin. De réir réamhshocraithe, marcálfar go bhfuil tuilleadh oibre " "de dhíth ar gach aistriúchán a thagann ón TM." msgid "" "Pre-translation automatically finds exact or fuzzy matches for untranslated " "strings in the translation memory and fills in their translations." msgstr "" "Le réamhaistriúchán, aimsítear meaitseálacha, cruinn nó neamhchruinn, ar " "theaghráin gan aistriúchán sa gcuimhne aistriúcháin." #, c-format msgid "%d entry was pre-translated." msgid_plural "%d entries were pre-translated." msgstr[0] "Rinneadh réamhaistriúchán ar %d teaghrán." msgstr[1] "Rinneadh réamhaistriúchán ar %d theaghrán." msgstr[2] "Rinneadh réamhaistriúchán ar %d theaghrán." msgstr[3] "Rinneadh réamhaistriúchán ar %d dteaghrán." msgstr[4] "Rinneadh réamhaistriúchán ar %d teaghrán." msgid "" "The translations were marked as needing work, because they may be " "inaccurate. You should review them for correctness." msgstr "" "Marcáladh go bhfuil tuilleadh oibre de dhíth ar na haistriúcháin toisc gurbh " "fhéidir nach bhfuil siad cruinn. Ba chóir duit iad a athbhreithniú." msgid "No entries could be pre-translated." msgstr "Níorbh fhéidir réamhaistriúchán a dhéanamh ar theaghrán ar bith." msgid "" "The TM doesn’t contain any strings similar to the content of this file. It " "is only effective for semi-automatic translations after Poedit learns enough " "from files that you translated manually." msgstr "" "Níl aon teaghráin cosúil le hábhar an chomhaid seo sa gcuimhne aistriúcháin. " "Ní bheidh an TM éifeachtach go dtí go mbaileoidh Poedit go leor comhad a " "aistríonn tú de láimh." msgid "" "Drag and Drop Folders Here\n" "\n" "or use the + button" msgstr "" "Tarraing agus Scaoil Fillteáin Anseo\n" "\n" "nó úsáid an cnaipe +" msgid "" "Drag and drop folders here\n" "\n" "or use the + button" msgstr "" "Tarraing agus scaoil fillteáin anseo\n" "\n" "nó úsáid an cnaipe +" msgid "Add Folders…" msgstr "Cuir Fillteáin Leis…" msgid "Add folders…" msgstr "Cuir fillteáin leis…" msgid "Add Files…" msgstr "Cuir Comhaid Leis…" msgid "Add files…" msgstr "Cuir comhaid leis…" msgid "Add Wildcard…" msgstr "Cuir Saoróg leis…" msgid "Add wildcard…" msgstr "Cuir saoróg leis…" msgid "Paths" msgstr "Cosáin:" msgid "Excluded paths" msgstr "Cosáin eisiata" msgid "Advanced extraction settings" msgstr "Ardsocruithe bailithe" msgid "Extract notes for translators from:" msgstr "Bailigh nótaí le haghaidh aistritheoirí ó:" msgid "Comments prefixed with:" msgstr "Réimír roimh nótaí tráchta:" msgid "All comments" msgstr "Gach nóta tráchta" msgid "Additional xgettext flags:" msgstr "Bratacha breise xgettext:" msgid "Additional keywords" msgstr "Lorgfhocail sa bhreis" msgid "Name of the project the translation is for" msgstr "Ainm an tionscadail a mbaineann an t-aistriúchán leis" msgid "Team name and email address or URL" msgstr "Ainm na foirne agus seoladh rphoist nó URL" msgid "e.g. nplurals=2; plural=(n > 1);" msgstr "m.sh. nplurals=2; plural=(n > 1);" msgid "UTF-8 (recommended)" msgstr "UTF-8 (molta)" msgid "Please save the file first. This section cannot be edited until then." msgstr "" "Sábháil an comhad ar dtús. Ní féidir an rannán seo a chur in eagar go dtí go " "sábhálfaidh tú é." msgid "Not all plural forms are translated." msgstr "Níl gach foirm iolra aistrithe." msgid "The translation should start as a sentence." msgstr "Ba chóir an t-aistriúchán a thosú mar abairt." msgid "The translation should start with a lowercase character." msgstr "Ba chóir don aistriúchán a thosú le litir bheag." msgid "The translation doesn’t start with a space." msgstr "Ní thosaíonn an t-aistriúchán le spás." msgid "The translation starts with a space, but the source text doesn’t." msgstr "" "Tosaíonn an t-aistriúchán le spás, ach ní thosaíonn an buntéacs le spás." msgid "The translation is missing a newline at the end." msgstr "Tá spás ar iarraidh ag deireadh an aistriúcháin." msgid "The translation ends with a newline, but the source text doesn’t." msgstr "Tá líne nua ag deireadh an aistriúcháin cé nach bhfuil sa mbuntéacs." msgid "The translation is missing a space at the end." msgstr "Tá spás ar iarraidh ag deireadh an aistriúcháin." msgid "The translation ends with a space, but the source text doesn’t." msgstr "Tá spás ag deireadh an aistriúcháin cé nach bhfuil sa mbuntéacs." #, c-format msgid "The translation should end with “%s”." msgstr "Ba chóir “%s” a bheith ag deireadh an aistriúcháin." #, c-format msgid "The translation should not end with “%s”." msgstr "Níor chóir “%s” a bheith ag deireadh an aistriúcháin." #, c-format msgid "The translation ends with “%s”, but the source text ends with “%s”." msgstr "" "Tá “%s” ag deireadh an aistriúcháin, ach tá “%s” ag deireadh an bhuntéacs." msgid "Comment:" msgstr "Nóta tráchta:" msgid "OK" msgstr "Tá go maith" msgid "C&lear" msgstr "G&lan" msgid "Clear the comment" msgstr "Glan an nóta tráchta" msgid "New" msgstr "Nua" msgid "Create new translations project" msgstr "Cruthaigh togra aistriúcháin nua" msgid "Edit" msgstr "Déan eagar" msgid "Edit the project" msgstr "Déan eagar ar an togra" msgid "Delete the project" msgstr "Scrios an togra" msgid "Update all" msgstr "Nuashonraigh uile" msgid "Update all catalogs in the project" msgstr "Nuashonraigh gach clár sa togra" msgid "Edit project" msgstr "Déan eagar ar an togra" msgid "Project name:" msgstr "Ainm an togra:" msgid "Browse" msgstr "Siortaigh" msgid "Add directory to the list" msgstr "Cuir comhadlann leis an réim" msgid "&New…" msgstr "&Nua…" msgid "New from &POT/PO file…" msgstr "Ceann nua ó chomhad &POT/PO…" msgid "New From &POT/PO File…" msgstr "Ceann nua ó chomhad &POT/PO…" msgid "&Open…" msgstr "&Oscail…" msgid "Open Recent" msgstr "Oscail Comhaid Le Déanaí" msgid "Open from Crowdin…" msgstr "Oscail ó Crowdin…" msgid "Open From Crowdin…" msgstr "Oscail ó Crowdin…" msgid "&Close" msgstr "&Dún" msgid "&Save" msgstr "&Cuir i dtaisce" msgid "Save &as…" msgstr "Sábháil m&ar…" msgid "Save &As…" msgstr "Sábháil M&ar…" msgid "Compile to MO…" msgstr "Tiomsaigh go MO…" msgid "E&xport as HTML…" msgstr "Ea&spórtáil mar HTML…" msgid "Check for updates…" msgstr "Lorg nuashonruithe…" msgid "&Preferences…" msgstr "&Sainroghanna…" msgid "Catalogs &manager" msgstr "&Bainisteoir clár" msgid "Catalogs &Manager" msgstr "&Bainisteoir na gCatalóg" msgid "E&xit" msgstr "S&coir" msgid "Quit" msgstr "Scoir" msgid "Copy from singular" msgstr "Cóipeáil ón uatha" msgid "Copy From Singular" msgstr "Cóipeáil ón Uatha" msgid "Translation needs &work" msgstr "Tuilleadh &oibre de dhíth" msgid "Translation Needs &Work" msgstr "Tuilleadh &oibre de dhíth" msgid "Edit &comment" msgstr "Déan eagar ar an &nóta tráchta" msgid "Edit &Comment" msgstr "Cuir &Nóta Tráchta in Eagar" msgid "Suggestions" msgstr "Moltaí" msgid "&Find…" msgstr "&Aimsigh…" msgid "Replace…" msgstr "Ionadaigh…" msgid "Find next" msgstr "An chéad toradh eile" msgid "Find previous" msgstr "An toradh roimhe seo" msgid "Find and Replace…" msgstr "Aimsigh agus Ionadaigh…" msgid "Find Next" msgstr "An chéad toradh eile" msgid "Find Previous" msgstr "An toradh roimhe seo" msgid "&Preferences" msgstr "&Sainroghanna" msgid "Display entry &IDs" msgstr "Ta&ispeáin aitheantóirí na n-iontrálacha" msgid "Display Entry &IDs" msgstr "Ta&ispeáin aitheantóirí na n-iontrálacha" msgid "Sort by &file order" msgstr "Sórtáil mar atá sa &chomhad" msgid "Sort by &File Order" msgstr "Sórtáil mar atá sa &chomhad" msgid "Sort by &source" msgstr "Sórtáil de réir &foinse" msgid "Sort by &Source" msgstr "Sórtáil de réir &Foinse" msgid "Sort by &translation" msgstr "Sórtáil de réir &aistriúcháin" msgid "Sort by &Translation" msgstr "Sórtáil de réir &Aistriúcháin" msgid "&Group by context" msgstr "&Grúpáil de réir comhthéacs" msgid "&Group By Context" msgstr "&Grúpáil de réir Comhthéacs" msgid "Entries with errors first" msgstr "Iontrálacha a bhfuil earráidí iontu ar dtús" msgid "Entries with Errors First" msgstr "Iontrálacha a bhfuil earráidí iontu ar dtús" msgid "&Untranslated entries first" msgstr "Iontrálacha &gan aistriú ar dtús" msgid "&Untranslated Entries First" msgstr "Iontrálacha &gan aistriú ar dtús" msgid "&Show references" msgstr "&Taispeáin tagairtí" msgid "&Show References" msgstr "&Taispeáin Tagairtí" msgid "Show sidebar" msgstr "Taispeáin an barra taoibh" msgid "Show status bar" msgstr "Taispeáin an barra stádais" msgid "C&atalog" msgstr "C&omhad" msgid "&Update from sources" msgstr "&Nuashonraigh ó foinsí" msgid "&Update from Sources" msgstr "&Nuashonraigh ó Foinsí" msgid "Update from &POT file…" msgstr "Nuashonraigh ó chomhad &POT…" msgid "Update from &POT File…" msgstr "Nuashonraigh ó Chomhad &POT…" msgid "Sync with Crowdin" msgstr "Sioncronaigh le Crowdin" msgid "Pre-&translate…" msgstr "Réamhais&triúchán…" msgid "&Purge deleted translations" msgstr "&Glan na haistriúcháin scriosta" msgid "&Purge Deleted Translations" msgstr "&Glan na hAistriúcháin Scriosta" msgid "&Validate translations" msgstr "&Bailíochtaigh aistriúcháin" msgid "&Validate Translations" msgstr "&Bailíochtaigh Aistriúcháin" msgid "&Properties…" msgstr "&Airíonna…" msgid "&Done and next" msgstr "&Críochnú agus dul ar aghaidh" msgid "&Done and Next" msgstr "&Críochnú agus dul ar aghaidh" msgid "&Previous translation" msgstr "An t-aistriúchán &roimhe seo" msgid "&Previous Translation" msgstr "An tAistriúchán &Roimhe Seo" msgid "&Next translation" msgstr "&An chéad aistriúchán eile" msgid "&Next Translation" msgstr "An &Chéad Aistriúchán Eile" msgid "P&revious unfinished" msgstr "Teagh&rán gan chríochnú roimhe seo" msgid "P&revious Unfinished" msgstr "Teagh&rán gan chríochnú roimhe seo" msgid "Ne&xt unfinished" msgstr "An &chéad cheann eile gan chríochnú" msgid "Ne&xt Unfinished" msgstr "An &chéad cheann eile gan chríochnú" msgid "Previous plural form" msgstr "An t-iolra roimhe seo" msgid "Previous Plural Form" msgstr "An tIolra Roimhe Seo" msgid "Next plural form" msgstr "An chéad iolra eile" msgid "Next Plural Form" msgstr "An Chéad Iolra Eile" msgid "&Online help" msgstr "Cúnamh &ar líne" msgid "&Online Help" msgstr "Cúnamh &Ar Líne" msgid "&GNU gettext manual" msgstr "Cáipéisí gettext &GNU" msgid "&GNU gettext Manual" msgstr "Cáipéisí gettext &GNU" msgid "&About Poedit" msgstr "&Maidir le Poedit" msgid "&About" msgstr "&Maidir Leis" msgid "Extractor setup" msgstr "Socrú an bhailitheora" msgid "List of extensions separated by semicolons (e.g. *.cpp;*.h):" msgstr "Réim breiseáin scartha le leathstadanna (m.sh. *.cpp;*.h):" msgid "Invocation:" msgstr "Gairm:" msgid "Command to extract translations:" msgstr "Ordú chun aistriúcháin a bhailiú:" msgid "" "This is the command used to launch the extractor.\n" "%o expands to the name of output file, %K to list\n" "of keywords, %F to list of input files,\n" "%C to charset flag (see below)." msgstr "" "Seo é an t-ordú chun an bailitheoir a thosú.\n" "Is é %o ainm an aschomhaid, is é %K liosta lorgfhocal,\n" "%F liosta inchomhad,\n" "agus %C an tacar carachtar (féach thíos)." msgid "An item in keywords list:" msgstr "Mír i réim na treoirfhocail:" msgid "" "This will be attached to the command line once\n" "for each keyword. %k expands to the keyword." msgstr "" "Ceanglófar é seo chuig líne na n-orduithe uair amháin\n" "do gach treoirfhocal. Leathnaíonn &k chuig an treoirfhocal." msgid "An item in input files list:" msgstr "Mír i réim na comhaid inchur:" #, c-format msgid "" "This will be attached to the command line once\n" "for each input file. %f expands to the filename." msgstr "" "Ceanglófar é seo chuig líne na n-orduithe uair amháin\n" "do gach comhad inchur. Leathnaíonn %f chuig an ainm comhad." msgid "Source code charset:" msgstr "Tagairt foinse foireann litreacha:" #, c-format msgid "" "This will be attached to the command line\n" "only if source code charset was given. %c expands to charset value." msgstr "" "Ceanglófar é seo le líne na n-orduithe\n" "amháin má tugadh tacar carachtar an chóid. Leathnaíonn %c go dtí an tacar " "carachtar." msgid "Catalog properties" msgstr "Airíonna na catalóige" msgid "Project name and version:" msgstr "Ainm agus leagan an togra:" msgid "Language team:" msgstr "Foireann teanga:" msgid "Plural forms:" msgstr "Leaganacha iolra:" msgid "Use default rules for this language" msgstr "Úsáid rialacha réamhshocraithe na teanga seo" msgid "Use custom expression" msgstr "Úsáid slonn saincheaptha" msgid "Learn about plural forms" msgstr "Tuilleadh eolais maidir le hiolraí" msgid "Charset:" msgstr "Foireann litreacha:" msgid "Advanced Extraction Settings…" msgstr "Ardsocruithe Bailithe…" msgid "Advanced extraction settings…" msgstr "Ardsocruithe bailithe…" msgid "Translation Properties" msgstr "Airíonna an Aistriúcháin" msgid "Translation properties" msgstr "Airíonna an aistriúcháin" msgid "Sources Paths" msgstr "Cosáin na bhFoinsí" msgid "Sources paths" msgstr "Cosáin na bhfoinsí" msgid "Extract text from source files in the following directories:" msgstr "Faigh téacs ó comhaid fhoinseacha sna comhadlanna seo a leanas:" msgid "Base path:" msgstr "Cosán bunaidh:" msgid "Sources Keywords" msgstr "Lorgfhocail sna Foinsí" msgid "Sources keywords" msgstr "Lorgfhocail sna foinsí" msgid "" "Use these keywords (function names) to recognize translatable strings\n" "in source files:" msgstr "" "Úsáid na lorgfhocail seo (ainmneacha ar fheidhmeanna) chun teacht ar " "theaghráin\n" "inaistrithe san fhoinse:" msgid "Also use default keywords for supported languages" msgstr "" "Bain úsáid as lorgfhocail réamhshocraithe le haghaidh teangacha a dtacaítear " "leo" msgid "Learn About Gettext Keywords" msgstr "Maidir le Lorgfhocail gettext" msgid "Learn about gettext keywords" msgstr "Maidir le lorgfhocail gettext" msgid "Update summary" msgstr "Nuashonraigh achoimre" msgid "" "These strings were found in the sources but were not in the catalog.\n" "Poedit will add them to the catalog now." msgstr "" "Aimsíodh na teaghráin seo sna foinsí ach ní raibh siad sa chlár.\n" "Cuirfidh Poedit sa chlár iad anois." msgid "New strings" msgstr "Teaghráin nua" msgid "" "These strings are no longer in the sources.\n" "Poedit will remove them from the catalog now." msgstr "" "Níl na teaghráin seo sna foinsí a thuilleadh.\n" "Bainfidh Poedit iad ón chlár anois." msgid "Obsolete strings" msgstr "Teaghráin as feidhm" msgid "(0 new, 0 obsolete)" msgstr "(0 nua, 0 as feidhm)" msgid "Open" msgstr "Oscail" msgid "Save catalog" msgstr "Cuir an clár i dtaisce" msgid "Validate" msgstr "Deimhnigh" msgid "Check for errors in the translation" msgstr "Lorg botúin sna haistriúcháin" msgid "Update" msgstr "Nuashonraigh" msgid "Update catalog - synchronize it with sources" msgstr "Nuashonraigh an clár - comhaimsearaigh é le foinsí" msgid "Sidebar" msgstr "Barra taoibh" msgid "Show or hide the sidebar" msgstr "Taispeáin nó folaigh an barra taoibh" #. TRANSLATORS: "Previous" as in used in the past, now replaced with newer. msgid "Previous source text:" msgstr "Seantéacs foinseach:" msgid "" "The old source text (before it changed during an update) that the now-" "inaccurate translation corresponds to." msgstr "" "An sean-bhuntéacs (sular athraigh sé) a fhreagraíonn an t-aistriúchán (atá " "míchruinn anois) dó." msgid "Notes for translators:" msgstr "Nótaí ar son aistritheoirí:" msgid "Add comment" msgstr "Cuir nóta tráchta leis" msgid "Add Comment" msgstr "Cuir nóta tráchta leis" msgid "Translation suggestions:" msgstr "Aistriúcháin mholta:" #. TRANSLATORS: This is shown when no translation suggestions can be found in the TM (Windows). msgid "No matches found" msgstr "Gan torthaí" #. TRANSLATORS: This is shown when no translation suggestions can be found in the TM (macOS, Linux). msgid "No Matches Found" msgstr "Gan Torthaí" msgid "This string was found in Poedit’s translation memory." msgstr "Aimsíodh an teaghrán seo i gcuimhne aistriúcháin Poedit." msgid "Cannot create temporary directory." msgstr "Ní féidir comhadlann shealadach a chruthú." msgid "Welcome to Poedit" msgstr "Fáilte go dtí Poedit" #. TRANSLATORS: This is version information in about dialog, "%s" will be #. version number when used #, c-format msgid "Version %s" msgstr "Leagan %s" msgid "Edit a Translation" msgstr "Cuir Aistriúchán in Eagar" msgid "Edit a translation" msgstr "Cuir aistriúchán in eagar" msgid "Open an existing PO file and edit the translation." msgstr "Oscail comhad PO atá ann agus cuir an t-aistriúchán in eagar." msgid "" "Take an existing PO file or POT template and create a new translation from " "it." msgstr "Cruthaigh aistriúchán nua as comhad PO atá ann, nó as teimpléad POT." msgid "Collaborate on a Translation with Others" msgstr "Déan comhoibriú ar aistriúchán" msgid "Collaborate on a translation with others" msgstr "Déan comhoibriú ar aistriúchán" msgid "" "Download a file from Crowdin project, translate and sync your changes back." msgstr "" "Íoslódáil comhad ó thionscadal Crowdin, aistrigh é, agus sioncronaigh na " "hathruithe." msgid "What is Crowdin?" msgstr "Cad é Crowdin?" msgid "There are no translations. That’s unusual." msgstr "Níl aon aistriúcháin ann. Nach ait é sin." msgid "" "Translatable entries aren’t added manually in the Gettext system, but are " "automatically extracted\n" "from source code. This way, they stay up to date and accurate.\n" "Translators typically use PO template files (POTs) prepared for them by the " "developer." msgstr "" "Ní chuirtear teaghráin inaistrithe nua leis an gcomhad de láimh sa chóras " "Gettext. Ina áit sin,\n" "baintear go díreach ón bhunchod iad. Sa chaoi seo, fanann siad cruinn agus " "cothrom le dáta.\n" "De ghnáth, úsáideann aistritheoirí teimpléid PO (comhaid POT) a ullmhaíonn " "an forbróir." msgid "(Learn more about GNU gettext)" msgstr "(Tuilleadh eolais faoi GNU gettext)" msgid "The simplest way to fill this catalog is to update it from a POT:" msgstr "" "An bealach is fusa an chatalóg seo a líonadh ná nuashonrú ó chomhad POT:" msgid "Update from POT" msgstr "Nuashonrú ó POT" msgid "Take translatable strings from an existing POT template." msgstr "Tóg teaghráin inaistrithe ó theimpléad POT atá ann." msgid "" "You can also extract translatable strings directly from the source code:" msgstr "" "Nó is féidir leat teaghráin inaistrithe a bhailiú go díreach ón bhunchód:" msgid "Extract from sources" msgstr "Faigh teaghráin ón chód" msgid "Configure source code extraction in Properties." msgstr "Cumraigh an próiseas bailithe teaghrán ó bhunchód sna hAiríonna." msgid "Sync" msgstr "Siocronaigh" msgid "Synchronize the translation with Crowdin" msgstr "Sioncronaigh an t-aistriúchán le Crowdin" #. TRANSLATORS: This is titlebar of about dialog, "%s" is application name #. ("Poedit" here, but please use "%s") #, c-format msgid "About %s" msgstr "Maidir le %s" #. TRANSLATORS: Title of the preferences window on Windows and Linux. "%s" is replaced with "Poedit" when running. #, c-format msgid "%s Preferences" msgstr "Sainroghanna %s" #. TRANSLATORS: macOS item in app menu msgid "Services" msgstr "Seirbhísí" #. TRANSLATORS: macOS item in app menu, %s is replaced with "Poedit" #, c-format msgid "Hide %s" msgstr "Folaigh %s" #. TRANSLATORS: macOS item in app menu msgid "Hide Others" msgstr "Folaigh na cinn eile" #. TRANSLATORS: macOS item in app menu msgid "Show All" msgstr "Taispeáin Uile" #. TRANSLATORS: macOS item in app menu, %s is replaced with "Poedit" #, c-format msgid "Quit %s" msgstr "Scoir %s" #. TRANSLATORS: macOS item in app menu msgid "Preferences…" msgstr "Sainroghanna…" msgid "Preferences..." msgstr "Sainroghanna..." #. TRANSLATORS: Title of a category in Windows task menu (right-click icon in taskbar) msgid "Recent" msgstr "Le Déanaí" #. TRANSLATORS: Title of a category in Windows task menu (right-click icon in taskbar) msgid "Frequent" msgstr "Úsáidte go minic" msgid "&Apply" msgstr "&Cuir i bhFeidhm" msgid "Apply" msgstr "Cuir i bhFeidhm" msgid "&Back" msgstr "&Siar" msgid "Back" msgstr "Siar" msgid "&Cancel" msgstr "&Cealaigh" msgid "&Clear" msgstr "&Glan" msgid "Clear" msgstr "Glan" msgid "Copy" msgstr "Cóipeáil" msgid "Cu&t" msgstr "Gea&rr" msgid "Cut" msgstr "Gearr" msgid "&Delete" msgstr "&Scrios" msgid "&Quit" msgstr "Sc&oir" msgid "File" msgstr "Comhad" msgid "Help" msgstr "Cabhair" msgid "&New" msgstr "&Nua" msgid "&No" msgstr "&Níl" msgid "No" msgstr "Níl" msgid "&OK" msgstr "&OK" msgid "Open…" msgstr "Oscail…" msgid "&Open..." msgstr "&Oscail..." msgid "Open..." msgstr "Oscail..." msgid "&Paste" msgstr "&Greamaigh" msgid "Paste" msgstr "Greamaigh" msgid "Preferences" msgstr "Sainroghanna" msgid "&Redo" msgstr "&Athdhéan" msgid "Refresh" msgstr "Athnuaigh" msgid "&Save as" msgstr "&Sábháil mar" msgid "Save as" msgstr "Sábháil mar" msgid "Select &All" msgstr "Roghnaigh &Uile" msgid "Select All" msgstr "Roghnaigh Uile" msgid "&Undo" msgstr "&Cealaigh" msgid "&Yes" msgstr "&Tá" msgid "Yes" msgstr "Tá" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Shift+" msgstr "Shift+" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Enter" msgstr "Enter" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Up" msgstr "Saighead Suas" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Down" msgstr "Saighead Síos" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Left" msgstr "Ar Chlé" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Right" msgstr "Ar Dheis" #. TRANSLATORS: Keyboard shortcut, must correspond to translation of "Ctrl+" msgid "ctrl" msgstr "ctrl" #. TRANSLATORS: Keyboard shortcut, must correspond to translation of "Alt+" msgid "alt" msgstr "alt" #. TRANSLATORS: Keyboard shortcut, must correspond to translation of "Shift+" msgid "shift" msgstr "shift" poedit-2.0.6/locales/ka.po0000664000372000037200000014410113230132077012300 00000000000000msgid "" msgstr "" "Project-Id-Version: poedit\n" "Report-Msgid-Bugs-To: help@poedit.net\n" "POT-Creation-Date: 2017-12-05 15:52+0100\n" "PO-Revision-Date: 2017-12-05 09:49-0500\n" "Last-Translator: vslavik \n" "Language-Team: Georgian\n" "Language: ka_GE\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: crowdin.com\n" "X-Crowdin-Project: poedit\n" "X-Crowdin-Language: ka\n" "X-Crowdin-File: /locales/poedit.pot\n" msgid "Hide this notification message" msgstr "დამალე ეს შეტყობინება" msgid "Don’t Show Again" msgstr "" msgid "Don’t show again" msgstr "" #, c-format msgid "(New: %i, obsolete: %i)" msgstr "" msgid "Updating catalog" msgstr "კატალოგის განახლება" msgid "Collecting source files…" msgstr "" msgid "Extracting translatable strings…" msgstr "" msgid "Failed to load extracted catalog." msgstr "ამოღებული კატალოგის ჩატვირთვა ვერ განხორციელდა." msgid "Merging differences…" msgstr "" #, c-format msgid "“%s” is not a valid POT file." msgstr "" #, c-format msgid "%i line of file “%s” was not loaded correctly." msgid_plural "%i lines of file “%s” were not loaded correctly." msgstr[0] "" msgstr[1] "" #, c-format msgid "Line %d of file “%s” is corrupted (not valid %s data)." msgstr "" #, c-format msgid "Malformed header: “%s”" msgstr "" msgid "" "Broken catalog file: singular form msgstr used together with msgid_plural" msgstr "" "არასწორი catalog ფაილი: მხოლობითი ფორმა msgstr გამოყენებულია msgid_plural -" "თან ერთად" msgid "Broken catalog file: plural form msgstr used without msgid_plural" msgstr "" "არასწორი catalog ფაილი: გამოყენებულია msgstr მრავლობითის ფორმა, msgid_plural " "-ის მითითების გარეშე" msgid "" "There were errors when loading the catalog. Some data may be missing or " "corrupted as the result." msgstr "" "შეცდომა კატალოგის გამოძახებისას. შესაძლოა ინფორმაციის ნაწილი არასრული ან " "დაზიანებული იყოს." #, c-format msgid "Couldn’t load file %s, it is probably corrupted." msgstr "" #, c-format msgid "" "File “%s” is read-only and cannot be saved.\n" "Please save it under different name." msgstr "" #, c-format msgid "Couldn’t save file %s." msgstr "" msgid "" "There was a problem formatting the file nicely (but it was saved all right)." msgstr "" "ფაილის უკეთ ფორმატირებისას პრობლემა შეიქმნა (თუმცა ფაილი გამართულად იქნა " "შენახული)." #, c-format msgid "" "The catalog couldn’t be saved in “%s” charset as specified in catalog " "settings.\n" "\n" "It was saved in UTF-8 instead and the setting was modified accordingly." msgstr "" msgid "Error saving catalog" msgstr "შეცდომა კატალოგის დამახსოვრებისას" msgid "PO Translation Files" msgstr "PO თარგმნის ფაილები" msgid "POT Translation Templates" msgstr "PO თარგმნის შაბლონები" msgid "All Translation Files" msgstr "თარგმნის ყველა ფაილი" msgid "(Use default language)" msgstr "(გამოიყენე სისტემის სტანდარტული ენა)" msgid "Select your preferred language" msgstr "ამოირჩიეთ სასურველი ენა" msgid "Language selection" msgstr "ენების ამორჩევა" msgid "You must restart Poedit for this change to take effect." msgstr "ამ ცვლილების გასააქტიურებლად Poedit თავიდან უნდა გამოიძახოთ." msgid "Syncing" msgstr "" #. TRANSLATORS: %s is a cloud destination, e.g. "Crowdin" or ftp.wordpress.com etc. #, c-format msgid "Syncing with %s…" msgstr "" #. TRANSLATORS: %s is a cloud destination, e.g. "Crowdin" or ftp.wordpress.com etc. #, c-format msgid "Syncing with %s failed." msgstr "" msgid "Syncing error" msgstr "" msgid "Downloading translations is disabled in this project." msgstr "თარგმანების ჩამოტვირთვა გამორთულია ამ პროექტში." msgid "Not authorized, please sign in again." msgstr "" msgid "" "Crowdin is an online localization management platform and collaborative " "translation tool. Poedit can seamlessly sync PO files managed at Crowdin." msgstr "" msgid "Sign In" msgstr "შესვლა" msgid "Sign in" msgstr "შესვლა" msgid "Sign Out" msgstr "გამოსვლა" msgid "Sign out" msgstr "გამოსვლა" msgid "Waiting for authentication…" msgstr "" msgid "Updating user information…" msgstr "" msgid "Signed in as:" msgstr "შესული ხართ, როგორც:" msgid "Learn More About Crowdin" msgstr "შეიტყვეთ მეტი Crowdin-ზე" msgid "Learn more about Crowdin" msgstr "შეიტყვეთ მეტი Crowdin-ზე" msgid "Sign in to Crowdin" msgstr "შედით Crowdin-ზე" msgid "Open Crowdin translation" msgstr "იხილეთ Crowdin-ის თარგმანი" msgid "Project:" msgstr "პროექტი:" msgid "Language:" msgstr "ენა:" msgid "File:" msgstr "ფაილი:" msgid "No translation projects listed in your Crowdin account." msgstr "" msgid "This project has no files that can be translated in Poedit." msgstr "ამ პროექტს არ აქვს ფაილები, რომლების თარგმნა შეიძლება Poedit-ზე." msgid "This file can only be edited in Crowdin’s web interface." msgstr "ამ ფაილის რედაქტირება შეიძლება მხოლოდ Crowdin-ის ვებ-ინტერფეისზე." msgid "Downloading latest translations…" msgstr "იტვირთება უახლესი თარგმანები…" msgid "Syncing with Crowdin failed." msgstr "Crowdin-თან სინქრონიზაცია ჩაიშალა." msgid "Crowdin error" msgstr "" msgid "Uploading translations…" msgstr "" msgid "&Copy" msgstr "" msgid "Learn more" msgstr "დამატებითი ინფიმაცია" msgid "Learn More" msgstr "" msgid "&Help" msgstr "&დახმარება" msgid "MO files can’t be directly edited in Poedit." msgstr "" msgid "Error opening file" msgstr "შეცდომა ფაილის გახსნისას" msgid "" "Please open and edit the corresponding PO file instead. When you save it, " "the MO file will be updated as well." msgstr "" msgid "don’t delete temporary files (for debugging)" msgstr "" msgid "handle a poedit:// URI" msgstr "" msgid "go to item at given line number" msgstr "" msgid "Failed to communicate with Poedit process." msgstr "" #, c-format msgid "Unhandled exception occurred: %s" msgstr "" msgid "Open catalog" msgstr "კატალოგის გახსნა" #, c-format msgid "File “%s” doesn’t exist." msgstr "" msgid "Poedit is an easy to use translations editor." msgstr "Poedit ადვილად გამოსაყენებელი თარგმანების რედაქტორია." msgid "Catalogs Manager" msgstr "" msgid "Check for Updates…" msgstr "" msgid "&Edit" msgstr "&რედაქტირება" msgid "Undo" msgstr "დაბრუნება" msgid "Redo" msgstr "აღდგენა" msgid "Paste and Match Style" msgstr "" msgid "Delete" msgstr "წაშლა" msgid "Spelling and Grammar" msgstr "მართლწერა და გრამატიკა" msgid "Show Spelling and Grammar" msgstr "" msgid "Check Document Now" msgstr "" msgid "Check Spelling While Typing" msgstr "" msgid "Check Grammar With Spelling" msgstr "" msgid "Correct Spelling Automatically" msgstr "მართლწერის ავტომატური შემოწმება" msgid "Substitutions" msgstr "" msgid "Show Substitutions" msgstr "" msgid "Smart Copy/Paste" msgstr "" msgid "Smart Quotes" msgstr "" msgid "Smart Dashes" msgstr "" msgid "Smart Links" msgstr "" msgid "Text Replacement" msgstr "" msgid "Transformations" msgstr "" msgid "Make Upper Case" msgstr "" msgid "Make Lower Case" msgstr "" msgid "Capitalize" msgstr "" msgid "Speech" msgstr "" msgid "Start Speaking" msgstr "" msgid "Stop Speaking" msgstr "" msgid "&View" msgstr "&ხედი" msgid "Enter Full Screen" msgstr "" msgid "Window" msgstr "" msgid "Minimize" msgstr "" msgid "Zoom" msgstr "დაახლოება" msgid "Bring All to Front" msgstr "" #. TRANSLATORS:File kind displayed in Finder/Explorer msgid "PO Translation" msgstr "" msgid "The file cannot be opened." msgstr "" msgid "Invalid file" msgstr "" msgid "" "The file may be either corrupted or in a format not recognized by Poedit." msgstr "" msgid "You can’t drop more than one file on Poedit window." msgstr "" #, c-format msgid "File “%s” is not a message catalog." msgstr "" msgid "Poedit" msgstr "Poedit" msgid "&File" msgstr "&ფაილი" msgid "&Go" msgstr "&გადასვლა" #. TRANSLATORS: %s is language name in its basic form (as you #. would see e.g. in a list of supported languages). You may need #. to rephrase it, e.g. to an equivalent of "for language %s". #, c-format msgid "" "Spellchecking is disabled, because the dictionary for %s isn’t installed." msgstr "" msgid "Install" msgstr "დაყენება" msgid "Catalog modified. Do you want to save changes?" msgstr "კატალოგი შეიცვალა. გნებავთ ცვლილებების შენახვა?" msgid "Save changes" msgstr "ცვლილებების დამახსოვრება" msgid "Your changes will be lost if you don’t save them." msgstr "" msgid "Save" msgstr "შენახვა" msgid "Don’t save" msgstr "" msgid "Don’t Save" msgstr "" msgid "Save as…" msgstr "" msgid "Compile to…" msgstr "" msgid "Compiled Translation Files" msgstr "" msgid "Export as…" msgstr "" msgid "HTML Files" msgstr "HTML ფაილები" msgid "Open catalog template" msgstr "კატალოგის შაბლონის გახსნა" msgid "Source code not available." msgstr "" msgid "Updating failed" msgstr "" msgid "" "Translations couldn’t be updated from the source code, because no code was " "found in the location specified in the catalog’s Properties." msgstr "" msgid "Entries in the catalog are probably incorrect." msgstr "შენატანები კატალოგში ალბათ არასწორია." msgid "Updating the catalog failed. Click on 'Details >>' for details." msgstr "" "კატალოგის განახლება ვერ განხორციელდა. დააწკაპუნეთ „დაწვრილებით >>“-ზე " "დამატებითი ინფორმაციისათვის." #, c-format msgid "%d issue with the translation found." msgid_plural "%d issues with the translation found." msgstr[0] "თარგმანთან დაკავშირებით წარმოიშვა %d შეფერხება." msgstr[1] "თარგმანთან დაკავშირებით წარმოიშვა %d შეფერხება." msgid "Validation results" msgstr "ვალიდაციის შედეგები" msgid "" "Entries with errors were marked in red in the list. Details of the error " "will be shown when you select such an entry." msgstr "" "შეცდომებიან შენატანები სიაში წითლად არის მონიშნული. შეცდომის დეტალები " "შენატანის არჩევისას გამოჩნდება." msgid "The file was saved safely." msgstr "" msgid "" "The file was saved safely and compiled into the MO format, but it will " "probably not work correctly." msgstr "" msgid "" "The file was saved safely, but it cannot be compiled into the MO format and " "used." msgstr "" "ფაილი წარმატებით იქნა შენახული, თუმცა მისი MO ფორმატში კომპილაცია და " "გამოყენება ვერ მოხერხდა." msgid "" "The file was compiled into the MO format, but it will probably not work " "correctly." msgstr "" msgid "The file cannot be compiled into the MO format and used." msgstr "" msgid "No problems with the translation found." msgstr "თარგმანში შეცდომები ვერ მოიძებნა." #, c-format msgid "The translation is ready for use, but %d entry is not translated yet." msgid_plural "" "The translation is ready for use, but %d entries are not translated yet." msgstr[0] "" msgstr[1] "" msgid "The translation is ready for use." msgstr "თარგმანი გამოსაყენებლად მზად არის." #, c-format msgid "Poedit automatically fixed invalid content in the file “%s”." msgstr "" msgid "" "The file contained duplicate items, which is not allowed in PO files and " "would prevent the file from being used. Poedit fixed the issue, but you " "should review translations of any items marked as needing work and correct " "them if necessary." msgstr "" msgid "Language of the translation isn’t set." msgstr "" msgid "Set Language" msgstr "" msgid "Set language" msgstr "" #. TRANSLATORS: This is shown underneath "Language of the translation isn't set (or ...is the same as source language)." msgid "" "Suggestions are not available if the translation language is not set " "correctly. Other features, such as plural forms, may be affected as well." msgstr "" msgid "Language of the translation is the same as source language." msgstr "" msgid "Fix Language" msgstr "" msgid "Fix language" msgstr "" msgid "" "This catalog has entries with plural forms, but doesn’t have Plural-Forms " "header configured." msgstr "" msgid "" "Entries in this catalog have different plural forms count from what " "catalog’s Plural-Forms header says" msgstr "" msgid "Required header Plural-Forms is missing." msgstr "" "ფაილს აკლია აუცილებელი ჰედერი მრავლობითის ფორმებთან (Plural-Forms) " "დაკავშირებით." #, c-format msgid "Syntax error in Plural-Forms header (\"%s\")." msgstr "სინტაქსური შეცდომა Plural-Forms ჰედერის ჩანაწერში (\"%s\")." msgid "Fix the Header" msgstr "" msgid "Fix the header" msgstr "ჰედერის გამოსწორება" #. TRANSLATORS: %s is language name in its basic form (as you #. would see e.g. in a list of supported languages). You may need #. to rephrase it, e.g. to an equivalent of "for language %s". #, c-format msgid "Plural forms expression used by the catalog is unusual for %s." msgstr "" #. TRANSLATORS: A verb, shown as action button with ""Plural forms expression used by the catalog is unusual for %s.")" msgid "Review" msgstr "" #, c-format msgid "Error loading message catalog file “%s”." msgstr "" #, c-format msgid "Translated: %d of %d (%d %%)" msgstr "" #, c-format msgid "Remaining: %d" msgstr "" #, c-format msgid "%d error" msgid_plural "%d errors" msgstr[0] "" msgstr[1] "" #, c-format msgid "%d entry" msgid_plural "%d entries" msgstr[0] "" msgstr[1] "" msgid " (unsaved)" msgstr "" msgid " (modified)" msgstr " (შეიცვალა)" #, c-format msgid "Failed to update translation memory: %s" msgstr "" msgid "Purge deleted translations" msgstr "წაშლილი თარგმანებისგან გაწმენდა" msgid "Do you want to remove all translations that are no longer used?" msgstr "გსურთ ყველა იმ თარგმანის წაშლა, რომლებიც აღარ გამოიყენება?" msgid "" "If you continue with purging, all translations marked as deleted will be " "permanently removed. You will have to translate them again if they are added " "back in the future." msgstr "" "თუ გაწმენდას გააგრძელებთ, სამუდამოდ წაიშლება ყველა ის თარგმანი, რომლებიც " "აღარ გამოიყენება. მომავალში მათი ხელახლა თარგმნა მოგიწევთ, თუ კატალოგს კვლავ " "დაემატება." msgid "Keep" msgstr "შენარჩუნება" msgid "Purge" msgstr "გაწმენდა" msgid "Copy from source text" msgstr "საწყისი ტექსტიდან კოპირება" msgid "Copy from Source Text" msgstr "საწყისი ტექსტიდან კოპირება" #. TRANSLATORS: This is the key shortcut used in menus on Windows, some languages call them differently #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Ctrl+" msgstr "Ctrl+" msgid "Clear translation" msgstr "თარგმანის გაწმენდა" msgid "Clear Translation" msgstr "თარგმანის გაწმენდა" msgid "Edit comment" msgstr "შენიშვნის დამუშავება" msgid "Edit Comment" msgstr "შენიშვნის რედაქტირება" msgid "References:" msgstr "დახმარებები:" msgid "&Bookmarks" msgstr "&სანიშნეები" #. TRANSLATORS: This is the key shortcut used in menus on Windows, some languages call them differently #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Alt+" msgstr "Alt+" #, c-format msgid "Set bookmark %i" msgstr "" #, c-format msgid "Go to bookmark %i" msgstr "" #, c-format msgid "Set Bookmark %i" msgstr "" #, c-format msgid "Go to Bookmark %i" msgstr "" msgid "Hide Sidebar" msgstr "გვერდითა ზოლის დამალვა" msgid "Show Sidebar" msgstr "გვერდითა ზოლის ჩვენება" msgid "Hide Status Bar" msgstr "" msgid "Show Status Bar" msgstr "" msgid "Source text:" msgstr "წყაროს ტექსტი:" msgid "Singular:" msgstr "მხოლობითში:" msgid "Plural:" msgstr "მრავლობითში:" msgid "Translation:" msgstr "თარგმანი:" msgid "Pre-translated" msgstr "" msgid "Needs Work" msgstr "" #. TRANSLATORS: This indicates that the string's translation isn't final #. and has known problems. For example, it might be machine translated or #. fuzzy matched from an older string. The translation should be short and #. convey this. If it's problematic to translate it, "Needs review" is #. acceptable substitute, but note that the meaning is subtly different: #. "needs review" implies that somebody else should review the string after #. I am done with it (i.e. consider it good), while "needs work" implies I #. need to return to it and finish the translation. msgid "Needs work" msgstr "" msgid "" "POT files are only templates and don’t contain any translations themselves.\n" "To make a translation, create a new PO file based on the template." msgstr "" msgid "Create New Translation" msgstr "" msgid "Create new translation" msgstr "" msgid "Everything" msgstr "" #, c-format msgid "Form %i" msgstr "%i-დან" msgid "Singular" msgstr "" msgid "Zero" msgstr "ნული" msgid "One" msgstr "ერთი" msgid "Two" msgstr "ორი" msgid "Plural" msgstr "მრავლობითი" msgid "Other" msgstr "სხვა" #, c-format msgid "%s Format" msgstr "" #. TRANSLATORS: %s is replaced with language name, e.g. "PHP" or "C", so "PHP Format" etc." #, c-format msgid "%s format" msgstr "" msgid "Source text" msgstr "წყაროს ტექსტი:" #, c-format msgid "Translation — %s" msgstr "" msgid "ID" msgstr "ID" #, c-format msgid "Source text — %s" msgstr "" msgid "unknown language" msgstr "" #, c-format msgid "Failed command: %s" msgstr "ვერ შესრულებული ბრძანება: %s" msgid "Failed to merge gettext catalogs." msgstr "gettext კატალოგთა გაერთიანება ვერ განხორციელდა." msgid "Source file" msgstr "საწყისი ფაილი" msgid "Source file occurrence:" msgstr "წყაროს ფაილი:" msgid "Open in Editor" msgstr "" msgid "Open in editor" msgstr "" msgid "No references for the selected item." msgstr "" #, c-format msgid "Error opening file %s!" msgstr "შეცდომა %s ფაილის გამოძახებისას!" msgid "Find" msgstr "ძებნა" msgid "Replace" msgstr "ჩანაცვლება" #. TRANSLATORS: Expander in Find window for additional options (case sensitive etc.) msgid "Options" msgstr "პარამეტრები" msgid "Ignore case" msgstr "" msgid "Wrap around" msgstr "" msgid "Whole words only" msgstr "მხოლოდ მთლიანი სიტყვები" msgid "Find in source texts" msgstr "" msgid "Find in translations" msgstr "" msgid "Find in comments" msgstr "შენიშვნებში ძიება" msgid "Close" msgstr "დაკეტვა" msgid "Replace &All" msgstr "" msgid "Replace &all" msgstr "" msgid "&Replace" msgstr "" msgid "< &Previous" msgstr "" msgid "&Next >" msgstr "" msgid "String to find" msgstr "" msgid "Replacement string" msgstr "" #, c-format msgid "Cannot execute program: %s" msgstr "%s პროგრამის გაშვება ვერ ხერხდება" msgid "Language Code or Name (e.g. en_GB)" msgstr "" msgid "Translation Language" msgstr "" msgid "Language of the translation:" msgstr "" msgid "Poedit - Catalogs manager" msgstr "Poedit - კატალოგების მენეჯერი" msgid "Catalog" msgstr "კატალოგი" msgid "Total" msgstr "სულ" msgid "Untrans" msgstr "უთარგმნ" msgid "Errors" msgstr "" msgid "Last modified" msgstr "ბოლო ცვლილება" msgid "Select directory" msgstr "უჯრის ამორჩევა" msgid "Directories:" msgstr "უჯრები:" msgid "" msgstr "<უსახელო>" msgid "Do you want to delete the project?" msgstr "გნებავთ პროექტის წაშლა?" msgid "Confirmation" msgstr "დასტური" msgid "" "Do you really want to do mass update of\n" "all catalogs in this project?" msgstr "" "მართლა გნებავთ ამ პროექტში მყოფი\n" "ყველა კატალოგის მასიური განახლება განახორციელოთ?" msgid "Information about the translator" msgstr "" msgid "Name:" msgstr "სახელი:" msgid "Your Name" msgstr "" msgid "Email:" msgstr "ელ-ფოსტა:" msgid "your_email@example.com" msgstr "" msgid "" "Your name and email address are only used to set the Last-Translator header " "of GNU gettext files." msgstr "" msgid "Editing" msgstr "რედაქტირება" msgid "Automatically compile MO file when saving" msgstr "" msgid "Show summary after catalog update" msgstr "კატალოგის განახლების შემდეგ შედეგები აჩვენე" msgid "Check spelling" msgstr "მართლწერის შემოწმება" msgid "Always change focus to text input field" msgstr "ყოველთვის გააქტიურე ტექსტის ჩასაწერი ველი" msgid "" "Never let the list of strings take focus. If enabled, you must use Ctrl-" "arrows for keyboard navigation but you can also type text immediately, " "without having to press Tab to change focus." msgstr "" "არასოდეს გააქტიურდეს სათარგმნი ტექსტების სარკმელი. თუ ამ ფუნქციას ჩართავთ, " "Ctrl+ისრების საშუალებით შეგეძლებათ ტექსტებს შორის ნავიგაცია, მაგრამ ტექსტის " "შეყვანა პირდაპირ იქნება შესაძლებელი, შესაბამისად ტექსტის ჩასაწერად Tab " "ღილაკზე ხელის დაჭერა აღარ მოგიწევთ" msgid "Appearance" msgstr "" msgid "Use custom list font:" msgstr "" msgid "Use custom text fields font:" msgstr "" msgid "Change UI language" msgstr "ინტერფეისის ენის შეცვლა" #. TRANSLATORS: This is a note appended to "Check spelling" when running on older Windows versions msgid "(requires Windows 8 or newer)" msgstr "" msgid "General" msgstr "" msgid "Use translation memory" msgstr "" msgid "Learn From Files…" msgstr "" msgid "Learn from files…" msgstr "" #. TRANSLATORS: This is a button that deletes everything in the translation memory (i.e. clears/resets it). msgid "Reset" msgstr "გადატვირთვა" #. TRANSLATORS: Followed by "match translations within the file" or "pre-translate from TM" msgid "When updating from sources" msgstr "" #. TRANSLATORS: Preceded by "When updating from sources" msgid "fuzzy match within the file" msgstr "" #. TRANSLATORS: Preceded by "When updating from sources" msgid "pre-translate from TM" msgstr "" msgid "" "Poedit can attempt to fill in new entries from only previous translations in " "the file or from your entire translation memory. Using the TM won’t be very " "effective if it’s near-empty, but it will get better as you add more " "translations to it." msgstr "" msgid "Stored translations:" msgstr "" msgid "Database size on disk:" msgstr "" msgid "Select translation files to import" msgstr "" msgid "Translation Memory" msgstr "თარგმანის მეხსიერება" msgid "Importing translations…" msgstr "" msgid "Finalizing…" msgstr "" msgid "Reset translation memory" msgstr "" msgid "Are you sure you want to reset the translation memory?" msgstr "" msgid "" "Resetting the translation memory will irrevocably delete all stored " "translations from it. You can’t undo this operation." msgstr "" msgid "Cancel" msgstr "გაუქმება" #. TRANSLATORS: This is abbreviation of "Translation Memory" used in Preferences on macOS. #. Long text looks weird there, too short (like TM) too, but less so. "General" is about ideal #. length there. msgid "TM" msgstr "TM" msgid "" "Source code extractors are used to find translatable strings in the source " "code files and extract them so that they can be translated." msgstr "" msgid "Custom Extractors:" msgstr "" msgid "Custom extractors:" msgstr "" msgid "Edit…" msgstr "" msgid "GNU gettext" msgstr "" msgid "" "Supports all programming languages recognized by GNU gettext tools (PHP, C/C+" "+, C#, Perl, Python, Java, JavaScript and others)." msgstr "" msgid "Delete extractor" msgstr "" #, c-format msgid "Are you sure you want to delete the “%s” extractor?" msgstr "" msgid "Extractors" msgstr "" msgid "Accounts" msgstr "ანგარიშები" msgid "Automatically check for updates" msgstr "" msgid "Include beta versions" msgstr "" msgid "" "Beta versions contain the latest new features and improvements, but may be a " "bit less stable." msgstr "" msgid "Updates" msgstr "განახლებები" msgid "" "These settings affect internal formatting of PO files. Adjust them if you " "have specific requirements e.g. because of version control." msgstr "" msgid "Line endings:" msgstr "" msgid "Unix (recommended)" msgstr "Unix (რეკომენდირებულია)" msgid "Windows" msgstr "Windows" #. TRANSLATORS: Followed by text control for entering number; wraps text at given width msgid "Wrap at:" msgstr "" msgid "Preserve formatting of existing files" msgstr "" msgid "Advanced" msgstr "" msgid "Pre-translating…" msgstr "" #, c-format msgid "Pre-translated %u string" msgid_plural "Pre-translated %u strings" msgstr[0] "" msgstr[1] "" #. TRANSLATORS: This is a somewhat common term describing the action where #. you apply the translation memory and/or machine translation to all of the #. strings you're translating as the first step, followed by correcting, #. improving etc., i.e. actually translating the strings. This may be tricky #. to express in other languages as simply as in English, but please try to #. keep it similarly concise. Please try to avoid, if possible, describing it #. as "auto-translation" and similar, because such terminology would mislead #. some users into thinking it's all that needs to be done (spoken from #. experience). "Pre-translate" nicely expresses that it's only the step done #. *before* actual translation. msgid "Pre-translate" msgstr "" msgid "Only fill in exact matches" msgstr "" msgid "" "By default, inaccurate results are filled in as well and marked as needing " "work. Check this option to only include accurate matches." msgstr "" msgid "Don’t mark exact matches as needing work" msgstr "" msgid "" "Only enable if you trust the quality of your TM. By default, all matches " "from the TM are marked as needing work and should be reviewed before use." msgstr "" msgid "" "Pre-translation automatically finds exact or fuzzy matches for untranslated " "strings in the translation memory and fills in their translations." msgstr "" #, c-format msgid "%d entry was pre-translated." msgid_plural "%d entries were pre-translated." msgstr[0] "" msgstr[1] "" msgid "" "The translations were marked as needing work, because they may be " "inaccurate. You should review them for correctness." msgstr "" msgid "No entries could be pre-translated." msgstr "" msgid "" "The TM doesn’t contain any strings similar to the content of this file. It " "is only effective for semi-automatic translations after Poedit learns enough " "from files that you translated manually." msgstr "" msgid "" "Drag and Drop Folders Here\n" "\n" "or use the + button" msgstr "" msgid "" "Drag and drop folders here\n" "\n" "or use the + button" msgstr "" msgid "Add Folders…" msgstr "" msgid "Add folders…" msgstr "" msgid "Add Files…" msgstr "" msgid "Add files…" msgstr "" msgid "Add Wildcard…" msgstr "" msgid "Add wildcard…" msgstr "" msgid "Paths" msgstr "მდებარეობები" msgid "Excluded paths" msgstr "" msgid "Advanced extraction settings" msgstr "" msgid "Extract notes for translators from:" msgstr "" msgid "Comments prefixed with:" msgstr "" msgid "All comments" msgstr "" msgid "Additional xgettext flags:" msgstr "" msgid "Additional keywords" msgstr "" msgid "Name of the project the translation is for" msgstr "" msgid "Team name and email address or URL" msgstr "" msgid "e.g. nplurals=2; plural=(n > 1);" msgstr "" msgid "UTF-8 (recommended)" msgstr "UTF-8 (რეკომენდირებულია)" msgid "Please save the file first. This section cannot be edited until then." msgstr "" msgid "Not all plural forms are translated." msgstr "" msgid "The translation should start as a sentence." msgstr "" msgid "The translation should start with a lowercase character." msgstr "" msgid "The translation doesn’t start with a space." msgstr "" msgid "The translation starts with a space, but the source text doesn’t." msgstr "" msgid "The translation is missing a newline at the end." msgstr "" msgid "The translation ends with a newline, but the source text doesn’t." msgstr "" msgid "The translation is missing a space at the end." msgstr "" msgid "The translation ends with a space, but the source text doesn’t." msgstr "" #, c-format msgid "The translation should end with “%s”." msgstr "" #, c-format msgid "The translation should not end with “%s”." msgstr "" #, c-format msgid "The translation ends with “%s”, but the source text ends with “%s”." msgstr "" msgid "Comment:" msgstr "შენიშვნები:" msgid "OK" msgstr "კარგი" msgid "C&lear" msgstr "გა&წმენდა" msgid "Clear the comment" msgstr "დოკუმენტის გაწმენდა" msgid "New" msgstr "ახალი" msgid "Create new translations project" msgstr "შექმენი ახალი სათარგმი პროექტი" msgid "Edit" msgstr "დამუშავება" msgid "Edit the project" msgstr "პროექტის დამუშავება" msgid "Delete the project" msgstr "პროექტის წაშლა" msgid "Update all" msgstr "ყველას განახლება" msgid "Update all catalogs in the project" msgstr "განაახლე ყველა კატალოგი პროექტში" msgid "Edit project" msgstr "პროექტის დამუშავება" msgid "Project name:" msgstr "პროექტის სახელი:" msgid "Browse" msgstr "მოძიება" msgid "Add directory to the list" msgstr "უჯრის სიაში დამატება" msgid "&New…" msgstr "" msgid "New from &POT/PO file…" msgstr "" msgid "New From &POT/PO File…" msgstr "" msgid "&Open…" msgstr "" msgid "Open Recent" msgstr "" msgid "Open from Crowdin…" msgstr "" msgid "Open From Crowdin…" msgstr "" msgid "&Close" msgstr "და&კეტვა" msgid "&Save" msgstr "შ&ენახვა" msgid "Save &as…" msgstr "" msgid "Save &As…" msgstr "" msgid "Compile to MO…" msgstr "" msgid "E&xport as HTML…" msgstr "" msgid "Check for updates…" msgstr "" msgid "&Preferences…" msgstr "" msgid "Catalogs &manager" msgstr "კატალოგების &მენეჯერი" msgid "Catalogs &Manager" msgstr "კატალოგთა &მმართველი" msgid "E&xit" msgstr "გა&სვლა" msgid "Quit" msgstr "გასვლა" msgid "Copy from singular" msgstr "" msgid "Copy From Singular" msgstr "" msgid "Translation needs &work" msgstr "" msgid "Translation Needs &Work" msgstr "" msgid "Edit &comment" msgstr "შე&ნიშვნის დამუშავება" msgid "Edit &Comment" msgstr "შენიშვნის &რედაქტირება" msgid "Suggestions" msgstr "" msgid "&Find…" msgstr "" msgid "Replace…" msgstr "" msgid "Find next" msgstr "" msgid "Find previous" msgstr "" msgid "Find and Replace…" msgstr "" msgid "Find Next" msgstr "" msgid "Find Previous" msgstr "" msgid "&Preferences" msgstr "&პარამეტრები" msgid "Display entry &IDs" msgstr "" msgid "Display Entry &IDs" msgstr "" msgid "Sort by &file order" msgstr "&ფაილის წყობით დალაგება" msgid "Sort by &File Order" msgstr "&ფაილის წყობით დალაგება" msgid "Sort by &source" msgstr "&წყაროთი დალაგება" msgid "Sort by &Source" msgstr "&წყაროთი დალაგება" msgid "Sort by &translation" msgstr "თ&არგმანის მიხედვით დალაგება" msgid "Sort by &Translation" msgstr "თ&არგმანის მიხედვით დალაგება" msgid "&Group by context" msgstr "" msgid "&Group By Context" msgstr "" msgid "Entries with errors first" msgstr "" msgid "Entries with Errors First" msgstr "" msgid "&Untranslated entries first" msgstr "&ჯერ უთარგმნელი შენატანები" msgid "&Untranslated Entries First" msgstr "&ჯერ უთარგმნელი შენატანები" msgid "&Show references" msgstr "აჩვენე დ&ახმარებები" msgid "&Show References" msgstr "&მითითებების ჩვენება" msgid "Show sidebar" msgstr "გვერდითა ზოლის ჩვენება" msgid "Show status bar" msgstr "" msgid "C&atalog" msgstr "კ&ატალოგი" msgid "&Update from sources" msgstr "განახლება &წყაროდან" msgid "&Update from Sources" msgstr "წყაროებიდან &განახლება" msgid "Update from &POT file…" msgstr "" msgid "Update from &POT File…" msgstr "" msgid "Sync with Crowdin" msgstr "" msgid "Pre-&translate…" msgstr "" msgid "&Purge deleted translations" msgstr "წაშლილი თარგმანების &ამოშლა" msgid "&Purge Deleted Translations" msgstr "&წაშლილ თარგმანთა გაწმენდა" msgid "&Validate translations" msgstr "თარგმანის &ვალიდაცია" msgid "&Validate Translations" msgstr "თარგმანის &ვალიდაცია" msgid "&Properties…" msgstr "" msgid "&Done and next" msgstr "&დასრულება და შემდეგი" msgid "&Done and Next" msgstr "&დასრულება და შემდეგი" msgid "&Previous translation" msgstr "" msgid "&Previous Translation" msgstr "" msgid "&Next translation" msgstr "" msgid "&Next Translation" msgstr "" msgid "P&revious unfinished" msgstr "წ&ინა დაუსრულებელი" msgid "P&revious Unfinished" msgstr "წ&ინა დაუსრულებელი" msgid "Ne&xt unfinished" msgstr "შემ&დეგი დაუსრულებელი" msgid "Ne&xt Unfinished" msgstr "შემ&დეგი დაუსრულებელი" msgid "Previous plural form" msgstr "" msgid "Previous Plural Form" msgstr "" msgid "Next plural form" msgstr "" msgid "Next Plural Form" msgstr "" msgid "&Online help" msgstr "&ონლაინ-სახელმძღვანელო" msgid "&Online Help" msgstr "&ონლაინ-სახელმძღვანელო" msgid "&GNU gettext manual" msgstr "" msgid "&GNU gettext Manual" msgstr "" msgid "&About Poedit" msgstr "Poedit-ის შ&ესახებ" msgid "&About" msgstr "შ&ესახებ" msgid "Extractor setup" msgstr "" msgid "List of extensions separated by semicolons (e.g. *.cpp;*.h):" msgstr "გაფართოებების სია წერტილ-მძიმეებით გამოყოფილი (მაგ. *.cpp;*.h):" msgid "Invocation:" msgstr "ინვოკაცია:" msgid "Command to extract translations:" msgstr "" msgid "" "This is the command used to launch the extractor.\n" "%o expands to the name of output file, %K to list\n" "of keywords, %F to list of input files,\n" "%C to charset flag (see below)." msgstr "" msgid "An item in keywords list:" msgstr "ელემენტი სიტყვათა სიაში:" msgid "" "This will be attached to the command line once\n" "for each keyword. %k expands to the keyword." msgstr "" "ეს ბრძანებათა სტრიქონს მიემაგრება ერთხელ\n" "ყოველ სიტყვაზე. %k იშლება როგორც სიტყვა." msgid "An item in input files list:" msgstr "ელემენტი შესაყვანი ფაილის სიაში:" #, c-format msgid "" "This will be attached to the command line once\n" "for each input file. %f expands to the filename." msgstr "" "ეს მიემაგრება ბრძანებათა სტრიქონს ყოველ\n" "შესაყვან ფაილზე. %f გაიშლება ფაილის სახელად." msgid "Source code charset:" msgstr "პროგრ. წყაროს კოდირება:" #, c-format msgid "" "This will be attached to the command line\n" "only if source code charset was given. %c expands to charset value." msgstr "" "ეს მიემაგრება ბრძანებათა სტრიქონს მხოლოდ მაშინ\n" "თუ წყაროს კოდირება (charset) მითითებული იყო. %c ჩანაცვლდება კოდირების " "სახელით." msgid "Catalog properties" msgstr "კატალოგის თვისებები" msgid "Project name and version:" msgstr "პროექტის სახელი და ვერსია:" msgid "Language team:" msgstr "" msgid "Plural forms:" msgstr "" msgid "Use default rules for this language" msgstr "" msgid "Use custom expression" msgstr "" msgid "Learn about plural forms" msgstr "დამატებითი ინფორმაცია მრავლობითის ფორმებთან დაკავშირებით" msgid "Charset:" msgstr "კოდირება:" msgid "Advanced Extraction Settings…" msgstr "" msgid "Advanced extraction settings…" msgstr "" msgid "Translation Properties" msgstr "" msgid "Translation properties" msgstr "" msgid "Sources Paths" msgstr "" msgid "Sources paths" msgstr "წყაროს მდებარეობები" msgid "Extract text from source files in the following directories:" msgstr "შემდეგი ფოლდერებში წყარო-ფაილებიდან ტექსტის ამოღება:" msgid "Base path:" msgstr "ძირითადი მდებარეობა:" msgid "Sources Keywords" msgstr "" msgid "Sources keywords" msgstr "წყაროს საკვანძო სიტყვები" msgid "" "Use these keywords (function names) to recognize translatable strings\n" "in source files:" msgstr "" "წყაროს ფაილებში თარგმნადი სტრიქონების ამოსაცნობად ამ საკვანძო სიტყვების\n" " (ფუნქციათა სახელების) გამოყენება:" msgid "Also use default keywords for supported languages" msgstr "" msgid "Learn About Gettext Keywords" msgstr "" msgid "Learn about gettext keywords" msgstr "" msgid "Update summary" msgstr "შეჯამების განახლება" msgid "" "These strings were found in the sources but were not in the catalog.\n" "Poedit will add them to the catalog now." msgstr "" "ეს სიტყვები მოიძებნა წყაროებში, თუმცა კატალოგებში არა.\n" "poEdir კატალოგში დაამატებს მათ." msgid "New strings" msgstr "ახალი შეტყობინებები" msgid "" "These strings are no longer in the sources.\n" "Poedit will remove them from the catalog now." msgstr "" "ეს სტრიწონები წყაროებში აღარ მოიპოვება.\n" "Poedit კატალოგიდან ამოშლის მათ." msgid "Obsolete strings" msgstr "მოძველებული სტრიქონები" msgid "(0 new, 0 obsolete)" msgstr "(0 ახალი, 0 მოძველებული)" msgid "Open" msgstr "გახსნა" msgid "Save catalog" msgstr "კატალოგის დამახსოვრება" msgid "Validate" msgstr "ვალიდაცია" msgid "Check for errors in the translation" msgstr "თარგმანში შეცდომების შემოწმება" msgid "Update" msgstr "განახლება" msgid "Update catalog - synchronize it with sources" msgstr "კატალოგის განახლება - წყაროებთან სინქრონიზება" msgid "Sidebar" msgstr "გვერდითა ზოლი" msgid "Show or hide the sidebar" msgstr "" #. TRANSLATORS: "Previous" as in used in the past, now replaced with newer. msgid "Previous source text:" msgstr "" msgid "" "The old source text (before it changed during an update) that the now-" "inaccurate translation corresponds to." msgstr "" msgid "Notes for translators:" msgstr "შენიშვნები მთარგმნელთათვის:" msgid "Add comment" msgstr "კომენტარის დამატება" msgid "Add Comment" msgstr "კომენტარის დამატება" msgid "Translation suggestions:" msgstr "" #. TRANSLATORS: This is shown when no translation suggestions can be found in the TM (Windows). msgid "No matches found" msgstr "" #. TRANSLATORS: This is shown when no translation suggestions can be found in the TM (macOS, Linux). msgid "No Matches Found" msgstr "" msgid "This string was found in Poedit’s translation memory." msgstr "" msgid "Cannot create temporary directory." msgstr "დროებითი ფოლდერი ვერ შეიქმნა." msgid "Welcome to Poedit" msgstr "" #. TRANSLATORS: This is version information in about dialog, "%s" will be #. version number when used #, c-format msgid "Version %s" msgstr "ვერისა %s" msgid "Edit a Translation" msgstr "" msgid "Edit a translation" msgstr "" msgid "Open an existing PO file and edit the translation." msgstr "" msgid "" "Take an existing PO file or POT template and create a new translation from " "it." msgstr "" msgid "Collaborate on a Translation with Others" msgstr "" msgid "Collaborate on a translation with others" msgstr "" msgid "" "Download a file from Crowdin project, translate and sync your changes back." msgstr "" msgid "What is Crowdin?" msgstr "" msgid "There are no translations. That’s unusual." msgstr "" msgid "" "Translatable entries aren’t added manually in the Gettext system, but are " "automatically extracted\n" "from source code. This way, they stay up to date and accurate.\n" "Translators typically use PO template files (POTs) prepared for them by the " "developer." msgstr "" msgid "(Learn more about GNU gettext)" msgstr "" msgid "The simplest way to fill this catalog is to update it from a POT:" msgstr "" msgid "Update from POT" msgstr "" msgid "Take translatable strings from an existing POT template." msgstr "" msgid "" "You can also extract translatable strings directly from the source code:" msgstr "" msgid "Extract from sources" msgstr "" msgid "Configure source code extraction in Properties." msgstr "" msgid "Sync" msgstr "სინქრონიზაცია" msgid "Synchronize the translation with Crowdin" msgstr "" #. TRANSLATORS: This is titlebar of about dialog, "%s" is application name #. ("Poedit" here, but please use "%s") #, c-format msgid "About %s" msgstr "%s-ის შესახებ" #. TRANSLATORS: Title of the preferences window on Windows and Linux. "%s" is replaced with "Poedit" when running. #, c-format msgid "%s Preferences" msgstr "" #. TRANSLATORS: macOS item in app menu msgid "Services" msgstr "" #. TRANSLATORS: macOS item in app menu, %s is replaced with "Poedit" #, c-format msgid "Hide %s" msgstr "" #. TRANSLATORS: macOS item in app menu msgid "Hide Others" msgstr "" #. TRANSLATORS: macOS item in app menu msgid "Show All" msgstr "" #. TRANSLATORS: macOS item in app menu, %s is replaced with "Poedit" #, c-format msgid "Quit %s" msgstr "" #. TRANSLATORS: macOS item in app menu msgid "Preferences…" msgstr "" msgid "Preferences..." msgstr "" #. TRANSLATORS: Title of a category in Windows task menu (right-click icon in taskbar) msgid "Recent" msgstr "" #. TRANSLATORS: Title of a category in Windows task menu (right-click icon in taskbar) msgid "Frequent" msgstr "" msgid "&Apply" msgstr "" msgid "Apply" msgstr "" msgid "&Back" msgstr "" msgid "Back" msgstr "დაბრუნება" msgid "&Cancel" msgstr "" msgid "&Clear" msgstr "" msgid "Clear" msgstr "გასუფთავება" msgid "Copy" msgstr "" msgid "Cu&t" msgstr "" msgid "Cut" msgstr "ამოჭრა" msgid "&Delete" msgstr "" msgid "&Quit" msgstr "" msgid "File" msgstr "ფაილი" msgid "Help" msgstr "დახმარება" msgid "&New" msgstr "" msgid "&No" msgstr "" msgid "No" msgstr "არა" msgid "&OK" msgstr "" msgid "Open…" msgstr "" msgid "&Open..." msgstr "გ&ახსნა..." msgid "Open..." msgstr "გახსნა..." msgid "&Paste" msgstr "" msgid "Paste" msgstr "ჩასმა" msgid "Preferences" msgstr "" msgid "&Redo" msgstr "" msgid "Refresh" msgstr "განახლება" msgid "&Save as" msgstr "" msgid "Save as" msgstr "" msgid "Select &All" msgstr "" msgid "Select All" msgstr "ყველას მონიშვნა" msgid "&Undo" msgstr "" msgid "&Yes" msgstr "" msgid "Yes" msgstr "დიახ" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Shift+" msgstr "Shift+" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Enter" msgstr "Enter" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Up" msgstr "" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Down" msgstr "" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Left" msgstr "" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Right" msgstr "" #. TRANSLATORS: Keyboard shortcut, must correspond to translation of "Ctrl+" msgid "ctrl" msgstr "ctrl" #. TRANSLATORS: Keyboard shortcut, must correspond to translation of "Alt+" msgid "alt" msgstr "alt" #. TRANSLATORS: Keyboard shortcut, must correspond to translation of "Shift+" msgid "shift" msgstr "shift" poedit-2.0.6/locales/it.po0000664000372000037200000015400013230132076012317 00000000000000msgid "" msgstr "" "Project-Id-Version: poedit\n" "Report-Msgid-Bugs-To: help@poedit.net\n" "POT-Creation-Date: 2017-12-05 15:52+0100\n" "PO-Revision-Date: 2017-12-05 09:49-0500\n" "Last-Translator: vslavik \n" "Language-Team: Italian\n" "Language: it_IT\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: crowdin.com\n" "X-Crowdin-Project: poedit\n" "X-Crowdin-Language: it\n" "X-Crowdin-File: /locales/poedit.pot\n" msgid "Hide this notification message" msgstr "Nascondi questo messaggio di notifica" msgid "Don’t Show Again" msgstr "Non mostrare più" msgid "Don’t show again" msgstr "Non mostrare più" #, c-format msgid "(New: %i, obsolete: %i)" msgstr "(nuovi: %i obsoleti: %i)" msgid "Updating catalog" msgstr "Aggiornamento del catalogo in corso" msgid "Collecting source files…" msgstr "Raccolta dei files sorgenti…" msgid "Extracting translatable strings…" msgstr "Estrazione delle stringhe traducibili…" msgid "Failed to load extracted catalog." msgstr "Impossibile caricare il catalogo estratto." msgid "Merging differences…" msgstr "Unione delle differenze…" #, c-format msgid "“%s” is not a valid POT file." msgstr "\"%s\" non è un file POT valido." #, c-format msgid "%i line of file “%s” was not loaded correctly." msgid_plural "%i lines of file “%s” were not loaded correctly." msgstr[0] "La linea %i del file “%s” non è stata caricata correttamente." msgstr[1] "%i linee del file “%s” non sono state caricate correttamente." #, c-format msgid "Line %d of file “%s” is corrupted (not valid %s data)." msgstr "La riga %d del file \"%s\" è danneggiata (dati %s non validi)." #, c-format msgid "Malformed header: “%s”" msgstr "Intestazione non valida: \"%s\"" msgid "" "Broken catalog file: singular form msgstr used together with msgid_plural" msgstr "" "File di catalogo con errori: forma singolare di msgstr usata con msgid_plural" msgid "Broken catalog file: plural form msgstr used without msgid_plural" msgstr "" "File di catalogo con errori: forma plurale di msgstr usata senza msgid_plural" msgid "" "There were errors when loading the catalog. Some data may be missing or " "corrupted as the result." msgstr "" "Si sono verificati errori durante il caricamento del catalogo. Come " "risultato alcuni dati potrebbero essere mancanti o danneggiati." #, c-format msgid "Couldn’t load file %s, it is probably corrupted." msgstr "Impossibile caricare il file %s, potrebbe essere danneggiato." #, c-format msgid "" "File “%s” is read-only and cannot be saved.\n" "Please save it under different name." msgstr "" "Il file \"%s\" è in sola lettura e non può essere salvato.\n" "Salvalo con un nome diverso." #, c-format msgid "Couldn’t save file %s." msgstr "Impossibile salvare il file %s." msgid "" "There was a problem formatting the file nicely (but it was saved all right)." msgstr "" "Si è verificato un problema nella formattazione del file (ma è stato salvato " "correttamente)" #, c-format msgid "" "The catalog couldn’t be saved in “%s” charset as specified in catalog " "settings.\n" "\n" "It was saved in UTF-8 instead and the setting was modified accordingly." msgstr "" "Il catalogo non può essere salvato con il set di caratteri \"%s\" come " "specificato nelle impostazioni di catalogo.\n" "\n" "Invece è stato salvato in formato UTF-8 e l'impostazione è stata modificata " "di conseguenza." msgid "Error saving catalog" msgstr "Errore durante il salvataggio del catalogo" msgid "PO Translation Files" msgstr "File di traduzione PO" msgid "POT Translation Templates" msgstr "Template di traduzione POT" msgid "All Translation Files" msgstr "Tutti i file di traduzione" msgid "(Use default language)" msgstr "(Utilizza la lingua predefinita)" msgid "Select your preferred language" msgstr "Seleziona la lingua preferita" msgid "Language selection" msgstr "Selezione della lingua" msgid "You must restart Poedit for this change to take effect." msgstr "Riavvia Poedit affinché questo cambiamento abbia effetto." msgid "Syncing" msgstr "Sincronizzazione" #. TRANSLATORS: %s is a cloud destination, e.g. "Crowdin" or ftp.wordpress.com etc. #, c-format msgid "Syncing with %s…" msgstr "Sincronizzazione con %s…" #. TRANSLATORS: %s is a cloud destination, e.g. "Crowdin" or ftp.wordpress.com etc. #, c-format msgid "Syncing with %s failed." msgstr "Sincronizzazione con %s non riuscita." msgid "Syncing error" msgstr "Errore di sincronizzazione" msgid "Downloading translations is disabled in this project." msgstr "In questo progetto il download della traduzione è diabilitato." msgid "Not authorized, please sign in again." msgstr "Non autorizzato. È necessario autenticarsi per procedere, grazie." msgid "" "Crowdin is an online localization management platform and collaborative " "translation tool. Poedit can seamlessly sync PO files managed at Crowdin." msgstr "" "Crowdin è un sistema online di gestione traduzioni di tipo collaborativo. " "Poedit può sincronizzare i file PO gestiti da Crowdin." msgid "Sign In" msgstr "Autenticati" msgid "Sign in" msgstr "Accedi" msgid "Sign Out" msgstr "Disconnetti" msgid "Sign out" msgstr "Disconnetti" msgid "Waiting for authentication…" msgstr "Autenticazione in corso..." msgid "Updating user information…" msgstr "È in corso l'aggiornamento delle informazioni dell'utente..." msgid "Signed in as:" msgstr "Accedi come:" msgid "Learn More About Crowdin" msgstr "Altre info su Crowdin" msgid "Learn more about Crowdin" msgstr "Altre info su Crowdin" msgid "Sign in to Crowdin" msgstr "Accedi a Crowdin" msgid "Open Crowdin translation" msgstr "Apri traduzione su Crowdin" msgid "Project:" msgstr "Progetto:" msgid "Language:" msgstr "Lingua:" msgid "File:" msgstr "File:" msgid "No translation projects listed in your Crowdin account." msgstr "Non c'è alcun progetto di traduzione nel tuo account Crowdin." msgid "This project has no files that can be translated in Poedit." msgstr "Questo progetto non ha file che possono essere tradotti con Poedit." msgid "This file can only be edited in Crowdin’s web interface." msgstr "" "Questo file può essere modificato solamente tramite l'interfaccia web di " "Crowdin." msgid "Downloading latest translations…" msgstr "È in corso il download dell'ultima versione della traduzione..." msgid "Syncing with Crowdin failed." msgstr "Sincronizzazione con Crowdin fallita." msgid "Crowdin error" msgstr "Errore di Crowdin" msgid "Uploading translations…" msgstr "Aggiornamento delle traduzioni in corso..." msgid "&Copy" msgstr "&Copia" msgid "Learn more" msgstr "Per saperne di più" msgid "Learn More" msgstr "Ulteriori informazioni" msgid "&Help" msgstr "&Aiuto" msgid "MO files can’t be directly edited in Poedit." msgstr "I file MO non possono essere modificati direttamente con Poedit." msgid "Error opening file" msgstr "Errore durante l'apertura del file" msgid "" "Please open and edit the corresponding PO file instead. When you save it, " "the MO file will be updated as well." msgstr "" "Apri e modifica il file PO corrispondente. Durante il salvataggio sarà " "aggiornato anche il file MO." msgid "don’t delete temporary files (for debugging)" msgstr "non eliminare i file temporanei (per il debug)" msgid "handle a poedit:// URI" msgstr "gestire un poedit:// URI" msgid "go to item at given line number" msgstr "vai all'elemento allo specifico numero di riga" msgid "Failed to communicate with Poedit process." msgstr "Errore di comunicazione con il processo di Poedit." #, c-format msgid "Unhandled exception occurred: %s" msgstr "Si è verificata un'eccezione non gestita: %s" msgid "Open catalog" msgstr "Apri catalogo" #, c-format msgid "File “%s” doesn’t exist." msgstr "Il file \"%s\" non esiste." msgid "Poedit is an easy to use translations editor." msgstr "Poedit è un editor per traduzioni semplice da utilizzare." msgid "Catalogs Manager" msgstr "Gestore dei cataloghi" msgid "Check for Updates…" msgstr "Controlla gli aggiornamenti…" msgid "&Edit" msgstr "&Modifica" msgid "Undo" msgstr "Annulla" msgid "Redo" msgstr "Ripeti azione" msgid "Paste and Match Style" msgstr "Incolla e verifica corrispondenze stile" msgid "Delete" msgstr "Elimina" msgid "Spelling and Grammar" msgstr "Ortografia e grammatica" msgid "Show Spelling and Grammar" msgstr "Visualizza ortografia e grammatica" msgid "Check Document Now" msgstr "Verifica ora il documento" msgid "Check Spelling While Typing" msgstr "Controllo ortografico durante la digitazione" msgid "Check Grammar With Spelling" msgstr "Verifica grammatica ed ortografia" msgid "Correct Spelling Automatically" msgstr "Correggi automaticamente l'ortografia" msgid "Substitutions" msgstr "Sostituzioni" msgid "Show Substitutions" msgstr "Mostra le sostituzioni" msgid "Smart Copy/Paste" msgstr "Copia/incolla rapido" msgid "Smart Quotes" msgstr "Virgolette veloci" msgid "Smart Dashes" msgstr "Trattini veloci" msgid "Smart Links" msgstr "Collegamenti rapidi" msgid "Text Replacement" msgstr "Sostituzione testo" msgid "Transformations" msgstr "Trasformazioni" msgid "Make Upper Case" msgstr "Trasforma in maiuscolo" msgid "Make Lower Case" msgstr "Trasforma in minuscolo" msgid "Capitalize" msgstr "Rendi maiuscolo" msgid "Speech" msgstr "Discorso" msgid "Start Speaking" msgstr "Avvia parlato" msgid "Stop Speaking" msgstr "Ferma parlato" msgid "&View" msgstr "&Visualizza" msgid "Enter Full Screen" msgstr "Modalità a schermo intero" msgid "Window" msgstr "Finestra" msgid "Minimize" msgstr "Riduci a icona" msgid "Zoom" msgstr "Ingrandisci" msgid "Bring All to Front" msgstr "Mostra tutto in primo piano" #. TRANSLATORS:File kind displayed in Finder/Explorer msgid "PO Translation" msgstr "Traduzione PO" msgid "The file cannot be opened." msgstr "Il file non può essere aperto." msgid "Invalid file" msgstr "File non valido" msgid "" "The file may be either corrupted or in a format not recognized by Poedit." msgstr "" "Il file potrebbe essere danneggiato o in un formato non riconosciuto da " "Poedit." msgid "You can’t drop more than one file on Poedit window." msgstr "Impossibile trascinare più file nella finestra di Poedit." #, c-format msgid "File “%s” is not a message catalog." msgstr "Il file \"%s\" non è un catalogo di messaggi." msgid "Poedit" msgstr "Poedit" msgid "&File" msgstr "&File" msgid "&Go" msgstr "&Vai" #. TRANSLATORS: %s is language name in its basic form (as you #. would see e.g. in a list of supported languages). You may need #. to rephrase it, e.g. to an equivalent of "for language %s". #, c-format msgid "" "Spellchecking is disabled, because the dictionary for %s isn’t installed." msgstr "" "Il controllo ortografico è disabilitato poiché il dizionario %s non è " "installato." msgid "Install" msgstr "Installa" msgid "Catalog modified. Do you want to save changes?" msgstr "Catalogo modificato. Vuoi salvare le modifiche?" msgid "Save changes" msgstr "Salva le modifiche" msgid "Your changes will be lost if you don’t save them." msgstr "Le modifiche saranno perse se non le salvi." msgid "Save" msgstr "Salva" msgid "Don’t save" msgstr "Non salvare" msgid "Don’t Save" msgstr "Non salvare" msgid "Save as…" msgstr "Salva come…" msgid "Compile to…" msgstr "Compila in…" msgid "Compiled Translation Files" msgstr "File di traduzione compilati" msgid "Export as…" msgstr "Esporta come…" msgid "HTML Files" msgstr "FIle HTML" msgid "Open catalog template" msgstr "Apri modello di catalogo" msgid "Source code not available." msgstr "Codice sorgente non disponibile." msgid "Updating failed" msgstr "Aggiornamento non riuscito" msgid "" "Translations couldn’t be updated from the source code, because no code was " "found in the location specified in the catalog’s Properties." msgstr "" "Le traduzioni non possono essere aggiornate dal codice sorgente poichè non è " "stato trovato nessun codice sorgente nel percorso specifcato nelle proprietà " "catalogo." msgid "Entries in the catalog are probably incorrect." msgstr "Le voci nel catalogo sono probabilmente non corrette." msgid "Updating the catalog failed. Click on 'Details >>' for details." msgstr "" "Aggiornamento del catalogo non riuscito. Fai clic su 'Dettagli >>' per i " "dettagli." #, c-format msgid "%d issue with the translation found." msgid_plural "%d issues with the translation found." msgstr[0] "È stato trovato %d problema nella traduzione." msgstr[1] "Sono stati trovati %d problemi nella traduzione." msgid "Validation results" msgstr "Risultati della convalida" msgid "" "Entries with errors were marked in red in the list. Details of the error " "will be shown when you select such an entry." msgstr "" "Le voci con errori sono state marcate in rosso nell'elenco. I dettagli " "dell'errore saranno visualizzati quando selezionerai una determinata voce." msgid "The file was saved safely." msgstr "Il file è stato correttamente salvato." msgid "" "The file was saved safely and compiled into the MO format, but it will " "probably not work correctly." msgstr "" "Il file è stato salvato e compilato nel formato MO, ma potrebbe non " "funzionare correttamente." msgid "" "The file was saved safely, but it cannot be compiled into the MO format and " "used." msgstr "" "Il file è stato salvato, ma non può essere compilato nel formato MO e " "utilizzato." msgid "" "The file was compiled into the MO format, but it will probably not work " "correctly." msgstr "" "Il file è stato compilato nel formato MO, ma probabilmente non funzionerà " "correttamente." msgid "The file cannot be compiled into the MO format and used." msgstr "Il file non può essere compilato nel formato MO e usato." msgid "No problems with the translation found." msgstr "Nessun problema trovato nella traduzione." #, c-format msgid "The translation is ready for use, but %d entry is not translated yet." msgid_plural "" "The translation is ready for use, but %d entries are not translated yet." msgstr[0] "" "La traduzione è pronta per l'uso, ma %d elemento non è ancora stato tradotto." msgstr[1] "" "La traduzione è pronta per l'uso, ma %d elementi non sono stati ancora " "tradotti." msgid "The translation is ready for use." msgstr "La traduzione è pronta per l'uso." #, c-format msgid "Poedit automatically fixed invalid content in the file “%s”." msgstr "" "Poedit correggerà automaticamente il contenuto non valido nel file \"%s\"." msgid "" "The file contained duplicate items, which is not allowed in PO files and " "would prevent the file from being used. Poedit fixed the issue, but you " "should review translations of any items marked as needing work and correct " "them if necessary." msgstr "" "Il file contiene elementi duplicati, che non sono permessi nei file PO e " "devono essere rimossi per prevenirne l'uso. Poedit correggerà questo " "problema, ma dovrai rivedere le traduzioni di ogni elemento segnato come " "\"Da verificare\" e correggerle se necessario." msgid "Language of the translation isn’t set." msgstr "Non è stata impostata la lingua di destinazione della traduzione." msgid "Set Language" msgstr "Imposta lingua" msgid "Set language" msgstr "Imposta lingua" #. TRANSLATORS: This is shown underneath "Language of the translation isn't set (or ...is the same as source language)." msgid "" "Suggestions are not available if the translation language is not set " "correctly. Other features, such as plural forms, may be affected as well." msgstr "" "I suggerimenti non sono disponibili se la lingua di traduzione non è " "impostata correttamente. Anche altre caratteristiche, come i plurali, " "possono presentare dei problemi." msgid "Language of the translation is the same as source language." msgstr "" "La lingua della traduzione è la stessa della lingua sorgente. Cosa stai " "cercando di fare?" msgid "Fix Language" msgstr "Correggi la lingua" msgid "Fix language" msgstr "Correggi la lingua" msgid "" "This catalog has entries with plural forms, but doesn’t have Plural-Forms " "header configured." msgstr "" "Questo catalogo ha alcune voci con forme plurali, ma non ha una intestazione " "Plural-Forms configurata." msgid "" "Entries in this catalog have different plural forms count from what " "catalog’s Plural-Forms header says" msgstr "" "Le voci in questo catalogo hanno un numero di forme plurali diverso da " "quello previsto dall'intestazione Plural-Forms" msgid "Required header Plural-Forms is missing." msgstr "Manca l'intestazione richiesta per i plurali." #, c-format msgid "Syntax error in Plural-Forms header (\"%s\")." msgstr "Errore di sintassi nell'intestazione delle forme plurali (\"%s\")." msgid "Fix the Header" msgstr "Correggi l'intestazione" msgid "Fix the header" msgstr "Correggi l'intestazione" #. TRANSLATORS: %s is language name in its basic form (as you #. would see e.g. in a list of supported languages). You may need #. to rephrase it, e.g. to an equivalent of "for language %s". #, c-format msgid "Plural forms expression used by the catalog is unusual for %s." msgstr "" "I plurali contenuti nel catalogo sono inusuali in %s: controlla se sono " "corretti." #. TRANSLATORS: A verb, shown as action button with ""Plural forms expression used by the catalog is unusual for %s.")" msgid "Review" msgstr "Revisiona" #, c-format msgid "Error loading message catalog file “%s”." msgstr "Errore di caricamento del file di catalogo dei messaggi \"%s\"." #, c-format msgid "Translated: %d of %d (%d %%)" msgstr "Tradotti: %d di %d (%d %%)" #, c-format msgid "Remaining: %d" msgstr "Rimanenti: %d" #, c-format msgid "%d error" msgid_plural "%d errors" msgstr[0] "%d errore" msgstr[1] "%d errori" #, c-format msgid "%d entry" msgid_plural "%d entries" msgstr[0] "%d voce" msgstr[1] "%d voci" msgid " (unsaved)" msgstr " (non salvato)" msgid " (modified)" msgstr " (modificato)" #, c-format msgid "Failed to update translation memory: %s" msgstr "Impossibile aggiornare la memoria di traduzione: %s" msgid "Purge deleted translations" msgstr "Rimuovi le traduzioni eliminate" msgid "Do you want to remove all translations that are no longer used?" msgstr "" "Vuoi rimuovere dalla memoria di traduzione tutte le traduzioni non più " "utilizzate?" msgid "" "If you continue with purging, all translations marked as deleted will be " "permanently removed. You will have to translate them again if they are added " "back in the future." msgstr "" "Se si continua nella pulizia, tutte le traduzioni segnate come eliminate " "verranno rimosse definitivamente. Se esse verranno nuovamente aggiunte in " "futuro sarà necessario tradurle nuovamente." msgid "Keep" msgstr "Mantieni" msgid "Purge" msgstr "Rimuovi" msgid "Copy from source text" msgstr "Copia dal testo sorgente" msgid "Copy from Source Text" msgstr "Copia dal testo sorgente" #. TRANSLATORS: This is the key shortcut used in menus on Windows, some languages call them differently #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Ctrl+" msgstr "Ctrl+" msgid "Clear translation" msgstr "Cancella la traduzione" msgid "Clear Translation" msgstr "Cancella traduzione" msgid "Edit comment" msgstr "Modifica il commento" msgid "Edit Comment" msgstr "Modifica commento" msgid "References:" msgstr "Riferimenti:" msgid "&Bookmarks" msgstr "Segnali&bri" #. TRANSLATORS: This is the key shortcut used in menus on Windows, some languages call them differently #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Alt+" msgstr "Alt+" #, c-format msgid "Set bookmark %i" msgstr "Imposta segnalibro %i" #, c-format msgid "Go to bookmark %i" msgstr "Vai al segnalibro %i" #, c-format msgid "Set Bookmark %i" msgstr "Imposta segnalibro %i" #, c-format msgid "Go to Bookmark %i" msgstr "Vai al segnalibro %i" msgid "Hide Sidebar" msgstr "Nascondi barra laterale" msgid "Show Sidebar" msgstr "Mostra barra laterale" msgid "Hide Status Bar" msgstr "Nascondi barra di stato" msgid "Show Status Bar" msgstr "Visualizza barra di stato" msgid "Source text:" msgstr "Testo sorgente:" msgid "Singular:" msgstr "Singolare:" msgid "Plural:" msgstr "Plurale:" msgid "Translation:" msgstr "Traduzione:" msgid "Pre-translated" msgstr "Pre-tradotte" msgid "Needs Work" msgstr "Necessita verifica" #. TRANSLATORS: This indicates that the string's translation isn't final #. and has known problems. For example, it might be machine translated or #. fuzzy matched from an older string. The translation should be short and #. convey this. If it's problematic to translate it, "Needs review" is #. acceptable substitute, but note that the meaning is subtly different: #. "needs review" implies that somebody else should review the string after #. I am done with it (i.e. consider it good), while "needs work" implies I #. need to return to it and finish the translation. msgid "Needs work" msgstr "Richiede verifica" msgid "" "POT files are only templates and don’t contain any translations themselves.\n" "To make a translation, create a new PO file based on the template." msgstr "" "I file POT sono solo modelli e non contengono traduzioni.\n" "Per fare una traduzione, crea un nuovo file PO utilizzando un modello." msgid "Create New Translation" msgstr "Crea una nuova traduzione" msgid "Create new translation" msgstr "Crea una nuova traduzione" msgid "Everything" msgstr "Qualsiasi" #, c-format msgid "Form %i" msgstr "Modulo %i" msgid "Singular" msgstr "Singolare" msgid "Zero" msgstr "Zero" msgid "One" msgstr "Uno" msgid "Two" msgstr "Due" msgid "Plural" msgstr "Plurale" msgid "Other" msgstr "Altro" #, c-format msgid "%s Format" msgstr "Formato %s" #. TRANSLATORS: %s is replaced with language name, e.g. "PHP" or "C", so "PHP Format" etc." #, c-format msgid "%s format" msgstr "formato %s" msgid "Source text" msgstr "Testo sorgente" #, c-format msgid "Translation — %s" msgstr "Traduzione — %s" msgid "ID" msgstr "ID" #, c-format msgid "Source text — %s" msgstr "Testo sorgente — %s" msgid "unknown language" msgstr "lingua sconosciuta" #, c-format msgid "Failed command: %s" msgstr "Comando non riuscito: %s" msgid "Failed to merge gettext catalogs." msgstr "Impossibile unire i cataloghi gettext." msgid "Source file" msgstr "File sorgente" msgid "Source file occurrence:" msgstr "Occorrenze nel file sorgente:" msgid "Open in Editor" msgstr "Apri nell'editor" msgid "Open in editor" msgstr "Apri nell'editor" msgid "No references for the selected item." msgstr "Non ci sono riferimenti per l'elemento selezionato." #, c-format msgid "Error opening file %s!" msgstr "Errore durante l'apertura del file %s!" msgid "Find" msgstr "Trova" msgid "Replace" msgstr "Sostituisci" #. TRANSLATORS: Expander in Find window for additional options (case sensitive etc.) msgid "Options" msgstr "Opzioni" msgid "Ignore case" msgstr "Non distinguere maiuscole e minuscole" msgid "Wrap around" msgstr "Torna su se raggiungi la fine" msgid "Whole words only" msgstr "Solo parole intere" msgid "Find in source texts" msgstr "Trova nel testo sorgente" msgid "Find in translations" msgstr "Trova nella traduzione" msgid "Find in comments" msgstr "Trova nei commenti" msgid "Close" msgstr "Chiudi" msgid "Replace &All" msgstr "Sostituisci t&utto" msgid "Replace &all" msgstr "Sostituisci t&utto" msgid "&Replace" msgstr "&Sostituisci" msgid "< &Previous" msgstr "< &Indietro" msgid "&Next >" msgstr "Ava&nti >" msgid "String to find" msgstr "Stringa da trovare" msgid "Replacement string" msgstr "Stringa di sostituzione" #, c-format msgid "Cannot execute program: %s" msgstr "Impossibile eseguire il programma: %s" msgid "Language Code or Name (e.g. en_GB)" msgstr "Codice o nome della lingua (es. it_IT)" msgid "Translation Language" msgstr "Lingua della traduzione" msgid "Language of the translation:" msgstr "Lingua della traduzione:" msgid "Poedit - Catalogs manager" msgstr "Poedit - Gestore cataloghi" msgid "Catalog" msgstr "Catalogo" msgid "Total" msgstr "Totale" msgid "Untrans" msgstr "Non tradotte" msgid "Errors" msgstr "Errori" msgid "Last modified" msgstr "Ultima modifica" msgid "Select directory" msgstr "Seleziona la cartella" msgid "Directories:" msgstr "Cartelle:" msgid "" msgstr "" msgid "Do you want to delete the project?" msgstr "Vuoi eliminare il progetto?" msgid "Confirmation" msgstr "Conferma" msgid "" "Do you really want to do mass update of\n" "all catalogs in this project?" msgstr "" "Eseguire un aggiornamento di massa\n" "di tutti i cataloghi del progetto?" msgid "Information about the translator" msgstr "Informazioni sul traduttore" msgid "Name:" msgstr "Nome:" msgid "Your Name" msgstr "Il tuo nome" msgid "Email:" msgstr "Email:" msgid "your_email@example.com" msgstr "la_tua_email@esempio.com" msgid "" "Your name and email address are only used to set the Last-Translator header " "of GNU gettext files." msgstr "" "Il tuo nome e indirizzo email sono usati solo per impostare l'intestazione " "dell'ultimo traduttore dei file GNU gettext." msgid "Editing" msgstr "Modifica" msgid "Automatically compile MO file when saving" msgstr "Compila automaticamente il file MO durante il salvataggio" msgid "Show summary after catalog update" msgstr "Visualizza riepilogo dopo l'aggiornamento del catalogo" msgid "Check spelling" msgstr "Controllo ortografico" msgid "Always change focus to text input field" msgstr "Posiziona sempre il cursore nel campo di immissione del testo" msgid "" "Never let the list of strings take focus. If enabled, you must use Ctrl-" "arrows for keyboard navigation but you can also type text immediately, " "without having to press Tab to change focus." msgstr "" "Non permettere mai che nella lista delle stringhe si posizioni " "automaticamente il cursore. Se abilitato, è necessario usare Ctrl-frecce " "direzionali per la navigazione con la tastiera, ma è anche possibile " "scrivere il testo immediatamente, senza dover premere Tab per posizionare il " "cursore." msgid "Appearance" msgstr "Aspetto" msgid "Use custom list font:" msgstr "Usa il carattere per gli elenchi personalizzati:" msgid "Use custom text fields font:" msgstr "Usa un carattere personalizzato per i campi di testo:" msgid "Change UI language" msgstr "Cambia la lingua dell'interfaccia" #. TRANSLATORS: This is a note appended to "Check spelling" when running on older Windows versions msgid "(requires Windows 8 or newer)" msgstr "(richiede Windows 8 o successivo)" msgid "General" msgstr "Generale" msgid "Use translation memory" msgstr "Usa la memoria di traduzione" msgid "Learn From Files…" msgstr "Impara dai file…" msgid "Learn from files…" msgstr "Impara dai file…" #. TRANSLATORS: This is a button that deletes everything in the translation memory (i.e. clears/resets it). msgid "Reset" msgstr "Resetta" #. TRANSLATORS: Followed by "match translations within the file" or "pre-translate from TM" msgid "When updating from sources" msgstr "Quando aggiorni dai sorgenti" #. TRANSLATORS: Preceded by "When updating from sources" msgid "fuzzy match within the file" msgstr "verifica corrispondenza nel file" #. TRANSLATORS: Preceded by "When updating from sources" msgid "pre-translate from TM" msgstr "pre-traduci dalla MT" msgid "" "Poedit can attempt to fill in new entries from only previous translations in " "the file or from your entire translation memory. Using the TM won’t be very " "effective if it’s near-empty, but it will get better as you add more " "translations to it." msgstr "" "Poedit può tentare di riempire in nuove voci da sole traduzioni precedenti " "nel file o dalla tua memoria di traduzione. Utilizzare solo la MT potrebbe " "non essere molto efficace, se è quasi vuota, ma sarà meglio se si aggiungono " "altre traduzioni." msgid "Stored translations:" msgstr "Traduzioni memorizzate:" msgid "Database size on disk:" msgstr "Dimensione database sul disco:" msgid "Select translation files to import" msgstr "Seleziona i file di traduzione da importare" msgid "Translation Memory" msgstr "Memoria di traduzione (TM)" msgid "Importing translations…" msgstr "Importazione traduzioni in corso…" msgid "Finalizing…" msgstr "Finalizzazione in corso…" msgid "Reset translation memory" msgstr "Azzera la memoria di traduzione" msgid "Are you sure you want to reset the translation memory?" msgstr "Sei sicuro di voler azzerare la memoria di traduzione?" msgid "" "Resetting the translation memory will irrevocably delete all stored " "translations from it. You can’t undo this operation." msgstr "" "L'azzeramento della memoria eliminerà in modo irrimediabile tutte le " "traduzioni. Non puoi annullare questa operazione dopo averla eseguita." msgid "Cancel" msgstr "Annulla" #. TRANSLATORS: This is abbreviation of "Translation Memory" used in Preferences on macOS. #. Long text looks weird there, too short (like TM) too, but less so. "General" is about ideal #. length there. msgid "TM" msgstr "MT" msgid "" "Source code extractors are used to find translatable strings in the source " "code files and extract them so that they can be translated." msgstr "" "Gli estrattori di codice sorgente vengono utilizzati per trovare stringhe " "traducibili nei file di codice sorgente ed estrarli in modo che essi possano " "essere tradotti." msgid "Custom Extractors:" msgstr "Estrattori personalizzati:" msgid "Custom extractors:" msgstr "Estrattori personalizzati:" msgid "Edit…" msgstr "Modifica…" msgid "GNU gettext" msgstr "GNU gettext" msgid "" "Supports all programming languages recognized by GNU gettext tools (PHP, C/C+" "+, C#, Perl, Python, Java, JavaScript and others)." msgstr "" "Supporta tutti i linguaggi di programmazione riconosciuti dagli strumenti di " "GNU gettext (PHP, C/C++, C#, Perl, Python, Java, JavaScript e altri)." msgid "Delete extractor" msgstr "Elimina estrattore" #, c-format msgid "Are you sure you want to delete the “%s” extractor?" msgstr "Sei sicuro di voler eliminare l'estrattore \"%s\"?" msgid "Extractors" msgstr "Estrattori" msgid "Accounts" msgstr "Account" msgid "Automatically check for updates" msgstr "Controlla automaticamente gli aggiornamenti" msgid "Include beta versions" msgstr "Includi versioni beta" msgid "" "Beta versions contain the latest new features and improvements, but may be a " "bit less stable." msgstr "" "Le versioni beta contengono le ultime novità e miglioramenti, ma possono " "essere un po' meno stabili." msgid "Updates" msgstr "Aggiornamenti" msgid "" "These settings affect internal formatting of PO files. Adjust them if you " "have specific requirements e.g. because of version control." msgstr "" "Queste impostazioni influenzano la formattazione interna dei file PO. " "Modificale se hai requisiti specifici, ad esempio a causa del controllo " "versione." msgid "Line endings:" msgstr "Terminazioni di riga:" msgid "Unix (recommended)" msgstr "Unix (consigliato)" msgid "Windows" msgstr "Windows" #. TRANSLATORS: Followed by text control for entering number; wraps text at given width msgid "Wrap at:" msgstr "A capo automatico a:" msgid "Preserve formatting of existing files" msgstr "Preserva la formattazione dei file esistenti" msgid "Advanced" msgstr "Avanzate" msgid "Pre-translating…" msgstr "Pre-traduzione in corso…" #, c-format msgid "Pre-translated %u string" msgid_plural "Pre-translated %u strings" msgstr[0] "%u stringa pre-tradotta" msgstr[1] "%u stringhe pre-tradotte" #. TRANSLATORS: This is a somewhat common term describing the action where #. you apply the translation memory and/or machine translation to all of the #. strings you're translating as the first step, followed by correcting, #. improving etc., i.e. actually translating the strings. This may be tricky #. to express in other languages as simply as in English, but please try to #. keep it similarly concise. Please try to avoid, if possible, describing it #. as "auto-translation" and similar, because such terminology would mislead #. some users into thinking it's all that needs to be done (spoken from #. experience). "Pre-translate" nicely expresses that it's only the step done #. *before* actual translation. msgid "Pre-translate" msgstr "Pre-tradurre" msgid "Only fill in exact matches" msgstr "Riempi solo quelle con corrispondenza esatta" msgid "" "By default, inaccurate results are filled in as well and marked as needing " "work. Check this option to only include accurate matches." msgstr "" "In modo predefinito le traduzioni non accurate sono tradotte e segnate come " "da verificare. Spunta questa opzione per includere solo le traduzioni con " "corrispondenza esatta." msgid "Don’t mark exact matches as needing work" msgstr "Non segnare le corrispondenze esatte come 'Da verificare'" msgid "" "Only enable if you trust the quality of your TM. By default, all matches " "from the TM are marked as needing work and should be reviewed before use." msgstr "" "Abilitala solo se ti fidi della qualità della MT. In modo predefinito tutte " "le corrispondenze dalla MT sono segnate come 'Da verificare' e devono essere " "controllate." msgid "" "Pre-translation automatically finds exact or fuzzy matches for untranslated " "strings in the translation memory and fills in their translations." msgstr "" "La Pre-traduzione trova automaticamente nella memoria di traduzione le " "corrispondenze esatte o da verificare per le stringhe non tradotte e le " "riempie con le loro traduzioni." #, c-format msgid "%d entry was pre-translated." msgid_plural "%d entries were pre-translated." msgstr[0] "%d elemento è stato pre-tradotto." msgstr[1] "%d elementi sono stati pre-tradotti." msgid "" "The translations were marked as needing work, because they may be " "inaccurate. You should review them for correctness." msgstr "" "Le traduzioni erano state segnate come non verificate, perché non accurate. " "Devi verificarne la correttezza." msgid "No entries could be pre-translated." msgstr "Nessun elemento è stato pre-tradotto." msgid "" "The TM doesn’t contain any strings similar to the content of this file. It " "is only effective for semi-automatic translations after Poedit learns enough " "from files that you translated manually." msgstr "" "LA MT non contiene nessuna stringa simile al contenuto di questo file. la MT " "diventa usabile per traduzioni semi-automatiche solo dopo che Poedit impara " "abbastanza dai file che hai tradotto manualmente." msgid "" "Drag and Drop Folders Here\n" "\n" "or use the + button" msgstr "" "Trascina qui le cartelle\n" "\n" "o usa il pulsante +" msgid "" "Drag and drop folders here\n" "\n" "or use the + button" msgstr "" "Trascina qui le cartelle\n" "\n" "o usa il pulsante +" msgid "Add Folders…" msgstr "Aggiungi cartelle…" msgid "Add folders…" msgstr "Aggiungi cartelle…" msgid "Add Files…" msgstr "Aggiungi file…" msgid "Add files…" msgstr "Aggiungi file…" msgid "Add Wildcard…" msgstr "Aggiungi carattere jolly…" msgid "Add wildcard…" msgstr "Aggiungi carattere jolly…" msgid "Paths" msgstr "Percorsi" msgid "Excluded paths" msgstr "Percorsi esclusi" msgid "Advanced extraction settings" msgstr "Impostazioni di estrazione avanzate" msgid "Extract notes for translators from:" msgstr "Estrai le note per i traduttori da:" msgid "Comments prefixed with:" msgstr "Commenti preceduti da:" msgid "All comments" msgstr "Tutti i commenti" msgid "Additional xgettext flags:" msgstr "Attributi xgettext aggiuntivi:" msgid "Additional keywords" msgstr "Parole chiave aggiuntive" msgid "Name of the project the translation is for" msgstr "Nome del progetto per la traduzione" msgid "Team name and email address or URL" msgstr "Nome e indirizzo email della squadra o URL" msgid "e.g. nplurals=2; plural=(n > 1);" msgstr "esempio. nplurals=2; plural=(n > 1);" msgid "UTF-8 (recommended)" msgstr "UTF-8 (consigliato)" msgid "Please save the file first. This section cannot be edited until then." msgstr "" "Salva prima il file. Questa sezione non può essere modificata fino ad allora." msgid "Not all plural forms are translated." msgstr "Non tutte le forme plurali sono tradotte." msgid "The translation should start as a sentence." msgstr "La traduzione dovrebbe iniziare come una frase." msgid "The translation should start with a lowercase character." msgstr "La traduzione dovrebbe iniziare con un carattere minuscolo." msgid "The translation doesn’t start with a space." msgstr "La traduzione non inizia con uno spazio." msgid "The translation starts with a space, but the source text doesn’t." msgstr "La traduzione inizia con uno spazio, ma non il testo sorgente." msgid "The translation is missing a newline at the end." msgstr "Manca un fine riga alla fine della traduzione." msgid "The translation ends with a newline, but the source text doesn’t." msgstr "La traduzione termina con un fine riga, ma non il testo sorgente." msgid "The translation is missing a space at the end." msgstr "Manca uno spazio alla fine della traduzione." msgid "The translation ends with a space, but the source text doesn’t." msgstr "La traduzione termina con uno spazio, ma non il testo sorgente." #, c-format msgid "The translation should end with “%s”." msgstr "La traduzione dovrebbe terminare con \"%s\"." #, c-format msgid "The translation should not end with “%s”." msgstr "La traduzione non dovrebbe terminare con \"%s\"." #, c-format msgid "The translation ends with “%s”, but the source text ends with “%s”." msgstr "" "La traduzione termina con \"%s\", ma il testo sorgente termina con \"%s\"." msgid "Comment:" msgstr "Commento:" msgid "OK" msgstr "OK" msgid "C&lear" msgstr "Cance&lla" msgid "Clear the comment" msgstr "Cancella il commento" msgid "New" msgstr "Nuovo" msgid "Create new translations project" msgstr "Crea nuovo progetto di traduzione" msgid "Edit" msgstr "Modifica" msgid "Edit the project" msgstr "Modifica il progetto" msgid "Delete the project" msgstr "Elimina il progetto" msgid "Update all" msgstr "Aggiorna tutto" msgid "Update all catalogs in the project" msgstr "Aggiorna tutti i cataloghi del progetto" msgid "Edit project" msgstr "Modifica progetto" msgid "Project name:" msgstr "Nome del progetto:" msgid "Browse" msgstr "Sfoglia" msgid "Add directory to the list" msgstr "Aggiungi cartella all'elenco" msgid "&New…" msgstr "&Nuovo…" msgid "New from &POT/PO file…" msgstr "Nuovo da file &POT/PO…" msgid "New From &POT/PO File…" msgstr "Nuovo da file &POT/PO…" msgid "&Open…" msgstr "&Apri…" msgid "Open Recent" msgstr "Apri recente" msgid "Open from Crowdin…" msgstr "Apri da Crowdin…" msgid "Open From Crowdin…" msgstr "Apri da Crowdin…" msgid "&Close" msgstr "&Chiudi" msgid "&Save" msgstr "&Salva" msgid "Save &as…" msgstr "S&alva come…" msgid "Save &As…" msgstr "S&alva come…" msgid "Compile to MO…" msgstr "Compila in MO…" msgid "E&xport as HTML…" msgstr "E&sporta come HTML…" msgid "Check for updates…" msgstr "Verifica aggiornamenti…" msgid "&Preferences…" msgstr "&Preferenze…" msgid "Catalogs &manager" msgstr "&Gestore dei cataloghi" msgid "Catalogs &Manager" msgstr "&Gestore cataloghi" msgid "E&xit" msgstr "E&sci" msgid "Quit" msgstr "Esci" msgid "Copy from singular" msgstr "Copia dal singolare" msgid "Copy From Singular" msgstr "Copia dal singolare" msgid "Translation needs &work" msgstr "La traduzione richiede una &verifica" msgid "Translation Needs &Work" msgstr "La traduzione richiede una &verifica" msgid "Edit &comment" msgstr "Modifica il &commento" msgid "Edit &Comment" msgstr "Modifica &commento" msgid "Suggestions" msgstr "Suggerimenti" msgid "&Find…" msgstr "Trova…" msgid "Replace…" msgstr "Sostituisci…" msgid "Find next" msgstr "Trova successivo" msgid "Find previous" msgstr "Trova precedente" msgid "Find and Replace…" msgstr "Trova e sostituisci…" msgid "Find Next" msgstr "Trova successivo" msgid "Find Previous" msgstr "Trova precedente" msgid "&Preferences" msgstr "&Preferenze" msgid "Display entry &IDs" msgstr "Visualizza &ID elemento" msgid "Display Entry &IDs" msgstr "Visualizza ID elemento" msgid "Sort by &file order" msgstr "Ordina per ordine &file" msgid "Sort by &File Order" msgstr "Ordina per ordine &file" msgid "Sort by &source" msgstr "Ordina per &sorgente" msgid "Sort by &Source" msgstr "Ordina per &sorgente" msgid "Sort by &translation" msgstr "Ordina per &traduzione" msgid "Sort by &Translation" msgstr "Ordina per &traduzione" msgid "&Group by context" msgstr "&Raggruppa per contesto" msgid "&Group By Context" msgstr "&Raggruppa per contesto" msgid "Entries with errors first" msgstr "Prima le voci con errori" msgid "Entries with Errors First" msgstr "Prima le voci con errori" msgid "&Untranslated entries first" msgstr "&Prima le voci non tradotte" msgid "&Untranslated Entries First" msgstr "&Prima voci non tradotte" msgid "&Show references" msgstr "&Visualizza i riferimenti" msgid "&Show References" msgstr "Mo&stra riferimenti" msgid "Show sidebar" msgstr "Visualizza barra laterale" msgid "Show status bar" msgstr "Visualizza barra di stato" msgid "C&atalog" msgstr "C&atalogo" msgid "&Update from sources" msgstr "&Aggiorna dai sorgenti" msgid "&Update from Sources" msgstr "&Aggiorna dai sorgenti" msgid "Update from &POT file…" msgstr "Aggiorna da file &POT…" msgid "Update from &POT File…" msgstr "Aggiorna da file &POT…" msgid "Sync with Crowdin" msgstr "Sincronizza con Crowdin" msgid "Pre-&translate…" msgstr "Pre-&traduci…" msgid "&Purge deleted translations" msgstr "&Rimuovi traduzioni eliminate" msgid "&Purge Deleted Translations" msgstr "&Rimuovi traduzioni eliminate" msgid "&Validate translations" msgstr "&Verifica traduzioni" msgid "&Validate Translations" msgstr "Verifica traduzioni" msgid "&Properties…" msgstr "&Proprietà…" msgid "&Done and next" msgstr "&Applica e prosegui" msgid "&Done and Next" msgstr "&Applica e prosegui" msgid "&Previous translation" msgstr "Traduzione &precedente" msgid "&Previous Translation" msgstr "Traduzione &precedente" msgid "&Next translation" msgstr "Traduzione &successiva" msgid "&Next Translation" msgstr "Traduzione &successiva" msgid "P&revious unfinished" msgstr "Incompiuta p&recedente" msgid "P&revious Unfinished" msgstr "Incompiuta p&recedente" msgid "Ne&xt unfinished" msgstr "Incompiuta &successiva" msgid "Ne&xt Unfinished" msgstr "Incompiuta &successiva" msgid "Previous plural form" msgstr "Forma plurale precedente" msgid "Previous Plural Form" msgstr "Forma plurale precedente" msgid "Next plural form" msgstr "Forma plurale successiva" msgid "Next Plural Form" msgstr "Forma plurale successiva" msgid "&Online help" msgstr "&Guida in linea" msgid "&Online Help" msgstr "&Guida in linea" msgid "&GNU gettext manual" msgstr "Documentazione &GNU gettext" msgid "&GNU gettext Manual" msgstr "Documentazione &GNU gettext" msgid "&About Poedit" msgstr "Inform&azioni su Poedit" msgid "&About" msgstr "Inform&azioni" msgid "Extractor setup" msgstr "Installazione di estrattore" msgid "List of extensions separated by semicolons (e.g. *.cpp;*.h):" msgstr "Elenco di estensioni separate da punto e virgola (ad es. *.cpp;*.h):" msgid "Invocation:" msgstr "Invocazione:" msgid "Command to extract translations:" msgstr "Comando per estrarre le traduzioni:" msgid "" "This is the command used to launch the extractor.\n" "%o expands to the name of output file, %K to list\n" "of keywords, %F to list of input files,\n" "%C to charset flag (see below)." msgstr "" "Questo è il comando usato per avviare l'estrattore.\n" "%o rappresenta il nome del file in uscita, %K l'elenco\n" "delle parole chiave, %F l'elenco dei file di input,\n" "%C l'opzione dell'insieme di caratteri (vedi sotto)." msgid "An item in keywords list:" msgstr "Oggetto nell'elenco delle parole chiave:" msgid "" "This will be attached to the command line once\n" "for each keyword. %k expands to the keyword." msgstr "" "Sarà accodato alla riga di comando una volta\n" "per ogni parola chiave. %k rappresenta la parola chiave." msgid "An item in input files list:" msgstr "Oggetto nell'elenco dei file di input:" #, c-format msgid "" "This will be attached to the command line once\n" "for each input file. %f expands to the filename." msgstr "" "Verrà aggiunto alla riga di comando un volta\n" "per ogni file di input. %f rappresenta il nome del file." msgid "Source code charset:" msgstr "Insieme di caratteri del codice sorgente:" #, c-format msgid "" "This will be attached to the command line\n" "only if source code charset was given. %c expands to charset value." msgstr "" "Verrà aggiunto alla riga di comando solo se è specificato\n" "il set di caratteri del sorgente. %c rappresenta il valore del set di di " "caratteri." msgid "Catalog properties" msgstr "Proprietà del catalogo" msgid "Project name and version:" msgstr "Nome e versione del progetto:" msgid "Language team:" msgstr "Squadra di traduzione:" msgid "Plural forms:" msgstr "Forme plurali:" msgid "Use default rules for this language" msgstr "Usa regole predefinite per questa lingua" msgid "Use custom expression" msgstr "Usa espressione personale" msgid "Learn about plural forms" msgstr "Informazioni sulle forme plurali" msgid "Charset:" msgstr "Set di caratteri:" msgid "Advanced Extraction Settings…" msgstr "Impostazioni di estrazione avanzate…" msgid "Advanced extraction settings…" msgstr "Impostazioni di estrazione avanzate…" msgid "Translation Properties" msgstr "Proprietà della traduzione" msgid "Translation properties" msgstr "Proprietà traduzione" msgid "Sources Paths" msgstr "Percorsi dei sorgenti" msgid "Sources paths" msgstr "Percorsi sorgente" msgid "Extract text from source files in the following directories:" msgstr "Estrai testo dai file sorgenti nelle seguenti cartelle:" msgid "Base path:" msgstr "Percorso di base:" msgid "Sources Keywords" msgstr "Parole chiave sorgenti" msgid "Sources keywords" msgstr "Chiavi ricerca sorgente" msgid "" "Use these keywords (function names) to recognize translatable strings\n" "in source files:" msgstr "" "Utilizza queste parole chiave (nomi delle funzioni) per riconoscere le " "stringhe\n" "traducibili nei file sorgenti:" msgid "Also use default keywords for supported languages" msgstr "Usa anche parole chiave predefinite per le lingue supportate" msgid "Learn About Gettext Keywords" msgstr "Maggiori info sulle parole chiave Gettext" msgid "Learn about gettext keywords" msgstr "Info sulle parole chiave gettext" msgid "Update summary" msgstr "Aggiorna riepilogo" msgid "" "These strings were found in the sources but were not in the catalog.\n" "Poedit will add them to the catalog now." msgstr "" "Queste stringhe sono state trovate nei sorgenti ma non nel catalogo.\n" "Poedit ora le aggiungerà al catalogo." msgid "New strings" msgstr "Nuove stringhe" msgid "" "These strings are no longer in the sources.\n" "Poedit will remove them from the catalog now." msgstr "" "Queste stringhe non ci sono più nei sorgenti.\n" "Poedit ora le rimuoverà dal catalogo." msgid "Obsolete strings" msgstr "Stringhe obsolete" msgid "(0 new, 0 obsolete)" msgstr "(0 nuove, 0 obsolete)" msgid "Open" msgstr "Apri" msgid "Save catalog" msgstr "Salva catalogo" msgid "Validate" msgstr "Verifica" msgid "Check for errors in the translation" msgstr "Controlla gli errori nella traduzione" msgid "Update" msgstr "Aggiorna" msgid "Update catalog - synchronize it with sources" msgstr "Aggiorna catalogo - sincronizzalo con i sorgenti" msgid "Sidebar" msgstr "Barra laterale" msgid "Show or hide the sidebar" msgstr "Visualizza/nascondi la barra laterale" #. TRANSLATORS: "Previous" as in used in the past, now replaced with newer. msgid "Previous source text:" msgstr "Testo sorgente precedente:" msgid "" "The old source text (before it changed during an update) that the now-" "inaccurate translation corresponds to." msgstr "" "Il vecchio testo sorgente (prima della modifica durante un aggiornamento) " "che corrisponde alla traduzione non verificata." msgid "Notes for translators:" msgstr "Note per i traduttori:" msgid "Add comment" msgstr "Aggiungi commento" msgid "Add Comment" msgstr "Aggiungi commento" msgid "Translation suggestions:" msgstr "Suggerimenti di traduzione:" #. TRANSLATORS: This is shown when no translation suggestions can be found in the TM (Windows). msgid "No matches found" msgstr "Nessuna corrispondenza trovata" #. TRANSLATORS: This is shown when no translation suggestions can be found in the TM (macOS, Linux). msgid "No Matches Found" msgstr "Nessuna corrispondenza trovata" msgid "This string was found in Poedit’s translation memory." msgstr "La stringa è stata trovata nella memoria di traduzione." msgid "Cannot create temporary directory." msgstr "Impossibile creare la cartella temporanea." msgid "Welcome to Poedit" msgstr "Benvenuto in Poedit" #. TRANSLATORS: This is version information in about dialog, "%s" will be #. version number when used #, c-format msgid "Version %s" msgstr "Versione %s" msgid "Edit a Translation" msgstr "Modifica una traduzione" msgid "Edit a translation" msgstr "Modifica una traduzione" msgid "Open an existing PO file and edit the translation." msgstr "Apri un file PO esistente e modifica la traduzione." msgid "" "Take an existing PO file or POT template and create a new translation from " "it." msgstr "" "Apri un file PO o un modello POT e crea una nuova traduzione a partire da " "esso." msgid "Collaborate on a Translation with Others" msgstr "Collabora ad una traduzione con altri" msgid "Collaborate on a translation with others" msgstr "Collabora a una traduzione con altri" msgid "" "Download a file from Crowdin project, translate and sync your changes back." msgstr "" "Scarica un file da un progetto Crowdin, traducilo e sincronizzalo con le tue " "modifiche. Gli altri traduttori vedranno sul loro programma le tue modifiche " "in un attimo, facendo clic su sincronizza e senza rischiare di lavorare " "sulle stesse parti di altri." msgid "What is Crowdin?" msgstr "Che cos'è Crowdin?" msgid "There are no translations. That’s unusual." msgstr "Non ci sono traduzioni, Questo è strano." msgid "" "Translatable entries aren’t added manually in the Gettext system, but are " "automatically extracted\n" "from source code. This way, they stay up to date and accurate.\n" "Translators typically use PO template files (POTs) prepared for them by the " "developer." msgstr "" "Le voci di traduzione non sono state aggiunte manualmente nel sistema " "Gettext, ma sono state estratte\n" "automaticamente dal codice sorgente. In questo modo, rimangono aggiornate e " "accurate.\n" "I traduttori di solito usano i file modello (POT) preparati per loro dagli " "sviluppatori." msgid "(Learn more about GNU gettext)" msgstr "(Altre informazioni su GNU gettext)" msgid "The simplest way to fill this catalog is to update it from a POT:" msgstr "" "La via più semplice per compilare questo catalogo è aggiornarlo da un file " "POT." msgid "Update from POT" msgstr "Aggiorna da file POT" msgid "Take translatable strings from an existing POT template." msgstr "Estrai le stringhe da tradurre da un modello POT esistente." msgid "" "You can also extract translatable strings directly from the source code:" msgstr "" "Puoi anche estrarre stringhe da tradurre direttamente dal codice sorgente:" msgid "Extract from sources" msgstr "Estrai dai sorgenti" msgid "Configure source code extraction in Properties." msgstr "Configura estrazione codice sorgente in Proprietà." msgid "Sync" msgstr "Sincronizza" msgid "Synchronize the translation with Crowdin" msgstr "Sincronizza la traduzione con Crowdin" #. TRANSLATORS: This is titlebar of about dialog, "%s" is application name #. ("Poedit" here, but please use "%s") #, c-format msgid "About %s" msgstr "Informazioni su %s" #. TRANSLATORS: Title of the preferences window on Windows and Linux. "%s" is replaced with "Poedit" when running. #, c-format msgid "%s Preferences" msgstr "%s Preferenze" #. TRANSLATORS: macOS item in app menu msgid "Services" msgstr "Servizi" #. TRANSLATORS: macOS item in app menu, %s is replaced with "Poedit" #, c-format msgid "Hide %s" msgstr "Nascondi %s" #. TRANSLATORS: macOS item in app menu msgid "Hide Others" msgstr "Nascondi altri" #. TRANSLATORS: macOS item in app menu msgid "Show All" msgstr "Visualizza tutto" #. TRANSLATORS: macOS item in app menu, %s is replaced with "Poedit" #, c-format msgid "Quit %s" msgstr "Esci da %s" #. TRANSLATORS: macOS item in app menu msgid "Preferences…" msgstr "Preferenze…" msgid "Preferences..." msgstr "Impostazioni..." #. TRANSLATORS: Title of a category in Windows task menu (right-click icon in taskbar) msgid "Recent" msgstr "Recenti" #. TRANSLATORS: Title of a category in Windows task menu (right-click icon in taskbar) msgid "Frequent" msgstr "Frequenti" msgid "&Apply" msgstr "&Applica" msgid "Apply" msgstr "Applica" msgid "&Back" msgstr "&Indietro" msgid "Back" msgstr "Indietro" msgid "&Cancel" msgstr "&Annulla" msgid "&Clear" msgstr "&Pulisci" msgid "Clear" msgstr "Pulisci" msgid "Copy" msgstr "Copia" msgid "Cu&t" msgstr "&Taglia" msgid "Cut" msgstr "Taglia" msgid "&Delete" msgstr "&Elimina" msgid "&Quit" msgstr "&Esci" msgid "File" msgstr "File" msgid "Help" msgstr "Aiuto" msgid "&New" msgstr "&Nuovo" msgid "&No" msgstr "&No" msgid "No" msgstr "No" msgid "&OK" msgstr "&OK" msgid "Open…" msgstr "Apri…" msgid "&Open..." msgstr "&Apri..." msgid "Open..." msgstr "Apri..." msgid "&Paste" msgstr "&Incolla" msgid "Paste" msgstr "Incolla" msgid "Preferences" msgstr "Preferenze" msgid "&Redo" msgstr "&Ripeti" msgid "Refresh" msgstr "Aggiorna" msgid "&Save as" msgstr "&Salva come" msgid "Save as" msgstr "Salva come" msgid "Select &All" msgstr "Seleziona &tutto" msgid "Select All" msgstr "Seleziona tutto" msgid "&Undo" msgstr "&Annulla" msgid "&Yes" msgstr "&Sì" msgid "Yes" msgstr "Sì" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Shift+" msgstr "Maiusc+" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Enter" msgstr "Invio" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Up" msgstr "Su" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Down" msgstr "Giù" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Left" msgstr "Sinistra" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Right" msgstr "Destra" #. TRANSLATORS: Keyboard shortcut, must correspond to translation of "Ctrl+" msgid "ctrl" msgstr "ctrl" #. TRANSLATORS: Keyboard shortcut, must correspond to translation of "Alt+" msgid "alt" msgstr "alt" #. TRANSLATORS: Keyboard shortcut, must correspond to translation of "Shift+" msgid "shift" msgstr "maiusc" poedit-2.0.6/locales/bg.mo0000664000372000037200000017400113230132075012272 00000000000000P%1 1 11<11J 2gW2 22 22 222 3333%3+333B3Q3W3]3f3z333333333333 3 44 4)4 04=4M4c4y44444444445 5(5D5Y5n55555555 6 '6:36:n6 666 6 666 6 7 #707?7O7c7~77777 71898'>8f88 8878689)=9g9 l9]w99A9I*:t:{:; ;;";:; U;`;.h;;;;;;;;<*<F<#[<<<<<<<<(<(=7= R=s=|== ==/= = >>#>9>L>b>2>>>>> ?)???????@@@ 2@?@R@Ee@"@?@ AA*.A YAfAyAK~A"A5A#B)BHAH HHI 'IHI PI ]IiI"nI;I(IIJ&J 5J ?JMJjJ ~JJJJJ JJK:K PK<^K.KKKKLL*%LPLVLgL xL LLJMNMgM MMMMM#MM'M$N7DN$|N%NNNNNNOOOO O2O P#P9PNP]PlPtP|PPPPPPPPQQQnQERZR>aR RRRR@RS-T#f4&6'#E4i08ρ@=\@-ۂ )<ƃD>Hum$BYՅ /:Q' 4FWJZ pO|G̉/c>&+Ɋ++!Mi(<B-+:Y-(Œ(,))V11ƍ::3n,*َ%Fe~1-?/koAې$,B=oő֒ܒBB3v3Dѓ& =3I3}7Oz*gG*ɖ n:p\ "7-O-}-(٘)-,(Z*řߙPm--Ky@`23Ԝ< E R'_4Jٝk$=*Ξ% G2QzM̟^y0Gk gq&&ġ!) 17%i&&ݢ..J y գ  3&/Z<1Ǥ%,:%g), +=7Tu*ʧ2 OY:y)ި(>#7b)ĩ( e(|`dk/1׫ "9$A$f Rd..k6;ITF\Q)J tFD./@ p9j˳$66[ $$ش% 8&E&l е: 1>|!2H"{5n۹JP+i''o*UX;*&*Q-|+ֿ 9 Q\o ,?NPB -Mm(* 86Y5 ''Ba$h6&>.*DY6>?Tr   ,%Rh~!4%!25%h5@! 6W2r(2( *5&"+"N]t W't;0=&%d;Z !n,cJ$J-ok8Ic noe%(~F\X[XX;>,9GRNWTAYJrY}uyxwE R1 %_!$!$)9c x^$e 1# --O[j**A+l ,(Q- /32c5;|*7 A`6w#lhl`pt s,Klx661S(.D}],6 9BW6tC3H>C'# )h?*Kq#-0^aG2zFYblx&2LADZ.EwPi=Ab[kv @4uh~ uL@|pnf.nTN? QI2:qOKcajd F!p ]U>T+rXi=J%Vxz51^s4 NH/F"8/XJ`om #UwQk :Gs$ 8jL!~I1,(<D-9B>|;$H(E?g<y!dYgIo \ <eN+rM5&cM5 :"K-A+EmZ7C"603B $%RfRVeyOG*S@ M,4}_{O%W91J)S[`' 7)v &;*{(l_.03=\7P8/t';P (modified) (unsaved)%d entry%d entries%d entry was pre-translated.%d entries were pre-translated.%d error%d errors%d issue with the translation found.%d issues with the translation found.%i line of file “%s” was not loaded correctly.%i lines of file “%s” were not loaded correctly.%s Format%s Preferences%s format&About&About Poedit&Apply&Back&Bookmarks&Cancel&Clear&Close&Copy&Delete&Done and Next&Done and next&Edit&File&Find…&GNU gettext Manual&GNU gettext manual&Go&Group By Context&Group by context&Help&New&New…&Next >&Next Translation&Next translation&No&OK&Online Help&Online help&Open...&Open…&Paste&Preferences&Preferences…&Previous Translation&Previous translation&Properties…&Purge Deleted Translations&Purge deleted translations&Quit&Redo&Replace&Save&Save as&Show References&Show references&Undo&Untranslated Entries First&Untranslated entries first&Update from Sources&Update from sources&Validate Translations&Validate translations&View&Yes(0 new, 0 obsolete)(Learn more about GNU gettext)(New: %i, obsolete: %i)(Use default language)(requires Windows 8 or newer)< &PreviousDrag and Drop Folders Here or use the + buttonDrag and drop folders here or use the + buttonAbout %sAccountsAdd CommentAdd Files…Add Folders…Add Wildcard…Add commentAdd directory to the listAdd files…Add folders…Add wildcard…Additional keywordsAdditional xgettext flags:AdvancedAdvanced Extraction Settings…Advanced extraction settingsAdvanced extraction settings…All Translation FilesAll commentsAlso use default keywords for supported languagesAlt+Always change focus to text input fieldAn item in input files list:An item in keywords list:AppearanceApplyAre you sure you want to delete the “%s” extractor?Are you sure you want to reset the translation memory?Automatically check for updatesAutomatically compile MO file when savingBackBase path:Beta versions contain the latest new features and improvements, but may be a bit less stable.Bring All to FrontBroken catalog file: plural form msgstr used without msgid_pluralBroken catalog file: singular form msgstr used together with msgid_pluralBrowseBy default, inaccurate results are filled in as well and marked as needing work. Check this option to only include accurate matches.C&atalogC&learCancelCannot create temporary directory.Cannot execute program: %sCapitalizeCatalogCatalog modified. Do you want to save changes?Catalog propertiesCatalogs &ManagerCatalogs &managerCatalogs ManagerChange UI languageCharset:Check Document NowCheck Grammar With SpellingCheck Spelling While TypingCheck for Updates…Check for errors in the translationCheck for updates…Check spellingClearClear TranslationClear the commentClear translationCloseCollaborate on a Translation with OthersCollaborate on a translation with othersCollecting source files…Command to extract translations:Comment:Comments prefixed with:Compile to MO…Compile to…Compiled Translation FilesConfigure source code extraction in Properties.ConfirmationCopyCopy From SingularCopy from Source TextCopy from singularCopy from source textCorrect Spelling AutomaticallyCouldn’t load file %s, it is probably corrupted.Couldn’t save file %s.Create New TranslationCreate new translationCreate new translations projectCrowdin errorCrowdin is an online localization management platform and collaborative translation tool. Poedit can seamlessly sync PO files managed at Crowdin.Ctrl+Cu&tCustom Extractors:Custom extractors:CutDatabase size on disk:DeleteDelete extractorDelete the projectDirectories:Display Entry &IDsDisplay entry &IDsDo you really want to do mass update of all catalogs in this project?Do you want to delete the project?Do you want to remove all translations that are no longer used?Don’t SaveDon’t Show AgainDon’t mark exact matches as needing workDon’t saveDon’t show againDownDownload a file from Crowdin project, translate and sync your changes back.Downloading latest translations…Downloading translations is disabled in this project.E&xitE&xport as HTML…EditEdit &CommentEdit &commentEdit CommentEdit a TranslationEdit a translationEdit commentEdit projectEdit the projectEditingEdit…Email:EnterEnter Full ScreenEntries in the catalog are probably incorrect.Entries in this catalog have different plural forms count from what catalog’s Plural-Forms header saysEntries with Errors FirstEntries with errors firstEntries with errors were marked in red in the list. Details of the error will be shown when you select such an entry.Error loading message catalog file “%s”.Error opening fileError opening file %s!Error saving catalogErrorsEverythingExcluded pathsExport as…Extract from sourcesExtract notes for translators from:Extract text from source files in the following directories:Extracting translatable strings…Extractor setupExtractorsFailed command: %sFailed to communicate with Poedit process.Failed to load extracted catalog.Failed to merge gettext catalogs.Failed to update translation memory: %sFileFile “%s” doesn’t exist.File “%s” is not a message catalog.File “%s” is read-only and cannot be saved. Please save it under different name.File:Finalizing…FindFind NextFind PreviousFind and Replace…Find in commentsFind in source textsFind in translationsFind nextFind previousFix LanguageFix languageFix the HeaderFix the headerForm %iFrequentGNU gettextGeneralGo to Bookmark %iGo to bookmark %iHTML FilesHelpHide %sHide OthersHide SidebarHide Status BarHide this notification messageIDIf you continue with purging, all translations marked as deleted will be permanently removed. You will have to translate them again if they are added back in the future.Ignore caseImporting translations…Include beta versionsInformation about the translatorInstallInvalid fileInvocation:KeepLanguage Code or Name (e.g. en_GB)Language of the translation is the same as source language.Language of the translation isn’t set.Language of the translation:Language selectionLanguage team:Language:Last modifiedLearn About Gettext KeywordsLearn From Files…Learn MoreLearn More About CrowdinLearn about gettext keywordsLearn about plural formsLearn from files…Learn moreLearn more about CrowdinLeftLine %d of file “%s” is corrupted (not valid %s data).Line endings:List of extensions separated by semicolons (e.g. *.cpp;*.h):MO files can’t be directly edited in Poedit.Make Lower CaseMake Upper CaseMalformed header: “%s”Merging differences…MinimizeName of the project the translation is forName:Ne&xt UnfinishedNe&xt unfinishedNeeds WorkNeeds workNever let the list of strings take focus. If enabled, you must use Ctrl-arrows for keyboard navigation but you can also type text immediately, without having to press Tab to change focus.NewNew From &POT/PO File…New from &POT/PO file…New stringsNext Plural FormNext plural formNoNo Matches FoundNo entries could be pre-translated.No matches foundNo problems with the translation found.No references for the selected item.No translation projects listed in your Crowdin account.Not all plural forms are translated.Not authorized, please sign in again.Notes for translators:OKObsolete stringsOneOnly enable if you trust the quality of your TM. By default, all matches from the TM are marked as needing work and should be reviewed before use.Only fill in exact matchesOpenOpen Crowdin translationOpen From Crowdin…Open RecentOpen an existing PO file and edit the translation.Open catalogOpen catalog templateOpen from Crowdin…Open in EditorOpen in editorOpen...Open…OptionsOtherP&revious UnfinishedP&revious unfinishedPO TranslationPO Translation FilesPOT Translation TemplatesPOT files are only templates and don’t contain any translations themselves. To make a translation, create a new PO file based on the template.PastePaste and Match StylePathsPlease open and edit the corresponding PO file instead. When you save it, the MO file will be updated as well.Please save the file first. This section cannot be edited until then.PluralPlural forms expression used by the catalog is unusual for %s.Plural forms:Plural:PoeditPoedit - Catalogs managerPoedit automatically fixed invalid content in the file “%s”.Poedit can attempt to fill in new entries from only previous translations in the file or from your entire translation memory. Using the TM won’t be very effective if it’s near-empty, but it will get better as you add more translations to it.Poedit is an easy to use translations editor.Pre-&translate…Pre-translatePre-translatedPre-translated %u stringPre-translated %u stringsPre-translating…Pre-translation automatically finds exact or fuzzy matches for untranslated strings in the translation memory and fills in their translations.PreferencesPreferences...Preferences…Preserve formatting of existing filesPrevious Plural FormPrevious plural formPrevious source text:Project name and version:Project name:Project:PurgePurge deleted translationsQuitQuit %sRecentRedoReferences:RefreshRemaining: %dReplaceReplace &AllReplace &allReplacement stringReplace…Required header Plural-Forms is missing.ResetReset translation memoryResetting the translation memory will irrevocably delete all stored translations from it. You can’t undo this operation.ReviewRightSaveSave &As…Save &as…Save asSave as…Save catalogSave changesSelect &AllSelect AllSelect directorySelect translation files to importSelect your preferred languageServicesSet Bookmark %iSet LanguageSet bookmark %iSet languageShift+Show AllShow SidebarShow Spelling and GrammarShow Status BarShow SubstitutionsShow or hide the sidebarShow sidebarShow status barShow summary after catalog updateSidebarSign InSign OutSign inSign in to CrowdinSign outSigned in as:SingularSingular:Smart Copy/PasteSmart DashesSmart LinksSmart QuotesSort by &File OrderSort by &SourceSort by &TranslationSort by &file orderSort by &sourceSort by &translationSource code charset:Source code extractors are used to find translatable strings in the source code files and extract them so that they can be translated.Source code not available.Source fileSource file occurrence:Source textSource text — %sSource text:Sources KeywordsSources PathsSources keywordsSources pathsSpeechSpellchecking is disabled, because the dictionary for %s isn’t installed.Spelling and GrammarStart SpeakingStop SpeakingStored translations:String to findSubstitutionsSuggestionsSuggestions are not available if the translation language is not set correctly. Other features, such as plural forms, may be affected as well.Supports all programming languages recognized by GNU gettext tools (PHP, C/C++, C#, Perl, Python, Java, JavaScript and others).SyncSync with CrowdinSynchronize the translation with CrowdinSyncingSyncing errorSyncing with %s failed.Syncing with %s…Syncing with Crowdin failed.Syntax error in Plural-Forms header ("%s").TMTake an existing PO file or POT template and create a new translation from it.Take translatable strings from an existing POT template.Team name and email address or URLText ReplacementThe TM doesn’t contain any strings similar to the content of this file. It is only effective for semi-automatic translations after Poedit learns enough from files that you translated manually.The catalog couldn’t be saved in “%s” charset as specified in catalog settings. It was saved in UTF-8 instead and the setting was modified accordingly.The file cannot be compiled into the MO format and used.The file cannot be opened.The file contained duplicate items, which is not allowed in PO files and would prevent the file from being used. Poedit fixed the issue, but you should review translations of any items marked as needing work and correct them if necessary.The file may be either corrupted or in a format not recognized by Poedit.The file was compiled into the MO format, but it will probably not work correctly.The file was saved safely and compiled into the MO format, but it will probably not work correctly.The file was saved safely, but it cannot be compiled into the MO format and used.The file was saved safely.The old source text (before it changed during an update) that the now-inaccurate translation corresponds to.The simplest way to fill this catalog is to update it from a POT:The translation doesn’t start with a space.The translation ends with a newline, but the source text doesn’t.The translation ends with a space, but the source text doesn’t.The translation ends with “%s”, but the source text ends with “%s”.The translation is missing a newline at the end.The translation is missing a space at the end.The translation is ready for use, but %d entry is not translated yet.The translation is ready for use, but %d entries are not translated yet.The translation is ready for use.The translation should end with “%s”.The translation should not end with “%s”.The translation should start as a sentence.The translation should start with a lowercase character.The translation starts with a space, but the source text doesn’t.The translations were marked as needing work, because they may be inaccurate. You should review them for correctness.There are no translations. That’s unusual.There was a problem formatting the file nicely (but it was saved all right).There were errors when loading the catalog. Some data may be missing or corrupted as the result.These settings affect internal formatting of PO files. Adjust them if you have specific requirements e.g. because of version control.These strings are no longer in the sources. Poedit will remove them from the catalog now.These strings were found in the sources but were not in the catalog. Poedit will add them to the catalog now.This catalog has entries with plural forms, but doesn’t have Plural-Forms header configured.This file can only be edited in Crowdin’s web interface.This is the command used to launch the extractor. %o expands to the name of output file, %K to list of keywords, %F to list of input files, %C to charset flag (see below).This project has no files that can be translated in Poedit.This string was found in Poedit’s translation memory.This will be attached to the command line only if source code charset was given. %c expands to charset value.This will be attached to the command line once for each input file. %f expands to the filename.This will be attached to the command line once for each keyword. %k expands to the keyword.TotalTransformationsTranslatable entries aren’t added manually in the Gettext system, but are automatically extracted from source code. This way, they stay up to date and accurate. Translators typically use PO template files (POTs) prepared for them by the developer.Translated: %d of %d (%d %%)Translation LanguageTranslation MemoryTranslation Needs &WorkTranslation PropertiesTranslation needs &workTranslation propertiesTranslation suggestions:Translation — %sTranslation:Translations couldn’t be updated from the source code, because no code was found in the location specified in the catalog’s Properties.TwoUTF-8 (recommended)UndoUnhandled exception occurred: %sUnix (recommended)UntransUpUpdateUpdate allUpdate all catalogs in the projectUpdate catalog - synchronize it with sourcesUpdate from &POT File…Update from &POT file…Update from POTUpdate summaryUpdatesUpdating catalogUpdating failedUpdating the catalog failed. Click on 'Details >>' for details.Updating user information…Uploading translations…Use custom expressionUse custom list font:Use custom text fields font:Use default rules for this languageUse these keywords (function names) to recognize translatable strings in source files:Use translation memoryValidateValidation resultsVersion %sWaiting for authentication…Welcome to PoeditWhat is Crowdin?When updating from sourcesWhole words onlyWindowWindowsWrap aroundWrap at:YesYou can also extract translatable strings directly from the source code:You can’t drop more than one file on Poedit window.You must restart Poedit for this change to take effect.Your NameYour changes will be lost if you don’t save them.Your name and email address are only used to set the Last-Translator header of GNU gettext files.ZeroZoomaltctrldon’t delete temporary files (for debugging)e.g. nplurals=2; plural=(n > 1);fuzzy match within the filego to item at given line numberhandle a poedit:// URIpre-translate from TMshiftunknown languageyour_email@example.com“%s” is not a valid POT file.Project-Id-Version: poedit Report-Msgid-Bugs-To: help@poedit.net POT-Creation-Date: 2017-12-05 15:52+0100 PO-Revision-Date: 2018-01-18 07:55-0500 Last-Translator: vslavik Language-Team: Bulgarian Language: bg_BG MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=(n != 1); X-Generator: crowdin.com X-Crowdin-Project: poedit X-Crowdin-Language: bg X-Crowdin-File: /locales/poedit.pot (незапазен) (незапазен)%d елемент%d елемента%d запис беше предварително преведен.%d записа бяха предварително преведени.%d грешка%d грешкиС превода има %d проблем.С превода има %d проблема.%i ред от файла „%s“ не беше зареден правилно.%i реда от файла „%s“ не бяха заредени правилно.Формат на %sНастройки на %sформат на %s&Относно&Относно Poedit&Прилагане&Назад&Отметки&Отказ&Изчистване&Затваряне&Копиране&Изтриване&Готово, към следващия&Готово, към следващия&Редактиране&Файл&Търсене…&Ръководство на GNU gettext&Ръководство на GNU gettextО&бхождане&Групиране по контекст&Групиране по контекстПомо&щ&Нов&Нов…Следващ &>&Следващ низ&Следващ низ&Не&ДобреОн&лайн помощОн&лайн помощ&Отваряне…&Отваряне…По&ставяне&Настройки&Настройки…&Предишен низ&Предишен низ&Свойства…&Прочистване на изтрити преводи&Прочистване на изтрити преводиИз&ход&Повтаряне&Замяна&ЗапазванеЗапазване &катоПоказване на &позоваванеПоказване на &позовавания&ОтмянаН&епреведените първиН&епреведените първиАктуализация от &изходен кодАктуализация от &изходен код&Валидиране на превода&Валидиране на превода&Изглед&Да(0 нови, 0 неизползвани)(Научете повече за GNU gettext)(нови: %i, остарели: %i)(Ползване на стандартния език)(изисква Windows 8 или по-нов)&< ПредишенПлъзнете и пуснете папки тук или натиснете бутона „+“Плъзнете и пуснете папки тук или натиснете бутона „+“<без име>Относно %sПрофилиДобавяне на коментарДобавяне на файлове…Добавяне на папки…Добавяне на заместващ знак…Добавяне на коментарДобавяне на папка към списъкаДобавяне на файлове…Добавяне на папки…Добавяне на заместващ знак…Допълнителни ключови думиДопълнителни флагове към xgettext:РазширениРазширени настройки за извличане…Разширени настройки за извличанеРазширени настройки за извличане…Всички файлове за преводВсички коментариСъщо така да бъдат ползватни ключовите думи по подразбиране за поддържаните езициAlt+полето за превод &винаги на фокусЕлемент от списъка с входящи файлове:Елемент от списъка с ключови думи:Външен видПрилаганеНаистина ли желаете да изтриете инструментът за извличане „%s“?Наистина ли желаете паметта с преводи да бъде възстановена?автоматична &проверка за обновяване&автоматично компилиране до файл MO при запазванеНазадОсновен път:Изданията бета съдържат последните нови възможности и подобрения, но може да бъдат по-малко стабилни.Всички на преден планПовреден каталог: използвана е множествена форма на msgstr, а msgid_plural липсваПовреден каталог: използвана е единствена форма на msgstr при наличие на msgid_pluralИзбиранеСтандартно неточните резултати биват добавяни, но отбелязани като мъгляви. Отметнете, за да бъдат добавяни само точните съвпадения.&КаталогИ&зчистванеО&тказВременната папка не може да бъде създадена.Програмата не може да бъде изпълнена: %sВ главни буквиКаталогКаталогът е променен. Искате ли да запазите промените?Свойства на каталога&Управление на каталози&Управление на каталози&Управление на каталозиСмяна на &езикаЗнаков набор:Проверка на документаПроверка на граматика и правописПроверка на правописа при въвежданеПроверка за обновяване…Проверяване за грешки в преводаПроверка за обновяване…Проверка на правописаИзчистванеИ&зчистване на преводaИзчистване на коментараИ&зчистване на превода&ЗатварянеСъвместна работа по преводСъвместна работа по преводСъбиране на изходните файлове…&Команда за извличане на низове:&Коментар:Префикс на &коментарите:Компилиране до файл MO…Компилиране до…Компилирани преводиНастройка на извличане от изходен код.ПотвърждениеКопиранеКопиране от ед. ч.Копиране от изходния текстКопиране от ед. ч.&Копиране изходния текстАвтоматична корекция на правописаГрешка при отваряне на файла „%s“. Най-вероятно е повреден.Файлът „%s“ не може да бъде запазен.Създаване на преводСъздаване на &нов преводСъздаване на нов проект за преводГрешка в CrowdinCrowdin е онлайн платформа за управление на локализации и инструмент за съвместни преводи. Poedit може безпроблемно да синхронизира PO, управлявани от Crowdin.Ctrl+&ИзрязванеПотребителски команди за извличане:Потребителски команди за извличане:ИзрязванеГолемина на базата от данни:&ИзтриванеИзтриване на инструмент за извличанеИзтриване на проектаПапки:Показване на и&дентификаторПоказване на и&дентификаторНаистина ли искате да направите масова актуализация на всички каталози в този проект?Искате ли да изтриете проекта?Искате ли да премахнете всички преводи, които вече не се използват?Без запазванеДа не се показва повечеТочните съвпадения да не бъдат отбелязвани като мъглявиБез запазванеДа не се показва повечеНадолуИзтегляне на файл от проект в Crowdin, превеждане и допринасяне.Изтегляне на текущите преводи…Изтеглянето на преводи е изключено за този проект.&ИзходИз&насяне като HTML…&РедактиранеРедактиране на &коментарРедактиране на &коментарРедактиране на &коментарРедактиране на превод&Редактиране на преводРедактиране на &коментарРедактиране на проектРедактиране на проектаРедактиранеРедактиране…Електронна поща:EnterНа &цял екранНизовете в каталога вероятно са неправилни.В този каталог се срещат форми за множествено число, които не отговарят на заглавката „Plural-Forms“Преводите с грешки първиПреводите с грешки първиНизовете с грешки са разграничени в списъка с червен цвят на фона. Подробности ще бъдат показани, когато изберете такъв запис.Грешка при зареждане на файла „%s“.Грешка при отваряне на файлГрешка при отваряне на „%s“!Грешка при запазване на каталогаГрешкиВсичкоПренебрегнати пътищаИзнасяне като…Актуализация от &изходен кодИзвличане на бележки към преводачите от:Извличане на низове от изходните файлове в следните папки:Извличане на низовете за превод…Настройка на извличанеИзвличанеНеуспешна команда: %sГрешка в комуникацията с процес на Poedit.Извлеченият каталог не може да бъде зареден.Неуспешно обединяване на каталози на gettext.Актуализирането на паметта с преводи е неуспешно: %sФайлФайлът „%s“ не съществува.Файлът „%s“ не е каталог със съобщения.Файлът „%s“ е без право на запис. Запазете го под друго име.Файл:Приключване…Търсене…&Следващо съвпадение&Предишно съвпадениеТърсене и замяна…Търсене в &коментаритеТърсене в изходните низовеТърсене в &преводите&Следващо съвпадение&Предишно съвпадениеПромяна на езикаПромяна на езикаКоригиране на заглавкатаКоригиране на заглавкатаФорма %iЧесто използваниGNU GettextОбщиКъм отметка %iКъм отметка %iHTML файловеПомощСкриване на %sСкриване на всички останали&Скриване странична лентаСкриване на лента за състояниетоСкриване на това съобщениеИдентификаторАко продължите с прочистването, всички преводи, обозначени като изтрити ще бъдат премахнати. Ще трябва да ги превеждате отново, ако в последствие бъдат върнати.Незачитане на регистъраВнасяне на преводи…&включително beta-версииИнформация за преводачаИнсталиранеНевалиден файлИзвикване:&ОтказКод или име на езика (например en_GB)Езикът на превода е същият като изходния език.Липсва език на превода.Език на превода:Избиране на езикЕкип преводачи:Език:Последна промянаПовече за ключовите думи на GettextНаучаване от файлове…Научете повечеНаучете повече за CrowdinПовече за ключовите думи на GNU gettextПовече за множествените формиНаучаване от файлове…Научете повечеНаучете повече за CrowdinНалявоРед %d от файла „%s“ е неправилен (неправилни данни за %s).&символ за край на ред:Списък на разширенията разделени с „;“ (напр. *.cpp; *.h):MO файлове не могат да бъдат директно редактирани в Poedit.Към малки буквиКъм главни буквиНеправилна заглавка: „%s“Обединяване на разликите…Минимизиранеиме и версияИме:С&ледващ незавършенС&ледващ незавършенМъглявМъглявНе позволява на списъка с низове да приеме фокус. Ако е отметнато, трябва да използвате Ctrl-стрелки за навигация с клавиатурата, но така можете да въвеждате текст веднага, без да се налага да натискате табулатора, за да промените фокуса.&ДобавянеНов от &файл POT/PO…Нов от &файл POT/PO…ДобавениСледващата форма за мн. ч.Следващата форма за мн. ч.НеНяма съвпаденияНяма записи, които могат да бъдат предварително преведени.Няма съвпаденияНе са открити проблеми в преводаНяма предпочитания за избрания елемент.Няма проекти за превод във вашия профил в Crowdin.Не всички форма за множествено число са преведени.Не сте удостоверени, моля, впишете се отново.Бележка към преводача:Д&обреНеизползваниЕдинВключете това, само ако вярвате в качеството на паметта за преводи. По подразбиране всички съвпадения от ПП се отбелязват като мъгляви и трябва да бъдат проверени преди употреба.Попълване само на точните съвпаденияО&тварянеОтваряне на превод от CrowdinОтваряне от Crowdin…Отваряне на последните файловеОтваряне на съществуващ каталог и редактиране на превода.Отваряне на каталогОтваряне на шаблон на каталогОтваряне от Crowdin…Отваряне с редакторОтваряне с редакторОтваряне…Отваряне…НастройкиПовечеП&редишен незавършенП&редишен незавършенФайл с превод POФайлове с преводиШаблон за преводиФайловете POT са само шаблони и сами по себе си не съдържат преводи. За да започнете превод създайте нов файл PO базиран на този шаблон.ПоставянеВмъкване със запазване на стилаПътищаМоля, вместо това отворете и редактирате съответния файл PO. Когато запазите вашите промени, файлът MO също ще бъде обновен.Моля, първо запазете файла. Тези настройки ще са неактивни дотогава.Множествено числоИзразът за формите на множественото число на каталога е необичаен за %s език.Форми за множествено число:Множествено число:PoeditPoedit — управление на каталозиPoEdit автоматично оправи невалидно съдържание във файла „%s“.Poedit може да се опита да попълни новите записи чрез вече съществуващите преводи във файла или като използва цялата памет за преводи. Използването на ПП няма да е особено ефикасно, ако в нея няма много запис, но това ще става все по-добре при попълването ѝ.Poedit е лесен за ползване редактор на преводи.Предварителен &превод…Предварителен преводПредварителен преводПредварително преведен %u низПредварително преведени %u низаПредварителен превод…Предварителния превод намира автоматично точни или мъгляви съвпадения за непреведените текстове в паметта за преводи и попълва преводите им.НастройкиПредпочитания...Настройки…&запазване на формата на съществуващите файловеПредишна форма за мн. ч.Предишна форма за мн. ч.Предходен изходен текст:Име и версия на проекта:Име на проекта:Проект:ПрочистванеПрочистване на изтрити преводиИзходИзход от %sПоследниПовтарянеПозовавания:ОпресняванеОставащи: %dЗаместванеЗамяна на &всичкиЗамяна на &всичкиЗаместете&Замяна…Задължителната заглавка „Plural-Forms“ липсва.ВъзстановяванеВъзстановяване на паметта с преводиВъзстановяването на паметта с преводите безвъзвратно ще изтрие всички запомнени от нея преводи. Тази операция не може да бъде отменена.РецензияНадясно&ЗапазванеЗапазване &като…Запазване &като…Запазване катоЗапазване като…Запазване на каталогаЗапазване на променитеИзбор на &всичкоИзбор на &всичкоИзбиране на папкаИзбиране на файлове за импортИзбиране на предпочитан езикУслугиДобавяне на отметка %iЗадаване на езикДобавяне на отметка %iЗадаване на езикShift+Показване на всички&Показване на странична лентаПравопис и граматикаПоказване на лента за състояниетоПоказване на заместванияПоказва или скрива страничната лента&Показване на странична лентаПоказване на лента за състоянието&резюме след обновяване на каталогСтранична лентаВписванеИзходВписванеВписване се в CrowdinИзходВписани като:Единствено числоЕдинствено число:Умно копиране/поставянеУмни тиретаУмни връзкиУмни кавичкиСортиране по &файлПодреждане по &изходен текстСортиране по &преводСортиране по &файлСортиране по &изходен текстСортиране по &преводЗнаков набор на изходния код:Този инструмент намира годни за превод низове във файлове с изходен код и ги извлича, така че да могат да бъдат преведени.Изходният код не е на разположение.Файл с изходен код&Позоваване:Изходен текстИзходен текст – %sИзходен текст:Ключови думи в изходния кодПътища за претърсванеКлючови думи в изходния кодПътища за претърсванеГоворПроверката на правописа е изключена, защото не е инсталиран речник за %s.Правопис и граматикаНачало на изчитанеКрай на изчитанеБрой запомнени преводи:ТърсетеЗаместванияПредложенияПредложенията са недостъпни за неправилно конфигурирани езици. Други възможности като формите за множествено число също може да бъдат засегнати.Поддържа всички програмни езици, признати от инструментите на GNU gettext (PHP, C/C++, C#, Perl, Python, Java, JavaScript и други).СинхронизиранеСинхронизиране с CrowdinСинхронизиране на превода с CrowdinСинхронизиранеГрешка при синхронизиранеСинхронизирането с %s е неуспешно.Синхронизиране с %s…Неуспешно синхронизиране с Crowdin.Синтактична грешка в заглавката „Plural-Forms“ („%s“).ПаметСъздаване на каталог на базата на съществуващ или от шаблон.Използване на изходни низове от съществуващ шаблон POT.Име и електронна поща на екипа или адрес:Заместване на текстПаметта с преводи не съдържа низове с подобно съдържание. Тя е ефективна само за полу-автоматичен превод след като се е обучила от файловете, които ръчно превеждате.Каталогът не може да бъде запазен в избрания знаков набор „%s“, указан в настройките. Вместо това е запазен в UTF-8, а настройките му са променени.Файлът не може да бъде компилиран във формат MO и използван.Файлът не може да бъде отворен.Файлът съдържа дублиращи се елементи, което е забранено във файлове PO и ще предотвратят използването му. PoEdit решава този проблем, но е необходим преглед на преводите на всички елементи, отбелязани като мъгляви и ако е необходимо да ги коригирате.Файлът може да е повреден или е непознат за Poedit формат.Файлът е компилиран във формат MO, но вероятно няма да работи.Файлът беше запазен и компилиран във формат MO, но вероятно няма да работи.Файлът беше запазен безопасно, но не може да бъде компилиран във формат MO и използван.Файлът беше запазен.Старият изходен текст (преди промяната при обновяване), на който съответства вече неточния превод.Най-лесния начин за попълване на каталог е обновяването му от файл POT:Липсва интервал в началото на превода.Преводът завършва с нов ред, но изходният низ не.Преводът завършва с интервал, но изходният низ не.Преводът завършва с „%s“, а изходният низ с „%s“.Липсва нов ред в края на превода.Липсва интервал в края на превода.Преводът е готов за използване, но все още има %d непреведен низ.Преводът е готов за използване, но все още има %d непреведени низа.Преводът е готов за използване.Преводът би трябвло да завършва с „%s“.Преводът не би трябвало да завършва с „%s“.Преводът би трябвало да започва като изречение.Преводът би трябвало да започва с малка буква.Преводът започва с интервал, но изходният низ не.Преводите бяха отбелязани като мъгляви, защото може да са неточни. Трябва да бъдат проверени.Няма низове за превод. Това е необичайно.Възникна проблем при форматиране на файлa, но той беше запазен.Имаше грешки при зареждане на каталога. Може да има липсващи или повредени данни.Тези настройки влияят върху вътрешния формат на файловете PO. Настройте ги, ако имате конкретни изисквания, например, заради контрол на версиите.Тези низове вече не са в изходния код. Poedit ще ги премахне от каталога.Тези низове бяха намерени в изходния код, но не и в каталога. Poedit ще ги прибави към него.Този каталог има форми за множествено число, но заглавката „Plural-Forms“ липсва.Този файл може да бъде редактиран само през уеб интерфейса на Crowdin.Това е командата за изпълнение на извличанета. %o се замества с името на изходния файл, %K — със списъка от ключови думи, %F — със списъка от входните файлове, %C — със знаковия набор на анализатора (виж по-долу).Този проект няма файлове, които да могат да бъдат преведени с Poedit.Този низ е от паметта с преводи на Poedit.Това ще бъде добавено към командния ред, само ако е зададен знаков набор за изходния код. %c се замества със знаковия набор.Това ще бъде добавено по веднъж за всеки входящ файл към командния ред. %f се замества с името на файла.Това ще бъде добавено по веднъж за всяка ключова дума към командния ред. %k се замества с ключовата дума.ВсичкоТрансформацииНизовете за превод не се добавят ръчно в Gettext, а се извличат автоматично от изходен код. По този начин те са винаги обновени и точни. Обикновено преводачите използват шаблони PO (POT) приготвени за тази цел от разработчика.Преведени: %d от %d (%d%%)ЕзикПамет с преводиПреводът е &мъглявСвойства на преводаПреводът е &мъглявСвойства на преводаПредложения за превод:Превод на %sПревод:Не всички преводи са обновени от изходния код, защото такъв не е открит на посоченото в настройките на каталога място.ДваUTF-8 (препоръчително)ОтмянаНеприхванато изключение: %sUnix (препоръчително)НепреведениНагоре&Актуализиране&Актуализиране на всичкоАктуализиране на всички каталози в проектаАктуализиране на каталог — синхронизиране с изходния кодОбновяване от &файл POT…Обновяване от &файл POT…Актуализация от &файл POTРезюмеОбновленияАктуализация на каталогГрешка при обновяванеНеуспешна актуализация на каталога. За подробности натиснете „Още»“.Обновяване на информацията за потребителя…Изпращане на преводите…Специфичен &изразшрифт за &списъка с низовешрифт за &текстовите полетаСпоред &стандартните правилаКлючови думи (имена на функции) за разпознаване на преводими низове във файловете с изходен код:Използване на &паметта с преводи&ВалидиранеРезултат от валидиранеВерсия %sИзчакване на удостоверяване…Здравейте от PoeditКакво е Crowdin?При обновяване от изходен код&Цели думиПрозорецWindowsБезконечно търсенепренасяне &на:ДаМоже да извличате низове за превод директно от изходен код:Не може да пуснете повече от един файл в прозореца на Poedit.Трябва да рестартирате Poedit, за да влезе в сила тази промяна.Вашето имеНаправените промени ще бъдат загубени, ако не бъдат запазени.Името и електронната ви поща ще бъдат ползвани само за попълването на заглавката „Last-Translator“ на файловете на GNU gettext.НулаМащабaltctrlвременните файлове да не бъдат изтривани (в случай на проблеми)например nplurals=2; plural=(n > 1);напасване на сходните (мъгляви) текстове в рамките на файлакъм елемента на зададения редуправление на протокола poedit://предварителен превод от ППshiftнеизвестен езиквашият_имейл@пример.com„%s“ е неправилен файл POT.poedit-2.0.6/locales/fa.po0000664000372000037200000014372213230132076012302 00000000000000msgid "" msgstr "" "Project-Id-Version: poedit\n" "Report-Msgid-Bugs-To: help@poedit.net\n" "POT-Creation-Date: 2017-12-05 15:52+0100\n" "PO-Revision-Date: 2018-01-18 07:56-0500\n" "Last-Translator: vslavik \n" "Language-Team: Persian\n" "Language: fa_IR\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: crowdin.com\n" "X-Crowdin-Project: poedit\n" "X-Crowdin-Language: fa\n" "X-Crowdin-File: /locales/poedit.pot\n" msgid "Hide this notification message" msgstr "این اعلان را پنهان کن" msgid "Don’t Show Again" msgstr "دیگر نمایش داده نشود" msgid "Don’t show again" msgstr "دیگر نمایش داده نشود" #, c-format msgid "(New: %i, obsolete: %i)" msgstr "(جدید: %i منسوخ: %i)" msgid "Updating catalog" msgstr "به روزرسانی لیست" msgid "Collecting source files…" msgstr "در حال جمع آوری فایل های منبع…" msgid "Extracting translatable strings…" msgstr "در حال استخراج متن های قابل ترجمه…" msgid "Failed to load extracted catalog." msgstr "پرونده '%s' پوشه پیغام نمی‌باشد." msgid "Merging differences…" msgstr "در حال ادغام موارد مختلف…" #, c-format msgid "“%s” is not a valid POT file." msgstr "“%s” یک فایل صحیح POT نیست." #, c-format msgid "%i line of file “%s” was not loaded correctly." msgid_plural "%i lines of file “%s” were not loaded correctly." msgstr[0] "%i خط از فایل %s درست بارگزاری نشده است." msgstr[1] "%i خط از فایل %s درست بارگزاری نشده است." #, c-format msgid "Line %d of file “%s” is corrupted (not valid %s data)." msgstr "خط %d از فایل %s خراب است(داده معتبر %s نیست)." #, c-format msgid "Malformed header: “%s”" msgstr "سربرگ نادرست: '%s”" msgid "" "Broken catalog file: singular form msgstr used together with msgid_plural" msgstr "پرونده مخدوش شده : msgstr تکی با استفاده از msgid_plural" msgid "Broken catalog file: plural form msgstr used without msgid_plural" msgstr "پرونده مخدوش شده : msgstr جمعی بدون استفاده از msgid_plural" msgid "" "There were errors when loading the catalog. Some data may be missing or " "corrupted as the result." msgstr "خطا در هنگام باز کردن پرونده. برخی از داده از بین رفته است." #, c-format msgid "Couldn’t load file %s, it is probably corrupted." msgstr "ناتوان در بازکردن فایل %s ، فایل خراب است." #, c-format msgid "" "File “%s” is read-only and cannot be saved.\n" "Please save it under different name." msgstr "" "فایل '%s' فقط خواندنی استو نمی تواندی ذخیره شود\n" "لطفا با نام دیگری ذخیره نمایید." #, c-format msgid "Couldn’t save file %s." msgstr "نمی توان فایل %s را ذخیره کرد." msgid "" "There was a problem formatting the file nicely (but it was saved all right)." msgstr "" "در فرمت کردن به صورت کاملا صحیح مشکلی به وجود آمده(به هرحال فایل ذخیره شده)." #, c-format msgid "" "The catalog couldn’t be saved in “%s” charset as specified in catalog " "settings.\n" "\n" "It was saved in UTF-8 instead and the setting was modified accordingly." msgstr "" "پوشه نمی تواند در مجموعه نویسه '%s' همانطور که در تنظیمات \n" "پوشه مشخص شده ذخیره شود. آن در UTF-8 بجایش ذخیره شد \n" "و تنظیمات بر اساس آن تغییر یافت." msgid "Error saving catalog" msgstr "خطا در ذخیره کردن پوشه" msgid "PO Translation Files" msgstr "فایل های ترجمه Po" msgid "POT Translation Templates" msgstr "قالب ترجمه POT" msgid "All Translation Files" msgstr "تمام فایل های ترجمه" msgid "(Use default language)" msgstr "(استفاده از زبان پیش‌فرض)" msgid "Select your preferred language" msgstr "زبانی که ترجیحی را انتخاب کنید" msgid "Language selection" msgstr "گزینش زبان" msgid "You must restart Poedit for this change to take effect." msgstr "" "شما باید Poedit را برای تأثیر کردن این تغییرات دوباره راه‌اندازی نمایید." msgid "Syncing" msgstr "همگام سازی" #. TRANSLATORS: %s is a cloud destination, e.g. "Crowdin" or ftp.wordpress.com etc. #, c-format msgid "Syncing with %s…" msgstr "همگام سازی با %s…" #. TRANSLATORS: %s is a cloud destination, e.g. "Crowdin" or ftp.wordpress.com etc. #, c-format msgid "Syncing with %s failed." msgstr "همگام سازی با %s موفقیت آمیز نبود." msgid "Syncing error" msgstr "خطای همگام‌سازی" msgid "Downloading translations is disabled in this project." msgstr "دانلود ترجمه برای این پروژه مسدود است." msgid "Not authorized, please sign in again." msgstr "ورودی غیر مجاز,لطفا مجددا وارد شوید." msgid "" "Crowdin is an online localization management platform and collaborative " "translation tool. Poedit can seamlessly sync PO files managed at Crowdin." msgstr "" "Crowdin یک برنامه ی آنلاین محلی سازی زبان و ابزار ترجمه گروهی و مشترکانه " "است. Poedit به صورت پیشفرض توانایی همگام سازی فایل های PO در Crowdin دارد." msgid "Sign In" msgstr "ورود" msgid "Sign in" msgstr "ورود" msgid "Sign Out" msgstr "خروج" msgid "Sign out" msgstr "خروج" msgid "Waiting for authentication…" msgstr "در حال انتظار برای تأیید اعتبار…" msgid "Updating user information…" msgstr "به روز رسانی اطلاعات کاربر…" msgid "Signed in as:" msgstr "ورود به عنوان:" msgid "Learn More About Crowdin" msgstr "اطلاعات بیشتر در مورد Crowdin" msgid "Learn more about Crowdin" msgstr "اطلاعات بیشتر در مورد Crowdin" msgid "Sign in to Crowdin" msgstr "ورود به Crowdin" msgid "Open Crowdin translation" msgstr "باز کردن ترجمه Crowdin" msgid "Project:" msgstr "پروژه:" msgid "Language:" msgstr "زبان:" msgid "File:" msgstr "فایل:" msgid "No translation projects listed in your Crowdin account." msgstr "هیچ پروژه‌ای ترجمه شده در حساب Crowdin وجود ندارد." msgid "This project has no files that can be translated in Poedit." msgstr "این پروژه هیچ پرونده ای که می توانید در ارسال Poedit ترجمه شده است." msgid "This file can only be edited in Crowdin’s web interface." msgstr "این فایل را تنها در رابط وب Crowdin را می توان ویرایش کرد." msgid "Downloading latest translations…" msgstr "در حال دانلود آخرین ترجمه…" msgid "Syncing with Crowdin failed." msgstr "همگام سازی با Crowdin موفقیت آمیز نبود." msgid "Crowdin error" msgstr "خطای Crowdin" msgid "Uploading translations…" msgstr "در حال آپلود ترجمه…" msgid "&Copy" msgstr "& کپی" msgid "Learn more" msgstr "بیشتر بدانید" msgid "Learn More" msgstr "بیشتر بدانید" msgid "&Help" msgstr "&راهنما" msgid "MO files can’t be directly edited in Poedit." msgstr "فایل های MO نمی توانند به طور مستقیم در Poedit ویرایش شوند." msgid "Error opening file" msgstr "در باز کردن فابل خطایی رخ داد" msgid "" "Please open and edit the corresponding PO file instead. When you save it, " "the MO file will be updated as well." msgstr "" "لطفاً باز کردن و ویرایش فایل صندوق پستی مربوطه عوض. هنگامی که آن را ذخیره " "فایل MO هم بروز خواهد شد." msgid "don’t delete temporary files (for debugging)" msgstr "فایل ها اصلی را پاک نکنید(برای رفع باگ)" msgid "handle a poedit:// URI" msgstr "رسیدگی ارسال poedit: / / URI" msgid "go to item at given line number" msgstr "رفتن به مورد در شماره خط داده" msgid "Failed to communicate with Poedit process." msgstr "عدم موفقیت در ارتباط با فرآیند ارسال Poedit." #, c-format msgid "Unhandled exception occurred: %s" msgstr "هنگام استثنا رخ داده است: %s" msgid "Open catalog" msgstr "باز کردن پوشه" #, c-format msgid "File “%s” doesn’t exist." msgstr "فایل \"%s\" وجود ندارد." msgid "Poedit is an easy to use translations editor." msgstr "Poedit ابزاری آسان برای ویرایش ترجمه هاست." msgid "Catalogs Manager" msgstr "مدیریت کاتالوگ" msgid "Check for Updates…" msgstr "بررسی برای به روز رسانی…" msgid "&Edit" msgstr "&ویرایش" msgid "Undo" msgstr "بازگرد" msgid "Redo" msgstr "از سر" msgid "Paste and Match Style" msgstr "جای گذاری و تطابق قالب" msgid "Delete" msgstr "حذف" msgid "Spelling and Grammar" msgstr "املا و دستور زبان" msgid "Show Spelling and Grammar" msgstr "نمایش املاء و دستورزبان" msgid "Check Document Now" msgstr "سند را بررسی کن" msgid "Check Spelling While Typing" msgstr "بررسی املا در هنگام تایپ" msgid "Check Grammar With Spelling" msgstr "بررسی دستور زبان با املا" msgid "Correct Spelling Automatically" msgstr "تصحیح خودکار املاء" msgid "Substitutions" msgstr "جایگزینی" msgid "Show Substitutions" msgstr "نمایش جایگزینی ها" msgid "Smart Copy/Paste" msgstr "کپی/جای گذاری هوشمند" msgid "Smart Quotes" msgstr "نقل قول هوشمند" msgid "Smart Dashes" msgstr "خط تیره های هوشمند" msgid "Smart Links" msgstr "پیوندهای هوشمند" msgid "Text Replacement" msgstr "جایگزینی متن" msgid "Transformations" msgstr "تغییر شکل ها" msgid "Make Upper Case" msgstr "حروف را بزرگ کن" msgid "Make Lower Case" msgstr "حروف را کوچک کن" msgid "Capitalize" msgstr "درشت نویسی" msgid "Speech" msgstr "گفتار" msgid "Start Speaking" msgstr "شروع به صحبت کردن" msgid "Stop Speaking" msgstr "توقف صحبت کردن" msgid "&View" msgstr "&نما" msgid "Enter Full Screen" msgstr "حالت تمام صفحه" msgid "Window" msgstr "پنجره" msgid "Minimize" msgstr "کوچک سازی" msgid "Zoom" msgstr "بزرگنمايی" msgid "Bring All to Front" msgstr "آوردن همه به جلو" #. TRANSLATORS:File kind displayed in Finder/Explorer msgid "PO Translation" msgstr "ترجمه PO" msgid "The file cannot be opened." msgstr "پرونده باز نمی شود." msgid "Invalid file" msgstr "فایل نا معتبر" msgid "" "The file may be either corrupted or in a format not recognized by Poedit." msgstr "پرونده ممکن است یا خراب شده و یا در قالب توسط ارسال Poedit شناخته شده." msgid "You can’t drop more than one file on Poedit window." msgstr "شما می‌توانید بیش از یک پرونده را در پنجره Poedit بیاندازید." #, c-format msgid "File “%s” is not a message catalog." msgstr "پرونده '%s' پیام کاتالوگ نیست." msgid "Poedit" msgstr "Poedit" msgid "&File" msgstr "&پرونده" msgid "&Go" msgstr "& برو" #. TRANSLATORS: %s is language name in its basic form (as you #. would see e.g. in a list of supported languages). You may need #. to rephrase it, e.g. to an equivalent of "for language %s". #, c-format msgid "" "Spellchecking is disabled, because the dictionary for %s isn’t installed." msgstr "غلط املایی یاب غیر فعال است,زیرا لغت نامه برای %s نصب نشده." msgid "Install" msgstr "نصب" msgid "Catalog modified. Do you want to save changes?" msgstr "پوشه تغییر کرد. آیا می‌خواهید تغییرات را ذخیره نمایید؟" msgid "Save changes" msgstr "ذخیره‌ی تغییرات" msgid "Your changes will be lost if you don’t save them." msgstr "اگر ذخیره نکنید، تغییرات شما از بین می رود." msgid "Save" msgstr "ذخیره" msgid "Don’t save" msgstr "ذخیره نکن" msgid "Don’t Save" msgstr "ذخیره نکن" msgid "Save as…" msgstr "ذخیره به عنوان…" msgid "Compile to…" msgstr "کامپایل به…" msgid "Compiled Translation Files" msgstr "پرونده ترجمه تهیه شد" msgid "Export as…" msgstr "برون ریزی به عنوان…" msgid "HTML Files" msgstr "پرونده HTML" msgid "Open catalog template" msgstr "باز کردن الگوی پوشه" msgid "Source code not available." msgstr "کد منبع موجود نیست." msgid "Updating failed" msgstr "به روز رسانی انجام نشد" msgid "" "Translations couldn’t be updated from the source code, because no code was " "found in the location specified in the catalog’s Properties." msgstr "" "چون هیچ یک از کدهای در محل مشخص شده در کاتالوگ خواص یافت ترجمه از کد منبع " "بروز کند." msgid "Entries in the catalog are probably incorrect." msgstr "ورودی‌های در پوشه احتمالا درست نیست." msgid "Updating the catalog failed. Click on 'Details >>' for details." msgstr "" "به روز رسانی کاتالوگ انجام نشد. با کلیک بر روی \"اطلاعات بیشتر >>' برای " "جزئیات بیشتر." #, c-format msgid "%d issue with the translation found." msgid_plural "%d issues with the translation found." msgstr[0] "" msgstr[1] "" msgid "Validation results" msgstr "نتایج ارزیابی" msgid "" "Entries with errors were marked in red in the list. Details of the error " "will be shown when you select such an entry." msgstr "" "مقالات با خطا در لیست قرمز نشان داده شده است. جزئیات این خطا هنگامی که شما " "چنین ورودی را انتخاب می کنید نمایش داده می شود." msgid "The file was saved safely." msgstr "پرونده به راحتی ذخیره شده است." msgid "" "The file was saved safely and compiled into the MO format, but it will " "probably not work correctly." msgstr "" "فایل با خیال راحت ذخیره شد و به قالب MO متصل شد، اما احتمالا به درستی کار " "نخواهد کرد." msgid "" "The file was saved safely, but it cannot be compiled into the MO format and " "used." msgstr "" "پرونده با خیال راحت ذخیره شده است، ولی نمی تواند آن را وارد به فرمت MO " "درآورده و از آن استفاده شود." msgid "" "The file was compiled into the MO format, but it will probably not work " "correctly." msgstr "این فایل به قالب MO متصل شد، اما احتمالا به درستی کار نخواهد کرد." msgid "The file cannot be compiled into the MO format and used." msgstr "فایل را نمی توان به قالب MO متصل کرد و مورد استفاده قرار داد." msgid "No problems with the translation found." msgstr "هیچ مشکلی با ترجمه یافت نشد." #, c-format msgid "The translation is ready for use, but %d entry is not translated yet." msgid_plural "" "The translation is ready for use, but %d entries are not translated yet." msgstr[0] "ترجمه آماده برای استفاده است، اما نوشته های %d هنوز ترجمه شده است." msgstr[1] "ترجمه آماده برای استفاده است، اما نوشته های %d هنوز ترجمه شده است." msgid "The translation is ready for use." msgstr "ترجمه آماده برای استفاده است." #, c-format msgid "Poedit automatically fixed invalid content in the file “%s”." msgstr "Poedit به طور خودکار محتوای نامعتبر در فایل \"%s\" را درست خواهد کرد." msgid "" "The file contained duplicate items, which is not allowed in PO files and " "would prevent the file from being used. Poedit fixed the issue, but you " "should review translations of any items marked as needing work and correct " "them if necessary." msgstr "" "این پرونده حاوی موارد تکراری است که در فایلهای PO مجاز نیست و از استفاده از " "پرونده جلوگیری می کند. Poedit موضوع را رفع کرد، اما شما باید ترجمه هر یک از " "اقلام مشخص شده به عنوان مورد نیاز را بررسی کنید و در صورت لزوم آنها را اصلاح " "کنید." msgid "Language of the translation isn’t set." msgstr "زبان ترجمه مشخص نشده است." msgid "Set Language" msgstr "انتخاب زبان" msgid "Set language" msgstr "انتخاب زبان" #. TRANSLATORS: This is shown underneath "Language of the translation isn't set (or ...is the same as source language)." msgid "" "Suggestions are not available if the translation language is not set " "correctly. Other features, such as plural forms, may be affected as well." msgstr "" "اگر زبان ترجمه به درستی تنظیم نشده باشد پیشنهادات در دسترس نیست. سایر ویژگی " "ها، از قبیل فرم های جمع، ممکن است تحت تاثیر قرار گیرد." msgid "Language of the translation is the same as source language." msgstr "زبانی که قصد دارید به آن ترجمه کنید همان زبان فایل ترجمه است." msgid "Fix Language" msgstr "تعمیر زبان" msgid "Fix language" msgstr "تعمیر زبان" msgid "" "This catalog has entries with plural forms, but doesn’t have Plural-Forms " "header configured." msgstr "" "این کاتالوگ دارای مدخل با فرم های متعدد است، اما هدر جمع-فرمها پیکربندی نشده " "است." msgid "" "Entries in this catalog have different plural forms count from what " "catalog’s Plural-Forms header says" msgstr "" msgid "Required header Plural-Forms is missing." msgstr "" #, c-format msgid "Syntax error in Plural-Forms header (\"%s\")." msgstr "" msgid "Fix the Header" msgstr "تعمیر سرنویس" msgid "Fix the header" msgstr "تعمیر سرنویس" #. TRANSLATORS: %s is language name in its basic form (as you #. would see e.g. in a list of supported languages). You may need #. to rephrase it, e.g. to an equivalent of "for language %s". #, c-format msgid "Plural forms expression used by the catalog is unusual for %s." msgstr "" #. TRANSLATORS: A verb, shown as action button with ""Plural forms expression used by the catalog is unusual for %s.")" msgid "Review" msgstr "بررسی" #, c-format msgid "Error loading message catalog file “%s”." msgstr "" #, c-format msgid "Translated: %d of %d (%d %%)" msgstr "" #, c-format msgid "Remaining: %d" msgstr "باقی مانده: %d" #, c-format msgid "%d error" msgid_plural "%d errors" msgstr[0] "%d خطا" msgstr[1] "%d خطا" #, c-format msgid "%d entry" msgid_plural "%d entries" msgstr[0] "" msgstr[1] "" msgid " (unsaved)" msgstr " (ذخیره نشده)" msgid " (modified)" msgstr " (تغییریافته)" #, c-format msgid "Failed to update translation memory: %s" msgstr "" msgid "Purge deleted translations" msgstr "لیست ترجمه‌های &سایه شده" msgid "Do you want to remove all translations that are no longer used?" msgstr "" msgid "" "If you continue with purging, all translations marked as deleted will be " "permanently removed. You will have to translate them again if they are added " "back in the future." msgstr "" msgid "Keep" msgstr "نگه‌دار" msgid "Purge" msgstr "پاکسازی" msgid "Copy from source text" msgstr "کپی کردن از خود متن" msgid "Copy from Source Text" msgstr "کپی کردن از خود متن" #. TRANSLATORS: This is the key shortcut used in menus on Windows, some languages call them differently #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Ctrl+" msgstr "Ctrl+" msgid "Clear translation" msgstr "پاکسازی ترجمه" msgid "Clear Translation" msgstr "پاکسازی ترجمه" msgid "Edit comment" msgstr "ویرایش توضیح" msgid "Edit Comment" msgstr "ویرایش توضیح" msgid "References:" msgstr "مرجع‌ها:" msgid "&Bookmarks" msgstr "نشاندارها" #. TRANSLATORS: This is the key shortcut used in menus on Windows, some languages call them differently #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Alt+" msgstr "Alt+" #, c-format msgid "Set bookmark %i" msgstr "تنظیم نشانک %i" #, c-format msgid "Go to bookmark %i" msgstr "برو به نشانک %i" #, c-format msgid "Set Bookmark %i" msgstr "تنظیم نشانک %i" #, c-format msgid "Go to Bookmark %i" msgstr "برو به نشانک %i" msgid "Hide Sidebar" msgstr "پنهان کردن نوار جانبی" msgid "Show Sidebar" msgstr "نمایش نوار جانبی" msgid "Hide Status Bar" msgstr "پنهان کردن نوار وضعیت" msgid "Show Status Bar" msgstr "نمایش نوار وضعیت" msgid "Source text:" msgstr "منبع متن:" msgid "Singular:" msgstr "مفرد:" msgid "Plural:" msgstr "جمع:" msgid "Translation:" msgstr "ترجمه:" msgid "Pre-translated" msgstr "" msgid "Needs Work" msgstr "" #. TRANSLATORS: This indicates that the string's translation isn't final #. and has known problems. For example, it might be machine translated or #. fuzzy matched from an older string. The translation should be short and #. convey this. If it's problematic to translate it, "Needs review" is #. acceptable substitute, but note that the meaning is subtly different: #. "needs review" implies that somebody else should review the string after #. I am done with it (i.e. consider it good), while "needs work" implies I #. need to return to it and finish the translation. msgid "Needs work" msgstr "" msgid "" "POT files are only templates and don’t contain any translations themselves.\n" "To make a translation, create a new PO file based on the template." msgstr "" msgid "Create New Translation" msgstr "" msgid "Create new translation" msgstr "ایجاد ترجمه جدید" msgid "Everything" msgstr "همه چیز" #, c-format msgid "Form %i" msgstr "از %i" msgid "Singular" msgstr "مفرد" msgid "Zero" msgstr "صفر" msgid "One" msgstr "یک" msgid "Two" msgstr "دو" msgid "Plural" msgstr "جمع" msgid "Other" msgstr "سایر موارد" #, c-format msgid "%s Format" msgstr "" #. TRANSLATORS: %s is replaced with language name, e.g. "PHP" or "C", so "PHP Format" etc." #, c-format msgid "%s format" msgstr "" msgid "Source text" msgstr "منبع متن" #, c-format msgid "Translation — %s" msgstr "ترجمه — %s" msgid "ID" msgstr "شناسه" #, c-format msgid "Source text — %s" msgstr "منبع متن — %s" msgid "unknown language" msgstr "زبان ناشناخته" #, c-format msgid "Failed command: %s" msgstr "فرمان‌های شکست خورده: %s" msgid "Failed to merge gettext catalogs." msgstr "پرونده '%s' پوشه پیغام نمی‌باشد." msgid "Source file" msgstr "پرونده منبع" msgid "Source file occurrence:" msgstr "رخداد در فایل منبع:" msgid "Open in Editor" msgstr "باز کردن در ویرایشگر" msgid "Open in editor" msgstr "باز کردن در ویرایشگر" msgid "No references for the selected item." msgstr "" #, c-format msgid "Error opening file %s!" msgstr "خطا در باز کردن پرونده %s!" msgid "Find" msgstr "یافتن" msgid "Replace" msgstr "جایگزینی" #. TRANSLATORS: Expander in Find window for additional options (case sensitive etc.) msgid "Options" msgstr "گزینه‌ها" msgid "Ignore case" msgstr "" msgid "Wrap around" msgstr "" msgid "Whole words only" msgstr "فقط کلمه کامل" msgid "Find in source texts" msgstr "پیدا کردن در متون منبع" msgid "Find in translations" msgstr "پیدا کردن در ترجمه‌ها" msgid "Find in comments" msgstr "یافتن در توضیحات" msgid "Close" msgstr "ببند" msgid "Replace &All" msgstr "جایگزینی همه" msgid "Replace &all" msgstr "جایگزینی همه" msgid "&Replace" msgstr "&جایگزینی" msgid "< &Previous" msgstr "قبلی >" msgid "&Next >" msgstr "& بعدی >" msgid "String to find" msgstr "عبارت جهت جستجو" msgid "Replacement string" msgstr "عبارت جایگزین" #, c-format msgid "Cannot execute program: %s" msgstr "برنامه اجرا نمی شود: %s" msgid "Language Code or Name (e.g. en_GB)" msgstr "کد زبان و یا نام (به عنوان مثال en_GB)" msgid "Translation Language" msgstr "ترجمه زبان" msgid "Language of the translation:" msgstr "زبان ترجمه:" msgid "Poedit - Catalogs manager" msgstr "Poedit - مدیر پوشه" msgid "Catalog" msgstr "پوشه" msgid "Total" msgstr "جمع کل" msgid "Untrans" msgstr "ترجمه نشده" msgid "Errors" msgstr "" msgid "Last modified" msgstr "آخرین تغییر" msgid "Select directory" msgstr "انتخاب شاخه" msgid "Directories:" msgstr "شاخه‌ها:" msgid "" msgstr "<بی‌نام>" msgid "Do you want to delete the project?" msgstr "آیا می‌خواهید که این پروژه را حذف کنید؟" msgid "Confirmation" msgstr "تایید" msgid "" "Do you really want to do mass update of\n" "all catalogs in this project?" msgstr "" "آیا واقعاً می‌خواهید همه پوشه‌ها در این\n" "پروژه بروزسازی نمایید؟" msgid "Information about the translator" msgstr "اطلاعات در مورد مترجم" msgid "Name:" msgstr "نام:" msgid "Your Name" msgstr "اسم شما" msgid "Email:" msgstr "پست الکترونیک:" msgid "your_email@example.com" msgstr "your_email@example.com" msgid "" "Your name and email address are only used to set the Last-Translator header " "of GNU gettext files." msgstr "" msgid "Editing" msgstr "در حال ویرایش" msgid "Automatically compile MO file when saving" msgstr "" msgid "Show summary after catalog update" msgstr "نشان دادن خلاصه بعد از بروزسازی پوشه" msgid "Check spelling" msgstr "بررسی املا" msgid "Always change focus to text input field" msgstr "همیشه تمرکز به محوطه درونداد متن تغییر داده شود" msgid "" "Never let the list of strings take focus. If enabled, you must use Ctrl-" "arrows for keyboard navigation but you can also type text immediately, " "without having to press Tab to change focus." msgstr "" "هرگز اجازه نده که لیست رشته‌ها تمرکز را بگیرد. اگر فعال شده، شما باید از " "پیکان‌های صفحه‌کلید برای صفحه‌نوردی استفاده کرده ولی همچنین می‌توانید بلافاصله " "نگارش متن را بدون فشار دادن کلید جهش برای تغییر تمرکز انجام دهید." msgid "Appearance" msgstr "ظاهر" msgid "Use custom list font:" msgstr "استفاده از فهرست فونت سفارشی:" msgid "Use custom text fields font:" msgstr "" msgid "Change UI language" msgstr "تغییر زیان " #. TRANSLATORS: This is a note appended to "Check spelling" when running on older Windows versions msgid "(requires Windows 8 or newer)" msgstr "(ویندوز 8 یا جدیدتر ضروری است)" msgid "General" msgstr "عمومی" msgid "Use translation memory" msgstr "استفاده از حافظه ترجمه" msgid "Learn From Files…" msgstr "" msgid "Learn from files…" msgstr "" #. TRANSLATORS: This is a button that deletes everything in the translation memory (i.e. clears/resets it). msgid "Reset" msgstr "تنظیم مجدد" #. TRANSLATORS: Followed by "match translations within the file" or "pre-translate from TM" msgid "When updating from sources" msgstr "" #. TRANSLATORS: Preceded by "When updating from sources" msgid "fuzzy match within the file" msgstr "" #. TRANSLATORS: Preceded by "When updating from sources" msgid "pre-translate from TM" msgstr "" msgid "" "Poedit can attempt to fill in new entries from only previous translations in " "the file or from your entire translation memory. Using the TM won’t be very " "effective if it’s near-empty, but it will get better as you add more " "translations to it." msgstr "" msgid "Stored translations:" msgstr "ترجمه های ذخیره شده:" msgid "Database size on disk:" msgstr "حجم پایگاه داده بر روی دیسک:" msgid "Select translation files to import" msgstr "انتخاب پرونده های ترجمه برای درون ریزی" msgid "Translation Memory" msgstr "حافظه ترجمه" msgid "Importing translations…" msgstr "" msgid "Finalizing…" msgstr "" msgid "Reset translation memory" msgstr "تنظیم مجدد حافظه ترجمه" msgid "Are you sure you want to reset the translation memory?" msgstr "آیا مطمئن هستید می خواهید حافظه ترجمه را تنظیم مجدد کنید؟" msgid "" "Resetting the translation memory will irrevocably delete all stored " "translations from it. You can’t undo this operation." msgstr "" msgid "Cancel" msgstr "لغو" #. TRANSLATORS: This is abbreviation of "Translation Memory" used in Preferences on macOS. #. Long text looks weird there, too short (like TM) too, but less so. "General" is about ideal #. length there. msgid "TM" msgstr "TM" msgid "" "Source code extractors are used to find translatable strings in the source " "code files and extract them so that they can be translated." msgstr "" msgid "Custom Extractors:" msgstr "استخراج کننده های سفارشی:" msgid "Custom extractors:" msgstr "استخراج کننده های سفارشی:" msgid "Edit…" msgstr "ویرایش…" msgid "GNU gettext" msgstr "" msgid "" "Supports all programming languages recognized by GNU gettext tools (PHP, C/C+" "+, C#, Perl, Python, Java, JavaScript and others)." msgstr "" msgid "Delete extractor" msgstr "حذف استخراج کننده" #, c-format msgid "Are you sure you want to delete the “%s” extractor?" msgstr "آیا مطمئن هستید که میخواهید “%s” استخراج کننده را حذف کنید؟" msgid "Extractors" msgstr "استخراج کننده" msgid "Accounts" msgstr "حساب ها" msgid "Automatically check for updates" msgstr "بررسی بروزرسانی ها بصورت خودکار" msgid "Include beta versions" msgstr "شامل نسخه های بتا" msgid "" "Beta versions contain the latest new features and improvements, but may be a " "bit less stable." msgstr "" "نسخه های بتا شامل آخرین ویژگی های جدید و پیشرفته هستند، اما ممکن است کمی " "ناپایدار باشند." msgid "Updates" msgstr "به روز رسانی ها" msgid "" "These settings affect internal formatting of PO files. Adjust them if you " "have specific requirements e.g. because of version control." msgstr "" msgid "Line endings:" msgstr "انتهای خط:" msgid "Unix (recommended)" msgstr "یونیکس (توصیه شده)" msgid "Windows" msgstr "پنجره‌ها" #. TRANSLATORS: Followed by text control for entering number; wraps text at given width msgid "Wrap at:" msgstr "" msgid "Preserve formatting of existing files" msgstr "" msgid "Advanced" msgstr "پیشرفته" msgid "Pre-translating…" msgstr "" #, c-format msgid "Pre-translated %u string" msgid_plural "Pre-translated %u strings" msgstr[0] "" msgstr[1] "" #. TRANSLATORS: This is a somewhat common term describing the action where #. you apply the translation memory and/or machine translation to all of the #. strings you're translating as the first step, followed by correcting, #. improving etc., i.e. actually translating the strings. This may be tricky #. to express in other languages as simply as in English, but please try to #. keep it similarly concise. Please try to avoid, if possible, describing it #. as "auto-translation" and similar, because such terminology would mislead #. some users into thinking it's all that needs to be done (spoken from #. experience). "Pre-translate" nicely expresses that it's only the step done #. *before* actual translation. msgid "Pre-translate" msgstr "" msgid "Only fill in exact matches" msgstr "" msgid "" "By default, inaccurate results are filled in as well and marked as needing " "work. Check this option to only include accurate matches." msgstr "" msgid "Don’t mark exact matches as needing work" msgstr "" msgid "" "Only enable if you trust the quality of your TM. By default, all matches " "from the TM are marked as needing work and should be reviewed before use." msgstr "" msgid "" "Pre-translation automatically finds exact or fuzzy matches for untranslated " "strings in the translation memory and fills in their translations." msgstr "" #, c-format msgid "%d entry was pre-translated." msgid_plural "%d entries were pre-translated." msgstr[0] "" msgstr[1] "" msgid "" "The translations were marked as needing work, because they may be " "inaccurate. You should review them for correctness." msgstr "" msgid "No entries could be pre-translated." msgstr "" msgid "" "The TM doesn’t contain any strings similar to the content of this file. It " "is only effective for semi-automatic translations after Poedit learns enough " "from files that you translated manually." msgstr "" msgid "" "Drag and Drop Folders Here\n" "\n" "or use the + button" msgstr "" msgid "" "Drag and drop folders here\n" "\n" "or use the + button" msgstr "" msgid "Add Folders…" msgstr "" msgid "Add folders…" msgstr "" msgid "Add Files…" msgstr "" msgid "Add files…" msgstr "" msgid "Add Wildcard…" msgstr "" msgid "Add wildcard…" msgstr "" msgid "Paths" msgstr "مسیرها" msgid "Excluded paths" msgstr "مسیر های جدا شده" msgid "Advanced extraction settings" msgstr "" msgid "Extract notes for translators from:" msgstr "" msgid "Comments prefixed with:" msgstr "" msgid "All comments" msgstr "" msgid "Additional xgettext flags:" msgstr "" msgid "Additional keywords" msgstr "واژه های كليدی اضافی" msgid "Name of the project the translation is for" msgstr "" msgid "Team name and email address or URL" msgstr "" msgid "e.g. nplurals=2; plural=(n > 1);" msgstr "" msgid "UTF-8 (recommended)" msgstr "" msgid "Please save the file first. This section cannot be edited until then." msgstr "" msgid "Not all plural forms are translated." msgstr "" msgid "The translation should start as a sentence." msgstr "" msgid "The translation should start with a lowercase character." msgstr "" msgid "The translation doesn’t start with a space." msgstr "" msgid "The translation starts with a space, but the source text doesn’t." msgstr "" msgid "The translation is missing a newline at the end." msgstr "" msgid "The translation ends with a newline, but the source text doesn’t." msgstr "" msgid "The translation is missing a space at the end." msgstr "" msgid "The translation ends with a space, but the source text doesn’t." msgstr "" #, c-format msgid "The translation should end with “%s”." msgstr "" #, c-format msgid "The translation should not end with “%s”." msgstr "" #, c-format msgid "The translation ends with “%s”, but the source text ends with “%s”." msgstr "" msgid "Comment:" msgstr "توضیح:" msgid "OK" msgstr "تایید" msgid "C&lear" msgstr "" msgid "Clear the comment" msgstr "پاک کردن توضیح" msgid "New" msgstr "جدید" msgid "Create new translations project" msgstr "ایجاد یک پروژه‌ی ترجمه جدید" msgid "Edit" msgstr "ویرایش" msgid "Edit the project" msgstr "ویرایش پروژه" msgid "Delete the project" msgstr "حذف پروژه" msgid "Update all" msgstr "بروزسازی همه" msgid "Update all catalogs in the project" msgstr "بروزسازی همه پوشه‌ها در پروژه" msgid "Edit project" msgstr "ویرایش پروژه" msgid "Project name:" msgstr "نام پروژه:" msgid "Browse" msgstr "مرور" msgid "Add directory to the list" msgstr "افزودن شاخه به لیست" msgid "&New…" msgstr "" msgid "New from &POT/PO file…" msgstr "" msgid "New From &POT/PO File…" msgstr "" msgid "&Open…" msgstr "" msgid "Open Recent" msgstr "" msgid "Open from Crowdin…" msgstr "" msgid "Open From Crowdin…" msgstr "" msgid "&Close" msgstr "&بستن" msgid "&Save" msgstr "&ذخیره" msgid "Save &as…" msgstr "" msgid "Save &As…" msgstr "" msgid "Compile to MO…" msgstr "" msgid "E&xport as HTML…" msgstr "" msgid "Check for updates…" msgstr "بررسی برای به روز رسانی…" msgid "&Preferences…" msgstr "" msgid "Catalogs &manager" msgstr "مدیر &پوشه‌ها" msgid "Catalogs &Manager" msgstr "" msgid "E&xit" msgstr "خروج" msgid "Quit" msgstr "خروج" msgid "Copy from singular" msgstr "" msgid "Copy From Singular" msgstr "" msgid "Translation needs &work" msgstr "" msgid "Translation Needs &Work" msgstr "" msgid "Edit &comment" msgstr "ویرایش تو&ضیح" msgid "Edit &Comment" msgstr "" msgid "Suggestions" msgstr "" msgid "&Find…" msgstr "" msgid "Replace…" msgstr "جایگزین نمودن…" msgid "Find next" msgstr "یافتن بعدی" msgid "Find previous" msgstr "یافتن قبلی" msgid "Find and Replace…" msgstr "" msgid "Find Next" msgstr "یافتن بعدی" msgid "Find Previous" msgstr "یافتن قبلی" msgid "&Preferences" msgstr "&ترجیحات" msgid "Display entry &IDs" msgstr "" msgid "Display Entry &IDs" msgstr "" msgid "Sort by &file order" msgstr "مرتب کردن بر اساس پرونده سفارش" msgid "Sort by &File Order" msgstr "مرتب کردن بر اساس پرونده سفارش" msgid "Sort by &source" msgstr "مرتب کردن بر اساس منبع" msgid "Sort by &Source" msgstr "مرتب کردن بر اساس منبع" msgid "Sort by &translation" msgstr "مرتب کردن بر اساس ترجمه" msgid "Sort by &Translation" msgstr "مرتب کردن بر اساس & ترجمه" msgid "&Group by context" msgstr "& گروه بندی بر اساس زمینه" msgid "&Group By Context" msgstr "& گروه بندی بر اساس زمینه" msgid "Entries with errors first" msgstr "" msgid "Entries with Errors First" msgstr "" msgid "&Untranslated entries first" msgstr "اول ورود ترجمه نشده ها" msgid "&Untranslated Entries First" msgstr "اول ورود ترجمه نشده ها" msgid "&Show references" msgstr "&نشان دادن مرجع‌ها" msgid "&Show References" msgstr "" msgid "Show sidebar" msgstr "نمایش نوار جانبی" msgid "Show status bar" msgstr "" msgid "C&atalog" msgstr "پوشه" msgid "&Update from sources" msgstr "بروز&سازی از منابع" msgid "&Update from Sources" msgstr "بروز رسانی از منابع" msgid "Update from &POT file…" msgstr "" msgid "Update from &POT File…" msgstr "" msgid "Sync with Crowdin" msgstr "" msgid "Pre-&translate…" msgstr "" msgid "&Purge deleted translations" msgstr "حذف ترجمه های پاک شده" msgid "&Purge Deleted Translations" msgstr "" msgid "&Validate translations" msgstr "" msgid "&Validate Translations" msgstr "" msgid "&Properties…" msgstr "" msgid "&Done and next" msgstr "انجام و بعدی" msgid "&Done and Next" msgstr "انجام و بعدی" msgid "&Previous translation" msgstr "ترجمه قبلی" msgid "&Previous Translation" msgstr "ترجمه قبلی" msgid "&Next translation" msgstr "& ترجمه های بعدی" msgid "&Next Translation" msgstr " ترجمه های بعدی" msgid "P&revious unfinished" msgstr "ناتمام های قبل" msgid "P&revious Unfinished" msgstr "ناتمام های قبل" msgid "Ne&xt unfinished" msgstr "ناتمام های بعد" msgid "Ne&xt Unfinished" msgstr "نا تمام های بعد" msgid "Previous plural form" msgstr "" msgid "Previous Plural Form" msgstr "" msgid "Next plural form" msgstr "" msgid "Next Plural Form" msgstr "" msgid "&Online help" msgstr "راهنمایی برخط" msgid "&Online Help" msgstr "راهنمایی برخط" msgid "&GNU gettext manual" msgstr "" msgid "&GNU gettext Manual" msgstr "" msgid "&About Poedit" msgstr "درباره Poedit" msgid "&About" msgstr "درباره" msgid "Extractor setup" msgstr "نصب استخراج کننده" msgid "List of extensions separated by semicolons (e.g. *.cpp;*.h):" msgstr "لیست دنباله‌های جدا شده توسط سمیکلون (e.g. *.cpp;*.h):" msgid "Invocation:" msgstr "احضاریه:" msgid "Command to extract translations:" msgstr "فرمان برای استخراج ترجمه:" msgid "" "This is the command used to launch the extractor.\n" "%o expands to the name of output file, %K to list\n" "of keywords, %F to list of input files,\n" "%C to charset flag (see below)." msgstr "" msgid "An item in keywords list:" msgstr "یک مورد در لیست واژه‌های کلیدی:" msgid "" "This will be attached to the command line once\n" "for each keyword. %k expands to the keyword." msgstr "" "این به خط فرمان یکبار برای هر پرونده‌ی درونداد ضمیمه خواهد شد. %k به کلیدواژه " "گسترش می‌یابد." msgid "An item in input files list:" msgstr "یک مورد در لیست پرونده‌های درونداد:" #, c-format msgid "" "This will be attached to the command line once\n" "for each input file. %f expands to the filename." msgstr "" "این به خط فرمان یکبار برای هر پرونده‌ی درونداد ضمیمه خواهد شد. %f به نام " "پرونده گسترش می‌یابد." msgid "Source code charset:" msgstr "مجموعه‌نویسه کد منبع:" #, c-format msgid "" "This will be attached to the command line\n" "only if source code charset was given. %c expands to charset value." msgstr "" msgid "Catalog properties" msgstr "" msgid "Project name and version:" msgstr "نسخه و نام پروژه:" msgid "Language team:" msgstr "" msgid "Plural forms:" msgstr "" msgid "Use default rules for this language" msgstr "" msgid "Use custom expression" msgstr "" msgid "Learn about plural forms" msgstr "" msgid "Charset:" msgstr "مجموعه‌نویسه:" msgid "Advanced Extraction Settings…" msgstr "" msgid "Advanced extraction settings…" msgstr "" msgid "Translation Properties" msgstr "" msgid "Translation properties" msgstr "" msgid "Sources Paths" msgstr "" msgid "Sources paths" msgstr "" msgid "Extract text from source files in the following directories:" msgstr "" msgid "Base path:" msgstr "مسیر پایه:" msgid "Sources Keywords" msgstr "" msgid "Sources keywords" msgstr "واژه های كليدی منابع" msgid "" "Use these keywords (function names) to recognize translatable strings\n" "in source files:" msgstr "" msgid "Also use default keywords for supported languages" msgstr "" msgid "Learn About Gettext Keywords" msgstr "" msgid "Learn about gettext keywords" msgstr "" msgid "Update summary" msgstr "خلاصه بروزسازی" msgid "" "These strings were found in the sources but were not in the catalog.\n" "Poedit will add them to the catalog now." msgstr "" "این رشته‌ها در منابع یافت شد ولی در پوشه وجود نداشتند.\n" "Poedit آنها را به پوشه اکنون اضافه می‌کند." msgid "New strings" msgstr "رشته‌های جدید" msgid "" "These strings are no longer in the sources.\n" "Poedit will remove them from the catalog now." msgstr "" "این رشته‌ها دیگر در منابع نیستند.\n" "Poedit آنها از پوشه اکنون برمی‌دارد." msgid "Obsolete strings" msgstr "رشته‌های کهنه" msgid "(0 new, 0 obsolete)" msgstr ")۰ جدید, ۰ کهنه)" msgid "Open" msgstr "باز کردن" msgid "Save catalog" msgstr "ذخیره پوشه" msgid "Validate" msgstr "تایید اعتبار" msgid "Check for errors in the translation" msgstr "" msgid "Update" msgstr "بروزسازی" msgid "Update catalog - synchronize it with sources" msgstr "پوشه بروزسازی - همزمان سازی آن با منابع" msgid "Sidebar" msgstr "نوار کناری" msgid "Show or hide the sidebar" msgstr "نمایش یا عدم نمایش نوار" #. TRANSLATORS: "Previous" as in used in the past, now replaced with newer. msgid "Previous source text:" msgstr "متن منبع قبلی:" msgid "" "The old source text (before it changed during an update) that the now-" "inaccurate translation corresponds to." msgstr "" msgid "Notes for translators:" msgstr "یادداشت ها برای مترجمان:" msgid "Add comment" msgstr "اضافه کردن نظر" msgid "Add Comment" msgstr "اضافه کردن نظر" msgid "Translation suggestions:" msgstr "پیشنهاد های ترجمه:" #. TRANSLATORS: This is shown when no translation suggestions can be found in the TM (Windows). msgid "No matches found" msgstr "" #. TRANSLATORS: This is shown when no translation suggestions can be found in the TM (macOS, Linux). msgid "No Matches Found" msgstr "" msgid "This string was found in Poedit’s translation memory." msgstr "" msgid "Cannot create temporary directory." msgstr "" msgid "Welcome to Poedit" msgstr "خوش آمدید به Poedit" #. TRANSLATORS: This is version information in about dialog, "%s" will be #. version number when used #, c-format msgid "Version %s" msgstr "نسخه %s" msgid "Edit a Translation" msgstr "" msgid "Edit a translation" msgstr "ویرایش ترجمه" msgid "Open an existing PO file and edit the translation." msgstr "" msgid "" "Take an existing PO file or POT template and create a new translation from " "it." msgstr "" msgid "Collaborate on a Translation with Others" msgstr "" msgid "Collaborate on a translation with others" msgstr "" msgid "" "Download a file from Crowdin project, translate and sync your changes back." msgstr "" msgid "What is Crowdin?" msgstr "" msgid "There are no translations. That’s unusual." msgstr "" msgid "" "Translatable entries aren’t added manually in the Gettext system, but are " "automatically extracted\n" "from source code. This way, they stay up to date and accurate.\n" "Translators typically use PO template files (POTs) prepared for them by the " "developer." msgstr "" msgid "(Learn more about GNU gettext)" msgstr "" msgid "The simplest way to fill this catalog is to update it from a POT:" msgstr "" msgid "Update from POT" msgstr "" msgid "Take translatable strings from an existing POT template." msgstr "" msgid "" "You can also extract translatable strings directly from the source code:" msgstr "" msgid "Extract from sources" msgstr "" msgid "Configure source code extraction in Properties." msgstr "" msgid "Sync" msgstr "" msgid "Synchronize the translation with Crowdin" msgstr "" #. TRANSLATORS: This is titlebar of about dialog, "%s" is application name #. ("Poedit" here, but please use "%s") #, c-format msgid "About %s" msgstr "درباره %s" #. TRANSLATORS: Title of the preferences window on Windows and Linux. "%s" is replaced with "Poedit" when running. #, c-format msgid "%s Preferences" msgstr "" #. TRANSLATORS: macOS item in app menu msgid "Services" msgstr "" #. TRANSLATORS: macOS item in app menu, %s is replaced with "Poedit" #, c-format msgid "Hide %s" msgstr "پنهانسازی %s" #. TRANSLATORS: macOS item in app menu msgid "Hide Others" msgstr "پنهانسازی بقیه" #. TRANSLATORS: macOS item in app menu msgid "Show All" msgstr "نمایش همه" #. TRANSLATORS: macOS item in app menu, %s is replaced with "Poedit" #, c-format msgid "Quit %s" msgstr "خروج از %s" #. TRANSLATORS: macOS item in app menu msgid "Preferences…" msgstr "" msgid "Preferences..." msgstr "ترجیحات..." #. TRANSLATORS: Title of a category in Windows task menu (right-click icon in taskbar) msgid "Recent" msgstr "" #. TRANSLATORS: Title of a category in Windows task menu (right-click icon in taskbar) msgid "Frequent" msgstr "" msgid "&Apply" msgstr "" msgid "Apply" msgstr "" msgid "&Back" msgstr "" msgid "Back" msgstr "" msgid "&Cancel" msgstr "" msgid "&Clear" msgstr "" msgid "Clear" msgstr "" msgid "Copy" msgstr "کپی" msgid "Cu&t" msgstr "بریدن و انتقال" msgid "Cut" msgstr "برش" msgid "&Delete" msgstr "حذف" msgid "&Quit" msgstr "" msgid "File" msgstr "" msgid "Help" msgstr "" msgid "&New" msgstr "" msgid "&No" msgstr "" msgid "No" msgstr "" msgid "&OK" msgstr "" msgid "Open…" msgstr "باز کردن…" msgid "&Open..." msgstr "&باز کردن..." msgid "Open..." msgstr "" msgid "&Paste" msgstr "جاي گذاري[&P]" msgid "Paste" msgstr "جای گذاری" msgid "Preferences" msgstr "" msgid "&Redo" msgstr "& ازنو" msgid "Refresh" msgstr "" msgid "&Save as" msgstr "" msgid "Save as" msgstr "" msgid "Select &All" msgstr "انتخاب همه" msgid "Select All" msgstr "انتخاب همه" msgid "&Undo" msgstr "&بازگشت" msgid "&Yes" msgstr "" msgid "Yes" msgstr "" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Shift+" msgstr "Shift+" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Enter" msgstr "Enter" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Up" msgstr "بالا" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Down" msgstr "پایین" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Left" msgstr "" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Right" msgstr "" #. TRANSLATORS: Keyboard shortcut, must correspond to translation of "Ctrl+" msgid "ctrl" msgstr "ctrl" #. TRANSLATORS: Keyboard shortcut, must correspond to translation of "Alt+" msgid "alt" msgstr "alt" #. TRANSLATORS: Keyboard shortcut, must correspond to translation of "Shift+" msgid "shift" msgstr "shift" poedit-2.0.6/locales/fi.po0000664000372000037200000014563213230132076012314 00000000000000msgid "" msgstr "" "Project-Id-Version: poedit\n" "Report-Msgid-Bugs-To: help@poedit.net\n" "POT-Creation-Date: 2017-12-05 15:52+0100\n" "PO-Revision-Date: 2017-09-21 11:19-0400\n" "Last-Translator: vslavik \n" "Language-Team: Finnish\n" "Language: fi_FI\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: crowdin.com\n" "X-Crowdin-Project: poedit\n" "X-Crowdin-Language: fi\n" "X-Crowdin-File: /locales/poedit.pot\n" msgid "Hide this notification message" msgstr "Piilota tämä ilmoitus" msgid "Don’t Show Again" msgstr "Älä näytä uudelleen" msgid "Don’t show again" msgstr "Älä näytä uudelleen" #, c-format msgid "(New: %i, obsolete: %i)" msgstr "(Uusi: %i, vanhentunut: %i)" msgid "Updating catalog" msgstr "Päivitetään katalogia" msgid "Collecting source files…" msgstr "" msgid "Extracting translatable strings…" msgstr "Poimitaan käännettävät merkkijonot…" msgid "Failed to load extracted catalog." msgstr "Poimitun katalogin lataaminen epäonnistui." msgid "Merging differences…" msgstr "Yhdistetään eroavaisuuksia…" #, c-format msgid "“%s” is not a valid POT file." msgstr "”%s” ei ole kelvollinen POT-tiedosto." #, c-format msgid "%i line of file “%s” was not loaded correctly." msgid_plural "%i lines of file “%s” were not loaded correctly." msgstr[0] "" msgstr[1] "" #, c-format msgid "Line %d of file “%s” is corrupted (not valid %s data)." msgstr "Rivi %d tiedostossa ”%s” on korruptoitunut (ei kelvollista %s-dataa)." #, c-format msgid "Malformed header: “%s”" msgstr "Vääränmuotoinen otsake: ”%s”" msgid "" "Broken catalog file: singular form msgstr used together with msgid_plural" msgstr "" "Rikkinäinen katalogitiedosto: yksikkomuotoista msgstr:ää käytetty yhdessä " "msgid_plural:in kanssa" msgid "Broken catalog file: plural form msgstr used without msgid_plural" msgstr "" "Rikkinäinen katalogitiedosto: monikkomuotoista msgstr:ää käytetty ilman " "msgid_plural:ia" msgid "" "There were errors when loading the catalog. Some data may be missing or " "corrupted as the result." msgstr "" "Katalogia ladattaessa kohdattiin virheitä. Osa tiedoista saattaa sen " "seurauksena puuttua tai olla vioittunutta." #, c-format msgid "Couldn’t load file %s, it is probably corrupted." msgstr "Tiedostoa %s ei voitu ladata, se on todennäköisesti vioittunut." #, c-format msgid "" "File “%s” is read-only and cannot be saved.\n" "Please save it under different name." msgstr "" "Tiedosto ”%s” voidaan vain lukea, mutta ei tallentaa.\n" "Tallenna toisella nimellä." #, c-format msgid "Couldn’t save file %s." msgstr "Tiedostoa %s ei voitu tallentaa." msgid "" "There was a problem formatting the file nicely (but it was saved all right)." msgstr "Tiedoston muotoilemisessa oli ongelma (mutta sen tallennus onnistui)." #, c-format msgid "" "The catalog couldn’t be saved in “%s” charset as specified in catalog " "settings.\n" "\n" "It was saved in UTF-8 instead and the setting was modified accordingly." msgstr "" "Katalogia ei voitu tallentaa katalogin ominaisuuksissa on määriteltyssä ”%s”-" "merkistössä.\n" "\n" "Se tallennettiin sen sijaan UTF-8-muodossa ja asetusta muutettiin " "vastaavasti." msgid "Error saving catalog" msgstr "Virhe katalogia tallennettaessa" msgid "PO Translation Files" msgstr "PO-käännöstiedostot" msgid "POT Translation Templates" msgstr "POT-käännöspohjat" msgid "All Translation Files" msgstr "Kaikki käännöstiedostot" msgid "(Use default language)" msgstr "(Käytä oletuskieltä)" msgid "Select your preferred language" msgstr "Valitse ensisijainen kieli" msgid "Language selection" msgstr "Kielen valinta" msgid "You must restart Poedit for this change to take effect." msgstr "Poedit täytyy käynnistää uudestaan muutoksien käyttöön ottamiseksi." msgid "Syncing" msgstr "Synkronoidaan" #. TRANSLATORS: %s is a cloud destination, e.g. "Crowdin" or ftp.wordpress.com etc. #, c-format msgid "Syncing with %s…" msgstr "" #. TRANSLATORS: %s is a cloud destination, e.g. "Crowdin" or ftp.wordpress.com etc. #, c-format msgid "Syncing with %s failed." msgstr "" msgid "Syncing error" msgstr "Synkronointivirhe" msgid "Downloading translations is disabled in this project." msgstr "Käännösten lataus on poistettu käytöstä tässä projektissa." msgid "Not authorized, please sign in again." msgstr "Ei valtuutusta; kirjaudu uudelleen." msgid "" "Crowdin is an online localization management platform and collaborative " "translation tool. Poedit can seamlessly sync PO files managed at Crowdin." msgstr "" "Crowdin on verkossa toimiva lokalisoinninhallinta-alusta ja yhteistyökalu " "kääntämiseen. Poedit osaa saumattomasti synkronoida Crowdinissa hallittuja " "PO-tiedostoja." msgid "Sign In" msgstr "Kirjaudu" msgid "Sign in" msgstr "Kirjaudu" msgid "Sign Out" msgstr "Kirjaudu ulos" msgid "Sign out" msgstr "Kirjaudu ulos" msgid "Waiting for authentication…" msgstr "Odotetaan todennusta…" msgid "Updating user information…" msgstr "Päivitetään käyttäjätietoja…" msgid "Signed in as:" msgstr "Kirjautuneena käyttäjänä:" msgid "Learn More About Crowdin" msgstr "Lisätietoja Crowdinista" msgid "Learn more about Crowdin" msgstr "Lisätietoja Crowdinista" msgid "Sign in to Crowdin" msgstr "Kirjaudu Crowdiniin" msgid "Open Crowdin translation" msgstr "Avaa Crowdin-käännös" msgid "Project:" msgstr "Projekti:" msgid "Language:" msgstr "Kieli:" msgid "File:" msgstr "Tiedosto:" msgid "No translation projects listed in your Crowdin account." msgstr "Crowdin-tiliisi ei liity käännösprojekteja." msgid "This project has no files that can be translated in Poedit." msgstr "Tässä projektissa ei ole Poeditillä käännettäviä tiedostoja." msgid "This file can only be edited in Crowdin’s web interface." msgstr "Tätä tiedostoa voi muokata vain Crowdinin web-käyttöliittymässä." msgid "Downloading latest translations…" msgstr "Ladataan uusimmat käännökset…" msgid "Syncing with Crowdin failed." msgstr "Synkronointi Crowdiniin epäonnistui." msgid "Crowdin error" msgstr "Crowdin-virhe" msgid "Uploading translations…" msgstr "Lähetetään käännöksiä…" msgid "&Copy" msgstr "&Kopioi" msgid "Learn more" msgstr "Lisätietoja" msgid "Learn More" msgstr "Lisätietoja" msgid "&Help" msgstr "&Ohje" msgid "MO files can’t be directly edited in Poedit." msgstr "MO-tiedostoja ei voi suoraan muokata Poeditillä." msgid "Error opening file" msgstr "Virhe tiedoston avaamisessa" msgid "" "Please open and edit the corresponding PO file instead. When you save it, " "the MO file will be updated as well." msgstr "" "Avaa ja muokkaa sen sijaan vastaavaa PO-tiedostoa. Kun se tallennetaan, MO-" "tiedosto päivittyy samalla." msgid "don’t delete temporary files (for debugging)" msgstr "älä poista tilapäistiedostoja (vianjäljitystä varten)" msgid "handle a poedit:// URI" msgstr "käsittele poedit://-osoite" msgid "go to item at given line number" msgstr "" msgid "Failed to communicate with Poedit process." msgstr "Kommunikointi Poedit-prosessin kanssa epäonnistui." #, c-format msgid "Unhandled exception occurred: %s" msgstr "Tapahtui käsittelemätön poikkeus: %s" msgid "Open catalog" msgstr "Avaa katalogi" #, c-format msgid "File “%s” doesn’t exist." msgstr "Tiedostoa ”%s” ei ole olemassa." msgid "Poedit is an easy to use translations editor." msgstr "Poedit on helppokäyttöinen käännöseditori." msgid "Catalogs Manager" msgstr "Katalogien hallinta" msgid "Check for Updates…" msgstr "Etsi päivityksiä…" msgid "&Edit" msgstr "&Muokkaa" msgid "Undo" msgstr "Kumoa" msgid "Redo" msgstr "Tee uudelleen" msgid "Paste and Match Style" msgstr "Liitä ja sovita tyyliin" msgid "Delete" msgstr "Poista" msgid "Spelling and Grammar" msgstr "Oikeinkirjoitus ja kielioppi" msgid "Show Spelling and Grammar" msgstr "Näytä oikeinkirjoitus ja kielioppi" msgid "Check Document Now" msgstr "Tarkista dokumentti nyt" msgid "Check Spelling While Typing" msgstr "Tarkista oikeinkirjoitus näppäilyn aikana" msgid "Check Grammar With Spelling" msgstr "Tarkista kielioppi oikeinkirjoituksen ohella" msgid "Correct Spelling Automatically" msgstr "Korjaa oikeinkirjoitus automaattisesti" msgid "Substitutions" msgstr "Korvaukset" msgid "Show Substitutions" msgstr "Näytä korvaukset" msgid "Smart Copy/Paste" msgstr "Älykäs kopiointi/liittäminen" msgid "Smart Quotes" msgstr "Älykkäät lainausmerkit" msgid "Smart Dashes" msgstr "Älykkäät yhdysmerkit" msgid "Smart Links" msgstr "Älykkäät linkit" msgid "Text Replacement" msgstr "Tekstin korvaus" msgid "Transformations" msgstr "Muunnokset" msgid "Make Upper Case" msgstr "Muuta suuraakkosiksi" msgid "Make Lower Case" msgstr "Muuta pienaakkosiksi" msgid "Capitalize" msgstr "Isot alkukirjaimet" msgid "Speech" msgstr "Puhe" msgid "Start Speaking" msgstr "Aloita puhuminen" msgid "Stop Speaking" msgstr "Lopeta puhuminen" msgid "&View" msgstr "&Näytä" msgid "Enter Full Screen" msgstr "Siirry koko näytön tilaan" msgid "Window" msgstr "Ikkuna" msgid "Minimize" msgstr "Pienennä" msgid "Zoom" msgstr "Zoomaa" msgid "Bring All to Front" msgstr "Tuo kaikki eteen" #. TRANSLATORS:File kind displayed in Finder/Explorer msgid "PO Translation" msgstr "PO-käännös" msgid "The file cannot be opened." msgstr "Tiedostoa ei voi avata." msgid "Invalid file" msgstr "Virheellinen tiedosto" msgid "" "The file may be either corrupted or in a format not recognized by Poedit." msgstr "Tiedosto voi olla joko vioittunut tai muodossa, jota Poedit ei tunne." msgid "You can’t drop more than one file on Poedit window." msgstr "Poedit-ikkunaan voi pudottaa vain yhden tiedoston." #, c-format msgid "File “%s” is not a message catalog." msgstr "" msgid "Poedit" msgstr "Poedit" msgid "&File" msgstr "&Tiedosto" msgid "&Go" msgstr "&Siirry" #. TRANSLATORS: %s is language name in its basic form (as you #. would see e.g. in a list of supported languages). You may need #. to rephrase it, e.g. to an equivalent of "for language %s". #, c-format msgid "" "Spellchecking is disabled, because the dictionary for %s isn’t installed." msgstr "" "Oikeinkirjoituksen tarkistus on poissa käytöstä, koska kielelle %s ei ole " "asennettu sanakirjaa." msgid "Install" msgstr "Asenna" msgid "Catalog modified. Do you want to save changes?" msgstr "Katalogia muokattu. Haluatko tallentaa muutokset?" msgid "Save changes" msgstr "Tallenna muutokset" msgid "Your changes will be lost if you don’t save them." msgstr "" msgid "Save" msgstr "Tallenna" msgid "Don’t save" msgstr "Älä tallenna" msgid "Don’t Save" msgstr "Älä tallenna" msgid "Save as…" msgstr "Tallenna nimellä…" msgid "Compile to…" msgstr "Muunna…" msgid "Compiled Translation Files" msgstr "Muunnetut käännöstiedostot" msgid "Export as…" msgstr "Vie nimellä…" msgid "HTML Files" msgstr "HTML-tiedostot" msgid "Open catalog template" msgstr "Avaa katalogimallipohja" msgid "Source code not available." msgstr "Lähdekoodi ei ole käytettävissä." msgid "Updating failed" msgstr "Päivitys epäonnistui" msgid "" "Translations couldn’t be updated from the source code, because no code was " "found in the location specified in the catalog’s Properties." msgstr "" "Käännösten päivittäminen lähdekoodista ei onnistunut, koska katalogin " "ominaisuuksissa annetusta sijainnista ei löytynyt koodia." msgid "Entries in the catalog are probably incorrect." msgstr "Katalogin merkinnät ovat todennäköisesti virheelliset." msgid "Updating the catalog failed. Click on 'Details >>' for details." msgstr "" "Katalogin päivitys epäonnistui. Valitse ”Lisää >>” saadaksesi lisätietoja." #, c-format msgid "%d issue with the translation found." msgid_plural "%d issues with the translation found." msgstr[0] "Käännöksestä löytyi %d ongelma." msgstr[1] "Käännöksestä löytyi %d ongelmaa." msgid "Validation results" msgstr "Validoinnin tulokset" msgid "" "Entries with errors were marked in red in the list. Details of the error " "will be shown when you select such an entry." msgstr "" "Virheelliset viestit on merkitty listassa punaisella värillä. Tällaisen " "viestin valitsemalla näytetään tarkemmat tiedot virheestä." msgid "The file was saved safely." msgstr "Tiedosto tallennettiin turvallisesti." msgid "" "The file was saved safely and compiled into the MO format, but it will " "probably not work correctly." msgstr "" "Tiedosto tallennettiin turvallisesti ja muunnettiin MO-muotoon, mutta se ei " "todennäköisesti toimi oikein." msgid "" "The file was saved safely, but it cannot be compiled into the MO format and " "used." msgstr "" "Tiedosto tallennettiin turvallisesti, mutta sitä ei voida muuntaa MO-muotoon " "eikä käyttää." msgid "" "The file was compiled into the MO format, but it will probably not work " "correctly." msgstr "" "Tiedosto muunnettiin MO-muotoon, mutta se ei todennäköisesti toimi oikein." msgid "The file cannot be compiled into the MO format and used." msgstr "Tiedostoa ei voi muuntaa MO-muotoon eikä sitä voi käyttää." msgid "No problems with the translation found." msgstr "Käännöksestä ei löytynyt ongelmia." #, c-format msgid "The translation is ready for use, but %d entry is not translated yet." msgid_plural "" "The translation is ready for use, but %d entries are not translated yet." msgstr[0] "Käännös on käyttövalmis, mutta %d viesti on vielä kääntämättä." msgstr[1] "Käännös on käyttövalmis, mutta %d viestiä on vielä kääntämättä." msgid "The translation is ready for use." msgstr "Käännös on käyttövalmis." #, c-format msgid "Poedit automatically fixed invalid content in the file “%s”." msgstr "Poedit korjasi automaattisesti tiedoston ”%s” virheellisen sisällön." msgid "" "The file contained duplicate items, which is not allowed in PO files and " "would prevent the file from being used. Poedit fixed the issue, but you " "should review translations of any items marked as needing work and correct " "them if necessary." msgstr "" "Tiedosto sisälsi kahdenkertaisia kohtia, mikä on kiellettyä PO-tiedostoissa " "ja estäisi tiedoston käytön. Poedit korjasi ongelman, mutta käännöksestä on " "syytä käydä läpi kaikki keskeneräisiksi merkityt viestit ja tarvittaessa " "korjata ne." msgid "Language of the translation isn’t set." msgstr "Käännöksen kieltä ei ole asetettu." msgid "Set Language" msgstr "Aseta kieli" msgid "Set language" msgstr "Aseta kieli" #. TRANSLATORS: This is shown underneath "Language of the translation isn't set (or ...is the same as source language)." msgid "" "Suggestions are not available if the translation language is not set " "correctly. Other features, such as plural forms, may be affected as well." msgstr "" "Ehdotukset eivät ole käytettävissä, jos käännöksen kieltä ei ole asetettu " "oikein. Muut ominaisuudet, kuten monikkomuodot, voivat myös toimia väärin." msgid "Language of the translation is the same as source language." msgstr "Käännöksen kieli on sama kuin lähdekieli." msgid "Fix Language" msgstr "Korjaa kieli" msgid "Fix language" msgstr "Korjaa kieli" msgid "" "This catalog has entries with plural forms, but doesn’t have Plural-Forms " "header configured." msgstr "" msgid "" "Entries in this catalog have different plural forms count from what " "catalog’s Plural-Forms header says" msgstr "" msgid "Required header Plural-Forms is missing." msgstr "Pakollinen otsake Plural-Forms puuttuu." #, c-format msgid "Syntax error in Plural-Forms header (\"%s\")." msgstr "Kielioppivirhe Plural-Forms -otsakkeessa (”%s”)." msgid "Fix the Header" msgstr "Korjaa otsake" msgid "Fix the header" msgstr "Korjaa otsake" #. TRANSLATORS: %s is language name in its basic form (as you #. would see e.g. in a list of supported languages). You may need #. to rephrase it, e.g. to an equivalent of "for language %s". #, c-format msgid "Plural forms expression used by the catalog is unusual for %s." msgstr "" "Katalogissa käytetty Plural-Forms-lauseke on epätavallinen kielelle %s." #. TRANSLATORS: A verb, shown as action button with ""Plural forms expression used by the catalog is unusual for %s.")" msgid "Review" msgstr "Katselmointi" #, c-format msgid "Error loading message catalog file “%s”." msgstr "" #, c-format msgid "Translated: %d of %d (%d %%)" msgstr "Käännetty: %d/%d (%d %%)" #, c-format msgid "Remaining: %d" msgstr "Jäljellä: %d" #, c-format msgid "%d error" msgid_plural "%d errors" msgstr[0] "%d virhe" msgstr[1] "%d virhettä" #, c-format msgid "%d entry" msgid_plural "%d entries" msgstr[0] "%d viesti" msgstr[1] "%d viestiä" msgid " (unsaved)" msgstr " (tallentamaton)" msgid " (modified)" msgstr " (muokattu)" #, c-format msgid "Failed to update translation memory: %s" msgstr "Käännösmuistin päivitys epäonnistui: %s" msgid "Purge deleted translations" msgstr "Puhdista poistetut käännökset" msgid "Do you want to remove all translations that are no longer used?" msgstr "Haluatko todella poistaa kaikki käännökset, joita ei enää käytetä?" msgid "" "If you continue with purging, all translations marked as deleted will be " "permanently removed. You will have to translate them again if they are added " "back in the future." msgstr "" "Jos jatkat puhdistamista, kaikki poistetuiksi merkityt käännökset hävitetään " "lopullisesti. Sinun täytyy kääntää ne uudestaan, mikäli ne tulevaisuudessa " "palaavat käyttöön." msgid "Keep" msgstr "Pidä" msgid "Purge" msgstr "Puhdista" msgid "Copy from source text" msgstr "Kopioi lähdetekstistä" msgid "Copy from Source Text" msgstr "Kopioi lähdetekstistä" #. TRANSLATORS: This is the key shortcut used in menus on Windows, some languages call them differently #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Ctrl+" msgstr "Ctrl+" msgid "Clear translation" msgstr "Tyhjennä käännös" msgid "Clear Translation" msgstr "Tyhjennä käännös" msgid "Edit comment" msgstr "Muokkaa kommenttia" msgid "Edit Comment" msgstr "Muokkaa kommenttia" msgid "References:" msgstr "Viitteet:" msgid "&Bookmarks" msgstr "&Kirjanmerkit" #. TRANSLATORS: This is the key shortcut used in menus on Windows, some languages call them differently #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Alt+" msgstr "Alt+" #, c-format msgid "Set bookmark %i" msgstr "Aseta kirjanmerkki %i" #, c-format msgid "Go to bookmark %i" msgstr "Siirry kirjanmerkkiin %i" #, c-format msgid "Set Bookmark %i" msgstr "Aseta kirjanmerkki %i" #, c-format msgid "Go to Bookmark %i" msgstr "Siirry kirjanmerkkiin %i" msgid "Hide Sidebar" msgstr "Piilota sivupalkki" msgid "Show Sidebar" msgstr "Näytä sivupalkki" msgid "Hide Status Bar" msgstr "Piilota tilarivi" msgid "Show Status Bar" msgstr "Näytä tilarivi" msgid "Source text:" msgstr "Lähdeteksti:" msgid "Singular:" msgstr "Yksikkö:" msgid "Plural:" msgstr "Monikko:" msgid "Translation:" msgstr "Käännös:" msgid "Pre-translated" msgstr "Esikäännetty" msgid "Needs Work" msgstr "Keskeneräinen" #. TRANSLATORS: This indicates that the string's translation isn't final #. and has known problems. For example, it might be machine translated or #. fuzzy matched from an older string. The translation should be short and #. convey this. If it's problematic to translate it, "Needs review" is #. acceptable substitute, but note that the meaning is subtly different: #. "needs review" implies that somebody else should review the string after #. I am done with it (i.e. consider it good), while "needs work" implies I #. need to return to it and finish the translation. msgid "Needs work" msgstr "Keskeneräinen" msgid "" "POT files are only templates and don’t contain any translations themselves.\n" "To make a translation, create a new PO file based on the template." msgstr "" "POT-tiedostot ovat pelkkiä käännöspohjia, eivätkä itse sisällä käännöksiä.\n" "Tee käännös luomalla uusi PO-tiedosto käännöspohjan perusteella." msgid "Create New Translation" msgstr "Luo uusi käännös" msgid "Create new translation" msgstr "Luo uusi käännös" msgid "Everything" msgstr "Kaikki" #, c-format msgid "Form %i" msgstr "Muoto %i" msgid "Singular" msgstr "Yksikkö" msgid "Zero" msgstr "Nolla" msgid "One" msgstr "Yksi" msgid "Two" msgstr "Kaksi" msgid "Plural" msgstr "Monikko" msgid "Other" msgstr "Muut" #, c-format msgid "%s Format" msgstr "%s-muotoilu" #. TRANSLATORS: %s is replaced with language name, e.g. "PHP" or "C", so "PHP Format" etc." #, c-format msgid "%s format" msgstr "%s-muotoilu" msgid "Source text" msgstr "Lähdeteksti" #, c-format msgid "Translation — %s" msgstr "Käännös — %s" msgid "ID" msgstr "ID" #, c-format msgid "Source text — %s" msgstr "Lähdeteksti — %s" msgid "unknown language" msgstr "tuntematon kieli" #, c-format msgid "Failed command: %s" msgstr "Epäonnistunut komento: %s" msgid "Failed to merge gettext catalogs." msgstr "Gettext-katalogien yhdistäminen epäonnistui." msgid "Source file" msgstr "Lähdetiedosto" msgid "Source file occurrence:" msgstr "Lähdetiedoston esiintymä:" msgid "Open in Editor" msgstr "Avaa editorissa" msgid "Open in editor" msgstr "Avaa editorissa" msgid "No references for the selected item." msgstr "Ei viittauksia valittuun kohteeseen." #, c-format msgid "Error opening file %s!" msgstr "Virhe tiedostoa %s avattaessa!" msgid "Find" msgstr "Etsi" msgid "Replace" msgstr "Korvaa" #. TRANSLATORS: Expander in Find window for additional options (case sensitive etc.) msgid "Options" msgstr "Valinnat" msgid "Ignore case" msgstr "Älä huomioi kirjainkokoa" msgid "Wrap around" msgstr "Jatka alusta" msgid "Whole words only" msgstr "Vain kokonaiset sanat" msgid "Find in source texts" msgstr "Etsi lähdeteksteistä" msgid "Find in translations" msgstr "Etsi käännöksistä" msgid "Find in comments" msgstr "Hae kommenteista" msgid "Close" msgstr "Sulje" msgid "Replace &All" msgstr "Korvaa k&aikki" msgid "Replace &all" msgstr "Korvaa k&aikki" msgid "&Replace" msgstr "&Korvaa" msgid "< &Previous" msgstr "< &Edellinen" msgid "&Next >" msgstr "&Seuraava >" msgid "String to find" msgstr "Etsittävä teksti" msgid "Replacement string" msgstr "Korvaava teksti" #, c-format msgid "Cannot execute program: %s" msgstr "Ei voida suorittaa ohjelmaa: %s" msgid "Language Code or Name (e.g. en_GB)" msgstr "Kielen koodi tai nimi (esim. fi_FI)" msgid "Translation Language" msgstr "Käännöksen kieli" msgid "Language of the translation:" msgstr "Käännöksen kieli:" msgid "Poedit - Catalogs manager" msgstr "Poedit - Katalogien hallinta" msgid "Catalog" msgstr "Katalogi" msgid "Total" msgstr "Yhteensä" msgid "Untrans" msgstr "Ei käänn" msgid "Errors" msgstr "Virheet" msgid "Last modified" msgstr "Muokattu viimeksi" msgid "Select directory" msgstr "Valitse kansio" msgid "Directories:" msgstr "Kansiot:" msgid "" msgstr "" msgid "Do you want to delete the project?" msgstr "Haluatko todella poistaa projektin?" msgid "Confirmation" msgstr "Vahvistus" msgid "" "Do you really want to do mass update of\n" "all catalogs in this project?" msgstr "" "Haluatko todella massapäivittää\n" "tämän projektin kaikki katalogit?" msgid "Information about the translator" msgstr "Tietoja kääntäjästä" msgid "Name:" msgstr "Nimi:" msgid "Your Name" msgstr "Nimesi" msgid "Email:" msgstr "Sähköposti:" msgid "your_email@example.com" msgstr "sähköpostiosoitteesi@example.com" msgid "" "Your name and email address are only used to set the Last-Translator header " "of GNU gettext files." msgstr "" "Nimeäsi ja sähköpostiosoitettasi käytetään ainoastaan GNU-gettext-" "tiedostojen Last-Translator-otsakkeessa." msgid "Editing" msgstr "Muokkaus" msgid "Automatically compile MO file when saving" msgstr "Muunna automaattisesti MO-tiedostoksi tallennettaessa" msgid "Show summary after catalog update" msgstr "Näytä yhteenveto katalogin päivityksen jälkeen" msgid "Check spelling" msgstr "Tarkista oikeinkirjoitus" msgid "Always change focus to text input field" msgstr "Tarkenna aina tekstinsyöttökenttään" msgid "" "Never let the list of strings take focus. If enabled, you must use Ctrl-" "arrows for keyboard navigation but you can also type text immediately, " "without having to press Tab to change focus." msgstr "" "Älä koskaan tarkenna merkkijonolistaan. Jos tämä on käytössä, näppäimistöä " "käytettäessä liikkumiseen täytyy käyttää Ctrl-nuolia, mutta toisaalta " "tekstiä voi kirjoittaa välittömästi, ilman että tarvitsee painaa sarkainta " "tarkennuksen vaihtamiseksi." msgid "Appearance" msgstr "Ulkoasu" msgid "Use custom list font:" msgstr "Listan fontti:" msgid "Use custom text fields font:" msgstr "Tekstikenttien fontti:" msgid "Change UI language" msgstr "Vaihda käyttöliittymän kieli" #. TRANSLATORS: This is a note appended to "Check spelling" when running on older Windows versions msgid "(requires Windows 8 or newer)" msgstr "(vaatii Windows 8:n tai uudemman)" msgid "General" msgstr "Yleiset" msgid "Use translation memory" msgstr "Käytä käännösmuistia" msgid "Learn From Files…" msgstr "Opi tiedostoista…" msgid "Learn from files…" msgstr "Opi tiedostoista…" #. TRANSLATORS: This is a button that deletes everything in the translation memory (i.e. clears/resets it). msgid "Reset" msgstr "Tyhjennä" #. TRANSLATORS: Followed by "match translations within the file" or "pre-translate from TM" msgid "When updating from sources" msgstr "" #. TRANSLATORS: Preceded by "When updating from sources" msgid "fuzzy match within the file" msgstr "" #. TRANSLATORS: Preceded by "When updating from sources" msgid "pre-translate from TM" msgstr "" msgid "" "Poedit can attempt to fill in new entries from only previous translations in " "the file or from your entire translation memory. Using the TM won’t be very " "effective if it’s near-empty, but it will get better as you add more " "translations to it." msgstr "" msgid "Stored translations:" msgstr "Tallennetut käännökset:" msgid "Database size on disk:" msgstr "Tietokannan koko levyllä:" msgid "Select translation files to import" msgstr "Valitse tuotavat käännöstiedostot" msgid "Translation Memory" msgstr "Käännösmuisti" msgid "Importing translations…" msgstr "Tuodaan käännöksiä…" msgid "Finalizing…" msgstr "" msgid "Reset translation memory" msgstr "Tyhjennä käännösmuisti" msgid "Are you sure you want to reset the translation memory?" msgstr "Haluatko varmasti tyhjentää käännösmuistin?" msgid "" "Resetting the translation memory will irrevocably delete all stored " "translations from it. You can’t undo this operation." msgstr "" "Käännösmuistin tyhjentäminen tuhoaa kaikki sen sisältämät käännökset " "peruuttamattomasti. Tätä toimenpidettä ei voi perua." msgid "Cancel" msgstr "Peruuta" #. TRANSLATORS: This is abbreviation of "Translation Memory" used in Preferences on macOS. #. Long text looks weird there, too short (like TM) too, but less so. "General" is about ideal #. length there. msgid "TM" msgstr "Muisti" msgid "" "Source code extractors are used to find translatable strings in the source " "code files and extract them so that they can be translated." msgstr "" "Lähdekoodipoimimia käytetään käännettävien tekstien etsimiseen " "lähdekooditiedostoista sekä näiden tekstien poimimiseen käännöksen tekemistä " "varten." msgid "Custom Extractors:" msgstr "Mukautetut poimimet:" msgid "Custom extractors:" msgstr "Mukautetut poimimet:" msgid "Edit…" msgstr "Muokkaa…" msgid "GNU gettext" msgstr "" msgid "" "Supports all programming languages recognized by GNU gettext tools (PHP, C/C+" "+, C#, Perl, Python, Java, JavaScript and others)." msgstr "" "Tukee kaikkia GNU gettextin tunnistamia ohjelmointikieliä (PHP, C/C++, C#, " "Perl, Python, Java, JavaScript ja muita)." msgid "Delete extractor" msgstr "Poista poimin" #, c-format msgid "Are you sure you want to delete the “%s” extractor?" msgstr "Haluatko varmasti poistaa “%s“-poimimen?" msgid "Extractors" msgstr "Poimimet" msgid "Accounts" msgstr "Tilit" msgid "Automatically check for updates" msgstr "Tarkista päivitykset automaattisesti" msgid "Include beta versions" msgstr "Tarkista myös beta-versiot" msgid "" "Beta versions contain the latest new features and improvements, but may be a " "bit less stable." msgstr "" "Beta-versiot sisältävät uusimmat ominaisuudet ja parannukset, mutta " "saattavat olla hieman epävakaampia." msgid "Updates" msgstr "Päivitykset" msgid "" "These settings affect internal formatting of PO files. Adjust them if you " "have specific requirements e.g. because of version control." msgstr "" "Nämä asetukset vaikuttavat PO-tiedostojen sisäiseen muotoiluun. Niitä voi " "tarvittaessa muuttaa esim. versionhallinnasta johtuvien vaatimusten vuoksi." msgid "Line endings:" msgstr "Rivinvaihdot:" msgid "Unix (recommended)" msgstr "Unix (suositeltu)" msgid "Windows" msgstr "Windows" #. TRANSLATORS: Followed by text control for entering number; wraps text at given width msgid "Wrap at:" msgstr "Rivitys:" msgid "Preserve formatting of existing files" msgstr "Säilytä olemassa olevien tiedostojen muotoilu" msgid "Advanced" msgstr "Lisäasetukset" msgid "Pre-translating…" msgstr "Esikäännetään…" #, c-format msgid "Pre-translated %u string" msgid_plural "Pre-translated %u strings" msgstr[0] "Esikäännettiin %u merkkijono" msgstr[1] "Esikäännettiin %u merkkijonoa" #. TRANSLATORS: This is a somewhat common term describing the action where #. you apply the translation memory and/or machine translation to all of the #. strings you're translating as the first step, followed by correcting, #. improving etc., i.e. actually translating the strings. This may be tricky #. to express in other languages as simply as in English, but please try to #. keep it similarly concise. Please try to avoid, if possible, describing it #. as "auto-translation" and similar, because such terminology would mislead #. some users into thinking it's all that needs to be done (spoken from #. experience). "Pre-translate" nicely expresses that it's only the step done #. *before* actual translation. msgid "Pre-translate" msgstr "Esikäännä" msgid "Only fill in exact matches" msgstr "Täytä vain tarkat täsmäävyydet" msgid "" "By default, inaccurate results are filled in as well and marked as needing " "work. Check this option to only include accurate matches." msgstr "" msgid "Don’t mark exact matches as needing work" msgstr "Älä merkitse tarkkoja vastineita keskeneräisiksi" msgid "" "Only enable if you trust the quality of your TM. By default, all matches " "from the TM are marked as needing work and should be reviewed before use." msgstr "" msgid "" "Pre-translation automatically finds exact or fuzzy matches for untranslated " "strings in the translation memory and fills in their translations." msgstr "" #, c-format msgid "%d entry was pre-translated." msgid_plural "%d entries were pre-translated." msgstr[0] "%d kohta esikäännettiin." msgstr[1] "%d kohtaa esikäännettiin." msgid "" "The translations were marked as needing work, because they may be " "inaccurate. You should review them for correctness." msgstr "" "Käännökset merkittiin keskeneräisiksi, sillä ne voivat olla virheellisiä. Ne " "on syytä käydä läpi oikeellisuuden varmistamiseksi." msgid "No entries could be pre-translated." msgstr "Yhtään kohtaan ei voitu esikääntää." msgid "" "The TM doesn’t contain any strings similar to the content of this file. It " "is only effective for semi-automatic translations after Poedit learns enough " "from files that you translated manually." msgstr "" "Käännösmuisti ei sisällä yhtään tämän tiedoston sisältöä muistuttavaa " "merkkijonoa. Käännösmuisti toimii tehokkaasti puoliautomaattiseen " "kääntämiseen vasta kun Poedit on oppinut tarpeeksi manuaalisesti " "käännetyistä tiedostoista." msgid "" "Drag and Drop Folders Here\n" "\n" "or use the + button" msgstr "" "Vedä ja pudota kansioita tähän\n" "\n" "tai käytä +-painiketta" msgid "" "Drag and drop folders here\n" "\n" "or use the + button" msgstr "" "Vedä ja pudota kansioita tähän\n" "\n" "tai käytä +-painiketta" msgid "Add Folders…" msgstr "Lisää kansioita…" msgid "Add folders…" msgstr "Lisää kansioita…" msgid "Add Files…" msgstr "Lisää tiedostoja…" msgid "Add files…" msgstr "Lisää tiedostoja…" msgid "Add Wildcard…" msgstr "" msgid "Add wildcard…" msgstr "" msgid "Paths" msgstr "Polut" msgid "Excluded paths" msgstr "Ohitettavat polut" msgid "Advanced extraction settings" msgstr "Poiminnan lisäasetukset" msgid "Extract notes for translators from:" msgstr "" msgid "Comments prefixed with:" msgstr "" msgid "All comments" msgstr "Kaikki kommentit" msgid "Additional xgettext flags:" msgstr "Lisävalitsimet xgettextille:" msgid "Additional keywords" msgstr "Lisäavainsanat" msgid "Name of the project the translation is for" msgstr "Projektin nimi, jolle tämä käännös on tarkoitettu" msgid "Team name and email address or URL" msgstr "Tiimin nimi ja sähköpostiosoite tai URL" msgid "e.g. nplurals=2; plural=(n > 1);" msgstr "esim. nplurals=2; plural=(n > 1);" msgid "UTF-8 (recommended)" msgstr "UTF-8 (suositeltu)" msgid "Please save the file first. This section cannot be edited until then." msgstr "Tallenna tiedosto ensin. Tätä osaa ei voi muokata sitä ennen." msgid "Not all plural forms are translated." msgstr "Kaikkia monikkomuotoja ei ole käännetty." msgid "The translation should start as a sentence." msgstr "" msgid "The translation should start with a lowercase character." msgstr "" msgid "The translation doesn’t start with a space." msgstr "Käännös ei ala välilyönnillä." msgid "The translation starts with a space, but the source text doesn’t." msgstr "Käännös alkaa välilyönnillä toisin kuin lähdeteksti." msgid "The translation is missing a newline at the end." msgstr "Käännöksen lopusta puuttuu rivinvaihto." msgid "The translation ends with a newline, but the source text doesn’t." msgstr "Käännös päättyy rivinvaihtoon toisin kuin lähdeteksti." msgid "The translation is missing a space at the end." msgstr "Käännöksen lopusta puuttuu välilyönti." msgid "The translation ends with a space, but the source text doesn’t." msgstr "Käännös päättyy välilyöntiin toisin kuin lähdeteksti." #, c-format msgid "The translation should end with “%s”." msgstr "" #, c-format msgid "The translation should not end with “%s”." msgstr "" #, c-format msgid "The translation ends with “%s”, but the source text ends with “%s”." msgstr "" msgid "Comment:" msgstr "Kommentti:" msgid "OK" msgstr "OK" msgid "C&lear" msgstr "T&yhjennä" msgid "Clear the comment" msgstr "Tyhjennä kommentti" msgid "New" msgstr "Uusi" msgid "Create new translations project" msgstr "Luo uusi käännösprojekti" msgid "Edit" msgstr "Muokkaa" msgid "Edit the project" msgstr "Muokkaa projektia" msgid "Delete the project" msgstr "Poista projekti" msgid "Update all" msgstr "Päivitä kaikki" msgid "Update all catalogs in the project" msgstr "Päivitä projektin kaikki katalogit" msgid "Edit project" msgstr "Muokkaa projektia" msgid "Project name:" msgstr "Projektin nimi:" msgid "Browse" msgstr "Selaa" msgid "Add directory to the list" msgstr "Lisää kansio listaan" msgid "&New…" msgstr "&Uusi…" msgid "New from &POT/PO file…" msgstr "Uusi &POT/PO-tiedostosta…" msgid "New From &POT/PO File…" msgstr "Uusi &POT/PO-tiedostosta…" msgid "&Open…" msgstr "&Avaa…" msgid "Open Recent" msgstr "Avaa äskettäinen" msgid "Open from Crowdin…" msgstr "Avaa Crowdinista…" msgid "Open From Crowdin…" msgstr "Avaa Crowdinista…" msgid "&Close" msgstr "&Sulje" msgid "&Save" msgstr "Ta&llenna" msgid "Save &as…" msgstr "Tallenna &nimellä…" msgid "Save &As…" msgstr "Tallenna &nimellä…" msgid "Compile to MO…" msgstr "Muunna MO-muotoon…" msgid "E&xport as HTML…" msgstr "&Vie HTML-muodossa…" msgid "Check for updates…" msgstr "Etsi päivityksiä…" msgid "&Preferences…" msgstr "&Asetukset…" msgid "Catalogs &manager" msgstr "Katalo&gien hallinta" msgid "Catalogs &Manager" msgstr "Katalo&gien hallinta" msgid "E&xit" msgstr "&Lopeta" msgid "Quit" msgstr "Lopeta" msgid "Copy from singular" msgstr "Kopioi yksiköstä" msgid "Copy From Singular" msgstr "Kopioi yksiköstä" msgid "Translation needs &work" msgstr "Käännös on &keskeneräinen" msgid "Translation Needs &Work" msgstr "Käännös on &keskeneräinen" msgid "Edit &comment" msgstr "Muokkaa &kommenttia" msgid "Edit &Comment" msgstr "Muokkaa &kommenttia" msgid "Suggestions" msgstr "Ehdotukset" msgid "&Find…" msgstr "&Etsi…" msgid "Replace…" msgstr "&Korvaa…" msgid "Find next" msgstr "Etsi seuraava" msgid "Find previous" msgstr "Etsi edellinen" msgid "Find and Replace…" msgstr "Etsi ja korvaa…" msgid "Find Next" msgstr "Etsi seuraava" msgid "Find Previous" msgstr "Etsi edellinen" msgid "&Preferences" msgstr "A&setukset" msgid "Display entry &IDs" msgstr "Näytä viestien &ID:t" msgid "Display Entry &IDs" msgstr "Näytä viestien &ID:t" msgid "Sort by &file order" msgstr "Järjestä &tiedostojärjestyksen mukaan" msgid "Sort by &File Order" msgstr "Järjestä &tiedostojen järjestyksen mukaan" msgid "Sort by &source" msgstr "Järjestä läht&een mukaan" msgid "Sort by &Source" msgstr "Järjestä läht&een mukaan" msgid "Sort by &translation" msgstr "Järjestä &käännöksen mukaan" msgid "Sort by &Translation" msgstr "Järjestä &käännöksen mukaan" msgid "&Group by context" msgstr "&Ryhmittele konteksteittain" msgid "&Group By Context" msgstr "&Ryhmittele konteksteittain" msgid "Entries with errors first" msgstr "Virheitä sisältävät ensin" msgid "Entries with Errors First" msgstr "Virheitä sisältävät ensin" msgid "&Untranslated entries first" msgstr "Kääntämättö&mät ensin" msgid "&Untranslated Entries First" msgstr "Kääntämättö&mät ensin" msgid "&Show references" msgstr "&Näytä viittaukset" msgid "&Show References" msgstr "&Näytä viittaukset" msgid "Show sidebar" msgstr "Näytä sivupalkki" msgid "Show status bar" msgstr "Näytä tilarivi" msgid "C&atalog" msgstr "K&atalogi" msgid "&Update from sources" msgstr "P&äivitä lähteestä" msgid "&Update from Sources" msgstr "P&äivitä lähteestä" msgid "Update from &POT file…" msgstr "Päivitä &POT-tiedostosta…" msgid "Update from &POT File…" msgstr "Päivitä &POT-tiedostosta…" msgid "Sync with Crowdin" msgstr "Synkronoi Crowdiniin" msgid "Pre-&translate…" msgstr "Esi&käännä…" msgid "&Purge deleted translations" msgstr "P&uhdista poistetut käännökset" msgid "&Purge Deleted Translations" msgstr "P&uhdista poistetut käännökset" msgid "&Validate translations" msgstr "&Validoi käännökset" msgid "&Validate Translations" msgstr "&Validoi käännökset" msgid "&Properties…" msgstr "Om&inaisuudet…" msgid "&Done and next" msgstr "&Valmis ja seuraava" msgid "&Done and Next" msgstr "&Valmis ja seuraava" msgid "&Previous translation" msgstr "&Edellinen käännös" msgid "&Previous Translation" msgstr "&Edellinen käännös" msgid "&Next translation" msgstr "&Seuraava käännös" msgid "&Next Translation" msgstr "&Seuraava käännös" msgid "P&revious unfinished" msgstr "E&dellinen keskeneräinen" msgid "P&revious Unfinished" msgstr "E&dellinen keskeneräinen" msgid "Ne&xt unfinished" msgstr "Se&uraava keskeneräinen" msgid "Ne&xt Unfinished" msgstr "Se&uraava keskeneräinen" msgid "Previous plural form" msgstr "Edellinen monikkomuoto" msgid "Previous Plural Form" msgstr "Edellinen monikkomuoto" msgid "Next plural form" msgstr "Seuraava monikkomuoto" msgid "Next Plural Form" msgstr "Seuraava monikkomuoto" msgid "&Online help" msgstr "&Ohje verkossa" msgid "&Online Help" msgstr "&Ohje verkossa" msgid "&GNU gettext manual" msgstr "&GNU gettextin manuaali" msgid "&GNU gettext Manual" msgstr "&GNU gettextin manuaali" msgid "&About Poedit" msgstr "&Tietoja Poeditistä" msgid "&About" msgstr "&Tietoja" msgid "Extractor setup" msgstr "Poimimen asetukset" msgid "List of extensions separated by semicolons (e.g. *.cpp;*.h):" msgstr "Lista tiedostopäätteistä eroteltuna puolipisteillä (esim. *.cpp;*.h):" msgid "Invocation:" msgstr "Suoritus:" msgid "Command to extract translations:" msgstr "Komento käännettävien tekstien poimimiseen:" msgid "" "This is the command used to launch the extractor.\n" "%o expands to the name of output file, %K to list\n" "of keywords, %F to list of input files,\n" "%C to charset flag (see below)." msgstr "" "Tätä komentoa käytetään poimimen suorittamiseen.\n" "%o laajennetaan tulostiedoston nimeksi, %K avainsana-\n" "listaksi, %F syötetiedostojen listaksi,\n" "%C merkistölipuksi (ks. alempaa)." msgid "An item in keywords list:" msgstr "Kohde avainsanalistassa:" msgid "" "This will be attached to the command line once\n" "for each keyword. %k expands to the keyword." msgstr "" "Tämä liitetään komentojen listaan kerran\n" "kuhunkin avainsanaan. %f laajennetaan avainsanaksi." msgid "An item in input files list:" msgstr "Kohde syöttötiedostojen listassa:" #, c-format msgid "" "This will be attached to the command line once\n" "for each input file. %f expands to the filename." msgstr "" "Tämä liitetään komentoriville kerran\n" "kuhunkin syötetiedostoon. %f laajennetaan tiedostonimeksi." msgid "Source code charset:" msgstr "Lähdekoodin merkistö:" #, c-format msgid "" "This will be attached to the command line\n" "only if source code charset was given. %c expands to charset value." msgstr "" "Tämä liitetään komentoriville vain,\n" "jos kohteen koodimerkistö on annettu. %c laajennetaan merkistöarvoksi." msgid "Catalog properties" msgstr "Katalogin ominaisuudet" msgid "Project name and version:" msgstr "Projektin nimi ja versio:" msgid "Language team:" msgstr "Käännöstiimi:" msgid "Plural forms:" msgstr "Monikkomuodot:" msgid "Use default rules for this language" msgstr "Käytä tämän kielen oletussääntöjä" msgid "Use custom expression" msgstr "Käytä omaa lauseketta" msgid "Learn about plural forms" msgstr "Lisätietoja monikkomuodoista" msgid "Charset:" msgstr "Merkistö:" msgid "Advanced Extraction Settings…" msgstr "Poiminnan lisäasetukset…" msgid "Advanced extraction settings…" msgstr "Poiminnan lisäasetukset…" msgid "Translation Properties" msgstr "Käännöksen ominaisuudet" msgid "Translation properties" msgstr "Käännöksen ominaisuudet" msgid "Sources Paths" msgstr "Lähteiden polut" msgid "Sources paths" msgstr "Lähteiden polut" msgid "Extract text from source files in the following directories:" msgstr "Pura tekstit lähdekoodeista, jotka ovat seuraavissa kansioissa:" msgid "Base path:" msgstr "Kantapolku:" msgid "Sources Keywords" msgstr "Lähteiden avainsanat" msgid "Sources keywords" msgstr "Lähteiden avainsanat" msgid "" "Use these keywords (function names) to recognize translatable strings\n" "in source files:" msgstr "" "Käytä näitä avainsanoja (funktion nimiä) tunnistettaessa lähdetiedostoista\n" "käännettäviä merkkijonoja:" msgid "Also use default keywords for supported languages" msgstr "" msgid "Learn About Gettext Keywords" msgstr "Lisätietoja Gettextin avainsanoista" msgid "Learn about gettext keywords" msgstr "Lisätietoja Gettextin avainsanoista" msgid "Update summary" msgstr "Päivityksen yhteenveto" msgid "" "These strings were found in the sources but were not in the catalog.\n" "Poedit will add them to the catalog now." msgstr "" "Nämä merkkijonot löytyivät lähteestä, mutta ei katalogista.\n" "Poedit lisää ne nyt katalogiin." msgid "New strings" msgstr "Uudet merkkijonot" msgid "" "These strings are no longer in the sources.\n" "Poedit will remove them from the catalog now." msgstr "" "Nämä merkkijonot eivät ole enää lähteissä.\n" "Poedit poistaa ne nyt katalogista." msgid "Obsolete strings" msgstr "Vanhentunut merkkijono" msgid "(0 new, 0 obsolete)" msgstr "(0 uutta, 0 vanhentunutta)" msgid "Open" msgstr "Avaa" msgid "Save catalog" msgstr "Tallenna katalogi" msgid "Validate" msgstr "Validoi" msgid "Check for errors in the translation" msgstr "Tarkista käännöksen virheet" msgid "Update" msgstr "Päivitä" msgid "Update catalog - synchronize it with sources" msgstr "Päivityskatalogi - synkronoi se lähteen kanssa" msgid "Sidebar" msgstr "Sivupalkki" msgid "Show or hide the sidebar" msgstr "Näytä tai piilota sivupalkki" #. TRANSLATORS: "Previous" as in used in the past, now replaced with newer. msgid "Previous source text:" msgstr "Aiempi lähdeteksti:" msgid "" "The old source text (before it changed during an update) that the now-" "inaccurate translation corresponds to." msgstr "" msgid "Notes for translators:" msgstr "Huomautukset kääntäjille:" msgid "Add comment" msgstr "Lisää kommentti" msgid "Add Comment" msgstr "Lisää kommentti" msgid "Translation suggestions:" msgstr "Käännösehdotukset:" #. TRANSLATORS: This is shown when no translation suggestions can be found in the TM (Windows). msgid "No matches found" msgstr "Vastaavuuksia ei löydy" #. TRANSLATORS: This is shown when no translation suggestions can be found in the TM (macOS, Linux). msgid "No Matches Found" msgstr "Vastaavuuksia ei löydy" msgid "This string was found in Poedit’s translation memory." msgstr "Tämä merkkijono löytyi Poeditin käännösmuistista." msgid "Cannot create temporary directory." msgstr "Tilapäiskansiota ei voida luoda." msgid "Welcome to Poedit" msgstr "Tervetuloa Poeditiin" #. TRANSLATORS: This is version information in about dialog, "%s" will be #. version number when used #, c-format msgid "Version %s" msgstr "Versio %s" msgid "Edit a Translation" msgstr "Muokkaa käännöstä" msgid "Edit a translation" msgstr "Muokkaa käännöstä" msgid "Open an existing PO file and edit the translation." msgstr "Avaa olemassa oleva PO-tiedosto ja muokkaa käännöstä." msgid "" "Take an existing PO file or POT template and create a new translation from " "it." msgstr "" "Luo uusi käännös olemassa olevasta PO-tiedostosta tai POT-mallipohjasta." msgid "Collaborate on a Translation with Others" msgstr "Tee käännöstä yhteistyönä muiden kanssa" msgid "Collaborate on a translation with others" msgstr "Tee käännöstä yhteistyönä muiden kanssa" msgid "" "Download a file from Crowdin project, translate and sync your changes back." msgstr "" "Lataa tiedosto Crowdin-projektista, käännä ja synkronoi muutoksesi takaisin." msgid "What is Crowdin?" msgstr "Mikä on Crowdin?" msgid "There are no translations. That’s unusual." msgstr "Käännöksiä ei ole. Sepä erikoista." msgid "" "Translatable entries aren’t added manually in the Gettext system, but are " "automatically extracted\n" "from source code. This way, they stay up to date and accurate.\n" "Translators typically use PO template files (POTs) prepared for them by the " "developer." msgstr "" "Käännettäviä viestejä ei Gettext-järjestelmässä lisätä manuaalisesti, vaan " "ne poimitaan automaattisesti\n" "lähdekoodista. Näin ne pysyvät ajan tasalla ja tarkkoina.\n" "Kääntäjät käyttävät yleensä kehittäjän heitä varten luomia PO-" "mallipohjatiedostoja (POT)." msgid "(Learn more about GNU gettext)" msgstr "(Lisätietoja GNU gettextistä)" msgid "The simplest way to fill this catalog is to update it from a POT:" msgstr "" "Yksinkertaisin tapa tämän katalogin täyttämiseen on sen päivittäminen POT-" "tiedostosta:" msgid "Update from POT" msgstr "Päivitä POT-tiedostosta" msgid "Take translatable strings from an existing POT template." msgstr "Poimi käännettävät merkkijonot olemassa olevasta POT-mallipohjasta." msgid "" "You can also extract translatable strings directly from the source code:" msgstr "Voit myös poimia käännettävät merkkijonot suoraan lähdekoodista:" msgid "Extract from sources" msgstr "Poimi lähdekoodista" msgid "Configure source code extraction in Properties." msgstr "Konfiguroi lähdekoodista poimiminen asetuksissa." msgid "Sync" msgstr "Synkronoi" msgid "Synchronize the translation with Crowdin" msgstr "Synkronoi Crowdin-käännökseen" #. TRANSLATORS: This is titlebar of about dialog, "%s" is application name #. ("Poedit" here, but please use "%s") #, c-format msgid "About %s" msgstr "Tietoja: %s" #. TRANSLATORS: Title of the preferences window on Windows and Linux. "%s" is replaced with "Poedit" when running. #, c-format msgid "%s Preferences" msgstr "%sin asetukset" #. TRANSLATORS: macOS item in app menu msgid "Services" msgstr "Palvelut" #. TRANSLATORS: macOS item in app menu, %s is replaced with "Poedit" #, c-format msgid "Hide %s" msgstr "Kätke %s" #. TRANSLATORS: macOS item in app menu msgid "Hide Others" msgstr "Kätke muut" #. TRANSLATORS: macOS item in app menu msgid "Show All" msgstr "Näytä kaikki" #. TRANSLATORS: macOS item in app menu, %s is replaced with "Poedit" #, c-format msgid "Quit %s" msgstr "Lopeta %s" #. TRANSLATORS: macOS item in app menu msgid "Preferences…" msgstr "Asetukset…" msgid "Preferences..." msgstr "Asetukset..." #. TRANSLATORS: Title of a category in Windows task menu (right-click icon in taskbar) msgid "Recent" msgstr "" #. TRANSLATORS: Title of a category in Windows task menu (right-click icon in taskbar) msgid "Frequent" msgstr "" msgid "&Apply" msgstr "&Käytä" msgid "Apply" msgstr "Käytä" msgid "&Back" msgstr "&Takaisin" msgid "Back" msgstr "Takaisin" msgid "&Cancel" msgstr "&Peruuta" msgid "&Clear" msgstr "&Tyhjennä" msgid "Clear" msgstr "Tyhjennä" msgid "Copy" msgstr "Kopioi" msgid "Cu&t" msgstr "&Leikkaa" msgid "Cut" msgstr "Leikkaa" msgid "&Delete" msgstr "&Poista" msgid "&Quit" msgstr "&Lopeta" msgid "File" msgstr "Tiedosto" msgid "Help" msgstr "Ohje" msgid "&New" msgstr "&Uusi" msgid "&No" msgstr "&Ei" msgid "No" msgstr "Ei" msgid "&OK" msgstr "&Ok" msgid "Open…" msgstr "Avaa…" msgid "&Open..." msgstr "&Avaa..." msgid "Open..." msgstr "Avaa..." msgid "&Paste" msgstr "L&iitä" msgid "Paste" msgstr "Sijoita" msgid "Preferences" msgstr "Asetukset" msgid "&Redo" msgstr "&Tee uudelleen" msgid "Refresh" msgstr "Virkistä" msgid "&Save as" msgstr "T&allenna nimellä" msgid "Save as" msgstr "Tallenna nimellä" msgid "Select &All" msgstr "Valitse k&aikki" msgid "Select All" msgstr "Valitse kaikki" msgid "&Undo" msgstr "K&umoa" msgid "&Yes" msgstr "K&yllä" msgid "Yes" msgstr "Kyllä" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Shift+" msgstr "Vaihto+" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Enter" msgstr "Enter" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Up" msgstr "Ylänuoli" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Down" msgstr "Alanuoli" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Left" msgstr "Vasen" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Right" msgstr "Oikea" #. TRANSLATORS: Keyboard shortcut, must correspond to translation of "Ctrl+" msgid "ctrl" msgstr "ctrl" #. TRANSLATORS: Keyboard shortcut, must correspond to translation of "Alt+" msgid "alt" msgstr "alt" #. TRANSLATORS: Keyboard shortcut, must correspond to translation of "Shift+" msgid "shift" msgstr "vaihto" poedit-2.0.6/locales/fi.mo0000664000372000037200000012772513230132076012314 000000000000000#. . ..</A/JT/ // // /// ////0 00"01070=0F0Z0n0r0000000000 0 001 1 11-1C1Y1h111111111112$292N2e2|2222222 3:3:N3 333 3 33 33 344#4>4G4g444 44'445 +5657<56t55)55 5]6c6Av6I67 777" 7C7 ^7i7.q77777778838O8#d88888888(8(9 @9a9j9 {99/9 9999:":8:2W::::: ::;;;;;;;;; <<(<E;<"<?< <<*= /=<=O=KT="=5===> > %> 3>@>S> f> s>>>>>>>.>> ?u#????? ?? ?@<@"X@{@ @@*@!@!@'A@AEATdAAA A AAABB +B 5B CB PB]BlB{BBBB BBB B BBBCC CCC CD !D .D:D"?D;bD(DDDD E EE;E OEZEsEEE EEE:E !F</F.lFFFFFF*F!G'G8G IG TG_GHH8H QH]HnHHH#HH'H$H7I$MI%rIIIIIIIIJ J2!J TJaJwJJJJJJJJJJKK0KKKKnKERLL>L LLLL@M-VMM MM2MM MNN%#NIN^NsNN NNNNNNN NN OO O $O1O DO(OOxO~OzOPPP $P 0PeBeVe [e|eeee e"e,eef.f>fMfUfff?vffffgg#6gVZgggg gg hh0hAhHh Ph\hehHih5h7h ia*iiiii.i iij jj!4jVj /l;lLl6bllJl lm m!m*m?m Hm Rm`m imtm{mmmmm mmmmmn#n?nEnKn Tn`nunnnnnnnn n nnno! o!Bodolo{o ooooooo p p7pNpepnpvpppp!p qFqF[q q qqqqqqr%r;rPr`r~rrrrrr s's#7s[sts|s,s0s%s5t>t GtkStt[te,uu u uu!uuu v1vEv\vqvvv vv,v+ w6wLwkww wwwww-w-x.Dx sx~x xx1x xxxy)yx ̏ ֏ / 7Nc}   Ȑ Ґ  ( 8'C ku $*3I_qʒ$ْ" 8D Zfn}$Ɠٓ 2 OZ cqz  Ô͔,2_ {(ŕ $  -;Qbxb0K ^ itu  ʙؙ%4EKLG) ?ƜEL`k_%y\#< =]*+Ơ;'mEpۢLTc;FC7pd` Q [fzب,B T`'. @ K U_$p0ƪ 4AZSq$ū "1)Hor #;Pbx F2Jipp:!2Tpw").4[(QqNw$f,X%5Ru<  ^MwZ{3:?s)(JL3t 6+OEjA. $c_{'"7 EI O|8"sx=8du' F/&U|n K7()!hy0Y p4i Y^5K-`W:~!Qv 6*TDSX "q1![I2@vgz z*\'TM}&\H ;mU=l<l_%PR)>}SAj?$tWnF./]~be#D-a&+mpr9%`NyG h1#@-iBo9bk Hd >f]CJVV2+;C0ZaB#/x*orkGc ge,P0,L (modified) (unsaved)%d entry%d entries%d entry was pre-translated.%d entries were pre-translated.%d error%d errors%d issue with the translation found.%d issues with the translation found.%s Format%s Preferences%s format&About&About Poedit&Apply&Back&Bookmarks&Cancel&Clear&Close&Copy&Delete&Done and Next&Done and next&Edit&File&Find…&GNU gettext Manual&GNU gettext manual&Go&Group By Context&Group by context&Help&New&New…&Next >&Next Translation&Next translation&No&OK&Online Help&Online help&Open...&Open…&Paste&Preferences&Preferences…&Previous Translation&Previous translation&Properties…&Purge Deleted Translations&Purge deleted translations&Quit&Redo&Replace&Save&Save as&Show References&Show references&Undo&Untranslated Entries First&Untranslated entries first&Update from Sources&Update from sources&Validate Translations&Validate translations&View&Yes(0 new, 0 obsolete)(Learn more about GNU gettext)(New: %i, obsolete: %i)(Use default language)(requires Windows 8 or newer)< &PreviousDrag and Drop Folders Here or use the + buttonDrag and drop folders here or use the + buttonAbout %sAccountsAdd CommentAdd Files…Add Folders…Add commentAdd directory to the listAdd files…Add folders…Additional keywordsAdditional xgettext flags:AdvancedAdvanced Extraction Settings…Advanced extraction settingsAdvanced extraction settings…All Translation FilesAll commentsAlt+Always change focus to text input fieldAn item in input files list:An item in keywords list:AppearanceApplyAre you sure you want to delete the “%s” extractor?Are you sure you want to reset the translation memory?Automatically check for updatesAutomatically compile MO file when savingBackBase path:Beta versions contain the latest new features and improvements, but may be a bit less stable.Bring All to FrontBroken catalog file: plural form msgstr used without msgid_pluralBroken catalog file: singular form msgstr used together with msgid_pluralBrowseC&atalogC&learCancelCannot create temporary directory.Cannot execute program: %sCapitalizeCatalogCatalog modified. Do you want to save changes?Catalog propertiesCatalogs &ManagerCatalogs &managerCatalogs ManagerChange UI languageCharset:Check Document NowCheck Grammar With SpellingCheck Spelling While TypingCheck for Updates…Check for errors in the translationCheck for updates…Check spellingClearClear TranslationClear the commentClear translationCloseCollaborate on a Translation with OthersCollaborate on a translation with othersCommand to extract translations:Comment:Compile to MO…Compile to…Compiled Translation FilesConfigure source code extraction in Properties.ConfirmationCopyCopy From SingularCopy from Source TextCopy from singularCopy from source textCorrect Spelling AutomaticallyCouldn’t load file %s, it is probably corrupted.Couldn’t save file %s.Create New TranslationCreate new translationCreate new translations projectCrowdin errorCrowdin is an online localization management platform and collaborative translation tool. Poedit can seamlessly sync PO files managed at Crowdin.Ctrl+Cu&tCustom Extractors:Custom extractors:CutDatabase size on disk:DeleteDelete extractorDelete the projectDirectories:Display Entry &IDsDisplay entry &IDsDo you really want to do mass update of all catalogs in this project?Do you want to delete the project?Do you want to remove all translations that are no longer used?Don’t SaveDon’t Show AgainDon’t mark exact matches as needing workDon’t saveDon’t show againDownDownload a file from Crowdin project, translate and sync your changes back.Downloading latest translations…Downloading translations is disabled in this project.E&xitE&xport as HTML…EditEdit &CommentEdit &commentEdit CommentEdit a TranslationEdit a translationEdit commentEdit projectEdit the projectEditingEdit…Email:EnterEnter Full ScreenEntries in the catalog are probably incorrect.Entries with Errors FirstEntries with errors firstEntries with errors were marked in red in the list. Details of the error will be shown when you select such an entry.Error opening fileError opening file %s!Error saving catalogErrorsEverythingExcluded pathsExport as…Extract from sourcesExtract text from source files in the following directories:Extracting translatable strings…Extractor setupExtractorsFailed command: %sFailed to communicate with Poedit process.Failed to load extracted catalog.Failed to merge gettext catalogs.Failed to update translation memory: %sFileFile “%s” doesn’t exist.File “%s” is read-only and cannot be saved. Please save it under different name.File:FindFind NextFind PreviousFind and Replace…Find in commentsFind in source textsFind in translationsFind nextFind previousFix LanguageFix languageFix the HeaderFix the headerForm %iGeneralGo to Bookmark %iGo to bookmark %iHTML FilesHelpHide %sHide OthersHide SidebarHide Status BarHide this notification messageIDIf you continue with purging, all translations marked as deleted will be permanently removed. You will have to translate them again if they are added back in the future.Ignore caseImporting translations…Include beta versionsInformation about the translatorInstallInvalid fileInvocation:KeepLanguage Code or Name (e.g. en_GB)Language of the translation is the same as source language.Language of the translation isn’t set.Language of the translation:Language selectionLanguage team:Language:Last modifiedLearn About Gettext KeywordsLearn From Files…Learn MoreLearn More About CrowdinLearn about gettext keywordsLearn about plural formsLearn from files…Learn moreLearn more about CrowdinLeftLine %d of file “%s” is corrupted (not valid %s data).Line endings:List of extensions separated by semicolons (e.g. *.cpp;*.h):MO files can’t be directly edited in Poedit.Make Lower CaseMake Upper CaseMalformed header: “%s”Merging differences…MinimizeName of the project the translation is forName:Ne&xt UnfinishedNe&xt unfinishedNeeds WorkNeeds workNever let the list of strings take focus. If enabled, you must use Ctrl-arrows for keyboard navigation but you can also type text immediately, without having to press Tab to change focus.NewNew From &POT/PO File…New from &POT/PO file…New stringsNext Plural FormNext plural formNoNo Matches FoundNo entries could be pre-translated.No matches foundNo problems with the translation found.No references for the selected item.No translation projects listed in your Crowdin account.Not all plural forms are translated.Not authorized, please sign in again.Notes for translators:OKObsolete stringsOneOnly fill in exact matchesOpenOpen Crowdin translationOpen From Crowdin…Open RecentOpen an existing PO file and edit the translation.Open catalogOpen catalog templateOpen from Crowdin…Open in EditorOpen in editorOpen...Open…OptionsOtherP&revious UnfinishedP&revious unfinishedPO TranslationPO Translation FilesPOT Translation TemplatesPOT files are only templates and don’t contain any translations themselves. To make a translation, create a new PO file based on the template.PastePaste and Match StylePathsPlease open and edit the corresponding PO file instead. When you save it, the MO file will be updated as well.Please save the file first. This section cannot be edited until then.PluralPlural forms expression used by the catalog is unusual for %s.Plural forms:Plural:PoeditPoedit - Catalogs managerPoedit automatically fixed invalid content in the file “%s”.Poedit is an easy to use translations editor.Pre-&translate…Pre-translatePre-translatedPre-translated %u stringPre-translated %u stringsPre-translating…PreferencesPreferences...Preferences…Preserve formatting of existing filesPrevious Plural FormPrevious plural formPrevious source text:Project name and version:Project name:Project:PurgePurge deleted translationsQuitQuit %sRedoReferences:RefreshRemaining: %dReplaceReplace &AllReplace &allReplacement stringReplace…Required header Plural-Forms is missing.ResetReset translation memoryResetting the translation memory will irrevocably delete all stored translations from it. You can’t undo this operation.ReviewRightSaveSave &As…Save &as…Save asSave as…Save catalogSave changesSelect &AllSelect AllSelect directorySelect translation files to importSelect your preferred languageServicesSet Bookmark %iSet LanguageSet bookmark %iSet languageShift+Show AllShow SidebarShow Spelling and GrammarShow Status BarShow SubstitutionsShow or hide the sidebarShow sidebarShow status barShow summary after catalog updateSidebarSign InSign OutSign inSign in to CrowdinSign outSigned in as:SingularSingular:Smart Copy/PasteSmart DashesSmart LinksSmart QuotesSort by &File OrderSort by &SourceSort by &TranslationSort by &file orderSort by &sourceSort by &translationSource code charset:Source code extractors are used to find translatable strings in the source code files and extract them so that they can be translated.Source code not available.Source fileSource file occurrence:Source textSource text — %sSource text:Sources KeywordsSources PathsSources keywordsSources pathsSpeechSpellchecking is disabled, because the dictionary for %s isn’t installed.Spelling and GrammarStart SpeakingStop SpeakingStored translations:String to findSubstitutionsSuggestionsSuggestions are not available if the translation language is not set correctly. Other features, such as plural forms, may be affected as well.Supports all programming languages recognized by GNU gettext tools (PHP, C/C++, C#, Perl, Python, Java, JavaScript and others).SyncSync with CrowdinSynchronize the translation with CrowdinSyncingSyncing errorSyncing with Crowdin failed.Syntax error in Plural-Forms header ("%s").TMTake an existing PO file or POT template and create a new translation from it.Take translatable strings from an existing POT template.Team name and email address or URLText ReplacementThe TM doesn’t contain any strings similar to the content of this file. It is only effective for semi-automatic translations after Poedit learns enough from files that you translated manually.The catalog couldn’t be saved in “%s” charset as specified in catalog settings. It was saved in UTF-8 instead and the setting was modified accordingly.The file cannot be compiled into the MO format and used.The file cannot be opened.The file contained duplicate items, which is not allowed in PO files and would prevent the file from being used. Poedit fixed the issue, but you should review translations of any items marked as needing work and correct them if necessary.The file may be either corrupted or in a format not recognized by Poedit.The file was compiled into the MO format, but it will probably not work correctly.The file was saved safely and compiled into the MO format, but it will probably not work correctly.The file was saved safely, but it cannot be compiled into the MO format and used.The file was saved safely.The simplest way to fill this catalog is to update it from a POT:The translation doesn’t start with a space.The translation ends with a newline, but the source text doesn’t.The translation ends with a space, but the source text doesn’t.The translation is missing a newline at the end.The translation is missing a space at the end.The translation is ready for use, but %d entry is not translated yet.The translation is ready for use, but %d entries are not translated yet.The translation is ready for use.The translation starts with a space, but the source text doesn’t.The translations were marked as needing work, because they may be inaccurate. You should review them for correctness.There are no translations. That’s unusual.There was a problem formatting the file nicely (but it was saved all right).There were errors when loading the catalog. Some data may be missing or corrupted as the result.These settings affect internal formatting of PO files. Adjust them if you have specific requirements e.g. because of version control.These strings are no longer in the sources. Poedit will remove them from the catalog now.These strings were found in the sources but were not in the catalog. Poedit will add them to the catalog now.This file can only be edited in Crowdin’s web interface.This is the command used to launch the extractor. %o expands to the name of output file, %K to list of keywords, %F to list of input files, %C to charset flag (see below).This project has no files that can be translated in Poedit.This string was found in Poedit’s translation memory.This will be attached to the command line only if source code charset was given. %c expands to charset value.This will be attached to the command line once for each input file. %f expands to the filename.This will be attached to the command line once for each keyword. %k expands to the keyword.TotalTransformationsTranslatable entries aren’t added manually in the Gettext system, but are automatically extracted from source code. This way, they stay up to date and accurate. Translators typically use PO template files (POTs) prepared for them by the developer.Translated: %d of %d (%d %%)Translation LanguageTranslation MemoryTranslation Needs &WorkTranslation PropertiesTranslation needs &workTranslation propertiesTranslation suggestions:Translation — %sTranslation:Translations couldn’t be updated from the source code, because no code was found in the location specified in the catalog’s Properties.TwoUTF-8 (recommended)UndoUnhandled exception occurred: %sUnix (recommended)UntransUpUpdateUpdate allUpdate all catalogs in the projectUpdate catalog - synchronize it with sourcesUpdate from &POT File…Update from &POT file…Update from POTUpdate summaryUpdatesUpdating catalogUpdating failedUpdating the catalog failed. Click on 'Details >>' for details.Updating user information…Uploading translations…Use custom expressionUse custom list font:Use custom text fields font:Use default rules for this languageUse these keywords (function names) to recognize translatable strings in source files:Use translation memoryValidateValidation resultsVersion %sWaiting for authentication…Welcome to PoeditWhat is Crowdin?Whole words onlyWindowWindowsWrap aroundWrap at:YesYou can also extract translatable strings directly from the source code:You can’t drop more than one file on Poedit window.You must restart Poedit for this change to take effect.Your NameYour name and email address are only used to set the Last-Translator header of GNU gettext files.ZeroZoomaltctrldon’t delete temporary files (for debugging)e.g. nplurals=2; plural=(n > 1);handle a poedit:// URIshiftunknown languageyour_email@example.com“%s” is not a valid POT file.Project-Id-Version: poedit Report-Msgid-Bugs-To: help@poedit.net POT-Creation-Date: 2017-12-05 15:52+0100 PO-Revision-Date: 2017-09-21 11:19-0400 Last-Translator: vslavik Language-Team: Finnish Language: fi_FI MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=(n != 1); X-Generator: crowdin.com X-Crowdin-Project: poedit X-Crowdin-Language: fi X-Crowdin-File: /locales/poedit.pot (muokattu) (tallentamaton)%d viesti%d viestiä%d kohta esikäännettiin.%d kohtaa esikäännettiin.%d virhe%d virhettäKäännöksestä löytyi %d ongelma.Käännöksestä löytyi %d ongelmaa.%s-muotoilu%sin asetukset%s-muotoilu&Tietoja&Tietoja Poeditistä&Käytä&Takaisin&Kirjanmerkit&Peruuta&Tyhjennä&Sulje&Kopioi&Poista&Valmis ja seuraava&Valmis ja seuraava&Muokkaa&Tiedosto&Etsi…&GNU gettextin manuaali&GNU gettextin manuaali&Siirry&Ryhmittele konteksteittain&Ryhmittele konteksteittain&Ohje&Uusi&Uusi…&Seuraava >&Seuraava käännös&Seuraava käännös&Ei&Ok&Ohje verkossa&Ohje verkossa&Avaa...&Avaa…L&iitäA&setukset&Asetukset…&Edellinen käännös&Edellinen käännösOm&inaisuudet…P&uhdista poistetut käännöksetP&uhdista poistetut käännökset&Lopeta&Tee uudelleen&KorvaaTa&llennaT&allenna nimellä&Näytä viittaukset&Näytä viittauksetK&umoaKääntämättö&mät ensinKääntämättö&mät ensinP&äivitä lähteestäP&äivitä lähteestä&Validoi käännökset&Validoi käännökset&NäytäK&yllä(0 uutta, 0 vanhentunutta)(Lisätietoja GNU gettextistä)(Uusi: %i, vanhentunut: %i)(Käytä oletuskieltä)(vaatii Windows 8:n tai uudemman)< &EdellinenVedä ja pudota kansioita tähän tai käytä +-painikettaVedä ja pudota kansioita tähän tai käytä +-painikettaTietoja: %sTilitLisää kommenttiLisää tiedostoja…Lisää kansioita…Lisää kommenttiLisää kansio listaanLisää tiedostoja…Lisää kansioita…LisäavainsanatLisävalitsimet xgettextille:LisäasetuksetPoiminnan lisäasetukset…Poiminnan lisäasetuksetPoiminnan lisäasetukset…Kaikki käännöstiedostotKaikki kommentitAlt+Tarkenna aina tekstinsyöttökenttäänKohde syöttötiedostojen listassa:Kohde avainsanalistassa:UlkoasuKäytäHaluatko varmasti poistaa “%s“-poimimen?Haluatko varmasti tyhjentää käännösmuistin?Tarkista päivitykset automaattisestiMuunna automaattisesti MO-tiedostoksi tallennettaessaTakaisinKantapolku:Beta-versiot sisältävät uusimmat ominaisuudet ja parannukset, mutta saattavat olla hieman epävakaampia.Tuo kaikki eteenRikkinäinen katalogitiedosto: monikkomuotoista msgstr:ää käytetty ilman msgid_plural:iaRikkinäinen katalogitiedosto: yksikkomuotoista msgstr:ää käytetty yhdessä msgid_plural:in kanssaSelaaK&atalogiT&yhjennäPeruutaTilapäiskansiota ei voida luoda.Ei voida suorittaa ohjelmaa: %sIsot alkukirjaimetKatalogiKatalogia muokattu. Haluatko tallentaa muutokset?Katalogin ominaisuudetKatalo&gien hallintaKatalo&gien hallintaKatalogien hallintaVaihda käyttöliittymän kieliMerkistö:Tarkista dokumentti nytTarkista kielioppi oikeinkirjoituksen ohellaTarkista oikeinkirjoitus näppäilyn aikanaEtsi päivityksiä…Tarkista käännöksen virheetEtsi päivityksiä…Tarkista oikeinkirjoitusTyhjennäTyhjennä käännösTyhjennä kommenttiTyhjennä käännösSuljeTee käännöstä yhteistyönä muiden kanssaTee käännöstä yhteistyönä muiden kanssaKomento käännettävien tekstien poimimiseen:Kommentti:Muunna MO-muotoon…Muunna…Muunnetut käännöstiedostotKonfiguroi lähdekoodista poimiminen asetuksissa.VahvistusKopioiKopioi yksiköstäKopioi lähdetekstistäKopioi yksiköstäKopioi lähdetekstistäKorjaa oikeinkirjoitus automaattisestiTiedostoa %s ei voitu ladata, se on todennäköisesti vioittunut.Tiedostoa %s ei voitu tallentaa.Luo uusi käännösLuo uusi käännösLuo uusi käännösprojektiCrowdin-virheCrowdin on verkossa toimiva lokalisoinninhallinta-alusta ja yhteistyökalu kääntämiseen. Poedit osaa saumattomasti synkronoida Crowdinissa hallittuja PO-tiedostoja.Ctrl+&LeikkaaMukautetut poimimet:Mukautetut poimimet:LeikkaaTietokannan koko levyllä:PoistaPoista poiminPoista projektiKansiot:Näytä viestien &ID:tNäytä viestien &ID:tHaluatko todella massapäivittää tämän projektin kaikki katalogit?Haluatko todella poistaa projektin?Haluatko todella poistaa kaikki käännökset, joita ei enää käytetä?Älä tallennaÄlä näytä uudelleenÄlä merkitse tarkkoja vastineita keskeneräisiksiÄlä tallennaÄlä näytä uudelleenAlanuoliLataa tiedosto Crowdin-projektista, käännä ja synkronoi muutoksesi takaisin.Ladataan uusimmat käännökset…Käännösten lataus on poistettu käytöstä tässä projektissa.&Lopeta&Vie HTML-muodossa…MuokkaaMuokkaa &kommenttiaMuokkaa &kommenttiaMuokkaa kommenttiaMuokkaa käännöstäMuokkaa käännöstäMuokkaa kommenttiaMuokkaa projektiaMuokkaa projektiaMuokkausMuokkaa…Sähköposti:EnterSiirry koko näytön tilaanKatalogin merkinnät ovat todennäköisesti virheelliset.Virheitä sisältävät ensinVirheitä sisältävät ensinVirheelliset viestit on merkitty listassa punaisella värillä. Tällaisen viestin valitsemalla näytetään tarkemmat tiedot virheestä.Virhe tiedoston avaamisessaVirhe tiedostoa %s avattaessa!Virhe katalogia tallennettaessaVirheetKaikkiOhitettavat polutVie nimellä…Poimi lähdekoodistaPura tekstit lähdekoodeista, jotka ovat seuraavissa kansioissa:Poimitaan käännettävät merkkijonot…Poimimen asetuksetPoimimetEpäonnistunut komento: %sKommunikointi Poedit-prosessin kanssa epäonnistui.Poimitun katalogin lataaminen epäonnistui.Gettext-katalogien yhdistäminen epäonnistui.Käännösmuistin päivitys epäonnistui: %sTiedostoTiedostoa ”%s” ei ole olemassa.Tiedosto ”%s” voidaan vain lukea, mutta ei tallentaa. Tallenna toisella nimellä.Tiedosto:EtsiEtsi seuraavaEtsi edellinenEtsi ja korvaa…Hae kommenteistaEtsi lähdeteksteistäEtsi käännöksistäEtsi seuraavaEtsi edellinenKorjaa kieliKorjaa kieliKorjaa otsakeKorjaa otsakeMuoto %iYleisetSiirry kirjanmerkkiin %iSiirry kirjanmerkkiin %iHTML-tiedostotOhjeKätke %sKätke muutPiilota sivupalkkiPiilota tilariviPiilota tämä ilmoitusIDJos jatkat puhdistamista, kaikki poistetuiksi merkityt käännökset hävitetään lopullisesti. Sinun täytyy kääntää ne uudestaan, mikäli ne tulevaisuudessa palaavat käyttöön.Älä huomioi kirjainkokoaTuodaan käännöksiä…Tarkista myös beta-versiotTietoja kääntäjästäAsennaVirheellinen tiedostoSuoritus:PidäKielen koodi tai nimi (esim. fi_FI)Käännöksen kieli on sama kuin lähdekieli.Käännöksen kieltä ei ole asetettu.Käännöksen kieli:Kielen valintaKäännöstiimi:Kieli:Muokattu viimeksiLisätietoja Gettextin avainsanoistaOpi tiedostoista…LisätietojaLisätietoja CrowdinistaLisätietoja Gettextin avainsanoistaLisätietoja monikkomuodoistaOpi tiedostoista…LisätietojaLisätietoja CrowdinistaVasenRivi %d tiedostossa ”%s” on korruptoitunut (ei kelvollista %s-dataa).Rivinvaihdot:Lista tiedostopäätteistä eroteltuna puolipisteillä (esim. *.cpp;*.h):MO-tiedostoja ei voi suoraan muokata Poeditillä.Muuta pienaakkosiksiMuuta suuraakkosiksiVääränmuotoinen otsake: ”%s”Yhdistetään eroavaisuuksia…PienennäProjektin nimi, jolle tämä käännös on tarkoitettuNimi:Se&uraava keskeneräinenSe&uraava keskeneräinenKeskeneräinenKeskeneräinenÄlä koskaan tarkenna merkkijonolistaan. Jos tämä on käytössä, näppäimistöä käytettäessä liikkumiseen täytyy käyttää Ctrl-nuolia, mutta toisaalta tekstiä voi kirjoittaa välittömästi, ilman että tarvitsee painaa sarkainta tarkennuksen vaihtamiseksi.UusiUusi &POT/PO-tiedostosta…Uusi &POT/PO-tiedostosta…Uudet merkkijonotSeuraava monikkomuotoSeuraava monikkomuotoEiVastaavuuksia ei löydyYhtään kohtaan ei voitu esikääntää.Vastaavuuksia ei löydyKäännöksestä ei löytynyt ongelmia.Ei viittauksia valittuun kohteeseen.Crowdin-tiliisi ei liity käännösprojekteja.Kaikkia monikkomuotoja ei ole käännetty.Ei valtuutusta; kirjaudu uudelleen.Huomautukset kääntäjille:OKVanhentunut merkkijonoYksiTäytä vain tarkat täsmäävyydetAvaaAvaa Crowdin-käännösAvaa Crowdinista…Avaa äskettäinenAvaa olemassa oleva PO-tiedosto ja muokkaa käännöstä.Avaa katalogiAvaa katalogimallipohjaAvaa Crowdinista…Avaa editorissaAvaa editorissaAvaa...Avaa…ValinnatMuutE&dellinen keskeneräinenE&dellinen keskeneräinenPO-käännösPO-käännöstiedostotPOT-käännöspohjatPOT-tiedostot ovat pelkkiä käännöspohjia, eivätkä itse sisällä käännöksiä. Tee käännös luomalla uusi PO-tiedosto käännöspohjan perusteella.SijoitaLiitä ja sovita tyyliinPolutAvaa ja muokkaa sen sijaan vastaavaa PO-tiedostoa. Kun se tallennetaan, MO-tiedosto päivittyy samalla.Tallenna tiedosto ensin. Tätä osaa ei voi muokata sitä ennen.MonikkoKatalogissa käytetty Plural-Forms-lauseke on epätavallinen kielelle %s.Monikkomuodot:Monikko:PoeditPoedit - Katalogien hallintaPoedit korjasi automaattisesti tiedoston ”%s” virheellisen sisällön.Poedit on helppokäyttöinen käännöseditori.Esi&käännä…EsikäännäEsikäännettyEsikäännettiin %u merkkijonoEsikäännettiin %u merkkijonoaEsikäännetään…AsetuksetAsetukset...Asetukset…Säilytä olemassa olevien tiedostojen muotoiluEdellinen monikkomuotoEdellinen monikkomuotoAiempi lähdeteksti:Projektin nimi ja versio:Projektin nimi:Projekti:PuhdistaPuhdista poistetut käännöksetLopetaLopeta %sTee uudelleenViitteet:VirkistäJäljellä: %dKorvaaKorvaa k&aikkiKorvaa k&aikkiKorvaava teksti&Korvaa…Pakollinen otsake Plural-Forms puuttuu.TyhjennäTyhjennä käännösmuistiKäännösmuistin tyhjentäminen tuhoaa kaikki sen sisältämät käännökset peruuttamattomasti. Tätä toimenpidettä ei voi perua.KatselmointiOikeaTallennaTallenna &nimellä…Tallenna &nimellä…Tallenna nimelläTallenna nimellä…Tallenna katalogiTallenna muutoksetValitse k&aikkiValitse kaikkiValitse kansioValitse tuotavat käännöstiedostotValitse ensisijainen kieliPalvelutAseta kirjanmerkki %iAseta kieliAseta kirjanmerkki %iAseta kieliVaihto+Näytä kaikkiNäytä sivupalkkiNäytä oikeinkirjoitus ja kielioppiNäytä tilariviNäytä korvauksetNäytä tai piilota sivupalkkiNäytä sivupalkkiNäytä tilariviNäytä yhteenveto katalogin päivityksen jälkeenSivupalkkiKirjauduKirjaudu ulosKirjauduKirjaudu CrowdiniinKirjaudu ulosKirjautuneena käyttäjänä:YksikköYksikkö:Älykäs kopiointi/liittäminenÄlykkäät yhdysmerkitÄlykkäät linkitÄlykkäät lainausmerkitJärjestä &tiedostojen järjestyksen mukaanJärjestä läht&een mukaanJärjestä &käännöksen mukaanJärjestä &tiedostojärjestyksen mukaanJärjestä läht&een mukaanJärjestä &käännöksen mukaanLähdekoodin merkistö:Lähdekoodipoimimia käytetään käännettävien tekstien etsimiseen lähdekooditiedostoista sekä näiden tekstien poimimiseen käännöksen tekemistä varten.Lähdekoodi ei ole käytettävissä.LähdetiedostoLähdetiedoston esiintymä:LähdetekstiLähdeteksti — %sLähdeteksti:Lähteiden avainsanatLähteiden polutLähteiden avainsanatLähteiden polutPuheOikeinkirjoituksen tarkistus on poissa käytöstä, koska kielelle %s ei ole asennettu sanakirjaa.Oikeinkirjoitus ja kielioppiAloita puhuminenLopeta puhuminenTallennetut käännökset:Etsittävä tekstiKorvauksetEhdotuksetEhdotukset eivät ole käytettävissä, jos käännöksen kieltä ei ole asetettu oikein. Muut ominaisuudet, kuten monikkomuodot, voivat myös toimia väärin.Tukee kaikkia GNU gettextin tunnistamia ohjelmointikieliä (PHP, C/C++, C#, Perl, Python, Java, JavaScript ja muita).SynkronoiSynkronoi CrowdiniinSynkronoi Crowdin-käännökseenSynkronoidaanSynkronointivirheSynkronointi Crowdiniin epäonnistui.Kielioppivirhe Plural-Forms -otsakkeessa (”%s”).MuistiLuo uusi käännös olemassa olevasta PO-tiedostosta tai POT-mallipohjasta.Poimi käännettävät merkkijonot olemassa olevasta POT-mallipohjasta.Tiimin nimi ja sähköpostiosoite tai URLTekstin korvausKäännösmuisti ei sisällä yhtään tämän tiedoston sisältöä muistuttavaa merkkijonoa. Käännösmuisti toimii tehokkaasti puoliautomaattiseen kääntämiseen vasta kun Poedit on oppinut tarpeeksi manuaalisesti käännetyistä tiedostoista.Katalogia ei voitu tallentaa katalogin ominaisuuksissa on määriteltyssä ”%s”-merkistössä. Se tallennettiin sen sijaan UTF-8-muodossa ja asetusta muutettiin vastaavasti.Tiedostoa ei voi muuntaa MO-muotoon eikä sitä voi käyttää.Tiedostoa ei voi avata.Tiedosto sisälsi kahdenkertaisia kohtia, mikä on kiellettyä PO-tiedostoissa ja estäisi tiedoston käytön. Poedit korjasi ongelman, mutta käännöksestä on syytä käydä läpi kaikki keskeneräisiksi merkityt viestit ja tarvittaessa korjata ne.Tiedosto voi olla joko vioittunut tai muodossa, jota Poedit ei tunne.Tiedosto muunnettiin MO-muotoon, mutta se ei todennäköisesti toimi oikein.Tiedosto tallennettiin turvallisesti ja muunnettiin MO-muotoon, mutta se ei todennäköisesti toimi oikein.Tiedosto tallennettiin turvallisesti, mutta sitä ei voida muuntaa MO-muotoon eikä käyttää.Tiedosto tallennettiin turvallisesti.Yksinkertaisin tapa tämän katalogin täyttämiseen on sen päivittäminen POT-tiedostosta:Käännös ei ala välilyönnillä.Käännös päättyy rivinvaihtoon toisin kuin lähdeteksti.Käännös päättyy välilyöntiin toisin kuin lähdeteksti.Käännöksen lopusta puuttuu rivinvaihto.Käännöksen lopusta puuttuu välilyönti.Käännös on käyttövalmis, mutta %d viesti on vielä kääntämättä.Käännös on käyttövalmis, mutta %d viestiä on vielä kääntämättä.Käännös on käyttövalmis.Käännös alkaa välilyönnillä toisin kuin lähdeteksti.Käännökset merkittiin keskeneräisiksi, sillä ne voivat olla virheellisiä. Ne on syytä käydä läpi oikeellisuuden varmistamiseksi.Käännöksiä ei ole. Sepä erikoista.Tiedoston muotoilemisessa oli ongelma (mutta sen tallennus onnistui).Katalogia ladattaessa kohdattiin virheitä. Osa tiedoista saattaa sen seurauksena puuttua tai olla vioittunutta.Nämä asetukset vaikuttavat PO-tiedostojen sisäiseen muotoiluun. Niitä voi tarvittaessa muuttaa esim. versionhallinnasta johtuvien vaatimusten vuoksi.Nämä merkkijonot eivät ole enää lähteissä. Poedit poistaa ne nyt katalogista.Nämä merkkijonot löytyivät lähteestä, mutta ei katalogista. Poedit lisää ne nyt katalogiin.Tätä tiedostoa voi muokata vain Crowdinin web-käyttöliittymässä.Tätä komentoa käytetään poimimen suorittamiseen. %o laajennetaan tulostiedoston nimeksi, %K avainsana- listaksi, %F syötetiedostojen listaksi, %C merkistölipuksi (ks. alempaa).Tässä projektissa ei ole Poeditillä käännettäviä tiedostoja.Tämä merkkijono löytyi Poeditin käännösmuistista.Tämä liitetään komentoriville vain, jos kohteen koodimerkistö on annettu. %c laajennetaan merkistöarvoksi.Tämä liitetään komentoriville kerran kuhunkin syötetiedostoon. %f laajennetaan tiedostonimeksi.Tämä liitetään komentojen listaan kerran kuhunkin avainsanaan. %f laajennetaan avainsanaksi.YhteensäMuunnoksetKäännettäviä viestejä ei Gettext-järjestelmässä lisätä manuaalisesti, vaan ne poimitaan automaattisesti lähdekoodista. Näin ne pysyvät ajan tasalla ja tarkkoina. Kääntäjät käyttävät yleensä kehittäjän heitä varten luomia PO-mallipohjatiedostoja (POT).Käännetty: %d/%d (%d %%)Käännöksen kieliKäännösmuistiKäännös on &keskeneräinenKäännöksen ominaisuudetKäännös on &keskeneräinenKäännöksen ominaisuudetKäännösehdotukset:Käännös — %sKäännös:Käännösten päivittäminen lähdekoodista ei onnistunut, koska katalogin ominaisuuksissa annetusta sijainnista ei löytynyt koodia.KaksiUTF-8 (suositeltu)KumoaTapahtui käsittelemätön poikkeus: %sUnix (suositeltu)Ei käännYlänuoliPäivitäPäivitä kaikkiPäivitä projektin kaikki katalogitPäivityskatalogi - synkronoi se lähteen kanssaPäivitä &POT-tiedostosta…Päivitä &POT-tiedostosta…Päivitä POT-tiedostostaPäivityksen yhteenvetoPäivityksetPäivitetään katalogiaPäivitys epäonnistuiKatalogin päivitys epäonnistui. Valitse ”Lisää >>” saadaksesi lisätietoja.Päivitetään käyttäjätietoja…Lähetetään käännöksiä…Käytä omaa lausekettaListan fontti:Tekstikenttien fontti:Käytä tämän kielen oletussääntöjäKäytä näitä avainsanoja (funktion nimiä) tunnistettaessa lähdetiedostoista käännettäviä merkkijonoja:Käytä käännösmuistiaValidoiValidoinnin tuloksetVersio %sOdotetaan todennusta…Tervetuloa PoeditiinMikä on Crowdin?Vain kokonaiset sanatIkkunaWindowsJatka alustaRivitys:KylläVoit myös poimia käännettävät merkkijonot suoraan lähdekoodista:Poedit-ikkunaan voi pudottaa vain yhden tiedoston.Poedit täytyy käynnistää uudestaan muutoksien käyttöön ottamiseksi.NimesiNimeäsi ja sähköpostiosoitettasi käytetään ainoastaan GNU-gettext-tiedostojen Last-Translator-otsakkeessa.NollaZoomaaaltctrlälä poista tilapäistiedostoja (vianjäljitystä varten)esim. nplurals=2; plural=(n > 1);käsittele poedit://-osoitevaihtotuntematon kielisähköpostiosoitteesi@example.com”%s” ei ole kelvollinen POT-tiedosto.poedit-2.0.6/locales/gl.po0000664000372000037200000015304113230132076012311 00000000000000msgid "" msgstr "" "Project-Id-Version: poedit\n" "Report-Msgid-Bugs-To: help@poedit.net\n" "POT-Creation-Date: 2017-12-05 15:52+0100\n" "PO-Revision-Date: 2017-12-05 09:50-0500\n" "Last-Translator: vslavik \n" "Language-Team: Galician\n" "Language: gl_ES\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: crowdin.com\n" "X-Crowdin-Project: poedit\n" "X-Crowdin-Language: gl\n" "X-Crowdin-File: /locales/poedit.pot\n" msgid "Hide this notification message" msgstr "Ocultar esta mensaxe de notificación" msgid "Don’t Show Again" msgstr "Non mostrar novamente" msgid "Don’t show again" msgstr "Non mostrar novamente" #, c-format msgid "(New: %i, obsolete: %i)" msgstr "(Novas: %i, obsoletas: %i)" msgid "Updating catalog" msgstr "Actualizando o catálogo" msgid "Collecting source files…" msgstr "Recompilando ficheiros orixe…" msgid "Extracting translatable strings…" msgstr "Extraendo cadeas traducíbeis…" msgid "Failed to load extracted catalog." msgstr "Produciuse un erro ao cargar o catálogo extraído." msgid "Merging differences…" msgstr "Fusionando as diferenzas…" #, c-format msgid "“%s” is not a valid POT file." msgstr "«%s» non é un ficheiro POT correcto." #, c-format msgid "%i line of file “%s” was not loaded correctly." msgid_plural "%i lines of file “%s” were not loaded correctly." msgstr[0] "Non se cargou de maneira correcta %i liña do ficheiro «%s»." msgstr[1] "Non se cargaron de maneira correcta %i liñas do ficheiro «%s»." #, c-format msgid "Line %d of file “%s” is corrupted (not valid %s data)." msgstr "A liña %d do ficheiro «%s» está danada (datos %s non válidos)." #, c-format msgid "Malformed header: “%s”" msgstr "Cabeceira mal formada: «%s»" msgid "" "Broken catalog file: singular form msgstr used together with msgid_plural" msgstr "" "O ficheiro do catálogo está corrompido: emprégase a foma singular de msgstr " "xunto con msgid_plural" msgid "Broken catalog file: plural form msgstr used without msgid_plural" msgstr "" "O ficheiro do catálogo está corrompido: emprégase a forma plural de msgstr " "sen existir msgid_plural" msgid "" "There were errors when loading the catalog. Some data may be missing or " "corrupted as the result." msgstr "" "Producíronse erros ao cargar o catálogo. Pode que se perderan ou corromperan " "algúns dos datos." #, c-format msgid "Couldn’t load file %s, it is probably corrupted." msgstr "Non foi posible cargar o ficheiro %s, probablemente estea corrompido." #, c-format msgid "" "File “%s” is read-only and cannot be saved.\n" "Please save it under different name." msgstr "" "O ficheiro «%s» é de só lectura e non é posible gardalo.\n" "Gárdeo cun nome diferente." #, c-format msgid "Couldn’t save file %s." msgstr "Non foi posible gardar o ficheiro %s." msgid "" "There was a problem formatting the file nicely (but it was saved all right)." msgstr "" "Produciuse un problema ao formatar o ficheiro (pero gardouse correctamente)." #, c-format msgid "" "The catalog couldn’t be saved in “%s” charset as specified in catalog " "settings.\n" "\n" "It was saved in UTF-8 instead and the setting was modified accordingly." msgstr "" "Non foi posible gardar o catálogo co xogo de caracteres «%s» tal como se " "especificou nos axustes do catálogo.\n" "\n" "Gardouse en UTF-8 e en consecuencia modificouse o axuste." msgid "Error saving catalog" msgstr "Produciuse un erro ao gardar o catálogo" msgid "PO Translation Files" msgstr "Ficheiros de tradución PO" msgid "POT Translation Templates" msgstr "Modelos de tradución POT" msgid "All Translation Files" msgstr "Todos os ficheiros de tradución" msgid "(Use default language)" msgstr "(Usar idioma predeterminado)" msgid "Select your preferred language" msgstr "Seleccione o seu idioma preferido" msgid "Language selection" msgstr "Selección de idioma" msgid "You must restart Poedit for this change to take effect." msgstr "Debe reiniciar Poedit para que este cambio teña efecto." msgid "Syncing" msgstr "Sincronizando" #. TRANSLATORS: %s is a cloud destination, e.g. "Crowdin" or ftp.wordpress.com etc. #, c-format msgid "Syncing with %s…" msgstr "Sincronizando con %s…" #. TRANSLATORS: %s is a cloud destination, e.g. "Crowdin" or ftp.wordpress.com etc. #, c-format msgid "Syncing with %s failed." msgstr "Produciuse un fallo ao sincronizar con %s." msgid "Syncing error" msgstr "Erro ao sincronizar" msgid "Downloading translations is disabled in this project." msgstr "A descarga de traducións está deshabilitada neste proxecto." msgid "Not authorized, please sign in again." msgstr "Acción non autorizada; accede de novo." msgid "" "Crowdin is an online localization management platform and collaborative " "translation tool. Poedit can seamlessly sync PO files managed at Crowdin." msgstr "" "Crowdin é unha plataforma de xestión de localización e tradución " "colaborativas en liña. Poedit pode sincronizar ficheiros PO xestionados con " "Crowdin." msgid "Sign In" msgstr "Acceder" msgid "Sign in" msgstr "Acceder" msgid "Sign Out" msgstr "Saír" msgid "Sign out" msgstr "Saír" msgid "Waiting for authentication…" msgstr "Agardando a autenticación…" msgid "Updating user information…" msgstr "Actualizando a información do usuario…" msgid "Signed in as:" msgstr "Sesión iniciada como:" msgid "Learn More About Crowdin" msgstr "Máis información sobre Crowdin" msgid "Learn more about Crowdin" msgstr "Máis información sobre Crowdin" msgid "Sign in to Crowdin" msgstr "Acceder a Crowdin" msgid "Open Crowdin translation" msgstr "Abrir tradución de Crowdin" msgid "Project:" msgstr "Proxecto:" msgid "Language:" msgstr "Idioma:" msgid "File:" msgstr "Ficheiro:" msgid "No translation projects listed in your Crowdin account." msgstr "Ningún proxecto de tradución listado na súa conta de Crowdin." msgid "This project has no files that can be translated in Poedit." msgstr "Este proxecto non ten ficheiros para traducir en Poedit." msgid "This file can only be edited in Crowdin’s web interface." msgstr "Este ficheiro só se pode editar desde a interface web de Crowdin." msgid "Downloading latest translations…" msgstr "Descargando as traducións máis recentes…" msgid "Syncing with Crowdin failed." msgstr "Erro ao sincronizar con Crowdin." msgid "Crowdin error" msgstr "Erro de Crowdin" msgid "Uploading translations…" msgstr "Cargando as traducións…" msgid "&Copy" msgstr "&Copiar" msgid "Learn more" msgstr "Aprender máis" msgid "Learn More" msgstr "Saber máis" msgid "&Help" msgstr "&Axuda" msgid "MO files can’t be directly edited in Poedit." msgstr "Os ficheiros MO non se poden editar directamente en Poedit." msgid "Error opening file" msgstr "Erro ao abrir o ficheiro" msgid "" "Please open and edit the corresponding PO file instead. When you save it, " "the MO file will be updated as well." msgstr "" "Por favor, abra e edite no seu lugar o ficheiro PO correspondente. Cando o " "garde, o ficheiro MO actualizarase tamén." msgid "don’t delete temporary files (for debugging)" msgstr "non eliminar os ficheiros temporais (para depuración)" msgid "handle a poedit:// URI" msgstr "manexar un URI de poedit://" msgid "go to item at given line number" msgstr "ir ao elemento dun número de liña determinado" msgid "Failed to communicate with Poedit process." msgstr "Erro de comunicación co proceso do Poedit." #, c-format msgid "Unhandled exception occurred: %s" msgstr "Produciuse unha excepción non controlada: %s" msgid "Open catalog" msgstr "Abrir catálogo" #, c-format msgid "File “%s” doesn’t exist." msgstr "O ficheiro «%s» non existe." msgid "Poedit is an easy to use translations editor." msgstr "Poedit é un editor de traducións fácil de usar." msgid "Catalogs Manager" msgstr "Xestor de catálogos" msgid "Check for Updates…" msgstr "Buscar actualizacións…" msgid "&Edit" msgstr "&Editar" msgid "Undo" msgstr "Desfacer" msgid "Redo" msgstr "Refacer" msgid "Paste and Match Style" msgstr "Pegar e coincidir estilo" msgid "Delete" msgstr "Eliminar" msgid "Spelling and Grammar" msgstr "Ortografía e gramática" msgid "Show Spelling and Grammar" msgstr "Mostrar ortografía e gramática" msgid "Check Document Now" msgstr "Comprobar documento agora" msgid "Check Spelling While Typing" msgstr "Revisar ortografía mentres se escribe" msgid "Check Grammar With Spelling" msgstr "Revisar gramática e ortografía" msgid "Correct Spelling Automatically" msgstr "Corrixir ortografía automaticamente" msgid "Substitutions" msgstr "Substitucións" msgid "Show Substitutions" msgstr "Mostrar substitucións" msgid "Smart Copy/Paste" msgstr "Copiar/pegar intelixente" msgid "Smart Quotes" msgstr "Comiñas intelixentes" msgid "Smart Dashes" msgstr "Trazos intelixentes" msgid "Smart Links" msgstr "Ligazóns intelixentes" msgid "Text Replacement" msgstr "Substitución de texto" msgid "Transformations" msgstr "Transformacións" msgid "Make Upper Case" msgstr "Converter a maiúsculas" msgid "Make Lower Case" msgstr "Converter a minúsculas" msgid "Capitalize" msgstr "Maiúsculas" msgid "Speech" msgstr "Fala" msgid "Start Speaking" msgstr "Comezar a falar" msgid "Stop Speaking" msgstr "Deixar de falar" msgid "&View" msgstr "&Ver" msgid "Enter Full Screen" msgstr "Modo de pantalla completa" msgid "Window" msgstr "Xanela" msgid "Minimize" msgstr "Minimizar" msgid "Zoom" msgstr "Zoom" msgid "Bring All to Front" msgstr "Traer todo á fronte" #. TRANSLATORS:File kind displayed in Finder/Explorer msgid "PO Translation" msgstr "Tradución PO" msgid "The file cannot be opened." msgstr "Non se pode abrir o ficheiro." msgid "Invalid file" msgstr "Ficheiro non válido" msgid "" "The file may be either corrupted or in a format not recognized by Poedit." msgstr "" "Pode ser que o ficheiro estea danado ou nun formato que Poedit non recoñece." msgid "You can’t drop more than one file on Poedit window." msgstr "Non pode arrastrar máis dun ficheiro a unha xanela de Poedit." #, c-format msgid "File “%s” is not a message catalog." msgstr "O ficheiro «%s» non é un catálogo de mensaxes." msgid "Poedit" msgstr "Poedit" msgid "&File" msgstr "&Ficheiro" msgid "&Go" msgstr "&Ir a" #. TRANSLATORS: %s is language name in its basic form (as you #. would see e.g. in a list of supported languages). You may need #. to rephrase it, e.g. to an equivalent of "for language %s". #, c-format msgid "" "Spellchecking is disabled, because the dictionary for %s isn’t installed." msgstr "" "Desactivouse a revisión ortográfica porque non está instalado o dicionario " "para o %s." msgid "Install" msgstr "Instalar" msgid "Catalog modified. Do you want to save changes?" msgstr "Modificouse o catálogo. Desexa gardar as modificacións?" msgid "Save changes" msgstr "Gardar os cambios" msgid "Your changes will be lost if you don’t save them." msgstr "Os cambios perderanse a menos que vostede os garde." msgid "Save" msgstr "Gardar" msgid "Don’t save" msgstr "Non gardar" msgid "Don’t Save" msgstr "Non gardar" msgid "Save as…" msgstr "Gardar como…" msgid "Compile to…" msgstr "Compilar a…" msgid "Compiled Translation Files" msgstr "Ficheiros de tradución compilados" msgid "Export as…" msgstr "Exportar como…" msgid "HTML Files" msgstr "Ficheiros HTML" msgid "Open catalog template" msgstr "Abrir o modelo de catálogo" msgid "Source code not available." msgstr "Código fonte non dispoñible." msgid "Updating failed" msgstr "Erro na actualización" msgid "" "Translations couldn’t be updated from the source code, because no code was " "found in the location specified in the catalog’s Properties." msgstr "" "Non se puideron actualizar as traducións a partir do código fonte porque non " "se atopou tal código na localización especificada nas propiedades do " "catálogo." msgid "Entries in the catalog are probably incorrect." msgstr "Probabelmente as entradas do catálogo sexan incorrectas." msgid "Updating the catalog failed. Click on 'Details >>' for details." msgstr "" "Produciuse un erro ao actualizar o catálogo. Prema en «Detalles>>» para ver " "os detalles." #, c-format msgid "%d issue with the translation found." msgid_plural "%d issues with the translation found." msgstr[0] "atopouse %d problema coa tradución" msgstr[1] "atopáronse %d problemas coa tradución." msgid "Validation results" msgstr "Resultados da validación" msgid "" "Entries with errors were marked in red in the list. Details of the error " "will be shown when you select such an entry." msgstr "" "As entradas con erros márcanse en vermello na lista. Os detalles do erro " "mostraranse cando seleccione unha destas entradas." msgid "The file was saved safely." msgstr "O ficheiro gardouse satisfactoriamente." msgid "" "The file was saved safely and compiled into the MO format, but it will " "probably not work correctly." msgstr "" "O ficheiro gardouse satisfactoriamente e compilouse no formato MO, mais é " "posible que non funcione correctamente." msgid "" "The file was saved safely, but it cannot be compiled into the MO format and " "used." msgstr "" "O ficheiro gardouse de forma segura, pero non foi posíbel compilalo ao " "formato MO para utilizalo." msgid "" "The file was compiled into the MO format, but it will probably not work " "correctly." msgstr "" "O ficheiro foi compilado ao formato MO, mais é posíbel que non funcione " "correctamente." msgid "The file cannot be compiled into the MO format and used." msgstr "O ficheiro non pode ser compilado ao formato MO para o seu uso." msgid "No problems with the translation found." msgstr "Non se atoparon problemas coa tradución." #, c-format msgid "The translation is ready for use, but %d entry is not translated yet." msgid_plural "" "The translation is ready for use, but %d entries are not translated yet." msgstr[0] "" "A tradución está pronta para o seu uso, mais aínda hai %d cadea sen traducir." msgstr[1] "" "A tradución está pronta para o seu uso, mais aínda hai %d cadeas sen " "traducir." msgid "The translation is ready for use." msgstr "A tradución está lista para utilizar." #, c-format msgid "Poedit automatically fixed invalid content in the file “%s”." msgstr "" "Poedit corrixiu automaticamente o contido non válido do ficheiro \"%s\"." msgid "" "The file contained duplicate items, which is not allowed in PO files and " "would prevent the file from being used. Poedit fixed the issue, but you " "should review translations of any items marked as needing work and correct " "them if necessary." msgstr "" "O ficheiro contiña elementos duplicados, non permitidos nos ficheiros PO que " "impedirían o seu uso. Poedit solucionou o problema, mais debe revisar as " "traducións marcadas como dubidosas e corrixilas no caso de ser preciso." msgid "Language of the translation isn’t set." msgstr "O idioma da tradución está sen definir." msgid "Set Language" msgstr "Definir idioma" msgid "Set language" msgstr "Definir o idioma" #. TRANSLATORS: This is shown underneath "Language of the translation isn't set (or ...is the same as source language)." msgid "" "Suggestions are not available if the translation language is not set " "correctly. Other features, such as plural forms, may be affected as well." msgstr "" "As suxestións non están dispoñibles se o idioma de tradución non está " "definido correctamente. Outras funcionalidades, tales como as formas " "plurais, tamén poden verse afectadas." msgid "Language of the translation is the same as source language." msgstr "O idioma da tradución é o mesmo que o de orixe." msgid "Fix Language" msgstr "Solucionar idioma" msgid "Fix language" msgstr "Solucionar idioma" msgid "" "This catalog has entries with plural forms, but doesn’t have Plural-Forms " "header configured." msgstr "" "Este catálogo ten entradas con formas plurais, pero non ten configurada a " "cabeceira de formas do plural." msgid "" "Entries in this catalog have different plural forms count from what " "catalog’s Plural-Forms header says" msgstr "" "As entradas deste catálogo teñen un número de formas plurais diferente ao " "que indica a cabeceira de formas do plural" msgid "Required header Plural-Forms is missing." msgstr "Falta a cabeceira requirida de formas do plural." #, c-format msgid "Syntax error in Plural-Forms header (\"%s\")." msgstr "Erro de sintaxe na cabeceira Plural-Forms (\"%s\")." msgid "Fix the Header" msgstr "Corrixir a cabeceira" msgid "Fix the header" msgstr "Arranxar a cabeceira" #. TRANSLATORS: %s is language name in its basic form (as you #. would see e.g. in a list of supported languages). You may need #. to rephrase it, e.g. to an equivalent of "for language %s". #, c-format msgid "Plural forms expression used by the catalog is unusual for %s." msgstr "A expresión de formas plurais usada no catálogo non é habitual no %s." #. TRANSLATORS: A verb, shown as action button with ""Plural forms expression used by the catalog is unusual for %s.")" msgid "Review" msgstr "Avaliar" #, c-format msgid "Error loading message catalog file “%s”." msgstr "Produciuse un erro cargando o ficheiro do catálogo das mensaxes «%s»." #, c-format msgid "Translated: %d of %d (%d %%)" msgstr "Traducidas: %d de %d (%d %%)" #, c-format msgid "Remaining: %d" msgstr "Pendente: %d" #, c-format msgid "%d error" msgid_plural "%d errors" msgstr[0] "%d erro" msgstr[1] "%d erros" #, c-format msgid "%d entry" msgid_plural "%d entries" msgstr[0] "%d entrada" msgstr[1] "%d entradas" msgid " (unsaved)" msgstr " (sen gardar)" msgid " (modified)" msgstr " (modificado)" #, c-format msgid "Failed to update translation memory: %s" msgstr "Erro ao actualizar a memoria de tradución: %s" msgid "Purge deleted translations" msgstr "Purgar as traducións eliminadas" msgid "Do you want to remove all translations that are no longer used?" msgstr "Desexa eliminar todas as traducións que xa non se empregan?" msgid "" "If you continue with purging, all translations marked as deleted will be " "permanently removed. You will have to translate them again if they are added " "back in the future." msgstr "" "Se continua coa purga, todas as traducións marcadas para eliminar " "retiraranse permanentemente do ficheiro. Terá que traducilas outra vez se se " "volven engadir no futuro." msgid "Keep" msgstr "Manter" msgid "Purge" msgstr "Purgar" msgid "Copy from source text" msgstr "Copiar o texto orixe" msgid "Copy from Source Text" msgstr "Copiar o texto orixe" #. TRANSLATORS: This is the key shortcut used in menus on Windows, some languages call them differently #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Ctrl+" msgstr "Ctrl+" msgid "Clear translation" msgstr "Borrar a tradución" msgid "Clear Translation" msgstr "Borrar a tradución" msgid "Edit comment" msgstr "Editar o comentario" msgid "Edit Comment" msgstr "Editar o comentario" msgid "References:" msgstr "Referencias:" msgid "&Bookmarks" msgstr "&Marcadores" #. TRANSLATORS: This is the key shortcut used in menus on Windows, some languages call them differently #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Alt+" msgstr "Alt+" #, c-format msgid "Set bookmark %i" msgstr "Definir marcador %i" #, c-format msgid "Go to bookmark %i" msgstr "Ir ao marcador %i" #, c-format msgid "Set Bookmark %i" msgstr "Definir marcador %i" #, c-format msgid "Go to Bookmark %i" msgstr "Ir ao marcador %i" msgid "Hide Sidebar" msgstr "Agochar barra lateral" msgid "Show Sidebar" msgstr "Mostrar barra lateral" msgid "Hide Status Bar" msgstr "Agochar a barra de estado" msgid "Show Status Bar" msgstr "Mostrar a barra de estado" msgid "Source text:" msgstr "Texto orixe:" msgid "Singular:" msgstr "Singular:" msgid "Plural:" msgstr "Plural:" msgid "Translation:" msgstr "Tradución:" msgid "Pre-translated" msgstr "Pre-traducido" msgid "Needs Work" msgstr "Dubidosa" #. TRANSLATORS: This indicates that the string's translation isn't final #. and has known problems. For example, it might be machine translated or #. fuzzy matched from an older string. The translation should be short and #. convey this. If it's problematic to translate it, "Needs review" is #. acceptable substitute, but note that the meaning is subtly different: #. "needs review" implies that somebody else should review the string after #. I am done with it (i.e. consider it good), while "needs work" implies I #. need to return to it and finish the translation. msgid "Needs work" msgstr "Dubidosa" msgid "" "POT files are only templates and don’t contain any translations themselves.\n" "To make a translation, create a new PO file based on the template." msgstr "" "Os ficheiros POT son unicamente modelos e non conteñen traducións.\n" "Para traducir, cree un novo ficheiro PO con base no modelo." msgid "Create New Translation" msgstr "Crear unha nova tradución" msgid "Create new translation" msgstr "Crear unha nova tradución" msgid "Everything" msgstr "Todo" #, c-format msgid "Form %i" msgstr "Forma %i" msgid "Singular" msgstr "Singular" msgid "Zero" msgstr "Cero" msgid "One" msgstr "Un" msgid "Two" msgstr "Dous" msgid "Plural" msgstr "Plural" msgid "Other" msgstr "Outro" #, c-format msgid "%s Format" msgstr "Formato %s" #. TRANSLATORS: %s is replaced with language name, e.g. "PHP" or "C", so "PHP Format" etc." #, c-format msgid "%s format" msgstr "formato %s" msgid "Source text" msgstr "Texto orixe" #, c-format msgid "Translation — %s" msgstr "Tradución — %s" msgid "ID" msgstr "ID" #, c-format msgid "Source text — %s" msgstr "Texto fonte — %s" msgid "unknown language" msgstr "idioma descoñecido" #, c-format msgid "Failed command: %s" msgstr "Produciuse un erro ao executar a orde: %s" msgid "Failed to merge gettext catalogs." msgstr "Produciuse un erro ao fusionar os catálogos gettext." msgid "Source file" msgstr "Ficheiro fonte" msgid "Source file occurrence:" msgstr "Aparición en ficheiro de código fonte:" msgid "Open in Editor" msgstr "Abrir no editor" msgid "Open in editor" msgstr "Abrir no editor" msgid "No references for the selected item." msgstr "Non hai referencias para o elemento seleccionado." #, c-format msgid "Error opening file %s!" msgstr "Produciuse un erro ao abrir o ficheiro %s!" msgid "Find" msgstr "Buscar" msgid "Replace" msgstr "Substituír" #. TRANSLATORS: Expander in Find window for additional options (case sensitive etc.) msgid "Options" msgstr "Opcións" msgid "Ignore case" msgstr "Ignorar maiúsculas e minúsculas" msgid "Wrap around" msgstr "Busca circular" msgid "Whole words only" msgstr "Só palabras completas" msgid "Find in source texts" msgstr "Atopar nos textos fonte" msgid "Find in translations" msgstr "Buscar nas traducións" msgid "Find in comments" msgstr "Buscar nos comentarios" msgid "Close" msgstr "Pechar" msgid "Replace &All" msgstr "Substituír &todo" msgid "Replace &all" msgstr "Substituír &todo" msgid "&Replace" msgstr "&Substituír" msgid "< &Previous" msgstr "< &Anterior" msgid "&Next >" msgstr "&Seguinte >" msgid "String to find" msgstr "Texto que atopar" msgid "Replacement string" msgstr "Texto de substitución" #, c-format msgid "Cannot execute program: %s" msgstr "Non foi posíbel executar o programa: %s" msgid "Language Code or Name (e.g. en_GB)" msgstr "Código ou nome do idioma (ex.: GL)" msgid "Translation Language" msgstr "Idioma da tradución" msgid "Language of the translation:" msgstr "Idioma da tradución:" msgid "Poedit - Catalogs manager" msgstr "Poedit - Xestor de catálogos" msgid "Catalog" msgstr "Catálogo" msgid "Total" msgstr "Total " msgid "Untrans" msgstr "Sen traducir" msgid "Errors" msgstr "Erros" msgid "Last modified" msgstr "Última modificación" msgid "Select directory" msgstr "Seleccione un directorio" msgid "Directories:" msgstr "Directorios:" msgid "" msgstr "" msgid "Do you want to delete the project?" msgstr "Desexa eliminar o proxecto?" msgid "Confirmation" msgstr "Confirmación" msgid "" "Do you really want to do mass update of\n" "all catalogs in this project?" msgstr "" "Desexa facer unha actualización masiva\n" "de todos os catálogos do proxecto?" msgid "Information about the translator" msgstr "Información acerca do/a tradutor/a" msgid "Name:" msgstr "Nome:" msgid "Your Name" msgstr "O seu nome" msgid "Email:" msgstr "Correo electrónico:" msgid "your_email@example.com" msgstr "o_seu_correo@exemplo.com" msgid "" "Your name and email address are only used to set the Last-Translator header " "of GNU gettext files." msgstr "" "Estes datos (nome e correo electrónico) empréganse unicamente para " "establecer o valor da cabeceira «Last-Translator» dos ficheiros de GNU " "gettext." msgid "Editing" msgstr "Edición" msgid "Automatically compile MO file when saving" msgstr "Compilar automaticamente o ficheiro MO ao gardar" msgid "Show summary after catalog update" msgstr "Mostrar resumo despois da actualización do catálogo" msgid "Check spelling" msgstr "Revisar a ortografía" msgid "Always change focus to text input field" msgstr "Cambiar o foco sempre ao campo da entrada de texto" msgid "" "Never let the list of strings take focus. If enabled, you must use Ctrl-" "arrows for keyboard navigation but you can also type text immediately, " "without having to press Tab to change focus." msgstr "" "Nunca deixar que a lista de mensaxes teña o foco. Se está activado, debe " "usar Ctrl-frechas para navegar co teclado pero tamén poderá introducir texto " "inmediatamente, sen ter que premer Tabulación para cambiar o foco." msgid "Appearance" msgstr "Aparencia" msgid "Use custom list font:" msgstr "Fonte personalizada nas listaxes:" msgid "Use custom text fields font:" msgstr "Tipo de letra personalizado nos campos de texto:" msgid "Change UI language" msgstr "Cambiar o idioma da interface" #. TRANSLATORS: This is a note appended to "Check spelling" when running on older Windows versions msgid "(requires Windows 8 or newer)" msgstr "(cómpre Windows 8 ou posterior)" msgid "General" msgstr "Xeral" msgid "Use translation memory" msgstr "Utilizar a memoria de tradución" msgid "Learn From Files…" msgstr "Aprender dos ficheiros…" msgid "Learn from files…" msgstr "Aprender dos ficheiros…" #. TRANSLATORS: This is a button that deletes everything in the translation memory (i.e. clears/resets it). msgid "Reset" msgstr "Restablecer" #. TRANSLATORS: Followed by "match translations within the file" or "pre-translate from TM" msgid "When updating from sources" msgstr "Cando actualice desde as fontes" #. TRANSLATORS: Preceded by "When updating from sources" msgid "fuzzy match within the file" msgstr "coincidencia dubidosa no ficheiro" #. TRANSLATORS: Preceded by "When updating from sources" msgid "pre-translate from TM" msgstr "pre-traducir da MT" msgid "" "Poedit can attempt to fill in new entries from only previous translations in " "the file or from your entire translation memory. Using the TM won’t be very " "effective if it’s near-empty, but it will get better as you add more " "translations to it." msgstr "" "Poedit pode tentar completar as novas entradas desde traducións previas no " "ficheiro ou desde a memoria de tradución completa. Usar a MT non será " "efectivo se está case baleira pero mellorará a medida que se lle engadan " "traducións." msgid "Stored translations:" msgstr "Traducións almacenadas:" msgid "Database size on disk:" msgstr "Tamaño da base de datos no disco:" msgid "Select translation files to import" msgstr "Seleccione os ficheiros de tradución para importar" msgid "Translation Memory" msgstr "Memoria de tradución" msgid "Importing translations…" msgstr "Importando as traducións…" msgid "Finalizing…" msgstr "Rematando…" msgid "Reset translation memory" msgstr "Restablecer memoria de tradución" msgid "Are you sure you want to reset the translation memory?" msgstr "Ten a certeza de querer restablecer a memoria de tradución?" msgid "" "Resetting the translation memory will irrevocably delete all stored " "translations from it. You can’t undo this operation." msgstr "" "Ao restablecer a memoria de tradución, borraranse todas as traducións " "almacenadas. Esta operación non se pode desfacer." msgid "Cancel" msgstr "Cancelar" #. TRANSLATORS: This is abbreviation of "Translation Memory" used in Preferences on macOS. #. Long text looks weird there, too short (like TM) too, but less so. "General" is about ideal #. length there. msgid "TM" msgstr "MT" msgid "" "Source code extractors are used to find translatable strings in the source " "code files and extract them so that they can be translated." msgstr "" "Os extractores de código fonte utilízanse para atopar as mensaxes " "traducibles nos ficheiros de código fonte, extraelas e así permitir a súa " "tradución." msgid "Custom Extractors:" msgstr "Extractores personalizados:" msgid "Custom extractors:" msgstr "Extractores personalizados:" msgid "Edit…" msgstr "Editar…" msgid "GNU gettext" msgstr "GNU gettext" msgid "" "Supports all programming languages recognized by GNU gettext tools (PHP, C/C+" "+, C#, Perl, Python, Java, JavaScript and others)." msgstr "" "Acepta todos as linguaxes de programación recoñecidas polas ferramentas de " "GNU gettext (PHP, C/C++, C#, Perl, Python, Java, JavaScript e outras)." msgid "Delete extractor" msgstr "Eliminar extractor" #, c-format msgid "Are you sure you want to delete the “%s” extractor?" msgstr "Ten a certeza de querer eliminar o extractor \"%s\"?" msgid "Extractors" msgstr "Extractores" msgid "Accounts" msgstr "Contas" msgid "Automatically check for updates" msgstr "Mirar de actualizacións automaticamente" msgid "Include beta versions" msgstr "Incluír versións beta" msgid "" "Beta versions contain the latest new features and improvements, but may be a " "bit less stable." msgstr "" "As versións beta conteñen as funcionalidades e melloras máis recentes, mais " "poden resultar menos estables." msgid "Updates" msgstr "Actualizacións" msgid "" "These settings affect internal formatting of PO files. Adjust them if you " "have specific requirements e.g. because of version control." msgstr "" "Estes valores afectan ao formato interno dos ficheiros PO. Axústaos se tes " "requisitos específicos; por exemplo, debido ao control de versión." msgid "Line endings:" msgstr "Finais de liña:" msgid "Unix (recommended)" msgstr "Unix (recomendado)" msgid "Windows" msgstr "Windows" #. TRANSLATORS: Followed by text control for entering number; wraps text at given width msgid "Wrap at:" msgstr "Axustar a:" msgid "Preserve formatting of existing files" msgstr "Conservar o formato dos ficheiros existentes" msgid "Advanced" msgstr "Avanzado" msgid "Pre-translating…" msgstr "Pre-traducindo…" #, c-format msgid "Pre-translated %u string" msgid_plural "Pre-translated %u strings" msgstr[0] "Pre-traduciuse %u cadea" msgstr[1] "Pre-traducíronse %u cadeas" #. TRANSLATORS: This is a somewhat common term describing the action where #. you apply the translation memory and/or machine translation to all of the #. strings you're translating as the first step, followed by correcting, #. improving etc., i.e. actually translating the strings. This may be tricky #. to express in other languages as simply as in English, but please try to #. keep it similarly concise. Please try to avoid, if possible, describing it #. as "auto-translation" and similar, because such terminology would mislead #. some users into thinking it's all that needs to be done (spoken from #. experience). "Pre-translate" nicely expresses that it's only the step done #. *before* actual translation. msgid "Pre-translate" msgstr "Pre-traducir" msgid "Only fill in exact matches" msgstr "Só aquelas correspondencias exactas" msgid "" "By default, inaccurate results are filled in as well and marked as needing " "work. Check this option to only include accurate matches." msgstr "" "De modo predeterminado, os resultados inexactos tamén se completan e son " "marcados como dubidosos. Marque esta opción para incluír só coincidencias " "exactas." msgid "Don’t mark exact matches as needing work" msgstr "Non marcar coincidencias exactas como dubidosas" msgid "" "Only enable if you trust the quality of your TM. By default, all matches " "from the TM are marked as needing work and should be reviewed before use." msgstr "" "Active isto unicamente se confía na calidade da súa MT. Predeterminadamente, " "todas as coincidencias coa MT márcanse como dubidosas e deben revisarse " "antes do seu uso." msgid "" "Pre-translation automatically finds exact or fuzzy matches for untranslated " "strings in the translation memory and fills in their translations." msgstr "" "A Pre-tradución automaticamente atopa coincidencias exactas ou dubidosas na " "memoria de tradución para as cadeas sen rematar e úsaas para completar a " "tradución." #, c-format msgid "%d entry was pre-translated." msgid_plural "%d entries were pre-translated." msgstr[0] "%d entrada foi pre-traducida." msgstr[1] "%d entradas foron pre-traducidas." msgid "" "The translations were marked as needing work, because they may be " "inaccurate. You should review them for correctness." msgstr "" "As traducións marcáronse como dubidosas porque poden ser inexactas. Debería " "revisalas e no seu caso corrixilas." msgid "No entries could be pre-translated." msgstr "Non foi posíbel pre-traducir entrada ningunha." msgid "" "The TM doesn’t contain any strings similar to the content of this file. It " "is only effective for semi-automatic translations after Poedit learns enough " "from files that you translated manually." msgstr "" "A MT non contén ningunha cadea similar ao contido deste ficheiro. Só será " "efectiva para traducións semiautomáticas logo de que Poedit aprenda o " "suficiente de ficheiros traducidos manualmente polo usuario." msgid "" "Drag and Drop Folders Here\n" "\n" "or use the + button" msgstr "" "Arrastre e solte cartafoles aquí\n" "\n" "ou utilice o botón +" msgid "" "Drag and drop folders here\n" "\n" "or use the + button" msgstr "" "Arrastre e solte cartafoles aquí\n" "\n" "ou utilice o botón +" msgid "Add Folders…" msgstr "Engadir cartafoles…" msgid "Add folders…" msgstr "Engadir cartafoles…" msgid "Add Files…" msgstr "Engadir cartafoles…" msgid "Add files…" msgstr "Engadir cartafoles…" msgid "Add Wildcard…" msgstr "Engadir comodín…" msgid "Add wildcard…" msgstr "Engadir comodín…" msgid "Paths" msgstr "Rutas" msgid "Excluded paths" msgstr "Camiños excluídos" msgid "Advanced extraction settings" msgstr "Axustes avanzados de extracción" msgid "Extract notes for translators from:" msgstr "Extraer notas para tradutores de:" msgid "Comments prefixed with:" msgstr "Comentarios prefixados con:" msgid "All comments" msgstr "Todos os comentarios" msgid "Additional xgettext flags:" msgstr "Bandeiras xgettext adicionais:" msgid "Additional keywords" msgstr "Palabras clave adicionais" msgid "Name of the project the translation is for" msgstr "O nome do proxecto ao que pertence esta tradución" msgid "Team name and email address or URL" msgstr "Nome do equipo e enderezo de correo electrónico ou URL" msgid "e.g. nplurals=2; plural=(n > 1);" msgstr "p. ex., nplurals=2; plural=(n > 1);" msgid "UTF-8 (recommended)" msgstr "UTF-8 (recomendado)" msgid "Please save the file first. This section cannot be edited until then." msgstr "" "Por favor, garde o ficheiro primeiro. Esta sección non pode ser editar ata " "que o faga." msgid "Not all plural forms are translated." msgstr "Non se traduciron todas as formas do plural." msgid "The translation should start as a sentence." msgstr "A tradución debería comezar como unha frase." msgid "The translation should start with a lowercase character." msgstr "A tradución debería comezar con minúscula." msgid "The translation doesn’t start with a space." msgstr "A tradución non comeza por un espazo." msgid "The translation starts with a space, but the source text doesn’t." msgstr "A tradución comeza cun espazo pero o texto orixe non." msgid "The translation is missing a newline at the end." msgstr "Falta o salto de liña ao remate da tradución." msgid "The translation ends with a newline, but the source text doesn’t." msgstr "A tradución remata cun salto de liña pero o texto orixe non." msgid "The translation is missing a space at the end." msgstr "Falta un espazo ao remate da tradución." msgid "The translation ends with a space, but the source text doesn’t." msgstr "A tradución remata cun espazo pero o texto orixe non." #, c-format msgid "The translation should end with “%s”." msgstr "A tradución debería rematar con «%s»." #, c-format msgid "The translation should not end with “%s”." msgstr "A tradución non debería rematar con «%s»." #, c-format msgid "The translation ends with “%s”, but the source text ends with “%s”." msgstr "A tradución remata con «%s» pero o texto orixe remata con «%s»." msgid "Comment:" msgstr "Comentario:" msgid "OK" msgstr "Aceptar" msgid "C&lear" msgstr "&Borrar" msgid "Clear the comment" msgstr "Borrar o comentario" msgid "New" msgstr "Novo" msgid "Create new translations project" msgstr "Crear novo proxecto de tradución" msgid "Edit" msgstr "Editar" msgid "Edit the project" msgstr "Editar o proxecto" msgid "Delete the project" msgstr "Eliminar o proxecto" msgid "Update all" msgstr "Actualizar todo" msgid "Update all catalogs in the project" msgstr "Actualizar todos os catálogos do proxecto" msgid "Edit project" msgstr "Editar o proxecto" msgid "Project name:" msgstr "Nome do proxecto:" msgid "Browse" msgstr "Explorar" msgid "Add directory to the list" msgstr "Engadir directorio á lista" msgid "&New…" msgstr "&Novo…" msgid "New from &POT/PO file…" msgstr "Nova a partir dun ficheiro &POT/PO…" msgid "New From &POT/PO File…" msgstr "Nova a partir dun ficheiro &POT/PO…" msgid "&Open…" msgstr "A&brir…" msgid "Open Recent" msgstr "Abrir recentes" msgid "Open from Crowdin…" msgstr "Abrir desde Crowdin…" msgid "Open From Crowdin…" msgstr "Abrir desde Crowdin…" msgid "&Close" msgstr "&Pechar" msgid "&Save" msgstr "&Gardar" msgid "Save &as…" msgstr "Gard&ar como…" msgid "Save &As…" msgstr "Gard&ar como…" msgid "Compile to MO…" msgstr "Compilar a MO…" msgid "E&xport as HTML…" msgstr "E&xportar como HTML…" msgid "Check for updates…" msgstr "Buscar actualizacións…" msgid "&Preferences…" msgstr "&Preferencias…" msgid "Catalogs &manager" msgstr "&Xestor de proxectos" msgid "Catalogs &Manager" msgstr "Xestor de &catálogos" msgid "E&xit" msgstr "&Saír" msgid "Quit" msgstr "Saír" msgid "Copy from singular" msgstr "Copiar do singular" msgid "Copy From Singular" msgstr "Copiar do singular" msgid "Translation needs &work" msgstr "Tradución du&bidosa" msgid "Translation Needs &Work" msgstr "Tradución du&bidosa" msgid "Edit &comment" msgstr "Editar o &comentario" msgid "Edit &Comment" msgstr "Editar &comentario" msgid "Suggestions" msgstr "Suxestións" msgid "&Find…" msgstr "&Buscar…" msgid "Replace…" msgstr "Substituír…" msgid "Find next" msgstr "Buscar seguinte" msgid "Find previous" msgstr "Buscar anterior" msgid "Find and Replace…" msgstr "Buscar e substituír…" msgid "Find Next" msgstr "Buscar seguinte" msgid "Find Previous" msgstr "Buscar anterior" msgid "&Preferences" msgstr "&Preferencias" msgid "Display entry &IDs" msgstr "Mostrar &ID das entradas" msgid "Display Entry &IDs" msgstr "Mostrar &ID das entradas" msgid "Sort by &file order" msgstr "Ordenar por &ficheiro" msgid "Sort by &File Order" msgstr "Ordenar por &ficheiro" msgid "Sort by &source" msgstr "Ordenar pola &orixe" msgid "Sort by &Source" msgstr "Ordenar pola &orixe" msgid "Sort by &translation" msgstr "Ordenar por &tradución" msgid "Sort by &Translation" msgstr "Ordenar por &tradución" msgid "&Group by context" msgstr "A&grupar por contexto" msgid "&Group By Context" msgstr "A&grupar por contexto" msgid "Entries with errors first" msgstr "Primeiro as entradas con erros" msgid "Entries with Errors First" msgstr "Primeiro as entradas con erros" msgid "&Untranslated entries first" msgstr "Entradas &sen traducir primeiro" msgid "&Untranslated Entries First" msgstr "Entradas &sen traducir primeiro" msgid "&Show references" msgstr "Mo&strar as referencias" msgid "&Show References" msgstr "Mo&strar as referencias" msgid "Show sidebar" msgstr "Mostrar barra lateral" msgid "Show status bar" msgstr "Mostrar a barra de estado" msgid "C&atalog" msgstr "C&atálogo" msgid "&Update from sources" msgstr "Act&ualizar desde as fontes" msgid "&Update from Sources" msgstr "Act&ualizar desde as fontes" msgid "Update from &POT file…" msgstr "Actualizar desde un ficheiro &POT…" msgid "Update from &POT File…" msgstr "Actualizar desde un ficheiro &POT…" msgid "Sync with Crowdin" msgstr "Sincronizar con Crowdin" msgid "Pre-&translate…" msgstr "Pre-&traducir…" msgid "&Purge deleted translations" msgstr "&Purgar as traducións eliminadas" msgid "&Purge Deleted Translations" msgstr "&Purgar as traducións eliminadas" msgid "&Validate translations" msgstr "&Validar as traducións" msgid "&Validate Translations" msgstr "&Validar as traducións" msgid "&Properties…" msgstr "&Propiedades…" msgid "&Done and next" msgstr "&Feito e continuar coa seguinte" msgid "&Done and Next" msgstr "&Feito e seguinte" msgid "&Previous translation" msgstr "Tradución &anterior" msgid "&Previous Translation" msgstr "Tradución &anterior" msgid "&Next translation" msgstr "Tradución &seguinte" msgid "&Next Translation" msgstr "Tradución &seguinte" msgid "P&revious unfinished" msgstr "&Anterior sen rematar" msgid "P&revious Unfinished" msgstr "&Anterior sen rematar" msgid "Ne&xt unfinished" msgstr "Seguin&te sen rematar" msgid "Ne&xt Unfinished" msgstr "Seguin&te sen rematar" msgid "Previous plural form" msgstr "Forma plural anterior" msgid "Previous Plural Form" msgstr "Forma plural anterior" msgid "Next plural form" msgstr "Forma plural seguinte" msgid "Next Plural Form" msgstr "Forma plural seguinte" msgid "&Online help" msgstr "Axuda &en Internet" msgid "&Online Help" msgstr "Axuda &en Internet" msgid "&GNU gettext manual" msgstr "Manual de &GNU gettext" msgid "&GNU gettext Manual" msgstr "Manual de &GNU gettext" msgid "&About Poedit" msgstr "&Sobre Poedit" msgid "&About" msgstr "&Sobre" msgid "Extractor setup" msgstr "Configuración do extractor" msgid "List of extensions separated by semicolons (e.g. *.cpp;*.h):" msgstr "Lista de extensións separadas con punto e coma (p.ex. *.cpp; *.h):" msgid "Invocation:" msgstr "Invocación:" msgid "Command to extract translations:" msgstr "Comando para extraer as traducións:" msgid "" "This is the command used to launch the extractor.\n" "%o expands to the name of output file, %K to list\n" "of keywords, %F to list of input files,\n" "%C to charset flag (see below)." msgstr "" "Este comando emprégase para abrir o extractor.\n" "%o expande o nome do ficheiro de saída, %K mostra\n" "as palabras clave, %F fai unha listaxe dos ficheiros de entrada e\n" "%C define o conxunto de caracteres (véxase máis abaixo)." msgid "An item in keywords list:" msgstr "Un elemento da lista de palabras clave:" msgid "" "This will be attached to the command line once\n" "for each keyword. %k expands to the keyword." msgstr "" "Isto engadirase á liña de ordes unha vez por\n" "cada palabra clave. %k substituirase pola\n" "palabra clave." msgid "An item in input files list:" msgstr "Un elemento da lista de ficheiros de entrada:" #, c-format msgid "" "This will be attached to the command line once\n" "for each input file. %f expands to the filename." msgstr "" "Isto engadirase á liña de ordes unha vez\n" "por cada ficheiro de entrada. %f substituirase\n" "polo nome de ficheiro." msgid "Source code charset:" msgstr "Xogo de caracteres do código fonte:" #, c-format msgid "" "This will be attached to the command line\n" "only if source code charset was given. %c expands to charset value." msgstr "" "Isto engadirase á liña de ordes só se\n" "se proporciona o xogo de caracteres do\n" "código fonte. %c substituirase polo valor\n" "do xogo de caracteres." msgid "Catalog properties" msgstr "Propiedades do catálogo" msgid "Project name and version:" msgstr "Nome e versión do proxecto:" msgid "Language team:" msgstr "Equipo de idioma:" msgid "Plural forms:" msgstr "Formas do plural:" msgid "Use default rules for this language" msgstr "Utilizar as regras predeterminadas para este idioma" msgid "Use custom expression" msgstr "Utilizar expresión personalizada" msgid "Learn about plural forms" msgstr "Aprenda sobre as formas do plural" msgid "Charset:" msgstr "Xogo de caracteres:" msgid "Advanced Extraction Settings…" msgstr "Axustes avanzados de extracción…" msgid "Advanced extraction settings…" msgstr "Axustes avanzados de extracción…" msgid "Translation Properties" msgstr "Propiedades da tradución" msgid "Translation properties" msgstr "Propiedades da tradución" msgid "Sources Paths" msgstr "Rutas das orixes" msgid "Sources paths" msgstr "Rutas do código fonte" msgid "Extract text from source files in the following directories:" msgstr "" "Extraer textos dos ficheiros de código fonte que están nos seguintes " "directorios:" msgid "Base path:" msgstr "Ruta base:" msgid "Sources Keywords" msgstr "Palabras clave das orixes" msgid "Sources keywords" msgstr "Palabras clave das orixes" msgid "" "Use these keywords (function names) to recognize translatable strings\n" "in source files:" msgstr "" "Use estas palabras clave (nomes de funcións) para recoñecer cadeas\n" "intraducibles nos ficheiros de código fonte:" msgid "Also use default keywords for supported languages" msgstr "Use tamén as palabras clave predeterminadas nos idiomas aceptados" msgid "Learn About Gettext Keywords" msgstr "Saiba máis sobre as palabras clave de Gettext" msgid "Learn about gettext keywords" msgstr "Saber máis sobre as palabras clave de gettext" msgid "Update summary" msgstr "Resumo da actualización" msgid "" "These strings were found in the sources but were not in the catalog.\n" "Poedit will add them to the catalog now." msgstr "" "Atopáronse estas cadeas nas fontes pero non no catálogo.\n" "Poedit engadiráas agora ao catálogo." msgid "New strings" msgstr "Novas cadeas" msgid "" "These strings are no longer in the sources.\n" "Poedit will remove them from the catalog now." msgstr "" "Estas cadeas xa non están nas fontes.\n" "Poedit eliminaráas do catálogo agora." msgid "Obsolete strings" msgstr "Cadeas obsoletas" msgid "(0 new, 0 obsolete)" msgstr "(0 novas, 0 obsoletas)" msgid "Open" msgstr "Abrir" msgid "Save catalog" msgstr "Gardar o catálogo" msgid "Validate" msgstr "Validar" msgid "Check for errors in the translation" msgstr "Buscar erros na tradución" msgid "Update" msgstr "Actualizar" msgid "Update catalog - synchronize it with sources" msgstr "Actualizar catálogo - sincronizalo coas súas fontes" msgid "Sidebar" msgstr "Barra lateral" msgid "Show or hide the sidebar" msgstr "Mostrar ou agochar a barra lateral" #. TRANSLATORS: "Previous" as in used in the past, now replaced with newer. msgid "Previous source text:" msgstr "Texto fonte anterior:" msgid "" "The old source text (before it changed during an update) that the now-" "inaccurate translation corresponds to." msgstr "" "Texto fonte antigo (antes de cambiar durante unha actualización) ao que " "corresponde a agora inexacta tradución." msgid "Notes for translators:" msgstr "Notas para os tradutores:" msgid "Add comment" msgstr "Engadir comentario" msgid "Add Comment" msgstr "Engadir comentario" msgid "Translation suggestions:" msgstr "Suxestións de tradución:" #. TRANSLATORS: This is shown when no translation suggestions can be found in the TM (Windows). msgid "No matches found" msgstr "Non se atoparon coincidencias" #. TRANSLATORS: This is shown when no translation suggestions can be found in the TM (macOS, Linux). msgid "No Matches Found" msgstr "Non se atoparon coincidencias" msgid "This string was found in Poedit’s translation memory." msgstr "Esta cadea atopouse na memoria de tradución de Poedit." msgid "Cannot create temporary directory." msgstr "Non foi posíbel crear o directorio temporal." msgid "Welcome to Poedit" msgstr "Benvido/a a Poedit" #. TRANSLATORS: This is version information in about dialog, "%s" will be #. version number when used #, c-format msgid "Version %s" msgstr "Versión %s" msgid "Edit a Translation" msgstr "Editar a tradución" msgid "Edit a translation" msgstr "Editar unha tradución" msgid "Open an existing PO file and edit the translation." msgstr "Abrir un ficheiro PO existente e editar a tradución." msgid "" "Take an existing PO file or POT template and create a new translation from " "it." msgstr "" "Tomar un ficheiro PO ou POT existente e crear unha traducción a partir deste." msgid "Collaborate on a Translation with Others" msgstr "Colabore con outras persoas nas traducións" msgid "Collaborate on a translation with others" msgstr "Colaborar nunha tradución con outros" msgid "" "Download a file from Crowdin project, translate and sync your changes back." msgstr "Descargue un ficheiro desde Crowdin, traduza e sincronice os cambios." msgid "What is Crowdin?" msgstr "Que é Crowdin?" msgid "There are no translations. That’s unusual." msgstr "Non hai traducións. Isto non é o habitual." msgid "" "Translatable entries aren’t added manually in the Gettext system, but are " "automatically extracted\n" "from source code. This way, they stay up to date and accurate.\n" "Translators typically use PO template files (POTs) prepared for them by the " "developer." msgstr "" "As entradas traducibles non se engaden manualmente no sistema Gettext, senón " "que se extraen\n" "automaticamente do código. Así, mantéñense actualizadas e precisas.\n" "Quen traduce, normalmente emprega os modelos de ficheiros PO (POT) " "proporcionados polo desenvolvedor." msgid "(Learn more about GNU gettext)" msgstr "(Saber máis sobre o GNU gettext)" msgid "The simplest way to fill this catalog is to update it from a POT:" msgstr "" "O xeito máis simple de encher este catálogo é actualizalo desde un POT:" msgid "Update from POT" msgstr "Actualizar desde POT" msgid "Take translatable strings from an existing POT template." msgstr "Tomar as cadeas traducibles desde un patrón POT existente." msgid "" "You can also extract translatable strings directly from the source code:" msgstr "Tamén pode extraer as cadeas traducibles directamente do código fonte:" msgid "Extract from sources" msgstr "Extraer desde as fontes" msgid "Configure source code extraction in Properties." msgstr "Configure a extracción de código fonte en Propiedades." msgid "Sync" msgstr "Sincronizar" msgid "Synchronize the translation with Crowdin" msgstr "Sincronizar a tradución con Crowdin" #. TRANSLATORS: This is titlebar of about dialog, "%s" is application name #. ("Poedit" here, but please use "%s") #, c-format msgid "About %s" msgstr "Sobre %s" #. TRANSLATORS: Title of the preferences window on Windows and Linux. "%s" is replaced with "Poedit" when running. #, c-format msgid "%s Preferences" msgstr "Preferencias do %s" #. TRANSLATORS: macOS item in app menu msgid "Services" msgstr "Servizos" #. TRANSLATORS: macOS item in app menu, %s is replaced with "Poedit" #, c-format msgid "Hide %s" msgstr "Agochar %s" #. TRANSLATORS: macOS item in app menu msgid "Hide Others" msgstr "Agochar outros" #. TRANSLATORS: macOS item in app menu msgid "Show All" msgstr "Mostrar todo" #. TRANSLATORS: macOS item in app menu, %s is replaced with "Poedit" #, c-format msgid "Quit %s" msgstr "Saír do %s" #. TRANSLATORS: macOS item in app menu msgid "Preferences…" msgstr "Preferencias…" msgid "Preferences..." msgstr "Preferencias..." #. TRANSLATORS: Title of a category in Windows task menu (right-click icon in taskbar) msgid "Recent" msgstr "Recentes" #. TRANSLATORS: Title of a category in Windows task menu (right-click icon in taskbar) msgid "Frequent" msgstr "Frecuentes" msgid "&Apply" msgstr "&Aplicar" msgid "Apply" msgstr "Aplicar" msgid "&Back" msgstr "&Volver" msgid "Back" msgstr "Volver" msgid "&Cancel" msgstr "&Cancelar" msgid "&Clear" msgstr "&Limpar" msgid "Clear" msgstr "Limpar" msgid "Copy" msgstr "Copiar" msgid "Cu&t" msgstr "Cor&tar" msgid "Cut" msgstr "Cortar" msgid "&Delete" msgstr "&Eliminar" msgid "&Quit" msgstr "&Saír" msgid "File" msgstr "Ficheiro" msgid "Help" msgstr "Axuda" msgid "&New" msgstr "&Novo" msgid "&No" msgstr "&Non" msgid "No" msgstr "Non" msgid "&OK" msgstr "&Aceptar" msgid "Open…" msgstr "Abrir…" msgid "&Open..." msgstr "&Abrir..." msgid "Open..." msgstr "Abrir..." msgid "&Paste" msgstr "&Pegar" msgid "Paste" msgstr "Pegar" msgid "Preferences" msgstr "Preferencias" msgid "&Redo" msgstr "&Refacer" msgid "Refresh" msgstr "Actualizar" msgid "&Save as" msgstr "Gardar &como" msgid "Save as" msgstr "Gardar como" msgid "Select &All" msgstr "Seleccionar &todo" msgid "Select All" msgstr "Seleccionar todo" msgid "&Undo" msgstr "&Desfacer" msgid "&Yes" msgstr "&Si" msgid "Yes" msgstr "Si" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Shift+" msgstr "Maiús+" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Enter" msgstr "Intro" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Up" msgstr "Arriba" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Down" msgstr "Abaixo" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Left" msgstr "Esquerda" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Right" msgstr "Dereita" #. TRANSLATORS: Keyboard shortcut, must correspond to translation of "Ctrl+" msgid "ctrl" msgstr "ctrl" #. TRANSLATORS: Keyboard shortcut, must correspond to translation of "Alt+" msgid "alt" msgstr "alt" #. TRANSLATORS: Keyboard shortcut, must correspond to translation of "Shift+" msgid "shift" msgstr "maiús" poedit-2.0.6/locales/kab.mo0000664000372000037200000013613413230132077012446 00000000000000P%1 1 11<11J 2gW2 22 22 222 3333%3+333B3Q3W3]3f3z333333333333 3 44 4)4 04=4M4c4y44444444445 5(5D5Y5n55555555 6 '6:36:n6 666 6 666 6 7 #707?7O7c7~77777 71898'>8f88 8878689)=9g9 l9]w99A9I*:t:{:; ;;";:; U;`;.h;;;;;;;;<*<F<#[<<<<<<<<(<(=7= R=s=|== ==/= = >>#>9>L>b>2>>>>> ?)???????@@@ 2@?@R@Ee@"@?@ AA*.A YAfAyAK~A"A5A#B)BHAH HHI 'IHI PI ]IiI"nI;I(IIJ&J 5J ?JMJjJ ~JJJJJ JJK:K PK<^K.KKKKLL*%LPLVLgL xL LLJMNMgM MMMMM#MM'M$N7DN$|N%NNNNNNOOOO O2O P#P9PNP]PlPtP|PPPPPPPPQQQnQERZR>aR RRRR@RS-TxSxhxqx zx xxxxxxxxx y y y$y5y FyPynyyy yy yyyy"y"z&z:zNzaz szzzzzzz {:{:W{ {{ { { {{{ {| |(|8|U|o||$||$|| }> }_}(d})})} }}2}=#~a~'{~~~L~# M.W|"܀:7GZm!Ł! 9M_fw ނ"= N\.t܃4$Yx$ՄÅ'ȅ  -GA&= 4 O]{?Ç) .5ETcs ň̈ш2y ""(` Ŋ  ,4L& ċ"ڋ,'*,R#eÌ) 2= B OZk ō Ӎ  !-3I _ks{ώҎ"ӏ-6< s͐֐) $/*G"r ̑BՑE.=tϒ$ *2LSfyД.2%Lr!(7ו(&8_ux&T{* ,?F MZbr z8A`_hIșB[ow~<ך1Λޛ04D Ҝ ݜ -D\y  ̝֝ ܝ 4 H,T 9@FM` s}   $͟  (6 FTYb$vŠ$4CHNSek~š֡/B*V .=Wg~ף@2 LXg r5å)8IL5Ҧ*3G?ڨKũ@ZRg Q6J ӫA66Am0%"(˭"-6Eq|'?QVuIdhMͰJfD'1lI#JmdzӴ&ASg w%!GVjq x$ȶ %6RGͷ.&,iS׸޸ "/RemuzLJ@/p8vr"'/3*8#c$̻&5D}],6 9BW6tC3H>C'# )h?*Kq#-0^aG2zFYblx&2LADZ.EwPi=Ab[kv @4uh~ uL@|pnf.nTN? QI2:qOKcajd F!p ]U>T+rXi=J%Vxz51^s4 NH/F"8/XJ`om #UwQk :Gs$ 8jL!~I1,(<D-9B>|;$H(E?g<y!dYgIo \ <eN+rM5&cM5 :"K-A+EmZ7C"603B $%RfRVeyOG*S@ M,4}_{O%W91J)S[`' 7)v &;*{(l_.03=\7P8/t';P (modified) (unsaved)%d entry%d entries%d entry was pre-translated.%d entries were pre-translated.%d error%d errors%d issue with the translation found.%d issues with the translation found.%i line of file “%s” was not loaded correctly.%i lines of file “%s” were not loaded correctly.%s Format%s Preferences%s format&About&About Poedit&Apply&Back&Bookmarks&Cancel&Clear&Close&Copy&Delete&Done and Next&Done and next&Edit&File&Find…&GNU gettext Manual&GNU gettext manual&Go&Group By Context&Group by context&Help&New&New…&Next >&Next Translation&Next translation&No&OK&Online Help&Online help&Open...&Open…&Paste&Preferences&Preferences…&Previous Translation&Previous translation&Properties…&Purge Deleted Translations&Purge deleted translations&Quit&Redo&Replace&Save&Save as&Show References&Show references&Undo&Untranslated Entries First&Untranslated entries first&Update from Sources&Update from sources&Validate Translations&Validate translations&View&Yes(0 new, 0 obsolete)(Learn more about GNU gettext)(New: %i, obsolete: %i)(Use default language)(requires Windows 8 or newer)< &PreviousDrag and Drop Folders Here or use the + buttonDrag and drop folders here or use the + buttonAbout %sAccountsAdd CommentAdd Files…Add Folders…Add Wildcard…Add commentAdd directory to the listAdd files…Add folders…Add wildcard…Additional keywordsAdditional xgettext flags:AdvancedAdvanced Extraction Settings…Advanced extraction settingsAdvanced extraction settings…All Translation FilesAll commentsAlso use default keywords for supported languagesAlt+Always change focus to text input fieldAn item in input files list:An item in keywords list:AppearanceApplyAre you sure you want to delete the “%s” extractor?Are you sure you want to reset the translation memory?Automatically check for updatesAutomatically compile MO file when savingBackBase path:Beta versions contain the latest new features and improvements, but may be a bit less stable.Bring All to FrontBroken catalog file: plural form msgstr used without msgid_pluralBroken catalog file: singular form msgstr used together with msgid_pluralBrowseBy default, inaccurate results are filled in as well and marked as needing work. Check this option to only include accurate matches.C&atalogC&learCancelCannot create temporary directory.Cannot execute program: %sCapitalizeCatalogCatalog modified. Do you want to save changes?Catalog propertiesCatalogs &ManagerCatalogs &managerCatalogs ManagerChange UI languageCharset:Check Document NowCheck Grammar With SpellingCheck Spelling While TypingCheck for Updates…Check for errors in the translationCheck for updates…Check spellingClearClear TranslationClear the commentClear translationCloseCollaborate on a Translation with OthersCollaborate on a translation with othersCollecting source files…Command to extract translations:Comment:Comments prefixed with:Compile to MO…Compile to…Compiled Translation FilesConfigure source code extraction in Properties.ConfirmationCopyCopy From SingularCopy from Source TextCopy from singularCopy from source textCorrect Spelling AutomaticallyCouldn’t load file %s, it is probably corrupted.Couldn’t save file %s.Create New TranslationCreate new translationCreate new translations projectCrowdin errorCrowdin is an online localization management platform and collaborative translation tool. Poedit can seamlessly sync PO files managed at Crowdin.Ctrl+Cu&tCustom Extractors:Custom extractors:CutDatabase size on disk:DeleteDelete extractorDelete the projectDirectories:Display Entry &IDsDisplay entry &IDsDo you really want to do mass update of all catalogs in this project?Do you want to delete the project?Do you want to remove all translations that are no longer used?Don’t SaveDon’t Show AgainDon’t mark exact matches as needing workDon’t saveDon’t show againDownDownload a file from Crowdin project, translate and sync your changes back.Downloading latest translations…Downloading translations is disabled in this project.E&xitE&xport as HTML…EditEdit &CommentEdit &commentEdit CommentEdit a TranslationEdit a translationEdit commentEdit projectEdit the projectEditingEdit…Email:EnterEnter Full ScreenEntries in the catalog are probably incorrect.Entries in this catalog have different plural forms count from what catalog’s Plural-Forms header saysEntries with Errors FirstEntries with errors firstEntries with errors were marked in red in the list. Details of the error will be shown when you select such an entry.Error loading message catalog file “%s”.Error opening fileError opening file %s!Error saving catalogErrorsEverythingExcluded pathsExport as…Extract from sourcesExtract notes for translators from:Extract text from source files in the following directories:Extracting translatable strings…Extractor setupExtractorsFailed command: %sFailed to communicate with Poedit process.Failed to load extracted catalog.Failed to merge gettext catalogs.Failed to update translation memory: %sFileFile “%s” doesn’t exist.File “%s” is not a message catalog.File “%s” is read-only and cannot be saved. Please save it under different name.File:Finalizing…FindFind NextFind PreviousFind and Replace…Find in commentsFind in source textsFind in translationsFind nextFind previousFix LanguageFix languageFix the HeaderFix the headerForm %iFrequentGNU gettextGeneralGo to Bookmark %iGo to bookmark %iHTML FilesHelpHide %sHide OthersHide SidebarHide Status BarHide this notification messageIDIf you continue with purging, all translations marked as deleted will be permanently removed. You will have to translate them again if they are added back in the future.Ignore caseImporting translations…Include beta versionsInformation about the translatorInstallInvalid fileInvocation:KeepLanguage Code or Name (e.g. en_GB)Language of the translation is the same as source language.Language of the translation isn’t set.Language of the translation:Language selectionLanguage team:Language:Last modifiedLearn About Gettext KeywordsLearn From Files…Learn MoreLearn More About CrowdinLearn about gettext keywordsLearn about plural formsLearn from files…Learn moreLearn more about CrowdinLeftLine %d of file “%s” is corrupted (not valid %s data).Line endings:List of extensions separated by semicolons (e.g. *.cpp;*.h):MO files can’t be directly edited in Poedit.Make Lower CaseMake Upper CaseMalformed header: “%s”Merging differences…MinimizeName of the project the translation is forName:Ne&xt UnfinishedNe&xt unfinishedNeeds WorkNeeds workNever let the list of strings take focus. If enabled, you must use Ctrl-arrows for keyboard navigation but you can also type text immediately, without having to press Tab to change focus.NewNew From &POT/PO File…New from &POT/PO file…New stringsNext Plural FormNext plural formNoNo Matches FoundNo entries could be pre-translated.No matches foundNo problems with the translation found.No references for the selected item.No translation projects listed in your Crowdin account.Not all plural forms are translated.Not authorized, please sign in again.Notes for translators:OKObsolete stringsOneOnly enable if you trust the quality of your TM. By default, all matches from the TM are marked as needing work and should be reviewed before use.Only fill in exact matchesOpenOpen Crowdin translationOpen From Crowdin…Open RecentOpen an existing PO file and edit the translation.Open catalogOpen catalog templateOpen from Crowdin…Open in EditorOpen in editorOpen...Open…OptionsOtherP&revious UnfinishedP&revious unfinishedPO TranslationPO Translation FilesPOT Translation TemplatesPOT files are only templates and don’t contain any translations themselves. To make a translation, create a new PO file based on the template.PastePaste and Match StylePathsPlease open and edit the corresponding PO file instead. When you save it, the MO file will be updated as well.Please save the file first. This section cannot be edited until then.PluralPlural forms expression used by the catalog is unusual for %s.Plural forms:Plural:PoeditPoedit - Catalogs managerPoedit automatically fixed invalid content in the file “%s”.Poedit can attempt to fill in new entries from only previous translations in the file or from your entire translation memory. Using the TM won’t be very effective if it’s near-empty, but it will get better as you add more translations to it.Poedit is an easy to use translations editor.Pre-&translate…Pre-translatePre-translatedPre-translated %u stringPre-translated %u stringsPre-translating…Pre-translation automatically finds exact or fuzzy matches for untranslated strings in the translation memory and fills in their translations.PreferencesPreferences...Preferences…Preserve formatting of existing filesPrevious Plural FormPrevious plural formPrevious source text:Project name and version:Project name:Project:PurgePurge deleted translationsQuitQuit %sRecentRedoReferences:RefreshRemaining: %dReplaceReplace &AllReplace &allReplacement stringReplace…Required header Plural-Forms is missing.ResetReset translation memoryResetting the translation memory will irrevocably delete all stored translations from it. You can’t undo this operation.ReviewRightSaveSave &As…Save &as…Save asSave as…Save catalogSave changesSelect &AllSelect AllSelect directorySelect translation files to importSelect your preferred languageServicesSet Bookmark %iSet LanguageSet bookmark %iSet languageShift+Show AllShow SidebarShow Spelling and GrammarShow Status BarShow SubstitutionsShow or hide the sidebarShow sidebarShow status barShow summary after catalog updateSidebarSign InSign OutSign inSign in to CrowdinSign outSigned in as:SingularSingular:Smart Copy/PasteSmart DashesSmart LinksSmart QuotesSort by &File OrderSort by &SourceSort by &TranslationSort by &file orderSort by &sourceSort by &translationSource code charset:Source code extractors are used to find translatable strings in the source code files and extract them so that they can be translated.Source code not available.Source fileSource file occurrence:Source textSource text — %sSource text:Sources KeywordsSources PathsSources keywordsSources pathsSpeechSpellchecking is disabled, because the dictionary for %s isn’t installed.Spelling and GrammarStart SpeakingStop SpeakingStored translations:String to findSubstitutionsSuggestionsSuggestions are not available if the translation language is not set correctly. Other features, such as plural forms, may be affected as well.Supports all programming languages recognized by GNU gettext tools (PHP, C/C++, C#, Perl, Python, Java, JavaScript and others).SyncSync with CrowdinSynchronize the translation with CrowdinSyncingSyncing errorSyncing with %s failed.Syncing with %s…Syncing with Crowdin failed.Syntax error in Plural-Forms header ("%s").TMTake an existing PO file or POT template and create a new translation from it.Take translatable strings from an existing POT template.Team name and email address or URLText ReplacementThe TM doesn’t contain any strings similar to the content of this file. It is only effective for semi-automatic translations after Poedit learns enough from files that you translated manually.The catalog couldn’t be saved in “%s” charset as specified in catalog settings. It was saved in UTF-8 instead and the setting was modified accordingly.The file cannot be compiled into the MO format and used.The file cannot be opened.The file contained duplicate items, which is not allowed in PO files and would prevent the file from being used. Poedit fixed the issue, but you should review translations of any items marked as needing work and correct them if necessary.The file may be either corrupted or in a format not recognized by Poedit.The file was compiled into the MO format, but it will probably not work correctly.The file was saved safely and compiled into the MO format, but it will probably not work correctly.The file was saved safely, but it cannot be compiled into the MO format and used.The file was saved safely.The old source text (before it changed during an update) that the now-inaccurate translation corresponds to.The simplest way to fill this catalog is to update it from a POT:The translation doesn’t start with a space.The translation ends with a newline, but the source text doesn’t.The translation ends with a space, but the source text doesn’t.The translation ends with “%s”, but the source text ends with “%s”.The translation is missing a newline at the end.The translation is missing a space at the end.The translation is ready for use, but %d entry is not translated yet.The translation is ready for use, but %d entries are not translated yet.The translation is ready for use.The translation should end with “%s”.The translation should not end with “%s”.The translation should start as a sentence.The translation should start with a lowercase character.The translation starts with a space, but the source text doesn’t.The translations were marked as needing work, because they may be inaccurate. You should review them for correctness.There are no translations. That’s unusual.There was a problem formatting the file nicely (but it was saved all right).There were errors when loading the catalog. Some data may be missing or corrupted as the result.These settings affect internal formatting of PO files. Adjust them if you have specific requirements e.g. because of version control.These strings are no longer in the sources. Poedit will remove them from the catalog now.These strings were found in the sources but were not in the catalog. Poedit will add them to the catalog now.This catalog has entries with plural forms, but doesn’t have Plural-Forms header configured.This file can only be edited in Crowdin’s web interface.This is the command used to launch the extractor. %o expands to the name of output file, %K to list of keywords, %F to list of input files, %C to charset flag (see below).This project has no files that can be translated in Poedit.This string was found in Poedit’s translation memory.This will be attached to the command line only if source code charset was given. %c expands to charset value.This will be attached to the command line once for each input file. %f expands to the filename.This will be attached to the command line once for each keyword. %k expands to the keyword.TotalTransformationsTranslatable entries aren’t added manually in the Gettext system, but are automatically extracted from source code. This way, they stay up to date and accurate. Translators typically use PO template files (POTs) prepared for them by the developer.Translated: %d of %d (%d %%)Translation LanguageTranslation MemoryTranslation Needs &WorkTranslation PropertiesTranslation needs &workTranslation propertiesTranslation suggestions:Translation — %sTranslation:Translations couldn’t be updated from the source code, because no code was found in the location specified in the catalog’s Properties.TwoUTF-8 (recommended)UndoUnhandled exception occurred: %sUnix (recommended)UntransUpUpdateUpdate allUpdate all catalogs in the projectUpdate catalog - synchronize it with sourcesUpdate from &POT File…Update from &POT file…Update from POTUpdate summaryUpdatesUpdating catalogUpdating failedUpdating the catalog failed. Click on 'Details >>' for details.Updating user information…Uploading translations…Use custom expressionUse custom list font:Use custom text fields font:Use default rules for this languageUse these keywords (function names) to recognize translatable strings in source files:Use translation memoryValidateValidation resultsVersion %sWaiting for authentication…Welcome to PoeditWhat is Crowdin?When updating from sourcesWhole words onlyWindowWindowsWrap aroundWrap at:YesYou can also extract translatable strings directly from the source code:You can’t drop more than one file on Poedit window.You must restart Poedit for this change to take effect.Your NameYour changes will be lost if you don’t save them.Your name and email address are only used to set the Last-Translator header of GNU gettext files.ZeroZoomaltctrldon’t delete temporary files (for debugging)e.g. nplurals=2; plural=(n > 1);fuzzy match within the filego to item at given line numberhandle a poedit:// URIpre-translate from TMshiftunknown languageyour_email@example.com“%s” is not a valid POT file.Project-Id-Version: poedit Report-Msgid-Bugs-To: help@poedit.net POT-Creation-Date: 2017-12-05 15:52+0100 PO-Revision-Date: 2017-12-05 09:51-0500 Last-Translator: vslavik Language-Team: Kabyle Language: kab_KAB MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=(n != 1); X-Generator: crowdin.com X-Crowdin-Project: poedit X-Crowdin-Language: kab X-Crowdin-File: /locales/poedit.pot (yettwabeddel) (ur yettwasekles ara)%d n unekcum%d n inekcumen%d n unekcum ičur.%d n inekcumen čuren.%d n tuccḍa%d n tuccḍiwin%d n wugur i d-nufa di tsuqqilt.%d n wuguren i d-nufa di tsuqqilt.%i n izirig n ufaylu “%s” ur d-yuli ara akken iwata.%i n izirigen n ufaylu “%s” ur d-ulin ara akken iwata.Amasal %sIsmenyifen n %sAmasal %sƔefƔef PoeditSnesTuɣalinTi&craḍ&Sefsex&Sfeḍ&Mdel&Nɣel&KkesSnes u kemmelSnes u kemmel&ẒregAfa&yluNadi…Adlisfus n &GNU gettextAdlisfus n &GNU gettext&BduSe&grew s twennaḍtSe&grew s twennaḍt&Tallelt&AmaynutAmaynut…Ɣer &zdat>Tasuqilt tuḍfirtTasuqilt tuḍfirt&Ala&IHTallelt ɣef uẓṭṭaTallelt ɣef uẓṭṭa&di...&Ldi…Sen&teḍ&IsmenyifenImenyafen…Tasu&qilt yezrinTasu&qilt yezrinIraten…Sfeḍ tisuqqilin yettwakksenSfeḍ tisuqqilin yettwakksenFfeɣErr-&dSe&mselsi&Sekles&Sekles amẒer tiwelhiwinẒer tiwelhiwinSe&fsexZwir inekcumen ur nettwasuqqel araZwir inekcumen ur nettwasuqqel araLeqqem seg yiɣbulaLeqqem seg yiɣbulaSentem tisuqqilinSentem tisuqqilinTi&meẓriwt&Ih(0 amaunyt, 0 yezri)(Ẓer ugar ɣef GNU gettext)(Amaynut : %i, yezri : %i)(Seqdec tutlayt n lexṣas)(yesra Windows 8 neɣ amaynut)< &Ɣer deffirZuɣer-sers ikaramen dagi neɣ seqdec tanast +Zuɣer-sers ikaramen dagi neɣ seqdec tanast +Γef %sImiḍanenRnu awennitRnu ifuyla…Rnu ikaramen…Rnu isekkilen n usemselsi…Rnu awennitRnu akaram ɣer tebdartRnu ifuyla…Rnu ikaramen…Rnu isekkilen n usemselsi…Awalen yufraren imernanenAnayen sgettxt-nniḍen:AnaẓiIɣewwaṛen inaẓiyen n tukkist…Iɣewwaṛen n tukkist leqqayenIɣewwaṛen inaẓiyen n tukkist…Ifuyla merra n tsuqqiltAkk iwennitenSeqdec daɣen awalen n tsarutt imezwar tutlayin yettwasefrakenAlt+Yalas sermad taɣzut n usekcem n uḍrisAferdis si tebdart n yifuyla n unekcum :Aferdis si tebdart n yismawen yufraren :TimeẓriSnesS tidett tebɣiḍ ad tekkseḍ amassaf “%s” ?D tidett tebɣiḍ ad talseḍ awennez n tkatut n tsuqqilit ?Anadi awurman n umucceḍAsefsu awurman n ufaylu MO deg weseklesTuɣalinAbrid agejdan :Ileqman bta gebren amaynut d usnerni aneggaru, acu kan zemren ar rkiden ara.Sɛeddi kulec ɣer uɣawas amezwaruAfaylu akaram yerreẓ : talɣa n wesget msgstr tettwaseqdec war msgid_pluralAfaylu akaram yerreẓ : talɣa n wasuf msgstr tettwaseqdec lwaḥid akked msgid_pluralḌumS lexṣas, igmaḍ urmeɣtuyen ddan u ttwacerḍen d imewẓiyen u ḥwaǧen tasnilest. Fren taxṭirt-agi ma yella tebɣiḍ ad tsedduḍ ḥaca tinmeɣrayin tiseddiyin.AkaramSf&eḍSefsexD awezɣi asnulfu n ukaram akudan.Ulamek aselkem n wahil : %sSelket s asekkil ameqranAkaramAkaram yettwabeddel. Tebɣiḍ ad teskelseḍ ibeddilen ?Iraten n ukaramAsefrak n ikaramenAsefrak n ikaramenAmsefrak n ikaramenBeddel tutlayt n ugrudemTagrumma n isekkilen :Senqed isemli turaSelken taɣdirawt akked tajerrumtSelken taɣdirawt di lawan n tiraNadi ileqman…Selken tuccḍiwin di tsuqqilinNadi imucceḍen…Senqed aaɣdirawtSfeḍSfeḍ tasuqqiltSfeḍ awennitSfeḍ tasuqqiltMdelTtekki di tsuqqilt akked wiyiḍTtekki di tsuqqilt akked wiyaḍAlqaḍ n ifuyla iɣbula…Anzaḍ i tussfa n tsuqqilin :Awennit:Iwenniten ibeddun s uzwir:Sefsu ɣer MO…Sefsu ɣer…Afaylu n tsuqqilt yefsaSeɣwer tussfa n tengalt taɣbalut deg iraten.AsentemNɣelNɣel seg wasufNɣel seg weḍris aɣbaluNɣel seg wasufNɣel seg weḍris aɣbaluAseɣti awurman n teɣdirawtD awezɣi asali n ufaylu %s, izmer ad yili yerreẓ.D awezɣi asekles n ufaylu %s.Snulfu-d tasuqqilt tamaynutSnulfu-d tasuqqilt tamaynutSnulfu-d asenfar amaynut n tsuqqilinTuccḍa n CrowdinCrowdin d agens n usefrek n tsuqqilin ɣef uzeṭṭa u d allal n usuqqel ideg zemren ad kkin aṭas n medden. Poedit yezmer ad yesemtawi akken ilaq ifuyla PO di Crowdin.Ctrl+G&zemImassafen yugnen:Imassafen yugnen:GzemTiddi n uzadur n isefka ɣef uḍebsi :KkesKkes amassafKkes asenfarIkaramen:Sken ID n inekcumenSken ID n inekcumenD tidett tebɣiḍ ad tgeḍ amucceḍ n ikaramen merra n usenfar-agi ?tebɣiḍ ad tekkeseḍ asenfar-agi ?Tebɣiḍ ad tekkseḍ tisuqqilin merra ur nettwaseqdac ara ?Ur seklas araUr d-skan ara tikelt-nniḍenUr cerreḍ ara tisuqqilin tiseddiyin d timewẓiyinUr seklas araUr d-skan ara tikelt-nniḍenAkesserZdem afaylu seg usenfar n Crowdin, suqqel u mtawi ibeddilen-ik.Asider n tsuqqilin tingurra...Azdam n tsuqqilin yensa deg wesenfar-agi.Ff&eɣSifeḍ s &talɣa HTML…Ẓreg&Ẓreg awennitẒreg awennitẒreg awennitẒreg tasuqiltẒreg tasuqqiltẒreg awennitẒreg asenfarẒreg asenfarAsiẓregẒreg…Imayl:KcemƐeddi ɣer ugdil aččuranInekcumen deg ukaram zemren ad ilin d urmeɣtuyen.Inekcumen deg ukaram-agi sɛan amḍan n talɣiwin n wesget i yemgarraden ɣef win i yettwamellan deg inixef Plural-FormsZwir inekcumen yesɛan tuccḍiwinZwir inekcumen yesɛan tuccḍiwinInekcumen yesɛan tuccḍiwin ttucerḍen s uzeggaɣ di tebdart. Isalen ɣef ɣef tuccḍa ad d-baben mi ara tferneḍ anekcum.Tuccḍa deg usali n ufaylu akaram '%s'.Tuccḍa di tulya n ufayluTuccḍa di tulya n ufaylu %s !Tuccḍa deg wesekles n ukaramInezriyenAkkIberdan ur nettki araSifeḍ ar…Ssef seg seg yiɣbulaSuffeɣ tizmilin i tsuqilin si:Ssef aḍris seg yifuyla iɣbula deg yikaramen-agi :Asuffeɣ n izriren ara yettwasuqlen…Asebddi n umassafImassafenTaladna terreẓ : %sTuccḍa di teɣwalt akked Poedit.Tuccḍa deg weɛebbi n ukaram yettwassefen.Tuccḍa deg wezday n ikaramen gettext.Aleqqem n tkatut n tsuqilin ur yeddi ara: %sAfayluAfaylu “%s” ulac-it.Afaylu '%s' mači d akaram n yizen.Afaylu '%s' i tɣuri kan ihi ur tezmireḍ ara ad t-teskelseḍ-t. Ttxil-k skels-it s yisem-nniḍen.Afaylu :Akemmel…NadiNadi uḍfirNadi uzwirNadi semselsi…Nadi deg yiwennitenNadi deg yiḍrisen iɣbulaNadi di tsuqilinNadi uḍfirtNadi uzwirSbadu tutlaytSbadu tutlaytSeɣti tasenṭiḍtSeɣti tasenṭiḍtTalɣa %iYettuɣal-dGNU gettextAmatuRuḥ ɣer wesɣal %iRuḥ ɣer wesɣal %iIfuyla HTMLTalleltFfer %sFfer ayen iqqimenFfer agalis n yidisFfer tafeggagt n waddadFfer izen-agi n ulɣuIDMa tkemmeleḍ asizdeg, tisuqqilin merra i yettwacerḍen amzun ttwakksent ad ttwakksent i lebda. Asmi ara tebɣuḍ ad tent-ternuḍ ilaq ak ad tent-tesuqqeleḍ tikkelt-nniḍen.Ur ttaqaṛ ara taruẓi n usekkilAkter n tsuqqilin…Seddu ileqman bêtaIsalen ɣef umsuqqelSbeddAfaylu d urmeɣtuTiɣri:EǧǧTangalt neɣ isem n tutlayt (amedya. kab_Kab)Tutlayt n tsuqqilt kifkif-itt akked tutlayt taɣbalut.Ulac asbadu n tutlayt n tsuqilt.Tutlayt n tsuqqilt :Afran n tutlaytTarbaɛt n tutlayt:Tutlayt:Abeddel angarruẒer ugar ɣef awalen yufraren n GettextLmed seg yifuyla…Ẓer ugarIssin ugar ɣef CrowdinẒer ugar ɣef wawalen yufraren n gettextẒer ugar ɣef talɣiwin n wesgetLmed seg yifuyla…Ẓer ugarIssin ugar ɣef CrowdinZelmaḍAjerriḍ %d n ufaylu '%s'  yerreẓ (isefka n %s d urmeɣtuyen).Tagarra n ujerriḍ :Tabdart n imassafen berzen s tenqiḍt-ticcert (amedya. *.cpp;*.h) :Ifuyla MO ur tezmireḍ ara ad ten-ẓergeḍ srid di Poedit.Selket s asekkil amecṭuḥSelket s asekkil ameqranInixef ur yemsil ara akken ilaq:'%s'Asdukel n wayen imgaraden…SimẓiIsem n usenfar n tsuqqiltIsem :Uḍfir ur nemmidtUḍfir ur nemmidtYuḥwaǧ amahilYuḥwaǧ amahilNe jamais laisser la main à la liste des chaînes. Lorsqu'elle est activée, il faut utiliser les touches Ctrl + Haut/Bas de navigation, mais vous pouvez aussi taper le texte directement sans avoir à utiliser la touche de tabulation pour activer la zone de traduction.AmaynutAmaynut seg ufaylu &POT/PO…Amaynut seg ufaylu &POT/PO…Izraren imaynutenTalgha n usget tudfirtTalgha n usget tudfirtAlaUr d-nufi ara inmeɣrayenUlac inekcumen i yzemren ad ačarent.Ur d-nufi ara inmeɣrayenUr d-nufi ula d ugur di tsuqqilt.Ulac tiwelhiwin i weferdis yettwafernen.Ulac isenfaren n tsuqqilt deg wemiḍan-inek n Crowdin.Tilɣa n usget ur ttwasuqlent ara merra.Yegdel, ttxil-k qqen tikkelt-nniḍen.Tamawt i yemsuqqlen :IhIzriren yezrinYiwenSermed kan ma yella tetḥeqqeḍ belli Takatut n Tsuqilt inek tgerrez. S lexṣas akk inmeɣriyen n Tkatut n Tsuqilt ad ttwacerḍen uḥwaǧen amahil yerna ilaq ad ttwasqerdcen send aseqdec-nnsen.Aččar ḥaca tinmeɣrayin tiseddiyinLdiLdi tasuqilt CrowdinLdi seg Crowdin…Récemment ouvertsLdi afaylu PO i yellan u ẓreg tasuqqilt.Ldi akaramLdi tamudimt n ukaramLdi seg Crowdin…Ldi deg wemaẓragLdi deg wemaẓragLdi...Ldi…IɣewwaṛenWayeḍUzwir ur nemmidUzwir ur nemmidTasuqilt POIfuyla n tsuqqilt POTineɣrufin POT n usuqqelIfuyla POT d timudimin kan ur sɛin ara tisuqqilint. Iwakken ad tgeḍ tasuqqilt, snulfu-d afaylu amaynut PO seg tmudimt.SenteḍSenṭeḍ s uḥraz n uɣanibIberdanTtxil-k ldi u ẓreg afaylu PO anmeɣray. Mi ara t-teskelseḍ, afaylu MO ad yemucceḍ daɣen.Sekles qbel afaylu. Ur tezmireḍ ara ad tẓergeḍ tanegzumt-agi uqbel.AsgetTalɣiwin n wesget i yeseqdec ukaram-agi ulac-itent di tnumi n %s.Talɣiwin n wesget:Asget :PoeditPoedit - Asefrak n ikaramenPoedit yeseɣti i yiman-is agbur urmeɣtu n ufaylu “%s”.Poedit yezmer ad yeɛreḍ ad yačar inekcumen imaynuten, ḥaca si tsuqilin n ufaylu-agi neɣ si tkatut n tsuqilt. Iwakken takatut-inek n tsuqilt ad tgerrez ilaq ad s-ternuḍ aṭas n inekcumen.Poedit d amaẓrag n tsuqqilin yeshel i weseqdec.Tazar-suqilt…Tasuqilt tuzwirtYečur s tzar-katut%u n uzrar yettwasuqqel%u n izraren ttwasuqqlenTazar-suqilt…Tasuqilt tuzwirt tawurmant tettaf di tkatut n isuqilt inmeɣriyen iseddiyen neɣ imewẓiyen i inekcumen ilmawen akken ad ten-taččar yis-n.IsmenyifenImenyafen...Imenyafen…Ḥrez amsal n ifuyla i yellanTalgha n usget tuzwirtTalgha n usget tuzwirtAḍris aɣbalu uzwir :Isem akked lqem n usenfar :Isem n usenfar :Asenfar :SfeḍSfeḍ tisuqqilin yettwakksenFfeɣFfeɣ si %sMelmi kanErr-dTimsisɣal:SismeḍYeggra-d : %dSemselsiSemselsi i &meṛṛaSemselsi i &meṛṛaIzraren n usemselsiSemselsi…Tasenṭiḍt Plural-Forms i yelaqen txuṣ.Ales awennezAles awennez n tkatut n tsuqqiltAlus n uwennez n tkatut n tsuqqilt ad yesfeḍ i lebda tisuqqilin i yettwaḥerzen degs. Tamhelt-agi ur tesɛi ara tuɣalin ɣer deffir .CeggerYefusSeklesSekles s y&isem…Sekles s y&isem…Sekles amSekles s yisem…Sekles akaramSekles ibeddilen&Fren akkFren akkFren akaramFren ifuyla n tsuqqilt ara tketreḍFren tutlayt-ik tamenyaftImeẓluyenSbadu asɣal %iSbadu tutlaytSbadu asɣal %iSbadu tutlaytMaj+Sken akkSken agalis n yidisUr skan ar taɣdirawt akked tjerrumtSken tafeggagt n waddadSken isemselsiyenSken neɣ ffer agalis n yidisSken agalis n yidisSken tafeggagt n waddadSken agzul mbaɛd amucceḍ n ukaramAgalis n yidisKcemFfeɣKcemQqen ɣer CrowdinFfeɣTeqqneḍ s yisem:AsufAsuf :Anɣel/asenteḍ amegzu Ijerriḍen imegzaIzdayen imegzaTiskarin timegzaFren s umizzwer n ufayluSmizzwer s uɣbaluSmi&zzwer s tsuqiltFren s umizzwer n ufayluSmizzwer s uɣbaluSmi&zzwer s tsuqiltTagrumma n isekkilen n tengalt taɣbalut :Imassafen n tengalt taɣbalut seqdacen-ten i wenadi di tengalt taɣbalut ɣef izraren n tsuqqilt iwakken ad ttwassfen yerna ad ttwasuqqlen.Tangalt taɣbalut ur tewjid ara.Afaylu aɣbaluTummant n ufaylu aɣbalu:Aḍris aɣbaluAḍris aɣbalu — %sAḍris aɣbalu :Awalen yufraren n iɣbulaIberdan n iɣbulaAwalen yufraren n yiɣbulaIberdan n iɣbulaAmeslayAseɣtay n teɣdirawt yensa, acku amawal i %s ur yettusbedd ara.Taɣdirawt akked tjerrumtBdu ameslayḤbes ameslayTisuqqilin yettwaḥerzen :Izraren ara tnadiḍIsemselsiyenIsumarIsumar ur ttawjaden ara ma yella ulac asbadu n tutlayt n tsuqqilt. Ayagi, yezmer ad iḥaz timeẓliyin-nniḍen, am talɣiwin n wesget.Iteddu s tmeslayin merra n usihel n ifecka GNU gettext (PHP, C/C++, C#, Perl, Python, Java, JavaScript d wiyaḍ).MtawiAmtawi akked CrowdinMtawi tisuqqilin akked CrowdinAmtawiTuccḍa n umtawiAmtawi akked %s yecceḍ.Amtawi akked %s…Amtawi akked Crowdin yerreẓ.Tuccḍa n tseddast di tsenṭiḍt Plural-Forms ("%s").MTṬṭef afaylu PO neɣ tamudimt POT tesuffɣeḍ-d segs tasuqqilt tamaynut.Awi-d izraren n usuqqel n tmudimt POT i yellan yakan.Isem n terbaɛt akked tansa email neɣ URLAsemselsi n uḍrisTakatut n tsuqqilt MT ur tesɛi ara izraren yugdan ɣer ugbur n ufaylu-agi. Ayagi yettili-d i tsuqqilin tizgen-aymaniyin mi ara yelmed Poedit seg yifuyla yettwasuqqlen s ufus.Akaram yugi ad yekles s tegrumma n isekkilen '%s', am akken i yettwamel deg iɣewwaren ukaram. Yettwasekles s tegrumma n isekkilen UTF-8 yerna tettwabeddel twila.Afaylu ur yezmir ara ad yefsu ɣer umasal MO u ad yettwaseqdec.Afaylu yugi ad yeldi.Afaylu yesɛa iferdisen usligen, ayen i yegedlen deg yifuyla PO u yettqerriɛ asqedc n ufaylu. Poedit yefra ugur, maca ilaq ad tselkeneḍ tisuqqilin i yettwacerḍen d timawaẓin u ad tent-teseɣtiḍ ma yelaq.Afaylu izmer ad yili yerreẓ neɣ amasal-ines ur t-yesemmezdey ara Poedit.Afaylu yefsa ɣer umasal MO, maca wissen ma ad yeddu akken ilaq.Afaylu yettwasekles s tɣellist u yefsa ɣer umasal MO, maca wissen ma ad iddu akken ilaq.Afaylu yettwasekles s tɣellist, maca yugi ad yefsu ɣer umasal MO yerna ur yezmir ara ad yettwaseqdec.Afaylu yettwasekles s tɣellist.Aɣbalu n uḍris aqbuṛ (send asnifel n lqem) anida tmeɣra tsuqilt ittemcabin.Ma tebɣiḍ ad tačareḍ akaram-agi s shala mucceḍ-it seg ufaylu POT :Tasuqilt ur tebdi ara s tallunt.Tasuqilt tabda s wengaz n ujerriḍ, ma d aḍris aɣbalu xaṭi.Tasuqilt tfukk s tallunt, ma d aḍris aɣbalu xaṭi.Tasuqilt tfukk s “%s”, maca aḍris aɣbalu ifukk s “%s”.Ixuṣ wengaz n ujerriḍ di tagarra n tsuqqilt.Txuṣ tallunt di tagarra n tsuqqilt.Tasuqilt tewjed i wseqdec, maca %d n unekcum ur yettwasuqqel ara.Tasuqilt tewjed i wseqdec, maca, %d n inekcumen ur ttwasuqqelen ara.Tasuqilt tewjed i wseqdec.Tasuqilt ilaq ad tfakk s “%s”.Tasuqilt ur ilaq ara ad tfak s “%s”.Tasuqilt ilaq ad tebdu am tefyirt.Tasuqilt ilaq ad tebdu s usekkil amecṭuḥ.Tasuqilt tabda s tallunt, ma d aḍris aɣbalu xaṭi.Tisuqilin ttwacerḍent uḥwaǧent amahil, acku zemrent ad ilint d timewẓiyin. Ilaq ad tent-talseḍ tamuɣli.Ulac tisuqqilin. Ayagi iffeɣ i lɛada.Yella wugur deg wemsal n ufaylu (maca yettwasekles akken ilaq).Llan inezriyen deg weɛebbi n ukaram. Kra n isefka ad ilin xuṣen neɣ errẓen.Iɣewaren-agi ad beddelen amsal adigan n ifuyla PO. Beddil-iten ma yella tella sebbat tulmisin amedya asenqed n lqem.Izraren-agi ulac-iten tura deg yiɣbula. Poedit ad ten-yekkes seg ukaram.Izraen-agi nufa-ten-id deg yiɣbula maca ulac-iten deg ukaram. Poedit ad ten-yernu ɣer ukaram tura.Akaram-agi yesɛa inekcumen n wesget, maca ulac tawila n inixef Plural-Forms.Afaylu-agi tzemreḍ ad t-tẓergeḍ ḥaca deg wegrudem n web n Crowdin.Attaya tnezḍayt i yesekkaren amassaf. %o : smeɣred ɣer yisem n ufaylu n tuffɣa, %K : beqqeḍ awalen yufraren, %F : beqqeḍ ifuyla n unekcum, %C : tagrumma n isekkilen (ẓer uksar-agi).Asenfar-agi ur yesɛi ara ifuyla i tzemreḍ ad tsuqqleḍ s Poedit.Azrar-agi nufat-id di tkatut n tsuqqilt n Poedit.Inséré dans la ligne de commande lorsque le code de jeu de caractères de la source est fourni. %c : valeur du jeu de caractères.Yettwager deg izirig n tladna i yal afaylu n unekcum. %f: isem n ufaylu.Inséré dans la ligne de commande pour chaque mot clé. %k : le mot clé.UɣridAselketInekcam izzemren ad ttwasuqlen ur ttwarnan ara s ufus ar unagraw Gettext, acu kanttwakksen-d s wudem awurman seg tangagal aɣbalu. Akka, ad qqimen ttwaleqqmen, d iseddiyen. Imsuqal seqdacen ifuyla s tneɣruft PO (POTs) iheggan ineflayen.Tasuqilt n: %d seg %d (%d %%)Tutlayt n tsuqqiltTakatut n tsuqqiltTasuqilt tuḥwaǧ asnilesIraten n tsuqqiltTasuqilt tuḥwaǧ asnilesIraten n tsuqqiltIsumar n tsuqqilt :Tasuqilt — %sTasuqilt :Tisuqqilin ugint ad muccḍent seg tengalt taɣbalut, acku ur d-nufi ara tangalt deg yideg i d-yettunefken deg iraten n ukaram.SinUTF-8 (recommandé)SefsexTeḍra-d tsureft ur nsefrak ara : %sUnix (asemter)Ur yettwasuqqel araAsawenLeqqemLeqqem AkkLeqqem ikaramen merra n usenfarLeqqem akaram - Mtawi akked yiɣbulaLeqqem seg ufaylu POT…Leqqem seg ufaylu POT…Leqqem seg POTAgzul n umucceḍAmucceḍAleqqem n ukaramAleqqem yecceḍAleqqem n ukaram yecceḍ. Senned ɣef « Talqayt>> » akken ad teẓreḍ ugar.Aleqqem n telɣut n useqdac…Asali n tsuqilin…Seqdec tanfalit yugnenSeqdec tasefsit yugnen :Seqdec tasefsit yugnen i teɣzuyin n uḍris :Seqdec alugen n lexṣas n tutlayt-agiSeqdec awalen-agi yufraren (ismawen n twura) iwaken ad tɛeqleḍ izraren n usuqqel deg yifuyla iɣbula :Seqdec takatut n tsuqqiltSentemIgmaḍ n useɣbelLqem %sAraǧu n usesteb...Ansuf ɣer PoeditAcu-t Crowdin ?Mi ara yili umucceḍ seg yiɣbulaAwalen ummiden kanAsfayluWindowsQfelTuɣalin s ajerriḍ di :IhTzemreḍ daɣen ad tessfeḍ izraren n usuqqel srid seg tengalt taɣbalut :Ur tezmireḍ ar ad tserseḍ ugar n yiwen n ufaylu deg wesfaylu n Poedit.Ilaq ad talseḍ asekker n Poedit iwakken ad yeddu ubeddil-agi.NekwaIbeddilen-ik ad ruḥen ma yella ur ten-teskelseḍ ara.Isem-ik akked tansa-inek e-mail ad ttwasqedcen kan i wesbadu n tsenṭiḍt Last-Translator n yifuyla GNU gettext.IlemSimɣuraltctrlur tekkes ara ifuyla ikudanen (i weseɣti)amedya. nplurals=2; plural=(n > 1);taččart ittemcabin deg ufayluddu ar uferdis n izirig d-ittunefkengère une poedit: // URItasuqilt tuzwirt si TMmajTutlayt ur nettwassen aratansa-k.e-maill@amedya.com“%s” mačči d afaylu POT ameɣtu.poedit-2.0.6/locales/pl.po0000664000372000037200000015525513230131554012333 00000000000000msgid "" msgstr "" "Project-Id-Version: poedit\n" "Report-Msgid-Bugs-To: help@poedit.net\n" "POT-Creation-Date: 2018-01-18 13:57+0100\n" "PO-Revision-Date: 2018-01-18 07:56-0500\n" "Last-Translator: vslavik \n" "Language-Team: Polish\n" "Language: pl_PL\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 " "|| n%100>=20) ? 1 : 2);\n" "X-Generator: crowdin.com\n" "X-Crowdin-Project: poedit\n" "X-Crowdin-Language: pl\n" "X-Crowdin-File: /locales/poedit.pot\n" msgid "Hide this notification message" msgstr "Nie wyświetlaj tej informacji" msgid "Don’t Show Again" msgstr "Nie pokazuj ponownie" msgid "Don’t show again" msgstr "Nie pokazuj ponownie" #, c-format msgid "(New: %i, obsolete: %i)" msgstr "(Nowe: %i, nieaktualne: %i)" msgid "Updating catalog" msgstr "Aktualizowanie pakietu" msgid "Collecting source files…" msgstr "Zbieranie plików źródłowych…" msgid "Extracting translatable strings…" msgstr "Wyodrębnianie ciągów do tłumaczenia…" msgid "Failed to load extracted catalog." msgstr "Nie udało się wczytać wyodrębnionego pliku." msgid "Merging differences…" msgstr "Scalanie różnic…" #, c-format msgid "“%s” is not a valid POT file." msgstr "\"%s\" nie jest prawidłowym plikiem POT." #, c-format msgid "%i line of file “%s” was not loaded correctly." msgid_plural "%i lines of file “%s” were not loaded correctly." msgstr[0] "%i linia pliku \"%s\" nie została prawidłowo załadowana." msgstr[1] "%i linie pliku \"%s\" nie zostały prawidłowo załadowane." msgstr[2] "%i linie pliku \"%s\" nie zostały prawidłowo załadowane." #, c-format msgid "Line %d of file “%s” is corrupted (not valid %s data)." msgstr "Linia %d pliku \"%s\" jest uszkodzona (nieprawidłowe dane %s)." #, c-format msgid "Malformed header: “%s”" msgstr "Zdeformowany nagłówek: \"%s\"" msgid "" "Broken catalog file: singular form msgstr used together with msgid_plural" msgstr "" "Uszkodzony plik pakietu: użyto liczby pojedynczej msgstr razem z msgid_plural" msgid "Broken catalog file: plural form msgstr used without msgid_plural" msgstr "Uszkodzony plik pakietu: użyto liczby mnogiej msgstr bez msgid_plural" msgid "" "There were errors when loading the catalog. Some data may be missing or " "corrupted as the result." msgstr "" "Wystąpiły błędy w czasie odczytu pakietu. W wyniku czego może brakować " "części danych bądź mogą być one uszkodzone." #, c-format msgid "Couldn’t load file %s, it is probably corrupted." msgstr "Nie można wczytać pliku „%s”. Prawdopodobnie jest uszkodzony." #, c-format msgid "" "File “%s” is read-only and cannot be saved.\n" "Please save it under different name." msgstr "" "Plik „%s” ma atrybut „tylko do odczytu” i nie może być zapisany.\n" "Zapisz go pod inną nazwą." #, c-format msgid "Couldn’t save file %s." msgstr "Nie można zapisać pliku %s." msgid "" "There was a problem formatting the file nicely (but it was saved all right)." msgstr "" "Wystąpił problem z dokładnym formatowaniem pliku, ale został on zapisany " "poprawnie." #, c-format msgid "" "The catalog couldn’t be saved in “%s” charset as specified in catalog " "settings.\n" "\n" "It was saved in UTF-8 instead and the setting was modified accordingly." msgstr "" "Ten folder nie może zostać zapisany z zestawem znaków „%s” wybranym w " "ustawieniach folderu.\n" "\n" "Został zapisany w formacie UTF-8, a ustawienia zostały odpowiednio " "zmodyfikowane." msgid "Error saving catalog" msgstr "Błąd zapisywania pakietu" msgid "PO Translation Files" msgstr "Pliki tłumaczeń PO" msgid "POT Translation Templates" msgstr "Szablony tłumaczeń POT" msgid "All Translation Files" msgstr "Wszystkie pliki tłumaczeń" msgid "(Use default language)" msgstr "(Użyj domyślnego języka)" msgid "Select your preferred language" msgstr "Wybierz preferowany język interfejsu" msgid "Language selection" msgstr "Wybór języka" msgid "You must restart Poedit for this change to take effect." msgstr "Aby zmiany zostały zastosowane, należy ponownie uruchomić Poedit." msgid "Syncing" msgstr "Synchronizowanie" #. TRANSLATORS: %s is a cloud destination, e.g. "Crowdin" or ftp.wordpress.com etc. #, c-format msgid "Syncing with %s…" msgstr "Synchronizuję z %s..." #. TRANSLATORS: %s is a cloud destination, e.g. "Crowdin" or ftp.wordpress.com etc. #, c-format msgid "Syncing with %s failed." msgstr "Synchronizacja z %s nie powiodła się." msgid "Syncing error" msgstr "Błąd synchronizacji" msgid "Downloading translations is disabled in this project." msgstr "Pobieranie tłumaczeń jest wyłączone w tym projekcie." msgid "Not authorized, please sign in again." msgstr "Brak autoryzacji, zaloguj się ponownie." msgid "" "Crowdin is an online localization management platform and collaborative " "translation tool. Poedit can seamlessly sync PO files managed at Crowdin." msgstr "" "Crowdin jest internetową platformą do zarządzania tłumaczeniami oraz " "narzędziem do współpracy nad tłumaczeniami. Poedit obsługuje bezproblemową " "synchronizację plików PO z Crowdin." msgid "Sign In" msgstr "Zaloguj" msgid "Sign in" msgstr "Zaloguj się" msgid "Sign Out" msgstr "Wyloguj" msgid "Sign out" msgstr "Wyloguj się" msgid "Waiting for authentication…" msgstr "Oczekiwanie na uwierzytelnienie…" msgid "Updating user information…" msgstr "Aktualizowanie informacji o użytkowniku…" msgid "Signed in as:" msgstr "Zalogowany jako:" msgid "Learn More About Crowdin" msgstr "Dowiedz się więcej o platformie Crowdin" msgid "Learn more about Crowdin" msgstr "Dowiedz się więcej o platformie Crowdin" msgid "Sign in to Crowdin" msgstr "Zaloguj się do Crowdin" msgid "Open Crowdin translation" msgstr "Otwórz tłumaczenie z Crowdin" msgid "Project:" msgstr "Projekt:" msgid "Language:" msgstr "Język:" msgid "File:" msgstr "Plik:" msgid "No translation projects listed in your Crowdin account." msgstr "" "Twoje konto w systemie Crowdin nie uwzględnia żadnych projektów tłumaczeń." msgid "This project has no files that can be translated in Poedit." msgstr "" "Ten projekt nie zawiera plików, które mogą być przetłumaczone w programie " "Poedit." msgid "This file can only be edited in Crowdin’s web interface." msgstr "" "The plik może być edytowany jedynie bezpośrednio na stronie internetowej " "Crowdin." msgid "Downloading latest translations…" msgstr "Pobieranie najnowszych tłumaczeń…" msgid "Syncing with Crowdin failed." msgstr "Synchronizacja z Crowdin nie powiodła się." msgid "Crowdin error" msgstr "Błąd Crowdin" msgid "Uploading translations…" msgstr "Przesyłanie tłumaczeń…" msgid "&Copy" msgstr "&Kopiuj" msgid "Learn more" msgstr "Dowiedz się więcej" msgid "Learn More" msgstr "Dowiedz się więcej" msgid "&Help" msgstr "&Pomoc" msgid "MO files can’t be directly edited in Poedit." msgstr "Plików MO nie można edytować bezpośrednio w programie Poedit." msgid "Error opening file" msgstr "Błąd podczas otwierania pliku" msgid "" "Please open and edit the corresponding PO file instead. When you save it, " "the MO file will be updated as well." msgstr "" "Zamiast tego, otwórz i edytuj odpowiadający mu plik PO. Podczas zapisywania " "pliku PO, odpowiadający mu plik MO zostanie zaktualizowany." msgid "don’t delete temporary files (for debugging)" msgstr "nie usuwaj plików tymczasowych (dla debugowania)" msgid "handle a poedit:// URI" msgstr "włącz obsługę protokołu poedit://" msgid "go to item at given line number" msgstr "przejdź do elementu w podanym numerze linii" msgid "Failed to communicate with Poedit process." msgstr "Komunikacja z procesem programu Poedit nie powiodła się." #, c-format msgid "Unhandled exception occurred: %s" msgstr "Wystąpił nieobsługiwany wyjątek: %s" msgid "Open catalog" msgstr "Otwórz pakiet" #, c-format msgid "File “%s” doesn’t exist." msgstr "Plik “%s” nie istnieje." msgid "Poedit is an easy to use translations editor." msgstr "Poedit jest łatwym w użyciu edytorem tłumaczeń." msgid "Catalogs Manager" msgstr "Menedżer pakietów" msgid "Check for Updates…" msgstr "Sprawdź dostępność aktualizacji…" msgid "&Edit" msgstr "&Edycja" msgid "Undo" msgstr "Cofnij" msgid "Redo" msgstr "Ponów" msgid "Paste and Match Style" msgstr "Wklej i dopasuj styl" msgid "Delete" msgstr "Usuń" msgid "Spelling and Grammar" msgstr "Pisownia i gramatyka" msgid "Show Spelling and Grammar" msgstr "Pokaż pisownię i gramatykę" msgid "Check Document Now" msgstr "Sprawdź dokument teraz" msgid "Check Spelling While Typing" msgstr "Sprawdzaj pisownię w trakcie pisania" msgid "Check Grammar With Spelling" msgstr "Sprawdzaj gramatykę i pisownię" msgid "Correct Spelling Automatically" msgstr "Poprawiaj pisownię automatycznie" msgid "Substitutions" msgstr "Zamienniki" msgid "Show Substitutions" msgstr "Pokaż zamienniki" msgid "Smart Copy/Paste" msgstr "Inteligentne kopiowanie/wklejanie" msgid "Smart Quotes" msgstr "Inteligentne cytaty" msgid "Smart Dashes" msgstr "Inteligentne myślniki" msgid "Smart Links" msgstr "Inteligentne odnośniki" msgid "Text Replacement" msgstr "Zastępowanie tekstu" msgid "Transformations" msgstr "Transformacje" msgid "Make Upper Case" msgstr "Zamień na duże litery" msgid "Make Lower Case" msgstr "Zamień na małe litery" msgid "Capitalize" msgstr "Zamień na kapitaliki" msgid "Speech" msgstr "Narracja" msgid "Start Speaking" msgstr "Rozpocznij mówienie" msgid "Stop Speaking" msgstr "Zatrzymaj mówienie" msgid "&View" msgstr "&Widok" msgid "Enter Full Screen" msgstr "Tryb pełnoekranowy" msgid "Window" msgstr "Okno" msgid "Minimize" msgstr "Minimalizuj" msgid "Zoom" msgstr "Zoom" msgid "Bring All to Front" msgstr "Umieść wszystko na wierzchu" #. TRANSLATORS:File kind displayed in Finder/Explorer msgid "PO Translation" msgstr "Tłumaczenie PO" msgid "The file cannot be opened." msgstr "Nie można otworzyć pliku." msgid "Invalid file" msgstr "Nieprawidłowy plik" msgid "" "The file may be either corrupted or in a format not recognized by Poedit." msgstr "Plik może być uszkodzony lub ma format nierozpoznawany przez Poedit." msgid "You can’t drop more than one file on Poedit window." msgstr "Na okno Poedit nie można upuścić więcej niż jeden plik." #, c-format msgid "File “%s” is not a message catalog." msgstr "Plik \"%s\" nie jest folderem wiadomości." msgid "Poedit" msgstr "Poedit" msgid "&File" msgstr "&Plik" msgid "&Go" msgstr "Nawi&gacja" #. TRANSLATORS: %s is language name in its basic form (as you #. would see e.g. in a list of supported languages). You may need #. to rephrase it, e.g. to an equivalent of "for language %s". #, c-format msgid "" "Spellchecking is disabled, because the dictionary for %s isn’t installed." msgstr "" "Sprawdzanie pisowni jest wyłączone, ponieważ słownik %s nie jest " "zainstalowany." msgid "Install" msgstr "Zainstaluj" msgid "Catalog modified. Do you want to save changes?" msgstr "Zmodyfikowano pakiet. Czy chcesz zapisać zmiany?" msgid "Save changes" msgstr "Zapisz zmiany" msgid "Your changes will be lost if you don’t save them." msgstr "Zmiany zostaną utracone, jeśli nie zostały zapisane." msgid "Save" msgstr "Zapisz" msgid "Don’t save" msgstr "Nie zapisuj" msgid "Don’t Save" msgstr "Nie zapisuj" msgid "Save as…" msgstr "Zapisz jako…" msgid "Compile to…" msgstr "Skompiluj do…" msgid "Compiled Translation Files" msgstr "Skompilowany plik tłumaczenia" msgid "Export as…" msgstr "Eksportuj jako…" msgid "HTML Files" msgstr "Pliki HTML" msgid "Open catalog template" msgstr "Otwórz szablon pakietu" msgid "Source code not available." msgstr "Kod źródłowy jest niedostępny." msgid "Updating failed" msgstr "Aktualizacja nie powiodła się" msgid "" "Translations couldn’t be updated from the source code, because no code was " "found in the location specified in the catalog’s Properties." msgstr "" "Tłumaczenie nie może być zaktualizowane na podstawie kodu źródłowego, gdyż " "nie został on znaleziony w lokalizacji określonej we właściwościach katalogu." msgid "Entries in the catalog are probably incorrect." msgstr "Wpisy w pakiecie są prawdopodobnie niepoprawne." msgid "Updating the catalog failed. Click on 'Details >>' for details." msgstr "" "Aktualizacja pakietu nie powiodła się. Naciśnij przycisk „Szczegóły »”, aby " "zobaczyć szczegóły." #, c-format msgid "%d issue with the translation found." msgid_plural "%d issues with the translation found." msgstr[0] "W tłumaczeniu znaleziono %d problem." msgstr[1] "W tłumaczeniu znaleziono %d problemy." msgstr[2] "W tłumaczeniu znaleziono %d problemów." msgid "Validation results" msgstr "Wynik weryfikacji" msgid "" "Entries with errors were marked in red in the list. Details of the error " "will be shown when you select such an entry." msgstr "" "Elementy zawierające błędy zostały oznaczone kolorem czerwonym. Szczegółowy " "opis błędu będzie widoczny po wybraniu elementu." msgid "The file was saved safely." msgstr "Plik został zapisany bezpiecznie." msgid "" "The file was saved safely and compiled into the MO format, but it will " "probably not work correctly." msgstr "" "Plik został zapisany bezpiecznie i skompilowany do formatu .mo, ale " "prawdopodobnie nie będzie działał poprawnie." msgid "" "The file was saved safely, but it cannot be compiled into the MO format and " "used." msgstr "" "Plik został zapisany bezpiecznie, ale nie może zostać skompilowany do " "formatu .mo ani użyty." msgid "" "The file was compiled into the MO format, but it will probably not work " "correctly." msgstr "" "Plik został skompilowany do formatu MO jednak prawdopodobnie nie będzie " "działał poprawnie." msgid "The file cannot be compiled into the MO format and used." msgstr "Ten plik nie może zostać skompilowany do formatu MO i użyty." msgid "No problems with the translation found." msgstr "Nie znaleziono problemów." #, c-format msgid "The translation is ready for use, but %d entry is not translated yet." msgid_plural "" "The translation is ready for use, but %d entries are not translated yet." msgstr[0] "" "Tłumaczenie jest gotowe do użycia, ale %d pozycja nie został jeszcze " "przetłumaczony." msgstr[1] "" "Tłumaczenie jest gotowe do użycia, ale %d pozycje nie zostały jeszcze " "przetłumaczone." msgstr[2] "" "Tłumaczenie jest gotowe do użycia, ale %d pozycji nie zostało jeszcze " "przetłumaczonych." msgid "The translation is ready for use." msgstr "Tłumaczenie jest gotowe do użycia." #, c-format msgid "Poedit automatically fixed invalid content in the file “%s”." msgstr "Poedit automatycznie naprawił nieprawidłowości w pliku „%s”." msgid "" "The file contained duplicate items, which is not allowed in PO files and " "would prevent the file from being used. Poedit fixed the issue, but you " "should review translations of any items marked as needing work and correct " "them if necessary." msgstr "" "Plik zawierał powielone elementy, co nie jest dozwolone w plikach PO i " "mogłoby uniemożliwić jego użycie. Poedit naprawił ten problem, ale należy " "przejrzeć tłumaczenia wszystkich pozycji oznaczonych jako wymagające " "dopracowania i w razie potrzeby poprawić je." msgid "Language of the translation isn’t set." msgstr "Nie określono języka tłumaczenia." msgid "Set Language" msgstr "Wybierz język" msgid "Set language" msgstr "Wybierz język" #. TRANSLATORS: This is shown underneath "Language of the translation isn't set (or ...is the same as source language)." msgid "" "Suggestions are not available if the translation language is not set " "correctly. Other features, such as plural forms, may be affected as well." msgstr "" "Podpowiedzi nie są dostępne, jeżeli język tłumaczenia nie jest poprawnie " "ustawiony. Inne funkcje, takie jak liczba mnogą, mogą także nie działać " "poprawnie." msgid "Language of the translation is the same as source language." msgstr "Język tłumaczenia jest taki sam jak język źródłowy." msgid "Fix Language" msgstr "Napraw język" msgid "Fix language" msgstr "Napraw język" msgid "" "This catalog has entries with plural forms, but doesn’t have Plural-Forms " "header configured." msgstr "" "Ten folder zawiera wpisy z formami liczby mnogiej, ale nie posiada " "skonfigurowanego nagłówka form liczby mnogiej." msgid "" "Entries in this catalog have different plural forms count from what " "catalog’s Plural-Forms header says" msgstr "" "Wpisy w tym folderze mają inne formy liczby mnogiej niż zdeklarowane w " "nagłówku form liczby mnogiej" msgid "Required header Plural-Forms is missing." msgstr "Brakuje nagłówka Plural-Forms." #, c-format msgid "Syntax error in Plural-Forms header (\"%s\")." msgstr "Błąd składni w nagłówku Plural-Forms („%s”)." msgid "Fix the Header" msgstr "Napraw nagłówek" msgid "Fix the header" msgstr "Napraw nagłówek" #. TRANSLATORS: %s is language name in its basic form (as you #. would see e.g. in a list of supported languages). You may need #. to rephrase it, e.g. to an equivalent of "for language %s". #, c-format msgid "Plural forms expression used by the catalog is unusual for %s." msgstr "W języku %s formy liczby mnogiej zawarte w pakiecie nie są używane." #. TRANSLATORS: A verb, shown as action button with ""Plural forms expression used by the catalog is unusual for %s.")" msgid "Review" msgstr "Do sprawdzenia" #, c-format msgid "Error loading message catalog file “%s”." msgstr "Błąd podczas wczytywania folderu wiadomości pliku \"%s\"." #, c-format msgid "Translated: %d of %d (%d %%)" msgstr "Przetłumaczone: %d z %d (%d %%)" #, c-format msgid "Remaining: %d" msgstr "Pozostało: %d" #, c-format msgid "%d error" msgid_plural "%d errors" msgstr[0] "%d błąd" msgstr[1] "%d błędy" msgstr[2] "%d błędów" #, c-format msgid "%d entry" msgid_plural "%d entries" msgstr[0] "%d wpis" msgstr[1] "%d wpisy" msgstr[2] "%d wpisów" msgid " (unsaved)" msgstr " (niezapisany)" msgid " (modified)" msgstr " (zmodyfikowano)" #, c-format msgid "Failed to update translation memory: %s" msgstr "Nie udało się zaktualizować pamięci tłumaczeniowej: %s" msgid "Purge deleted translations" msgstr "Wyczyść usunięte tłumaczenia" msgid "Do you want to remove all translations that are no longer used?" msgstr "Czy chcesz usunąć wszystkie nieużywane tłumaczenia?" msgid "" "If you continue with purging, all translations marked as deleted will be " "permanently removed. You will have to translate them again if they are added " "back in the future." msgstr "" "Kontynuując trwale usuniesz wszystkie tłumaczenia oznaczone jako usunięte. " "Jeśli w przyszłości zostaną dodane, konieczne będzie ich ponowne tłumaczenie." msgid "Keep" msgstr "Zachowaj" msgid "Purge" msgstr "Wyczyść" msgid "Copy from source text" msgstr "Skopiuj z tekstu źródłowego" msgid "Copy from Source Text" msgstr "Skopiuj z tekstu źródłowego" #. TRANSLATORS: This is the key shortcut used in menus on Windows, some languages call them differently #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Ctrl+" msgstr "Ctrl+" msgid "Clear translation" msgstr "Wyczyść tłumaczenie" msgid "Clear Translation" msgstr "Wyczyść tłumaczenie" msgid "Edit comment" msgstr "Edytuj komentarz" msgid "Edit Comment" msgstr "Edytuj komentarz" msgid "References:" msgstr "Odwołania:" msgid "&Bookmarks" msgstr "&Zakładki" #. TRANSLATORS: This is the key shortcut used in menus on Windows, some languages call them differently #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Alt+" msgstr "Alt+" #, c-format msgid "Set bookmark %i" msgstr "Wstaw zakładkę %i" #, c-format msgid "Go to bookmark %i" msgstr "Przejdź do zakładki %i" #, c-format msgid "Set Bookmark %i" msgstr "Wstaw zakładkę %i" #, c-format msgid "Go to Bookmark %i" msgstr "Przejdź do zakładki %i" msgid "Hide Sidebar" msgstr "Ukryj pasek boczny" msgid "Show Sidebar" msgstr "Pokaż pasek boczny" msgid "Hide Status Bar" msgstr "Ukryj pasek stanu" msgid "Show Status Bar" msgstr "Pokaż pasek stanu" msgid "Source text:" msgstr "Tekst źródłowy:" msgid "Singular:" msgstr "Liczba pojedyncza:" msgid "Plural:" msgstr "Liczba mnoga:" msgid "Translation:" msgstr "Tłumaczenie:" msgid "Pre-translated" msgstr "Wstępnie przetłumaczone" msgid "Needs Work" msgstr "Wymaga pracy" #. TRANSLATORS: This indicates that the string's translation isn't final #. and has known problems. For example, it might be machine translated or #. fuzzy matched from an older string. The translation should be short and #. convey this. If it's problematic to translate it, "Needs review" is #. acceptable substitute, but note that the meaning is subtly different: #. "needs review" implies that somebody else should review the string after #. I am done with it (i.e. consider it good), while "needs work" implies I #. need to return to it and finish the translation. msgid "Needs work" msgstr "Wymaga pracy" msgid "" "POT files are only templates and don’t contain any translations themselves.\n" "To make a translation, create a new PO file based on the template." msgstr "" "Pliki POT są jedynie szablonem tłumaczenia i nie zawierają one tłumaczeń.\n" "Aby utworzyć nowe tłumaczenie utwórz nowy plik PO oparty na tym szablonie." msgid "Create New Translation" msgstr "Utwórz nowe tłumaczenie" msgid "Create new translation" msgstr "Utwórz nowe tłumaczenie" msgid "Everything" msgstr "Wszystko" #, c-format msgid "Form %i" msgstr "Forma %i" msgid "Singular" msgstr "Liczba pojedyncza" msgid "Zero" msgstr "Zero" msgid "One" msgstr "Jeden" msgid "Two" msgstr "Dwa" msgid "Plural" msgstr "Liczba mnoga" msgid "Other" msgstr "Inne" #, c-format msgid "%s Format" msgstr "Format %s" #. TRANSLATORS: %s is replaced with language name, e.g. "PHP" or "C", so "PHP Format" etc." #, c-format msgid "%s format" msgstr "Format %s" msgid "Source text" msgstr "Tekst źródłowy" #, c-format msgid "Translation — %s" msgstr "Tłumaczenie — %s" msgid "ID" msgstr "ID" #, c-format msgid "Source text — %s" msgstr "Tekst źródłowy — %s" msgid "unknown language" msgstr "Nieznany język" #, c-format msgid "Failed command: %s" msgstr "Błąd polecenia: %s" msgid "Failed to merge gettext catalogs." msgstr "Nie udało się połączyć pakietów gettext." msgid "Source file" msgstr "Plik źródłowy" msgid "Source file occurrence:" msgstr "Występowanie pliku źródłowego:" msgid "Open in Editor" msgstr "Otwórz w edytorze" msgid "Open in editor" msgstr "Otwórz w edytorze" msgid "No references for the selected item." msgstr "Brak odniesień do wybranej pozycji." #, c-format msgid "Error opening file %s!" msgstr "Błąd podczas otwierania pliku %s!" msgid "Find" msgstr "Znajdź" msgid "Replace" msgstr "Zamień" #. TRANSLATORS: Expander in Find window for additional options (case sensitive etc.) msgid "Options" msgstr "Opcje" msgid "Ignore case" msgstr "Ignoruj wielkość liter" msgid "Wrap around" msgstr "Zawijaj wyszukiwanie" msgid "Whole words only" msgstr "Tylko całe wyrazy" msgid "Find in source texts" msgstr "Szukaj w tekstach źródłowych" msgid "Find in translations" msgstr "Szukaj w tłumaczeniach" msgid "Find in comments" msgstr "Szukaj w komentarzach" msgid "Close" msgstr "Zamknij" msgid "Replace &All" msgstr "Z&amień wszystko" msgid "Replace &all" msgstr "Z&amień wszystko" msgid "&Replace" msgstr "Zamień" msgid "< &Previous" msgstr "« &Poprzednie" msgid "&Next >" msgstr "&Następne »" msgid "String to find" msgstr "Tekst do wyszukania" msgid "Replacement string" msgstr "Zamień na tekst" #, c-format msgid "Cannot execute program: %s" msgstr "Nie można uruchomić programu: %s" msgid "Language Code or Name (e.g. en_GB)" msgstr "Kod języka lub nazwa, np. en-GB" msgid "Translation Language" msgstr "Język tłumaczenia" msgid "Language of the translation:" msgstr "Język tłumaczenia:" msgid "Poedit - Catalogs manager" msgstr "Poedit - Menedżer pakietów" msgid "Catalog" msgstr "Pakiet" msgid "Total" msgstr "Razem" msgid "Untrans" msgstr "Nieprzetłumaczone" msgid "Errors" msgstr "Błędy" msgid "Last modified" msgstr "Ostatnio zmodyfikowano" msgid "Select directory" msgstr "Wybierz katalog" msgid "Directories:" msgstr "Katalogi:" msgid "" msgstr "" msgid "Do you want to delete the project?" msgstr "Czy chcesz usunąć projekt?" msgid "Confirmation" msgstr "Potwierdzenie" msgid "" "Do you really want to do mass update of\n" "all catalogs in this project?" msgstr "" "Czy chcesz zaktualizować wszystkie\n" "pakiety w tym projekcie?" msgid "Information about the translator" msgstr "Informacje o tłumaczu" msgid "Name:" msgstr "Autor:" msgid "Your Name" msgstr "Imię i nazwisko" msgid "Email:" msgstr "Adres e-mail:" msgid "your_email@example.com" msgstr "twoj_adres@poczta.pl" msgid "" "Your name and email address are only used to set the Last-Translator header " "of GNU gettext files." msgstr "" "Twoje imię i nazwisko oraz adres e-mail użyte zostaną wyłącznie w celu " "ustawienia nagłówka Last-Translator w plikach GNU gettext." msgid "Editing" msgstr "Edytowanie" msgid "Automatically compile MO file when saving" msgstr "Automatycznie kompiluj plik MO podczas zapisywania" msgid "Show summary after catalog update" msgstr "Wyświetlaj podsumowanie po aktualizacji pakietu" msgid "Check spelling" msgstr "Sprawdzaj pisownię" msgid "Always change focus to text input field" msgstr "Uaktywniaj pole wprowadzania tekstu" msgid "" "Never let the list of strings take focus. If enabled, you must use Ctrl-" "arrows for keyboard navigation but you can also type text immediately, " "without having to press Tab to change focus." msgstr "" "Nie zaleca się włączania tej opcji. Jeśli zostanie włączona, do nawigacji po " "polach trzeba będzie używać klawisza Ctrl i strzałek, ale za to będzie można " "niezwłocznie przystąpić do wpisywania tłumaczonego tekstu." msgid "Appearance" msgstr "Wygląd" msgid "Use custom list font:" msgstr "Użyj niestandardowej czcionki listy:" msgid "Use custom text fields font:" msgstr "Użyj niestandardowej czcionki pola tekstowego:" msgid "Change UI language" msgstr "Zmień język interfejsu" #. TRANSLATORS: This is a note appended to "Check spelling" when running on older Windows versions msgid "(requires Windows 8 or newer)" msgstr "(wymaga Windows 8 lub nowszego)" msgid "General" msgstr "Ustawienia główne" msgid "Use translation memory" msgstr "Używaj pamięci tłumaczeniowej" msgid "Learn From Files…" msgstr "Rozszerz z plików…" msgid "Learn from files…" msgstr "Rozszerz z plików…" #. TRANSLATORS: This is a button that deletes everything in the translation memory (i.e. clears/resets it). msgid "Reset" msgstr "Wyczyść" #. TRANSLATORS: Followed by "match translations within the file" or "pre-translate from TM" msgid "When updating from sources" msgstr "Podczas aktualizacji ze źródeł" #. TRANSLATORS: Preceded by "When updating from sources" msgid "fuzzy match within the file" msgstr "wskaż rozmyte dopasowania w ramach pliku" #. TRANSLATORS: Preceded by "When updating from sources" msgid "pre-translate from TM" msgstr "wstępnie przetłumacz korzystając z pamięci tłumaczeniowej" msgid "" "Poedit can attempt to fill in new entries from only previous translations in " "the file or from your entire translation memory. Using the TM won’t be very " "effective if it’s near-empty, but it will get better as you add more " "translations to it." msgstr "" "Poedit może spróbować wypełnić pola, korzystając wyłącznie z poprzednich " "tłumaczeń zawartych w pliku lub z całej pamięci tłumaczeń. Skuteczność " "użycia TM nie będzie duża, jeśli pamięć jest prawie pusta, będzie jednak " "ulegać poprawie w miarę dodawania kolejnych tłumaczeń." msgid "Stored translations:" msgstr "Zapisane tłumaczenia:" msgid "Database size on disk:" msgstr "Rozmiar bazy danych na dysku:" msgid "Select translation files to import" msgstr "Wybierz pliki tłumaczeń do zaimportowania" msgid "Translation Memory" msgstr "Pamięć tłumaczeniowa" msgid "Importing translations…" msgstr "Trwa importowanie tłumaczeń…" msgid "Finalizing…" msgstr "Finalizowanie…" msgid "Reset translation memory" msgstr "Wyczyść pamięć tłumaczeniową" msgid "Are you sure you want to reset the translation memory?" msgstr "Czy na pewno chcesz wyczyścić pamięć tłumaczeniową?" msgid "" "Resetting the translation memory will irrevocably delete all stored " "translations from it. You can’t undo this operation." msgstr "" "Wyczyszczenie pamięci tłumaczeniowej bezpowrotnie usunie wszystkie " "zapamiętane tłumaczenia. Tej operacji nie można cofnąć." msgid "Cancel" msgstr "Anuluj" #. TRANSLATORS: This is abbreviation of "Translation Memory" used in Preferences on macOS. #. Long text looks weird there, too short (like TM) too, but less so. "General" is about ideal #. length there. msgid "TM" msgstr "TM" msgid "" "Source code extractors are used to find translatable strings in the source " "code files and extract them so that they can be translated." msgstr "" "Wyodrębnianie z kodu źródłowego pozwala odnaleźć teksty, które mogą zostać " "przetłumaczone w plikach źródłowych programu i wyodrębnia je, gotowe do " "tłumaczenia." msgid "Custom Extractors:" msgstr "Niestandardowe ekstraktory:" msgid "Custom extractors:" msgstr "Niestandardowe ekstraktory:" msgid "Edit…" msgstr "Edytuj…" msgid "GNU gettext" msgstr "GNU gettext" msgid "" "Supports all programming languages recognized by GNU gettext tools (PHP, C/C+" "+, C#, Perl, Python, Java, JavaScript and others)." msgstr "" "Obsługuje wszystkie języki programowania rozpoznawalne przez narzędzia GNU " "gettext (PHP, C/C++, C#, Perl, Python, Java, JavaScript i inne)." msgid "Delete extractor" msgstr "Usuń wyodrębnienie" #, c-format msgid "Are you sure you want to delete the “%s” extractor?" msgstr "Czy na pewno chcesz usunąć wyodrębnienie “%s”?" msgid "Extractors" msgstr "Wyodrębnianie" msgid "Accounts" msgstr "Konta" msgid "Automatically check for updates" msgstr "Automatycznie sprawdzaj dostępność aktualizacji" msgid "Include beta versions" msgstr "Sprawdzaj także wersje beta" msgid "" "Beta versions contain the latest new features and improvements, but may be a " "bit less stable." msgstr "" "Wersje beta zawierają nową funkcjonalność i usprawnienia, mogą być jednak " "mniej stabilne." msgid "Updates" msgstr "Aktualizacje" msgid "" "These settings affect internal formatting of PO files. Adjust them if you " "have specific requirements e.g. because of version control." msgstr "" "Te ustawienia mają wpływ na wewnętrzne formatowanie plików PO. Zmień je, " "jeżeli masz specyficzne wymagania np.: ze względu na system kontroli wersji." msgid "Line endings:" msgstr "Format zakończeń wierszy:" msgid "Unix (recommended)" msgstr "Unix (zalecane) " msgid "Windows" msgstr "Windows" #. TRANSLATORS: Followed by text control for entering number; wraps text at given width msgid "Wrap at:" msgstr "Szerokość:" msgid "Preserve formatting of existing files" msgstr "Zachowaj formatowanie istniejących plików" msgid "Advanced" msgstr "Zaawansowane" msgid "Pre-translating…" msgstr "Wstępne tłumaczenie…" #, c-format msgid "Pre-translated %u string" msgid_plural "Pre-translated %u strings" msgstr[0] "Wstępnie przetłumaczony %u ciąg" msgstr[1] "Wstępnie przetłumaczone %u ciągi" msgstr[2] "Wstępnie przetłumaczone %u ciągi" #. TRANSLATORS: This is a somewhat common term describing the action where #. you apply the translation memory and/or machine translation to all of the #. strings you're translating as the first step, followed by correcting, #. improving etc., i.e. actually translating the strings. This may be tricky #. to express in other languages as simply as in English, but please try to #. keep it similarly concise. Please try to avoid, if possible, describing it #. as "auto-translation" and similar, because such terminology would mislead #. some users into thinking it's all that needs to be done (spoken from #. experience). "Pre-translate" nicely expresses that it's only the step done #. *before* actual translation. msgid "Pre-translate" msgstr "Wstępnie przetłumacz" msgid "Only fill in exact matches" msgstr "Uzupełniaj jedynie dokładne odpowiedniki" msgid "" "By default, inaccurate results are filled in as well and marked as needing " "work. Check this option to only include accurate matches." msgstr "" "Domyślnie, niedokładne wyniki są także uzupełniane i oznaczane jako " "wymagające dopracowania. Zaznacz tę opcję, aby uwzględniać tylko dokładne " "odpowiedniki." msgid "Don’t mark exact matches as needing work" msgstr "Nie oznaczaj dokładnych dopasowań jako wymagających pracy" msgid "" "Only enable if you trust the quality of your TM. By default, all matches " "from the TM are marked as needing work and should be reviewed before use." msgstr "" "Włącz tylko wtedy, jeśli ufasz jakości swojej TM. Domyślnie wszystkie " "dopasowania z TM są oznaczone jako wymagające dopracowania i powinny zostać " "przejrzane przed użyciem." msgid "" "Pre-translation automatically finds exact or fuzzy matches for untranslated " "strings in the translation memory and fills in their translations." msgstr "" "Wstępne tłumaczenie automatycznie znajduje w pamięci tłumaczeń dokładne lub " "przybliżone dopasowania dla nieprzetłumaczonych ciągów, a następnie wypełnia " "ich tłumaczenia." #, c-format msgid "%d entry was pre-translated." msgid_plural "%d entries were pre-translated." msgstr[0] "%d wpis został wstępnie przetłumaczony." msgstr[1] "%d wpisy zostały wstępnie przetłumaczone." msgstr[2] "%d wpisów zostało wstępnie przetłumaczonych." msgid "" "The translations were marked as needing work, because they may be " "inaccurate. You should review them for correctness." msgstr "" "Tłumaczenia zostały oznaczone jako wymagające dopracowania, ponieważ mogą " "być niedokładne. Należy sprawdzić ich poprawność." msgid "No entries could be pre-translated." msgstr "Żaden z wpisów nie mógł być wstępnie przetłumaczony." msgid "" "The TM doesn’t contain any strings similar to the content of this file. It " "is only effective for semi-automatic translations after Poedit learns enough " "from files that you translated manually." msgstr "" "Pamięć tłumaczeniowa nie zawiera żadnych wpisów pasujących do treści tego " "pliku. Funkcja ta jest efektywna tylko dla tłumaczeń półautomatycznych po " "tym, jak pamięć tłumaczeniowa Poedit nauczy się z plików ręcznie " "przetłumaczonych." msgid "" "Drag and Drop Folders Here\n" "\n" "or use the + button" msgstr "" "Przeciągnij i upuść katalogi tutaj\n" "\n" "lub użyj przycisku +" msgid "" "Drag and drop folders here\n" "\n" "or use the + button" msgstr "" "Przeciągnij i upuść katalogi tutaj\n" "\n" "lub użyj przycisku +" msgid "Add Folders…" msgstr "Dodaj foldery…" msgid "Add folders…" msgstr "Dodaj foldery…" msgid "Add Files…" msgstr "Dodaj pliki…" msgid "Add files…" msgstr "Dodaj pliki…" msgid "Add Wildcard…" msgstr "Dodaj wieloznacznik…" msgid "Add wildcard…" msgstr "Dodaj wieloznacznik…" msgid "Paths" msgstr "Ścieżki" msgid "Excluded paths" msgstr "Wykluczone ścieżki" msgid "Advanced extraction settings" msgstr "Zaawansowane ustawienia wyodrębniania" msgid "Extract notes for translators from:" msgstr "Wyodrębnij informacje dla tłumaczy z:" msgid "Comments prefixed with:" msgstr "Komentarzy z prefiksem:" msgid "All comments" msgstr "Wszystkich komentarzy" msgid "Additional xgettext flags:" msgstr "Dodatkowe flagi Xgettext:" msgid "Additional keywords" msgstr "Dodatkowe słowa kluczowe" msgid "Name of the project the translation is for" msgstr "Nazwa dla projektu tłumaczenia" msgid "Team name and email address or URL" msgstr "Nazwa grupy i adres e-mail lub adres URL" msgid "e.g. nplurals=2; plural=(n > 1);" msgstr "np. nplurals=2; plural=(n > 1);" msgid "UTF-8 (recommended)" msgstr "UTF-8 (zalecane)" msgid "Please save the file first. This section cannot be edited until then." msgstr "" "Najpierw zapisz plik. Przed zapisaniem pliku nie można edytować tej sekcji." msgid "Not all plural forms are translated." msgstr "Nie wszystkie formy liczby mnogiej są przetłumaczone." msgid "The translation should start as a sentence." msgstr "Tłumaczenie powinno się zaczynać jak zdanie." msgid "The translation should start with a lowercase character." msgstr "Tłumaczenie powinno zacząć się małą literą." msgid "The translation doesn’t start with a space." msgstr "Tłumaczenie nie zaczyna się od spacji." msgid "The translation starts with a space, but the source text doesn’t." msgstr "Tłumaczenie zaczyna się od spacji, podczas gdy tekst źródłowy - nie." msgid "The translation is missing a newline at the end." msgstr "W tłumaczeniu brakuje nowej linii na końcu." msgid "The translation ends with a newline, but the source text doesn’t." msgstr "Tłumaczenie kończy się nową linią, podczas gdy tekst źródłowy - nie." msgid "The translation is missing a space at the end." msgstr "W tłumaczeniu brakuje spacji na końcu." msgid "The translation ends with a space, but the source text doesn’t." msgstr "Tłumaczenie zaczyna się od spacji, podczas gdy tekst źródłowy - nie." #, c-format msgid "The translation should end with “%s”." msgstr "Tłumaczenie powinno kończyć się \"%s\"." #, c-format msgid "The translation should not end with “%s”." msgstr "Tłumaczenie nie powinno kończyć się \"%s\"." #, c-format msgid "The translation ends with “%s”, but the source text ends with “%s”." msgstr "" "Tłumaczenie kończy się \"%s\", podczas gdy tekst źródłowy kończy się \"%s\"." msgid "Comment:" msgstr "Komentarz:" msgid "OK" msgstr "OK" msgid "C&lear" msgstr "&Wyczyść" msgid "Clear the comment" msgstr "Wyczyść komentarz" msgid "New" msgstr "Nowy" msgid "Create new translations project" msgstr "Utwórz nowy projekt tłumaczeń" msgid "Edit" msgstr "Edytuj" msgid "Edit the project" msgstr "Edytuj projekt" msgid "Delete the project" msgstr "Usuń projekt" msgid "Update all" msgstr "Aktualizuj wszystkie" msgid "Update all catalogs in the project" msgstr "Aktualizuj wszystkie pakiety w projekcie" msgid "Edit project" msgstr "Edytuj projekt" msgid "Project name:" msgstr "Nazwa projektu:" msgid "Browse" msgstr "Przeglądaj" msgid "Add directory to the list" msgstr "Dodaj katalog do listy" msgid "&New…" msgstr "&Nowy…" msgid "New from &POT/PO file…" msgstr "Nowy z pliku &POT/PO…" msgid "New From &POT/PO File…" msgstr "Nowy z pliku &POT/PO…" msgid "&Open…" msgstr "&Otwórz…" msgid "Open Recent" msgstr "Ostatnio otwierane" msgid "Open from Crowdin…" msgstr "Otwórz z Crowdin…" msgid "Open From Crowdin…" msgstr "Otwórz z Crowdin…" msgid "&Close" msgstr "&Zamknij" msgid "&Save" msgstr "&Zapisz" msgid "Save &as…" msgstr "Zapisz j&ako…" msgid "Save &As…" msgstr "Zapisz j&ako…" msgid "Compile to MO…" msgstr "Skompiluj do MO…" msgid "E&xport as HTML…" msgstr "Eksportuj jako HTML…" msgid "Check for updates…" msgstr "Sprawdź dostępność aktualizacji…" msgid "&Preferences…" msgstr "&Ustawienia…" msgid "Catalogs &manager" msgstr "&Menedżer pakietów" msgid "Catalogs &Manager" msgstr "&Menedżer pakietów" msgid "E&xit" msgstr "&Zakończ" msgid "Quit" msgstr "Wyjdź" msgid "Copy from singular" msgstr "Skopiuj z liczby pojedynczej" msgid "Copy From Singular" msgstr "Skopiuj z liczby pojedynczej" msgid "Translation needs &work" msgstr "Tłumaczenie &wymagające pracy" msgid "Translation Needs &Work" msgstr "Tłumaczenie &wymagające pracy" msgid "Edit &comment" msgstr "Edytuj &komentarz" msgid "Edit &Comment" msgstr "Edytuj &komentarz" msgid "Suggestions" msgstr "Podpowiedzi" msgid "&Find…" msgstr "Znajdź…" msgid "Replace…" msgstr "Zamień…" msgid "Find next" msgstr "Znajdź następne" msgid "Find previous" msgstr "Znajdź poprzednie" msgid "Find and Replace…" msgstr "Znajdź i zamień…" msgid "Find Next" msgstr "Znajdź następne" msgid "Find Previous" msgstr "Znajdź poprzednie" msgid "&Preferences" msgstr "&Ustawienia" msgid "Display entry &IDs" msgstr "Wyświetlaj &numery wierszy" msgid "Display Entry &IDs" msgstr "Wyświetlaj &numery wierszy" msgid "Sort by &file order" msgstr "Sortuj wg &nazw plików" msgid "Sort by &File Order" msgstr "Sortuj wg &nazw plików" msgid "Sort by &source" msgstr "Sortuj wg &źródła" msgid "Sort by &Source" msgstr "Sortuj wg &źródła" msgid "Sort by &translation" msgstr "Sortuj wg &tłumaczenia" msgid "Sort by &Translation" msgstr "Sortuj wg &tłumaczenia" msgid "&Group by context" msgstr "&Grupuj wg kontekstu" msgid "&Group By Context" msgstr "&Grupuj wg kontekstu" msgid "Entries with errors first" msgstr "Błędne na górze" msgid "Entries with Errors First" msgstr "Błędne na górze" msgid "&Untranslated entries first" msgstr "&Nieprzetłumaczone na górze" msgid "&Untranslated Entries First" msgstr "&Nieprzetłumaczone na górze" msgid "&Show references" msgstr "&Wyświetl odwołania" msgid "&Show References" msgstr "&Wyświetl odwołania" msgid "Show sidebar" msgstr "Pokaż pasek boczny" msgid "Show status bar" msgstr "Pokaż pasek stanu" msgid "C&atalog" msgstr "P&akiet" msgid "&Update from sources" msgstr "&Aktualizuj ze źródeł" msgid "&Update from Sources" msgstr "&Aktualizuj ze źródeł" msgid "Update from &POT file…" msgstr "Aktualizuj z pliku &POT…" msgid "Update from &POT File…" msgstr "Aktualizuj z pliku &POT…" msgid "Sync with Crowdin" msgstr "Synchronizuj z Crowdin" msgid "Pre-&translate…" msgstr "Wstępnie prze&tłumacz…" msgid "&Purge deleted translations" msgstr "&Wyczyść usunięte tłumaczenia" msgid "&Purge Deleted Translations" msgstr "&Wyczyść usunięte tłumaczenia" msgid "&Validate translations" msgstr "&Weryfikuj tłumaczenia" msgid "&Validate Translations" msgstr "&Weryfikuj tłumaczenie" msgid "&Properties…" msgstr "&Właściwości…" msgid "&Done and next" msgstr "&Zakończ i przejdź do następnego" msgid "&Done and Next" msgstr "&Zakończ i przejdź do następnego" msgid "&Previous translation" msgstr "&Poprzednie tłumaczenie" msgid "&Previous Translation" msgstr "&Poprzednie tłumaczenie" msgid "&Next translation" msgstr "&Następne tłumaczenie" msgid "&Next Translation" msgstr "&Następne tłumaczenie" msgid "P&revious unfinished" msgstr "Pop&rzednie nieukończone" msgid "P&revious Unfinished" msgstr "Pop&rzednie nieukończone" msgid "Ne&xt unfinished" msgstr "&Następne nieukończone" msgid "Ne&xt Unfinished" msgstr "&Następne nieukończone" msgid "Previous plural form" msgstr "Poprzednia forma liczby mnogiej" msgid "Previous Plural Form" msgstr "Poprzednia forma liczby mnogiej" msgid "Next plural form" msgstr "Następna forma liczby mnogiej" msgid "Next Plural Form" msgstr "Następna forma liczby mnogiej" msgid "&Online help" msgstr "Pomoc &online" msgid "&Online Help" msgstr "Pomoc &online" msgid "&GNU gettext manual" msgstr "Dokumentacja &GNU gettext" msgid "&GNU gettext Manual" msgstr "Dokumentacja &GNU gettext" msgid "&About Poedit" msgstr "&O Poedit" msgid "&About" msgstr "&O programie" msgid "Extractor setup" msgstr "Ustawienia wyodrębniania" msgid "List of extensions separated by semicolons (e.g. *.cpp;*.h):" msgstr "Lista rozszerzeń rozdzielonych średnikami, np. *.cpp;*.h:" msgid "Invocation:" msgstr "Wywołanie:" msgid "Command to extract translations:" msgstr "Polecenie do wyodrębnienia tłumaczenia:" msgid "" "This is the command used to launch the extractor.\n" "%o expands to the name of output file, %K to list\n" "of keywords, %F to list of input files,\n" "%C to charset flag (see below)." msgstr "" "To jest polecenie które uruchomi program do wyodrębniania.\n" "%o zastępuje nazwę pliku wyjściowego,\n" "%K - listę słów kluczowych, %F listę plików wejściowych\n" "%C - flagę kodowania źródła (zobacz niżej)." msgid "An item in keywords list:" msgstr "Element na liście słów kluczowych:" msgid "" "This will be attached to the command line once\n" "for each keyword. %k expands to the keyword." msgstr "" "Zostanie to dołączone do wiersza poleceń dla każdego słowa kluczowego.\n" "%k zostanie zastąpione słowem kluczowym." msgid "An item in input files list:" msgstr "Element na liście plików wejściowych:" #, c-format msgid "" "This will be attached to the command line once\n" "for each input file. %f expands to the filename." msgstr "" "Zostanie to dołączone do wiersza poleceń dla każdego pliku wejściowego.\n" "%f zostanie zastąpione nazwą pliku." msgid "Source code charset:" msgstr "Kodowanie źródła:" #, c-format msgid "" "This will be attached to the command line\n" "only if source code charset was given. %c expands to charset value." msgstr "" "Zostanie to dołączone do wiersza poleceń tylko, jeśli zostało podane " "kodowanie\n" "znaków źródła. %c zostanie zastąpione typem kodowania." msgid "Catalog properties" msgstr "Właściwości pakietu" msgid "Project name and version:" msgstr "Nazwa projektu i wersja:" msgid "Language team:" msgstr "Grupa tłumaczeniowa:" msgid "Plural forms:" msgstr "Formy liczby mnogiej:" msgid "Use default rules for this language" msgstr "Użyj domyślnych reguł dla tego języka" msgid "Use custom expression" msgstr "Użyj wyrażenia własnego" msgid "Learn about plural forms" msgstr "Informacje o formach liczby mnogiej" msgid "Charset:" msgstr "Kodowanie:" msgid "Advanced Extraction Settings…" msgstr "Zaawansowane ustawienia wyodrębniania…" msgid "Advanced extraction settings…" msgstr "Zaawansowane ustawienia wyodrębniania…" msgid "Translation Properties" msgstr "Właściwości tłumaczenia" msgid "Translation properties" msgstr "Właściwości tłumaczenia" msgid "Sources Paths" msgstr "Ścieżki źródeł" msgid "Sources paths" msgstr "Ścieżki źródeł" msgid "Extract text from source files in the following directories:" msgstr "Wyodrębniaj tekst z plików źródłowych do następujących katalogów:" msgid "Base path:" msgstr "Ścieżka podstawowa:" msgid "Sources Keywords" msgstr "Źródłowe słowa kluczowe" msgid "Sources keywords" msgstr "Źródła słów kluczowych" msgid "" "Use these keywords (function names) to recognize translatable strings\n" "in source files:" msgstr "" "Do rozpoznania tekstów do tłumaczenia w plikach źródłowych użyj\n" "poniższych słów kluczowych (nazw funkcji):" msgid "Also use default keywords for supported languages" msgstr "Użyj także domyślnych słów kluczowych z obsługiwanych języków" msgid "Learn About Gettext Keywords" msgstr "Dowiedz się więcej o słowach kluczowych gettext" msgid "Learn about gettext keywords" msgstr "Dowiedz się więcej o słowach kluczowych gettext" msgid "Update summary" msgstr "Podsumowanie aktualizacji" msgid "" "These strings were found in the sources but were not in the catalog.\n" "Poedit will add them to the catalog now." msgstr "" "Te teksty znajdują się w źródłach, ale nie ma ich w pakiecie.\n" "Zostaną teraz dodane do pakietu." msgid "New strings" msgstr "Nowe teksty" msgid "" "These strings are no longer in the sources.\n" "Poedit will remove them from the catalog now." msgstr "" "Tych tekstów nie ma już w źródłach.\n" "Zostaną teraz usunięte z pakietu." msgid "Obsolete strings" msgstr "Nieaktualne teksty" msgid "(0 new, 0 obsolete)" msgstr "(0 nowych, 0 nieaktualnych)" msgid "Open" msgstr "Otwórz" msgid "Save catalog" msgstr "Zapisz pakiet" msgid "Validate" msgstr "Weryfikuj" msgid "Check for errors in the translation" msgstr "Sprawdza czy w tłumaczeniu występują błędy" msgid "Update" msgstr "Aktualizuj" msgid "Update catalog - synchronize it with sources" msgstr "Aktualizuj pakiet – zsynchronizuj go ze źródłami" msgid "Sidebar" msgstr "Pasek boczny" msgid "Show or hide the sidebar" msgstr "Wyświetl lub ukryj pasek boczny" #. TRANSLATORS: "Previous" as in used in the past, now replaced with newer. msgid "Previous source text:" msgstr "Poprzedni tekst źródłowy:" msgid "" "The old source text (before it changed during an update) that the now-" "inaccurate translation corresponds to." msgstr "" "Stary tekst źródłowy (sprzed zmian wynikających z aktualizacji), do którego " "odwołuje się, teraz już niedokładne, tłumaczenie." msgid "Notes for translators:" msgstr "Informacje dla tłumaczy:" msgid "Add comment" msgstr "Dodaj komentarz" msgid "Add Comment" msgstr "Dodaj komentarz" msgid "Translation suggestions:" msgstr "Podpowiedzi do tłumaczenia:" #. TRANSLATORS: This is shown when no translation suggestions can be found in the TM (Windows). msgid "No matches found" msgstr "Nie znaleziono odpowiedników" #. TRANSLATORS: This is shown when no translation suggestions can be found in the TM (macOS, Linux). msgid "No Matches Found" msgstr "Nie znaleziono odpowiedników" msgid "This string was found in Poedit’s translation memory." msgstr "Ten tekst został znaleziony w pamięci tłumaczeniowej programu Poedit." msgid "Cannot create temporary directory." msgstr "Nie można utworzyć katalogu tymczasowego!" msgid "Welcome to Poedit" msgstr "Witamy w Poedit" #. TRANSLATORS: This is version information in about dialog, "%s" will be #. version number when used #, c-format msgid "Version %s" msgstr "Wersja %s" msgid "Edit a Translation" msgstr "Edytuj tłumaczenie" msgid "Edit a translation" msgstr "Edytuj tłumaczenie" msgid "Open an existing PO file and edit the translation." msgstr "Otwórz istniejący plik .po i edytuj tłumaczenie." msgid "" "Take an existing PO file or POT template and create a new translation from " "it." msgstr "" "Użyj istniejącego pliku .po lub szablonu .pot i utwórz z niego nowe " "tłumaczenie." msgid "Collaborate on a Translation with Others" msgstr "Współpracuj nad tłumaczeniem z innymi" msgid "Collaborate on a translation with others" msgstr "Współpracuj nad tłumaczeniem z innymi" msgid "" "Download a file from Crowdin project, translate and sync your changes back." msgstr "" "Pobiera plik z wybranego projektu Crowdin, pozwala przetłumaczyć i " "zsynchronizować zmiany." msgid "What is Crowdin?" msgstr "Czym jest Crowdin?" msgid "There are no translations. That’s unusual." msgstr "Nie ma tłumaczeń. To się rzadko zdarza." msgid "" "Translatable entries aren’t added manually in the Gettext system, but are " "automatically extracted\n" "from source code. This way, they stay up to date and accurate.\n" "Translators typically use PO template files (POTs) prepared for them by the " "developer." msgstr "" "W systemie Gettext elementy do tłumaczenia nie są dodawane ręcznie, ale są " "automatycznie\n" "wyodrębniane z kodu źródłowego. Dzięki temu są zawsze aktualne i dokładne.\n" "Tłumacze zazwyczaj używają szablonów plików PO (POT) przygotowanych dla nich " "przez autora." msgid "(Learn more about GNU gettext)" msgstr "(Dowiedz się więcej o GNU gettext)" msgid "The simplest way to fill this catalog is to update it from a POT:" msgstr "" "Najprostszym sposobem wypełnienia tego pakietu jest zaktualizowanie go z " "pliku .pot:" msgid "Update from POT" msgstr "Aktualizuj z pliku .pot…" msgid "Take translatable strings from an existing POT template." msgstr "Użyj tekstów z istniejącego szablonu POT." msgid "" "You can also extract translatable strings directly from the source code:" msgstr "" "Możesz także wyodrębnić elementy do tłumaczenia bezpośrednio z kodu " "źródłowego:" msgid "Extract from sources" msgstr "Wyodrębnij ze źródeł" msgid "Configure source code extraction in Properties." msgstr "Konfiguruj wyodrębnianie kodu źródłowego we właściwościach." msgid "Sync" msgstr "Synchronizuj" msgid "Synchronize the translation with Crowdin" msgstr "Synchronizuj tłumaczenie z platformą Crowdin" #. TRANSLATORS: This is titlebar of about dialog, "%s" is application name #. ("Poedit" here, but please use "%s") #, c-format msgid "About %s" msgstr "Informacje o %s" #. TRANSLATORS: Title of the preferences window on Windows and Linux. "%s" is replaced with "Poedit" when running. #, c-format msgid "%s Preferences" msgstr "Ustawienia %s" #. TRANSLATORS: macOS item in app menu msgid "Services" msgstr "Usługi" #. TRANSLATORS: macOS item in app menu, %s is replaced with "Poedit" #, c-format msgid "Hide %s" msgstr "Ukryj %s" #. TRANSLATORS: macOS item in app menu msgid "Hide Others" msgstr "Ukryj pozostałe" #. TRANSLATORS: macOS item in app menu msgid "Show All" msgstr "Pokaż wszystkie" #. TRANSLATORS: macOS item in app menu, %s is replaced with "Poedit" #, c-format msgid "Quit %s" msgstr "Zamknij %s" #. TRANSLATORS: macOS item in app menu msgid "Preferences…" msgstr "Ustawienia…" msgid "Preferences..." msgstr "Preferencje..." #. TRANSLATORS: Title of a category in Windows task menu (right-click icon in taskbar) msgid "Recent" msgstr "Ostatnie" #. TRANSLATORS: Title of a category in Windows task menu (right-click icon in taskbar) msgid "Frequent" msgstr "Częste" msgid "&Apply" msgstr "&Zatwierdź" msgid "Apply" msgstr "Zatwierdź" msgid "&Back" msgstr "&Wstecz" msgid "Back" msgstr "Wstecz" msgid "&Cancel" msgstr "&Anuluj" msgid "&Clear" msgstr "&Wyczyść" msgid "Clear" msgstr "Wyczyść" msgid "Copy" msgstr "Kopiuj" msgid "Cu&t" msgstr "Wy&tnij" msgid "Cut" msgstr "Wytnij" msgid "&Delete" msgstr "&Usuń" msgid "&Quit" msgstr "&Wyjdź" msgid "File" msgstr "Plik" msgid "Help" msgstr "Pomoc" msgid "&New" msgstr "&Nowy" msgid "&No" msgstr "&Nie" msgid "No" msgstr "Nie" msgid "&OK" msgstr "&OK" msgid "Open…" msgstr "Otwórz…" msgid "&Open..." msgstr "&Otwórz…" msgid "Open..." msgstr "Otwórz..." msgid "&Paste" msgstr "&Wklej" msgid "Paste" msgstr "Wklej" msgid "Preferences" msgstr "Preferencje" msgid "&Redo" msgstr "&Ponów" msgid "Refresh" msgstr "Odśwież" msgid "&Save as" msgstr "Zapi&sz jako" msgid "Save as" msgstr "Zapisz jako" msgid "Select &All" msgstr "Zaznacz &wszystko" msgid "Select All" msgstr "Zaznacz wszystko" msgid "&Undo" msgstr "&Cofnij" msgid "&Yes" msgstr "&Tak" msgid "Yes" msgstr "Tak" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Shift+" msgstr "Shift+" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Enter" msgstr "Enter" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Up" msgstr "Strzałka w górę" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Down" msgstr "Strzałka w dół" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Left" msgstr "Lewo" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Right" msgstr "Prawo" #. TRANSLATORS: Keyboard shortcut, must correspond to translation of "Ctrl+" msgid "ctrl" msgstr "ctrl" #. TRANSLATORS: Keyboard shortcut, must correspond to translation of "Alt+" msgid "alt" msgstr "alt" #. TRANSLATORS: Keyboard shortcut, must correspond to translation of "Shift+" msgid "shift" msgstr "shift" poedit-2.0.6/locales/kk.po0000664000372000037200000020072013230132077012312 00000000000000msgid "" msgstr "" "Project-Id-Version: poedit\n" "Report-Msgid-Bugs-To: help@poedit.net\n" "POT-Creation-Date: 2017-12-05 15:52+0100\n" "PO-Revision-Date: 2017-07-27 03:14-0400\n" "Last-Translator: vslavik \n" "Language-Team: Kazakh\n" "Language: kk_KZ\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" "X-Generator: crowdin.com\n" "X-Crowdin-Project: poedit\n" "X-Crowdin-Language: kk\n" "X-Crowdin-File: /locales/poedit.pot\n" msgid "Hide this notification message" msgstr "Бұл хабарламаны жасыру" msgid "Don’t Show Again" msgstr "Келесіде көрсетпеу" msgid "Don’t show again" msgstr "Келесіде көрсетпеу" #, c-format msgid "(New: %i, obsolete: %i)" msgstr "(Жаңа: %i, ескірген: %i)" msgid "Updating catalog" msgstr "Каталогты жаңарту" msgid "Collecting source files…" msgstr "Бастапқы код файлдарын жинау…" msgid "Extracting translatable strings…" msgstr "Аударуға келетін жолдарды шығару…" msgid "Failed to load extracted catalog." msgstr "Тарқатылған каталогты жүктеу сәтсіз аяқталды." msgid "Merging differences…" msgstr "Өзгерістерді біріктіру…" #, c-format msgid "“%s” is not a valid POT file." msgstr "\"%s\" - дұрыс POT файлы емес." #, c-format msgid "%i line of file “%s” was not loaded correctly." msgid_plural "%i lines of file “%s” were not loaded correctly." msgstr[0] "%i жол \"%s\" файлынан дұрыс жүктелмеген." #, c-format msgid "Line %d of file “%s” is corrupted (not valid %s data)." msgstr "Жол %d, \"%s\" файлында, зақымдалған (жарамсыз %s дерегі)." #, c-format msgid "Malformed header: “%s”" msgstr "Жарамсыз тақырыптама: \"%s\"" msgid "" "Broken catalog file: singular form msgstr used together with msgid_plural" msgstr "" "Каталог файлы қате: msgstr жекеше түрі msgid_plural нәрсесімен бірге " "қолданылған" msgid "Broken catalog file: plural form msgstr used without msgid_plural" msgstr "" "Каталог файлы қате: msgstr көпше түрі msgid_plural нәрсесіз көрсетілген" msgid "" "There were errors when loading the catalog. Some data may be missing or " "corrupted as the result." msgstr "" "Каталогты жүктеген кезде қателер орын алған. Кейбір ақпарат жоқ не " "зақымдалған болуы мүмкін." #, c-format msgid "Couldn’t load file %s, it is probably corrupted." msgstr "%s файлын жүктеу мүмкін емес, мүмкін ол зақымдалған." #, c-format msgid "" "File “%s” is read-only and cannot be saved.\n" "Please save it under different name." msgstr "" #, c-format msgid "Couldn’t save file %s." msgstr "%s файлын сақтау мүмкін емес." msgid "" "There was a problem formatting the file nicely (but it was saved all right)." msgstr "" "Файлды жақсы пішімдеу кезінде қате кетті (бірақ ол файл сәтті сақталды)." #, c-format msgid "" "The catalog couldn’t be saved in “%s” charset as specified in catalog " "settings.\n" "\n" "It was saved in UTF-8 instead and the setting was modified accordingly." msgstr "" msgid "Error saving catalog" msgstr "Каталогты сақтау қатесі" msgid "PO Translation Files" msgstr "PO аударма файлдары" msgid "POT Translation Templates" msgstr "POT аударма үлгілері" msgid "All Translation Files" msgstr "Барлық аудармалар файлдары" msgid "(Use default language)" msgstr "(Негізгі тілді қолдану)" msgid "Select your preferred language" msgstr "Өз тіліңізді таңдаңыз" msgid "Language selection" msgstr "Тілді таңдау" msgid "You must restart Poedit for this change to take effect." msgstr "Өзгерістерді іске асыру үшін Poedit-ті қайта іске қосыңыз." msgid "Syncing" msgstr "Синхрондау" #. TRANSLATORS: %s is a cloud destination, e.g. "Crowdin" or ftp.wordpress.com etc. #, c-format msgid "Syncing with %s…" msgstr "%s қызметімен синхрондау…" #. TRANSLATORS: %s is a cloud destination, e.g. "Crowdin" or ftp.wordpress.com etc. #, c-format msgid "Syncing with %s failed." msgstr "%s қызметімен синхрондау сәтсіз аяқталды." msgid "Syncing error" msgstr "Синхрондау қатесі" msgid "Downloading translations is disabled in this project." msgstr "Бұл жобада аудармаларды жүктеп алу мүмкіндігі сөндірілген." msgid "Not authorized, please sign in again." msgstr "Авторизацияланбаған, қайтадан кіріңіз." msgid "" "Crowdin is an online localization management platform and collaborative " "translation tool. Poedit can seamlessly sync PO files managed at Crowdin." msgstr "" "Crowdin - бұл аударлмаларды басқарудың желілік платформасы және бірігіп " "аудару сайманы. Poedit Crowdin қызметінде орналасқан PO файлдарымен ыңғайлы " "түрде синхрондай алады." msgid "Sign In" msgstr "Жүйеге кіру" msgid "Sign in" msgstr "Кіру" msgid "Sign Out" msgstr "Шығу" msgid "Sign out" msgstr "Шығу" msgid "Waiting for authentication…" msgstr "Аутентификацияны күту…" msgid "Updating user information…" msgstr "Пайдаланушы ақпаратын жаңарту…" msgid "Signed in as:" msgstr "Сіз:" msgid "Learn More About Crowdin" msgstr "Crowdin туралы" msgid "Learn more about Crowdin" msgstr "Crowdin туралы" msgid "Sign in to Crowdin" msgstr "Crowdin-ға кіру" msgid "Open Crowdin translation" msgstr "Аударманы Crowdin-да ашу" msgid "Project:" msgstr "Жоба:" msgid "Language:" msgstr "Тіл:" msgid "File:" msgstr "Файл:" msgid "No translation projects listed in your Crowdin account." msgstr "Сіздің Crowdin тіркелгіңізде бірде-бір жоба тіркелмеген." msgid "This project has no files that can be translated in Poedit." msgstr "Бұл жобада Poedit ішінде аударуға болатын файлдар жоқ." msgid "This file can only be edited in Crowdin’s web interface." msgstr "Бұл файлды тек Crowdin веб интерфейсінде өңдеуге болады." msgid "Downloading latest translations…" msgstr "Соңғы аудармаларды жүктеп алу…" msgid "Syncing with Crowdin failed." msgstr "Crowdin қызметімен синхрондау сәтсіз аяқталды." msgid "Crowdin error" msgstr "Crowdin қатесі" msgid "Uploading translations…" msgstr "Аудармаларды жүктеу…" msgid "&Copy" msgstr "&Көшіру" msgid "Learn more" msgstr "Көбірек білу" msgid "Learn More" msgstr "Көбірек білу" msgid "&Help" msgstr "&Көмек" msgid "MO files can’t be directly edited in Poedit." msgstr "MO файлдарын Poedit ішінде түзетуге болмайды." msgid "Error opening file" msgstr "Файлды ашу қатесі" msgid "" "Please open and edit the corresponding PO file instead. When you save it, " "the MO file will be updated as well." msgstr "" "Орнына сәйкес PO файлын ашып, түзетіңіз. Оны сақтаған кезде, MO файлы да " "жаңартылады." msgid "don’t delete temporary files (for debugging)" msgstr "уақытша файлдарды өшірмеу (жөндеу режимі үшін пайдалы)" msgid "handle a poedit:// URI" msgstr "poedit:// URI-ін талдау" msgid "go to item at given line number" msgstr "" msgid "Failed to communicate with Poedit process." msgstr "Poedit үрдісімен байланысу қатесі." #, c-format msgid "Unhandled exception occurred: %s" msgstr "Өңделмеген ережеден тыс жағдай орын алды: %s" msgid "Open catalog" msgstr "Каталогты ашу" #, c-format msgid "File “%s” doesn’t exist." msgstr "\"%s\" файлы жоқ болып тұр." msgid "Poedit is an easy to use translations editor." msgstr "Poedit - қолдануға ыңғайлы аудармалар түзетушісі." msgid "Catalogs Manager" msgstr "Каталогтар басқарушысы" msgid "Check for Updates…" msgstr "Жаңартуларды тексеру…" msgid "&Edit" msgstr "&Түзету" msgid "Undo" msgstr "Болдырмау" msgid "Redo" msgstr "Қайталау" msgid "Paste and Match Style" msgstr "Кірістіру және сәйкестендіру стилі" msgid "Delete" msgstr "Өшіру" msgid "Spelling and Grammar" msgstr "Емлені тексеру және грамматика" msgid "Show Spelling and Grammar" msgstr "Емлені тексеру және грамматиканы көрсету" msgid "Check Document Now" msgstr "Құжатты қазір тексеру" msgid "Check Spelling While Typing" msgstr "Емлені теру кезінде тексеріп отыру" msgid "Check Grammar With Spelling" msgstr "Грамматиканы теру кезінде тексеріп отыру" msgid "Correct Spelling Automatically" msgstr "Емлені автоматты түрде түзетіп отыру" msgid "Substitutions" msgstr "Алмастырулар" msgid "Show Substitutions" msgstr "Алмастыруларды көрсету" msgid "Smart Copy/Paste" msgstr "Ақылды көшіріп алу/кірістіру" msgid "Smart Quotes" msgstr "Ақылды тырнақшалар" msgid "Smart Dashes" msgstr "Ақылды дефистер" msgid "Smart Links" msgstr "Ақылды сілтемелер" msgid "Text Replacement" msgstr "Мәтінді алмастыру" msgid "Transformations" msgstr "Түрлендірулер" msgid "Make Upper Case" msgstr "Бас әріпті қылу" msgid "Make Lower Case" msgstr "Кіші әріпті қылу" msgid "Capitalize" msgstr "Бас әріппен" msgid "Speech" msgstr "Сөйлеу" msgid "Start Speaking" msgstr "Сөйлеуді бастау" msgid "Stop Speaking" msgstr "Сөйлеуді аяқтау" msgid "&View" msgstr "Тү&рі" msgid "Enter Full Screen" msgstr "Толық экранға өту" msgid "Window" msgstr "Терезе" msgid "Minimize" msgstr "Бүктеу" msgid "Zoom" msgstr "Масштаб" msgid "Bring All to Front" msgstr "Барлығын алдына әкелу" #. TRANSLATORS:File kind displayed in Finder/Explorer msgid "PO Translation" msgstr "PO аудармасы" msgid "The file cannot be opened." msgstr "Файлды ашу мүмкін емес." msgid "Invalid file" msgstr "Жарамсыз файл" msgid "" "The file may be either corrupted or in a format not recognized by Poedit." msgstr "Бұл файл не зақымдалған, не оның пішімін Poedit түсінбейді." msgid "You can’t drop more than one file on Poedit window." msgstr "Сіз Poedit терезесіне бірден көп файлды тартып апара алмайсыз." #, c-format msgid "File “%s” is not a message catalog." msgstr "\"%s\" файлы хабарламалар каталогы емес." msgid "Poedit" msgstr "Poedit" msgid "&File" msgstr "&Файл" msgid "&Go" msgstr "Ө&ту" #. TRANSLATORS: %s is language name in its basic form (as you #. would see e.g. in a list of supported languages). You may need #. to rephrase it, e.g. to an equivalent of "for language %s". #, c-format msgid "" "Spellchecking is disabled, because the dictionary for %s isn’t installed." msgstr "Емлені тексеру сөндірілген, өйткені %s тілі үшін сөздік орнатылмаған." msgid "Install" msgstr "Орнату" msgid "Catalog modified. Do you want to save changes?" msgstr "Каталог түзетілген. Өзгерістерді сақтау керек пе?" msgid "Save changes" msgstr "Өзгерістерді сақтау" msgid "Your changes will be lost if you don’t save them." msgstr "Өзгерістерді сақтамасаңыз, олар жоғалады." msgid "Save" msgstr "Сақтау" msgid "Don’t save" msgstr "Сақтамау" msgid "Don’t Save" msgstr "Сақтамау" msgid "Save as…" msgstr "Қалайша сақтау…" msgid "Compile to…" msgstr "Қалайша компиляциялау…" msgid "Compiled Translation Files" msgstr "Компиляцияланған аудармалар файлдары" msgid "Export as…" msgstr "Қалайша экспорттау…" msgid "HTML Files" msgstr "HTML файлдары" msgid "Open catalog template" msgstr "Каталог шаблонын ашу" msgid "Source code not available." msgstr "Бастапқы коды қолжетерсіз." msgid "Updating failed" msgstr "Жаңарту сәтсіз аяқталды" msgid "" "Translations couldn’t be updated from the source code, because no code was " "found in the location specified in the catalog’s Properties." msgstr "" "Аудармаларды бастапқы кодтардан жаңарту мүмкін емес, өйткені каталог " "баптауларында көрсетілген орында бастапқы кодтар табылмады." msgid "Entries in the catalog are probably incorrect." msgstr "Каталогтағы жазбалар қате сияқты." msgid "Updating the catalog failed. Click on 'Details >>' for details." msgstr "Каталогты жаңарту сәтсіз аяқталды. Ақпарат үшін 'Көбірек>>' шертіңіз." #, c-format msgid "%d issue with the translation found." msgid_plural "%d issues with the translation found." msgstr[0] "Аударма ішінен %d мәселе табылды." msgid "Validation results" msgstr "Тексеру нәтижелері" msgid "" "Entries with errors were marked in red in the list. Details of the error " "will be shown when you select such an entry." msgstr "" "Қателері бар жолдар қызыл түспен белгіленді. Қате ақпараты ондай жол " "таңдалған кезде көрсетіледі." msgid "The file was saved safely." msgstr "Файл сәтті сақталды." msgid "" "The file was saved safely and compiled into the MO format, but it will " "probably not work correctly." msgstr "" "Файл сәтті сақталды және MO пішіміне компиляцияланды, бірақ, ол дұрыс " "жасамайтын сияқты." msgid "" "The file was saved safely, but it cannot be compiled into the MO format and " "used." msgstr "" "Файл қаупсіз сақталды, бірақ оны MO пішіміне түрлендіру мен қолдануға " "болмайды." msgid "" "The file was compiled into the MO format, but it will probably not work " "correctly." msgstr "" "Файл MO пішіміне сәтті компиляцияланды, бірақ, ол дұрыс жасамайтын сияқты." msgid "The file cannot be compiled into the MO format and used." msgstr "Файлды MO пішіміне компиляцилау және қолдану мүмкін емес." msgid "No problems with the translation found." msgstr "Аудармалар мәселелері табылмады." #, c-format msgid "The translation is ready for use, but %d entry is not translated yet." msgid_plural "" "The translation is ready for use, but %d entries are not translated yet." msgstr[0] "Аударма қолдануға дайын, бірақ, %d жазба әлі аударылмаған." msgid "The translation is ready for use." msgstr "Аударма қолдануға дайын." #, c-format msgid "Poedit automatically fixed invalid content in the file “%s”." msgstr "Poedit \"%s\" файлындағы жарамсыз құраманы автотүзеткен." msgid "" "The file contained duplicate items, which is not allowed in PO files and " "would prevent the file from being used. Poedit fixed the issue, but you " "should review translations of any items marked as needing work and correct " "them if necessary." msgstr "" "Бұл файлда қайталанатын жазбалар болды, ол PO файлдарында рұқсат етілмейді, " "және файлды қолдануға жол бермейді. Poedit мәселені шешті, бірақ, жөндеу " "керек етіп белгіленген барлық жазбаларды қарап шығыңыз және керек болса, " "түзетіңіз." msgid "Language of the translation isn’t set." msgstr "Аударма тілі әлі көрсетілмеген." msgid "Set Language" msgstr "Тілді орнату" msgid "Set language" msgstr "Тілді орнату" #. TRANSLATORS: This is shown underneath "Language of the translation isn't set (or ...is the same as source language)." msgid "" "Suggestions are not available if the translation language is not set " "correctly. Other features, such as plural forms, may be affected as well." msgstr "" "Аударма тілі дұрыс көрсетілмеген болса, ұсыныстар қолжетерсіз болады. Көпше " "түрлер сияқты, басқа да мүмкіндіктерге кері әсер тиюі мүмкін." msgid "Language of the translation is the same as source language." msgstr "Аударма тілі бастапқы тілмен бірдей." msgid "Fix Language" msgstr "Тілді түзету" msgid "Fix language" msgstr "Тілді түзету" msgid "" "This catalog has entries with plural forms, but doesn’t have Plural-Forms " "header configured." msgstr "" "Бұл каталогта көпше түрі бар жолдар бар, бірақ каталогтың Plural-Forms өрісі " "бапталмаған." msgid "" "Entries in this catalog have different plural forms count from what " "catalog’s Plural-Forms header says" msgstr "" "Бұл каталогтағы нәрселердің көпше түрлері каталогтың Plural-Forms өрісіндегі " "көрсетілген көпше түрінен өзгеше" msgid "Required header Plural-Forms is missing." msgstr "Міндетті Plural-Forms тақырыптамасы жоқ." #, c-format msgid "Syntax error in Plural-Forms header (\"%s\")." msgstr "Plural-Forms өрісіндегі синтаксис қатесі (\"%s\")." msgid "Fix the Header" msgstr "Тақырыптаманы дұрыстау" msgid "Fix the header" msgstr "Өрісті дұрыстау" #. TRANSLATORS: %s is language name in its basic form (as you #. would see e.g. in a list of supported languages). You may need #. to rephrase it, e.g. to an equivalent of "for language %s". #, c-format msgid "Plural forms expression used by the catalog is unusual for %s." msgstr "Каталог қолданатын көпше түрлерінің өрнегі %s үшін тән емес." #. TRANSLATORS: A verb, shown as action button with ""Plural forms expression used by the catalog is unusual for %s.")" msgid "Review" msgstr "Тексеру" #, c-format msgid "Error loading message catalog file “%s”." msgstr "\"%s\" хабарламалар каталог файлын жүктеу қатемен аяқталды." #, c-format msgid "Translated: %d of %d (%d %%)" msgstr "Аударылды: %d, барлығы %d (%d %%)" #, c-format msgid "Remaining: %d" msgstr "Қалды: %d" #, c-format msgid "%d error" msgid_plural "%d errors" msgstr[0] "%d қате" #, c-format msgid "%d entry" msgid_plural "%d entries" msgstr[0] "%d жазба" msgid " (unsaved)" msgstr " (сақталмаған)" msgid " (modified)" msgstr " (түрлендірілген)" #, c-format msgid "Failed to update translation memory: %s" msgstr "Аудармалар жадысын жаңарту сәтсіз аяқталды: %s" msgid "Purge deleted translations" msgstr "Өшірілген аудармаларды жою" msgid "Do you want to remove all translations that are no longer used?" msgstr "Осыдан былай қолданылмайтын аудармаларды өшіруді қалайсыз ба?" msgid "" "If you continue with purging, all translations marked as deleted will be " "permanently removed. You will have to translate them again if they are added " "back in the future." msgstr "" "Жоюды таңдасаңыз, өшірілген деп белгіленген барлық аудармалар өшірілетін " "болады. Олар болашақта қайта қосылса, оларды қайта аударуға керек болады." msgid "Keep" msgstr "Ұстау" msgid "Purge" msgstr "Тазарту" msgid "Copy from source text" msgstr "Бастапқы код мәтінінен көшіру" msgid "Copy from Source Text" msgstr "Бастапқы код мәтінінен көшіру" #. TRANSLATORS: This is the key shortcut used in menus on Windows, some languages call them differently #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Ctrl+" msgstr "Ctrl+" msgid "Clear translation" msgstr "Аударманы тазарту" msgid "Clear Translation" msgstr "Аударманы тазарту" msgid "Edit comment" msgstr "Түсіндірмені түзету" msgid "Edit Comment" msgstr "Түсіндірмені түзету" msgid "References:" msgstr "Сілтеулер:" msgid "&Bookmarks" msgstr "&Бетбелгілер" #. TRANSLATORS: This is the key shortcut used in menus on Windows, some languages call them differently #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Alt+" msgstr "Alt+" #, c-format msgid "Set bookmark %i" msgstr "Бетбелгі № %i орнату" #, c-format msgid "Go to bookmark %i" msgstr "Бетбелгі № %i бойынша өту" #, c-format msgid "Set Bookmark %i" msgstr "Бетбелгі № %i орнату" #, c-format msgid "Go to Bookmark %i" msgstr "Бетбелгі № %i бойынша өту" msgid "Hide Sidebar" msgstr "Бүйір панелін жасыру" msgid "Show Sidebar" msgstr "Бүйір панелін көрсету" msgid "Hide Status Bar" msgstr "Қалып-күй жолағын жасыру" msgid "Show Status Bar" msgstr "Қалып-күй жолағын көрсету" msgid "Source text:" msgstr "Бастапқы код мәтіні:" msgid "Singular:" msgstr "Жекеше:" msgid "Plural:" msgstr "Көпше:" msgid "Translation:" msgstr "Аударма:" msgid "Pre-translated" msgstr "Алдын-ала аударылған" msgid "Needs Work" msgstr "Жөндеу керек" #. TRANSLATORS: This indicates that the string's translation isn't final #. and has known problems. For example, it might be machine translated or #. fuzzy matched from an older string. The translation should be short and #. convey this. If it's problematic to translate it, "Needs review" is #. acceptable substitute, but note that the meaning is subtly different: #. "needs review" implies that somebody else should review the string after #. I am done with it (i.e. consider it good), while "needs work" implies I #. need to return to it and finish the translation. msgid "Needs work" msgstr "Жөндеу керек" msgid "" "POT files are only templates and don’t contain any translations themselves.\n" "To make a translation, create a new PO file based on the template." msgstr "" "POT файлдары тек үлгілер, олардың ішінде аудармалар жоқ.\n" "Аударманы жасау үшін, үлгі негізінде жаңа PO файлын жасаңыз." msgid "Create New Translation" msgstr "Жаңа аударманы жасау" msgid "Create new translation" msgstr "Жаңа аударманы жасау" msgid "Everything" msgstr "Барлығы" #, c-format msgid "Form %i" msgstr "Пішім %i" msgid "Singular" msgstr "Жекеше" msgid "Zero" msgstr "Нөл" msgid "One" msgstr "Бір" msgid "Two" msgstr "Екі" msgid "Plural" msgstr "Көпше" msgid "Other" msgstr "Басқа" #, c-format msgid "%s Format" msgstr "%s пішімі" #. TRANSLATORS: %s is replaced with language name, e.g. "PHP" or "C", so "PHP Format" etc." #, c-format msgid "%s format" msgstr "%s пішімі" msgid "Source text" msgstr "Бастапқы код мәтіні" #, c-format msgid "Translation — %s" msgstr "Аударма — %s" msgid "ID" msgstr "ID" #, c-format msgid "Source text — %s" msgstr "Бастапқы мәтін — %s" msgid "unknown language" msgstr "тіл белгісіз" #, c-format msgid "Failed command: %s" msgstr "Сәтсіз команда: %s" msgid "Failed to merge gettext catalogs." msgstr "Gettext каталогтарын біріктіру сәтсіз аяқталды." msgid "Source file" msgstr "Бастапқы код файлы" msgid "Source file occurrence:" msgstr "Бастапқы код файлында кездесу:" msgid "Open in Editor" msgstr "Түзеткіште ашу" msgid "Open in editor" msgstr "Түзеткіште ашу" msgid "No references for the selected item." msgstr "Таңдалған нәрселерге сілтемелер жоқ." #, c-format msgid "Error opening file %s!" msgstr "%s файлын ашу қатемен аяқталды!" msgid "Find" msgstr "Табу" msgid "Replace" msgstr "Алмастыру" #. TRANSLATORS: Expander in Find window for additional options (case sensitive etc.) msgid "Options" msgstr "Опциялар" msgid "Ignore case" msgstr "Регистрді елемеу" msgid "Wrap around" msgstr "Соңына жеткенде басына апару" msgid "Whole words only" msgstr "Тек толық сөздер" msgid "Find in source texts" msgstr "Бастапқы мәтіндерден табу" msgid "Find in translations" msgstr "Аудармалардан табу" msgid "Find in comments" msgstr "Түсіндірмелер ішінен іздеу" msgid "Close" msgstr "Жабу" msgid "Replace &All" msgstr "Б&арлығын алмастыру" msgid "Replace &all" msgstr "Б&арлығын алмастыру" msgid "&Replace" msgstr "Алмасты&ру" msgid "< &Previous" msgstr "< &Алдыңғы" msgid "&Next >" msgstr "&Келесі >" msgid "String to find" msgstr "Ізделінетін жол" msgid "Replacement string" msgstr "Алмастыру жолы" #, c-format msgid "Cannot execute program: %s" msgstr "Бағдарламаны орындау мүмкін емес: %s" msgid "Language Code or Name (e.g. en_GB)" msgstr "Тіл коды немесе аты (мыс., kk_KZ)" msgid "Translation Language" msgstr "Аударманың тілі" msgid "Language of the translation:" msgstr "Аударманың тілі:" msgid "Poedit - Catalogs manager" msgstr "Poedit - каталогтарды басқару" msgid "Catalog" msgstr "Каталог" msgid "Total" msgstr "Жалпы" msgid "Untrans" msgstr "Аударылмаған" msgid "Errors" msgstr "Қателер" msgid "Last modified" msgstr "Соңғы рет өзгертілген" msgid "Select directory" msgstr "Буманы таңдау" msgid "Directories:" msgstr "Бумалар:" msgid "" msgstr "<атаусыз>" msgid "Do you want to delete the project?" msgstr "Жобаны өшіруді қалайсыз ба?" msgid "Confirmation" msgstr "Растау" msgid "" "Do you really want to do mass update of\n" "all catalogs in this project?" msgstr "" "Бұл жобадағы барлық каталогтарды топтап\n" "жаңартуды шынымен қалайсыз ба?" msgid "Information about the translator" msgstr "Аудармашы жөніндегі ақпарат" msgid "Name:" msgstr "Аты:" msgid "Your Name" msgstr "Сіздің атыңыз" msgid "Email:" msgstr "Пошта:" msgid "your_email@example.com" msgstr "your_email@example.com" msgid "" "Your name and email address are only used to set the Last-Translator header " "of GNU gettext files." msgstr "" "Сіздің атыңыз мен эл. пошта адресіңіз тек қана GNU gettext файлдарындағы " "Last-Translator жолы үшін керек." msgid "Editing" msgstr "Өңдеу" msgid "Automatically compile MO file when saving" msgstr "Сақтағанда, MO файлын авто жасау" msgid "Show summary after catalog update" msgstr "Каталогты жаңартудан кейін жалпы ақпаратты көрсету" msgid "Check spelling" msgstr "Емлені тексеру" msgid "Always change focus to text input field" msgstr "Фокусты әрқашан мәтін енгізу жолына орнату" msgid "" "Never let the list of strings take focus. If enabled, you must use Ctrl-" "arrows for keyboard navigation but you can also type text immediately, " "without having to press Tab to change focus." msgstr "" "Жолдарға фокус алуға тыйым салу. Қосулы тұрса, пернетақта навигациясы үшін " "Ctrl мен жақтар пернелерін қолдануғы тиістісіз, бірақ мәтінді тере аласыз, " "фокусты алу үшін Tab пернесін басу керек емес." msgid "Appearance" msgstr "Сыртқы түрі" msgid "Use custom list font:" msgstr "Таңдауыңызша тізім қарібін қолдану:" msgid "Use custom text fields font:" msgstr "Таңдауыңызша мәтіндік өрістер қарібін қолдану:" msgid "Change UI language" msgstr "Бағдарлама тілін өзгерту" #. TRANSLATORS: This is a note appended to "Check spelling" when running on older Windows versions msgid "(requires Windows 8 or newer)" msgstr "(Windows 8 немесе одан жаңасын талап етеді)" msgid "General" msgstr "Жалпы" msgid "Use translation memory" msgstr "Аудармалар жадысын қолдану" msgid "Learn From Files…" msgstr "Файлдардан үйрету…" msgid "Learn from files…" msgstr "Файлдардан үйрету…" #. TRANSLATORS: This is a button that deletes everything in the translation memory (i.e. clears/resets it). msgid "Reset" msgstr "Тастау" #. TRANSLATORS: Followed by "match translations within the file" or "pre-translate from TM" msgid "When updating from sources" msgstr "Бастапқы кодтардан жаңарту кезінде" #. TRANSLATORS: Preceded by "When updating from sources" msgid "fuzzy match within the file" msgstr "файл ішінен дәлсіз сәйкестендіру" #. TRANSLATORS: Preceded by "When updating from sources" msgid "pre-translate from TM" msgstr "АЖ ішінен алдын-ала аудару" msgid "" "Poedit can attempt to fill in new entries from only previous translations in " "the file or from your entire translation memory. Using the TM won’t be very " "effective if it’s near-empty, but it will get better as you add more " "translations to it." msgstr "" "Poedit жаңа жолдарды тек файлдың алдыңғы аудармаларынан, немесе сіздің " "аудармалар жадысынан толтыру талабын жасай алады. Аудармалар жадысы бос " "болған кезде оны қолдану пайдасы аз, бірақ, оған жаңа аудармаларды қосқан " "кезде, пайдасы арта түседі." msgid "Stored translations:" msgstr "Сақталған аудармалар:" msgid "Database size on disk:" msgstr "Дерекқордың дискідегі өлшемі:" msgid "Select translation files to import" msgstr "Импорттау үшін аудармалар файларын таңдаңыз" msgid "Translation Memory" msgstr "Аудармалар жадысы" msgid "Importing translations…" msgstr "Аудармаларды импорттау…" msgid "Finalizing…" msgstr "Аяқтау…" msgid "Reset translation memory" msgstr "Аудармалар жадысын тастау" msgid "Are you sure you want to reset the translation memory?" msgstr "Аудармалар жадысын тастауды шынымен қалайсыз ба?" msgid "" "Resetting the translation memory will irrevocably delete all stored " "translations from it. You can’t undo this operation." msgstr "" "Аудармалар жадысын тастау әрекеті одан барлық сақталған аудармаларды " "қайтармастай өшіреді. Бұл әрекетті болдырмау мүмкін емес болады." msgid "Cancel" msgstr "Бас тарту" #. TRANSLATORS: This is abbreviation of "Translation Memory" used in Preferences on macOS. #. Long text looks weird there, too short (like TM) too, but less so. "General" is about ideal #. length there. msgid "TM" msgstr "TM" msgid "" "Source code extractors are used to find translatable strings in the source " "code files and extract them so that they can be translated." msgstr "" "Бастапқы кодтар экстракторлары бастапқы кодтар файлдарынан аударуға келетін " "жолдарды табу және аудару үшін шығарып алуға қолданылады." msgid "Custom Extractors:" msgstr "Таңдауыңызша экстракторлар:" msgid "Custom extractors:" msgstr "Таңдауыңызша экстракторлар:" msgid "Edit…" msgstr "Түзету…" msgid "GNU gettext" msgstr "GNU gettext" msgid "" "Supports all programming languages recognized by GNU gettext tools (PHP, C/C+" "+, C#, Perl, Python, Java, JavaScript and others)." msgstr "" "GNU gettext саймандары танитын барлық бағадарламалау тілдерін қолдайды (PHP, " "C/C++, C#, Perl, Python, Java, JavaScript және басқалары)." msgid "Delete extractor" msgstr "Экстракторды өшіру" #, c-format msgid "Are you sure you want to delete the “%s” extractor?" msgstr "\"%s\" экстракторын өшіруді шынымен қалайсыз ба?" msgid "Extractors" msgstr "Экстракторлар" msgid "Accounts" msgstr "Тіркелгілер" msgid "Automatically check for updates" msgstr "Жаңартуларға автотексеру" msgid "Include beta versions" msgstr "Бета нұсқаларын қоса" msgid "" "Beta versions contain the latest new features and improvements, but may be a " "bit less stable." msgstr "" "Бета нұсқаларында соңғы мүмкіндіктер және жақсартулар бар, бірақ, олар " "тұрақсыздау болуы мүмкін." msgid "Updates" msgstr "Жаңартулар" msgid "" "These settings affect internal formatting of PO files. Adjust them if you " "have specific requirements e.g. because of version control." msgstr "" "Бұл баптаулар PO файлдарының ішкі құрылымына әсер етеді. Сізде арнайы " "талаптар болса ғана оларды өзгертіңіз, мысалы, нұсқаларды басқару жүйелерді " "қолдансаңыз." msgid "Line endings:" msgstr "Жол аяқтаулары:" msgid "Unix (recommended)" msgstr "Unix (ұсынылады)" msgid "Windows" msgstr "Windows" #. TRANSLATORS: Followed by text control for entering number; wraps text at given width msgid "Wrap at:" msgstr "Тасымалдау:" msgid "Preserve formatting of existing files" msgstr "Бар болып тұрған файлдардың пішімдеуін сақтап отыру" msgid "Advanced" msgstr "Кеңейтілген" msgid "Pre-translating…" msgstr "Алдын-ала аудару…" #, c-format msgid "Pre-translated %u string" msgid_plural "Pre-translated %u strings" msgstr[0] "%u жол алдын-ала аударылған" #. TRANSLATORS: This is a somewhat common term describing the action where #. you apply the translation memory and/or machine translation to all of the #. strings you're translating as the first step, followed by correcting, #. improving etc., i.e. actually translating the strings. This may be tricky #. to express in other languages as simply as in English, but please try to #. keep it similarly concise. Please try to avoid, if possible, describing it #. as "auto-translation" and similar, because such terminology would mislead #. some users into thinking it's all that needs to be done (spoken from #. experience). "Pre-translate" nicely expresses that it's only the step done #. *before* actual translation. msgid "Pre-translate" msgstr "Алдын-ала аудару" msgid "Only fill in exact matches" msgstr "Тек дәл сәйкестіктерді толтыру" msgid "" "By default, inaccurate results are filled in as well and marked as needing " "work. Check this option to only include accurate matches." msgstr "" "Үнсіз келісім бойынша, дәлсіз нәтижелер де толтырылады, және жөндеу керек " "етіп белгіленеді. Тек дәл сәйкестіктерді қолдану үшін бұл опцияны іске " "қосыңыз." msgid "Don’t mark exact matches as needing work" msgstr "Дәл сәйкестіктерді жөндеу керек етіп белгілемеу" msgid "" "Only enable if you trust the quality of your TM. By default, all matches " "from the TM are marked as needing work and should be reviewed before use." msgstr "" "Өзіңіздің АЖ сапасына сенімді болсаңыз ғана іске қосыңыз. Үнсіз келісім " "бойынша, АЖ ішінен келген барлық сәйкестіктер жөндеу керек ретінде " "белгіленеді және оларды қолдану алдында тексеру керек болады." msgid "" "Pre-translation automatically finds exact or fuzzy matches for untranslated " "strings in the translation memory and fills in their translations." msgstr "" "Алдын-ала аудару әрекеті аудармалар жадысынан аудармалары әлі жоқ жолдар " "үшін дәл немесе дәлсіз сәйкестіктерді тауып, олардың аудармаларын толтырады." #, c-format msgid "%d entry was pre-translated." msgid_plural "%d entries were pre-translated." msgstr[0] "%d жазба алдын-ала аударылды." msgid "" "The translations were marked as needing work, because they may be " "inaccurate. You should review them for correctness." msgstr "" "Аудармалар толық сәйкес болмауы мүмкін себебінен жөндеу керек етіп " "белгіленді. Олардың дұрыстығын тексеруіңіз керек." msgid "No entries could be pre-translated." msgstr "Бірде-бір жазбаны алдын-ала аудару мүмкін емес." msgid "" "The TM doesn’t contain any strings similar to the content of this file. It " "is only effective for semi-automatic translations after Poedit learns enough " "from files that you translated manually." msgstr "" "Аудармалар жадысынан бұл файлдың құрамасына ұқсайтын жолдар табылмады. " "Poedit сіз қолмен аударған файлдардан жеткілікті ақпарат жинағаннан кейін " "ғана бұл жартылай автоматты аудармалар үшін пайдалы болады." msgid "" "Drag and Drop Folders Here\n" "\n" "or use the + button" msgstr "" "Бумаларды осында тартып апарыңыз\n" "\n" "немесе + батырмасын қолданыңыз" msgid "" "Drag and drop folders here\n" "\n" "or use the + button" msgstr "" "Бумаларды осында тартып апарыңыз\n" "\n" "немесе + батырмасын қолданыңыз" msgid "Add Folders…" msgstr "Бумаларды қосу…" msgid "Add folders…" msgstr "Бумаларды қосу…" msgid "Add Files…" msgstr "Файлдарды қосу…" msgid "Add files…" msgstr "Файлдарды қосу…" msgid "Add Wildcard…" msgstr "Шаблон бойынша қосу…" msgid "Add wildcard…" msgstr "Шаблон бойынша қосу…" msgid "Paths" msgstr "Жолдар" msgid "Excluded paths" msgstr "Елемейтін жолдар" msgid "Advanced extraction settings" msgstr "Экстракторлардың кеңейтілген баптаулары" msgid "Extract notes for translators from:" msgstr "Аудармашылар үшін пікірлерді қайдан алу:" msgid "Comments prefixed with:" msgstr "Пікірлер префиксі:" msgid "All comments" msgstr "Барлық пікірлер" msgid "Additional xgettext flags:" msgstr "Қосымша xgettext жалаушалары:" msgid "Additional keywords" msgstr "Қосымша кілттік сөздер" msgid "Name of the project the translation is for" msgstr "Келесі үшін аударма жобасының аталуы" msgid "Team name and email address or URL" msgstr "Топ аты және эл. пошта адресі немесе сілтемесі" msgid "e.g. nplurals=2; plural=(n > 1);" msgstr "мыс., nplurals=1; plural=0;" msgid "UTF-8 (recommended)" msgstr "UTF-8 (ұсынылады)" msgid "Please save the file first. This section cannot be edited until then." msgstr "Алдымен файлды сақтаңыз. Оған дейін бұл санатты түзету мүмкін емес." msgid "Not all plural forms are translated." msgstr "Көпше түрлер толығымен аударылмаған." msgid "The translation should start as a sentence." msgstr "Аударма сөйлем ретінде басталуы тиіс." msgid "The translation should start with a lowercase character." msgstr "Аударма кіші әріптен басталуы тиіс." msgid "The translation doesn’t start with a space." msgstr "Аударма бос аралықтан басталып тұрған жоқ." msgid "The translation starts with a space, but the source text doesn’t." msgstr "" "Аударма бос аралықтан басталады, ал, қайнар көз хабарламасы одан басталмайды." msgid "The translation is missing a newline at the end." msgstr "Аударма соңында жол тасымалдауы жетпейді." msgid "The translation ends with a newline, but the source text doesn’t." msgstr "" "Аударма жол тасымалдаумен аяқталады, ал, қайнар көз хабарламасы оған " "аяқталмайды." msgid "The translation is missing a space at the end." msgstr "Аударма соңында бос аралық жетпейді." msgid "The translation ends with a space, but the source text doesn’t." msgstr "" "Аударма бос аралықпен аяқталады, ал, қайнар көз хабарламасы онымен " "аяқталмайды." #, c-format msgid "The translation should end with “%s”." msgstr "Аударма \"%s\" мәнімен аяқталуы тиіс." #, c-format msgid "The translation should not end with “%s”." msgstr "Аударма \"%s\" мәнімен аяқталмауы тиіс." #, c-format msgid "The translation ends with “%s”, but the source text ends with “%s”." msgstr "" "Аударма \"%s\" мәнімен аяқталады, ал қайнар көз хабарламасы \"%s\" мәнімен " "аяқталады." msgid "Comment:" msgstr "Түсіндірме:" msgid "OK" msgstr "ОК" msgid "C&lear" msgstr "Та&зарту" msgid "Clear the comment" msgstr "Түсіндірмені өшіру" msgid "New" msgstr "Жаңа" msgid "Create new translations project" msgstr "Жаңа аудармалар жобасын жасау" msgid "Edit" msgstr "Түзету" msgid "Edit the project" msgstr "Жобаны түзету" msgid "Delete the project" msgstr "Жобаны өшіру" msgid "Update all" msgstr "Барлығын жаңарту" msgid "Update all catalogs in the project" msgstr "Жобадағы барлық каталогтарды жаңарту" msgid "Edit project" msgstr "Жобаны түзету" msgid "Project name:" msgstr "Жоба аты:" msgid "Browse" msgstr "Шолу" msgid "Add directory to the list" msgstr "Тізімге буманы қосу" msgid "&New…" msgstr "&Жаңа…" msgid "New from &POT/PO file…" msgstr "POT/PO &файлынан жаңа…" msgid "New From &POT/PO File…" msgstr "POT/PO &файлынан жаңа…" msgid "&Open…" msgstr "А&шу…" msgid "Open Recent" msgstr "Соңғысын ашу" msgid "Open from Crowdin…" msgstr "Crowdin сайтынан ашу…" msgid "Open From Crowdin…" msgstr "Crowdin сайтынан ашу…" msgid "&Close" msgstr "Жа&бу" msgid "&Save" msgstr "&Сақтау" msgid "Save &as…" msgstr "Қала&йша сақтау…" msgid "Save &As…" msgstr "Қала&йша сақтау…" msgid "Compile to MO…" msgstr "MO файлына компиляциялау…" msgid "E&xport as HTML…" msgstr "HTML ретінде э&кспорттау…" msgid "Check for updates…" msgstr "Жаңартуларды тексеру…" msgid "&Preferences…" msgstr "&Баптаулар…" msgid "Catalogs &manager" msgstr "Каталогтар &басқарушысы" msgid "Catalogs &Manager" msgstr "Каталогтар &басқарушысы" msgid "E&xit" msgstr "&Шығу" msgid "Quit" msgstr "Шығу" msgid "Copy from singular" msgstr "Жекеше түрден көшіріп алу" msgid "Copy From Singular" msgstr "Жекеше түрден көшіріп алу" msgid "Translation needs &work" msgstr "Аударма өң&деуді талап етеді" msgid "Translation Needs &Work" msgstr "Аударма өң&деуді талап етеді" msgid "Edit &comment" msgstr "Тү&сіндірмені түзету" msgid "Edit &Comment" msgstr "Тү&сіндірмені түзету" msgid "Suggestions" msgstr "Ұсыныстар" msgid "&Find…" msgstr "&Табу…" msgid "Replace…" msgstr "Алмастыру…" msgid "Find next" msgstr "Келесі" msgid "Find previous" msgstr "Алдыңғы" msgid "Find and Replace…" msgstr "Табу және алмастыру…" msgid "Find Next" msgstr "Келесі" msgid "Find Previous" msgstr "Алдыңғы" msgid "&Preferences" msgstr "&Баптаулар" msgid "Display entry &IDs" msgstr "&Жолдар нөмірлерін көрсету" msgid "Display Entry &IDs" msgstr "&Жолдар нөмірлерін көрсету" msgid "Sort by &file order" msgstr "&Файлдар реті бойынша сұрыптау" msgid "Sort by &File Order" msgstr "&Файлдар реті бойынша сұрыптау" msgid "Sort by &source" msgstr "Ба&стапқы коды бойынша сұрыптау" msgid "Sort by &Source" msgstr "Ба&стапқы коды бойынша сұрыптау" msgid "Sort by &translation" msgstr "Аудар&ма бойынша сұрыптау" msgid "Sort by &Translation" msgstr "Аудар&ма бойынша сұрыптау" msgid "&Group by context" msgstr "Контекст бойынша &топтау" msgid "&Group By Context" msgstr "Контекст бойынша &топтау" msgid "Entries with errors first" msgstr "Алдымен қателері бар нәрселер" msgid "Entries with Errors First" msgstr "Алдымен қателері бар нәрселер" msgid "&Untranslated entries first" msgstr "Алд&ымен аударылмаған нәрселер " msgid "&Untranslated Entries First" msgstr "Алд&ымен аударылмаған нәрселер " msgid "&Show references" msgstr "Ба&йланыстарды көрсету" msgid "&Show References" msgstr "Ба&йланыстарды көрсету" msgid "Show sidebar" msgstr "Бүйір панелді көрсету" msgid "Show status bar" msgstr "Қалып-күй жолағын көрсету" msgid "C&atalog" msgstr "К&аталог" msgid "&Update from sources" msgstr "&Бастапқы кодтардан жаңарту" msgid "&Update from Sources" msgstr "&Бастапқы кодтан жаңарту" msgid "Update from &POT file…" msgstr "POT &файлынан жаңарту…" msgid "Update from &POT File…" msgstr "POT &файлынан жаңарту…" msgid "Sync with Crowdin" msgstr "Crowdin қызметімен синхрондау" msgid "Pre-&translate…" msgstr "Алдын-ала ау&дару…" msgid "&Purge deleted translations" msgstr "&Өшірілген аудармаларды жою" msgid "&Purge Deleted Translations" msgstr "Ө&шірілген аудармаларды жою" msgid "&Validate translations" msgstr "Аудармаларды &тексеру" msgid "&Validate Translations" msgstr "Аудармаларды &тексеру" msgid "&Properties…" msgstr "Қас&иеттері…" msgid "&Done and next" msgstr "Да&йын және келесі" msgid "&Done and Next" msgstr "Да&йын және келесі" msgid "&Previous translation" msgstr "&Алдыңғы аударма" msgid "&Previous Translation" msgstr "&Алдыңғы аударма" msgid "&Next translation" msgstr "&Келесі аударма" msgid "&Next Translation" msgstr "&Келесі аударма" msgid "P&revious unfinished" msgstr "Алдыңғ&ы аяқталмаған" msgid "P&revious Unfinished" msgstr "Алдыңғ&ы аяқталмаған" msgid "Ne&xt unfinished" msgstr "Келе&сі аяқталмаған" msgid "Ne&xt Unfinished" msgstr "Келе&сі аяқталмаған" msgid "Previous plural form" msgstr "Алдыңғы көпше түрі" msgid "Previous Plural Form" msgstr "Алдыңғы көпше түрі" msgid "Next plural form" msgstr "Келесі көпше түрі" msgid "Next Plural Form" msgstr "Келесі көпше түрі" msgid "&Online help" msgstr "Же&лідегі көмек" msgid "&Online Help" msgstr "Же&лідегі көмек" msgid "&GNU gettext manual" msgstr "&GNU gettext нұсқаулығы" msgid "&GNU gettext Manual" msgstr "&GNU gettext нұсқаулығы" msgid "&About Poedit" msgstr "Poedit т&уралы" msgid "&About" msgstr "&Осы туралы" msgid "Extractor setup" msgstr "Экстрактор баптаулары" msgid "List of extensions separated by semicolons (e.g. *.cpp;*.h):" msgstr "Нүктелі үтірмен ажыратылған кеңейтулер тізімі (мыс. *.cpp;*.h):" msgid "Invocation:" msgstr "Шақыру:" msgid "Command to extract translations:" msgstr "Аудармаларды шығарып алу командасы:" msgid "" "This is the command used to launch the extractor.\n" "%o expands to the name of output file, %K to list\n" "of keywords, %F to list of input files,\n" "%C to charset flag (see below)." msgstr "" "Бұл - экстракторды жөнелту үшін қолданылатын команда.\n" "%o шығыс файл атын, %K кілттік сөздер\n" "тізімін, %F кіріс файлдар тізімін,\n" "ал, %C - кодталу жалаушасын (төменде қараңыз) білдіреді." msgid "An item in keywords list:" msgstr "Кілт сөздер тізімінің біреуі:" msgid "" "This will be attached to the command line once\n" "for each keyword. %k expands to the keyword." msgstr "" "Бұл жол әр кілт сөзі үшін командалық жолына қосылады.\n" "%k - кілт сөзімен алмастырылады." msgid "An item in input files list:" msgstr "Кіріс файлдар тізімінің біреуі:" #, c-format msgid "" "This will be attached to the command line once\n" "for each input file. %f expands to the filename." msgstr "" "Бұл жол әр кіріс файлы үшін командалық жолына қосылады.\n" "%f - файл атымен алмастырылады." msgid "Source code charset:" msgstr "Бастапқы код кодталуы:" #, c-format msgid "" "This will be attached to the command line\n" "only if source code charset was given. %c expands to charset value." msgstr "" "Бұл жол бастапқы кодталу көрсетсе ғана командалық жолға\n" "қосылады. %c кодталу мәнімен алмастырылады." msgid "Catalog properties" msgstr "Каталог қасиеттері" msgid "Project name and version:" msgstr "Жоба аты мен нұсқасы:" msgid "Language team:" msgstr "Тілдік топ:" msgid "Plural forms:" msgstr "Көпше түрлері:" msgid "Use default rules for this language" msgstr "Бұл тіл үшін үнсіз келісім ережелерін қолдану" msgid "Use custom expression" msgstr "Таңдауыңызша өрнекті қолдану" msgid "Learn about plural forms" msgstr "Көпше түрлері жөнінде білу" msgid "Charset:" msgstr "Кодтауы:" msgid "Advanced Extraction Settings…" msgstr "Экстракторлардың кеңейтілген баптаулары…" msgid "Advanced extraction settings…" msgstr "Экстракторлардың кеңейтілген баптаулары…" msgid "Translation Properties" msgstr "Аударма қасиеттері" msgid "Translation properties" msgstr "Аударма қасиеттері" msgid "Sources Paths" msgstr "Бастапқы кодтар орналасу жолдары" msgid "Sources paths" msgstr "Бастапқы кодтар орналасу жолдары" msgid "Extract text from source files in the following directories:" msgstr "Келесі бумалардағы бастапқы код файлдарынан мәтінді алу:" msgid "Base path:" msgstr "Негізгі жолы:" msgid "Sources Keywords" msgstr "Бастапқы код кілт сөздері" msgid "Sources keywords" msgstr "Бастапқы код кілт сөздері" msgid "" "Use these keywords (function names) to recognize translatable strings\n" "in source files:" msgstr "" "Келесі кілт сөздерді (функциялар аттары) бастапқы\n" "кодтарда аударылатын жолдарды тану үшін қолдану:" msgid "Also use default keywords for supported languages" msgstr "" "Сонымен қатар, үнсіз келісім бойынша кілтсөздерді қолдауы бар тілдер үшін " "қолдану" msgid "Learn About Gettext Keywords" msgstr "Gettext кілттік сөздері туралы көбірек біліңіз" msgid "Learn about gettext keywords" msgstr "Gettext кілттік сөздері туралы көбірек біліңіз" msgid "Update summary" msgstr "Жаңарту ақпараты" msgid "" "These strings were found in the sources but were not in the catalog.\n" "Poedit will add them to the catalog now." msgstr "" "Бұл жолдар бастапқы кодтардан табылды, бірақ каталогта жоқ.\n" "Poedit оларды каталог ішіне қазір қосады." msgid "New strings" msgstr "Жаңа жолдар" msgid "" "These strings are no longer in the sources.\n" "Poedit will remove them from the catalog now." msgstr "" "Бұл жолдар бастапқы кодтарда енді жоқ.\n" "Poedit оларды каталог ішінен қазір өшіреді." msgid "Obsolete strings" msgstr "Ескірген жолдар" msgid "(0 new, 0 obsolete)" msgstr "(0 жаңа, 0 ескірген)" msgid "Open" msgstr "Ашу" msgid "Save catalog" msgstr "Каталогты сақтау" msgid "Validate" msgstr "Тексеру" msgid "Check for errors in the translation" msgstr "Аударманы қателерге тексеру" msgid "Update" msgstr "Жаңарту" msgid "Update catalog - synchronize it with sources" msgstr "Каталогты жаңарту - бастапқы кодтармен синхронизация" msgid "Sidebar" msgstr "Бүйір панелі" msgid "Show or hide the sidebar" msgstr "Бүйір панелін көрсету/жасыру" #. TRANSLATORS: "Previous" as in used in the past, now replaced with newer. msgid "Previous source text:" msgstr "Бастапқы кодтың алдыңғы нұсқасы:" msgid "" "The old source text (before it changed during an update) that the now-" "inaccurate translation corresponds to." msgstr "" "Дәлсіз аударма сәйкес келетін ескі бастапқы код мәтіні (жаңарту кезінде " "өзгергенге дейін)." msgid "Notes for translators:" msgstr "Аудармашылар үшін ескертулер:" msgid "Add comment" msgstr "Пікір қосу" msgid "Add Comment" msgstr "Пікір қосу" msgid "Translation suggestions:" msgstr "Аудармаға ұсынылатын нұсқалар:" #. TRANSLATORS: This is shown when no translation suggestions can be found in the TM (Windows). msgid "No matches found" msgstr "Сәйкестік табылмады" #. TRANSLATORS: This is shown when no translation suggestions can be found in the TM (macOS, Linux). msgid "No Matches Found" msgstr "Сәйкестік табылмады" msgid "This string was found in Poedit’s translation memory." msgstr "Бұл жол Poedit-тің аудармалар жадысы ішінен табылды." msgid "Cannot create temporary directory." msgstr "Уақытша буманы жасау мүмкін емес." msgid "Welcome to Poedit" msgstr "Poedit-ке қош келдіңіз" #. TRANSLATORS: This is version information in about dialog, "%s" will be #. version number when used #, c-format msgid "Version %s" msgstr "Нұсқасы %s" msgid "Edit a Translation" msgstr "Аударманы түзету" msgid "Edit a translation" msgstr "Аударманы түзету" msgid "Open an existing PO file and edit the translation." msgstr "Бар болып тұрған PO файлын ашып, аударманы түзету." msgid "" "Take an existing PO file or POT template and create a new translation from " "it." msgstr "" "Бар болып тұрған PO файлын немесе POT үлгісін алып, одан жаңа аударманы " "жасау." msgid "Collaborate on a Translation with Others" msgstr "Аудармаға басқалармен бірігіп қатысу" msgid "Collaborate on a translation with others" msgstr "Аудармаға басқалармен бірігіп қатысу" msgid "" "Download a file from Crowdin project, translate and sync your changes back." msgstr "" "Файлды Crowdin қызметінен жүктеп алып, оны аудару және өзгерістерді қайта " "синхрондау." msgid "What is Crowdin?" msgstr "Crowdin деген не?" msgid "There are no translations. That’s unusual." msgstr "Аудармалар жоқ. Бұл әдепкі жағдай емес сияқты." msgid "" "Translatable entries aren’t added manually in the Gettext system, but are " "automatically extracted\n" "from source code. This way, they stay up to date and accurate.\n" "Translators typically use PO template files (POTs) prepared for them by the " "developer." msgstr "" msgid "(Learn more about GNU gettext)" msgstr "(GNU gettext туралы көбірек білу)" msgid "The simplest way to fill this catalog is to update it from a POT:" msgstr "Бұл каталогты толтырудың ең оңай жолы - оны POT файлынан жаңарту:" msgid "Update from POT" msgstr "POT файлынан жаңарту" msgid "Take translatable strings from an existing POT template." msgstr "Аударуға келетін жолдарды тікелей бар болып тұрған POT үлгісінен алу." msgid "" "You can also extract translatable strings directly from the source code:" msgstr "" "Сонымен қатар, сіз аударуға келетін жолдарды тікелей бастапқы кодтардан " "шығара аласыз:" msgid "Extract from sources" msgstr "Бастапқы кодтардан алу" msgid "Configure source code extraction in Properties." msgstr "Баптаулар ішінен бастапқы кодтан аудармаларды шығарып алуды баптаңыз." msgid "Sync" msgstr "Синхрондау" msgid "Synchronize the translation with Crowdin" msgstr "Аударманы Crowdin қызметімен синхрондау" #. TRANSLATORS: This is titlebar of about dialog, "%s" is application name #. ("Poedit" here, but please use "%s") #, c-format msgid "About %s" msgstr "%s туралы" #. TRANSLATORS: Title of the preferences window on Windows and Linux. "%s" is replaced with "Poedit" when running. #, c-format msgid "%s Preferences" msgstr "%s баптаулары" #. TRANSLATORS: macOS item in app menu msgid "Services" msgstr "Қызметтер" #. TRANSLATORS: macOS item in app menu, %s is replaced with "Poedit" #, c-format msgid "Hide %s" msgstr "%s жасыру" #. TRANSLATORS: macOS item in app menu msgid "Hide Others" msgstr "Қалғанын жасыру" #. TRANSLATORS: macOS item in app menu msgid "Show All" msgstr "Барлығын көрсету" #. TRANSLATORS: macOS item in app menu, %s is replaced with "Poedit" #, c-format msgid "Quit %s" msgstr "%s шығу" #. TRANSLATORS: macOS item in app menu msgid "Preferences…" msgstr "Баптаулар…" msgid "Preferences..." msgstr "Баптаулар..." #. TRANSLATORS: Title of a category in Windows task menu (right-click icon in taskbar) msgid "Recent" msgstr "Жуырдағы" #. TRANSLATORS: Title of a category in Windows task menu (right-click icon in taskbar) msgid "Frequent" msgstr "Жиі қолданылатын" msgid "&Apply" msgstr "Іске &асыру" msgid "Apply" msgstr "Іске асыру" msgid "&Back" msgstr "&Артқа" msgid "Back" msgstr "Артқа" msgid "&Cancel" msgstr "&Бас тарту" msgid "&Clear" msgstr "&Тазарту" msgid "Clear" msgstr "Тазарту" msgid "Copy" msgstr "Көшіру" msgid "Cu&t" msgstr "Қ&иып алу" msgid "Cut" msgstr "Қиып алу" msgid "&Delete" msgstr "Ө&шіру" msgid "&Quit" msgstr "&Шығу" msgid "File" msgstr "Файл" msgid "Help" msgstr "Көмек" msgid "&New" msgstr "&Жаңа" msgid "&No" msgstr "&Жоқ" msgid "No" msgstr "Жоқ" msgid "&OK" msgstr "&ОК" msgid "Open…" msgstr "Ашу…" msgid "&Open..." msgstr "А&шу..." msgid "Open..." msgstr "Ашу..." msgid "&Paste" msgstr "&Кірістіру" msgid "Paste" msgstr "Кірістіру" msgid "Preferences" msgstr "Баптаулар" msgid "&Redo" msgstr "Қа&йталау" msgid "Refresh" msgstr "Жаңарту" msgid "&Save as" msgstr "Қалайша &сақтау" msgid "Save as" msgstr "Қалайша сақтау" msgid "Select &All" msgstr "Б&арлығын таңдау" msgid "Select All" msgstr "Барлығын таңдау" msgid "&Undo" msgstr "&Болдырмау" msgid "&Yes" msgstr "&Иә" msgid "Yes" msgstr "Иә" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Shift+" msgstr "Shift+" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Enter" msgstr "Enter" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Up" msgstr "Жоғары" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Down" msgstr "Төмен" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Left" msgstr "Сол жақ" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Right" msgstr "Оң жақ" #. TRANSLATORS: Keyboard shortcut, must correspond to translation of "Ctrl+" msgid "ctrl" msgstr "ctrl" #. TRANSLATORS: Keyboard shortcut, must correspond to translation of "Alt+" msgid "alt" msgstr "alt" #. TRANSLATORS: Keyboard shortcut, must correspond to translation of "Shift+" msgid "shift" msgstr "shift" poedit-2.0.6/locales/ja.mo0000664000372000037200000014634113230132076012303 00000000000000M$81 91 E1P1<d11J1g1 g2q2 22 222 222222222233"363:3L3^3d3i3q3y3333 3 3333 333 4!404L4h4n4t4}4444444455-5D5J5O5c5555 5:5:6 Q6[6d6 m6 y666 66 6666 7&7/7O7l77 7177'78+8 E8P87V8688)89 9]9}9A9I9:#::::":: :;.;?;R;d;v;;;;;;;#<'<<<K<Q<c<u<<(<(<< <=$=<= M=[=/v= ====== >2)>\>u>>> >>c?i?n??????? ???E @"S@?v@ @@*@ AA!AK&A"rA5AAAA A A BB%B 8B EBRBcBkBsBzBB.BhB*CDCu^C,CDD+D@D GDRD aDnD#D<D"DE E"E*5E!`E!E'EEE'ETFmF sFF F FFFFF F F G GG.G=GEG NGZGbGtG GGG G GGGGG HHH HH H II"I;9I(uIIII I IIJ &J1JJJgJJ JJJ:J J<K.CKrKKKKK*KKKL L +L6LLLM (M4MEMVMYM#jMM'M$M7M$$N%INoNNNNN1OLOQOjO O2O OOOOPPP$P,P2PGP\PkPPP+Q1QGQnMQEQR> R HRVR^ReR@RR-SS ST2TFTYT TTU%U8UMUbUxU UUUUUUUU UU UV V V'V :V(EVnVtVzVWWW W &W2W :W EW RW _W kWvW"WWWW WW W XX X)XCXSXfX XX!XXXXXXX X Y YY -Y :Y FYSYgYwYYYYYYaZ |ZZ ZZ ZZ ZZ Z [K[][r[ [[[ [ [[\\\\(\] $]2]J]]]+z]]N]8]"1^T^e^8(_a_|_Ik`R`caQlaalaAFb-bCbAbKx~~:~u)Pā Ձ3+'S i,v ڂ50Iz!$ԃ.5Ha t$~*$΄" +$P'i0?… $)N$d[+'-@'nՈ ..5'NvW5AJ6z*] #&JQlӌ!   %06EF* *8cF9D@~ ۏ *-.COr'7-?e54ۑ .HL $7 > KX'k3 !7 MW ^jq Ô͔ݔ!-(VY3Rk .˖00+\ mz ڗ 0L_tYxҘ5ژ;L_%r! 'ę## < FP"" CSc s3}9330S]3?Vm$p!g=ߞ3Rj  ## )F !-OVr Vk` ̢ ע$cTr3Ǥ +H[  6P`p(Ц$ - 4 >L \ jw 5 # èߨ0FVn0-Ω  )9YipѪ0.'Mu  ǫ׫ $";Q d ߬(A* ""E[y® nvɯ ߯OV h 'α,BQfaPȲ1KudXڳ!3IU[mi|-fTh3RT]۸W9-3\$P3u969]TBXcp|\>YFCg! $4DTdt ;= L(Y  <32Rrw-S!+=0)~Z 2IZ0v NN0G9 9 ';!Su{>+D{H ![5<@,3/g' J)K& cxvD' 8LXP#Lw;1hdy:m3-K0/bTECBk+jK=1R XZQu $m"}f34&^f ?t1)A(,IBYM>!/Ml:-52n e|.+l!4o\?DG@q70.V=FzU8  O4j'9`>Wc|qN6=W< * 60;.e~rZ2kJ V9 G&%p L8x`HR7?i%,AYU)a%nA;7( #5\Er_]]yPgF"HFu2wS}Npv{*_abit^(sd$TJ >-Eo:IOC*<QszB~CS6$"M[hI9#@G  (modified) (unsaved)%d entry%d entries%d entry was pre-translated.%d entries were pre-translated.%d error%d errors%d issue with the translation found.%d issues with the translation found.%i line of file “%s” was not loaded correctly.%i lines of file “%s” were not loaded correctly.%s Format%s Preferences%s format&About&About Poedit&Apply&Back&Bookmarks&Cancel&Clear&Close&Copy&Delete&Done and Next&Done and next&Edit&File&Find…&GNU gettext Manual&GNU gettext manual&Go&Group By Context&Group by context&Help&New&New…&Next >&Next Translation&Next translation&No&OK&Online Help&Online help&Open...&Open…&Paste&Preferences&Preferences…&Previous Translation&Previous translation&Properties…&Purge Deleted Translations&Purge deleted translations&Quit&Redo&Replace&Save&Save as&Show References&Show references&Undo&Untranslated Entries First&Untranslated entries first&Update from Sources&Update from sources&Validate Translations&Validate translations&View&Yes(0 new, 0 obsolete)(Learn more about GNU gettext)(New: %i, obsolete: %i)(Use default language)(requires Windows 8 or newer)< &PreviousDrag and Drop Folders Here or use the + buttonDrag and drop folders here or use the + buttonAbout %sAccountsAdd CommentAdd Files…Add Folders…Add Wildcard…Add commentAdd directory to the listAdd files…Add folders…Add wildcard…Additional keywordsAdditional xgettext flags:AdvancedAdvanced Extraction Settings…Advanced extraction settingsAdvanced extraction settings…All Translation FilesAll commentsAlso use default keywords for supported languagesAlt+Always change focus to text input fieldAn item in input files list:An item in keywords list:AppearanceApplyAre you sure you want to delete the “%s” extractor?Are you sure you want to reset the translation memory?Automatically check for updatesAutomatically compile MO file when savingBackBase path:Beta versions contain the latest new features and improvements, but may be a bit less stable.Bring All to FrontBroken catalog file: plural form msgstr used without msgid_pluralBroken catalog file: singular form msgstr used together with msgid_pluralBrowseBy default, inaccurate results are filled in as well and marked as needing work. Check this option to only include accurate matches.C&atalogC&learCancelCannot create temporary directory.Cannot execute program: %sCapitalizeCatalogCatalog modified. Do you want to save changes?Catalog propertiesCatalogs &ManagerCatalogs &managerCatalogs ManagerChange UI languageCharset:Check Document NowCheck Grammar With SpellingCheck Spelling While TypingCheck for Updates…Check for errors in the translationCheck for updates…Check spellingClearClear TranslationClear the commentClear translationCloseCollaborate on a Translation with OthersCollaborate on a translation with othersCollecting source files…Command to extract translations:Comment:Comments prefixed with:Compile to MO…Compile to…Compiled Translation FilesConfigure source code extraction in Properties.ConfirmationCopyCopy From SingularCopy from Source TextCopy from singularCopy from source textCorrect Spelling AutomaticallyCouldn’t load file %s, it is probably corrupted.Couldn’t save file %s.Create New TranslationCreate new translationCreate new translations projectCrowdin errorCrowdin is an online localization management platform and collaborative translation tool. Poedit can seamlessly sync PO files managed at Crowdin.Ctrl+Cu&tCustom Extractors:Custom extractors:CutDatabase size on disk:DeleteDelete extractorDelete the projectDirectories:Display Entry &IDsDisplay entry &IDsDo you really want to do mass update of all catalogs in this project?Do you want to delete the project?Do you want to remove all translations that are no longer used?Don’t SaveDon’t Show AgainDon’t mark exact matches as needing workDon’t saveDon’t show againDownDownload a file from Crowdin project, translate and sync your changes back.Downloading latest translations…Downloading translations is disabled in this project.E&xitE&xport as HTML…EditEdit &CommentEdit &commentEdit CommentEdit a TranslationEdit a translationEdit commentEdit projectEdit the projectEditingEdit…Email:EnterEnter Full ScreenEntries in the catalog are probably incorrect.Entries in this catalog have different plural forms count from what catalog’s Plural-Forms header saysEntries with Errors FirstEntries with errors firstEntries with errors were marked in red in the list. Details of the error will be shown when you select such an entry.Error loading message catalog file “%s”.Error opening fileError opening file %s!Error saving catalogErrorsEverythingExcluded pathsExport as…Extract from sourcesExtract notes for translators from:Extract text from source files in the following directories:Extracting translatable strings…Extractor setupExtractorsFailed command: %sFailed to communicate with Poedit process.Failed to load extracted catalog.Failed to merge gettext catalogs.Failed to update translation memory: %sFileFile “%s” doesn’t exist.File “%s” is not a message catalog.File “%s” is read-only and cannot be saved. Please save it under different name.File:Finalizing…FindFind NextFind PreviousFind and Replace…Find in commentsFind in source textsFind in translationsFind nextFind previousFix LanguageFix languageFix the HeaderFix the headerForm %iFrequentGNU gettextGeneralGo to Bookmark %iGo to bookmark %iHTML FilesHelpHide %sHide OthersHide SidebarHide Status BarHide this notification messageIDIf you continue with purging, all translations marked as deleted will be permanently removed. You will have to translate them again if they are added back in the future.Ignore caseImporting translations…Include beta versionsInformation about the translatorInstallInvalid fileInvocation:KeepLanguage Code or Name (e.g. en_GB)Language of the translation is the same as source language.Language of the translation isn’t set.Language of the translation:Language selectionLanguage team:Language:Last modifiedLearn About Gettext KeywordsLearn From Files…Learn MoreLearn More About CrowdinLearn about gettext keywordsLearn about plural formsLearn from files…Learn moreLearn more about CrowdinLeftLine %d of file “%s” is corrupted (not valid %s data).Line endings:List of extensions separated by semicolons (e.g. *.cpp;*.h):MO files can’t be directly edited in Poedit.Make Lower CaseMake Upper CaseMalformed header: “%s”Merging differences…MinimizeName of the project the translation is forName:Ne&xt UnfinishedNe&xt unfinishedNeeds WorkNeeds workNever let the list of strings take focus. If enabled, you must use Ctrl-arrows for keyboard navigation but you can also type text immediately, without having to press Tab to change focus.NewNew From &POT/PO File…New from &POT/PO file…New stringsNext Plural FormNext plural formNoNo Matches FoundNo entries could be pre-translated.No matches foundNo problems with the translation found.No references for the selected item.No translation projects listed in your Crowdin account.Not all plural forms are translated.Not authorized, please sign in again.Notes for translators:OKObsolete stringsOneOnly enable if you trust the quality of your TM. By default, all matches from the TM are marked as needing work and should be reviewed before use.Only fill in exact matchesOpenOpen Crowdin translationOpen From Crowdin…Open RecentOpen an existing PO file and edit the translation.Open catalogOpen catalog templateOpen from Crowdin…Open in EditorOpen in editorOpen...Open…OptionsOtherP&revious UnfinishedP&revious unfinishedPO TranslationPO Translation FilesPOT Translation TemplatesPOT files are only templates and don’t contain any translations themselves. To make a translation, create a new PO file based on the template.PastePaste and Match StylePathsPlease open and edit the corresponding PO file instead. When you save it, the MO file will be updated as well.Please save the file first. This section cannot be edited until then.PluralPlural forms expression used by the catalog is unusual for %s.Plural forms:Plural:PoeditPoedit - Catalogs managerPoedit automatically fixed invalid content in the file “%s”.Poedit can attempt to fill in new entries from only previous translations in the file or from your entire translation memory. Using the TM won’t be very effective if it’s near-empty, but it will get better as you add more translations to it.Poedit is an easy to use translations editor.Pre-&translate…Pre-translatePre-translatedPre-translated %u stringPre-translated %u stringsPre-translating…Pre-translation automatically finds exact or fuzzy matches for untranslated strings in the translation memory and fills in their translations.PreferencesPreferences...Preferences…Preserve formatting of existing filesPrevious Plural FormPrevious plural formPrevious source text:Project name and version:Project name:Project:PurgePurge deleted translationsQuitQuit %sRecentRedoReferences:RefreshRemaining: %dReplaceReplace &AllReplace &allReplacement stringReplace…Required header Plural-Forms is missing.ResetReset translation memoryResetting the translation memory will irrevocably delete all stored translations from it. You can’t undo this operation.ReviewRightSaveSave &As…Save &as…Save asSave as…Save catalogSave changesSelect &AllSelect AllSelect directorySelect translation files to importSelect your preferred languageServicesSet Bookmark %iSet LanguageSet bookmark %iSet languageShift+Show AllShow SidebarShow Spelling and GrammarShow Status BarShow SubstitutionsShow or hide the sidebarShow sidebarShow status barShow summary after catalog updateSidebarSign InSign OutSign inSign in to CrowdinSign outSigned in as:SingularSingular:Smart Copy/PasteSmart DashesSmart LinksSmart QuotesSort by &File OrderSort by &SourceSort by &TranslationSort by &file orderSort by &sourceSort by &translationSource code charset:Source code extractors are used to find translatable strings in the source code files and extract them so that they can be translated.Source code not available.Source fileSource file occurrence:Source textSource text — %sSource text:Sources KeywordsSources PathsSources keywordsSources pathsSpeechSpellchecking is disabled, because the dictionary for %s isn’t installed.Spelling and GrammarStart SpeakingStop SpeakingStored translations:String to findSubstitutionsSuggestionsSuggestions are not available if the translation language is not set correctly. Other features, such as plural forms, may be affected as well.Supports all programming languages recognized by GNU gettext tools (PHP, C/C++, C#, Perl, Python, Java, JavaScript and others).SyncSync with CrowdinSynchronize the translation with CrowdinSyncingSyncing errorSyncing with %s failed.Syncing with %s…Syncing with Crowdin failed.Syntax error in Plural-Forms header ("%s").TMTake an existing PO file or POT template and create a new translation from it.Take translatable strings from an existing POT template.Team name and email address or URLText ReplacementThe TM doesn’t contain any strings similar to the content of this file. It is only effective for semi-automatic translations after Poedit learns enough from files that you translated manually.The file cannot be compiled into the MO format and used.The file cannot be opened.The file contained duplicate items, which is not allowed in PO files and would prevent the file from being used. Poedit fixed the issue, but you should review translations of any items marked as needing work and correct them if necessary.The file may be either corrupted or in a format not recognized by Poedit.The file was compiled into the MO format, but it will probably not work correctly.The file was saved safely and compiled into the MO format, but it will probably not work correctly.The file was saved safely, but it cannot be compiled into the MO format and used.The file was saved safely.The old source text (before it changed during an update) that the now-inaccurate translation corresponds to.The simplest way to fill this catalog is to update it from a POT:The translation doesn’t start with a space.The translation ends with a newline, but the source text doesn’t.The translation ends with a space, but the source text doesn’t.The translation ends with “%s”, but the source text ends with “%s”.The translation is missing a newline at the end.The translation is missing a space at the end.The translation is ready for use, but %d entry is not translated yet.The translation is ready for use, but %d entries are not translated yet.The translation is ready for use.The translation should end with “%s”.The translation should not end with “%s”.The translation should start as a sentence.The translation should start with a lowercase character.The translation starts with a space, but the source text doesn’t.The translations were marked as needing work, because they may be inaccurate. You should review them for correctness.There are no translations. That’s unusual.There was a problem formatting the file nicely (but it was saved all right).There were errors when loading the catalog. Some data may be missing or corrupted as the result.These settings affect internal formatting of PO files. Adjust them if you have specific requirements e.g. because of version control.These strings are no longer in the sources. Poedit will remove them from the catalog now.These strings were found in the sources but were not in the catalog. Poedit will add them to the catalog now.This catalog has entries with plural forms, but doesn’t have Plural-Forms header configured.This file can only be edited in Crowdin’s web interface.This is the command used to launch the extractor. %o expands to the name of output file, %K to list of keywords, %F to list of input files, %C to charset flag (see below).This project has no files that can be translated in Poedit.This string was found in Poedit’s translation memory.This will be attached to the command line only if source code charset was given. %c expands to charset value.This will be attached to the command line once for each input file. %f expands to the filename.This will be attached to the command line once for each keyword. %k expands to the keyword.TotalTransformationsTranslated: %d of %d (%d %%)Translation LanguageTranslation MemoryTranslation Needs &WorkTranslation PropertiesTranslation needs &workTranslation propertiesTranslation suggestions:Translation — %sTranslation:Translations couldn’t be updated from the source code, because no code was found in the location specified in the catalog’s Properties.TwoUTF-8 (recommended)UndoUnhandled exception occurred: %sUnix (recommended)UntransUpUpdateUpdate allUpdate all catalogs in the projectUpdate catalog - synchronize it with sourcesUpdate from &POT File…Update from &POT file…Update from POTUpdate summaryUpdatesUpdating catalogUpdating failedUpdating the catalog failed. Click on 'Details >>' for details.Updating user information…Uploading translations…Use custom expressionUse custom list font:Use custom text fields font:Use default rules for this languageUse these keywords (function names) to recognize translatable strings in source files:Use translation memoryValidateValidation resultsVersion %sWaiting for authentication…Welcome to PoeditWhat is Crowdin?When updating from sourcesWhole words onlyWindowWindowsWrap aroundWrap at:YesYou can also extract translatable strings directly from the source code:You can’t drop more than one file on Poedit window.You must restart Poedit for this change to take effect.Your NameYour changes will be lost if you don’t save them.Your name and email address are only used to set the Last-Translator header of GNU gettext files.ZeroZoomaltctrldon’t delete temporary files (for debugging)e.g. nplurals=2; plural=(n > 1);fuzzy match within the filehandle a poedit:// URIpre-translate from TMshiftunknown languageyour_email@example.com“%s” is not a valid POT file.Project-Id-Version: poedit Report-Msgid-Bugs-To: help@poedit.net POT-Creation-Date: 2017-12-05 15:52+0100 PO-Revision-Date: 2018-01-18 07:56-0500 Last-Translator: vslavik Language-Team: Japanese Language: ja_JP MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=1; plural=0; X-Generator: crowdin.com X-Crowdin-Project: poedit X-Crowdin-Language: ja X-Crowdin-File: /locales/poedit.pot (変更済) (未保存)%d項目%d件の項目が事前翻訳されました。%d件のエラー翻訳に%d件の問題が見つかりました。ファイル "%2$s" 中の %1$i行が正しく読み込まれませんでした。%s 形式%s 環境設定%s 形式このプログラムについて (&A)Poedit について (&A)適用 (&A)戻る (&B)ブックマーク (&B)キャンセル (&C)消去 (&C)閉じる (&C)コピー (&C)削除 (&D)翻訳済みとし、次へ (&D)翻訳済みとし、次へ (&D)編集 (&E)ファイル (&F)&検索…GNU gettext ドキュメント (&G)GNU gettext ドキュメント (&G)移動 (&G)コンテクストでグループ化 (&G)コンテクストでグループ化 (&G)ヘルプ (&H)新規 (&N)&新しい…次へ > (&N)次の翻訳 (&N)次の翻訳 (&N)いいえ (&N)OK (&O)オンラインヘルプ (&O)オンラインヘルプ (&O)開く… (&O)&開く…ペースト (&P)設定 (&P)&設定…前の翻訳 (&P)前の翻訳 (&P)&設定…削除された翻訳を一掃する (&P)削除された翻訳を一掃する (&P)終了 (&Q)やり直し (&R)置換 (&R)保存 (&S)名前を付けて保存 (&S)参照画面の表示 (&S)参照画面の表示 (&S)取り消し (&U)未訳の項目を先頭に (&U)未訳の項目を先頭に (&U)ソースから更新 (&U)ソースから更新 (&U)翻訳を検査 (&V)翻訳を検査 (&V)表示 (&V)はい (&Y)(新規 0、使用しないように変更 0)(GNU gettext の詳細)(新規 %i、使用しないように変更 %i)(デフォルト言語を使用)(Window 8 以降が必要)< 前へ (&P)フォルダーをここにドラッグアンドドロップ または [+] ボタンを使ってください。フォルダーをここにドラッグアンドドロップ または [+] ボタンを使ってください。<名称未設定>%s についてアカウントコメントを追加ファイルを追加…フォルダーを追加…ワイルドカードを追加…コメントを追加ディレクトリをリストに追加ファイルを追加…フォルダーを追加…ワイルドカードを追加…追加キーワード追加 xgettext フラグ:上級者モード高度な抽出設定…高度な抽出設定高度な抽出設定…すべての翻訳ファイルすべてのコメント対応言語のデフォルトキーワードも利用可能Alt+フォーカスは常にテキストフィールドに置く入力ファイル一覧の各項目:キーワード一覧の各項目:外観適用本当に「%s」抽出ツールを削除してもよいですか ?本当に翻訳メモリをリセットしてよいですか ?自動的に更新を確認保存する際に MO ファイルを自動コンパイル戻るベースのパス:ベータバージョンは最新の機能や改善を含みますが、安定性が低い可能性があります。すべてを手前に移動カタログファイルが破損しています。複数形表記の msgstr が使われていますが msgid_plural の指定がありません。カタログファイルが破損しています。msgid_plural が指定されていますが msgstr は複数形表記ではありません。参照デフォルトでは正確ではない一致結果も使われ、要確認としてマークされます。正確な一致のみを含めたい場合は、このオプションにチェックを入れてください。カタログ(&A)クリア(&L)キャンセル一時ディレクトリを作成できません。プログラムを実行できません: %sキャピタライズカタログカタログの変更を保存しますか ?カタログの設定カタログマネージャ (&M)カタログマネージャ (&M)カタログマネージャPoedit の UI 言語を変更文字符号化法:ドキュメンテーションを今すぐ確認文法と綴りを確認入力中にスペルチェックアップデートの確認...翻訳中のエラーをチェックアップデートの確認...スペルチェック消去翻訳をクリアコメントのクリア翻訳をクリア閉じるチームとの共同作業で翻訳他のユーザーと共同作業で翻訳ソースファイルを収集中…翻訳を抽出するコマンド:コメント:以下の接頭辞のついたコメント:MO にコンパイル…形式を指定してコンパイル…翻訳ファイルをコンパイルしました設定画面でソースコード抽出を設定できます。確認コピー単数形から複製ソーステキストからコピー単数形から複製ソーステキストからコピー綴りを自動修正ファイル %s を読み込めません。おそらくデータが破損しています。ファイル %s を保存できません。新しい翻訳を作成翻訳プロジェクトを新規作成する翻訳プロジェクトを作成するCrowdin エラーCrowdin は、オンラインのローカリゼーション管理プラットフォームであり、共同翻訳ツールです。Poedit は Crowdin で管理されている PO ファイルをシームレスに同期することができます。Ctrl+切り抜き (&t)カスタム抽出ツール:カスタム抽出ツール:切り抜きディスク上のデータベースサイズ:削除抽出ツールを削除翻訳プロジェクトを削除するディレクトリ:項目 ID を表示 (&I)項目 ID を表示 (&I)このプロジェクトのすべてのカタログを 更新してもよいですか ?プロジェクトを削除してもよいですか ?もう使われていない翻訳をすべて削除しますか ?保存しない再び表示しない完全な一致を要確認としてマークしない保存しない再び表示しない下へCrowdin プロジェクトからファイルをダウンロードし、翻訳した後に変更内容を同期します。最新の翻訳をダウンロード中…このプロジェクトでは、翻訳のダウンロードが無効になっています。終了 (&X)HTML としてエクスポート…編集コメントを編集 (&C)コメントを編集 (&C)コメントを編集翻訳を編集翻訳を編集コメントを編集プロジェクトを編集このプロジェクトを編集編集中編集…メール:Enter全画面表示カタログ中の項目が正しくない可能性があります。カタログの中の項目がカタログの Plural-Forms ヘッダで示された数と異なる複数形を持っていますエラーのある項目を先頭に表示エラーのある項目を先頭に表示エラーがある項目はリスト中で赤くマークされています。エラーの詳細は、その項目を選択すると表示されます。メッセージカタログ “%s” の読み込みエラーです。ファイルを開く際にエラーが発生しましたファイル %s を開く際にエラーが発生しました。カタログ保存エラーエラーすべて除外するパス書式を指定してエクスポート…ソースから抽出以下から翻訳者向けのメモを抽出:以下のディレクトリのソースファイルからテキストを抽出:翻訳可能な文字列を抽出中…抽出ツール設定抽出ツール失敗したコマンド: %sPoedit プロセスとの通信に失敗しました。抽出したカタログの読み込みに失敗しました。gettext カタログの統合に失敗しました。翻訳メモリを更新できませんでした: %sファイルファイル “%s” は存在しません。ファイル "%s" はメッセージカタログではありません。ファイル “%s” は読み出し専用のため保存できません。 別のファイル名で保存してください。ファイル:完了処理中…検索次を検索前を検索検索と置換…コメントを検索対象に含めるソース テキストを検索翻訳された文字列を検索対象に含める次を検索前を検索言語を修正言語を修正ヘッダーを修正ヘッダーを修正形式 %i頻繁GNU gettext一般ブックマーク %i へ移動ブックマーク %i へ移動HTML ファイルヘルプ%s を非表示他を非表示サイドバーを隠すステータスバーを非表示この通知メッセージを表示しないID一掃を実行すると、削除済みとしてマークされた翻訳はすべて完全に削除されます。将来再び追加された場合は翻訳し直す必要があります。大文字小文字を無視翻訳をインポート中…ベータ版を含める翻訳者に関する情報インストール不正なファイル呼び出し:保持する言語コードまたは言語名 (例: en_GB)翻訳言語がソース言語と同一です。翻訳の言語が設定されていません。翻訳の言語:言語選択言語チーム:言語:最終更新Gettext キーワードとはファイルから学習…さらに詳しくCrowdin についてgettext キーワードとは複数形とはファイルから学習…さらに詳しくCrowdin について左%d行目 (ファイル “%s“) が破損しています。無効な%sデータです。改行:セミコロン区切りの拡張子 (例. *.cpp;*h):MO ファイルは Poedit で直接編集できません。小文字に変換大文字に変換書式が不正なヘッダ: “%s”差分を統合しています…最小化翻訳するプロジェクトの名称名前:次の未訳または未確定 (&X)次の未訳または未確定 (&X)要確認要確認チェックすると一覧にフォーカスが移動しなくなります。キーボードによる項目の移動は Ctrl + 矢印キー のみとなります。新規POT ファイルを元に更新…POT ファイルを元に更新…新規文字列次の複数形次の複数形いいえ一致するものが見つかりませんでした事前翻訳できる項目はありませんでした。一致するものが見つかりませんでした翻訳に問題は見つかりませんでした。選択項目の参照情報はありません。あなたの Crowdin アカウントには翻訳プロジェクトが何もありません。複数形がすべて翻訳されていません。未認証です。もう一度ログインしてください。翻訳者への注記:OKもう使われていない文字列1翻訳メモリの品質を信頼できる場合のみ有効化してください。デフォルトでは翻訳メモリからの一致は要確認にマークされ、レビューが必要となります。完全な一致のみ採用する開くCrowdin 翻訳を開くCrowdin から開く…最近のファイルを開く既存の PO ファイルを開いて翻訳を編集する。カタログを開くカタログの雛形を開くCrowdin から開く…エディターで開くエディターで開く開く...開く...設定その他前の未訳または未確定 (&R)前の未訳または未確定 (&R)PO 翻訳PO 翻訳ファイルPOT 翻訳テンプレートPOT ファイルはテンプレートのみで、それ自体に翻訳は含まれていません。 翻訳を行うには、このテンプレートをベースにして新しい PO ファイルを作成します。ペースト同じスタイルでペーストパス代わりに、対応する PO ファイルを開いてください。そちらを保存する際に MO ファイルも更新されます。まずファイルを保存してください。保存するまでこのセクションは編集できません。複数形このカタログで使われている複数形表現は、%sの一般的なものではありません。複数形:複数形:PoeditPoedit - カタログマネージャPoedit は、ファイル「%s」内の無効なコンテンツを自動的に修正しました。Poedit は、ファイルに含まれる以前の翻訳または翻訳メモリのみから新しい項目を入力しようとすることもできます。翻訳メモリがほとんど空の場合、メモリを使ってもあまり効果はありませんが、翻訳を追加していくとさらに精度が高まっていきます。Poeditは使いやすい翻訳エディタです。事前翻訳…事前翻訳事前翻訳済み翻訳済みの %u 文字列事前翻訳中…事前翻訳は翻訳メモリ内から未翻訳文字列との完全またはあいまい一致を自動的に検出し、それで翻訳を埋めます。環境設定設定…設定…既存ファイルのフォーマットを保護する前の複数形前の複数形以前のソーステキスト:プロジェクト名とバージョン:プロジェクト名:プロジェクト:翻訳の一掃削除された翻訳を一掃する終了%s を終了最近再実行参照位置:再読み込み未翻訳: %d置き換えすべてを置換 (&A)すべてを置換 (&a)置換文字列置換…必要なヘッダ Plural-Forms がありません。リセット翻訳メモリをリセット翻訳メモリをリセットすると、保存された翻訳がすべて削除されます。元に戻すことはできません。レビュー右保存名前を付けて保存...名前を付けて保存...名前を付けて保存名前を付けて保存...カタログの保存変更を保存すべてを選択 (&A)すべてを選択ディレクトリの選択インポートする翻訳ファイルを選択お好みの言語を選択してくださいサービスブックマーク %i を設定言語を設定ブックマーク %i を設定言語を設定Shift+すべて表示サイドバーを表示綴りと文法を表示ステータスバーを表示代替案を表示サイドバーを表示・非表示にする。サイドバーを表示ステータスバーを表示カタログ更新後に要約を表示サイドバーログインログアウトログインCrowdin にログインログアウトログイン中:単数形単数形:スマートコピー & ペーストスマートダッシュスマートリンクスマート引用ファイル順でソート (&F)ソース順でソート (&S)翻訳順でソート (&T)ファイル順でソート (&F)ソース順でソート (&S)翻訳順でソート (&T)ソースコードの文字符号化法:ソースコード抽出ツールは、ソースコードファイル内にある翻訳可能な文字列を見つけて抽出するために使われます。ソースコードが存在しません。ソースファイルソースファイルでの出現:ソーステキストソース テキスト — %sソーステキスト:ソース中のキーワードソースのパスソース中のキーワードソースの検索パススピーチ%sの辞書がインストールされていないためスペルチェックは無効化されています。綴りと文法読み上げを開始読み上げを停止保存された翻訳:検索する文字列代替案提案翻訳言語が正しく設定されていない場合、提案は利用できません。また、複数形などの他の機能にも影響する可能性があります。GNU gettext ツール (PHP、C++、c#、Perl、Python、Java、JavaScript など) によって認識されるすべてのプログラミング言語に対応しています。同期Crowdin と同期Crowdin と翻訳を同期する同期中...同期エラー%s との同期に失敗しました。%s と同期中…Crowdin との同期に失敗しました。Plural-Forms ヘッダに文法エラーがあります ("%s") 。翻訳メモリ既存の PO または POT テンプレートから新しい翻訳プロジェクトを作成する。既存の POT テンプレートから翻訳可能な文字列を使います。チーム名とメールアドレスまたは URLテキスト置き換えこのファイルに含まれるコンテンツに似た文字列が翻訳メモリには含まれていません。ファイルを MO 形式にコンパイルして使用することができません。ファイルを開けません。ファイルに重複する項目が含まれています。重複項目は PO ファイルでは許可されておらず、ファイルの利用を妨げます。Poedit はこの問題を修正しましたが、要確認としてマークされている項目を確認し、必要に応じて修正する必要があります。ファイルが破損しているか、Poedit が認識できない形式のようです。ファイルを MO 形式にコンパイルしましたが、恐らく正常に動作しないでしょう。ファイルを安全に保存し MO 形式にコンパイルしましたが、恐らく正常に動作しないでしょう。ファイルは安全に保存されましたが MO 形式にコンパイルできなかったため使用できません。ファイルを安全に保存しました。未確定翻訳が対応する旧ソーステキスト (更新による変更前)。このカタログを埋める一番簡単な方法は POT ファイルから更新することです。翻訳がスペースで始まっていません。翻訳は改行で終わっていますが、原文はそうではありません。翻訳はスペースで終わっていますが、原文はそうではありあません。翻訳は "%s" で終わっていますが、原文は "%s" で終わっています。翻訳の末尾に改行がありません。翻訳の最後にスペースがありません。この翻訳を利用できますが、%d件の項目がまだ翻訳されていません。この翻訳は使用できます。翻訳は "%s" で終える必要があります。翻訳は "%s" 以外で終える必要があります。翻訳は文章から始まる必要があります。翻訳は小文字から始まる必要があります。翻訳はスペースで始まっていますが、原文はそうではありあません。翻訳は正確でない可能性があるため、要確認としてマークされています。間違っていないかどうかレビューしてください。翻訳が存在しません。何かがおかしいようです。ファイルを整形する際に問題が発生しましたが、保存は完了しています。カタログを読み出す際にエラーが発生しました。このため一部のデータが失われたり破損したりしている可能性があります。これらの設定は PO ファイルの内部フォーマットに影響します。例えばバージョンコントロールのような特別な要件がある場合は調整してください。これらの文字列はソースファイルにはもう存在しません。 Poedit はカタログからこの文字列を取り除きます。これらの文字列がソースファイル中に存在しますが、カタログには含まれていませんでした。 Poedit はカタログにこの文字列を追加します。このカタログには複数形を含む項目がありますが、Plural-Forms ヘッダが設定されていません。このファイルは Crowdin の Web インターフェイスでのみ編集できます。これは抽出ツールを立ち上げるためのコマンドです。 %o は出力ファイルの名前として展開され、%K は キーワードのリスト、%F は入力ファイルのリスト、 %C は文字集合フラグ (以下を参照) です。このプロジェクトには Poedit で翻訳できるファイルがありません。Poedit の翻訳メモリにこの文字列が見つかりました。ソースコードの文字符号化法が指定された場合のみ コマンドラインに追加されます。%c に符号化法の値が展開されます。各入力ファイルごとに一回コマンドラインへ追加されます。 %f にファイル名が展開されます。各キーワードごとに一回コマンドラインへ追加されます。 %k にキーワード名が展開されます。合計変換翻訳済み: %d/%d件中 (%d %%)翻訳言語翻訳メモリ翻訳要確認翻訳の特性翻訳要確認翻訳の設定翻訳の提案:翻訳 — %s翻訳:カタログの属性で指定された位置にコードが見つからなかったため、翻訳をソースコードから更新できませんでした。2UTF-8 (推奨)元に戻す未処理例外が発生しました: %sUnix (推奨)未翻訳上へ更新する全て更新するプロジェクトのすべてのカタログを更新するカタログの更新 - ソースと同期させるPOT ファイルから更新…POT ファイルから更新…POT ファイルから更新要約を更新更新カタログを更新中更新に失敗しましたカタログの更新に失敗しました。詳細を見るには ‘詳細 >>’ をクリックしてください。ユーザー情報を更新しています…翻訳をアップロード中…カスタム表現を使用カスタムリストフォントを使う:カスタムテキストフィールドフォントを使う:この言語のデフォルトルールを使うソースファイル中でこれらのキーワード (または関数名) を 翻訳対象文字列の認識に使います:翻訳メモリを使う検査検査の結果バージョン %s認証を待機中…Poedit へようこそCrowdin とは ?ソースからの更新時空白等で区切られた単語だけを探すウィンドウWindows回り込み折り返し:はい翻訳可能な文字列をソースコードから直接抽出できます。Poedit へドロップできるのは1回につき1ファイルのみです。変更を有効にするには Poedit を再起動してください。あなたの名前:保存しないと追加した変更は失われます。お名前とメールアドレスは GNU gettext ファイルの Last-Translator ヘッダーを設定するためにのみ使われます。0ズームaltctrl一時ファイルを削除しない (デバッグ向け)例: nplurals=2; plural=(n > 1);ファイル内でのあいまい一致poedit:// URI を処理翻訳メモリから事前翻訳shift不明な言語your_email@example.com“%s” は有効な POT ファイルではありません。poedit-2.0.6/locales/da.mo0000664000372000037200000013623613230132076012277 00000000000000P%1 1 11<11J 2gW2 22 22 222 3333%3+333B3Q3W3]3f3z333333333333 3 44 4)4 04=4M4c4y44444444445 5(5D5Y5n55555555 6 '6:36:n6 666 6 666 6 7 #707?7O7c7~77777 71898'>8f88 8878689)=9g9 l9]w99A9I*:t:{:; ;;";:; U;`;.h;;;;;;;;<*<F<#[<<<<<<<<(<(=7= R=s=|== ==/= = >>#>9>L>b>2>>>>> ?)???????@@@ 2@?@R@Ee@"@?@ AA*.A YAfAyAK~A"A5A#B)BHAH HHI 'IHI PI ]IiI"nI;I(IIJ&J 5J ?JMJjJ ~JJJJJ JJK:K PK<^K.KKKKLL*%LPLVLgL xL LLJMNMgM MMMMM#MM'M$N7DN$|N%NNNNNNOOOO O2O P#P9PNP]PlPtP|PPPPPPPPQQQnQERZR>aR RRRR@RS-Tx <Ά "Y&$:0C]w Èˈ ш-܈i tp5GaƊ#ي0#.R ht0&;1NR)n[  (:Ma w  ȍ ԍ  ' 0>P"b-/]z ͏#ԏ4&-T n x  Őϐ,<Q?YA-3!Km,ÒՒ  2F J#W {8(2$%Bh'Bjo 7 '6? GU[nǗZbyrPCKK8ә 7G W e,r LZk'|Μ  4 ;EM T ` kw ~  /!  Ğ ̞ מ -C ^h ~ Ο %5'E myȠݠ  ,A^}~š Den ̢ע DA W bl =Ťʤ' ".Q'i,S:#Pt<2/M+NydȩO-}lM-QEDū? -J,x ."O'r+-ƭDn96C߮g#Rek]Ѱ:/j@,=m}f)h1Jg͵! ϶ܶ߶ #*E^w QϷ!@[%q*#¸ZA_h ~ɹ  C8]=Ժ5ݺey}.#޻'%@U [h~D}],6 9BW6tC3H>C'# )h?*Kq#-0^aG2zFYblx&2LADZ.EwPi=Ab[kv @4uh~ uL@|pnf.nTN? QI2:qOKcajd F!p ]U>T+rXi=J%Vxz51^s4 NH/F"8/XJ`om #UwQk :Gs$ 8jL!~I1,(<D-9B>|;$H(E?g<y!dYgIo \ <eN+rM5&cM5 :"K-A+EmZ7C"603B $%RfRVeyOG*S@ M,4}_{O%W91J)S[`' 7)v &;*{(l_.03=\7P8/t';P (modified) (unsaved)%d entry%d entries%d entry was pre-translated.%d entries were pre-translated.%d error%d errors%d issue with the translation found.%d issues with the translation found.%i line of file “%s” was not loaded correctly.%i lines of file “%s” were not loaded correctly.%s Format%s Preferences%s format&About&About Poedit&Apply&Back&Bookmarks&Cancel&Clear&Close&Copy&Delete&Done and Next&Done and next&Edit&File&Find…&GNU gettext Manual&GNU gettext manual&Go&Group By Context&Group by context&Help&New&New…&Next >&Next Translation&Next translation&No&OK&Online Help&Online help&Open...&Open…&Paste&Preferences&Preferences…&Previous Translation&Previous translation&Properties…&Purge Deleted Translations&Purge deleted translations&Quit&Redo&Replace&Save&Save as&Show References&Show references&Undo&Untranslated Entries First&Untranslated entries first&Update from Sources&Update from sources&Validate Translations&Validate translations&View&Yes(0 new, 0 obsolete)(Learn more about GNU gettext)(New: %i, obsolete: %i)(Use default language)(requires Windows 8 or newer)< &PreviousDrag and Drop Folders Here or use the + buttonDrag and drop folders here or use the + buttonAbout %sAccountsAdd CommentAdd Files…Add Folders…Add Wildcard…Add commentAdd directory to the listAdd files…Add folders…Add wildcard…Additional keywordsAdditional xgettext flags:AdvancedAdvanced Extraction Settings…Advanced extraction settingsAdvanced extraction settings…All Translation FilesAll commentsAlso use default keywords for supported languagesAlt+Always change focus to text input fieldAn item in input files list:An item in keywords list:AppearanceApplyAre you sure you want to delete the “%s” extractor?Are you sure you want to reset the translation memory?Automatically check for updatesAutomatically compile MO file when savingBackBase path:Beta versions contain the latest new features and improvements, but may be a bit less stable.Bring All to FrontBroken catalog file: plural form msgstr used without msgid_pluralBroken catalog file: singular form msgstr used together with msgid_pluralBrowseBy default, inaccurate results are filled in as well and marked as needing work. Check this option to only include accurate matches.C&atalogC&learCancelCannot create temporary directory.Cannot execute program: %sCapitalizeCatalogCatalog modified. Do you want to save changes?Catalog propertiesCatalogs &ManagerCatalogs &managerCatalogs ManagerChange UI languageCharset:Check Document NowCheck Grammar With SpellingCheck Spelling While TypingCheck for Updates…Check for errors in the translationCheck for updates…Check spellingClearClear TranslationClear the commentClear translationCloseCollaborate on a Translation with OthersCollaborate on a translation with othersCollecting source files…Command to extract translations:Comment:Comments prefixed with:Compile to MO…Compile to…Compiled Translation FilesConfigure source code extraction in Properties.ConfirmationCopyCopy From SingularCopy from Source TextCopy from singularCopy from source textCorrect Spelling AutomaticallyCouldn’t load file %s, it is probably corrupted.Couldn’t save file %s.Create New TranslationCreate new translationCreate new translations projectCrowdin errorCrowdin is an online localization management platform and collaborative translation tool. Poedit can seamlessly sync PO files managed at Crowdin.Ctrl+Cu&tCustom Extractors:Custom extractors:CutDatabase size on disk:DeleteDelete extractorDelete the projectDirectories:Display Entry &IDsDisplay entry &IDsDo you really want to do mass update of all catalogs in this project?Do you want to delete the project?Do you want to remove all translations that are no longer used?Don’t SaveDon’t Show AgainDon’t mark exact matches as needing workDon’t saveDon’t show againDownDownload a file from Crowdin project, translate and sync your changes back.Downloading latest translations…Downloading translations is disabled in this project.E&xitE&xport as HTML…EditEdit &CommentEdit &commentEdit CommentEdit a TranslationEdit a translationEdit commentEdit projectEdit the projectEditingEdit…Email:EnterEnter Full ScreenEntries in the catalog are probably incorrect.Entries in this catalog have different plural forms count from what catalog’s Plural-Forms header saysEntries with Errors FirstEntries with errors firstEntries with errors were marked in red in the list. Details of the error will be shown when you select such an entry.Error loading message catalog file “%s”.Error opening fileError opening file %s!Error saving catalogErrorsEverythingExcluded pathsExport as…Extract from sourcesExtract notes for translators from:Extract text from source files in the following directories:Extracting translatable strings…Extractor setupExtractorsFailed command: %sFailed to communicate with Poedit process.Failed to load extracted catalog.Failed to merge gettext catalogs.Failed to update translation memory: %sFileFile “%s” doesn’t exist.File “%s” is not a message catalog.File “%s” is read-only and cannot be saved. Please save it under different name.File:Finalizing…FindFind NextFind PreviousFind and Replace…Find in commentsFind in source textsFind in translationsFind nextFind previousFix LanguageFix languageFix the HeaderFix the headerForm %iFrequentGNU gettextGeneralGo to Bookmark %iGo to bookmark %iHTML FilesHelpHide %sHide OthersHide SidebarHide Status BarHide this notification messageIDIf you continue with purging, all translations marked as deleted will be permanently removed. You will have to translate them again if they are added back in the future.Ignore caseImporting translations…Include beta versionsInformation about the translatorInstallInvalid fileInvocation:KeepLanguage Code or Name (e.g. en_GB)Language of the translation is the same as source language.Language of the translation isn’t set.Language of the translation:Language selectionLanguage team:Language:Last modifiedLearn About Gettext KeywordsLearn From Files…Learn MoreLearn More About CrowdinLearn about gettext keywordsLearn about plural formsLearn from files…Learn moreLearn more about CrowdinLeftLine %d of file “%s” is corrupted (not valid %s data).Line endings:List of extensions separated by semicolons (e.g. *.cpp;*.h):MO files can’t be directly edited in Poedit.Make Lower CaseMake Upper CaseMalformed header: “%s”Merging differences…MinimizeName of the project the translation is forName:Ne&xt UnfinishedNe&xt unfinishedNeeds WorkNeeds workNever let the list of strings take focus. If enabled, you must use Ctrl-arrows for keyboard navigation but you can also type text immediately, without having to press Tab to change focus.NewNew From &POT/PO File…New from &POT/PO file…New stringsNext Plural FormNext plural formNoNo Matches FoundNo entries could be pre-translated.No matches foundNo problems with the translation found.No references for the selected item.No translation projects listed in your Crowdin account.Not all plural forms are translated.Not authorized, please sign in again.Notes for translators:OKObsolete stringsOneOnly enable if you trust the quality of your TM. By default, all matches from the TM are marked as needing work and should be reviewed before use.Only fill in exact matchesOpenOpen Crowdin translationOpen From Crowdin…Open RecentOpen an existing PO file and edit the translation.Open catalogOpen catalog templateOpen from Crowdin…Open in EditorOpen in editorOpen...Open…OptionsOtherP&revious UnfinishedP&revious unfinishedPO TranslationPO Translation FilesPOT Translation TemplatesPOT files are only templates and don’t contain any translations themselves. To make a translation, create a new PO file based on the template.PastePaste and Match StylePathsPlease open and edit the corresponding PO file instead. When you save it, the MO file will be updated as well.Please save the file first. This section cannot be edited until then.PluralPlural forms expression used by the catalog is unusual for %s.Plural forms:Plural:PoeditPoedit - Catalogs managerPoedit automatically fixed invalid content in the file “%s”.Poedit can attempt to fill in new entries from only previous translations in the file or from your entire translation memory. Using the TM won’t be very effective if it’s near-empty, but it will get better as you add more translations to it.Poedit is an easy to use translations editor.Pre-&translate…Pre-translatePre-translatedPre-translated %u stringPre-translated %u stringsPre-translating…Pre-translation automatically finds exact or fuzzy matches for untranslated strings in the translation memory and fills in their translations.PreferencesPreferences...Preferences…Preserve formatting of existing filesPrevious Plural FormPrevious plural formPrevious source text:Project name and version:Project name:Project:PurgePurge deleted translationsQuitQuit %sRecentRedoReferences:RefreshRemaining: %dReplaceReplace &AllReplace &allReplacement stringReplace…Required header Plural-Forms is missing.ResetReset translation memoryResetting the translation memory will irrevocably delete all stored translations from it. You can’t undo this operation.ReviewRightSaveSave &As…Save &as…Save asSave as…Save catalogSave changesSelect &AllSelect AllSelect directorySelect translation files to importSelect your preferred languageServicesSet Bookmark %iSet LanguageSet bookmark %iSet languageShift+Show AllShow SidebarShow Spelling and GrammarShow Status BarShow SubstitutionsShow or hide the sidebarShow sidebarShow status barShow summary after catalog updateSidebarSign InSign OutSign inSign in to CrowdinSign outSigned in as:SingularSingular:Smart Copy/PasteSmart DashesSmart LinksSmart QuotesSort by &File OrderSort by &SourceSort by &TranslationSort by &file orderSort by &sourceSort by &translationSource code charset:Source code extractors are used to find translatable strings in the source code files and extract them so that they can be translated.Source code not available.Source fileSource file occurrence:Source textSource text — %sSource text:Sources KeywordsSources PathsSources keywordsSources pathsSpeechSpellchecking is disabled, because the dictionary for %s isn’t installed.Spelling and GrammarStart SpeakingStop SpeakingStored translations:String to findSubstitutionsSuggestionsSuggestions are not available if the translation language is not set correctly. Other features, such as plural forms, may be affected as well.Supports all programming languages recognized by GNU gettext tools (PHP, C/C++, C#, Perl, Python, Java, JavaScript and others).SyncSync with CrowdinSynchronize the translation with CrowdinSyncingSyncing errorSyncing with %s failed.Syncing with %s…Syncing with Crowdin failed.Syntax error in Plural-Forms header ("%s").TMTake an existing PO file or POT template and create a new translation from it.Take translatable strings from an existing POT template.Team name and email address or URLText ReplacementThe TM doesn’t contain any strings similar to the content of this file. It is only effective for semi-automatic translations after Poedit learns enough from files that you translated manually.The catalog couldn’t be saved in “%s” charset as specified in catalog settings. It was saved in UTF-8 instead and the setting was modified accordingly.The file cannot be compiled into the MO format and used.The file cannot be opened.The file contained duplicate items, which is not allowed in PO files and would prevent the file from being used. Poedit fixed the issue, but you should review translations of any items marked as needing work and correct them if necessary.The file may be either corrupted or in a format not recognized by Poedit.The file was compiled into the MO format, but it will probably not work correctly.The file was saved safely and compiled into the MO format, but it will probably not work correctly.The file was saved safely, but it cannot be compiled into the MO format and used.The file was saved safely.The old source text (before it changed during an update) that the now-inaccurate translation corresponds to.The simplest way to fill this catalog is to update it from a POT:The translation doesn’t start with a space.The translation ends with a newline, but the source text doesn’t.The translation ends with a space, but the source text doesn’t.The translation ends with “%s”, but the source text ends with “%s”.The translation is missing a newline at the end.The translation is missing a space at the end.The translation is ready for use, but %d entry is not translated yet.The translation is ready for use, but %d entries are not translated yet.The translation is ready for use.The translation should end with “%s”.The translation should not end with “%s”.The translation should start as a sentence.The translation should start with a lowercase character.The translation starts with a space, but the source text doesn’t.The translations were marked as needing work, because they may be inaccurate. You should review them for correctness.There are no translations. That’s unusual.There was a problem formatting the file nicely (but it was saved all right).There were errors when loading the catalog. Some data may be missing or corrupted as the result.These settings affect internal formatting of PO files. Adjust them if you have specific requirements e.g. because of version control.These strings are no longer in the sources. Poedit will remove them from the catalog now.These strings were found in the sources but were not in the catalog. Poedit will add them to the catalog now.This catalog has entries with plural forms, but doesn’t have Plural-Forms header configured.This file can only be edited in Crowdin’s web interface.This is the command used to launch the extractor. %o expands to the name of output file, %K to list of keywords, %F to list of input files, %C to charset flag (see below).This project has no files that can be translated in Poedit.This string was found in Poedit’s translation memory.This will be attached to the command line only if source code charset was given. %c expands to charset value.This will be attached to the command line once for each input file. %f expands to the filename.This will be attached to the command line once for each keyword. %k expands to the keyword.TotalTransformationsTranslatable entries aren’t added manually in the Gettext system, but are automatically extracted from source code. This way, they stay up to date and accurate. Translators typically use PO template files (POTs) prepared for them by the developer.Translated: %d of %d (%d %%)Translation LanguageTranslation MemoryTranslation Needs &WorkTranslation PropertiesTranslation needs &workTranslation propertiesTranslation suggestions:Translation — %sTranslation:Translations couldn’t be updated from the source code, because no code was found in the location specified in the catalog’s Properties.TwoUTF-8 (recommended)UndoUnhandled exception occurred: %sUnix (recommended)UntransUpUpdateUpdate allUpdate all catalogs in the projectUpdate catalog - synchronize it with sourcesUpdate from &POT File…Update from &POT file…Update from POTUpdate summaryUpdatesUpdating catalogUpdating failedUpdating the catalog failed. Click on 'Details >>' for details.Updating user information…Uploading translations…Use custom expressionUse custom list font:Use custom text fields font:Use default rules for this languageUse these keywords (function names) to recognize translatable strings in source files:Use translation memoryValidateValidation resultsVersion %sWaiting for authentication…Welcome to PoeditWhat is Crowdin?When updating from sourcesWhole words onlyWindowWindowsWrap aroundWrap at:YesYou can also extract translatable strings directly from the source code:You can’t drop more than one file on Poedit window.You must restart Poedit for this change to take effect.Your NameYour changes will be lost if you don’t save them.Your name and email address are only used to set the Last-Translator header of GNU gettext files.ZeroZoomaltctrldon’t delete temporary files (for debugging)e.g. nplurals=2; plural=(n > 1);fuzzy match within the filego to item at given line numberhandle a poedit:// URIpre-translate from TMshiftunknown languageyour_email@example.com“%s” is not a valid POT file.Project-Id-Version: poedit Report-Msgid-Bugs-To: help@poedit.net POT-Creation-Date: 2017-12-05 15:52+0100 PO-Revision-Date: 2017-09-21 11:19-0400 Last-Translator: vslavik Language-Team: Danish Language: da_DK MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=(n != 1); X-Generator: crowdin.com X-Crowdin-Project: poedit X-Crowdin-Language: da X-Crowdin-File: /locales/poedit.pot (ændret) (ikke gemt)%d post%d poster%d emne blev præ-oversat.%d emner blev præ-oversat.%d fejl%d fejlFandt %d problem med oversættelsen.Fandt %d problemer med oversættelsen.%i linje af filen “%s” blev ikke indlæst korrekt.%i linjer af filen “%s” blev ikke indlæst korrekt.%s format%s indstillinger%s format&Om&Om Poedit&AnvendTil&bage&BogmærkerAnnullér&Ryd&Luk&Kopiér&SletFæ&rdig og næsteFæ&rdig og næste&Redigér&Fil&Find…&GNU gettext manual&GNU gettext manual&Gå til&Grupper efter kontekst&Grupper efter kontekst&Hjælp&Ny%Ny…&Næste >&Næste oversættelse&Næste oversættelse&Nej&Ok&Onlinehjælp&Onlinehjælp&Åbn...&Åbn…&Sæt ind&Indstillinger&Indstillinger…&Forrige oversættelse&Forrige oversættelse&Egenskaber…&Tøm slettede oversættelser&Tøm slettede oversættelser&Afslut&Gentag&Erstat&Gem&Gem som&Vis referencer&Vis referencer&Fortryd&Ikke-oversatte poster først&Ikke-oversatte poster først&Opdatér fra kilder&Opdatér fra kilder&Validér oversættelser&Validér oversættelser&Vis&Ja(0 nye, 0 forældede)(lær mere om GNU gettext)(Nye: %i, forældede: %i)(vælg standardsprog)(kræver Windows 8 eller nyere)< &ForrigeTræk og slip mapper her eller brug +-knappenTræk og slip mapper her eller brug +-knappenOm %sKontiTilføj kommentarTilføj filer…Tilføj mapper…Tilføj wildcard…Tilføj kommentarTilføj mappe til listenTilføj filer…Tilføj mapper…Tilføj wildcard…Yderligere nøgleordYderligere xgettext flag:AvanceretAvancerede udtrækningsindstillinger…Avancerede udtræksindstillingerAvancerede udtrækningsindstillinger…Alle oversættelsesfilerAlle kommentarerBrug også standard nøgleord for understøttede sprogAlt+Skift altid fokus til indtastningsfeltet for tekstEn post i listen over inddata filer:En post i nøgleordslisten:UdseendeAnvendEr du sikker på at du vil slette "%s"-udtrækkeren?Er du sikker på at du ønsker at nulstille oversættelseshukommelsen?Søg automatisk efter opdateringerKompiler automatisk MO fil når der gemmesTilbageGrundlæggende sti:Betaversioner indeholder de nyeste funktioner og forbedringer, men kan være lidt mindre stabile.Bring alle fremFejl i katalogfil: flertalsform msgstr anvendt uden msgid_pluralFejl i katalogfil: entalsform msgstr anvendt sammen med msgid_pluralGennemseSom standard vil unøjagtige resultater også blive udfyldt og markeret som "skal efterses." Marker dette punkt for kun at inkludere nøjagtige overensstemmelser.K&atalog&RydAnnullérKan ikke oprette midlertidig mappe.Kan ikke udføre program: %sStort begyndelsesbogstavKatalogKatalog ændret. Vil du gemme ændringerne?Egenskaber for katalog&Kataloghåndtering&KataloghåndteringKataloghåndteringSkift brugerfladens sprogTegnsæt:Tjek dokument nuKontrollér grammatik med stavningTjek stavning mens du skriverSøg efter opdateringer…Find fejl i oversættelsenSøg efter opdateringer…StavekontrolRydRyd oversættelseRyd kommentarenRyd oversættelseLukSamarbejd med andre om en oversættelseSamarbejd med andre om en oversættelseIndsamler kildefiler…Kommando til at udtrække oversættelser:Kommentar:Kommentarer som starter med:Kompilér til MO…Kompilér til…Kompilerede oversættelsesfilerKonfigurér kildekode-udtrækning i Egenskaber.BekræftelseKopierKopiér fra entalKopiér fra kildetekstKopiér fra entalKopiér fra kildetekstKontroller automatisk stavningKunne ikke indlæse fien %s, den er sandsynligvis ødelagt.Kunne ikke gemme filen %s.Opret ny oversættelseOpret ny oversættelseOpret nyt oversættelsesprojektCrowdin fejlCrowdin er en online lokaliseringhåndterings platform og et kollaborativt oversættelsesværktøj. Poedit kan uden problemer synkronisere PO-filer der bliver håndteret på Crowdin.Ctrl+Kli&pTilpassede udtrækkere:Tilpassede udtrækkere:KlipDatabasestørrelse på disk:SletSlet udtrækkerSlet projektetMapper:Vis emne &ID'erVis emne &ID'erVil du virkelig masseopdatere alle kataloger i dette projekt?Vil du slette projektet?Vil du slette alle oversættelser som ikke længere er i brug?Gem ikkeVis ikke igenMarker ikke nøjagtige overensstemmelser som "skal efterses"Gem ikkeVis ikke igenNedDownload en fil fra et Crowdin-projekt, oversæt og synkronisér dine ændringer tilbage.Downloader seneste oversættelser…Download af oversættelser er deaktiveret i dette projekt.&AfslutE&ksporter som HTML…RedigérRedigér &kommentarRedigér &kommentarRedigér kommentarRedigér en oversættelseRedigér en oversættelseRedigér kommentarRedigér projektRedigér projektetRedigererRediger…E-mail:EnterFuldskærmPoster i kataloget er sandsynligvis ukorrekt.Teksterne i dette katalog har et andet antal flertalsformer end hvad katalogets Plural-Forms-header sigerEmner med fejl førstEmner med fejl førstEmner med fejl er markeret med rødt i listen. Detaljer om fejlen vil blive vist når du vælger sådan et emne.Fejl ved indlæsning af meddelelseskatalogfilen "%s".Fejl ved åbning af filenFejl ved åbning af filen %s!Fejl ved gemning af katalogFejlAltUdelukkede stierEksporter som…Udtræk fra kilderUdtræk noter til oversættere fra:Udtræk tekst fra kildefiler i følgende mapper:Pakker oversættelige strenge ud…Udtrækker opsætningUdtrækkereFejlet kommando: %sDer kunne ikke kommunikere med Poedit-processen.Kunne ikke indlæse udtrukket katalog.Der opstod en fejl ved sammenfletning af gettext-kataloger.Kunne ikke opdatere oversættelseshukommelsen: %sFilFilen "%s" eksisterer ikke.Filen "%s" er ikke et meddelelseskatalog.Filen “%s” er skrivebeskyttet og kan ikke gemmes. Gem den venligst under et andet navn.Fil:Færdiggører…FindFind næsteFind forrigeFind og erstat…Find i kommentarerFind i kildeteksterFind i oversættelserFind næsteFind forrigeRet sprogRet sprogRet headerenRet filhovedetForm %iMest brugteGNU gettextGenereltGå til bogmærket %iGå til bogmærket %iHTML filerHjælpSkjul %sSkjul øvrigeSkjul sidebjælkeSkjul statuslinjeSkjul denne påmindelsesmeddelelseIDHvis du fortsætter vil alle oversættelser som er markeret som slettede, blive fjernet permanent. Du vil skulle oversætte dem igen hvis de senere igen bliver brugt.Ignorer forskelle på store og små bogstaverImporterer oversættelser…Medtag betaversionerInformation om oversætterenInstallerUgyldig filUdførsel:BeholdSprogkode eller navn (f.eks. da_DK)Oversættelsessproget er det samme som kildesproget.Oversættelsessproget er ikke angivet.Sprog for oversættelsen:SprogvalgSprog team:Sprog:Sidst ændretLær om Gettext nøgleordLær fra filer…Lær mereLær mere om CrowdinLær om gettext nøgleordLær mere om flertalsformerLær fra filer…Find ud af mereLær mere om CrowdinVenstreLinje %d af filen “%s” er beskadiget (ikke gyldig %s data).Linjeafslutninger:Liste med filendelser, adskilt med semikolon (f.eks. *.cpp, *.h):MO filer kan ikke redigeres direkte i Poedit.Lav til små bogstaverLav til store bogstaverForkert udformet header: “%s”Sammenlægger forskelle…MinimerNavn på projektet som oversættelsen er tilNavn:N&æste ufærdigeN&æste ufærdigeSkal eftersesSkal eftersesFokusér aldrig på listen med strenge. Hvis det er slået til, skal du bruge Ctrl-piletaster for at navigere med tastaturet, men du kan til gengæld indtaste tekst uden at skulle bruge tabulator tasten for at flytte fokus.NyNy fra &POT/PO fil…Ny fra &POT/PO fil…Nye strengeNæste flertalsformNæste flertalsformNejIngen fundetIngen emner kunne præ-oversættes.Ingen fundetDer blev ikke fundet nogle problemer med oversættelsen.Ingen referencer for at det valgte emne.Ingen oversættelsesprojekter i din Crowdin-konto.Elle alle flertalsformer er oversat.Ikke godkendt, log venligst ind igen.Noter til oversættere:OKForældede strengeEnMarker kun hvis du stoler på kvaliteten af din TM. Som standard vil alle overensstemmelser fra TM'en være markeret som "skal efterses" og bør gennemlæses før brug.Udfyld kun nøjagtige overensstemmelserÅbnÅbn Crowdin-oversættelseÅbn fra Crowdin…Åbn nyligeÅbn en eksisterende PO-fil og redigér oversættelsen.Åbn katalogÅbn katalogskabelonÅbn fra Crowdin…Åben i editorÅben i editor&Åbn...Åbn…IndstillingerAndetF&orrige ufærdigeF&orrige ufærdigePO OversættelsePO oversættelsesfilerPOT oversættelses skabelonerPOT-filer er kun skabeloner som ikke indeholder nogen oversættelser. For at oprette en oversættelse skal du oprette en ny PO-fil fra skabelonen.IndsætIndsæt og tilpas stilStierÅben og rediger venligst den tilhørende PO fil i stedet. Når du gemmer den, vil MO filen også blive opdateret.Gem venligst filen først. Denne kan sektion kan ikke redigere før det er sket.FlertalFlertals formular udtrykket der bruges af kataloget er usædvanligt for %s.Flertalsformer:Flertal:PoeditPoedit - KataloghåndteringPoedit rettede automatisk ugyldigt indhold i filen "%s".Poedit kan prøve at udfylde nye emner blot ud fra tidligere oversættelser i filen, eller fra hele din oversættelseshukommelse. Brug af TM vil ikke være så effektiv hvis den er halv-tom, men vil blive bedre når du tilføjer flere oversættelser til den.Poedit er et værktøj som gør det nemt at oversætte.For&oversæt…Præ-oversætPræ-oversatFor-oversat %u strengFor-oversat %u strengePræ-oversætter…Præ-oversættelse finder automatisk præcise eller uafklarede ord til u-oversatte strenge i oversættelseshukommelsen og udfylder deres oversættelser.IndstillingerIndstillinger...Indstillinger…Bevar formatering af eksisterende filerForrige flertalsformForrige flertalsformTidligere kildetekst:Projektnavn og version:Projektnavn:Projekt:TømTøm slettede oversættelserAfslutAfslut %sSenesteGentagReferencer:GenopfriskMangler: %dErstatErstat &alleErstat &alleErstatningsstrengErstat…Det påkrævede filhovede Plural-Forms mangler.NulstilNulstil oversættelseshukommelsenNulstilling af oversættelseshukommelsen vil uigenkaldeligt slette alle gemte oversættelser i den. Du kan ikke fortryde denne handling.KorrekturHøjreGemGem &som…Gem &som…Gem somGem som…Gem katalogGem ændringerVælg &alleVælg alleVælg mappeVælg oversættelsesfiler der skal importeresVælg dit foretrukne sprogTjenesterIndstil bogmærket %iIndstil sprogIndstil bogmærket %iAngiv sprogShift+Vis alleVis sidebjælkeVis stavning og grammatikVis statuslinjeVis erstatningerVis eller skjul sidepaneletVis sidebjælkeVis statuslinjeVis resumé efter opdatering af katalogSidebjælkeLog indLog udLog indLog ind på CrowdinLog udLogget ind som:EntalEntal:Smart kopier/indsætSmarte bindestregerSmarte linksSmarte citaterSortér efter &filrækkefølgeSortér efter &kildeSortér efter &oversættelseSortér efter &filrækkefølgeSortér efter &kildeSortér efter &oversættelseKildekodens tegnsæt:Kildekode udtrækkerer bruges til at finde oversætbare strenge i kildekode-filerne og trækker dem ud så de kan oversættes.Kildekoden er ikke tilgængelig.KildefilKildefilsforekomst:Oprindelig tekstKildetekst — %sOprindelig tekst:Nøgleord i kildefilSøgestierNøgleord i kildefilSøgestierTaleStavekontrol er deaktiveret, da ordbogen for %s ikke er installeret.Stavning og grammatikStart taleStop taleGemte oversættelser:Streng som skal findesErstatningerForslagForslag er ikke tilgængelige hvis oversættelsessproget ikke er angivet korrekt. Andre ting, såsom flertalsformer kan også blive påvirket.Understøtter alle programmeringssprog som kendes af GNU gettext værktøjer (PHP, C/C++, C#, Perl, Python, Java, JavaScript og andre).SynkSynkronisér med CrowdinSynkronisér oversættelsen med CrowdinSynkroniseringSynkroniseringsfejlSynkronisering med %s mislykkedes.Synkroniserer med %s…Synkronisering med Crowdin mislykkedes.Syntaksfejl i Plural-Forms-filhovede ("%s").TMTag en eksisterende PO-fil eller POT-skabelon og opret en ny oversættelse fra den.Tag oversætbare strenge fra en eksisterende POT-skabelon.Holdnavn og e-mailadresse eller URLTekst erstatningOH indeholder ikke nogen strenge der svarer til indholdet af denne fil. Den er kun god til halv-automatiske oversættelser når Poedit har lært nok fra filer du har oversat manuelt.Kataloget kunne ikke gemmes i “%s” tegnsættet som angivet i katalogindstillingerne. Det blev gemt i UTF-8 i stedet og indstillinger er tilsvarende blevet ændret.Filen kan ikke kompileres til MO format og bruges.Filen kan ikke åbnes.Filen indeholdt duplikerede emner som ikke er tilladt i PO filer, og som kunne forhindre filen i at blive brugt. Poedit rettede fejlen, men du bør gennemgå oversættelser af alle emner der er markeret som "skal efterses" og rette dem om nødvendigt.Filen kan enten være korrupt eller i et format som ikke genkendes af Poedit.Filen blev kompileret til MO format, men vil sandsynligvis ikke virke korrekt.Filen blev gemt korrekt og kompileret til MO-formatet, men den vil sandsynligvis ikke virke korrekt.Denne blev gemt korrekt, men den kan ikke kompileres til MO-formatet og bruges.Filen blev gemt sikkert.Den gamle kildetekst (før den blev ændret ved en opdatering) som den nu forkerte oversættelse svarer til.Den nemmeste måde at fylde dette katalog, er ved at opdatere det fra en POT:Oversættelsen starter ikke med et mellemrum.Oversættelsen slutter med et linjeskift, men kildeteksten gør ikke.Oversættelsen slutter med et mellemrum, men kildeteksten gør ikke.Oversættelsen ender med "%s", men kildeteksten ender med "%s".Oversættelsen mangler et linjeskift i enden.Oversættelsen mangler et mellemrum i enden.Oversættelsen er klar til brug, men %d emner er endnu ikke oversat.Oversættelsen er klar til brug, men %d emne er endnu ikke oversat.Oversættelsen er klar til brug.Oversættelsen bør ende med "%s".Oversættelsen bør ikke ende med "%s".Oversættelsen bør starte som en sætning.Oversættelsen bør starte med et lille tegn.Oversættelsen starter med et mellemrum, men kildeteksten gør ikke.Oversættelserne blev markeret som "skal efterses", da de kan være forkerte. Du bør tjekke deres korrekthed.Der er ikke nogen oversættelser. Det er usædvanligt.Der er et problem med at formatere filen pænt (men den blev gemt).Der var fejl ved indlæsning af kataloget. Som følge heraf kan nogle data mangle eller være forkerte.Disse indstillinger påvirker den interne formatering af PO filer. Tilpas dem hvis du har specielle krav f.eks på grund af versionskontrol.Disse strenge er ikke længere i kilderne. Poedit vil nu fjerne dem fra kataloget.Disse strenge blev fundet i kilderne, men er ikke i kataloget. Poedit vil nu føje dem til kataloget.Dette katalog har emner med flertalsformer, men har ikke headeren Plural-Forms konfigureret.Denne fil kan kun redigeres i Crowdin’s webgrænseflade.Dette er kommandoen der bruges til at afvikle udtrækkeren. %o bliver til navnet for outputfilen, %K til listen over nøgleord, %F til listen over inputfiler, %C til tegnsætflag (se nedenfor).Dette projekt har ikke nogen filer der kan oversættes i Poedit.Denne streng blev fundet i Poedit's oversættelseshukommelse.Dette vil blive vedhæftet til kommandolinjen, dog kun hvis kildekodens tegnsæt er givet. %c erstattes med tegnsætværdien.Dette vil blive vedhæftet til kommandolinjen en gang for hver inddatafil. %f erstattes med filnavnet.Dette vil blive vedhæftet til kommandolinjen en gang for hvert nøgleord. %k erstattes med nøgleordet.I altTransformeringerOversættelige emner tilføjes ikke manuelt i Gettext-systemet, men udtrækkes automatisk fra kildekoden. På denne måde er de altid opdateret og korrekte. Oversættere bruger typisk PO-skabelonfiler (POT) som er lavet til dem af udvikleren.Oversat: %d af %d (%d %%)OversættelsessprogOversættelseshukommelseOversættelse skal &eftersesOversættelsesegenskaberOversættelse skal &eftersesOversættelsesegenskaberOversættelsesforslag:Oversættelse — %sOversættelse:Oversættelserne kunne ikke opdateres fra kildekoden, da der ikke blev fundet nogen kode på det sted som er angivet i katalogets egenskaber.ToUTF-8 (anbefalet)FortrydUhåndteret undtagelse opstod: %sUnix (anbefalet)Ikke-oversatOpOpdatérOpdatér alleOpdatér alle kataloger i projektetOpdatér katalog - synkronisér med kilderOpdatér fra &POT-fil…Opdatér fra &POT fil…Opdatér fra POTOpdatér resuméOpdateringerOpdaterer katalogOpdatering mislykkedesOpdatering af katalog fejlede. Klik på "Detaljer >>" for yderligere oplysninger.Opdaterer brugeroplysninger…Uploader oversættelser…Brug tilpasset udtrykBrug tilpasset skrifttype til lister:Brug tilpasset skrifttype til tekstfelter:Brug standardregler for dette sprogBrug disse nøgleord (funktionsnavne) til at genkende oversættelige strenge i kildefiler:Brug oversættelseshukommelseValidérValideringsresultatetVersion %sVenter på godkendelse…Velkommen til PoeditHvad er Crowdin?Ved opdatering fra kilderKun hele ordVindueWindowsOmbrydningOmbryd ved:JaDu kan også udtrække oversætbare strenge direkte fra kildekoden:Du kan ikke trække mere end én fil til Poedit vinduet.Du skal genstarte Poedit før denne ændring træder i kraft.Dit navnDine ændringer vil gå tabt hvis du ikke gemmer dem.Dit navn og din e-mailadresse bruges kun til at udfylde Last-Translator headeren i GNU gettext filer.NulZoomaltctrlslet ikke midlertidige filer (til fejlfinding)f.eks. nplurals=2; plural=(n != 1);lav uafklaret søgning i filengå til emnet på et givent linjenummerhåndtér en poedit://-URIpræ-oversæt fra TMshiftukendt sprogdin_email@example.com"%s" er ikke en gyldig POT fil.poedit-2.0.6/locales/en_GB.mo0000664000372000037200000010742213230132076012660 00000000000000k& & &&&J'gR'' ' '''''' (((-(A(E(W(i(o(w(( ( ((( (((()6)<)B)S)d)j)))))))**3*K*b* *:*:* + ++ + *+6+P+d+m++'+++ +7+6*,a,), ,],-A'-Ii-----"-- ...".Q.d.v......./#/9/H/Z/l/~/(// // /0/0 K0X0]0p0000201111H1 h1v12222.252F2 Y2f2y2E2"2?2 53B3 U3b3u3Kz3"3534%4 *4 84 F4S4 f4 s444444.445u5555 55 55< 6"I6l6 |66*6!6!6' 717'P7Tx777 7 7788 +8 58 C8 P8]8l8{8888 8 88888 99 99 9 9:" :;/:k:: : : :::: ;;:1; l;<z;.;;;<!<8<*A<l<r<<<P= T=`=q==='=$=7=%)>O>f>i>z>~>>> >2> >??(?7???E?Z?o?~???>@D@Z@n`@E@A>A[AcAjA@A-AA%B,BABVBlB BBBBBB B BBB(B&C,CzECCC C C C C CD"DEFENEWE_ErE {EE EE E E EEEE F F0FEFZFF FG G,G ?GLG ]GkGKrGGG GGH H "H.HHH(HH II+I>I+[IINI8IJ#JJ8KKKILRMceMQMNA6NxN!O,)OLVO`OPYPmP:RQQ;9R7uR_R[ SiSoSSSSSSS TTTTT TTTTT U"U,1U^UnU}UUU?UUVV3VIV#fVVVVVW WW=WOW`WqWxW WWHW5W7X LX3VXaXXXXX.X .YOYoYYYY!YY [ [[[J\gK\\ \ \\\\\\] ]]&]:]>]P]b]h]p]] ] ]]] ]]]]^/^5^;^L^]^c^^^^^^^^ _,_D_[_ y_:_:_ _`` ` #`/`I`]`f`|`'``` `7`6#aZa)za a]a bC bKdbb bbb"bb c c0#cTcic}ccccccc d#dBdQdcdudd(dd dd d e/$e Teaefeyeeee2e f#f:fQf qffggg g7g>gOg bgoggGg"g?h @hMh `hmhhKh"h5h*i0i 5i Ci Qi^i qi ~iiiiii0iiju)jjjj jj jk<k"Yk|k kk*k#k#k'lEl)dlTlll l lmm,m Am Km Ym fmsmmmmmm m mmm nn nn nn o oo""o;Eooo o o ooo p #p.p:Gp p<p.pp qq7qNq*Wqqqqqfr jrvrrrr'r$r7s%?ses|ssssss s2s tt3tBtQtYt_tttttttXu^utunzuEu/v@6vwvvv@v-vw%$wJw_wtww wwwwww w wxx(xDxJxzcxxx xx y y y(y"9y\y{y yy yy yyyyz z,z#.F x8E] XI\n-; &oivD s1UM>cdui%fNsJ[Zp;C5ba%!'_x3B^W  GUAv"+W={:=3~O(,460)JD|zPZ-A (modified) (unsaved)%d entry%d entries%d error%d errors%d issue with the translation found.%d issues with the translation found.%i line of file “%s” was not loaded correctly.%i lines of file “%s” were not loaded correctly.&About&About Poedit&Bookmarks&Close&Copy&Delete&Done and Next&Done and next&Edit&File&GNU gettext Manual&GNU gettext manual&Go&Group By Context&Group by context&Help&Next >&Next Translation&Next translation&Online Help&Online help&Open...&Paste&Preferences&Previous Translation&Previous translation&Purge Deleted Translations&Purge deleted translations&Redo&Save&Show References&Show references&Undo&Untranslated Entries First&Untranslated entries first&Update from Sources&Update from sources&Validate Translations&Validate translations&View(0 new, 0 obsolete)(Learn more about GNU gettext)(New: %i, obsolete: %i)(Use default language)(requires Windows 8 or newer)< &PreviousDrag and Drop Folders Here or use the + buttonDrag and drop folders here or use the + buttonAbout %sAccountsAdd CommentAdd commentAdd directory to the listAdditional keywordsAdvancedAll Translation FilesAlt+Always change focus to text input fieldAn item in input files list:An item in keywords list:AppearanceAre you sure you want to delete the “%s” extractor?Are you sure you want to reset the translation memory?Automatically check for updatesAutomatically compile MO file when savingBase path:Beta versions contain the latest new features and improvements, but may be a bit less stable.Bring All to FrontBroken catalog file: plural form msgstr used without msgid_pluralBroken catalog file: singular form msgstr used together with msgid_pluralBrowseC&atalogC&learCancelCannot create temporary directory.Cannot execute program: %sCapitalizeCatalogCatalog modified. Do you want to save changes?Catalog propertiesCatalogs &ManagerCatalogs &managerCatalogs ManagerChange UI languageCharset:Check Document NowCheck Grammar With SpellingCheck Spelling While TypingCheck for Updates…Check for errors in the translationCheck spellingClear TranslationClear the commentClear translationCloseCollaborate on a translation with othersCollecting source files…Command to extract translations:Comment:Compile to…Compiled Translation FilesConfigure source code extraction in Properties.ConfirmationCopyCopy From SingularCopy from Source TextCopy from singularCopy from source textCorrect Spelling AutomaticallyCouldn’t load file %s, it is probably corrupted.Couldn’t save file %s.Create New TranslationCreate new translationCreate new translations projectCrowdin errorCrowdin is an online localization management platform and collaborative translation tool. Poedit can seamlessly sync PO files managed at Crowdin.Ctrl+Cu&tCutDatabase size on disk:DeleteDelete extractorDelete the projectDirectories:Display Entry &IDsDisplay entry &IDsDo you really want to do mass update of all catalogs in this project?Do you want to delete the project?Do you want to remove all translations that are no longer used?Don’t SaveDon’t Show AgainDon’t saveDon’t show againDownDownload a file from Crowdin project, translate and sync your changes back.Downloading latest translations…Downloading translations is disabled in this project.E&xitEditEdit &CommentEdit &commentEdit CommentEdit a translationEdit commentEdit projectEdit the projectEditingEmail:EnterEnter Full ScreenEntries in the catalog are probably incorrect.Entries with Errors FirstEntries with errors firstEntries with errors were marked in red in the list. Details of the error will be shown when you select such an entry.Error opening fileError opening file %s!Error saving catalogEverythingExcluded pathsExport as…Extract from sourcesExtract text from source files in the following directories:Extracting translatable strings…Extractor setupExtractorsFailed command: %sFailed to communicate with Poedit process.Failed to load extracted catalog.Failed to merge gettext catalogs.Failed to update translation memory: %sFile “%s” doesn’t exist.File “%s” is not a message catalog.File “%s” is read-only and cannot be saved. Please save it under different name.File:FindFind NextFind PreviousFind in commentsFind in source textsFind in translationsFind nextFind previousFix LanguageFix languageFix the HeaderFix the headerForm %iGeneralGo to Bookmark %iGo to bookmark %iHTML FilesHide SidebarHide Status BarHide this notification messageIDIf you continue with purging, all translations marked as deleted will be permanently removed. You will have to translate them again if they are added back in the future.Ignore caseInclude beta versionsInformation about the translatorInstallInvalid fileInvocation:KeepLanguage Code or Name (e.g. en_GB)Language of the translation is the same as source language.Language of the translation:Language selectionLanguage:Last modifiedLearn MoreLearn More About CrowdinLearn about gettext keywordsLearn about plural formsLearn moreLearn more about CrowdinLine %d of file “%s” is corrupted (not valid %s data).Line endings:List of extensions separated by semicolons (e.g. *.cpp;*.h):MO files can’t be directly edited in Poedit.Make Lower CaseMake Upper CaseMalformed header: “%s”Merging differences…MinimizeName of the project the translation is forName:Ne&xt UnfinishedNe&xt unfinishedNever let the list of strings take focus. If enabled, you must use Ctrl-arrows for keyboard navigation but you can also type text immediately, without having to press Tab to change focus.NewNew stringsNext Plural FormNext plural formNo Matches FoundNo matches foundNo problems with the translation found.No references for the selected item.No translation projects listed in your Crowdin account.Not authorized, please sign in again.Notes for translators:OKObsolete stringsOneOnly fill in exact matchesOpenOpen Crowdin translationOpen RecentOpen an existing PO file and edit the translation.Open catalogOpen catalog templateOpen in EditorOpen in editorOptionsOtherP&revious UnfinishedP&revious unfinishedPO TranslationPO Translation FilesPOT Translation TemplatesPOT files are only templates and don’t contain any translations themselves. To make a translation, create a new PO file based on the template.PastePaste and Match StylePathsPlease open and edit the corresponding PO file instead. When you save it, the MO file will be updated as well.Please save the file first. This section cannot be edited until then.PluralPlural forms expression used by the catalog is unusual for %s.Plural:PoeditPoedit - Catalogs managerPoedit automatically fixed invalid content in the file “%s”.Poedit is an easy to use translations editor.Pre-translating…Preserve formatting of existing filesPrevious Plural FormPrevious plural formPrevious source text:Project name and version:Project name:Project:PurgePurge deleted translationsQuitRedoReferences:Remaining: %dReplaceReplacement stringRequired header Plural-Forms is missing.ResetReset translation memoryResetting the translation memory will irrevocably delete all stored translations from it. You can’t undo this operation.ReviewSaveSave as…Save catalogSave changesSelect &AllSelect AllSelect directorySelect translation files to importSelect your preferred languageSet Bookmark %iSet LanguageSet bookmark %iSet languageShift+Show SidebarShow Spelling and GrammarShow Status BarShow SubstitutionsShow or hide the sidebarShow sidebarShow status barShow summary after catalog updateSidebarSign InSign OutSign inSign in to CrowdinSign outSigned in as:SingularSingular:Smart Copy/PasteSmart DashesSmart LinksSmart QuotesSort by &File OrderSort by &SourceSort by &TranslationSort by &file orderSort by &sourceSort by &translationSource code charset:Source code extractors are used to find translatable strings in the source code files and extract them so that they can be translated.Source code not available.Source fileSource file occurrence:Source textSource text — %sSource text:Sources keywordsSources pathsSpeechSpellchecking is disabled, because the dictionary for %s isn’t installed.Spelling and GrammarStart SpeakingStop SpeakingStored translations:String to findSubstitutionsSuggestionsSuggestions are not available if the translation language is not set correctly. Other features, such as plural forms, may be affected as well.SyncSync with CrowdinSynchronize the translation with CrowdinSyncingSyncing errorSyncing with %s failed.Syncing with %s…Syncing with Crowdin failed.Syntax error in Plural-Forms header ("%s").TMTake an existing PO file or POT template and create a new translation from it.Take translatable strings from an existing POT template.Text ReplacementThe TM doesn’t contain any strings similar to the content of this file. It is only effective for semi-automatic translations after Poedit learns enough from files that you translated manually.The catalog couldn’t be saved in “%s” charset as specified in catalog settings. It was saved in UTF-8 instead and the setting was modified accordingly.The file cannot be compiled into the MO format and used.The file cannot be opened.The file contained duplicate items, which is not allowed in PO files and would prevent the file from being used. Poedit fixed the issue, but you should review translations of any items marked as needing work and correct them if necessary.The file may be either corrupted or in a format not recognized by Poedit.The file was compiled into the MO format, but it will probably not work correctly.The file was saved safely and compiled into the MO format, but it will probably not work correctly.The file was saved safely, but it cannot be compiled into the MO format and used.The file was saved safely.The simplest way to fill this catalog is to update it from a POT:The translation is ready for use, but %d entry is not translated yet.The translation is ready for use, but %d entries are not translated yet.The translation is ready for use.There are no translations. That’s unusual.There was a problem formatting the file nicely (but it was saved all right).There were errors when loading the catalog. Some data may be missing or corrupted as the result.These settings affect internal formatting of PO files. Adjust them if you have specific requirements e.g. because of version control.These strings are no longer in the sources. Poedit will remove them from the catalog now.These strings were found in the sources but were not in the catalog. Poedit will add them to the catalog now.This file can only be edited in Crowdin’s web interface.This is the command used to launch the extractor. %o expands to the name of output file, %K to list of keywords, %F to list of input files, %C to charset flag (see below).This project has no files that can be translated in Poedit.This string was found in Poedit’s translation memory.This will be attached to the command line once for each input file. %f expands to the filename.This will be attached to the command line once for each keyword. %k expands to the keyword.TotalTransformationsTranslated: %d of %d (%d %%)Translation LanguageTranslation MemoryTranslation propertiesTranslation suggestions:Translation — %sTranslation:Translations couldn’t be updated from the source code, because no code was found in the location specified in the catalog’s Properties.TwoUTF-8 (recommended)UndoUnhandled exception occurred: %sUnix (recommended)UntransUpUpdateUpdate allUpdate all catalogs in the projectUpdate catalog - synchronize it with sourcesUpdate from POTUpdate summaryUpdatesUpdating catalogUpdating failedUpdating the catalog failed. Click on 'Details >>' for details.Updating user information…Uploading translations…Use custom expressionUse custom list font:Use custom text fields font:Use default rules for this languageUse these keywords (function names) to recognize translatable strings in source files:Use translation memoryValidateValidation resultsVersion %sWaiting for authentication…Welcome to PoeditWhat is Crowdin?Whole words onlyWindowWindowsWrap aroundWrap at:You can also extract translatable strings directly from the source code:You can’t drop more than one file on Poedit window.You must restart Poedit for this change to take effect.Your NameYour changes will be lost if you don’t save them.Your name and email address are only used to set the Last-Translator header of GNU gettext files.ZeroZoomaltctrldon’t delete temporary files (for debugging)e.g. nplurals=2; plural=(n > 1);go to item at given line numberhandle a poedit:// URIshiftunknown languageyour_email@example.com“%s” is not a valid POT file.Project-Id-Version: poedit Report-Msgid-Bugs-To: help@poedit.net POT-Creation-Date: 2017-12-05 15:52+0100 PO-Revision-Date: 2018-01-18 07:57-0500 Last-Translator: vslavik Language-Team: English, United Kingdom Language: en_GB MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=(n != 1); X-Generator: crowdin.com X-Crowdin-Project: poedit X-Crowdin-Language: en-GB X-Crowdin-File: /locales/poedit.pot (modified) (unsaved)%d entry%d entries%d error%d errors%d issue with the translation found.%d issues with the translation found.%i line of file “%s” was not loaded correctly.%i lines of file “%s” were not loaded correctly.&About&About Poedit&Bookmarks&Close&Copy&Delete&Done and Next&Done and next&Edit&File&GNU gettext Manual&GNU gettext manual&Go&Group By Context&Group by context&Help&Next >&Next Translation&Next translation&Online Help&Online help&Open...&Paste&Preferences&Previous Translation&Previous translation&Purge Deleted Translations&Purge deleted translations&Redo&Save&Show References&Show references&Undo&Untranslated Entries First&Untranslated entries first&Update from Sources&Update from sources&Validate Translations&Validate translations&View(0 new, 0 obsolete)(Learn more about GNU gettext)(New: %i, obsolete: %i)(Use default language)(requires Windows 8 or newer)< &PreviousDrag and Drop Folders Here or use the + buttonDrag and drop folders here or use the + buttonAbout %sAccountsAdd CommentAdd commentAdd directory to the listAdditional keywordsAdvancedAll Translation FilesAlt+Always change focus to text input fieldAn item in input files list:An item in keywords list:AppearanceAre you sure you want to delete the “%s” extractor?Are you sure you want to reset the translation memory?Automatically check for updatesAutomatically compile MO file when savingBase path:Beta versions contain the latest new features and improvements, but may be a bit less stable.Bring All to FrontBroken catalogue file: plural form msgstr used without msgid_pluralBroken catalogue file: singular form msgstr used together with msgid_pluralBrowseC&atalogueC&learCancelCannot create temporary directory.Cannot execute program: %sCapitaliseCatalogueCatalogue modified. Do you want to save changes?Catalogue propertiesCatalogues &ManagerCatalogues &managerCatalogs ManagerChange UI languageCharset:Check Document NowCheck Grammar With SpellingCheck Spelling While TypingCheck for Updates…Check for errors in the translationCheck spellingClear TranslationClear the commentClear translationCloseCollaborate on a translation with othersCollecting source files…Command to extract translations:Comment:Compile to…Compiled Translation FilesConfigure source code extraction in Properties.ConfirmationCopyCopy From SingularCopy from Source TextCopy from singularCopy from source textCorrect Spelling AutomaticallyCouldn’t load file %s, it is probably corrupted.Couldn’t save file %s.Create New TranslationCreate new translationCreate new translations projectCrowdin errorCrowdin is an online localisation management platform and collaborative translation tool. Poedit can seamlessly sync PO files managed at Crowdin.Ctrl+Cu&tCutDatabase size on disk:DeleteDelete extractorDelete the projectDirectories:Display Entry &IDsDisplay entry &IDsDo you really want to do mass update of all catalogues in this project?Do you want to delete the project?Do you want to remove all translations that are no longer used?Don’t SaveDon’t Show AgainDon’t saveDon’t show againDownDownload a file from Crowdin project, translate and sync your changes back.Downloading latest translations…Downloading translations is disabled in this project.E&xitEditEdit &CommentEdit &commentEdit CommentEdit a translationEdit commentEdit projectEdit the projectEditingE-mail:EnterEnter Full ScreenEntries in the catalogue are probably incorrect.Entries with Errors FirstEntries with errors firstEntries with errors were marked in red in the list. Details of the error will be shown when you select such an entry.Error opening fileError opening file %s!Error saving catalogueEverythingExcluded pathsExport as…Extract from sourcesExtract text from source files in the following directories:Extracting translatable strings…Extractor setupExtractorsFailed command: %sFailed to communicate with Poedit process.Failed to load extracted catalogue.Failed to merge gettext catalogues.Failed to update translation memory: %sFile “%s” doesn’t exist.File “%s” is not a message catalogue.File “%s” is read-only and cannot be saved. Please save it under different name.File:FindFind NextFind PreviousFind in commentsFind in source textsFind in translationsFind nextFind previousFix LanguageFix languageFix the HeaderFix the headerForm %iGeneralGo to Bookmark %iGo to bookmark %iHTML FilesHide SidebarHide Status BarHide this notification messageIDIf you continue with purging, all translations marked as deleted will be permanently removed. You will have to translate them again if they are added back in the future.Ignore caseInclude beta versionsInformation about the translatorInstallInvalid fileInvocation:KeepLanguage Code or Name (e.g. en_GB)Language of the translation is the same as source language.Language of the translation:Language selectionLanguage:Last modifiedLearn MoreLearn More About CrowdinLearn about gettext keywordsLearn about plural formsLearn moreLearn more about CrowdinLine %d of file “%s” is corrupted (not valid %s data).Line endings:List of extensions separated by semicolons (e.g. *.cpp;*.h):MO files can’t be directly edited in Poedit.Make Lower CaseMake Upper CaseMalformed header: “%s”Merging differences…MinimiseName of the project the translation is forName:Ne&xt UnfinishedNe&xt unfinishedNever let the list of strings take focus. If enabled, you must use Ctrl-arrows for keyboard navigation but you can also type text immediately, without having to press Tab to change focus.NewNew stringsNext Plural FormNext plural formNo Matches FoundNo matches foundNo problems with the translation found.No references for the selected item.No translation projects listed in your Crowdin account.Not authorised, please sign in again.Notes for translators:OKObsolete stringsOneOnly fill in exact matchesOpenOpen Crowdin translationOpen RecentOpen an existing PO file and edit the translation.Open catalogueOpen catalogue templateOpen in EditorOpen in editorOptionsOtherP&revious UnfinishedP&revious unfinishedPO TranslationPO Translation FilesPOT Translation TemplatesPOT files are only templates and don’t contain any translations themselves. To make a translation, create a new PO file based on the template.PastePaste and Match StylePathsPlease open and edit the corresponding PO file instead. When you save it, the MO file will be updated as well.Please save the file first. This section cannot be edited until then.PluralPlural forms expression used by the catalogue is unusual for %s.Plural:PoeditPoedit - Catalogues managerPoedit automatically fixed invalid content in the file “%s”.Poedit is an easy to use translations editor.Pre-translating…Preserve formatting of existing filesPrevious Plural FormPrevious plural formPrevious source text:Project name and version:Project name:Project:PurgePurge deleted translationsQuitRedoReferences:Remaining: %dReplaceReplacement stringRequired header Plural-Forms is missing.ResetReset translation memoryResetting the translation memory will irrevocably delete all stored translations from it. You can’t undo this operation.ReviewSaveSave as…Save catalogueSave changesSelect &AllSelect AllSelect directorySelect translation files to importSelect your preferred languageSet Bookmark %iSet LanguageSet bookmark %iSet languageShift+Show SidebarShow Spelling and GrammarShow Status BarShow SubstitutionsShow or hide the sidebarShow sidebarShow status barShow summary after catalogue updateSidebarSign InSign OutSign inSign in to CrowdinSign outSigned in as:SingularSingular:Smart Copy/PasteSmart DashesSmart LinksSmart QuotesSort by &File OrderSort by &SourceSort by &TranslationSort by &file orderSort by &sourceSort by &translationSource code charset:Source code extractors are used to find translatable strings in the source code files and extract them so that they can be translated.Source code not available.Source fileSource file occurrence:Source textSource text — %sSource text:Sources keywordsSources pathsSpeechSpellchecking is disabled, because the dictionary for %s isn’t installed.Spelling and GrammarStart SpeakingStop SpeakingStored translations:String to findSubstitutionsSuggestionsSuggestions are not available if the translation language is not set correctly. Other features, such as plural forms, may be affected as well.SyncSync with CrowdinSynchronise the translation with CrowdinSyncingSyncing errorSyncing with %s failed.Syncing with %s…Syncing with Crowdin failed.Syntax error in Plural-Forms header ("%s").TMTake an existing PO file or POT template and create a new translation from it.Take translatable strings from an existing POT template.Text ReplacementThe TM doesn’t contain any strings similar to the content of this file. It is only effective for semi-automatic translations after Poedit learns enough from files that you translated manually.The catalogue couldn’t be saved in “%s” charset as specified in catalogue settings. It was saved in UTF-8 instead and the setting was modified accordingly.The file cannot be compiled into the MO format and used.The file cannot be opened.The file contained duplicate items, which is not allowed in PO files and would prevent the file from being used. Poedit fixed the issue, but you should review translations of any items marked as needing work and correct them if necessary.The file may be either corrupted or in a format not recognised by Poedit.The file was compiled into the MO format, but it will probably not work correctly.The file was saved safely and compiled into the MO format, but it will probably not work correctly.The file was saved safely, but it cannot be compiled into the MO format and used.The file was saved safely.The simplest way to fill this catalogue is to update it from a POT:The translation is ready for use, but %d entry is not translated yet.The translation is ready for use, but %d entries are not translated yet.The translation is ready for use.There are no translations. That’s unusual.There was a problem formatting the file nicely (but it was saved all right).There were errors when loading the catalogue. Some data may be missing or corrupted as the result.These settings affect internal formatting of PO files. Adjust them if you have specific requirements e.g. because of version control.These strings are no longer in the sources. Poedit will remove them from the catalogue now.These strings were found in the sources but were not in the catalogue. Poedit will add them to the catalogue now.This file can only be edited in Crowdin’s web interface.This is the command used to launch the extractor. %o expands to the name of output file, %K to list of keywords, %F to list of input files, %C to charset flag (see below).This project has no files that can be translated in Poedit.This string was found in Poedit’s translation memory.This will be attached to the command line once for each input file. %f expands to the filename.This will be attached to the command line once for each keyword. %k expands to the keyword.TotalTransformationsTranslated: %d of %d (%d %%)Translation LanguageTranslation MemoryTranslation propertiesTranslation suggestions:Translation — %sTranslation:Translations couldn’t be updated from the source code, because no code was found in the location specified in the catalogue’s Properties.TwoUTF-8 (recommended)UndoUnhandled exception occurred: %sUnix (recommended)UntransUpUpdateUpdate allUpdate all catalogues in the projectUpdate catalogue - synchronise it with sourcesUpdate from POTUpdate summaryUpdatesUpdating catalogueUpdating failedUpdating the catalogue failed. Click on 'Details >>' for details.Updating user information…Uploading translations…Use custom expressionUse custom list font:Use custom text fields font:Use default rules for this languageUse these keywords (function names) to recognise translatable strings in source files:Use translation memoryValidateValidation resultsVersion %sWaiting for authentication…Welcome to PoeditWhat is Crowdin?Whole words onlyWindowWindowsWrap aroundWrap at:You can also extract translatable strings directly from the source code:You can’t drop more than one file on Poedit window.You must restart Poedit for this change to take effect.Your NameYour changes will be lost if you don’t save them.Your name and e-mail address are only used to set the Last-Translator header of GNU gettext files.ZeroZoomaltctrldon’t delete temporary files (for debugging)e.g. nplurals=2; plural=(n > 1);go to item at given line numberhandle a poedit:// URIshiftunknown languageyour_e-mail@example.com“%s” is not a valid POT file.poedit-2.0.6/locales/bs.mo0000664000372000037200000010443113230132075012306 00000000000000 K<h$ i$ u$$$J$$ $ %%%%'%6%E%K%Q%e%y%}%%%%%% % %%% % & &6&R&n&t&z&&&&&&&''2'8'L'k''' ':':' :(D(M( V( b(n((((('(() )7*)6b)))) )])L*A_*I****+" +,+ G+R+.Z++++++++,,#8,\,k,},,,(, ,,,/- E-R-W-j------- .$........ //'/E:/"/?//K/"405W000 0 0 00 0 000111.&1U1o1u112)2 >2I2X2<m22 22*2!3!%3'G3o3u3 z3 3333 3 3 3 3344%4-4?4 Q4 \4i4y444 E5Q5 g55 5 55"5;5 6*6 =6 G6 U6`6y66 66 6<6.7M7]7m7*v777778 88888'8$97&9%^99999999 929 +:8:N:]:l:t:z::::::s;y;;n;E<J<>Q<<<<@<-<%(=N=c=x== ====== = => >(>H>N>zg>>> > > ? ??"0?S?r? ?? ?? ????? @#@!3@U@]@e@n@v@@ @@ @@ @ @ @@@A#A7AGA\AqAA BB 7BCB VBcB tBBKBBB BCC +C 9CECCC(CD+1D]DN`D8DDD8EEIFRZFcFQGcGA~GG!OH,qHLH`HLIYIm,J:JJ;K7KmK_cL[LM%M5MRMgMzMMM MMVNZNnN sNNNNN N"N,NO$O3O;OLO?\OOOOOO#PV@PPPP PPPQQ'Q.Q 6QBQHKQ7Q QaQ8R=RBRFR KRlRRRR"R TTT! Ux,U U U UUUUUU V VV7VRVZVrVV VVVVV V V VWW0WMWjW qW{WW W$W$WWX'X=XSX[XrXXXX X8X8(Y aY oY}YYYYYYYY.Y&-Z!TZvZ4}Z:Z)Z4[L[\[[[S[V\ r\|\\\)\"\ \\6\0]B]Z]r]]]]]%]#^7^I^Z^k^|^#^ ^ ^^0^$_,_4_G_e_x_)___ _````````a a%a4z |Z;5v`*C9_\n2u=}-D++/0 z *wv,.b3 $c8RH 6!pMR_OQU$FYL9n#]<)|Br[h K'EGJr6YIyCH&e7kqjyGXk1l" }td%Vi@g{#>:~:b "dAK,!Tw;](xuXEFf)^cUS?2A- <@VSLOaD5o(&T{ ^g4Q (modified) (unsaved)%d entry%d entries%d error%d errors%d issue with the translation found.%d issues with the translation found.&About&About Poedit&Bookmarks&Close&Copy&Delete&Done and Next&Done and next&Edit&File&GNU gettext Manual&GNU gettext manual&Go&Group By Context&Group by context&Help&Next >&Next Translation&Next translation&Online Help&Online help&Open...&Paste&Preferences&Previous Translation&Previous translation&Purge Deleted Translations&Purge deleted translations&Redo&Save&Show References&Show references&Undo&Untranslated Entries First&Untranslated entries first&Update from Sources&Update from sources&Validate Translations&Validate translations&View(0 new, 0 obsolete)(Learn more about GNU gettext)(New: %i, obsolete: %i)(Use default language)(requires Windows 8 or newer)< &PreviousDrag and Drop Folders Here or use the + buttonDrag and drop folders here or use the + buttonAbout %sAccountsAdd CommentAdd commentAdd directory to the listAdditional keywordsAdvancedAll Translation FilesAlt+Always change focus to text input fieldAn item in input files list:An item in keywords list:AppearanceAre you sure you want to delete the “%s” extractor?Are you sure you want to reset the translation memory?Automatically check for updatesAutomatically compile MO file when savingBase path:Beta versions contain the latest new features and improvements, but may be a bit less stable.Bring All to FrontBroken catalog file: plural form msgstr used without msgid_pluralBroken catalog file: singular form msgstr used together with msgid_pluralBrowseC&atalogC&learCancelCannot create temporary directory.Cannot execute program: %sCapitalizeCatalogCatalog modified. Do you want to save changes?Catalog propertiesCatalogs &ManagerCatalogs &managerCatalogs ManagerChange UI languageCharset:Check Document NowCheck Grammar With SpellingCheck Spelling While TypingCheck for errors in the translationCheck spellingClear TranslationClear the commentClear translationCloseCollaborate on a translation with othersCommand to extract translations:Comment:Compiled Translation FilesConfigure source code extraction in Properties.ConfirmationCopyCopy From SingularCopy from Source TextCopy from singularCopy from source textCorrect Spelling AutomaticallyCreate New TranslationCreate new translationCreate new translations projectCrowdin errorCrowdin is an online localization management platform and collaborative translation tool. Poedit can seamlessly sync PO files managed at Crowdin.Ctrl+Cu&tCutDatabase size on disk:DeleteDelete extractorDelete the projectDirectories:Display Entry &IDsDisplay entry &IDsDo you really want to do mass update of all catalogs in this project?Do you want to delete the project?Do you want to remove all translations that are no longer used?DownDownload a file from Crowdin project, translate and sync your changes back.Downloading latest translations…Downloading translations is disabled in this project.E&xitEditEdit &CommentEdit &commentEdit CommentEdit a translationEdit commentEdit projectEdit the projectEditingEmail:EnterEnter Full ScreenEntries in the catalog are probably incorrect.Entries with Errors FirstEntries with errors firstEntries with errors were marked in red in the list. Details of the error will be shown when you select such an entry.Error opening fileError opening file %s!Error saving catalogEverythingExcluded pathsExtract from sourcesExtract text from source files in the following directories:Extractor setupExtractorsFailed command: %sFailed to communicate with Poedit process.Failed to load extracted catalog.Failed to merge gettext catalogs.Failed to update translation memory: %sFile:FindFind NextFind PreviousFind in commentsFind in source textsFind in translationsFind nextFind previousFix LanguageFix languageFix the HeaderFix the headerForm %iGeneralGo to Bookmark %iGo to bookmark %iHTML FilesHide SidebarHide Status BarHide this notification messageIDIf you continue with purging, all translations marked as deleted will be permanently removed. You will have to translate them again if they are added back in the future.Ignore caseInclude beta versionsInformation about the translatorInstallInvalid fileInvocation:KeepLanguage Code or Name (e.g. en_GB)Language of the translation is the same as source language.Language of the translation:Language selectionLanguage:Last modifiedLearn MoreLearn More About CrowdinLearn about gettext keywordsLearn about plural formsLearn moreLearn more about CrowdinLine endings:List of extensions separated by semicolons (e.g. *.cpp;*.h):MO files can’t be directly edited in Poedit.Make Lower CaseMake Upper CaseMinimizeName of the project the translation is forName:Ne&xt UnfinishedNe&xt unfinishedNever let the list of strings take focus. If enabled, you must use Ctrl-arrows for keyboard navigation but you can also type text immediately, without having to press Tab to change focus.NewNew stringsNext Plural FormNext plural formNo Matches FoundNo matches foundNo problems with the translation found.No references for the selected item.No translation projects listed in your Crowdin account.Not authorized, please sign in again.Notes for translators:OKObsolete stringsOneOnly fill in exact matchesOpenOpen Crowdin translationOpen RecentOpen an existing PO file and edit the translation.Open catalogOpen catalog templateOpen in EditorOpen in editorOptionsOtherP&revious UnfinishedP&revious unfinishedPO TranslationPO Translation FilesPOT Translation TemplatesPOT files are only templates and don’t contain any translations themselves. To make a translation, create a new PO file based on the template.PastePaste and Match StylePathsPlease open and edit the corresponding PO file instead. When you save it, the MO file will be updated as well.Please save the file first. This section cannot be edited until then.PluralPlural forms expression used by the catalog is unusual for %s.Plural:PoeditPoedit - Catalogs managerPoedit automatically fixed invalid content in the file “%s”.Poedit is an easy to use translations editor.Preserve formatting of existing filesPrevious Plural FormPrevious plural formPrevious source text:Project name and version:Project name:Project:PurgePurge deleted translationsQuitRedoReferences:Remaining: %dReplaceReplacement stringRequired header Plural-Forms is missing.ResetReset translation memoryResetting the translation memory will irrevocably delete all stored translations from it. You can’t undo this operation.ReviewSaveSave catalogSave changesSelect &AllSelect AllSelect directorySelect translation files to importSelect your preferred languageSet Bookmark %iSet LanguageSet bookmark %iSet languageShift+Show SidebarShow Spelling and GrammarShow Status BarShow SubstitutionsShow or hide the sidebarShow sidebarShow status barShow summary after catalog updateSidebarSign InSign OutSign inSign in to CrowdinSign outSigned in as:SingularSingular:Smart Copy/PasteSmart DashesSmart LinksSmart QuotesSort by &File OrderSort by &SourceSort by &TranslationSort by &file orderSort by &sourceSort by &translationSource code charset:Source code extractors are used to find translatable strings in the source code files and extract them so that they can be translated.Source code not available.Source fileSource file occurrence:Source textSource text — %sSource text:Sources keywordsSources pathsSpeechSpellchecking is disabled, because the dictionary for %s isn’t installed.Spelling and GrammarStart SpeakingStop SpeakingStored translations:String to findSubstitutionsSuggestionsSuggestions are not available if the translation language is not set correctly. Other features, such as plural forms, may be affected as well.SyncSync with CrowdinSynchronize the translation with CrowdinSyncing with Crowdin failed.Syntax error in Plural-Forms header ("%s").TMTake an existing PO file or POT template and create a new translation from it.Take translatable strings from an existing POT template.Text ReplacementThe TM doesn’t contain any strings similar to the content of this file. It is only effective for semi-automatic translations after Poedit learns enough from files that you translated manually.The file cannot be compiled into the MO format and used.The file cannot be opened.The file may be either corrupted or in a format not recognized by Poedit.The file was compiled into the MO format, but it will probably not work correctly.The file was saved safely and compiled into the MO format, but it will probably not work correctly.The file was saved safely, but it cannot be compiled into the MO format and used.The file was saved safely.The simplest way to fill this catalog is to update it from a POT:The translation is ready for use, but %d entry is not translated yet.The translation is ready for use, but %d entries are not translated yet.The translation is ready for use.There are no translations. That’s unusual.There was a problem formatting the file nicely (but it was saved all right).There were errors when loading the catalog. Some data may be missing or corrupted as the result.These settings affect internal formatting of PO files. Adjust them if you have specific requirements e.g. because of version control.These strings are no longer in the sources. Poedit will remove them from the catalog now.These strings were found in the sources but were not in the catalog. Poedit will add them to the catalog now.This file can only be edited in Crowdin’s web interface.This is the command used to launch the extractor. %o expands to the name of output file, %K to list of keywords, %F to list of input files, %C to charset flag (see below).This project has no files that can be translated in Poedit.This string was found in Poedit’s translation memory.This will be attached to the command line only if source code charset was given. %c expands to charset value.This will be attached to the command line once for each input file. %f expands to the filename.This will be attached to the command line once for each keyword. %k expands to the keyword.TotalTransformationsTranslated: %d of %d (%d %%)Translation LanguageTranslation MemoryTranslation propertiesTranslation suggestions:Translation — %sTranslation:Translations couldn’t be updated from the source code, because no code was found in the location specified in the catalog’s Properties.TwoUTF-8 (recommended)UndoUnhandled exception occurred: %sUnix (recommended)UntransUpUpdateUpdate allUpdate all catalogs in the projectUpdate catalog - synchronize it with sourcesUpdate from POTUpdate summaryUpdatesUpdating catalogUpdating failedUpdating the catalog failed. Click on 'Details >>' for details.Updating user information…Uploading translations…Use custom expressionUse custom list font:Use custom text fields font:Use default rules for this languageUse these keywords (function names) to recognize translatable strings in source files:Use translation memoryValidateValidation resultsVersion %sWaiting for authentication…Welcome to PoeditWhat is Crowdin?Whole words onlyWindowWindowsWrap aroundWrap at:You can also extract translatable strings directly from the source code:You must restart Poedit for this change to take effect.Your NameYour name and email address are only used to set the Last-Translator header of GNU gettext files.ZeroZoomaltctrle.g. nplurals=2; plural=(n > 1);handle a poedit:// URIshiftunknown languageyour_email@example.comProject-Id-Version: poedit Report-Msgid-Bugs-To: help@poedit.net POT-Creation-Date: 2017-12-05 15:52+0100 PO-Revision-Date: 2017-07-27 03:14-0400 Last-Translator: vslavik Language-Team: Bosnian Language: bs_BA MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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); X-Generator: crowdin.com X-Crowdin-Project: poedit X-Crowdin-Language: bs X-Crowdin-File: /locales/poedit.pot (mijenjano) (nesačuvano)%d unos%d unosa%d unosa%d greška%d greške%d grešakaPronađen je %d problem s prijevodima.Pronađena su %d problema s prijevodima.Pronađeno je %d problema s prijevodima.&O programu&O programu&Zabilješke&Zatvori&Kopiraj&Obriši&Završi i nastavi&Završi i nastavi&Uredi&Datoteka&GNU gettext dokumentacija&GNU gettext dokumentacija&Akcije& Grupiši po kontekstu& Grupiši po kontekstu&Pomoć&Sljedeće >& Sljedeći prijevod& Sljedeći prijevod&Online pomoć&Online pomoć&Otvori...&Zalijepi&Postavke& Prethodni prijevod& Prethodni prijevod&Očisti izbrisane prijevode&Očisti izbrisane prijevode&Vrati&Sačuvaj&Prikaži reference&Prikaži reference&Poništi&Prvo prikaži neprevedene rečenice&Prvo prikaži neprevedene rečenice&Ažuriraj iz originala&Ažuriraj iz originala&Validacija prijevoda&Validacija prijevoda&Prikaz(0 novih, 0 suvišnih)(Saznajte više o GNU gettext)(Novo: %i, zastarjelo: %i)(Koristi početni jezik)(barem Windows 8 ili noviji)< &PrethodnoOvdje umetnite foldere ili koristite dugme +Ovdje umetnite foldere ili koristite dugme +O programu %sRačuniDodaj komentarDodaj komentarDodaj direktorij u listuDodatne ključne riječiNaprednoSve datoteke s prijevodimaAlt+Uvijek promijeni fokus na polje za unos tekstaStavka u listi datoteka za ubacivanje:Stavka u listi ključnih riječi:IzgledJeste li sigurni da želite obrisati "%s" ekstrator?Jeste li sigurni da želite resetovati memoriju prijevoda?Automatski provjeravaj ima li ažuriranjaAutomatski kompajliraj MO datoteku prilikom snimanjaBazna putanja:Beta verzije sadrže najnovije mogućnosti i poboljšanja, ali bi mogle biti manje stabilne.Dovedi u fokusNeispravna datoteka kataloga: obrazac množine iz msgtr se koristi bez msgid_pluralNeispravna datoteka kataloga: obrazac jednine msgstr se koristi zajedno sa mgid_pluralPretražiK&atalogO&čistiPoništiNije moguće napraviti privremeni folder!Nije moguće izvršiti program: %sVelika slovaKatalogKatalog je mijenjan. Da li želite sačuvati promjene?Svojstva kataloga&Upravljanje katalozima&Upravljanje katalozimaUpravljanje katalozimaPromijeni jezik interfejsaKodiranje znakova:Odmah provjeri dokumentProvjeri gramatiku i pravopisProvjeravaj pravopis prilikom pisanjaProvjeri ima li greški u prijevoduProvjeri pravopisObriši prijevodOčisti komentarObriši prijevodZatvoriSarađujte na prijevodu sa ostalimaKomanda za izdvajanje prijevoda:Komentar:Kompajlirani prijevodi datotekaKonfigurišite izvoz izvornog koda u Svojstvima.PotvrdaKopirajKopiraj iz JednineKopiraj iz originalnog tekstaKopiraj iz jednine&Kopiraj iz originalnog tekstaAutomatski popravljaj greške u pravopisuKreiraj novi prijevodKreiraj novi prijevodNapravi novi projekt prevođenjaCrowdin greškaCrowdin je online platforma za upravljanje lokalizacijama i kolaborativni prevodilački alat. Poedit može neprimjetno sinhronizovati PO datoteke na Crowdinu.Ctrl+Izrež&iIzrežiVeličina baze na disku:ObrišiObriši ekstraktorObriši projektDirektoriji:Prikaži &ID-ove unosaPrikaži &ID-ove unosaDa li zaista želite uraditi masovnu nadogradnuDo you really want to do mass update of all catalogs in this project?Da li želite obrisati ovaj projekt?Da li želite ukloniti sve prijevode koji više nisu u upotrebi?DolePreuzmite datoteku sa Crowdina, prevedite je i pošaljite vaše prijevode nazad.Preuzimam najnovije prijevode...Preuzimanje prijevoda je onemogućeno u ovom projektu.I&zađiUrediUredi &komentarUredi &komentarUredi komentarUredi prijevodUredi komentarUredi projektUredi projektUređivanjeEmail:EnterAktiviraj prikaz preko cijelog ekranaUnosi u katalogu su najvjerovatnije netačni.Prvo unosi sa greškamaPrvo unosi sa greškamaUnosi koji sadrže greške označeni su crvenom bojom u listi. Detalji o greški će biti prikazani kada odaberete jedan od unosa.Greška pri otvaranju fajlaGrešla pri otvaranju datoteke %s!Greška pri snimanju katalogaSveIzuzete putanjeAžuriraj iz originalaIzvezi tekst iz originalnih datoteka u sljedeće foldere:Postavka izdvajanjaIzdvajanjeNeuspjela komanda: %sNije moguće komunicirati sa Poedit procesom.Nije moguće učitati raspakovani katalog.Nije moguće spojiti gettext kataloge.Nije moguće ažurirati memoriju prijevoda: %sDatoteka:PronađiPronađi sljedećePronađi prethodnoPronađi u komentarimaPronađi u izvornim tekstovimaPronađi u prijevodimaPronađi sljedećePronađi prethodnoPopravi jezikPopravi jezikPopravi zaglavljePopravi zaglavljeOblik %iOpćenitoIdi na zabilješku %iIdi na zabilješku %iHTML fajloviSakrij bočnu trakuSakrij statusnu trakuSakrij ovu napomenuIDAko nastavite sa uklanjanjem, svi prijevodi koji su označeni za uklanjanje će trajno biti uklonjeni. Morat ćete ih ponovo prevesti ako budu ponovo dodani nekad u budućnosti.Zanemari velika/mala slovaUvrsti i beta verzijeInformacije o prevodiocuInstalirajNeispravna datotekaPozivanje:ZadržiKod ili naziv jezika (npr. bs_BA)Jezik prijevoda je isti kao i izvorni jezik.Jezik prijevoda:Odabir jezikaJezik:Zadnji put mijenjanoSaznaj višeSaznaj više o CrowdinuSaznaj više o gettext ključnim riječimaSaznaj više o oblicima množinaSaznaj višeSaznaj više o CrowdinuZavršetak linije:Lista ekstenzija odvojenih pomoću tačka-zareza (npr. *.cpp;*.h):MO fajl se ne može direktno uređivati u Poeditu.Pretvori u mala slovaPretvori u velika slovaMinimizirajNaziv projekta za koji je namijenjen ovaj prijevodIme:Slje&deće nedovršenoSlje&deće nedovršenoNe dopusti da lista stringova preuzme fokus.Ako je omogućeno, morat ćete koristiti Ctrl-strelice za navigaciju pomoću tastature ali također možete ukucati tekst odmah, bez da morate pritisnuti Tab za promjenu fokusa.NovoNovi stringoviSljedeći oblik množineSljedeći oblik množineNema rezultataNema rezultataNisu pronađeni problemi u prijevodu.Nema referenci za odabranu stavku.Nema projekata u vašem Crowdin računu.Nemate ovlaštenje, molimo vas da se ponovo prijavite.Napomena prevodiocu:U reduZastarjeli stringoviJedanSamo popunjavaj tačna poklapanjaOtvoriOtvori Crowdin prijevodOtvori nedavneOtvori postojeću PO datoteku i uredi prijevod.Otvori katalogOtvori predložak katalogaOtvori u uređivačuOtvori u uređivačuOpcijeOstaloP&rethodno nedovršenoP&rethodno nedovršenoPO prijevodPO fajlovi sa prijevodomPOT predlošci prijevodaPOT datoteke su samo predlošci i ne sadrže bilo kakve prijevode. Da napravite prijevod, kreirajte novu PO datoteku na osnovu predloška.ZalijepiUmetni i uskladi stilPutanjeUmjesto ovog, molimo vas da otvorite i izmijenite odgovarajući PO fajl. Nakon što ga sačuvate, MO fajl će također da bude ažuriran.Molimo vas da prvo sačuvate datoteku. Ova sekcija se ne može uređivati dok to ne uradite.MnožinaObrazac množine koji se koristi u katalogu nije uobičajen za %s jezik.Množina:PoeditPoedit - upravljanje katalozimaPoedit je automatski popravio neispravan sadržaj u datoteci "%s".Poedit je jednostavni alat za prevođenje.Sačuvaj oblikovanje postojećih datotekaPrethodni oblik množinePrethodni oblik množinePrethodni izvorni tekst:Ime projekta i verzija:Ime projekta:Projekat:OčistiOčisti obrisane prijevodeZatvoriVratiReference:Preostalo: %dZamijeniZamjenski stringNedostaje neophodno zaglavlje za oblik množine.ResetujResetuj memoriju prijevodaResetiranje memorije prijevoda će nepovratno obrisati sve pohranjene prijevode. Ovu operaciju nije moguće poništiti.PregledajSačuvajSačuvaj katalogSačuvaj promjeneOznaži &sveOznači sveOdaberite direktorijOdaberite datoteke prijevoda za uvozOdaberite vaš omiljeni jezikPostavi zabilješku %iPostavi jezikPostavi zabilješku %iOdaberite jezikShift+Prikaži bočnu trakuPrikaži pravopis i gramatikuPrikaži statusnu trakuPrikaži zamjenePrikazuje ili sakriva bočnu trakuPrikaži bočnu trakuPrikaži statusnu trakuPrikaži sažetak nakon ažuriranja katalogaBočna trakaPrijavaOdjavaPrijavaPrijavi se u CrowdinOdjavaPrijavljeni ste kao:JedninaJednina:Pametno kopiranje/umetanjePametne crticePametni linkoviPametni navodniciSortiraj po redoslijedu &datotekaSortiraj po &originalimaSortiraj po &prijevodimaSortiraj po redoslijedu &datotekaSortiraj po &originalimaSortiraj po &prijevodimaKodiranje znakova izvornog koda:Izdvajanje izvornog koda se koristi za pronalazak stringova za prijevoda u fajlovima izvornog koda, da biste ih kasnije mogli prevesti.Izvorni kod nije dostupan.Izvorna datotekaPojavljivanje originalne datoteke:Originalni tekstIzvorni tekst — %sOriginalni tekst:Ključne riječi originalaPutanje originalaGovorProvjera pravopisa je onemogućena zato što rječnik za %s nije instaliran.Pravopis i gramatikaPočnite pričatiPrestanite pričatiPohranjeni prijevodi:String koji tražiteZamjenePrijedloziPrijedlozi nisu dostupni ako jezik prijevoda nije ispravno odabran. Ostale mogućnosti također mogu biti nedostupne. kao npr. oblici množine.SinhronizujSinhronizuj sa CrowdinomSinhronizuj prijevode sa CrowdinomSinhronizacija sa Crowdinom nije uspjela.Sintaksna greška u zaglavlju za obrazac množine ("%s").TMUzmi postojeću PO datoteku ili POT predložak i kreiraj prijevod iz njega.Uzmi stringove za prijevod iz postojećeg POT predloška.Zamjena tekstaTM ne sadrži nijedan string sličan sadržaju u ovoj datoteci. Ovo je moguće efikasno iskoristiti za poluautomatsko prevođenje nakon što Poedit nauči dovoljno fraza iz datoteka koje ste preveli ručno.Datoteka ne može biti kompajlirana u MO format i nakon toga korištena.Datoteku nije moguće otvoriti.Datoteka je oštećena ili nije u formatu koji Poedit prepoznaje.Datoteka je kompajlirana u MO format, ali najvjerovatnije neće funkcionisati ispravno.Datoteka je uspješno sačuvana i kompajlirana u MO format, ali navjerovatnije neće ispravno funkcionisati.Datoteka je uspješno sačuvana ali je nije moguće kompajlirati u MO format i koristiti nakon toga.Datoteka je uspješno sačuvana.Najjednostaviji način da popunite ovaj katalog jeste da ga ažurirate iz POT datoteke:Prijevod je spreman za upotrebu, ali još %d unos nije preveden.Prijevod je spreman za upotrebu, ali još %d unosa nisu prevedena.Prijevod je spreman za upotrebu, ali još %d unosa nije prevedeno.Prijevod je spreman za upotrebu.Nema prijevoda. Ovo je neobično.Desio se problem prilikom formatiranja datoteke (sve ostalo je uspješno sačuvano).Došlo je do greške prilikom učitavanja kataloga. Moguće je da će neki podaci nedostajati ili ćete dobti netačne rezultate.Ove postavke utiču na interno formatiranje PO datoteka. Prilagodite ih vašim specifičnim potrebama, npr. zbog kontrole verzija.Ovi stringovi više se ne nalaze u izvoru. Poedit će ih sada ukloniti iz kataloga.Ovi stringovi su pronađeni u izvoru ali se ne nalaze u katalogu. Poedit će ih sada dodati u katalog.Ovu datoteku moguće je uređivati jedino pomoću Crowdin web interfejsa.Ovo je komanda koja se koristi za pokretanje izdvajanja. %o se proširuje u naziv izlaznog fajla, %K u listu ključnih riječi, %F u listu ulaznih fajlova, %C o oznake kodiranja (pogledajte ispod).Ovaj projekat nema datoteka koje je moguće prevoditi u Poeditu.Ovaj string je pronađen u Poedit memoriji prijevoda.Ovo će biti dodano u komandu liniju samo ako je dato izvorno kodiranje znakova. %c se proširuje na vrijednost znakova.Ovo će biti dodano komandnoj liniji po jednom za svaku ulaznu datoteku. %f se proširuje na ime datoteke.Ovo će biti dodano komandnoj liniji jednom za svaku ključnu riječ. %k se proširuje na ključnu riječ.UkupnoTranformacijePrevedeno: %d od %d (%d %%)Jezik prijevodaMemorija prijevodaSvojstva prijevodaPrijedlozi prijevoda:Prijevod — %sPrijevod:Prijevodi nisu mogli biti ažurirani iz izvornog koda zato što kod nije pronađen u specificiranoj lokaciji unutar svojstava kataloga.DvaUTF-8 (preporučeno)NazadDesio se neočekivan izuzetak: %sUnix (preporučeno)NeprevedenoGoreAžurirajAžuriraj sveAžuriraj sve kataloge u projektuAžuriraj katalog - sinhronizacija sa izvorimaAžuriraj iz POT-aRezime ažuriranjaAžuriranjaAžuriram katalogAžuriranje nije uspjeloAžuriranje kataloga nije uspjelo. Za detalje kliknite na 'Više>>'.Ažuriram korisničke informacije...Ažuriram prijevode...Koristi vlastiti izrazKoristi vlastiti font za listu:Koristi vlastiti font za tekstualna polja:Koristi zadana pravila za ovaj jezikKoristite ove ključne riječi (nazivi funkcija) za prepoznavanje stringova za prijevod u originalnim datotekama:Koristi memoriju prijevodaValidacijaRezultati validacijeVerzija %sČekam na autentifikaciju...Dobro došli u PoeditŠta je Crowdin?Samo cijele riječiProzorProzoriOmotajPrelomi tekst na:Također, možete napraviti stringove za prijevod direktno iz izvornog koda:Morate ponovo pokrenuti Poedit da bi promjene počele djelovati.Vaše imeVaše ime i email adresa se koriste samo u Last-Translator zaglavlju GNU gettext fajlova.NulaUvećavanjealtctrlnpr. nplurals=2; plural=(n > 1);upravljač za poedit:// URIshiftnepoznat jezikvaš_email@primjer.compoedit-2.0.6/locales/ja.po0000664000372000037200000016013513230132076012303 00000000000000msgid "" msgstr "" "Project-Id-Version: poedit\n" "Report-Msgid-Bugs-To: help@poedit.net\n" "POT-Creation-Date: 2017-12-05 15:52+0100\n" "PO-Revision-Date: 2018-01-18 07:56-0500\n" "Last-Translator: vslavik \n" "Language-Team: Japanese\n" "Language: ja_JP\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" "X-Generator: crowdin.com\n" "X-Crowdin-Project: poedit\n" "X-Crowdin-Language: ja\n" "X-Crowdin-File: /locales/poedit.pot\n" msgid "Hide this notification message" msgstr "この通知メッセージを表示しない" msgid "Don’t Show Again" msgstr "再び表示しない" msgid "Don’t show again" msgstr "再び表示しない" #, c-format msgid "(New: %i, obsolete: %i)" msgstr "(新規 %i、使用しないように変更 %i)" msgid "Updating catalog" msgstr "カタログを更新中" msgid "Collecting source files…" msgstr "ソースファイルを収集中…" msgid "Extracting translatable strings…" msgstr "翻訳可能な文字列を抽出中…" msgid "Failed to load extracted catalog." msgstr "抽出したカタログの読み込みに失敗しました。" msgid "Merging differences…" msgstr "差分を統合しています…" #, c-format msgid "“%s” is not a valid POT file." msgstr "“%s” は有効な POT ファイルではありません。" #, c-format msgid "%i line of file “%s” was not loaded correctly." msgid_plural "%i lines of file “%s” were not loaded correctly." msgstr[0] "ファイル \"%2$s\" 中の %1$i行が正しく読み込まれませんでした。" #, c-format msgid "Line %d of file “%s” is corrupted (not valid %s data)." msgstr "%d行目 (ファイル “%s“) が破損しています。無効な%sデータです。" #, c-format msgid "Malformed header: “%s”" msgstr "書式が不正なヘッダ: “%s”" msgid "" "Broken catalog file: singular form msgstr used together with msgid_plural" msgstr "" "カタログファイルが破損しています。msgid_plural が指定されていますが msgstr は" "複数形表記ではありません。" msgid "Broken catalog file: plural form msgstr used without msgid_plural" msgstr "" "カタログファイルが破損しています。複数形表記の msgstr が使われていますが " "msgid_plural の指定がありません。" msgid "" "There were errors when loading the catalog. Some data may be missing or " "corrupted as the result." msgstr "" "カタログを読み出す際にエラーが発生しました。このため一部のデータが失われたり" "破損したりしている可能性があります。" #, c-format msgid "Couldn’t load file %s, it is probably corrupted." msgstr "ファイル %s を読み込めません。おそらくデータが破損しています。" #, c-format msgid "" "File “%s” is read-only and cannot be saved.\n" "Please save it under different name." msgstr "" "ファイル “%s” は読み出し専用のため保存できません。\n" "別のファイル名で保存してください。" #, c-format msgid "Couldn’t save file %s." msgstr "ファイル %s を保存できません。" msgid "" "There was a problem formatting the file nicely (but it was saved all right)." msgstr "ファイルを整形する際に問題が発生しましたが、保存は完了しています。" #, c-format msgid "" "The catalog couldn’t be saved in “%s” charset as specified in catalog " "settings.\n" "\n" "It was saved in UTF-8 instead and the setting was modified accordingly." msgstr "" msgid "Error saving catalog" msgstr "カタログ保存エラー" msgid "PO Translation Files" msgstr "PO 翻訳ファイル" msgid "POT Translation Templates" msgstr "POT 翻訳テンプレート" msgid "All Translation Files" msgstr "すべての翻訳ファイル" msgid "(Use default language)" msgstr "(デフォルト言語を使用)" msgid "Select your preferred language" msgstr "お好みの言語を選択してください" msgid "Language selection" msgstr "言語選択" msgid "You must restart Poedit for this change to take effect." msgstr "変更を有効にするには Poedit を再起動してください。" msgid "Syncing" msgstr "同期中..." #. TRANSLATORS: %s is a cloud destination, e.g. "Crowdin" or ftp.wordpress.com etc. #, c-format msgid "Syncing with %s…" msgstr "%s と同期中…" #. TRANSLATORS: %s is a cloud destination, e.g. "Crowdin" or ftp.wordpress.com etc. #, c-format msgid "Syncing with %s failed." msgstr "%s との同期に失敗しました。" msgid "Syncing error" msgstr "同期エラー" msgid "Downloading translations is disabled in this project." msgstr "このプロジェクトでは、翻訳のダウンロードが無効になっています。" msgid "Not authorized, please sign in again." msgstr "未認証です。もう一度ログインしてください。" msgid "" "Crowdin is an online localization management platform and collaborative " "translation tool. Poedit can seamlessly sync PO files managed at Crowdin." msgstr "" "Crowdin は、オンラインのローカリゼーション管理プラットフォームであり、共同翻" "訳ツールです。Poedit は Crowdin で管理されている PO ファイルをシームレスに同" "期することができます。" msgid "Sign In" msgstr "ログイン" msgid "Sign in" msgstr "ログイン" msgid "Sign Out" msgstr "ログアウト" msgid "Sign out" msgstr "ログアウト" msgid "Waiting for authentication…" msgstr "認証を待機中…" msgid "Updating user information…" msgstr "ユーザー情報を更新しています…" msgid "Signed in as:" msgstr "ログイン中:" msgid "Learn More About Crowdin" msgstr "Crowdin について" msgid "Learn more about Crowdin" msgstr "Crowdin について" msgid "Sign in to Crowdin" msgstr "Crowdin にログイン" msgid "Open Crowdin translation" msgstr "Crowdin 翻訳を開く" msgid "Project:" msgstr "プロジェクト:" msgid "Language:" msgstr "言語:" msgid "File:" msgstr "ファイル:" msgid "No translation projects listed in your Crowdin account." msgstr "あなたの Crowdin アカウントには翻訳プロジェクトが何もありません。" msgid "This project has no files that can be translated in Poedit." msgstr "このプロジェクトには Poedit で翻訳できるファイルがありません。" msgid "This file can only be edited in Crowdin’s web interface." msgstr "このファイルは Crowdin の Web インターフェイスでのみ編集できます。" msgid "Downloading latest translations…" msgstr "最新の翻訳をダウンロード中…" msgid "Syncing with Crowdin failed." msgstr "Crowdin との同期に失敗しました。" msgid "Crowdin error" msgstr "Crowdin エラー" msgid "Uploading translations…" msgstr "翻訳をアップロード中…" msgid "&Copy" msgstr "コピー (&C)" msgid "Learn more" msgstr "さらに詳しく" msgid "Learn More" msgstr "さらに詳しく" msgid "&Help" msgstr "ヘルプ (&H)" msgid "MO files can’t be directly edited in Poedit." msgstr "MO ファイルは Poedit で直接編集できません。" msgid "Error opening file" msgstr "ファイルを開く際にエラーが発生しました" msgid "" "Please open and edit the corresponding PO file instead. When you save it, " "the MO file will be updated as well." msgstr "" "代わりに、対応する PO ファイルを開いてください。そちらを保存する際に MO ファ" "イルも更新されます。" msgid "don’t delete temporary files (for debugging)" msgstr "一時ファイルを削除しない (デバッグ向け)" msgid "handle a poedit:// URI" msgstr "poedit:// URI を処理" msgid "go to item at given line number" msgstr "" msgid "Failed to communicate with Poedit process." msgstr "Poedit プロセスとの通信に失敗しました。" #, c-format msgid "Unhandled exception occurred: %s" msgstr "未処理例外が発生しました: %s" msgid "Open catalog" msgstr "カタログを開く" #, c-format msgid "File “%s” doesn’t exist." msgstr "ファイル “%s” は存在しません。" msgid "Poedit is an easy to use translations editor." msgstr "Poeditは使いやすい翻訳エディタです。" msgid "Catalogs Manager" msgstr "カタログマネージャ" msgid "Check for Updates…" msgstr "アップデートの確認..." msgid "&Edit" msgstr "編集 (&E)" msgid "Undo" msgstr "元に戻す" msgid "Redo" msgstr "再実行" msgid "Paste and Match Style" msgstr "同じスタイルでペースト" msgid "Delete" msgstr "削除" msgid "Spelling and Grammar" msgstr "綴りと文法" msgid "Show Spelling and Grammar" msgstr "綴りと文法を表示" msgid "Check Document Now" msgstr "ドキュメンテーションを今すぐ確認" msgid "Check Spelling While Typing" msgstr "入力中にスペルチェック" msgid "Check Grammar With Spelling" msgstr "文法と綴りを確認" msgid "Correct Spelling Automatically" msgstr "綴りを自動修正" msgid "Substitutions" msgstr "代替案" msgid "Show Substitutions" msgstr "代替案を表示" msgid "Smart Copy/Paste" msgstr "スマートコピー & ペースト" msgid "Smart Quotes" msgstr "スマート引用" msgid "Smart Dashes" msgstr "スマートダッシュ" msgid "Smart Links" msgstr "スマートリンク" msgid "Text Replacement" msgstr "テキスト置き換え" msgid "Transformations" msgstr "変換" msgid "Make Upper Case" msgstr "大文字に変換" msgid "Make Lower Case" msgstr "小文字に変換" msgid "Capitalize" msgstr "キャピタライズ" msgid "Speech" msgstr "スピーチ" msgid "Start Speaking" msgstr "読み上げを開始" msgid "Stop Speaking" msgstr "読み上げを停止" msgid "&View" msgstr "表示 (&V)" msgid "Enter Full Screen" msgstr "全画面表示" msgid "Window" msgstr "ウィンドウ" msgid "Minimize" msgstr "最小化" msgid "Zoom" msgstr "ズーム" msgid "Bring All to Front" msgstr "すべてを手前に移動" #. TRANSLATORS:File kind displayed in Finder/Explorer msgid "PO Translation" msgstr "PO 翻訳" msgid "The file cannot be opened." msgstr "ファイルを開けません。" msgid "Invalid file" msgstr "不正なファイル" msgid "" "The file may be either corrupted or in a format not recognized by Poedit." msgstr "ファイルが破損しているか、Poedit が認識できない形式のようです。" msgid "You can’t drop more than one file on Poedit window." msgstr "Poedit へドロップできるのは1回につき1ファイルのみです。" #, c-format msgid "File “%s” is not a message catalog." msgstr "ファイル \"%s\" はメッセージカタログではありません。" msgid "Poedit" msgstr "Poedit" msgid "&File" msgstr "ファイル (&F)" msgid "&Go" msgstr "移動 (&G)" #. TRANSLATORS: %s is language name in its basic form (as you #. would see e.g. in a list of supported languages). You may need #. to rephrase it, e.g. to an equivalent of "for language %s". #, c-format msgid "" "Spellchecking is disabled, because the dictionary for %s isn’t installed." msgstr "" "%sの辞書がインストールされていないためスペルチェックは無効化されています。" msgid "Install" msgstr "インストール" msgid "Catalog modified. Do you want to save changes?" msgstr "カタログの変更を保存しますか ?" msgid "Save changes" msgstr "変更を保存" msgid "Your changes will be lost if you don’t save them." msgstr "保存しないと追加した変更は失われます。" msgid "Save" msgstr "保存" msgid "Don’t save" msgstr "保存しない" msgid "Don’t Save" msgstr "保存しない" msgid "Save as…" msgstr "名前を付けて保存..." msgid "Compile to…" msgstr "形式を指定してコンパイル…" msgid "Compiled Translation Files" msgstr "翻訳ファイルをコンパイルしました" msgid "Export as…" msgstr "書式を指定してエクスポート…" msgid "HTML Files" msgstr "HTML ファイル" msgid "Open catalog template" msgstr "カタログの雛形を開く" msgid "Source code not available." msgstr "ソースコードが存在しません。" msgid "Updating failed" msgstr "更新に失敗しました" msgid "" "Translations couldn’t be updated from the source code, because no code was " "found in the location specified in the catalog’s Properties." msgstr "" "カタログの属性で指定された位置にコードが見つからなかったため、翻訳をソース" "コードから更新できませんでした。" msgid "Entries in the catalog are probably incorrect." msgstr "カタログ中の項目が正しくない可能性があります。" msgid "Updating the catalog failed. Click on 'Details >>' for details." msgstr "" "カタログの更新に失敗しました。詳細を見るには ‘詳細 >>’ をクリックしてくださ" "い。" #, c-format msgid "%d issue with the translation found." msgid_plural "%d issues with the translation found." msgstr[0] "翻訳に%d件の問題が見つかりました。" msgid "Validation results" msgstr "検査の結果" msgid "" "Entries with errors were marked in red in the list. Details of the error " "will be shown when you select such an entry." msgstr "" "エラーがある項目はリスト中で赤くマークされています。エラーの詳細は、その項目" "を選択すると表示されます。" msgid "The file was saved safely." msgstr "ファイルを安全に保存しました。" msgid "" "The file was saved safely and compiled into the MO format, but it will " "probably not work correctly." msgstr "" "ファイルを安全に保存し MO 形式にコンパイルしましたが、恐らく正常に動作しない" "でしょう。" msgid "" "The file was saved safely, but it cannot be compiled into the MO format and " "used." msgstr "" "ファイルは安全に保存されましたが MO 形式にコンパイルできなかったため使用でき" "ません。" msgid "" "The file was compiled into the MO format, but it will probably not work " "correctly." msgstr "" "ファイルを MO 形式にコンパイルしましたが、恐らく正常に動作しないでしょう。" msgid "The file cannot be compiled into the MO format and used." msgstr "ファイルを MO 形式にコンパイルして使用することができません。" msgid "No problems with the translation found." msgstr "翻訳に問題は見つかりませんでした。" #, c-format msgid "The translation is ready for use, but %d entry is not translated yet." msgid_plural "" "The translation is ready for use, but %d entries are not translated yet." msgstr[0] "この翻訳を利用できますが、%d件の項目がまだ翻訳されていません。" msgid "The translation is ready for use." msgstr "この翻訳は使用できます。" #, c-format msgid "Poedit automatically fixed invalid content in the file “%s”." msgstr "Poedit は、ファイル「%s」内の無効なコンテンツを自動的に修正しました。" msgid "" "The file contained duplicate items, which is not allowed in PO files and " "would prevent the file from being used. Poedit fixed the issue, but you " "should review translations of any items marked as needing work and correct " "them if necessary." msgstr "" "ファイルに重複する項目が含まれています。重複項目は PO ファイルでは許可されて" "おらず、ファイルの利用を妨げます。Poedit はこの問題を修正しましたが、要確認と" "してマークされている項目を確認し、必要に応じて修正する必要があります。" msgid "Language of the translation isn’t set." msgstr "翻訳の言語が設定されていません。" msgid "Set Language" msgstr "言語を設定" msgid "Set language" msgstr "言語を設定" #. TRANSLATORS: This is shown underneath "Language of the translation isn't set (or ...is the same as source language)." msgid "" "Suggestions are not available if the translation language is not set " "correctly. Other features, such as plural forms, may be affected as well." msgstr "" "翻訳言語が正しく設定されていない場合、提案は利用できません。また、複数形など" "の他の機能にも影響する可能性があります。" msgid "Language of the translation is the same as source language." msgstr "翻訳言語がソース言語と同一です。" msgid "Fix Language" msgstr "言語を修正" msgid "Fix language" msgstr "言語を修正" msgid "" "This catalog has entries with plural forms, but doesn’t have Plural-Forms " "header configured." msgstr "" "このカタログには複数形を含む項目がありますが、Plural-Forms ヘッダが設定されて" "いません。" msgid "" "Entries in this catalog have different plural forms count from what " "catalog’s Plural-Forms header says" msgstr "" "カタログの中の項目がカタログの Plural-Forms ヘッダで示された数と異なる複数形" "を持っています" msgid "Required header Plural-Forms is missing." msgstr "必要なヘッダ Plural-Forms がありません。" #, c-format msgid "Syntax error in Plural-Forms header (\"%s\")." msgstr "Plural-Forms ヘッダに文法エラーがあります (\"%s\") 。" msgid "Fix the Header" msgstr "ヘッダーを修正" msgid "Fix the header" msgstr "ヘッダーを修正" #. TRANSLATORS: %s is language name in its basic form (as you #. would see e.g. in a list of supported languages). You may need #. to rephrase it, e.g. to an equivalent of "for language %s". #, c-format msgid "Plural forms expression used by the catalog is unusual for %s." msgstr "" "このカタログで使われている複数形表現は、%sの一般的なものではありません。" #. TRANSLATORS: A verb, shown as action button with ""Plural forms expression used by the catalog is unusual for %s.")" msgid "Review" msgstr "レビュー" #, c-format msgid "Error loading message catalog file “%s”." msgstr "メッセージカタログ “%s” の読み込みエラーです。" #, c-format msgid "Translated: %d of %d (%d %%)" msgstr "翻訳済み: %d/%d件中 (%d %%)" #, c-format msgid "Remaining: %d" msgstr "未翻訳: %d" #, c-format msgid "%d error" msgid_plural "%d errors" msgstr[0] "%d件のエラー" #, c-format msgid "%d entry" msgid_plural "%d entries" msgstr[0] "%d項目" msgid " (unsaved)" msgstr " (未保存)" msgid " (modified)" msgstr " (変更済)" #, c-format msgid "Failed to update translation memory: %s" msgstr "翻訳メモリを更新できませんでした: %s" msgid "Purge deleted translations" msgstr "削除された翻訳を一掃する" msgid "Do you want to remove all translations that are no longer used?" msgstr "もう使われていない翻訳をすべて削除しますか ?" msgid "" "If you continue with purging, all translations marked as deleted will be " "permanently removed. You will have to translate them again if they are added " "back in the future." msgstr "" "一掃を実行すると、削除済みとしてマークされた翻訳はすべて完全に削除されます。" "将来再び追加された場合は翻訳し直す必要があります。" msgid "Keep" msgstr "保持する" msgid "Purge" msgstr "翻訳の一掃" msgid "Copy from source text" msgstr "ソーステキストからコピー" msgid "Copy from Source Text" msgstr "ソーステキストからコピー" #. TRANSLATORS: This is the key shortcut used in menus on Windows, some languages call them differently #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Ctrl+" msgstr "Ctrl+" msgid "Clear translation" msgstr "翻訳をクリア" msgid "Clear Translation" msgstr "翻訳をクリア" msgid "Edit comment" msgstr "コメントを編集" msgid "Edit Comment" msgstr "コメントを編集" msgid "References:" msgstr "参照位置:" msgid "&Bookmarks" msgstr "ブックマーク (&B)" #. TRANSLATORS: This is the key shortcut used in menus on Windows, some languages call them differently #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Alt+" msgstr "Alt+" #, c-format msgid "Set bookmark %i" msgstr "ブックマーク %i を設定" #, c-format msgid "Go to bookmark %i" msgstr "ブックマーク %i へ移動" #, c-format msgid "Set Bookmark %i" msgstr "ブックマーク %i を設定" #, c-format msgid "Go to Bookmark %i" msgstr "ブックマーク %i へ移動" msgid "Hide Sidebar" msgstr "サイドバーを隠す" msgid "Show Sidebar" msgstr "サイドバーを表示" msgid "Hide Status Bar" msgstr "ステータスバーを非表示" msgid "Show Status Bar" msgstr "ステータスバーを表示" msgid "Source text:" msgstr "ソーステキスト:" msgid "Singular:" msgstr "単数形:" msgid "Plural:" msgstr "複数形:" msgid "Translation:" msgstr "翻訳:" msgid "Pre-translated" msgstr "事前翻訳済み" msgid "Needs Work" msgstr "要確認" #. TRANSLATORS: This indicates that the string's translation isn't final #. and has known problems. For example, it might be machine translated or #. fuzzy matched from an older string. The translation should be short and #. convey this. If it's problematic to translate it, "Needs review" is #. acceptable substitute, but note that the meaning is subtly different: #. "needs review" implies that somebody else should review the string after #. I am done with it (i.e. consider it good), while "needs work" implies I #. need to return to it and finish the translation. msgid "Needs work" msgstr "要確認" msgid "" "POT files are only templates and don’t contain any translations themselves.\n" "To make a translation, create a new PO file based on the template." msgstr "" "POT ファイルはテンプレートのみで、それ自体に翻訳は含まれていません。 \n" "翻訳を行うには、このテンプレートをベースにして新しい PO ファイルを作成しま" "す。" msgid "Create New Translation" msgstr "新しい翻訳を作成" msgid "Create new translation" msgstr "翻訳プロジェクトを新規作成する" msgid "Everything" msgstr "すべて" #, c-format msgid "Form %i" msgstr "形式 %i" msgid "Singular" msgstr "単数形" msgid "Zero" msgstr "0" msgid "One" msgstr "1" msgid "Two" msgstr "2" msgid "Plural" msgstr "複数形" msgid "Other" msgstr "その他" #, c-format msgid "%s Format" msgstr "%s 形式" #. TRANSLATORS: %s is replaced with language name, e.g. "PHP" or "C", so "PHP Format" etc." #, c-format msgid "%s format" msgstr "%s 形式" msgid "Source text" msgstr "ソーステキスト" #, c-format msgid "Translation — %s" msgstr "翻訳 — %s" msgid "ID" msgstr "ID" #, c-format msgid "Source text — %s" msgstr "ソース テキスト — %s" msgid "unknown language" msgstr "不明な言語" #, c-format msgid "Failed command: %s" msgstr "失敗したコマンド: %s" msgid "Failed to merge gettext catalogs." msgstr "gettext カタログの統合に失敗しました。" msgid "Source file" msgstr "ソースファイル" msgid "Source file occurrence:" msgstr "ソースファイルでの出現:" msgid "Open in Editor" msgstr "エディターで開く" msgid "Open in editor" msgstr "エディターで開く" msgid "No references for the selected item." msgstr "選択項目の参照情報はありません。" #, c-format msgid "Error opening file %s!" msgstr "ファイル %s を開く際にエラーが発生しました。" msgid "Find" msgstr "検索" msgid "Replace" msgstr "置き換え" #. TRANSLATORS: Expander in Find window for additional options (case sensitive etc.) msgid "Options" msgstr "設定" msgid "Ignore case" msgstr "大文字小文字を無視" msgid "Wrap around" msgstr "回り込み" msgid "Whole words only" msgstr "空白等で区切られた単語だけを探す" msgid "Find in source texts" msgstr "ソース テキストを検索" msgid "Find in translations" msgstr "翻訳された文字列を検索対象に含める" msgid "Find in comments" msgstr "コメントを検索対象に含める" msgid "Close" msgstr "閉じる" msgid "Replace &All" msgstr "すべてを置換 (&A)" msgid "Replace &all" msgstr "すべてを置換 (&a)" msgid "&Replace" msgstr "置換 (&R)" msgid "< &Previous" msgstr "< 前へ (&P)" msgid "&Next >" msgstr "次へ > (&N)" msgid "String to find" msgstr "検索する文字列" msgid "Replacement string" msgstr "置換文字列" #, c-format msgid "Cannot execute program: %s" msgstr "プログラムを実行できません: %s" msgid "Language Code or Name (e.g. en_GB)" msgstr "言語コードまたは言語名 (例: en_GB)" msgid "Translation Language" msgstr "翻訳言語" msgid "Language of the translation:" msgstr "翻訳の言語:" msgid "Poedit - Catalogs manager" msgstr "Poedit - カタログマネージャ" msgid "Catalog" msgstr "カタログ" msgid "Total" msgstr "合計" msgid "Untrans" msgstr "未翻訳" msgid "Errors" msgstr "エラー" msgid "Last modified" msgstr "最終更新" msgid "Select directory" msgstr "ディレクトリの選択" msgid "Directories:" msgstr "ディレクトリ:" msgid "" msgstr "<名称未設定>" msgid "Do you want to delete the project?" msgstr "プロジェクトを削除してもよいですか ?" msgid "Confirmation" msgstr "確認" msgid "" "Do you really want to do mass update of\n" "all catalogs in this project?" msgstr "" "このプロジェクトのすべてのカタログを\n" "更新してもよいですか ?" msgid "Information about the translator" msgstr "翻訳者に関する情報" msgid "Name:" msgstr "名前:" msgid "Your Name" msgstr "あなたの名前:" msgid "Email:" msgstr "メール:" msgid "your_email@example.com" msgstr "your_email@example.com" msgid "" "Your name and email address are only used to set the Last-Translator header " "of GNU gettext files." msgstr "" "お名前とメールアドレスは GNU gettext ファイルの Last-Translator ヘッダーを設" "定するためにのみ使われます。" msgid "Editing" msgstr "編集中" msgid "Automatically compile MO file when saving" msgstr "保存する際に MO ファイルを自動コンパイル" msgid "Show summary after catalog update" msgstr "カタログ更新後に要約を表示" msgid "Check spelling" msgstr "スペルチェック" msgid "Always change focus to text input field" msgstr "フォーカスは常にテキストフィールドに置く" msgid "" "Never let the list of strings take focus. If enabled, you must use Ctrl-" "arrows for keyboard navigation but you can also type text immediately, " "without having to press Tab to change focus." msgstr "" "チェックすると一覧にフォーカスが移動しなくなります。キーボードによる項目の移" "動は Ctrl + 矢印キー のみとなります。" msgid "Appearance" msgstr "外観" msgid "Use custom list font:" msgstr "カスタムリストフォントを使う:" msgid "Use custom text fields font:" msgstr "カスタムテキストフィールドフォントを使う:" msgid "Change UI language" msgstr "Poedit の UI 言語を変更" #. TRANSLATORS: This is a note appended to "Check spelling" when running on older Windows versions msgid "(requires Windows 8 or newer)" msgstr "(Window 8 以降が必要)" msgid "General" msgstr "一般" msgid "Use translation memory" msgstr "翻訳メモリを使う" msgid "Learn From Files…" msgstr "ファイルから学習…" msgid "Learn from files…" msgstr "ファイルから学習…" #. TRANSLATORS: This is a button that deletes everything in the translation memory (i.e. clears/resets it). msgid "Reset" msgstr "リセット" #. TRANSLATORS: Followed by "match translations within the file" or "pre-translate from TM" msgid "When updating from sources" msgstr "ソースからの更新時" #. TRANSLATORS: Preceded by "When updating from sources" msgid "fuzzy match within the file" msgstr "ファイル内でのあいまい一致" #. TRANSLATORS: Preceded by "When updating from sources" msgid "pre-translate from TM" msgstr "翻訳メモリから事前翻訳" msgid "" "Poedit can attempt to fill in new entries from only previous translations in " "the file or from your entire translation memory. Using the TM won’t be very " "effective if it’s near-empty, but it will get better as you add more " "translations to it." msgstr "" "Poedit は、ファイルに含まれる以前の翻訳または翻訳メモリのみから新しい項目を入" "力しようとすることもできます。翻訳メモリがほとんど空の場合、メモリを使っても" "あまり効果はありませんが、翻訳を追加していくとさらに精度が高まっていきます。" msgid "Stored translations:" msgstr "保存された翻訳:" msgid "Database size on disk:" msgstr "ディスク上のデータベースサイズ:" msgid "Select translation files to import" msgstr "インポートする翻訳ファイルを選択" msgid "Translation Memory" msgstr "翻訳メモリ" msgid "Importing translations…" msgstr "翻訳をインポート中…" msgid "Finalizing…" msgstr "完了処理中…" msgid "Reset translation memory" msgstr "翻訳メモリをリセット" msgid "Are you sure you want to reset the translation memory?" msgstr "本当に翻訳メモリをリセットしてよいですか ?" msgid "" "Resetting the translation memory will irrevocably delete all stored " "translations from it. You can’t undo this operation." msgstr "" "翻訳メモリをリセットすると、保存された翻訳がすべて削除されます。元に戻すこと" "はできません。" msgid "Cancel" msgstr "キャンセル" #. TRANSLATORS: This is abbreviation of "Translation Memory" used in Preferences on macOS. #. Long text looks weird there, too short (like TM) too, but less so. "General" is about ideal #. length there. msgid "TM" msgstr "翻訳メモリ" msgid "" "Source code extractors are used to find translatable strings in the source " "code files and extract them so that they can be translated." msgstr "" "ソースコード抽出ツールは、ソースコードファイル内にある翻訳可能な文字列を見つ" "けて抽出するために使われます。" msgid "Custom Extractors:" msgstr "カスタム抽出ツール:" msgid "Custom extractors:" msgstr "カスタム抽出ツール:" msgid "Edit…" msgstr "編集…" msgid "GNU gettext" msgstr "GNU gettext" msgid "" "Supports all programming languages recognized by GNU gettext tools (PHP, C/C+" "+, C#, Perl, Python, Java, JavaScript and others)." msgstr "" "GNU gettext ツール (PHP、C++、c#、Perl、Python、Java、JavaScript など) によっ" "て認識されるすべてのプログラミング言語に対応しています。" msgid "Delete extractor" msgstr "抽出ツールを削除" #, c-format msgid "Are you sure you want to delete the “%s” extractor?" msgstr "本当に「%s」抽出ツールを削除してもよいですか ?" msgid "Extractors" msgstr "抽出ツール" msgid "Accounts" msgstr "アカウント" msgid "Automatically check for updates" msgstr "自動的に更新を確認" msgid "Include beta versions" msgstr "ベータ版を含める" msgid "" "Beta versions contain the latest new features and improvements, but may be a " "bit less stable." msgstr "" "ベータバージョンは最新の機能や改善を含みますが、安定性が低い可能性がありま" "す。" msgid "Updates" msgstr "更新" msgid "" "These settings affect internal formatting of PO files. Adjust them if you " "have specific requirements e.g. because of version control." msgstr "" "これらの設定は PO ファイルの内部フォーマットに影響します。例えばバージョンコ" "ントロールのような特別な要件がある場合は調整してください。" msgid "Line endings:" msgstr "改行:" msgid "Unix (recommended)" msgstr "Unix (推奨)" msgid "Windows" msgstr "Windows" #. TRANSLATORS: Followed by text control for entering number; wraps text at given width msgid "Wrap at:" msgstr "折り返し:" msgid "Preserve formatting of existing files" msgstr "既存ファイルのフォーマットを保護する" msgid "Advanced" msgstr "上級者モード" msgid "Pre-translating…" msgstr "事前翻訳中…" #, c-format msgid "Pre-translated %u string" msgid_plural "Pre-translated %u strings" msgstr[0] "翻訳済みの %u 文字列" #. TRANSLATORS: This is a somewhat common term describing the action where #. you apply the translation memory and/or machine translation to all of the #. strings you're translating as the first step, followed by correcting, #. improving etc., i.e. actually translating the strings. This may be tricky #. to express in other languages as simply as in English, but please try to #. keep it similarly concise. Please try to avoid, if possible, describing it #. as "auto-translation" and similar, because such terminology would mislead #. some users into thinking it's all that needs to be done (spoken from #. experience). "Pre-translate" nicely expresses that it's only the step done #. *before* actual translation. msgid "Pre-translate" msgstr "事前翻訳" msgid "Only fill in exact matches" msgstr "完全な一致のみ採用する" msgid "" "By default, inaccurate results are filled in as well and marked as needing " "work. Check this option to only include accurate matches." msgstr "" "デフォルトでは正確ではない一致結果も使われ、要確認としてマークされます。正確" "な一致のみを含めたい場合は、このオプションにチェックを入れてください。" msgid "Don’t mark exact matches as needing work" msgstr "完全な一致を要確認としてマークしない" msgid "" "Only enable if you trust the quality of your TM. By default, all matches " "from the TM are marked as needing work and should be reviewed before use." msgstr "" "翻訳メモリの品質を信頼できる場合のみ有効化してください。デフォルトでは翻訳メ" "モリからの一致は要確認にマークされ、レビューが必要となります。" msgid "" "Pre-translation automatically finds exact or fuzzy matches for untranslated " "strings in the translation memory and fills in their translations." msgstr "" "事前翻訳は翻訳メモリ内から未翻訳文字列との完全またはあいまい一致を自動的に検" "出し、それで翻訳を埋めます。" #, c-format msgid "%d entry was pre-translated." msgid_plural "%d entries were pre-translated." msgstr[0] "%d件の項目が事前翻訳されました。" msgid "" "The translations were marked as needing work, because they may be " "inaccurate. You should review them for correctness." msgstr "" "翻訳は正確でない可能性があるため、要確認としてマークされています。間違ってい" "ないかどうかレビューしてください。" msgid "No entries could be pre-translated." msgstr "事前翻訳できる項目はありませんでした。" msgid "" "The TM doesn’t contain any strings similar to the content of this file. It " "is only effective for semi-automatic translations after Poedit learns enough " "from files that you translated manually." msgstr "" "このファイルに含まれるコンテンツに似た文字列が翻訳メモリには含まれていませ" "ん。" msgid "" "Drag and Drop Folders Here\n" "\n" "or use the + button" msgstr "" "フォルダーをここにドラッグアンドドロップ\n" "\n" "または [+] ボタンを使ってください。" msgid "" "Drag and drop folders here\n" "\n" "or use the + button" msgstr "" "フォルダーをここにドラッグアンドドロップ\n" "\n" "または [+] ボタンを使ってください。" msgid "Add Folders…" msgstr "フォルダーを追加…" msgid "Add folders…" msgstr "フォルダーを追加…" msgid "Add Files…" msgstr "ファイルを追加…" msgid "Add files…" msgstr "ファイルを追加…" msgid "Add Wildcard…" msgstr "ワイルドカードを追加…" msgid "Add wildcard…" msgstr "ワイルドカードを追加…" msgid "Paths" msgstr "パス" msgid "Excluded paths" msgstr "除外するパス" msgid "Advanced extraction settings" msgstr "高度な抽出設定" msgid "Extract notes for translators from:" msgstr "以下から翻訳者向けのメモを抽出:" msgid "Comments prefixed with:" msgstr "以下の接頭辞のついたコメント:" msgid "All comments" msgstr "すべてのコメント" msgid "Additional xgettext flags:" msgstr "追加 xgettext フラグ:" msgid "Additional keywords" msgstr "追加キーワード" msgid "Name of the project the translation is for" msgstr "翻訳するプロジェクトの名称" msgid "Team name and email address or URL" msgstr "チーム名とメールアドレスまたは URL" msgid "e.g. nplurals=2; plural=(n > 1);" msgstr "例: nplurals=2; plural=(n > 1);" msgid "UTF-8 (recommended)" msgstr "UTF-8 (推奨)" msgid "Please save the file first. This section cannot be edited until then." msgstr "" "まずファイルを保存してください。保存するまでこのセクションは編集できません。" msgid "Not all plural forms are translated." msgstr "複数形がすべて翻訳されていません。" msgid "The translation should start as a sentence." msgstr "翻訳は文章から始まる必要があります。" msgid "The translation should start with a lowercase character." msgstr "翻訳は小文字から始まる必要があります。" msgid "The translation doesn’t start with a space." msgstr "翻訳がスペースで始まっていません。" msgid "The translation starts with a space, but the source text doesn’t." msgstr "翻訳はスペースで始まっていますが、原文はそうではありあません。" msgid "The translation is missing a newline at the end." msgstr "翻訳の末尾に改行がありません。" msgid "The translation ends with a newline, but the source text doesn’t." msgstr "翻訳は改行で終わっていますが、原文はそうではありません。" msgid "The translation is missing a space at the end." msgstr "翻訳の最後にスペースがありません。" msgid "The translation ends with a space, but the source text doesn’t." msgstr "翻訳はスペースで終わっていますが、原文はそうではありあません。" #, c-format msgid "The translation should end with “%s”." msgstr "翻訳は \"%s\" で終える必要があります。" #, c-format msgid "The translation should not end with “%s”." msgstr "翻訳は \"%s\" 以外で終える必要があります。" #, c-format msgid "The translation ends with “%s”, but the source text ends with “%s”." msgstr "翻訳は \"%s\" で終わっていますが、原文は \"%s\" で終わっています。" msgid "Comment:" msgstr "コメント:" msgid "OK" msgstr "OK" msgid "C&lear" msgstr "クリア(&L)" msgid "Clear the comment" msgstr "コメントのクリア" msgid "New" msgstr "新規" msgid "Create new translations project" msgstr "翻訳プロジェクトを作成する" msgid "Edit" msgstr "編集" msgid "Edit the project" msgstr "このプロジェクトを編集" msgid "Delete the project" msgstr "翻訳プロジェクトを削除する" msgid "Update all" msgstr "全て更新する" msgid "Update all catalogs in the project" msgstr "プロジェクトのすべてのカタログを更新する" msgid "Edit project" msgstr "プロジェクトを編集" msgid "Project name:" msgstr "プロジェクト名:" msgid "Browse" msgstr "参照" msgid "Add directory to the list" msgstr "ディレクトリをリストに追加" msgid "&New…" msgstr "&新しい…" msgid "New from &POT/PO file…" msgstr "POT ファイルを元に更新…" msgid "New From &POT/PO File…" msgstr "POT ファイルを元に更新…" msgid "&Open…" msgstr "&開く…" msgid "Open Recent" msgstr "最近のファイルを開く" msgid "Open from Crowdin…" msgstr "Crowdin から開く…" msgid "Open From Crowdin…" msgstr "Crowdin から開く…" msgid "&Close" msgstr "閉じる (&C)" msgid "&Save" msgstr "保存 (&S)" msgid "Save &as…" msgstr "名前を付けて保存..." msgid "Save &As…" msgstr "名前を付けて保存..." msgid "Compile to MO…" msgstr "MO にコンパイル…" msgid "E&xport as HTML…" msgstr "HTML としてエクスポート…" msgid "Check for updates…" msgstr "アップデートの確認..." msgid "&Preferences…" msgstr "&設定…" msgid "Catalogs &manager" msgstr "カタログマネージャ (&M)" msgid "Catalogs &Manager" msgstr "カタログマネージャ (&M)" msgid "E&xit" msgstr "終了 (&X)" msgid "Quit" msgstr "終了" msgid "Copy from singular" msgstr "単数形から複製" msgid "Copy From Singular" msgstr "単数形から複製" msgid "Translation needs &work" msgstr "翻訳要確認" msgid "Translation Needs &Work" msgstr "翻訳要確認" msgid "Edit &comment" msgstr "コメントを編集 (&C)" msgid "Edit &Comment" msgstr "コメントを編集 (&C)" msgid "Suggestions" msgstr "提案" msgid "&Find…" msgstr "&検索…" msgid "Replace…" msgstr "置換…" msgid "Find next" msgstr "次を検索" msgid "Find previous" msgstr "前を検索" msgid "Find and Replace…" msgstr "検索と置換…" msgid "Find Next" msgstr "次を検索" msgid "Find Previous" msgstr "前を検索" msgid "&Preferences" msgstr "設定 (&P)" msgid "Display entry &IDs" msgstr "項目 ID を表示 (&I)" msgid "Display Entry &IDs" msgstr "項目 ID を表示 (&I)" msgid "Sort by &file order" msgstr "ファイル順でソート (&F)" msgid "Sort by &File Order" msgstr "ファイル順でソート (&F)" msgid "Sort by &source" msgstr "ソース順でソート (&S)" msgid "Sort by &Source" msgstr "ソース順でソート (&S)" msgid "Sort by &translation" msgstr "翻訳順でソート (&T)" msgid "Sort by &Translation" msgstr "翻訳順でソート (&T)" msgid "&Group by context" msgstr "コンテクストでグループ化 (&G)" msgid "&Group By Context" msgstr "コンテクストでグループ化 (&G)" msgid "Entries with errors first" msgstr "エラーのある項目を先頭に表示" msgid "Entries with Errors First" msgstr "エラーのある項目を先頭に表示" msgid "&Untranslated entries first" msgstr "未訳の項目を先頭に (&U)" msgid "&Untranslated Entries First" msgstr "未訳の項目を先頭に (&U)" msgid "&Show references" msgstr "参照画面の表示 (&S)" msgid "&Show References" msgstr "参照画面の表示 (&S)" msgid "Show sidebar" msgstr "サイドバーを表示" msgid "Show status bar" msgstr "ステータスバーを表示" msgid "C&atalog" msgstr "カタログ(&A)" msgid "&Update from sources" msgstr "ソースから更新 (&U)" msgid "&Update from Sources" msgstr "ソースから更新 (&U)" msgid "Update from &POT file…" msgstr "POT ファイルから更新…" msgid "Update from &POT File…" msgstr "POT ファイルから更新…" msgid "Sync with Crowdin" msgstr "Crowdin と同期" msgid "Pre-&translate…" msgstr "事前翻訳…" msgid "&Purge deleted translations" msgstr "削除された翻訳を一掃する (&P)" msgid "&Purge Deleted Translations" msgstr "削除された翻訳を一掃する (&P)" msgid "&Validate translations" msgstr "翻訳を検査 (&V)" msgid "&Validate Translations" msgstr "翻訳を検査 (&V)" msgid "&Properties…" msgstr "&設定…" msgid "&Done and next" msgstr "翻訳済みとし、次へ (&D)" msgid "&Done and Next" msgstr "翻訳済みとし、次へ (&D)" msgid "&Previous translation" msgstr "前の翻訳 (&P)" msgid "&Previous Translation" msgstr "前の翻訳 (&P)" msgid "&Next translation" msgstr "次の翻訳 (&N)" msgid "&Next Translation" msgstr "次の翻訳 (&N)" msgid "P&revious unfinished" msgstr "前の未訳または未確定 (&R)" msgid "P&revious Unfinished" msgstr "前の未訳または未確定 (&R)" msgid "Ne&xt unfinished" msgstr "次の未訳または未確定 (&X)" msgid "Ne&xt Unfinished" msgstr "次の未訳または未確定 (&X)" msgid "Previous plural form" msgstr "前の複数形" msgid "Previous Plural Form" msgstr "前の複数形" msgid "Next plural form" msgstr "次の複数形" msgid "Next Plural Form" msgstr "次の複数形" msgid "&Online help" msgstr "オンラインヘルプ (&O)" msgid "&Online Help" msgstr "オンラインヘルプ (&O)" msgid "&GNU gettext manual" msgstr "GNU gettext ドキュメント (&G)" msgid "&GNU gettext Manual" msgstr "GNU gettext ドキュメント (&G)" msgid "&About Poedit" msgstr "Poedit について (&A)" msgid "&About" msgstr "このプログラムについて (&A)" msgid "Extractor setup" msgstr "抽出ツール設定" msgid "List of extensions separated by semicolons (e.g. *.cpp;*.h):" msgstr "セミコロン区切りの拡張子 (例. *.cpp;*h):" msgid "Invocation:" msgstr "呼び出し:" msgid "Command to extract translations:" msgstr "翻訳を抽出するコマンド:" msgid "" "This is the command used to launch the extractor.\n" "%o expands to the name of output file, %K to list\n" "of keywords, %F to list of input files,\n" "%C to charset flag (see below)." msgstr "" "これは抽出ツールを立ち上げるためのコマンドです。\n" "%o は出力ファイルの名前として展開され、%K は\n" "キーワードのリスト、%F は入力ファイルのリスト、\n" "%C は文字集合フラグ (以下を参照) です。" msgid "An item in keywords list:" msgstr "キーワード一覧の各項目:" msgid "" "This will be attached to the command line once\n" "for each keyword. %k expands to the keyword." msgstr "" "各キーワードごとに一回コマンドラインへ追加されます。\n" "%k にキーワード名が展開されます。" msgid "An item in input files list:" msgstr "入力ファイル一覧の各項目:" #, c-format msgid "" "This will be attached to the command line once\n" "for each input file. %f expands to the filename." msgstr "" "各入力ファイルごとに一回コマンドラインへ追加されます。\n" "%f にファイル名が展開されます。" msgid "Source code charset:" msgstr "ソースコードの文字符号化法:" #, c-format msgid "" "This will be attached to the command line\n" "only if source code charset was given. %c expands to charset value." msgstr "" "ソースコードの文字符号化法が指定された場合のみ\n" "コマンドラインに追加されます。%c に符号化法の値が展開されます。" msgid "Catalog properties" msgstr "カタログの設定" msgid "Project name and version:" msgstr "プロジェクト名とバージョン:" msgid "Language team:" msgstr "言語チーム:" msgid "Plural forms:" msgstr "複数形:" msgid "Use default rules for this language" msgstr "この言語のデフォルトルールを使う" msgid "Use custom expression" msgstr "カスタム表現を使用" msgid "Learn about plural forms" msgstr "複数形とは" msgid "Charset:" msgstr "文字符号化法:" msgid "Advanced Extraction Settings…" msgstr "高度な抽出設定…" msgid "Advanced extraction settings…" msgstr "高度な抽出設定…" msgid "Translation Properties" msgstr "翻訳の特性" msgid "Translation properties" msgstr "翻訳の設定" msgid "Sources Paths" msgstr "ソースのパス" msgid "Sources paths" msgstr "ソースの検索パス" msgid "Extract text from source files in the following directories:" msgstr "以下のディレクトリのソースファイルからテキストを抽出:" msgid "Base path:" msgstr "ベースのパス:" msgid "Sources Keywords" msgstr "ソース中のキーワード" msgid "Sources keywords" msgstr "ソース中のキーワード" msgid "" "Use these keywords (function names) to recognize translatable strings\n" "in source files:" msgstr "" "ソースファイル中でこれらのキーワード (または関数名) を\n" "翻訳対象文字列の認識に使います:" msgid "Also use default keywords for supported languages" msgstr "対応言語のデフォルトキーワードも利用可能" msgid "Learn About Gettext Keywords" msgstr "Gettext キーワードとは" msgid "Learn about gettext keywords" msgstr "gettext キーワードとは" msgid "Update summary" msgstr "要約を更新" msgid "" "These strings were found in the sources but were not in the catalog.\n" "Poedit will add them to the catalog now." msgstr "" "これらの文字列がソースファイル中に存在しますが、カタログには含まれていません" "でした。\n" "Poedit はカタログにこの文字列を追加します。" msgid "New strings" msgstr "新規文字列" msgid "" "These strings are no longer in the sources.\n" "Poedit will remove them from the catalog now." msgstr "" "これらの文字列はソースファイルにはもう存在しません。 \n" "Poedit はカタログからこの文字列を取り除きます。" msgid "Obsolete strings" msgstr "もう使われていない文字列" msgid "(0 new, 0 obsolete)" msgstr "(新規 0、使用しないように変更 0)" msgid "Open" msgstr "開く" msgid "Save catalog" msgstr "カタログの保存" msgid "Validate" msgstr "検査" msgid "Check for errors in the translation" msgstr "翻訳中のエラーをチェック" msgid "Update" msgstr "更新する" msgid "Update catalog - synchronize it with sources" msgstr "カタログの更新 - ソースと同期させる" msgid "Sidebar" msgstr "サイドバー" msgid "Show or hide the sidebar" msgstr "サイドバーを表示・非表示にする。" #. TRANSLATORS: "Previous" as in used in the past, now replaced with newer. msgid "Previous source text:" msgstr "以前のソーステキスト:" msgid "" "The old source text (before it changed during an update) that the now-" "inaccurate translation corresponds to." msgstr "未確定翻訳が対応する旧ソーステキスト (更新による変更前)。" msgid "Notes for translators:" msgstr "翻訳者への注記:" msgid "Add comment" msgstr "コメントを追加" msgid "Add Comment" msgstr "コメントを追加" msgid "Translation suggestions:" msgstr "翻訳の提案:" #. TRANSLATORS: This is shown when no translation suggestions can be found in the TM (Windows). msgid "No matches found" msgstr "一致するものが見つかりませんでした" #. TRANSLATORS: This is shown when no translation suggestions can be found in the TM (macOS, Linux). msgid "No Matches Found" msgstr "一致するものが見つかりませんでした" msgid "This string was found in Poedit’s translation memory." msgstr "Poedit の翻訳メモリにこの文字列が見つかりました。" msgid "Cannot create temporary directory." msgstr "一時ディレクトリを作成できません。" msgid "Welcome to Poedit" msgstr "Poedit へようこそ" #. TRANSLATORS: This is version information in about dialog, "%s" will be #. version number when used #, c-format msgid "Version %s" msgstr "バージョン %s" msgid "Edit a Translation" msgstr "翻訳を編集" msgid "Edit a translation" msgstr "翻訳を編集" msgid "Open an existing PO file and edit the translation." msgstr "既存の PO ファイルを開いて翻訳を編集する。" msgid "" "Take an existing PO file or POT template and create a new translation from " "it." msgstr "" "既存の PO または POT テンプレートから新しい翻訳プロジェクトを作成する。" msgid "Collaborate on a Translation with Others" msgstr "チームとの共同作業で翻訳" msgid "Collaborate on a translation with others" msgstr "他のユーザーと共同作業で翻訳" msgid "" "Download a file from Crowdin project, translate and sync your changes back." msgstr "" "Crowdin プロジェクトからファイルをダウンロードし、翻訳した後に変更内容を同期" "します。" msgid "What is Crowdin?" msgstr "Crowdin とは ?" msgid "There are no translations. That’s unusual." msgstr "翻訳が存在しません。何かがおかしいようです。" msgid "" "Translatable entries aren’t added manually in the Gettext system, but are " "automatically extracted\n" "from source code. This way, they stay up to date and accurate.\n" "Translators typically use PO template files (POTs) prepared for them by the " "developer." msgstr "" msgid "(Learn more about GNU gettext)" msgstr "(GNU gettext の詳細)" msgid "The simplest way to fill this catalog is to update it from a POT:" msgstr "" "このカタログを埋める一番簡単な方法は POT ファイルから更新することです。" msgid "Update from POT" msgstr "POT ファイルから更新" msgid "Take translatable strings from an existing POT template." msgstr "既存の POT テンプレートから翻訳可能な文字列を使います。" msgid "" "You can also extract translatable strings directly from the source code:" msgstr "翻訳可能な文字列をソースコードから直接抽出できます。" msgid "Extract from sources" msgstr "ソースから抽出" msgid "Configure source code extraction in Properties." msgstr "設定画面でソースコード抽出を設定できます。" msgid "Sync" msgstr "同期" msgid "Synchronize the translation with Crowdin" msgstr "Crowdin と翻訳を同期する" #. TRANSLATORS: This is titlebar of about dialog, "%s" is application name #. ("Poedit" here, but please use "%s") #, c-format msgid "About %s" msgstr "%s について" #. TRANSLATORS: Title of the preferences window on Windows and Linux. "%s" is replaced with "Poedit" when running. #, c-format msgid "%s Preferences" msgstr "%s 環境設定" #. TRANSLATORS: macOS item in app menu msgid "Services" msgstr "サービス" #. TRANSLATORS: macOS item in app menu, %s is replaced with "Poedit" #, c-format msgid "Hide %s" msgstr "%s を非表示" #. TRANSLATORS: macOS item in app menu msgid "Hide Others" msgstr "他を非表示" #. TRANSLATORS: macOS item in app menu msgid "Show All" msgstr "すべて表示" #. TRANSLATORS: macOS item in app menu, %s is replaced with "Poedit" #, c-format msgid "Quit %s" msgstr "%s を終了" #. TRANSLATORS: macOS item in app menu msgid "Preferences…" msgstr "設定…" msgid "Preferences..." msgstr "設定…" #. TRANSLATORS: Title of a category in Windows task menu (right-click icon in taskbar) msgid "Recent" msgstr "最近" #. TRANSLATORS: Title of a category in Windows task menu (right-click icon in taskbar) msgid "Frequent" msgstr "頻繁" msgid "&Apply" msgstr "適用 (&A)" msgid "Apply" msgstr "適用" msgid "&Back" msgstr "戻る (&B)" msgid "Back" msgstr "戻る" msgid "&Cancel" msgstr "キャンセル (&C)" msgid "&Clear" msgstr "消去 (&C)" msgid "Clear" msgstr "消去" msgid "Copy" msgstr "コピー" msgid "Cu&t" msgstr "切り抜き (&t)" msgid "Cut" msgstr "切り抜き" msgid "&Delete" msgstr "削除 (&D)" msgid "&Quit" msgstr "終了 (&Q)" msgid "File" msgstr "ファイル" msgid "Help" msgstr "ヘルプ" msgid "&New" msgstr "新規 (&N)" msgid "&No" msgstr "いいえ (&N)" msgid "No" msgstr "いいえ" msgid "&OK" msgstr "OK (&O)" msgid "Open…" msgstr "開く..." msgid "&Open..." msgstr "開く… (&O)" msgid "Open..." msgstr "開く..." msgid "&Paste" msgstr "ペースト (&P)" msgid "Paste" msgstr "ペースト" msgid "Preferences" msgstr "環境設定" msgid "&Redo" msgstr "やり直し (&R)" msgid "Refresh" msgstr "再読み込み" msgid "&Save as" msgstr "名前を付けて保存 (&S)" msgid "Save as" msgstr "名前を付けて保存" msgid "Select &All" msgstr "すべてを選択 (&A)" msgid "Select All" msgstr "すべてを選択" msgid "&Undo" msgstr "取り消し (&U)" msgid "&Yes" msgstr "はい (&Y)" msgid "Yes" msgstr "はい" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Shift+" msgstr "Shift+" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Enter" msgstr "Enter" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Up" msgstr "上へ" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Down" msgstr "下へ" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Left" msgstr "左" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Right" msgstr "右" #. TRANSLATORS: Keyboard shortcut, must correspond to translation of "Ctrl+" msgid "ctrl" msgstr "ctrl" #. TRANSLATORS: Keyboard shortcut, must correspond to translation of "Alt+" msgid "alt" msgstr "alt" #. TRANSLATORS: Keyboard shortcut, must correspond to translation of "Shift+" msgid "shift" msgstr "shift" poedit-2.0.6/locales/he.mo0000664000372000037200000015312613230132076012304 00000000000000O %1 1 11<11J1gG2 22 22 222 223333#323A3G3M3V3j3~33333333333 3 3444 4-4=4S4i4x44444444444545I5^5u55555555 6:#6:^6 666 6 666 66 7 7/7?7S7n7w7777 717)8'.8V8s8 887868 9)-9W9 \9]g99A9I:d:k:::;";*; E;P;.X;;;;;;;;;<6<#K<o<<<<<<<(<(<'= B=c=l== ==/= ==>>)><>R>2q>>>>> ??????????@ "@/@B@EU@"@?@ @ A*A IAVAiAKnA"A5ABB,B 1B ?B MBZBmB B BBBBBBB.Bh CrCCuC,DID\DsDD DD DD#D<D",EOE _EjE*}E!E!E'EFF'8FT`FF FF F FFF G G 5G ?G MG ZGgGvGGG GGGG GGG G GGH.H1H HHI I8I @I MIYI"^I;I(IIJJ %J /J=JZJ nJyJJJJ JJK:K @K<NK.KKKKK L*L@LFLWL hL sL~L:M>MWM pM|MMMM#MM'M$N74N$lN%NNNNNNyOOOO O2O PP)P>PMP\PdPlPtPzPPPPPPsQyQQnQERJR>QR RRRR@RS-S,T >TLT2[TTT 0UD͒"&5$\ ɓ0@6U /ɔ.0(1Y&5 v Ζ ">Pfx Ɨ ϗۗ (1BVqי   @&/g*šך =$b}$=-$?dViaל<9"v$!ޝ 8 DJd~#ʟџ %>W\4y(ˠ3N(1w,֡ #)& P[y:/E [ iw ˤ٤ ¥ ˥ ]ަdLat"{LT>@o x7ݫ!7Yp & ά ݬ  1D ^2l $ϭ YdjsƮޮ +-'Yܯ 9T-h2ʰ +:Vex"ɱ&">&\۲$ϳ"3V"p ^-6 Jk O & 3@ Xy%=^TWANƺ)I?WZp<n<`ľ(%RNI[1G&yc#1(6Z.BGK,i.ryKxR>LlE #6Zn..3 EQ  *<R U`1rA"4L[qf#--9[@7$  !< Op jKIY GEJ.D6s6(-D}],6 9BW6tC3H>C'# )h?*Kq#-0^aG2zFYblx&2LADZ.EwOi=Ab[kv @4uh~ u@|pnf.nTN? QI2:qNKcajd F!p ]U>T+rXi=K%Vxz51^s4 NH/F"8/XJ`om #UwQk :Gs$ 8jL!~I1,(<D-9B>|;$H(E?g<y!dYgIo \ <eM+rM5&cL5 :"J-A+EmZ7C"603B $%RfRVeyOG*S@ M,4}_{O%W91J)S[`' 7)v &;*{(l_.03=\7P8/t';P (modified) (unsaved)%d entry%d entries%d entry was pre-translated.%d entries were pre-translated.%d error%d errors%d issue with the translation found.%d issues with the translation found.%i line of file “%s” was not loaded correctly.%i lines of file “%s” were not loaded correctly.%s Format%s Preferences%s format&About&About Poedit&Apply&Back&Bookmarks&Cancel&Clear&Close&Copy&Delete&Done and Next&Done and next&Edit&File&Find…&GNU gettext Manual&GNU gettext manual&Go&Group By Context&Group by context&Help&New&New…&Next >&Next Translation&Next translation&No&OK&Online Help&Online help&Open...&Open…&Paste&Preferences&Preferences…&Previous Translation&Previous translation&Properties…&Purge Deleted Translations&Purge deleted translations&Quit&Redo&Replace&Save&Save as&Show References&Show references&Undo&Untranslated Entries First&Untranslated entries first&Update from Sources&Update from sources&Validate Translations&Validate translations&View&Yes(0 new, 0 obsolete)(Learn more about GNU gettext)(New: %i, obsolete: %i)(Use default language)(requires Windows 8 or newer)< &PreviousDrag and Drop Folders Here or use the + buttonDrag and drop folders here or use the + buttonAbout %sAccountsAdd CommentAdd Files…Add Folders…Add Wildcard…Add commentAdd directory to the listAdd files…Add folders…Add wildcard…Additional keywordsAdditional xgettext flags:AdvancedAdvanced Extraction Settings…Advanced extraction settingsAdvanced extraction settings…All Translation FilesAll commentsAlso use default keywords for supported languagesAlt+Always change focus to text input fieldAn item in input files list:An item in keywords list:AppearanceApplyAre you sure you want to delete the “%s” extractor?Are you sure you want to reset the translation memory?Automatically check for updatesAutomatically compile MO file when savingBackBase path:Beta versions contain the latest new features and improvements, but may be a bit less stable.Bring All to FrontBroken catalog file: plural form msgstr used without msgid_pluralBroken catalog file: singular form msgstr used together with msgid_pluralBrowseBy default, inaccurate results are filled in as well and marked as needing work. Check this option to only include accurate matches.C&atalogC&learCancelCannot create temporary directory.Cannot execute program: %sCapitalizeCatalogCatalog modified. Do you want to save changes?Catalog propertiesCatalogs &ManagerCatalogs &managerCatalogs ManagerChange UI languageCharset:Check Document NowCheck Grammar With SpellingCheck Spelling While TypingCheck for Updates…Check for errors in the translationCheck for updates…Check spellingClearClear TranslationClear the commentClear translationCloseCollaborate on a Translation with OthersCollaborate on a translation with othersCollecting source files…Command to extract translations:Comment:Comments prefixed with:Compile to MO…Compile to…Compiled Translation FilesConfigure source code extraction in Properties.ConfirmationCopyCopy From SingularCopy from Source TextCopy from singularCopy from source textCorrect Spelling AutomaticallyCouldn’t load file %s, it is probably corrupted.Couldn’t save file %s.Create New TranslationCreate new translationCreate new translations projectCrowdin errorCrowdin is an online localization management platform and collaborative translation tool. Poedit can seamlessly sync PO files managed at Crowdin.Ctrl+Cu&tCustom Extractors:Custom extractors:CutDatabase size on disk:DeleteDelete extractorDelete the projectDirectories:Display Entry &IDsDisplay entry &IDsDo you really want to do mass update of all catalogs in this project?Do you want to delete the project?Do you want to remove all translations that are no longer used?Don’t SaveDon’t Show AgainDon’t mark exact matches as needing workDon’t saveDon’t show againDownDownload a file from Crowdin project, translate and sync your changes back.Downloading latest translations…Downloading translations is disabled in this project.E&xitE&xport as HTML…EditEdit &CommentEdit &commentEdit CommentEdit a TranslationEdit a translationEdit commentEdit projectEdit the projectEditingEdit…Email:EnterEnter Full ScreenEntries in the catalog are probably incorrect.Entries in this catalog have different plural forms count from what catalog’s Plural-Forms header saysEntries with Errors FirstEntries with errors firstEntries with errors were marked in red in the list. Details of the error will be shown when you select such an entry.Error loading message catalog file “%s”.Error opening fileError opening file %s!Error saving catalogErrorsEverythingExcluded pathsExport as…Extract from sourcesExtract notes for translators from:Extract text from source files in the following directories:Extracting translatable strings…Extractor setupExtractorsFailed command: %sFailed to communicate with Poedit process.Failed to load extracted catalog.Failed to merge gettext catalogs.Failed to update translation memory: %sFileFile “%s” doesn’t exist.File “%s” is not a message catalog.File “%s” is read-only and cannot be saved. Please save it under different name.File:Finalizing…FindFind NextFind PreviousFind and Replace…Find in commentsFind in source textsFind in translationsFind nextFind previousFix LanguageFix languageFix the HeaderFix the headerForm %iFrequentGNU gettextGeneralGo to Bookmark %iGo to bookmark %iHTML FilesHelpHide %sHide OthersHide SidebarHide Status BarHide this notification messageIDIf you continue with purging, all translations marked as deleted will be permanently removed. You will have to translate them again if they are added back in the future.Ignore caseImporting translations…Include beta versionsInformation about the translatorInstallInvalid fileInvocation:KeepLanguage Code or Name (e.g. en_GB)Language of the translation is the same as source language.Language of the translation isn’t set.Language of the translation:Language selectionLanguage team:Language:Last modifiedLearn About Gettext KeywordsLearn From Files…Learn MoreLearn More About CrowdinLearn about gettext keywordsLearn about plural formsLearn from files…Learn moreLearn more about CrowdinLeftLine %d of file “%s” is corrupted (not valid %s data).Line endings:List of extensions separated by semicolons (e.g. *.cpp;*.h):MO files can’t be directly edited in Poedit.Make Lower CaseMake Upper CaseMalformed header: “%s”Merging differences…MinimizeName of the project the translation is forName:Ne&xt UnfinishedNe&xt unfinishedNeeds WorkNeeds workNever let the list of strings take focus. If enabled, you must use Ctrl-arrows for keyboard navigation but you can also type text immediately, without having to press Tab to change focus.NewNew From &POT/PO File…New from &POT/PO file…New stringsNext Plural FormNext plural formNoNo Matches FoundNo entries could be pre-translated.No matches foundNo problems with the translation found.No references for the selected item.No translation projects listed in your Crowdin account.Not all plural forms are translated.Not authorized, please sign in again.Notes for translators:OKObsolete stringsOneOnly enable if you trust the quality of your TM. By default, all matches from the TM are marked as needing work and should be reviewed before use.Only fill in exact matchesOpenOpen Crowdin translationOpen From Crowdin…Open RecentOpen an existing PO file and edit the translation.Open catalogOpen catalog templateOpen from Crowdin…Open in EditorOpen in editorOpen...Open…OptionsOtherP&revious UnfinishedP&revious unfinishedPO TranslationPO Translation FilesPOT Translation TemplatesPOT files are only templates and don’t contain any translations themselves. To make a translation, create a new PO file based on the template.PastePaste and Match StylePathsPlease open and edit the corresponding PO file instead. When you save it, the MO file will be updated as well.Please save the file first. This section cannot be edited until then.PluralPlural forms expression used by the catalog is unusual for %s.Plural forms:Plural:PoeditPoedit - Catalogs managerPoedit automatically fixed invalid content in the file “%s”.Poedit can attempt to fill in new entries from only previous translations in the file or from your entire translation memory. Using the TM won’t be very effective if it’s near-empty, but it will get better as you add more translations to it.Poedit is an easy to use translations editor.Pre-&translate…Pre-translatePre-translatedPre-translated %u stringPre-translated %u stringsPre-translating…Pre-translation automatically finds exact or fuzzy matches for untranslated strings in the translation memory and fills in their translations.PreferencesPreferences...Preferences…Preserve formatting of existing filesPrevious Plural FormPrevious plural formPrevious source text:Project name and version:Project name:Project:PurgePurge deleted translationsQuitQuit %sRecentRedoReferences:RefreshRemaining: %dReplaceReplace &AllReplace &allReplacement stringReplace…Required header Plural-Forms is missing.ResetReset translation memoryResetting the translation memory will irrevocably delete all stored translations from it. You can’t undo this operation.ReviewRightSaveSave &As…Save &as…Save asSave as…Save catalogSave changesSelect &AllSelect AllSelect directorySelect translation files to importSelect your preferred languageServicesSet Bookmark %iSet LanguageSet bookmark %iSet languageShift+Show AllShow SidebarShow Spelling and GrammarShow Status BarShow SubstitutionsShow or hide the sidebarShow sidebarShow status barShow summary after catalog updateSidebarSign InSign OutSign inSign in to CrowdinSign outSigned in as:SingularSingular:Smart Copy/PasteSmart DashesSmart LinksSmart QuotesSort by &File OrderSort by &SourceSort by &TranslationSort by &file orderSort by &sourceSort by &translationSource code charset:Source code extractors are used to find translatable strings in the source code files and extract them so that they can be translated.Source code not available.Source fileSource file occurrence:Source textSource text — %sSource text:Sources KeywordsSources PathsSources keywordsSources pathsSpeechSpellchecking is disabled, because the dictionary for %s isn’t installed.Spelling and GrammarStart SpeakingStop SpeakingStored translations:String to findSubstitutionsSuggestionsSuggestions are not available if the translation language is not set correctly. Other features, such as plural forms, may be affected as well.Supports all programming languages recognized by GNU gettext tools (PHP, C/C++, C#, Perl, Python, Java, JavaScript and others).SyncSync with CrowdinSynchronize the translation with CrowdinSyncingSyncing errorSyncing with %s failed.Syncing with %s…Syncing with Crowdin failed.Syntax error in Plural-Forms header ("%s").TMTake an existing PO file or POT template and create a new translation from it.Take translatable strings from an existing POT template.Team name and email address or URLText ReplacementThe TM doesn’t contain any strings similar to the content of this file. It is only effective for semi-automatic translations after Poedit learns enough from files that you translated manually.The catalog couldn’t be saved in “%s” charset as specified in catalog settings. It was saved in UTF-8 instead and the setting was modified accordingly.The file cannot be compiled into the MO format and used.The file cannot be opened.The file contained duplicate items, which is not allowed in PO files and would prevent the file from being used. Poedit fixed the issue, but you should review translations of any items marked as needing work and correct them if necessary.The file may be either corrupted or in a format not recognized by Poedit.The file was compiled into the MO format, but it will probably not work correctly.The file was saved safely and compiled into the MO format, but it will probably not work correctly.The file was saved safely, but it cannot be compiled into the MO format and used.The file was saved safely.The old source text (before it changed during an update) that the now-inaccurate translation corresponds to.The simplest way to fill this catalog is to update it from a POT:The translation doesn’t start with a space.The translation ends with a newline, but the source text doesn’t.The translation ends with a space, but the source text doesn’t.The translation ends with “%s”, but the source text ends with “%s”.The translation is missing a newline at the end.The translation is missing a space at the end.The translation is ready for use, but %d entry is not translated yet.The translation is ready for use, but %d entries are not translated yet.The translation is ready for use.The translation should end with “%s”.The translation should not end with “%s”.The translation should start as a sentence.The translation should start with a lowercase character.The translation starts with a space, but the source text doesn’t.The translations were marked as needing work, because they may be inaccurate. You should review them for correctness.There are no translations. That’s unusual.There was a problem formatting the file nicely (but it was saved all right).There were errors when loading the catalog. Some data may be missing or corrupted as the result.These settings affect internal formatting of PO files. Adjust them if you have specific requirements e.g. because of version control.These strings are no longer in the sources. Poedit will remove them from the catalog now.These strings were found in the sources but were not in the catalog. Poedit will add them to the catalog now.This catalog has entries with plural forms, but doesn’t have Plural-Forms header configured.This file can only be edited in Crowdin’s web interface.This is the command used to launch the extractor. %o expands to the name of output file, %K to list of keywords, %F to list of input files, %C to charset flag (see below).This project has no files that can be translated in Poedit.This string was found in Poedit’s translation memory.This will be attached to the command line only if source code charset was given. %c expands to charset value.This will be attached to the command line once for each input file. %f expands to the filename.This will be attached to the command line once for each keyword. %k expands to the keyword.TotalTransformationsTranslatable entries aren’t added manually in the Gettext system, but are automatically extracted from source code. This way, they stay up to date and accurate. Translators typically use PO template files (POTs) prepared for them by the developer.Translated: %d of %d (%d %%)Translation LanguageTranslation MemoryTranslation Needs &WorkTranslation PropertiesTranslation needs &workTranslation propertiesTranslation suggestions:Translation — %sTranslation:Translations couldn’t be updated from the source code, because no code was found in the location specified in the catalog’s Properties.TwoUTF-8 (recommended)UndoUnhandled exception occurred: %sUnix (recommended)UntransUpUpdateUpdate allUpdate all catalogs in the projectUpdate catalog - synchronize it with sourcesUpdate from &POT File…Update from &POT file…Update from POTUpdate summaryUpdatesUpdating catalogUpdating failedUpdating the catalog failed. Click on 'Details >>' for details.Updating user information…Uploading translations…Use custom expressionUse custom list font:Use custom text fields font:Use default rules for this languageUse these keywords (function names) to recognize translatable strings in source files:Use translation memoryValidateValidation resultsVersion %sWaiting for authentication…Welcome to PoeditWhat is Crowdin?When updating from sourcesWhole words onlyWindowWindowsWrap aroundWrap at:YesYou can also extract translatable strings directly from the source code:You can’t drop more than one file on Poedit window.You must restart Poedit for this change to take effect.Your NameYour changes will be lost if you don’t save them.Your name and email address are only used to set the Last-Translator header of GNU gettext files.ZeroZoomaltctrldon’t delete temporary files (for debugging)e.g. nplurals=2; plural=(n > 1);fuzzy match within the filehandle a poedit:// URIpre-translate from TMshiftunknown languageyour_email@example.com“%s” is not a valid POT file.Project-Id-Version: poedit Report-Msgid-Bugs-To: help@poedit.net POT-Creation-Date: 2017-12-05 15:52+0100 PO-Revision-Date: 2017-12-05 09:48-0500 Last-Translator: vslavik Language-Team: Hebrew Language: he_IL MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=4; plural=n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3; X-Generator: crowdin.com X-Crowdin-Project: poedit X-Crowdin-Language: he X-Crowdin-File: /locales/poedit.pot (שונה) (לא נשמר)רשומה %d%d רשומות%d רשומות%d רשומות%d רשומות תורגמו מראש.%d רשומות תורגמו מראש.%d רשומות תורגמו מראש.%d רשומות תורגמו מראש.שגיאה %d%d שגיאות%d שגיאות%d שגיאותנמצאו %d בעיות עם התרגום.נמצאו %d בעיות עם התרגום.נמצאו %d בעיות עם התרגום.נמצאו %d בעיות עם התרגום.שורה %i בקובץ “%s” לא נטענה כראוי.%i שורות בקובץ “%s” לא נטענו כראוי.%i שורות בקובץ “%s” לא נטענו כראוי.%i שורות בקובץ “%s” לא נטענו כראוי.פורמט %sהעדפות של %sפורמט %s&אודות&אודות Poeditה&חלה&קודם&סימניותבי&טול&נקה&סגירהה&עתק&מחקב&צע והמשךב&צע והמשך&עריכה&קובץ&חיפוש…הדרכה ל-&GNU gettextהדרכה ל-&GNU gettextמע&בר אלקיבו&ץ לפי הקשרקיבו&ץ לפי הקשרע&זרהח&דש&חדש…ה&בא >התרגום ה&באהתרגום ה&בא&לא&אישורעזרה מ&קוונתעזרה מ&קוונת&פתיחה...&פתיחה…ה&דבקה&עדפות&העדפות…התרגום ה&קודםהתרגום ה&קודםמא&פיינים…פינוי תרגומים ש&נמחקופינוי תרגומים ש&נמחקוי&ציאהבצע &שובה&חלפהש&מירהשמירה &בשםהצגת ה&פניותהצגת ה&פניות&בטלרשומות ש&אינן מתורגמות תחילהרשומות ש&אינן מתורגמות תחילהעדכון מ&מקורותעדכון מ&מקורות&אימות התרגומים&אימות התרגומיםת&צוגה&כן(0 חדשות, 0 מיושנות)(מידע נוסף אודות GNU gettext)(חדש: %i, מיושן: %i)(שימוש בשפת ברירת המחדל)(דורש Windows 8 ומעלה)< ה&קודםגרור ושחרר תיקיות לכאן או השתמש בכפתור הפלוס (+)גרור ושחרר תיקיות לכאן או השתמש בכפתור הפלוס (+)<ללא שם>אודות %sחשבונותהוספת הערההוספת קבצים…הוספת תיקיות…הוספת Wildcard…הוספת הערההוספת ספרייה לרשימההוספת קבצים…הוספת תיקיות…הוספת Wildcard…מילות מפתח נוספותדגלי xgettext נוספים:מתקדםהגדרות חילוץ מתקדמות…הגדרות חילוץ מתקדמותהגדרות חילוץ מתקדמות…כל קבצי התרגוםכל ההערותהשתמש בנוסף במילות מפתח ברירת מחדל עבור שפות נתמכותAlt+שנה תמיד את המיקוד לשדה הקלט של הטקסטפריט ברשימת קובצי הקלט:פריט ברשימת מילות המפתח:תצוגההחלהאם אתה בטוח שברצונך למחוק את המחלץ "%s"?האם אתה בטוח שברצונך לאפס את זיכרון התרגום?בדיקה אחר עדכונים באופן אוטומטיביצוע הידור קובץ MO באופן אוטומטי בעת שמירההקודםנתיב הבסיס:גרסאות בטא מכילות את התכונות והעדכונים החדשים ביותר, אך עשויות להיות פחות יציבות.הבא הכל קדימהקובץ קטלוג פגום: לשון רבים של msgstr בשימוש בלי mdgid_pluralקובץ קטלוג פגום: לשון יחיד של msgstr בשימוש עם msgid_pluralעיוןכברירת מחדל, תוצאות שאינן מדויקות ממולאות גם כן ומסומנות ככאלו הדורשות סקירה. יש לבחור באפשרות זו כדי לכלול רק התאמות מדויקות.ק&טלוג&מחיקהביטוללא ניתן ליצור ספרייה זמנית.לא ניתן להריץ את היישום: %sהפוך לאותיות רישיותקטלוגהקטלוג שונה. האם ברצונך לשמור את השינויים?מאפייני הקטלוגמ&נהל הקטלוגיםמ&נהל הקטלוגיםמנהל הקטלוגיםהחלפת שפת הממשקקידוד:בדוק את המסמך כעתבדוק דקדוק ביחד עם איותבדוק איות במהלך ההקלדהבדיקה אחר עדכונים…בדיקת שגיאות בתרגוםבדיקה אחר עדכונים…בדיקת איותנקהמחיקת התרגוםמחיקת ההערהמחיקת התרגוםסגירהשיתוף פעולה עם אחרים על תרגוםשיתוף פעולה עם אחרים על תרגוםאוסף קבצי מקור…פקודה לחילוץ תרגומים:הערה:הערות המתחילות ב:ביצוע הידור ל-MO…ביצוע הידור ל…קבצי תרגום מהודריםניתן להגדיר את חילוץ קוד המקור במאפיינים.אימותהעתקהעתקה מ'לשון יחיד'העתקה מטקסט המקורהעתקה מ'לשון יחיד'העתקה מטקסט המקורתקן איות באופן אוטומטילא ניתן לטעון קובץ %s, הוא ככל הנראה פגום.לא ניתן לשמור את הקובץ %s.יצירת תרגום חדשיצירת תרגום חדשיצירת פרוייקט תרגומים חדששגיאת CrowdinCrowdin היא מערכת ניהול לוקליזציה מקוונת וכלי תרגום שיתופי. Poedit יכול לסנכרן קבצי PO המנוהלים ב-Crowdin בצורה חלקה.Ctrl+ג&זורמחלצים מותאמים אישית:מחלצים מותאמים אישית:גזורגודל מסד הנתונים בכונן:מחקמחיקת מחלץמחיקת הפרוייקטספריות:הצגת מ&זהים של רשומותהצגת מ&זהים של רשומותהאם אתה בטוח שברצונך לבצע עדכון קבוצתי של כל הקטלוגים בפרוייקט?האם ברצונך למחוק את הפרוייקט?האם ברצונך להסיר את כל התרגומים שאינם עוד בשימוש?אל תשמוראל תציג שובאל תסמן התאמות מדויקות ככאלו הדורשות סקירהאל תשמוראל תציג שובDownהורדת קובץ מפרויקט Crowdin, תרגום וסנכרון השינויים בחזרה.מוריד תרגומים עדכניים…הורדת תרגומים מושבתת עבור פרויקט זה.י&ציאהייצוא כ-&HTML…עריכהעריכת &הערהעריכת &הערהעריכת הערהעריכת תרגוםעריכת תרגוםעריכת הערהעריכת פרוייקטעריכת הפרוייקטעריכהעריכה…אימייל:Enterעבור למסך מלאקיימות רשומות בקטלוג שככל הנראה אינן נכונות.לרשומות בקטלוג זה ישנן צורות רבים שונות ממה שכתוב בכותרת Plural-Forms של הקטלוגרשומות עם שגיאות תחילהרשומות עם שגיאות תחילהרשומות עם שגיאות סומנו באדום ברשימה. פרטי השגיאה יופיעו בעת בחירת רשומה שכזאת.שגיאה בטעינת קובץ קטלוג ההודעות “%s”.שגיאה בפתיחת הקובץשגיאה בפתיחת הקובץ %s!שגיאה בשמירת הקטלוגשגיאותהכלנתיבים לא כלוליםייצוא בשם…חילוץ ממקורותחילוץ הערות למתרגמים מתוך:חלץ טקסט מקבצי המקור בספריות הבאות:מחלץ מחרוזות הניתנות לתרגום…הגדרת מחלץמחלציםהפקודה נכשלה: %sהתקשורת עם תהליך Poedit נכשל.טעינת הקטלוג שחולץ נכשלה.מיזוג קטלוגים של gettext נכשל.עדכון זיכרון התרגום נכשל: %sקובץהקובץ “%s” אינו קיים.הקובץ “%s” אינו קטלוג הודעות.הקובץ “%s” הינו לקריאה בלבד ולא ניתן לשמור אותו. יש לשמור אותו תחת שם אחר.קובץ:מתבצעת סגירה…חיפושחיפוש הבאחיפוש הקודםחיפוש והחלפה…חיפוש בהערותחיפוש בטקסט המקורחיפוש בתרגומיםחיפוש הבאחיפוש הקודםתיקון שפהתיקון שפהתיקון הכותרתתיקון הכותרתצורה %iתכוףGNU gettextכללימעבר לסימניה %iמעבר לסימניה %iקבצי HTMLעזרההסתר את %sהסתר אחריםהסתרת סרגל הצדהסתרת שורת המצבהסתר התראה זומזההאם הליך הפינוי יימשך, כל התרגומים שסומנו כמחוקים יוסרו לצמיתות. יהיה עליך לתרגם אותם מחדש אם הם יתווספו שוב בעתיד.התעלמות מרישיותמייבא תרגומים…הכלל גרסאות בטאמידע על המתרגםהתקנהקובץ שגויקריאה:שמירההשם או הקוד של השפה (לדוגמה: he_IL או he)שפת התרגום זהה לשפת המקור.שפת התרגום אינה מוגדרת.שפת התרגום:בחירת שפהצוות המתרגמים:שפה:שונה לאחרונהמידע נוסף אודות מילות מפתח של gettextלמידה מקבצים…מידע נוסףמידע נוסף אודות Crowdinמידע נוסף אודות מילות מפתח של gettextמידע על לשון רביםלמידה מקבצים…מידע נוסףמידע נוסף אודות CrowdinLeftשורה %d בקובץ “%s” הינה פגומה (נתוני %s לא חוקיים).סיומות שורה:רשימה של הרחבות המופרדות בנקודה פסיק (לדוגמה: ‎*.cpp;*.h):לא ניתן לערוך קבצי MO ישירות ב-Poedit.הפוך לאותיות קטנותהפוך לאותיות גדולותכותרת שגויה: “%s”ממזג בין ההבדלים…מזעורשם הפרוייקט עבורו מיועד התרגוםשם:&הבא שלא הושלם&הבא שלא הושלםדורש סקירהדורש סקירהלא מאפשר לרשימת המחרוזות לקבל מיקוד. אם מופעל, עליך להשתמש במקשי החיצים בצירוף מקש ה-Ctrl לניווט, אבל גם ניתן לכתוב טקסט מיידית, ללא צורך בלחיצה על Tab לשינוי המיקוד.חדשחדש מקובץ &POT/PO…חדש מקובץ &POT/PO…מחרוזות חדשותלשון רבים הבאלשון רבים הבאלאלא נמצאו התאמותלא ניתן לתרגם מראש שום רשומה.לא נמצאו התאמותלא נמצאו בעיות בתרגום.אין הפניות עבור הפריט הנבחר.אין פרוייקטי תרגום הרשומים בחשבון Crowdin שלך.לא כל צורות הרבים מתורגמות.לא מורשה, נא להתחבר שנית.הערות למתרגמים:אישורמחרוזות מיושנותאחדהפעל אפשרות זו רק אם אתה בוטח באיכות של זיכרון התרגום שלך. כברירת מחדל, כל ההתאמות מזיכרון התרגום מסומנות ככאלו הדורשות סקירה, ויש לעבור עליהם.השלם רק התאמות מדויקותפתיחהפתיחת תרגום Crowdinפתיחה מ-Crowdin…פתח אחרוניםפתיחת קובץ PO קיים ועריכת התרגום.פתיחת קטלוגפתח תבנית קטלוגפתיחה מ-Crowdin…פתיחה בעורךפתיחה בעורךפתיחה...פתיחה…אפשרויותאחרהקו&דם שלא הושלםהקו&דם שלא הושלםתרגום POקבצי תרגום POתבניות תרגום POTקבצי POT הינם תבניות בלבד ולא מכילים תרגומים. על מנת ליצור תרגום, יש ליצור קובץ PO חדש המבוסס על התבנית.הדבקהדבק והתאם לסגנוןנתיביםאנא פתח וערוך את קובץ ה-PO המקביל במקום. כשתשמור אותו, קובץ ה-MO יתעדכן בהתאם.נא לשמור את הקובץ תחילה. לא ניתן לערוך סעיף זה עד אז.רביםשימוש בביטויי לשון רבים שבקטלוג אינו שגרתי עבור השפה %s.צורות רבים:לשון רבים:PoeditPoedit - מנהל הקטלוגיםPoedit תיקן באופן אוטומטי תוכן שגוי בקובץ "%s".Poedit יכול לנסות להשלים רשומות חדשות מהתרגומים הקודמים שלך בקובץ או מזיכרון התרגום כולו. שימוש בזיכרון התרגום לא יהיה אפקטיבי אם הוא כמעט ריק, אבל הוא ישתפר ככל שתרגומים חדשים יתווספו אליו.Poedit הינו עורך תרגומים פשוט לתפעול.&תרגום מראש…תרגום מראשתורגם מראש%u מחרוזות מתורגמים מראש%u מחרוזות מתורגמים מראש%u מחרוזות מתורגמים מראש%u מחרוזות מתורגמים מראשמבצע תרגום מראש…'תרגום מראש' מאתר באופן אוטומטי בזיכרון התרגום התאמות מדויקות או מעורפלות עבור מחרוזות שאינן מתורגמות, ומשלים את התרגומים שלהן.העדפותהעדפות...העדפות…שמירה על פורמט של קבצים קיימיםלשון רבים הקודםלשון רבים הקודםטקסט המקור הקודם:שם הפרוייקט וגרסה:שם הפרוייקט:פרוייקט:פינויפינוי תרגומים שנמחקויציאהסיים את %sאחרוניםבצע שובהפניות:רענוןנותרו: %dהחלפההחלפת ה&כלהחלפת ה&כלמחרוזת להחלפההחלפה…הכותרת ההכרחית Plural-Forms חסרה.איפוסאיפוס זיכרון התרגוםאיפוס זיכרון התרגום ימחק את כל התרגומים המאוחסנים בו. לא ניתן לבטל פעולה זו.סקירהRightשמורשמירה &בשם…שמירה &בשם…שמירה בשםשמירה בשם…שמירת הקטלוגשמירת שינוייםבחר ה&כלבחר הכלבחירת ספרייהבחירת קבצי תרגום לייבואבחר בשפה המועדפת עליךשירותיםהגדרה כסימניה %iהגדרת שפההגדרה כסימניה %iהגדרת שפהShift+הצג הכלהצגת סרגל הצדהצג איות ודקדוקהצגת שורת המצבהצג החלפותהצגה או הסתרה של סרגל הצדהצגת סרגל הצדהצגת שורת המצבהצגת תקציר לאחר עדכון קטלוגסרגל הצדהתחברותהתנתקותהתחברותהתחברות אל Crowdinהתנתקותמחובר בשם:יחידלשון יחיד:העתקה והדבקה חכמותמיקוף חכםקישורים חכמיםמרכאות חכמותמיון לפי ה&סדר שבקובץמיון לפי המ&קורמיון לפי ה&תרגוםמיון לפי ה&סדר שבקובץמיון לפי המ&קורמיון לפי ה&תרגוםקידוד קוד המקור:מחלצי קוד המקור משמשים לאיתור מחרוזות הניתנים לתרגום בקבצי קוד המקור ולחלצם כדי שיוכלו להיות מתורגמים.קוד המקור אינו זמין.קובץ מקורמופע בקובץ המקור:טקסט המקורטקסט המקור — %sטקסט המקור:מילות מפתח המקורותנתיבי המקורותמילות מפתח המקורותנתיבי המקורותדיבורבדיקת איות מושבתת, מכיוון שהמילון לשפה %s אינו מותקן.איות ודקדוקהקראהפסק הקראהתרגומים מאוחסנים:מחרוזת לחיפושהחלפותהצעותהצעות אינן זמינות אם שפת התרגום לא מוגדרת כראוי. יתכן שמאפיינים אחרים, כמו לשון רבים, יושפעו גם כן.תומך בכל שפות התכנות המזוהות ע"י כלי GNU gettext (למשל PHP, C/C++, C#, Perl, Python, Java, JavaScript ואחרים).סנכרוןסנכרון עם Crowdinסנכרון התרגום עם Crowdinמסנכרןשגיאת סנכרוןהסנכרון עם %s נכשל.מסנכרן עם %s…הסנכרון עם Crowdin נכשל.שגיאת תחביר בכותרת ה-Plural-Forms‏ ("%s").TMשימוש בקובץ PO קיים או תבנית POT ויצירת תרגום חדש ממנו.שימוש במחרוזות הניתנות לתרגום מתבנית POT קיימת.שם הצוות וכתובת הדוא"ל או כתובת האתרמלל חלופיזיכרון התרגום לא מכיל מחרוזות הדומות לתוכן של קובץ זה. הוא יעיל לתרגומים חצי אוטומטיים רק לאחר ש-Poedit ילמד מספיק מקבצים שתתרגם באופן ידני.לא ניתן לשמור את הקטלוג בקידוד “%s” כפי שצוין בהגדרות הקטלוג. במקום זאת, הוא נשמר בקידוד UTF-8 וההגדרה שונתה בהתאם.לא ניתן להדר קובץ זה לפורמט ה-MO לצורך שימוש.לא ניתן לפתוח את הקובץ.הקובץ הכיל פריטים כפולים, מה שלא מורשה בקבצי PO, ובסופו של דבר ימנע שימוש בקובץ. Poedit תיקן את הבעיה, אך יש לסקור את התרגומים של כל הפריטים המסומנים כדורשים סקירה, ולתקן אותם במידת הצורך.יתכן שהקובץ פגום או מכיל פורמט שלא מזוהה ע"י Poedit.הקובץ הודר לפורמט ה-MO, אך יתכן שהוא לא יעבוד כראוי.הקובץ נשמר בבטחה והודר לפורמט ה-MO, אך יתכן שהוא לא יעבוד כראוי.הקובץ נשמר בבטחה, אך לא ניתן להדר אותו לפורמט ה-MO לצורך שימוש.הקובץ נשמר בבטחה.טקסט המקור הקודם (לפני ששונה במהלך עדכון) אליו תואם התרגום שכעת אינו מדויק.הדרך הפשוטה ביותר להשלמת קטלוג זה היא לעדכן אותו מ-POT:התרגום לא מתחיל ברווח.התרגום מסתיים בשורה חדשה, בניגוד לטקסט המקור.התרגום מסתיים ברווח, בניגוד לטקסט המקור.התרגום מסתיים ב-“%s”, אבל טקסט המקור מסתיים ב-“%s”.בסוף התרגום חסרה שורה חדשה.בסוף התרגום חסר רווח.התרגום מוכן לשימוש, אבל %d רשומות לא תורגמו עדיין.התרגום מוכן לשימוש, אבל %d רשומות לא תורגמו עדיין.התרגום מוכן לשימוש, אבל %d רשומות לא תורגמו עדיין.התרגום מוכן לשימוש, אבל %d רשומות לא תורגמו עדיין.התרגום מוכן לשימוש.התרגום אמור להסתיים ב-“%s”.התרגום לא אמור להסתיים ב-“%s”.התרגום אמור להתחיל כמשפט.התרגום אמור להתחיל באות לטינית קטנה.התרגום מתחיל ברווח, בניגוד לטקסט המקור.התרגומים סומנו ככאלו הדורשים סקירה, מכיוון שיתכן שאינם מדויקים. כדאי לסקור אותם ולתקנם במידת הצורך.אין תרגומים. זה מצב חריג.הייתה בעיה בעת עיצוב הקובץ בצורה נקייה (אך הוא נשמר כראוי).אירעו שגיאות בעת טעינת הקטלוג. כתוצאה מכך, ייתכן שחלק מהמידע חסר או פגום.הגדרות אלו משפיעות על הפורמט הפנימי של קבצי PO. שנה אותן אם יש לך דרישות מסוימות, למשל בגלל שליטה על גרסה.מחרוזות אלו אינן נמצאות עוד במקורות. Poedit יסיר אותן כעת מהקטלוג.מחרוזות אלו נמצאו במקורות אבל לא בקטלוג. Poedit יוסיף אותן לקטלוג כעת.לקטלוג זה יש רשומות עם צורות רבים, אך אינם מוגדרים עם כותרת Plural-Forms.קובץ זה ניתן לעריכה רק בממשק האינטרנט של Crowdin.זו הפקודה המשמשת לפתיחת המחלץ. %o יוחלף בשם של קובץ הפלט, %K ברשימת מילות המפתח, %F ברשימת קבצי הקלט, %C בדגל הקידוד (ראה למטה).לפרויקט זה אין קבצים הניתנים לתרגום ב-Poedit.מחרוזת זו אותרה בזיכרון התרגום של Poedit.משתנה זה יתווסף לשורת הפקודה רק אם הקידוד של קוד המקור סופק. %c יוחלף בערך הקידוד.משתנה זה יתווסף לשורת הפקודה פעם אחת עבור כל קובץ קלט. %f יוחלף בשם הקובץ.משתנה זה יתווסף לשורת הפקודה פעם אחת עבור כל מילת מפתח. %k יוחלף במילת המפתח.סה"כהמרותרשומות הניתנות לתרגום אינן מתווספות באופן ידני למערכת ה-Gettext, אבל מחולצות באופן אוטומטי מקוד המקור. בצורה הזו, הן נשארות מעודכנות ומדויקות. מתרגמים משתמשים בדרך כלל בקבצי תבנית PO (ובקיצור POTs) המוכנים עבורם ע"י המפתח.תורגמו: %d מתוך %d (%d%%)שפת התרגוםזיכרון תרגוםסימון כתרגום הדורש &סקירהמאפייני התרגוםסימון כתרגום הדורש &סקירהמאפייני התרגוםהצעות תרגום:תרגום — %sתרגום:לא ניתן לעדכן תרגומים מקוד המקור, מכיוון שלא נמצא קוד במיקום שצויין במאפייני הקטלוג.שתייםUTF-8 (מומלץ)בטלאירעה חריגה: %sUnix (מומלץ)לא מתורגמיםUpעדכוןעדכון הכלעדכון כל הקטלוגים בפרוייקטעדכון קטלוג - מסנכרן אותו עם המקורותעדכון מקובץ &POT…עדכון מקובץ &POT…עדכון מ-POTתקציר העדכוןעדכוניםמעדכן קטלוגהעדכון נכשלעדכון הקטלוג נכשל. יש ללחוץ על 'עוד >>' לקבלת פרטים נוספים.מעדכן נתוני משתמש…מעלה תרגומים…שימוש בביטוי מותאם אישיתשימוש בגופן מותאם אישית לרשימה:שימוש בגופן מותאם אישית לשדות טקסט:שימוש בכללי בררת המחדל לשפה זוהשתמש במילות מפתח אלה (שמות פונקציות) על מנת לזהות מחרוזות הניתנות לתרגום בקבצי המקור:שימוש בזיכרון תרגוםאימותתוצאות האימותגרסה %sמחכה לאימות…ברוכים הבאים ל-Poeditמה זה Crowdin?בעת עדכון ממקורותמילים שלמות בלבדחלוןWindowsחזרה להתחלה בסיוםגלישת שורה ב:כןניתן גם לחלץ את המחרוזות הניתנות לתרגום ישירות מקוד המקור:לא ניתן לשחרר יותר מקובץ אחד בחלון של Poedit.יש להפעיל מחדש את Poedit כדי שהשינויים ייכנסו לתוקף.השם שלךהשינויים שביצעת יאבדו אם לא תשמור אותם.שמך וכתובת הדוא"ל שלך ישמשו אך ורק כדי להגדיר את כותרת ה-Last-Translator בקבצי gettext של GNU.אפסהגדל/הקטןaltctrlאל תמחק קבצים זמניים (לצורך ניפוי שגיאות)לדוגמה ‪nplurals=2; plural=(n > 1);‬התאם תרגומים דומים מתוך הקובץטפל ב-poedit:// URIבצע תרגום מראש מזיכרון התרגוםshiftשפה לא ידועהyour_email@example.com“%s” אינו קובץ POT חוקי.poedit-2.0.6/locales/an.mo0000664000372000037200000012310513230132075012277 00000000000000\) ) ))< *I*J\* ** ** *** ***+ +++*+9+?+E+Y+m+q++++++++ + +++ +,,3,O,k,q,w,},,,,,,,,-'->-D-I-]-|--- -:-:. K.U.^. g. s....... /1/C/'H/p// //7/6/'0)G0q0 v0]00A0I41~11 222"!2D2 _2j2.r22222223343#P3t333333(3(3 484A4/\4 44444445&5=5 ]5k55666.626I6P6a6 t666E6"6?7P7*c777K7"758K8Q8 V8 d8 r888 8 888888.8&9@9uZ9999 ::):#>:<b:: ::*:!:!;'<;d;i;o; t; ~;;;; ; ; ; ;;<<<(<0<B< T<_<d< l< x<<<<< a=m= == = =="=;=)>F> Y> c>q> >>>> >> ?<?.W????*???? @ @@@ @@@A#A;A'LA$tA7A%AABB"B&BBBB B2B 1C>CTCcCrCzCCCCCCCCDDDnDEE>XE EEEE@EF-G 3GAG2PGGG %H1H%@HfH{HHH HHHHHHI I II %I3I;I(NIwI}IzIJJJ %J 2J ?J KJVJ"gJJJJ JJ JJJ J K#K3KFK _KlK!|KKKKKKK K KK L L L*L>LNLcLwLLLL8M SM_M wMM MM MM MMKM4NIN XNfN{N N NN3OOO(OO+PeHe Pe^eteeeeee eeff%fEfefffffff"fg!4g Vg wgEgEg h h*h2hHh^hzhhhhhhJ iXi.]i*i#i ii4i<"j-_j-jjjjj?kJWkZkkl l ll%l"lm+m,4mamymmm)mmm'n#=n annnnnnn&n&o#6o Zo fo:o oooo p"p&=pdpp(p#ppq qqqq%q r'r:r MrWrqrHrr>r/sBGsss_s) t;3totvt}tttttttu#u,u@uFu;cuuuyu*Sv.~v+vvvv) wC4wxw w1w3w6x2;xCnxxxxxxxyy6yGyXyiyzyyy yyyy yy y zz+z%Bzhzkz#'{K{"g{{{ { {+{;{$|<|Q|Y|*o|| |.|"|} /}P}Dc}9}}} ~.~I~Q~g~}~~~ *+*I/tH.4=NQ(7!= _9mق 1GVp.5OfXPJ[kszK/݆ 6%\m *(Si  ̈ ׈  ! . 8 EP-h #zȉCK Q\m~5 6Hdv}$ˋ! 92R Ȍ ;Od#y$֍%5[ & @L cpIŏ ' 4A\ m {; ёݑ'*DJ[;*A<C_GwUmH%̖Hv#[},^*^W|rԚCGBXAݜlo^ܝ;AQl&ž&ܞ: MZ&< N[ `m)~2!۠(FQa0%/*:Z2Ȣ#Tx #ʣ/8@RbJf9 #&* \ufKCa>@ [Rp^Cje,B[A33P5~t1y` 1G`UkE@Xok5o9r%98j PDYIi;LO0 M42^\'n{fFBZ H+)LJ=tHT6dR:*&Qb_ /q7&".#S]*+KrZpg|-}Q<gGa x8uM_h|-m%T)F]{$:, 6bWVceNn4.Nc?<'l;yvs!Yqv!A#ihwd 7lz?(OVSI"=>2DzsmU}Ww~0$xJ( E/ X (modified) (unsaved)%d entry%d entries%d entry was pre-translated.%d entries were pre-translated.%d error%d errors%d issue with the translation found.%d issues with the translation found.%s Format%s Preferences%s format&About&About Poedit&Apply&Back&Bookmarks&Cancel&Clear&Close&Copy&Delete&Done and Next&Done and next&Edit&File&GNU gettext Manual&GNU gettext manual&Go&Group By Context&Group by context&Help&New&Next >&Next Translation&Next translation&OK&Online Help&Online help&Open...&Paste&Preferences&Previous Translation&Previous translation&Purge Deleted Translations&Purge deleted translations&Quit&Redo&Save&Save as&Show References&Show references&Undo&Untranslated Entries First&Untranslated entries first&Update from Sources&Update from sources&Validate Translations&Validate translations&View&Yes(0 new, 0 obsolete)(Learn more about GNU gettext)(New: %i, obsolete: %i)(Use default language)(requires Windows 8 or newer)< &PreviousDrag and Drop Folders Here or use the + buttonDrag and drop folders here or use the + buttonAbout %sAccountsAdd CommentAdd commentAdd directory to the listAdditional keywordsAdditional xgettext flags:AdvancedAdvanced extraction settingsAll Translation FilesAll commentsAlso use default keywords for supported languagesAlt+Always change focus to text input fieldAn item in input files list:An item in keywords list:AppearanceApplyAre you sure you want to delete the “%s” extractor?Are you sure you want to reset the translation memory?Automatically check for updatesAutomatically compile MO file when savingBackBase path:Beta versions contain the latest new features and improvements, but may be a bit less stable.Bring All to FrontBroken catalog file: plural form msgstr used without msgid_pluralBroken catalog file: singular form msgstr used together with msgid_pluralBrowseBy default, inaccurate results are filled in as well and marked as needing work. Check this option to only include accurate matches.C&atalogC&learCancelCannot create temporary directory.Cannot execute program: %sCapitalizeCatalogCatalog modified. Do you want to save changes?Catalog propertiesCatalogs &ManagerCatalogs &managerCatalogs ManagerChange UI languageCharset:Check Document NowCheck Grammar With SpellingCheck Spelling While TypingCheck for errors in the translationCheck spellingClearClear TranslationClear the commentClear translationCloseCollaborate on a Translation with OthersCollaborate on a translation with othersCommand to extract translations:Comment:Compiled Translation FilesConfigure source code extraction in Properties.ConfirmationCopyCopy From SingularCopy from Source TextCopy from singularCopy from source textCorrect Spelling AutomaticallyCreate New TranslationCreate new translationCreate new translations projectCrowdin errorCrowdin is an online localization management platform and collaborative translation tool. Poedit can seamlessly sync PO files managed at Crowdin.Ctrl+Cu&tCustom Extractors:Custom extractors:CutDatabase size on disk:DeleteDelete extractorDelete the projectDirectories:Display Entry &IDsDisplay entry &IDsDo you really want to do mass update of all catalogs in this project?Do you want to delete the project?Do you want to remove all translations that are no longer used?Don’t Show AgainDon’t mark exact matches as needing workDon’t show againDownDownload a file from Crowdin project, translate and sync your changes back.Downloading latest translations…Downloading translations is disabled in this project.E&xitEditEdit &CommentEdit &commentEdit CommentEdit a TranslationEdit a translationEdit commentEdit projectEdit the projectEditingEmail:EnterEnter Full ScreenEntries in the catalog are probably incorrect.Entries with Errors FirstEntries with errors firstEntries with errors were marked in red in the list. Details of the error will be shown when you select such an entry.Error opening fileError opening file %s!Error saving catalogEverythingExcluded pathsExtract from sourcesExtract notes for translators from:Extract text from source files in the following directories:Extractor setupExtractorsFailed command: %sFailed to communicate with Poedit process.Failed to load extracted catalog.Failed to merge gettext catalogs.Failed to update translation memory: %sFileFile:FindFind NextFind PreviousFind in commentsFind in source textsFind in translationsFind nextFind previousFix LanguageFix languageFix the HeaderFix the headerForm %iFrequentGeneralGo to Bookmark %iGo to bookmark %iHTML FilesHelpHide %sHide OthersHide SidebarHide Status BarHide this notification messageIDIf you continue with purging, all translations marked as deleted will be permanently removed. You will have to translate them again if they are added back in the future.Ignore caseInclude beta versionsInformation about the translatorInstallInvalid fileInvocation:KeepLanguage Code or Name (e.g. en_GB)Language of the translation is the same as source language.Language of the translation:Language selectionLanguage:Last modifiedLearn About Gettext KeywordsLearn MoreLearn More About CrowdinLearn about gettext keywordsLearn about plural formsLearn moreLearn more about CrowdinLine endings:List of extensions separated by semicolons (e.g. *.cpp;*.h):MO files can’t be directly edited in Poedit.Make Lower CaseMake Upper CaseMinimizeName of the project the translation is forName:Ne&xt UnfinishedNe&xt unfinishedNeeds WorkNeeds workNever let the list of strings take focus. If enabled, you must use Ctrl-arrows for keyboard navigation but you can also type text immediately, without having to press Tab to change focus.NewNew stringsNext Plural FormNext plural formNo Matches FoundNo entries could be pre-translated.No matches foundNo problems with the translation found.No references for the selected item.No translation projects listed in your Crowdin account.Not authorized, please sign in again.Notes for translators:OKObsolete stringsOneOnly enable if you trust the quality of your TM. By default, all matches from the TM are marked as needing work and should be reviewed before use.Only fill in exact matchesOpenOpen Crowdin translationOpen RecentOpen an existing PO file and edit the translation.Open catalogOpen catalog templateOpen in EditorOpen in editorOpen...OptionsOtherP&revious UnfinishedP&revious unfinishedPO TranslationPO Translation FilesPOT Translation TemplatesPOT files are only templates and don’t contain any translations themselves. To make a translation, create a new PO file based on the template.PastePaste and Match StylePathsPlease open and edit the corresponding PO file instead. When you save it, the MO file will be updated as well.Please save the file first. This section cannot be edited until then.Plural forms expression used by the catalog is unusual for %s.Plural forms:Plural:PoeditPoedit - Catalogs managerPoedit automatically fixed invalid content in the file “%s”.Poedit can attempt to fill in new entries from only previous translations in the file or from your entire translation memory. Using the TM won’t be very effective if it’s near-empty, but it will get better as you add more translations to it.Poedit is an easy to use translations editor.Pre-translatePre-translatedPre-translated %u stringPre-translated %u stringsPre-translating…Pre-translation automatically finds exact or fuzzy matches for untranslated strings in the translation memory and fills in their translations.PreferencesPreferences...Preserve formatting of existing filesPrevious Plural FormPrevious plural formPrevious source text:Project name and version:Project name:Project:PurgePurge deleted translationsQuitQuit %sRecentRedoReferences:RefreshRemaining: %dReplaceReplacement stringRequired header Plural-Forms is missing.ResetReset translation memoryResetting the translation memory will irrevocably delete all stored translations from it. You can’t undo this operation.ReviewSaveSave asSave catalogSave changesSelect &AllSelect AllSelect directorySelect translation files to importSelect your preferred languageServicesSet Bookmark %iSet LanguageSet bookmark %iSet languageShift+Show AllShow SidebarShow Spelling and GrammarShow Status BarShow SubstitutionsShow or hide the sidebarShow sidebarShow status barShow summary after catalog updateSidebarSign InSign OutSign inSign in to CrowdinSign outSigned in as:Singular:Smart Copy/PasteSmart DashesSmart LinksSmart QuotesSort by &File OrderSort by &SourceSort by &TranslationSort by &file orderSort by &sourceSort by &translationSource code charset:Source code extractors are used to find translatable strings in the source code files and extract them so that they can be translated.Source code not available.Source fileSource file occurrence:Source textSource text — %sSource text:Sources KeywordsSources PathsSources keywordsSources pathsSpeechSpellchecking is disabled, because the dictionary for %s isn’t installed.Spelling and GrammarStart SpeakingStop SpeakingStored translations:String to findSubstitutionsSuggestionsSuggestions are not available if the translation language is not set correctly. Other features, such as plural forms, may be affected as well.Supports all programming languages recognized by GNU gettext tools (PHP, C/C++, C#, Perl, Python, Java, JavaScript and others).SyncSync with CrowdinSynchronize the translation with CrowdinSyncing with Crowdin failed.Syntax error in Plural-Forms header ("%s").TMTake an existing PO file or POT template and create a new translation from it.Take translatable strings from an existing POT template.Text ReplacementThe TM doesn’t contain any strings similar to the content of this file. It is only effective for semi-automatic translations after Poedit learns enough from files that you translated manually.The file cannot be compiled into the MO format and used.The file cannot be opened.The file contained duplicate items, which is not allowed in PO files and would prevent the file from being used. Poedit fixed the issue, but you should review translations of any items marked as needing work and correct them if necessary.The file may be either corrupted or in a format not recognized by Poedit.The file was compiled into the MO format, but it will probably not work correctly.The file was saved safely and compiled into the MO format, but it will probably not work correctly.The file was saved safely, but it cannot be compiled into the MO format and used.The file was saved safely.The old source text (before it changed during an update) that the now-inaccurate translation corresponds to.The simplest way to fill this catalog is to update it from a POT:The translation is ready for use, but %d entry is not translated yet.The translation is ready for use, but %d entries are not translated yet.The translation is ready for use.The translations were marked as needing work, because they may be inaccurate. You should review them for correctness.There are no translations. That’s unusual.There was a problem formatting the file nicely (but it was saved all right).There were errors when loading the catalog. Some data may be missing or corrupted as the result.These settings affect internal formatting of PO files. Adjust them if you have specific requirements e.g. because of version control.These strings are no longer in the sources. Poedit will remove them from the catalog now.These strings were found in the sources but were not in the catalog. Poedit will add them to the catalog now.This file can only be edited in Crowdin’s web interface.This is the command used to launch the extractor. %o expands to the name of output file, %K to list of keywords, %F to list of input files, %C to charset flag (see below).This project has no files that can be translated in Poedit.This string was found in Poedit’s translation memory.This will be attached to the command line only if source code charset was given. %c expands to charset value.This will be attached to the command line once for each input file. %f expands to the filename.This will be attached to the command line once for each keyword. %k expands to the keyword.TotalTransformationsTranslated: %d of %d (%d %%)Translation LanguageTranslation MemoryTranslation Needs &WorkTranslation PropertiesTranslation needs &workTranslation propertiesTranslation suggestions:Translation — %sTranslation:Translations couldn’t be updated from the source code, because no code was found in the location specified in the catalog’s Properties.TwoUTF-8 (recommended)UndoUnhandled exception occurred: %sUnix (recommended)UntransUpUpdateUpdate allUpdate all catalogs in the projectUpdate catalog - synchronize it with sourcesUpdate from POTUpdate summaryUpdatesUpdating catalogUpdating failedUpdating the catalog failed. Click on 'Details >>' for details.Updating user information…Uploading translations…Use custom expressionUse custom list font:Use custom text fields font:Use default rules for this languageUse these keywords (function names) to recognize translatable strings in source files:Use translation memoryValidateValidation resultsVersion %sWaiting for authentication…Welcome to PoeditWhat is Crowdin?When updating from sourcesWhole words onlyWindowWindowsWrap aroundWrap at:YesYou can also extract translatable strings directly from the source code:You must restart Poedit for this change to take effect.Your NameYour name and email address are only used to set the Last-Translator header of GNU gettext files.ZeroZoomaltctrle.g. nplurals=2; plural=(n > 1);fuzzy match within the filehandle a poedit:// URIpre-translate from TMshiftunknown languageyour_email@example.comProject-Id-Version: poedit Report-Msgid-Bugs-To: help@poedit.net POT-Creation-Date: 2017-12-05 15:52+0100 PO-Revision-Date: 2017-12-05 09:51-0500 Last-Translator: vslavik Language-Team: Aragonese Language: an_ES MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=(n != 1); X-Generator: crowdin.com X-Crowdin-Project: poedit X-Crowdin-Language: an X-Crowdin-File: /locales/poedit.pot (modificau) (sin alzar)%d dentrada%d dentradasS'ha pretraduciu %d dentrada.S'ha pretraduciu %d dentradas.%d error%d errors%d problema trobau en a traducción.%d problemas trobaus en a traducción.%s formatoPreferencias d’o %s%s formatoArredol de&Sobre o Poedit&Aplicar&Dezaga&Marcapachinas&Cancelar&Vuedar&Zarrar&Copiar&BorrarFeito y &siguientFeito y &siguient&Edición&FicheroManual de &GNU gettextmanual de &GNU gettext&IrA&grupar por o contextoA&grupar por o contexto&Aduya&Nuevo&Siguient >Traducción siguie&ntTraducción siguie&nt&Acceptar&Aduya en linia&Aduya en linia&Ubrir...A&pegar&PreferenciasTraducción &anteriorTraducción &anterior&Purgar as traduccions borradas&Purgar as traduccions borradas&Salir&Refer&Alzar&Alzar como&Amostrar as referencias&Amostrar as referencias&Desfer&Dentradas sin traducir primero&Dentradas sin traducir primero&Esviellar-lo dende as fuents&Esviellar-lo dende as fuents&Validar as traduccions&Validar as traduccions&Veyer&Sí(0 nuevos, 0 obsoletos)(Aprender mas sobre o GNU gettext)(Nuevas: %i, obsoletas: %i)(Fer servir a luenga por defecto)(requier o Windows 8 u superior)< &AnteriorArrocegar y soltar carpetas aquí u fer servir o botón +Arrocegar y soltar carpetas aquí u fer servir o botón +Arredol de %sCuentasAdhibir un comentarioAdhibir un comentarioAdhibir a carpeta t'a listaParolas clau adicionalsIndicadors xgettext adicionals:AvanzauOpcions avanzadas d'extracciónTotz os fichers de traducciónTotz os comentariosFer servir tamién as parolas clau predeterminadas pa os idiomas suportausAlt+Pasar siempre o foco t'o quadro de traducciónElemento d'a lista de fichers de dentrada:Elemento d'a lista de parolas clau:AparenciaAplicarYes seguro que quiers eliminar l'extractor “%s”?De seguras que quiers reenchegar as traduccions memorizadas?Comprebar-ne as actualizacions automaticamentCompilar o fichero MO automaticament en alzarDezagaDirectorio radiz:As versions beta contienen as funcionalidatz y milloras mas recients, pero pueden resultar menos estables.Trayer-ne tot t'o frentFichero de catalogo corrupto: forma plural de msgstr sin usar msgid_pluralFichero de catalogo corrupto: forma singular de msgstr usada de conchunta con msgid_pluralExaminarDe traza predeterminada, os resultaus imprecisos tamién se replenan y se marca que le sfa falta treballo. Marca ista opción pa incluyir nomás as coincidencias precisas.C&atalogoEsbo&rrarCancelarNo puet creyar-se a carpeta temporal.No se puet executar o programa: %sMeter en mayusclasCatalogoCatalogo modificau. Quiers alzar os cambios?Propiedatz d'o catalogoChestor de &catalogosChestor de &catalogosChestor de catalogosCambiar a luenga d'a interficie d'usuarioChuego de caracters:Comprebar o documento agoraComprebar a gramatica con a ortografíaComprebar a ortografía en escribirMirar as errors en a traducciónComprebar a ortografíaVuedarLimpiar a traducciónBorrar o comentarioLimpiar a traducciónZarrarColaborar en una Traducción con atrisColaborar en una traducción con atrisComando ta extrayer as traduccions:Comentario:Fichers de traducción compilausConfigurar o codigo d'extracción de fuents en propiedatz.ConfirmaciónCopiarCopiar dende o singularCopiar dende o texto fuentCopiar dende o singularCopiar dende o texto fuentCorrechir automaticament a ortografíaCreyar una nueva traducciónCreyar una nueva traducciónCreyar un nuevo prochecto de traducciónS'ha produciu una error d'o CrowdinO Crowdin ye una plataforma de chestión de localizacions en linia y una ferramienta colaborativa de traducción. O Poedit puet sincronizar sin problema os fichers PO chestionaus en o Crowdin.Ctrl+&RetallarExtractors personalizaus:Extractors personalizaus:RetallarGrandaria d'a base de datos en disco:BorrarBorrar l'extractorBorrar o prochectoCarpetas:Amostrar a dentrada d'&IDAmostrar a dentrada d'&IDDeseyas una actualización masiva de totz os catalogos d'iste prochecto?Deseyas borrar o prochecto?Deseyas eliminar todas as traduccions que ya no se fan servir?No tornar a amostrar-loNo marcar as coincidencias exactas como si les fese falta treballoNo tornar a amostrar-loAbaixoBaixa un fichero dende o Prochecto d'o Crowdin, traduz y syncroniza os tuyos cambeos de nuevas.Se ye baixando as zagueras traduccions…A descarga de traduccions ye desactivada en iste prochecto.&SalirEditarEditar o &comentarioEditar o &comentarioEditar o comentarioEditar una traducciónEditar una traducciónEditar o comentarioEditar o prochectoEditar o prochectoEditandoCorreu electronico:IntroDentrar ta pantalla completaPrebablement, qualques textos d'o catalogo son incorrectos.Dentradas con errors primeroDentradas con errors primeroAs dentradas con errors s'han marcau en royo en a lista. S'amostrarán os detalles d'a error quan selecciones a dentrada.S'ha produciu una error ubrindo lo ficheroS'ha produciu una error en ubrir o fichero %s!S'ha produciu una error en alzar o catalogoTotRotas excluidasEsviellar-lo dende as fuentsExtrayer as notas pa os traductors dende:Extrayer o texto d'o fichero d'orichen en os directorios siguients:Configuración d'extractorExtractorsS'ha produciu una error en executar o comando: %sHa fallau en comunicar-se con o proceso d'o Poedit.S'ha produciu una error en cargar catalogos extraitos.S'ha produciu una error en unir catalogos gettext.S'ha produciu una error en esviellar as traduccions memorizadas: %sFicheroFichero:MirarMirar o siguientMirar l'anteriorMirar en os comentariosMirar en o texto d'orichenMirar en as traduccionsMirar o siguientMirar l'anteriorApanyar l'idiomaApanyar l'idiomaApanyar o capiteroAdequar o capiteroForma %iFreqüentCheneralIr t'o marcapachinas%iIr t'o marcapachinas%iFichers HTMLAduyaAmagar %sAmagar atrosAmagar a barra lateralAmagar a barra d'estauAmagar iste mensache de notificaciónIDSi continas con o purgau, todas as traduccions marcadas como borradas serán eliminadas permanentment. Habrás a traducir-las unatra vegada si son adhibidas unatra vegada en o esvenidero.Ignorar as mayusclas y as minusclasIncluir-ie as versions betaInformación arredol d'o traductorInstalarFichero invaliuExecución:Mantener-lasCodigo de l'idioma u nombre (p. eix. an_ES)L'idioma d'a traducción ye o mesmo que l'idioma d'orichen.Idioma d'a traducción:Selección de luengaLuenga:Zaguera modificaciónAprender sobre as parolas clau d'o GettextAprender-ne másAprender mas arredol d'o CrowdinAprender sobre as parolas clau d'o GNU gettextAprender arredol de formas pluralsAprender-ne másAprender mas arredol d'o Crowdinfinals d'as liniasLista d'extensions deseparadas por punto y coma (p. eix. *.cpp;*.h):Os fichers MO no se pueden editar dreitament en o Poedit.Convertir en minusclasConvertir en mayusclasMinimizarNombre d'o prochecto pa o que ye a traducciónNombre:Siguien&t sin rematarSiguien&t sin rematarLe fa falta treballoLe fa falta treballoNo deixar que a lista de textos retienga l'enfoque. Si ista opción ye activada puet fer-se servir de conchunta con CTRL + teclas d'adreza ta mover-se por a lista de textos y prencipiar a tecliar immediatament sin pretar o tabulador ta cambiar o foco.NuevoTextos nuevosSiguient forma pluralSiguient forma pluralNo s'ha trobau coincidenciasNo s'ha puesto pretraducir garra dentrada.No s'ha trobau coincidencias.No se troba problemas en ista traducción.No bi ha referencias pa l'elemento seleccionau.No bi ha prochectos de traducción listaus en a tuya cuenta d'o Crowdin.No ye autorizau, encieta la sesión de nuevas.Notas pa os traductors:AcceptarLinias obsoletasUnActiva-lo nomás si confidas en a calidat d'a tuya MT. De traza predeterminada todas as coincidencias d'a MT se marcan como que les fa falta treballo y s'han a revisar antis de no usar-lasNo replenar que as coincidencias exactasUbrirUbrir una traducción d'o CrowdinUbrir recientUbrir un fichero PO existent y editar a suya traducción.Ubrir un catalogoUbrir una plantilla de catalogoUbrir-lo en l'editorUbrir-lo en l'editorUbrir...OpcionsUnatroAnte&rior sin rematarAnte&rior sin rematarTraducción POFichers de traducción POPlantiellas de traducción POTOs fichers POT no son que plantiellas y no contienen garra traducción en sí mesmas. Pa fer una traducción, creya un nuevo fichero PO basau en a plantiella.ApegarApegar con o mesmo estiloCarpetasEn cuenta ubre y edita o fichero PO correspondient. En que l'alces o fichero MO s'esviellará tamién.En primeras alza o fichero. Ista sección no se puet editar dica que no se faga.A expresión de formas plurals que fa servir o catalogo ye insolita pa %s.Formas plurals:Plural:PoeditPoedit - Chestor de catalogosO Poedit ha apanyau automaticament conteniu invalido en o fichero “%s”.O Poedit puet mirar de replenar as nuevas dentradas nomás dende as traduccions anteriors d'o fichero u de toda la memoria de traducción. L'uso d'a MT no será guaire efectivo si ye quasi lasa, pero amillorará contra mas traduccions se bi anyada.Poedit ye un editor de traduccions d'uso facil.PretraducirPretraduciuS'ha pretraduciu %u cadenaS'ha pretraduciu %u cadenasPretraducindo…A pretraducción mira automaticament coincidencias exactas u fuscas pa las cadenas no traducidas en a memoria de traducción y replena las suyas traduccions.PreferenciasPreferencias...Conservar o formato d'os fichers existentsAnterior forma pluralAnterior forma pluralTexto fuent anterior:Nombre d'o prochecto y versión:Nombre d'o prochecto:Prochecto:Purgar-lasPurgar as traduccions borradasSalirSalir de %sRecientReferReferencias:RefrescarEn queda: %dSubstituirCadena de substituciónFalta o capitero de formas plurals requiesto.Reenchegar-neReenchegar a memoria de traducciónEn reenchegar a memoria de traducción se borrarán todas as traduccions almagazenadas. Ista operación no se puet desfer.RevisarAlzarAlzar comoAlzar o catalogoAlzar os cambiosSeleccion&ar-lo totSeleccionar-lo totSeleccionar a carpetaSeleccionar os fichers de traducción pa importar-losSeleccionar a luenga preferidaServiciosEstablir o marcapachinas %iEstablir l'idiomaEstablir o marcapachinas %iEstablir l'idiomaMayus+Amostrar-lo totAmostrar a barra lateralAmostrar a ortografía y a gramaticaAmostrar a barra d'estauAmostrar as substitucionsAmostrar u amagar a barra lateralAmostrar a barra lateralAmostrar a barra d'estauAmostrar o resumen dimpués d'esviellar o catalogoBarra lateralEncetar a sesiónZarrar a sesiónEncetar a sesiónEncetar a sesión en o Crowdin.Zarrar a sesiónA sesión ye encetada como:Singular:Copiau y apegau intelichentGuions intelichentsVinclos intelichentsCometas intelichentsOrdenar-los por l'orden d'o ficheroOrdenar-los por l'orichenOrdenar-los por a &traducciónOrdenar-los por l'orden d'o &ficheroOrdenar-los por l'&orichenOrdenar-los por a &traducciónChuego de caracters d'o codigo fuent:Os extractors de codigo fuent se fan servir pa trobar os mensaches traducibles en os fichers de codigo fuent y extrayer-los pa permitir a suya traducción.O codigo fuent no ye disponible.Fichero fuentFichero fuent coincident:Texto fuentTexto d'orichen — %sTexto fuent:Parolas clau de fuentsRotas de fuentsParolas clau orichinalsDirectorios fuentVozS'ha desactivau a revisión ortografica porque falta o diccionario pa %s.Ortografía y gramaticaRancar a vozAturar a vozTraduccions almagazenadas:Cadena que mirarSubstitucionsSucherenciasAs sucherencias no son disponibles si l'idioma de traducción no ye correctament establiu. Atras caracteristicas, tals como as formas plurals, tamién pueden veyer-sen afectadas.Suporta totz os luengaches de programación reconoixius por as ferramientas d'o GNU gettext (PHP, C/C++, C#, Perl, Python, Java, JavaScript y atros).SincronizarSincronizar con o CrowdinSincronizar a traducción con o CrowdinA sincronización con o Crowdin ha fallau.Bi ha una error sintactica en as formas plurals d'o capitero ("%s").TMPrener un fichero PO existent u una plantilla POT y creyar una nueva traducción d'a mesma.Prener as cadenas traducibles d'una plantilla POT existent.Substitución de textoA MT no contién cadenas similars a lo conteniu d'iste fichero. Nomás ye efectivo pa las traduccions semiautomaticas dimpués que o Poedit aprenda prau de fichers que traduciés de traza manual.O fichero no se puet compilar t'o formato MO pa emplegar-se.No se puet ubrir o fichero.O fichero conteneba elementos duplicaus, ixo not ye permitiu en os fichers PO y empacharía que se fese servir o fichero. O Poedit ha apanyau o problema pero s'ha a revisar as traduccions de qualsiquier elemento marcau como que le fa falta treballo y correchir-lo si ye menister.O fichero puet estar danyau u en un formato no reconoixiu por o Poedit.O fichero s'ha compilau t'o formato MO pero prebablement no funcionará correctament.O fichero s'ha alzau de traza segura y s'ha compilau t'o formato MO pero prebablement no marche correctament.O fichero s'ha alzau pero no puet compilar-se t'o formato MO ni usar-se.O fichero s'ha alzau de traza segura.O texto viello d'orichen (antis que no cambiase mientras bella actualización) con que corresponde a traducción imprecisa d'agora.A traza mas simpla pa emplir iste catalogo ye esviellar-lo dende un POT:A traducción ye presta pa usar-se, pero %d dentrada ye encara sin traducir.A traducción ye presta pa usar-se, pero %d dentradas son encara sin traducir.A traducción ye presta pa usar-se.S'ha marcau as traduccions como que les fa falta treballo porque pueden estar imprecisas. Has a revisar-las pa correchir-las.No bi ha garra traducción. Ixo ye insolito.S'ha produciu un problema en dar formato correctament a lo fichero (pero ye estau bien alzau).S'ha produciu errors en leyer o catalogo. Puet que qualques datos se troben danyaus u ausents.Istas valors afectan o formato interno d'os fichers PO. Achusta-los si tiens requisitos especificos; por eixemplo, a causa d'o control de versión.Istos textos ya no se troban en os fichers fuent. O Poedit los eliminará d'o catalogo.Istos textos amaneixen en os fichers fuent, pero no son en o catalogo. O Poedit los adhibirá agora a lo catalogo.Iste fichero nomás puet editar-se en a interficie web d'o Crowdin.Iste comando se fa servir ta ubrir l'extractor. %u expande o nombre d'o fichero de salida, %K amuestra as parolas clau, %F enlista os fichers de dentrada y %C define o conchunto de caracters (vei abaixo).Iste prochecto no tien fichers que se pueda traducir en o Poedit.Ista cadena s'ha trobau en as traduccions memorizadas d'o Poedit.S'adhibirá a la linia de comandos nomás si se proporciona o codigo d'o chuego de caracters fuent. %c contién a valura d'o chuego de caracters.S'adhibirá a la linia de comandos una vegada por cada fichero de dentrada. %f contién o nombre de fichero.S'adhibirá a la linia de comandos una vegada por cada parola clau. %k contién a parola clau.TotalTransformacionsTraduciu: %d de %d (%d %%)Idioma d'a traducciónTraduccions memorizadasA la traducción le fa falta &treballoPropiedatz de traducciónA la traducción le fa falta &treballoPropiedatz de traducciónSucherencias de traducción:Traducción — %sTraducción:No s'ha puesto esviellar as traduccions a partir d'o codigo fuent porque no s'ha trobau o codigo en a ubicación especificada en as propiedatz d'o catalogo.DosUTF-8 (recomendau)DesferS'ha produciu una error no maniada: %sUnix (recomendau)Sin traducirAltoEsviellar-loEsviellar-lo totEsviellar totz os catalogos d'o prochectoEsviellar o catalogo, sincronizar-lo con as fuentsEsviellar-lo dende un fichero POTResumen de l'actualizaciónActualizacionsSe ye esviellando lo catalogoL'actualización ha fallauL'actualización d'o catalogo ha fallau. Preta en Detalles>> pa mas información.Se ye esviellando a información de l'usuario…Se ye puyando as traduccions…Emplegar una expresión personalizadaFer servir una fuent personalizada t'as listas:Fer servir una fuent personalizada pa os quadros de texto:Fer servir os regles predeterminaus pa iste idiomaFer servir istas parolas clau (nombres de funcions) pa reconoixer textos traducibles en fichers fuent, amás d'as parolas clau por defecto:Fer servir a memoria de traducciónValidarResultaus d'a validaciónVersión %sSe ye asperando l'autenticación…Bienveniu en o PoeditQué ye o Crowdin?En esviellar-lo dende as fuentsNomás as parolas completasFinestraWindowsEmbolicau arredolAchustar-lo en:SíPuetz tamién extrayer cadenas traduciblesdreitament dende o codigo fuent:Cal reenchegar o Poedit ta que os cambeos tiengan efecto.O tuyo nombreO tuyo nombre y l'adreza de correu electronico no s'emplegan que ta establir o capitero de zaguer traductor d'os fichers GNU gettext.ZeroEnamplaraltctrlp. eix. nplurals=2; plural=(n > 1);Coincidencia fusca adintro d'o ficheromaniar un poedit:// URIpretraducir dende a MTmayusidioma desconoixiuo_tuyo_correu@eixemplo.compoedit-2.0.6/locales/ms.mo0000664000372000037200000013445113230132042012320 00000000000000H\$0 0 01<1Q1Jd1g1 2!2 02:2 A2O2V2 \2g2o2v2}222222222222333!3)3;3M3Q3 U3 b3o3x33 333333344$4-434<4M4^4d444444444525J5a5 5:5:5 6 66 6 )666E6 U6a6 {666666667<7 R71_77'777 78786>8u8)88 8]8-9A@9I99999"9 : (:3:.;:j:}::::::::;#.;R;g;v;|;;;;(;(; < %<F<O< `<n</< <<<<<==2<=o==== ==v>|>>>>>>>> >> ?E ?"f??? ??*? @!@4@K9@"@5@@@@ @ A A%A8A KA XAeAvA~AAAA.AhA=BWBuqB,BC'C>CSC ZCeC tCC#C<C"CD *D5D*HD!sD!D'DDD'ET+EE EE E EEEEE F F F %F2FAFPFXF aFmFuFF FFF F FFFFF GGG GH H H$H")H;LH(HHHH H HI%I 9IDI]IzII III:I J<J.VJJJJJJ*J KK"K3KKK L %L1LBLSLVL#gLL'L$L7L$!M%FMlMMMMM.NINNNgN |N2N NNNNOOO!O)O/ODOYOhO}OO(P.PDPnJPEPP>Q EQSQ[QbQ@|QQ-RR RS2SCS VSbSqS%SSSSS TTTT8T=TETLT QT]T eTsT {T TT T(TTTzTvU}UU U UU U U U U UU"UV7V@V PV]V mVzVV VVVVV VV! W,W4WoHBo5o7o o3pa7ppppp.p ppq8qOqeqkq|q!qqsss!ss$s2s 2t ;{"z{0{{ {s{W|Bm|M||}}})}$G}l}~}/}}}}}} ~~-~M~i~"~~ ~~~~~. .:i&1 "-3Je|6 %; Xf.@ Ghn @ÂK ky6 ƒЃX"@7c ̈́ ل    '2:AG Yz7'( .9M`$x=0ۇ #//B$r$(#a% щ  + 8EU eo u Š ˊ ׊ ,/ Ջ.5DL"U2x#ό #=W$l""׍$+40e;t.ߎ! 7#Dhngl ̐#*+@"lF'֑-,DGV[ &+C X e ϓ 0>Qh #b*FԕLڕ '5<CK]5ɗ +D Z d q#~ޘ "'AHW _k t 4ƙ! - Ś˚Қ( 9 FR#b ț؛ %ARd0Ҝ ۜ  )AIR e s ֝.Ğ ܞ  , >L ]k@r ȟ֟  5='T | С2$E'?m& Ԣ:rʤJХduh_d}T(7I`BM9;2uF!*,<0i1C̪)P:XPmc]"3F;Ϯs fgN U%`"α߱ & Ʋ+в" %/$?/d̳߳ @&!g մ(^~ ص$' 9CK \hNkL? G8Rg1 8Y.rԸڸ %>vC W58<*{- g' E#F& c~suD!4HXP#Gv5ddt:3'K,/^PE?>k+jG9-RTZMtm|f/4 ^b 9s1)A &&<EBYM>!)Ih4+/2n a{.)l0j\?@A@l70(V7FyU8 K.f%3\8W_wqJ0=BS < *2*7e}mV.gFR9 C$%kL2w`HN1;e ~,=UQ']#}i;;3"  !1X?[Y]xLc@"DBp|,rOxNpqz_abioZ(r` $TJ :-Ao6IO=(6+QnuyzCS6"$ H[hD5:G (modified) (unsaved)%d entry%d entries%d entry was pre-translated.%d entries were pre-translated.%d error%d errors%d issue with the translation found.%d issues with the translation found.%i line of file “%s” was not loaded correctly.%i lines of file “%s” were not loaded correctly.%s Format%s Preferences%s format&About&About Poedit&Apply&Back&Bookmarks&Cancel&Clear&Close&Copy&Delete&Done and Next&Done and next&Edit&File&Find…&GNU gettext Manual&GNU gettext manual&Go&Group By Context&Group by context&Help&New&New…&Next >&Next Translation&Next translation&No&OK&Online Help&Online help&Open...&Open…&Paste&Preferences&Preferences…&Previous Translation&Previous translation&Properties…&Purge Deleted Translations&Purge deleted translations&Quit&Redo&Replace&Save&Save as&Show References&Show references&Undo&Untranslated Entries First&Untranslated entries first&Update from Sources&Update from sources&Validate Translations&Validate translations&View&Yes(0 new, 0 obsolete)(Learn more about GNU gettext)(New: %i, obsolete: %i)(Use default language)(requires Windows 8 or newer)< &PreviousDrag and Drop Folders Here or use the + buttonDrag and drop folders here or use the + buttonAbout %sAccountsAdd CommentAdd Files…Add Folders…Add Wildcard…Add commentAdd directory to the listAdd files…Add folders…Add wildcard…Additional keywordsAdditional xgettext flags:AdvancedAdvanced Extraction Settings…Advanced extraction settingsAdvanced extraction settings…All Translation FilesAll commentsAlso use default keywords for supported languagesAlt+Always change focus to text input fieldAn item in input files list:An item in keywords list:AppearanceApplyAre you sure you want to delete the “%s” extractor?Are you sure you want to reset the translation memory?Automatically check for updatesAutomatically compile MO file when savingBackBase path:Beta versions contain the latest new features and improvements, but may be a bit less stable.Bring All to FrontBroken catalog file: plural form msgstr used without msgid_pluralBroken catalog file: singular form msgstr used together with msgid_pluralBrowseC&atalogC&learCancelCannot create temporary directory.Cannot execute program: %sCapitalizeCatalogCatalog modified. Do you want to save changes?Catalog propertiesCatalogs &ManagerCatalogs &managerCatalogs ManagerChange UI languageCharset:Check Document NowCheck Grammar With SpellingCheck Spelling While TypingCheck for Updates…Check for errors in the translationCheck for updates…Check spellingClearClear TranslationClear the commentClear translationCloseCollaborate on a Translation with OthersCollaborate on a translation with othersCollecting source files…Command to extract translations:Comment:Compile to MO…Compile to…Compiled Translation FilesConfigure source code extraction in Properties.ConfirmationCopyCopy From SingularCopy from Source TextCopy from singularCopy from source textCorrect Spelling AutomaticallyCouldn’t load file %s, it is probably corrupted.Couldn’t save file %s.Create New TranslationCreate new translationCreate new translations projectCrowdin errorCrowdin is an online localization management platform and collaborative translation tool. Poedit can seamlessly sync PO files managed at Crowdin.Ctrl+Cu&tCustom Extractors:Custom extractors:CutDatabase size on disk:DeleteDelete extractorDelete the projectDirectories:Display Entry &IDsDisplay entry &IDsDo you really want to do mass update of all catalogs in this project?Do you want to delete the project?Do you want to remove all translations that are no longer used?Don’t SaveDon’t Show AgainDon’t mark exact matches as needing workDon’t saveDon’t show againDownDownload a file from Crowdin project, translate and sync your changes back.Downloading latest translations…Downloading translations is disabled in this project.E&xitE&xport as HTML…EditEdit &CommentEdit &commentEdit CommentEdit a TranslationEdit a translationEdit commentEdit projectEdit the projectEditingEdit…Email:EnterEnter Full ScreenEntries in the catalog are probably incorrect.Entries in this catalog have different plural forms count from what catalog’s Plural-Forms header saysEntries with Errors FirstEntries with errors firstEntries with errors were marked in red in the list. Details of the error will be shown when you select such an entry.Error loading message catalog file “%s”.Error opening fileError opening file %s!Error saving catalogErrorsEverythingExcluded pathsExport as…Extract from sourcesExtract notes for translators from:Extract text from source files in the following directories:Extracting translatable strings…Extractor setupExtractorsFailed command: %sFailed to communicate with Poedit process.Failed to load extracted catalog.Failed to merge gettext catalogs.Failed to update translation memory: %sFileFile “%s” doesn’t exist.File “%s” is not a message catalog.File “%s” is read-only and cannot be saved. Please save it under different name.File:Finalizing…FindFind NextFind PreviousFind and Replace…Find in commentsFind in source textsFind in translationsFind nextFind previousFix LanguageFix languageFix the HeaderFix the headerForm %iFrequentGNU gettextGeneralGo to Bookmark %iGo to bookmark %iHTML FilesHelpHide %sHide OthersHide SidebarHide Status BarHide this notification messageIDIf you continue with purging, all translations marked as deleted will be permanently removed. You will have to translate them again if they are added back in the future.Ignore caseImporting translations…Include beta versionsInformation about the translatorInstallInvalid fileInvocation:KeepLanguage Code or Name (e.g. en_GB)Language of the translation is the same as source language.Language of the translation isn’t set.Language of the translation:Language selectionLanguage team:Language:Last modifiedLearn About Gettext KeywordsLearn From Files…Learn MoreLearn More About CrowdinLearn about gettext keywordsLearn about plural formsLearn from files…Learn moreLearn more about CrowdinLeftLine %d of file “%s” is corrupted (not valid %s data).Line endings:List of extensions separated by semicolons (e.g. *.cpp;*.h):MO files can’t be directly edited in Poedit.Make Lower CaseMake Upper CaseMalformed header: “%s”Merging differences…MinimizeName of the project the translation is forName:Ne&xt UnfinishedNe&xt unfinishedNever let the list of strings take focus. If enabled, you must use Ctrl-arrows for keyboard navigation but you can also type text immediately, without having to press Tab to change focus.NewNew From &POT/PO File…New from &POT/PO file…New stringsNext Plural FormNext plural formNoNo Matches FoundNo entries could be pre-translated.No matches foundNo problems with the translation found.No references for the selected item.No translation projects listed in your Crowdin account.Not all plural forms are translated.Not authorized, please sign in again.Notes for translators:OKObsolete stringsOneOnly enable if you trust the quality of your TM. By default, all matches from the TM are marked as needing work and should be reviewed before use.Only fill in exact matchesOpenOpen Crowdin translationOpen From Crowdin…Open RecentOpen an existing PO file and edit the translation.Open catalogOpen catalog templateOpen from Crowdin…Open in EditorOpen in editorOpen...Open…OptionsOtherP&revious UnfinishedP&revious unfinishedPO TranslationPO Translation FilesPOT Translation TemplatesPOT files are only templates and don’t contain any translations themselves. To make a translation, create a new PO file based on the template.PastePaste and Match StylePathsPlease open and edit the corresponding PO file instead. When you save it, the MO file will be updated as well.Please save the file first. This section cannot be edited until then.PluralPlural forms expression used by the catalog is unusual for %s.Plural forms:Plural:PoeditPoedit - Catalogs managerPoedit automatically fixed invalid content in the file “%s”.Poedit can attempt to fill in new entries from only previous translations in the file or from your entire translation memory. Using the TM won’t be very effective if it’s near-empty, but it will get better as you add more translations to it.Poedit is an easy to use translations editor.Pre-&translate…Pre-translatePre-translatedPre-translated %u stringPre-translated %u stringsPre-translating…PreferencesPreferences...Preferences…Preserve formatting of existing filesPrevious Plural FormPrevious plural formPrevious source text:Project name and version:Project name:Project:PurgePurge deleted translationsQuitQuit %sRecentRedoReferences:RefreshRemaining: %dReplaceReplace &AllReplace &allReplacement stringReplace…Required header Plural-Forms is missing.ResetReset translation memoryResetting the translation memory will irrevocably delete all stored translations from it. You can’t undo this operation.ReviewRightSaveSave &As…Save &as…Save asSave as…Save catalogSave changesSelect &AllSelect AllSelect directorySelect translation files to importSelect your preferred languageServicesSet Bookmark %iSet LanguageSet bookmark %iSet languageShift+Show AllShow SidebarShow Spelling and GrammarShow Status BarShow SubstitutionsShow or hide the sidebarShow sidebarShow status barShow summary after catalog updateSidebarSign InSign OutSign inSign in to CrowdinSign outSigned in as:SingularSingular:Smart Copy/PasteSmart DashesSmart LinksSmart QuotesSort by &File OrderSort by &SourceSort by &TranslationSort by &file orderSort by &sourceSort by &translationSource code charset:Source code extractors are used to find translatable strings in the source code files and extract them so that they can be translated.Source code not available.Source fileSource file occurrence:Source textSource text — %sSource text:Sources KeywordsSources PathsSources keywordsSources pathsSpeechSpellchecking is disabled, because the dictionary for %s isn’t installed.Spelling and GrammarStart SpeakingStop SpeakingStored translations:String to findSubstitutionsSuggestionsSuggestions are not available if the translation language is not set correctly. Other features, such as plural forms, may be affected as well.Supports all programming languages recognized by GNU gettext tools (PHP, C/C++, C#, Perl, Python, Java, JavaScript and others).SyncSync with CrowdinSynchronize the translation with CrowdinSyncingSyncing errorSyncing with %s failed.Syncing with %s…Syncing with Crowdin failed.Syntax error in Plural-Forms header ("%s").TMTake an existing PO file or POT template and create a new translation from it.Take translatable strings from an existing POT template.Team name and email address or URLText ReplacementThe TM doesn’t contain any strings similar to the content of this file. It is only effective for semi-automatic translations after Poedit learns enough from files that you translated manually.The catalog couldn’t be saved in “%s” charset as specified in catalog settings. It was saved in UTF-8 instead and the setting was modified accordingly.The file cannot be compiled into the MO format and used.The file cannot be opened.The file contained duplicate items, which is not allowed in PO files and would prevent the file from being used. Poedit fixed the issue, but you should review translations of any items marked as needing work and correct them if necessary.The file may be either corrupted or in a format not recognized by Poedit.The file was compiled into the MO format, but it will probably not work correctly.The file was saved safely and compiled into the MO format, but it will probably not work correctly.The file was saved safely, but it cannot be compiled into the MO format and used.The file was saved safely.The old source text (before it changed during an update) that the now-inaccurate translation corresponds to.The simplest way to fill this catalog is to update it from a POT:The translation doesn’t start with a space.The translation ends with a newline, but the source text doesn’t.The translation ends with a space, but the source text doesn’t.The translation ends with “%s”, but the source text ends with “%s”.The translation is missing a newline at the end.The translation is missing a space at the end.The translation is ready for use, but %d entry is not translated yet.The translation is ready for use, but %d entries are not translated yet.The translation is ready for use.The translation should end with “%s”.The translation should not end with “%s”.The translation should start as a sentence.The translation should start with a lowercase character.The translation starts with a space, but the source text doesn’t.There are no translations. That’s unusual.There was a problem formatting the file nicely (but it was saved all right).There were errors when loading the catalog. Some data may be missing or corrupted as the result.These settings affect internal formatting of PO files. Adjust them if you have specific requirements e.g. because of version control.These strings are no longer in the sources. Poedit will remove them from the catalog now.These strings were found in the sources but were not in the catalog. Poedit will add them to the catalog now.This catalog has entries with plural forms, but doesn’t have Plural-Forms header configured.This file can only be edited in Crowdin’s web interface.This is the command used to launch the extractor. %o expands to the name of output file, %K to list of keywords, %F to list of input files, %C to charset flag (see below).This project has no files that can be translated in Poedit.This string was found in Poedit’s translation memory.This will be attached to the command line only if source code charset was given. %c expands to charset value.This will be attached to the command line once for each input file. %f expands to the filename.This will be attached to the command line once for each keyword. %k expands to the keyword.TotalTransformationsTranslatable entries aren’t added manually in the Gettext system, but are automatically extracted from source code. This way, they stay up to date and accurate. Translators typically use PO template files (POTs) prepared for them by the developer.Translated: %d of %d (%d %%)Translation LanguageTranslation MemoryTranslation PropertiesTranslation propertiesTranslation suggestions:Translation — %sTranslation:Translations couldn’t be updated from the source code, because no code was found in the location specified in the catalog’s Properties.TwoUTF-8 (recommended)UndoUnhandled exception occurred: %sUnix (recommended)UntransUpUpdateUpdate allUpdate all catalogs in the projectUpdate catalog - synchronize it with sourcesUpdate from &POT File…Update from &POT file…Update from POTUpdate summaryUpdatesUpdating catalogUpdating failedUpdating the catalog failed. Click on 'Details >>' for details.Updating user information…Uploading translations…Use custom expressionUse custom list font:Use custom text fields font:Use default rules for this languageUse these keywords (function names) to recognize translatable strings in source files:Use translation memoryValidateValidation resultsVersion %sWaiting for authentication…Welcome to PoeditWhat is Crowdin?When updating from sourcesWhole words onlyWindowWindowsWrap aroundWrap at:YesYou can also extract translatable strings directly from the source code:You can’t drop more than one file on Poedit window.You must restart Poedit for this change to take effect.Your NameYour changes will be lost if you don’t save them.Your name and email address are only used to set the Last-Translator header of GNU gettext files.ZeroZoomaltctrldon’t delete temporary files (for debugging)e.g. nplurals=2; plural=(n > 1);fuzzy match within the filego to item at given line numberhandle a poedit:// URIpre-translate from TMshiftunknown languageyour_email@example.com“%s” is not a valid POT file.Project-Id-Version: poedit Report-Msgid-Bugs-To: help@poedit.net POT-Creation-Date: 2018-01-18 13:57+0100 PO-Revision-Date: 2018-01-18 07:57-0500 Last-Translator: vslavik Language-Team: Malay Language: ms_MY MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=1; plural=0; X-Generator: crowdin.com X-Crowdin-Project: poedit X-Crowdin-Language: ms X-Crowdin-File: /locales/poedit.pot (diubah suai) (tidak disimpan)%d entriMasukan %d adalah dipra-terjemah.%d ralat%d isu berkaitan terjemahan ditemui.barisan %i fail "%s" tidak dimuatkan dengan betul.Format %s%s Keutamaanformat%s&Mengenai&Mengenai Poedit&Gunakan&Kembali&Penanda Buku&Batal&Buang&Tutup&Salin&Padam&Selesai dan Seterusnya&Selesai dan seterusnya&Edit&Fail&Cari…Manual &GNU gettextManual &GNU gettext&Pergi&Kumpulkan Melalui Konteks&Kumpulan melalui konteks&Bantuan&Baru&Baru…&Seterusnya >&Terjemahan Seterusnya&Terjemahan seterusnya&Tidak&OK&Bantuan dalam talian&Bantuan dalam talian&Buka...&Buka…&Tampal&Keutamaan&Keutamaan…&Terjemahan Sebelumnya&Terjemahan sebelumnya&Ciri-ciri…&Singkirkan Terjemahan Dihapus&Singkirkan terjemahan dihapus&Keluar&Buat Semula&Ganti&Simpan&Simpan sebagai&Tunjuk Rujukan&Tunjuk rujukan&Buat Asal&Masukan Belum Diterjemah Terlebih Dahulu&Masukan tidak diterjemah terlebih dahulu&Kemas kini dari Sumber&Kemas kini dari sumber&Sahkan Terjemahan&Sahkan terjemahan&Pandangan&Ya(0 baru, 0 usang)(Ketahui lebih lanjut mengenai GNU gettext)(Baru: %i, usang: %i)(Guna bahasa lalai)(memerlukan Windows 8 atau lebih baru)< &SebelumnyaTarik dan Lepas Folder Di sini atau gunakan butang +Tarik dan lepas folder di sini atau gunakan butang +Mengenai %sAkaunTambah KomenTambah Fail…Tambah Folder…Tambah Kad bebas…Tambah komenTambah direktori pada senaraiTambah fail…Tambah folder…Tambah kad bebas…Kata kunci tambahanBendera xgettext tambahan:LanjutanTetapan Pengekstrakan Lanjutan…Tetapan pengekstrakan lanjutanTetapan pengekstrakan lanjutan…Sunting fail terjemahan SLUDGESemua komenGunakan juga kata kunci lalai untuk bahasa yang disokongAlt+Sentiasa ubah fokus ke medan input teksItem dalam fail senarai masukan:Item dalam senarai kata kunci:PenampilanGunakanAdakah anda pasti anda mahu menghapus extractor "%s"?Adakah anda pasti anda mahu mengeset semula memori terjemahan?Periksa kemaskini secara automatikKumpul fail MO secara automatik semasa menyimpanKembaliLaluan asas:Versi beta mengandungi ciri-ciri dan penambahbaikan baru yang terbaru, tetapi berkemungkinan kurang stabil sedikit.Bawa Semua ke HadapanFail katalog rosak: kata jamak msgstr digunakan tanpa msgid_pluralFail katalog rosak: kata tunggal msgstr digunakan bersama dengan msgid_pluralLungsurK&atalog&LapangBatalTidak dapat mencipta direktori sementara.Tidak dapat melaksanakan program: %sPenghuruf besaranKatalogKatalog diubah. Anda ingin menyimpan perubahan?Ciri-ciri katalog&Pengurus Katalog&Pegurus katalogPengurus KatalogUbah bahasa UICharset:Periksa Dokumen SekarangPeriksa Tatabahasa Dengan EjaanPeriksa Ejaan Ketika MenaipMenyemak kemas kini…Periksa kesalahan dalam terjemahanSemak kemas kini…Periksa ejaanBuangLapangkan TerjemahanLapangkan komenLapangkan terjemahanTutupBekerjasama dalam Terjemahan dengan Orang lainBekerjasama dalam terjemahan dengan orang lainMengumpul fail sumber...Perintah untuk mengekstrak terjemahan:Komen:Kompil ke MO…Kumpulkan untuk…Fail-fail Terjemahan DisusunKonfigur pengekstrakan kod sumber pada Ciri-ciri.PengesahanSalinSalin Daripada TunggalSalin daripada Sumber TeksSalin daripada tunggalSalin daripada Sumber TeksBetulkan Ejaan Secara AutomatikTidak dapat memuatkan fail %s, ia mungkin telah rosak.Tidak dapat menyimpan fail %s.Cipta Terjemahan BaharuCipta terjemahan baruCipta projek terjemahan baruCrowdin ralatCrowdin adalah platform pengurusan lokalisasi dalam talian dan alat terjemahan kolaboratif. Poedit boleh menyelaraskan fail PO yang diuruskan di Crowdin dengan lancar.Ctrl+Poton&gPengekstrak Khas:Pengekstrak khas:PotongSaiz pangkalan data pada cakera:PadamHapuskan pengekstrakPadam projekDirektori:Paparan &ID MasukanPaparan &ID masukanAnda ingin melakukan mengemaskinian menyeluruh semua projek ini?Anda ingin memadam projek?Adakah anda ingin menyingkirkan semua terjemahan yang tidak digunakan lagi?Jangan simpanJangan Papar LagiJangan tandakan padanan tepat sebagai perlu dikerjakanJangan simpanJangan papar lagiDownMuat turun fail daripada projek Crowdin, terjemah dan segerakkan perubahan anda kembali.Memuat turun terjemahan terbaru…Memuat turun terjemahan dinyahdayakan dalam projek ini.K&eluarE&ksport sebagai HTML…EditEdit &KomenEdit &komenEdit KomenEdit TerjemahanEdit terjemahanEdit komenEdit projekEdit projekMenyuntingEdit…E-mel:EnterMasuk Skrin PenuhMasukan di katalog mungkin salahMasukan dalam katalog ini memiliki bentuk bilangan jamak yang berbeza daripada yang disebut dalam katalog pengepala Bentuk-JamakKemasukan dengan Ralat DahuluKemasukan dengan ralat dahuluMasukan memiliki ralat yang ditanda dengan merah dalam senarai. PErincian ralat akan ditunjukkan ketika anda memilih masukan tersebut.Ralat memuat fail katalog mesej '%s”.Ralat membuka failRalat membuka fail %s!Ralat menyimpan katalogRalatKesemuanyaLaluan DikecualikanEksport sebagai…Ekstrak daripada sumberEkstrak nota untuk penterjemah dari:Ekstrak teks daripada fail sumber di dalam direktori berikut:Mengekstrak rentetan yang boleh diterjemahkan…Persediaan pengekstrakPengekstrakPerintah gagal: %sGagal untuk berkomunikasi dengan proses Poedit.Gagal memuat katalog yang diekstrak.Gagal menggabungkan katalog gettext.Gagal mengemaskini memori terjemahan: %sFailFail "%s" tidak wujud.Fail "%s" bukan dari katalog mesej.Fail "%s" adalah baca sahaja dan tidak boleh disimpan. Sila simpan ia di bawah nama yang berbeza.Fail:Menyelesaikan…CariCari BerikutCari TerdahuluCari dan Ganti…Cari dalam komenCari dalam teks sumberCari dalam terjemahanCari berikutCari terdahuluBaiki BahasaBaiki bahasaBaiki PengepalaBaiki pengepalaBorang %iKerapGNU gettextUmumPergi ke Penanda buku %iPergi ke penanda buku %iFail HTMLSokonganSembunyi %sSembunyi LainSembunyi Bar sisiSembunyi Bar StatusSembunyi mesej pemberitahuan iniIDAnda ingin meneruskan pengusiran, semua terjemahan akan kekal ditanda sebagai dihapus. Anda perlu menterjemahkannya semula jika ianya kembali pada masa akan datang. Abaikan hurufMengimport terjemahan…Termasuk versi betaMaklumat mengenai penterjemahPasangFail tidak sahSeruan:KekalkanKod atau Nama Bahasa (cth. ms_MY) Bahasa Inggeris adalah sama sebagai bahasa sumber.Bahasa terjemahan tidak ditetapkan.Bahasa terjemahan:Pilihan bahasaPasukan bahasa:Bahasa:Terakhir diubahPelajari Perihal Kata Kunci GettextPelajari Daripada Fail…Ketahui Lebih LanjutKetahui Lebih Lanjut Tentang CrowdinPelajari perihal katakunci gettextPelajari perihal bentuk kata jamakPelajari daripada fail…Ketahui lebih lanjutKetahui lebih lanjut tentang CrowdinKiriBaris %d fail "%s" adalah rosak (data %s tidak sah).Garis penamat:Senarai sambungan dipisah oleh tanda ; (contoh: *.cpp,*.h):Fail MO tidak boleh diedit terus dalam Poedit.Jadikan Huruf KecilJadikan Huruf BesarPengepala cacat: “%s”Gabungan perbezaan...MeminimumkanNama projek terjemahan adalah untukNama:&Selepasnya yang Tidak Selesai&Selepasnya yang tidak selesaiJangan biarkan senarai rentetan mengambil fokus. Jika diaktifkan, anda perlu gunakan Ctrl-panah untuk navigasi bahkan boleh terus menaip teks, tanpa perlu menekan Tab untuk megubah fokusBaruBaru Dari Fail &POT/PO…Baru dari fail &POT/PO…Rentetan baruBentuk majmuk yang seterusnyaBentuk majmuk yang seterusnyaTidakTiada Padanan DitemuiTiada masukan boleh dipra-terjemah.Tiada padanan ditemuiTiada masalah berkaitan terjemahan ditemui.Tiada rujukan untuk item terpilih.Tiada projek penterjemahan yang disenaraikan dalam akaun Crowdin anda.Tidak semua bentuk jamak diterjemahkan.Tidak dibenarkan, sila log masuk sekali lagi.Nota untuk penterjemah:OKRentetan usangSatuDayakan hanya jika anda mempercayai kualiti TM anda. Secara lalai, semua padanan daripada TM yang ditandakan sebagai perlu dikerjakan dan hendaklah disemak sebelum digunakan.Hanya masukkan padanan samaBukaBuka terjemahan CrowdinBuka dari Crowdin…Buka TerbaruBuka dan edit fail PO sedia ada.Buka katalogBuka templat katalogBuka dari Crowdin…Buka Dalam EditorBuka Dalam editorBuka...Buka…PilihanLainTe&rdahulu Tidak SelesaiTe&rdahulu tidak selesaiTerjemahan POFail Terjemahan POTemplat Terjemahan POTFail POT hanya template dan tidak mengandungi sebarang terjemahan sendiri. Untuk membuat terjemahan, anda perlu membuat fail PO baru berdasarkan template.TampalTampal dan Padankan GayaLaluanSila buka dan edit fail PO yang sepadan. Apabila anda menyimpannya, fail MO akan dikemaskini juga.Sila simpan fail dahulu. Seksyen ini tidak boleh diedit buat masa ini.JamakBentuk ungkapan kata jamak yang digunakan oleh katalog untuk %s luar biasa. Bentuk jamak:Jamak:PoeditPoedit - Pengurus KatalogPoedit secara automatik tetapkan kandungan yang tidak sah dalam fail "% s".Poedit boleh mencuba untuk mengisi masukan baru hanya daripada terjemanah sebelumnya dalam fail atau dari memori terjemahan keseluruhan anda. Penggunaan TM tidak sangat efektif apabila ia hampir kosong, tetapi ia akan bertambah baik apabila anda mebambah lebih banyak terjemahan padanya.Poedit adalah editor terjemahan yang mudah digunakan.Pra-terjemah…Pra-terjemahPra-diterjemahPra-terjemah %u rentetanPra-menterjemahkan…KeutamaanKeutamaan...Keutamaan…Pelihara pemformatan fail sedia adaBentuk majmuk yang sebelumnyaBentuk majmuk yang sebelumnyaTeks sumber sebelumnya:Nama Projek dan versi :Nama ProjekProjek:Usir&Hapus terjemahan dipadamKeluarKeluar dari %sTerbaruBuat semulaRujukan:Segar semulaBaki: %dGantiGanti &SemuaGanti &semuaRentetan penggantiGanti…Pengepala Bentuk-Jamak yang diperlukan telah hilang.Tetapkan semulaTetapkan semula memori terjemahanMengeset semula memori terjemahan tidak akan memadam semua terjemahan yang disimpan daripadanya. Anda tidak dapat membuat asal operasi ini.Kaji semulaKananSimpanSimpan &Sebagai…Simpan &sebagai…Simpan sebagaiSimpan sebagai…Simpan katalogSimpan perubahanPilih &SemuaPilih SemuaPilih direktoriPlih fail terjemahan untuk diimportPilih bahasa keutamaan andaPerkhidmatanTetapkan Penanda buku %iTetapkan BahasaTetapkan penanda buku %iTetapkan bahasa Shift+Tunjuk SemuaPapar Bar sisiTunjuk Ejaan dan TatabahasaPapar Bar StatusTunjuk PertukaranPapar atau sembunyi bar sisiPapar bar sisiPapar bar statusPerlihatkan rumusan selepas mengemaskini katalogBar sisiDaftar MasukDaftar KeluarDaftar masukDaftar masuk ke CrowdinDaftar keluarDidaftar masuk sebagai:TunggalTunggal:Salin/Tampan BijakSempang BijakPautan BijakPetikan BijakSusun dengan Urutan &FailSusun dengan &SumberSusun dengan &TerjemahanSusun urutan &failSusun dengan &sumberSusun dengan &terjemahanSet aksara kod sumber:Pengekstrak kod sumber digunakan untuk mencari rentetan yang boleh diterjemah dalam fail kod sumber dan mengekstraknya supaya ia boleh diterjemahkan.Kod sumber tidak wujud.Fail sumberBerlakunya fail sumber:Teks sumberSumber teks — %sTeks sumber:Kata kunci SumberLaluan SumberKatakunci sumberLaluan sumberUcapanSemakan ejaan dilumpuhkan, kerana kamus untuk %s tidak dipasang.Ejaan dan TatabahasaMula BercakapHenti BercakapTerjemahan tersimpan:Rentetan dicariPenggantianCadanganCadangan tidak disediakan jika Bahasa terjemahan tidak diset dengan betul. Ciri-ciri lain, seperti bentuk majmuk, mungkin terjejas juga.Menyokong semua bahasa pengaturcaraan yang diiktiraf oleh alat gettext GNU (PHP, C/C++, C#, Perl, Python, Java, JavaScript dan sebagainya).SegerakSelaras dengan CrowdinMenyegerakkan terjemahan dengan CrowdinMenyegerakRalat penyegerakanPenyegerakan dengan %s gagal.Menyegerak dengan %s...Menyelaras dengan Crowdin gagal.Rakat sintaks dalam pengepala Bentuk-Jamak ("%s").MTAmbil fail PO atau templat POT dan cipta terjemahan baru daripadanya.Ambil rentetan boleh diterjemah daripada templat POT sedia ada.Nama pasukan dan alamat e-mel atau URLGantian TeksTM tidak mengandungi sebarang rentetan yang sama dengan kandungan fail ini. Ianya hanya berkesan untuk terjemahan separa-automatik selepas Poedit belajar dengan cukup dari fail yang anda terjemahkan secara manual.Katalog tidak dapat disimpan dalam "%s" charset sebagaimana yang dinyatakan dalam penetapan katalog. Ia sebaliknya disimpan dalam UTF-8 dan penetapan telah ditukarkan dengan sewajarnya.Fail tidak boleh disusun ke dalam format MO dan digunakan.Fail ini tidak dapat dibuka.Fail mengandungi item salinan, yang tidak dibenarkan dalam fail PO dan akan menghalang fail itu daripada digunakan. Poedit baiki isu ini, tetapi anda perlu menyemak terjemahan mana-mana item yang ditanda sebagai memerlukan kerja dan membetulkan item jika perlu.Fail ini sama ada rosak atau dalam format yang tidak dikenali oleh Poedit.Fail tersebut telah disusun ke dalam format MO, tetapi ia mungkin tidak akan berfungsi dengan betul.Fail disimpan dengan selamat dan dikumpulkan ke dalam format MO, tetapi ia mungkin tidak akan berfungsi dengan betul.Fail telah disimpan dengan selamat, tetapi ianya tidak dapat dikompil kepada format MO serta digunakan. Fail disimpan dengan selamat.Sumber teks lama(sebelum ditukar semasa kemas kini) yang berpadanan terjemahan tidak tepat-sekarang.Cara paling mudah untuk mengisi katalog ini adalah dengan mengemaskini daripada POT:Terjemahan tidak dimulakan dengan ruang.Terjemahan berakhir dengan barisan baru, tetapi tidak dengan teks sumber.Terjemahan berakhir dengan ruang, tetapi tidak dengan teks sumber.Terjemahan itu berakhir dengan "%s", tetapi teks sumber berakhir dengan "%s".Terjemahan tidak mempunyai barisan baru pada pengakhiran.Terjemahan tidak mempunyai ruang pada pengakhiran.Terjemahan sedia untuk digunakan, tetapi entri %d belum diterjemahkan.Terjemahan sedia untuk digunakan.Terjemahan hendaklah berakhir dengan "%s".Terjemahan tidak harus berakhir dengan "%s".Terjemahan mestilah dimulakan sebagai satu ayat.Terjemahan mestilah dimulakan dengan huruf kecil.Terjemahan dimulakan dengan ruang, tetapi tidak dengan teks sumber.Tida terdapat terjemahan. Ini luar biasa.Terdapat masalah memformat fail secara baik (tetapi telah disimpan dengan baik).Terdapat ralat ketika memuat katalog. Hasilnya, beberapa data mungkin hilang atau rosak.Tetapan berikut menjejaskan pemformatan dalaman fail PO. Laraskannya jika anda mempunyai keperluan khusus misalnya kerana kawalan versi.Rentetan tiada lagi dalam sumber. Poedit akan membuangnya dari katalog sekarang.Rentetan ditemui dalam sumber tetapi tidak di katalog. Poedit akan menambahnya ke katalog sekarang.Katalog ini memiliki bentuk jamak, tetapi tidak mempunyai konfigurasi pengepala Bentuk-Jamak.Fail ini hanya boleh disunting di muka web Crowdin.Ini ialah perintah yang digunakan untuk melancarkan pengekstrak. %o mengembang ke nama fail output, %K untuk menyenaraikan, kata kunci, %F untuk menyenaraikan fail input, %C ke bendera charset (lihat di bawah).Projek ini mempunyai tiada fail yang boleh diterjemahkan dalam Poedit.Rentetan ini telah didapati dalam memori terjemahan Poedit.Ini akan lampirkan ke garis perintah hanya jika kod sumber charset telah diberikan. %c mengembang ke nilai charset.Ini akan dilampirkan ke garis perintah sekali untuk setiap fail input. %f mengembang kepada nama fail.Ini akan dilampirkan ke garis perintah sekali untuk setiap kata kunci. %k mengembang kepada kata kunci.JumlahPengubahanMasukan boleh diterjemah tidak ditambah secara manual dalam sistem Gettext, tetapi diekstrak secara automatik daripada kod sumber. Dengan cara ini, ianya akan sentiasa dikemaskini dan jitu. Penterjemah kebiasaannya menggunakan fail templat PO (POT) yang disediakan untuk mereka oleh pembangun.Diterjemah: %d daripada %d (%d %%)Bahasa Terjemahan Memori TerjemahanSifat TerjemahanSifat terjemahanCadangan penterjemahan:Terjemahan — %sTerjemahan:Terjemahan tidak dapat dikemaskini dari kod sumber, kerana tidak ada kod ditemui di lokasi yang dinyatakan dalam Properties katalog ini.DuaUTF-8 (disarankan)Buat asalPengecualian tidak dikendalikan berlaku: %sUnix (disarankan)Tidak diterjemahkanUpKemaskiniKemaskini semuaKemaskini semua katalog dalam projekKemaskini katalog - segerakkannya dengan sumberKemaskini dari Fail &POT…Kemaskini dari fail &POT…Kemaskini dari POTKemaskini ringkasanKemaskiniMengemaskini katalogMengemas kini gagalGagal mengemaskini katalog. Klik 'Perincian >>' untuk perincian.Mengemaskini maklumat pengguna…Memuat naik terjemahan…Guna ungkapan langgananGunakan senarai fon khas:Gunakan senarai medan teks khas:Gunakan peraturan lalai untuk bahasa iniGunakan katakunci ini (nama fungsi) untuk mengenali rentetan boleh terjemah dalam fail sumber:Gunakan memori terjemahanPengesahanPengesahan keputusanVersi %sMenunggu pengesahan…Selamat Datang ke PoeditApa itu Crowdin?Apabila mengemaskini daripada sumberSemua kata sahajaTetingkapWindowsBalut sekelilingBalut pada:YaAnda boleh ekstrak rentetan boleh diterjemah secara terus daripada kod sumber:Anda tidak boleh menjatuhkan lebih daripada satu fail pada tetingkap Poedit.Anda mesti mula semula Poedit untuk mengaktifkan perubahan ini.E-mel AndaPerubahan anda akan hilang jika anda tidak menyimpannya.Nama dan e-mel alamat anda hanya digunakan untuk menetapkan pengepala Last-Translator fail gettext GNU.SifarZumaltctrljangan padam fail sementara (untuk menyahpepijat)cth. nplurals=2; plural=(n > 1);padanan kabur dalam failpergi ke item pada nombor baris yang diberikankendalikan satu poedit:// URIpra-terjemah dari TMshiftbahasa tidak diketahuiyour_email@example.com"%s" bukanlah fail POT yang sah.poedit-2.0.6/locales/ckb.po0000664000372000037200000013671713230132075012460 00000000000000msgid "" msgstr "" "Project-Id-Version: poedit\n" "Report-Msgid-Bugs-To: help@poedit.net\n" "POT-Creation-Date: 2017-12-05 15:52+0100\n" "PO-Revision-Date: 2017-07-27 03:15-0400\n" "Last-Translator: vslavik \n" "Language-Team: Sorani (Kurdish)\n" "Language: ckb_IR\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: crowdin.com\n" "X-Crowdin-Project: poedit\n" "X-Crowdin-Language: ckb\n" "X-Crowdin-File: /locales/poedit.pot\n" msgid "Hide this notification message" msgstr "شاردنەوەی ئەم پەیامی ئاگادارکردنەوەیە" msgid "Don’t Show Again" msgstr "" msgid "Don’t show again" msgstr "" #, c-format msgid "(New: %i, obsolete: %i)" msgstr "" msgid "Updating catalog" msgstr "نوێکردنەوەی تۆمارەکان" msgid "Collecting source files…" msgstr "" msgid "Extracting translatable strings…" msgstr "" msgid "Failed to load extracted catalog." msgstr "نەتوانرا دەرهێنانی کەتەلۆگ باربکرێت." msgid "Merging differences…" msgstr "" #, c-format msgid "“%s” is not a valid POT file." msgstr "" #, c-format msgid "%i line of file “%s” was not loaded correctly." msgid_plural "%i lines of file “%s” were not loaded correctly." msgstr[0] "" msgstr[1] "" #, c-format msgid "Line %d of file “%s” is corrupted (not valid %s data)." msgstr "" #, c-format msgid "Malformed header: “%s”" msgstr "" msgid "" "Broken catalog file: singular form msgstr used together with msgid_plural" msgstr "" "پەڕگەی کەتەلۆگی تێکشکاو:فۆڕمی وەرگێڕانی تاک بەکاردێت پێکەوە لەگەڵ " "msgid_plural" msgid "Broken catalog file: plural form msgstr used without msgid_plural" msgstr "پەڕگەی کەتەلۆگی تێکشکاو:فۆڕمی وەرگێڕانی کۆ بەکاردێت بەبێ msgid_plural" msgid "" "There were errors when loading the catalog. Some data may be missing or " "corrupted as the result." msgstr "" "هەڵەیەک ڕوویدا لە کاتی بارکردنی کەتەلۆگ.هەندێک لە داتاکان ڕەنگە دیارنەبن " "یاخود تێکشکابن لە ئەنجامی ئەو هەڵەیەدا." #, c-format msgid "Couldn’t load file %s, it is probably corrupted." msgstr "" #, c-format msgid "" "File “%s” is read-only and cannot be saved.\n" "Please save it under different name." msgstr "" #, c-format msgid "Couldn’t save file %s." msgstr "" msgid "" "There was a problem formatting the file nicely (but it was saved all right)." msgstr "" "کێشەیەک ڕوویدا لە کاتی بەمەرجکردنی پەڕگەکە(بەڵام هەرچۆنێک بێت پاشەکەوتکرا)." #, c-format msgid "" "The catalog couldn’t be saved in “%s” charset as specified in catalog " "settings.\n" "\n" "It was saved in UTF-8 instead and the setting was modified accordingly." msgstr "" msgid "Error saving catalog" msgstr "هەڵە لە پاشەکەوتکردنی کەتەلۆگ" msgid "PO Translation Files" msgstr "بوخچەی وەڕگێرانی PO" msgid "POT Translation Templates" msgstr "تێمپلەتى وەرگێڕانی POT" msgid "All Translation Files" msgstr "هەموو فایلەکانی وەرگێڕان" msgid "(Use default language)" msgstr "(زمانی بنەڕەتی بەکاربهێنە)" msgid "Select your preferred language" msgstr "زمانی پەسەندکراوت دەستنیشان بکە" msgid "Language selection" msgstr "هەڵبژاردنەکانی زمان" msgid "You must restart Poedit for this change to take effect." msgstr "" "پێویستە دووبارە Poedit دەستپێبکەیتەوە بۆ ئەوەی گۆڕانکارییەکان شوێنی خۆیان " "بگرن." msgid "Syncing" msgstr "" #. TRANSLATORS: %s is a cloud destination, e.g. "Crowdin" or ftp.wordpress.com etc. #, c-format msgid "Syncing with %s…" msgstr "" #. TRANSLATORS: %s is a cloud destination, e.g. "Crowdin" or ftp.wordpress.com etc. #, c-format msgid "Syncing with %s failed." msgstr "" msgid "Syncing error" msgstr "" msgid "Downloading translations is disabled in this project." msgstr "لە پڕۆژەیەدا دابەزاندنی وەڕگێرانەکان لەکار خراوە." msgid "Not authorized, please sign in again." msgstr "دەسەڵاتی پێى نەدراوە، تكايە دووبارە بڕۆ ژوورەوە." msgid "" "Crowdin is an online localization management platform and collaborative " "translation tool. Poedit can seamlessly sync PO files managed at Crowdin." msgstr "" "Crowdin پڕۆگرامێکی سەرهێلە بۆ خۆماڵی کردن و ئەمرازێکی وەرگێرانی گرووپی و " "هاوبەشە. Poedit بە شێوەی سەرەتایی توانایی هەیە بۆ هەهانگی PO لە Crowdin." msgid "Sign In" msgstr "چونەژوورەوە" msgid "Sign in" msgstr "چونەژوورەوە" msgid "Sign Out" msgstr "دەرچوون" msgid "Sign out" msgstr "دەرچوون" msgid "Waiting for authentication…" msgstr "چاوەڕوانی ڕێگەپێدانبە…" msgid "Updating user information…" msgstr "نوێکردنەوەی زانیارییەکانی بەکارهێنەر…" msgid "Signed in as:" msgstr "چویتەژوورەوە وەک:" msgid "Learn More About Crowdin" msgstr "Crowdin زانیاری زیاتر دەربارەی" msgid "Learn more about Crowdin" msgstr "Crowdin زانیاری زیاتر دەربارەی" msgid "Sign in to Crowdin" msgstr "Crowdin چونەژوورەوە بۆ" msgid "Open Crowdin translation" msgstr "Crowdin کردنەوەی ئامرازی وەرگێڕانی" msgid "Project:" msgstr "پڕۆژە:" msgid "Language:" msgstr "زمان:" msgid "File:" msgstr "فایل:" msgid "No translation projects listed in your Crowdin account." msgstr "هیچ پرۆژەیەکی وەرگێران لە ئەکاونتی Crowdin تۆ ریزبەند نەکراوە." msgid "This project has no files that can be translated in Poedit." msgstr "ئەم پڕۆژەیە هیچ پەڕگەیەکی تێدانیە لە Poedit وەربگێردرێت." msgid "This file can only be edited in Crowdin’s web interface." msgstr "ئەم فايلە دەتوانێت تەنها پاكنووس بكرێت لە رووکاری وێبی Crowdin." msgid "Downloading latest translations…" msgstr "دابەزاندنی دوایین وەرگێرانەکان…" msgid "Syncing with Crowdin failed." msgstr "هەماهەنگ کردن لەگەڵ Crowdin سەرکەوتوو نەبوو." msgid "Crowdin error" msgstr "هەڵەی Crowdin" msgid "Uploading translations…" msgstr "بەرزکردنەوەی وەرگێران…" msgid "&Copy" msgstr "&لەبەرگرتنەوە" msgid "Learn more" msgstr "زیاتر بزانە" msgid "Learn More" msgstr "زیاتر فێربە" msgid "&Help" msgstr "&یارمەتی" msgid "MO files can’t be directly edited in Poedit." msgstr "ناتواندرێت راستەوخۆ پەڕەگەکانی MO لە ناو Poedit دەستکاری بکرێت." msgid "Error opening file" msgstr "هەڵە هەیە لە کردنەوەی فایلدا" msgid "" "Please open and edit the corresponding PO file instead. When you save it, " "the MO file will be updated as well." msgstr "" "تکایە پەڕگەی PO دووبارە بکەرەوە و دەستکاری بکە لە جیاتی ئەمە. کاتێک تۆ " "پاشەکەوتی دەکەیت, پەرگەی MO بە باشی نوێ دەبێتەوە." msgid "don’t delete temporary files (for debugging)" msgstr "" msgid "handle a poedit:// URI" msgstr "هەڵسوکەوت بکە لەگەڵ poedit:// URI" msgid "go to item at given line number" msgstr "" msgid "Failed to communicate with Poedit process." msgstr "" #, c-format msgid "Unhandled exception occurred: %s" msgstr "" msgid "Open catalog" msgstr "کردنەوەی کەتەلۆگ" #, c-format msgid "File “%s” doesn’t exist." msgstr "" msgid "Poedit is an easy to use translations editor." msgstr "Poedit دەستکاریکەرێکی سادە و ئاسان لە بەکارهێنانە بۆ وەرگێڕانەکان." msgid "Catalogs Manager" msgstr "" msgid "Check for Updates…" msgstr "" msgid "&Edit" msgstr "&دەستکاری" msgid "Undo" msgstr "پووچکردنەوە" msgid "Redo" msgstr "پێشتر" msgid "Paste and Match Style" msgstr "" msgid "Delete" msgstr "سڕینەوە" msgid "Spelling and Grammar" msgstr "" msgid "Show Spelling and Grammar" msgstr "" msgid "Check Document Now" msgstr "" msgid "Check Spelling While Typing" msgstr "" msgid "Check Grammar With Spelling" msgstr "" msgid "Correct Spelling Automatically" msgstr "" msgid "Substitutions" msgstr "" msgid "Show Substitutions" msgstr "" msgid "Smart Copy/Paste" msgstr "" msgid "Smart Quotes" msgstr "" msgid "Smart Dashes" msgstr "" msgid "Smart Links" msgstr "" msgid "Text Replacement" msgstr "" msgid "Transformations" msgstr "" msgid "Make Upper Case" msgstr "" msgid "Make Lower Case" msgstr "" msgid "Capitalize" msgstr "" msgid "Speech" msgstr "دەنگ" msgid "Start Speaking" msgstr "قسە بکە" msgid "Stop Speaking" msgstr "راوەستاندنی قشەکردن" msgid "&View" msgstr "&بینین" msgid "Enter Full Screen" msgstr "پڕ بە شاشە" msgid "Window" msgstr "پەنجەرە" msgid "Minimize" msgstr "بچوککردنەوە" msgid "Zoom" msgstr "نزیکخستنەوە" msgid "Bring All to Front" msgstr "گشتی بۆ پێشەوە بهێنە" #. TRANSLATORS:File kind displayed in Finder/Explorer msgid "PO Translation" msgstr "PO وەرگێرانی" msgid "The file cannot be opened." msgstr "ئەم پەڕگەیە ناتواندرێت بکرێتەوە." msgid "Invalid file" msgstr "جۆری فایل نادروستە" msgid "" "The file may be either corrupted or in a format not recognized by Poedit." msgstr "فايلەكە لەوانەيە پەڕگەکە تێک بچێت يان لە نەناسرێتەوە لەلايەن Poedit." msgid "You can’t drop more than one file on Poedit window." msgstr "" #, c-format msgid "File “%s” is not a message catalog." msgstr "" msgid "Poedit" msgstr "Poedit" msgid "&File" msgstr "&پەڕگە" msgid "&Go" msgstr "&بڕۆ" #. TRANSLATORS: %s is language name in its basic form (as you #. would see e.g. in a list of supported languages). You may need #. to rephrase it, e.g. to an equivalent of "for language %s". #, c-format msgid "" "Spellchecking is disabled, because the dictionary for %s isn’t installed." msgstr "هەڵەگری زمانەوەانی ناچالاکە چونکە فەرهەنگ نامە بۆ %s دانەمەزراوە." msgid "Install" msgstr "دابەزاندن" msgid "Catalog modified. Do you want to save changes?" msgstr "کەتەلۆگ گۆڕدرا.دەتەوێت گۆڕانکارییەکان پاشەکەوت بکەیت؟" msgid "Save changes" msgstr "پاشەکەوت کردنی گۆڕانکارییەکان" msgid "Your changes will be lost if you don’t save them." msgstr "" msgid "Save" msgstr "پاشەکەوت کردن" msgid "Don’t save" msgstr "" msgid "Don’t Save" msgstr "" msgid "Save as…" msgstr "" msgid "Compile to…" msgstr "" msgid "Compiled Translation Files" msgstr "فایلە وەرگێڕدراوە بەراوردکراوەکان" msgid "Export as…" msgstr "" msgid "HTML Files" msgstr "HTML فایلەکانی" msgid "Open catalog template" msgstr "کردنەوەی کەتەلۆگی داڕێژە" msgid "Source code not available." msgstr "کۆدی سەرچاوە کراوە بوونی نیە." msgid "Updating failed" msgstr "نوێکردنەوە سەرکەوتو نەبوو" msgid "" "Translations couldn’t be updated from the source code, because no code was " "found in the location specified in the catalog’s Properties." msgstr "" msgid "Entries in the catalog are probably incorrect." msgstr "تێئاخنرییوەکان لە کەتەلۆگەکە بە زۆری پێدەچێت نادروست بن." msgid "Updating the catalog failed. Click on 'Details >>' for details." msgstr "" "نوێکردنەوەی کەتەلۆگەکە شکستی هێنا. کرتە بکە لەسەر 'زانیاری >>' بۆ زانیاری " "زیاتر." #, c-format msgid "%d issue with the translation found." msgid_plural "%d issues with the translation found." msgstr[0] "" msgstr[1] "" msgid "Validation results" msgstr "" msgid "" "Entries with errors were marked in red in the list. Details of the error " "will be shown when you select such an entry." msgstr "" msgid "The file was saved safely." msgstr "" msgid "" "The file was saved safely and compiled into the MO format, but it will " "probably not work correctly." msgstr "" msgid "" "The file was saved safely, but it cannot be compiled into the MO format and " "used." msgstr "" msgid "" "The file was compiled into the MO format, but it will probably not work " "correctly." msgstr "" msgid "The file cannot be compiled into the MO format and used." msgstr "" msgid "No problems with the translation found." msgstr "" #, c-format msgid "The translation is ready for use, but %d entry is not translated yet." msgid_plural "" "The translation is ready for use, but %d entries are not translated yet." msgstr[0] "" msgstr[1] "" msgid "The translation is ready for use." msgstr "وەرگێڕانەکە ئامادەیە بۆ بەکارهێنان." #, c-format msgid "Poedit automatically fixed invalid content in the file “%s”." msgstr "" msgid "" "The file contained duplicate items, which is not allowed in PO files and " "would prevent the file from being used. Poedit fixed the issue, but you " "should review translations of any items marked as needing work and correct " "them if necessary." msgstr "" msgid "Language of the translation isn’t set." msgstr "" msgid "Set Language" msgstr "ڕێکخستنی زمان" msgid "Set language" msgstr "ڕێکخستنی زمان" #. TRANSLATORS: This is shown underneath "Language of the translation isn't set (or ...is the same as source language)." msgid "" "Suggestions are not available if the translation language is not set " "correctly. Other features, such as plural forms, may be affected as well." msgstr "" msgid "Language of the translation is the same as source language." msgstr "" msgid "Fix Language" msgstr "زمان چاک بکە" msgid "Fix language" msgstr "زمان چاک بکە" msgid "" "This catalog has entries with plural forms, but doesn’t have Plural-Forms " "header configured." msgstr "" msgid "" "Entries in this catalog have different plural forms count from what " "catalog’s Plural-Forms header says" msgstr "" msgid "Required header Plural-Forms is missing." msgstr "" #, c-format msgid "Syntax error in Plural-Forms header (\"%s\")." msgstr "هەڵەی ڕستەکار لە ناوونیشانی فۆڕمی کۆ (\"%s\")." msgid "Fix the Header" msgstr "" msgid "Fix the header" msgstr "چاککردنەوەی ناوونیشان" #. TRANSLATORS: %s is language name in its basic form (as you #. would see e.g. in a list of supported languages). You may need #. to rephrase it, e.g. to an equivalent of "for language %s". #, c-format msgid "Plural forms expression used by the catalog is unusual for %s." msgstr "" #. TRANSLATORS: A verb, shown as action button with ""Plural forms expression used by the catalog is unusual for %s.")" msgid "Review" msgstr "چاو پیاخشاندنەوە" #, c-format msgid "Error loading message catalog file “%s”." msgstr "" #, c-format msgid "Translated: %d of %d (%d %%)" msgstr "وەرگێڕدراو: %d لە %d (%d %%)" #, c-format msgid "Remaining: %d" msgstr "ماوە: %d" #, c-format msgid "%d error" msgid_plural "%d errors" msgstr[0] "" msgstr[1] "" #, c-format msgid "%d entry" msgid_plural "%d entries" msgstr[0] "" msgstr[1] "" msgid " (unsaved)" msgstr "" msgid " (modified)" msgstr " (گۆڕدراو)" #, c-format msgid "Failed to update translation memory: %s" msgstr "" msgid "Purge deleted translations" msgstr "پاکژکردنەوەی وەرگێڕانە سڕدراوەکان" msgid "Do you want to remove all translations that are no longer used?" msgstr "دەتەوێت هەموو ئەو وەرگێڕانە لاببەیت کە چیتر بەکارنایەن؟" msgid "" "If you continue with purging, all translations marked as deleted will be " "permanently removed. You will have to translate them again if they are added " "back in the future." msgstr "" "ئەگەر بەردەوام بیت لەگەڵ بەرکەنارخستن،هەموو ئەو وەرگێڕدراوانەی نیشانەکراون " "وەکو سڕدراوە بە یەکجاریی لادەبرێن.ئەو کات دەبێت دووبارە وەریان بگێڕیتەوە " "ئەگەر زیادکران لە داهاتوودا." msgid "Keep" msgstr "هێشتنەوە" msgid "Purge" msgstr "پاکژکردنەوە" msgid "Copy from source text" msgstr "لەبەرگرتنەوەی لە دەقی ژێدەرەکەوە" msgid "Copy from Source Text" msgstr "لەبەرگرتنەوەی لە دەقی ژێدەرەکەوە" #. TRANSLATORS: This is the key shortcut used in menus on Windows, some languages call them differently #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Ctrl+" msgstr "Ctrl+" msgid "Clear translation" msgstr "سڕینەوەی وەرگێڕان" msgid "Clear Translation" msgstr "سڕینەوەی وەرگێڕان" msgid "Edit comment" msgstr "دەستکاریکردنی لێدوان" msgid "Edit Comment" msgstr "" msgid "References:" msgstr "ئاماژەپێکراوەکان:" msgid "&Bookmarks" msgstr "&دڵخوازەکان" #. TRANSLATORS: This is the key shortcut used in menus on Windows, some languages call them differently #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Alt+" msgstr "Alt+" #, c-format msgid "Set bookmark %i" msgstr "ڕێکخستنی نیشانەکراوی %i" #, c-format msgid "Go to bookmark %i" msgstr "چوون بۆ نیشانەکراوی %i" #, c-format msgid "Set Bookmark %i" msgstr "ڕێکخستنی نیشانەکراوی %i" #, c-format msgid "Go to Bookmark %i" msgstr "چوون بۆ نیشانەکراوی %i" msgid "Hide Sidebar" msgstr "شاردنەوەی لاتەنیشت" msgid "Show Sidebar" msgstr "پیشاندانی لاتەنیشت" msgid "Hide Status Bar" msgstr "شارنەوەی شریتی دۆخ" msgid "Show Status Bar" msgstr "پیشاندانی شریتی دۆخ" msgid "Source text:" msgstr "دەقی ژێدەر:" msgid "Singular:" msgstr "تاک:" msgid "Plural:" msgstr "کۆ:" msgid "Translation:" msgstr "وەرگێڕان:" msgid "Pre-translated" msgstr "" msgid "Needs Work" msgstr "" #. TRANSLATORS: This indicates that the string's translation isn't final #. and has known problems. For example, it might be machine translated or #. fuzzy matched from an older string. The translation should be short and #. convey this. If it's problematic to translate it, "Needs review" is #. acceptable substitute, but note that the meaning is subtly different: #. "needs review" implies that somebody else should review the string after #. I am done with it (i.e. consider it good), while "needs work" implies I #. need to return to it and finish the translation. msgid "Needs work" msgstr "" msgid "" "POT files are only templates and don’t contain any translations themselves.\n" "To make a translation, create a new PO file based on the template." msgstr "" "فايلى POT تەنها تێمپلەتن و هیچ وەرگێڕان لە خۆيان ناگرن. \n" " وەرگێڕان دروەست دەکەن، پەڕگەیەکی PO ی نوێ دروست بكە لەسەر بنەماى تێمپلەتەكە." msgid "Create New Translation" msgstr "دروستکردنی وەرگێڕانی نوێ" msgid "Create new translation" msgstr "دروستکردنی وەرگێڕانی نوێ" msgid "Everything" msgstr "هەموو شتێک" #, c-format msgid "Form %i" msgstr "فۆڕم %i" msgid "Singular" msgstr "تاک" msgid "Zero" msgstr "سفر" msgid "One" msgstr "یەک" msgid "Two" msgstr "دوو" msgid "Plural" msgstr "کۆ" msgid "Other" msgstr "جۆری تر" #, c-format msgid "%s Format" msgstr "" #. TRANSLATORS: %s is replaced with language name, e.g. "PHP" or "C", so "PHP Format" etc." #, c-format msgid "%s format" msgstr "" msgid "Source text" msgstr "دەقی ژێدەر" #, c-format msgid "Translation — %s" msgstr "وەرگێڕان — %s" msgid "ID" msgstr "ID" #, c-format msgid "Source text — %s" msgstr "سەرچاوەی دەق — %s" msgid "unknown language" msgstr "زمانی نەزانراو" #, c-format msgid "Failed command: %s" msgstr "فەرمان سەرکەوتوو نەبوو: %s" msgid "Failed to merge gettext catalogs." msgstr "لکاندنی کەتەلۆگەکان سەرکەوتوو نەبوو." msgid "Source file" msgstr "پەڕگەی ژێدەر" msgid "Source file occurrence:" msgstr "گوێزەرەوەکانی کۆدی ژێدەر:" msgid "Open in Editor" msgstr "کردنەوە لە دەستکاریکەردا" msgid "Open in editor" msgstr "کردنەوە لە دەستکاریکەردا" msgid "No references for the selected item." msgstr "" #, c-format msgid "Error opening file %s!" msgstr "هەڵە لە کردنەوەی پەڕگەی %s!" msgid "Find" msgstr "دۆزینەوە" msgid "Replace" msgstr "جێگۆڕین" #. TRANSLATORS: Expander in Find window for additional options (case sensitive etc.) msgid "Options" msgstr "هەڵبژاردنەکان" msgid "Ignore case" msgstr "" msgid "Wrap around" msgstr "" msgid "Whole words only" msgstr "تەنیا گشت وشەکان" msgid "Find in source texts" msgstr "" msgid "Find in translations" msgstr "دۆزینەوە لە وەرگێڕاندا" msgid "Find in comments" msgstr "دۆزینەوە لە لێدوانەکان" msgid "Close" msgstr "داخستن" msgid "Replace &All" msgstr "" msgid "Replace &all" msgstr "" msgid "&Replace" msgstr "" msgid "< &Previous" msgstr "" msgid "&Next >" msgstr "" msgid "String to find" msgstr "" msgid "Replacement string" msgstr "" #, c-format msgid "Cannot execute program: %s" msgstr "ناتوانرێت پرۆگرام جێبەجێ بکرێت: %s" msgid "Language Code or Name (e.g. en_GB)" msgstr "" msgid "Translation Language" msgstr "" msgid "Language of the translation:" msgstr "" msgid "Poedit - Catalogs manager" msgstr "Poedit - سازکاریی کەتەلۆگەکان" msgid "Catalog" msgstr "کەتەلۆگ" msgid "Total" msgstr "هەموو" msgid "Untrans" msgstr "" msgid "Errors" msgstr "" msgid "Last modified" msgstr "دوایین گۆڕانکاریی" msgid "Select directory" msgstr "پێڕست دەستنیشان بکە" msgid "Directories:" msgstr "پێڕستەکان:" msgid "" msgstr "<ناونەنراو>" msgid "Do you want to delete the project?" msgstr "دەتەوێت پرۆژەکە بسڕیتەوە؟" msgid "Confirmation" msgstr "دڵنیاییپێدان" msgid "" "Do you really want to do mass update of\n" "all catalogs in this project?" msgstr "" "دڵنیای کە دەتەوێت نوێکردنەوەیەکی گشتیی\n" "هەموو کەتەلۆگەکان بکەیت لەم پرۆژەیە؟" msgid "Information about the translator" msgstr "" msgid "Name:" msgstr "" msgid "Your Name" msgstr "" msgid "Email:" msgstr "" msgid "your_email@example.com" msgstr "" msgid "" "Your name and email address are only used to set the Last-Translator header " "of GNU gettext files." msgstr "" msgid "Editing" msgstr "دەستکاریکردن" msgid "Automatically compile MO file when saving" msgstr "" msgid "Show summary after catalog update" msgstr "کورتەیەک پیشان بدە پاش نوێکردنەوەی کەتەلۆگ" msgid "Check spelling" msgstr "" msgid "Always change focus to text input field" msgstr "هەمیشە سەرنج بگۆڕە بۆ خانەی تێئاخنینی دەق" msgid "" "Never let the list of strings take focus. If enabled, you must use Ctrl-" "arrows for keyboard navigation but you can also type text immediately, " "without having to press Tab to change focus." msgstr "" "هەرگیز مەهێڵە لیستێک لە زنجیرەنووسەکان سەرنج ببەن.ئەگەر چالاککرا،پێویستە " "Ctrl- و ئاراستەکان بەکاربهێنیت بۆ ڕێنیشاندەرەکانی تەختەکلیل بەڵام دەشتوانیت " "بەخێرایی دەق بنووسیت بە بێ ئەوەی کرتە لەسەر تاب بکەیت بۆ گۆڕینی سەرنج." msgid "Appearance" msgstr "ڕووکار" msgid "Use custom list font:" msgstr "بەکارهێنانی فۆنتی تایبەتی:" msgid "Use custom text fields font:" msgstr "" msgid "Change UI language" msgstr "گۆڕینی زمان" #. TRANSLATORS: This is a note appended to "Check spelling" when running on older Windows versions msgid "(requires Windows 8 or newer)" msgstr "(پێویستی بە ویندۆزی ٨ یان نوێترە)" msgid "General" msgstr "گشتی" msgid "Use translation memory" msgstr "" msgid "Learn From Files…" msgstr "" msgid "Learn from files…" msgstr "" #. TRANSLATORS: This is a button that deletes everything in the translation memory (i.e. clears/resets it). msgid "Reset" msgstr "ڕێکخستنەوە" #. TRANSLATORS: Followed by "match translations within the file" or "pre-translate from TM" msgid "When updating from sources" msgstr "" #. TRANSLATORS: Preceded by "When updating from sources" msgid "fuzzy match within the file" msgstr "" #. TRANSLATORS: Preceded by "When updating from sources" msgid "pre-translate from TM" msgstr "" msgid "" "Poedit can attempt to fill in new entries from only previous translations in " "the file or from your entire translation memory. Using the TM won’t be very " "effective if it’s near-empty, but it will get better as you add more " "translations to it." msgstr "" msgid "Stored translations:" msgstr "" msgid "Database size on disk:" msgstr "" msgid "Select translation files to import" msgstr "" msgid "Translation Memory" msgstr "بیرگەی وەرگێڕان" msgid "Importing translations…" msgstr "" msgid "Finalizing…" msgstr "" msgid "Reset translation memory" msgstr "" msgid "Are you sure you want to reset the translation memory?" msgstr "" msgid "" "Resetting the translation memory will irrevocably delete all stored " "translations from it. You can’t undo this operation." msgstr "" msgid "Cancel" msgstr "هەڵوەشاندنەوە" #. TRANSLATORS: This is abbreviation of "Translation Memory" used in Preferences on macOS. #. Long text looks weird there, too short (like TM) too, but less so. "General" is about ideal #. length there. msgid "TM" msgstr "TM" msgid "" "Source code extractors are used to find translatable strings in the source " "code files and extract them so that they can be translated." msgstr "" msgid "Custom Extractors:" msgstr "" msgid "Custom extractors:" msgstr "" msgid "Edit…" msgstr "" msgid "GNU gettext" msgstr "" msgid "" "Supports all programming languages recognized by GNU gettext tools (PHP, C/C+" "+, C#, Perl, Python, Java, JavaScript and others)." msgstr "" msgid "Delete extractor" msgstr "سڕینەوەی دەرهێنەر" #, c-format msgid "Are you sure you want to delete the “%s” extractor?" msgstr "ئایا دڵنیایت لە سڕینەوەی دەرهێنەری “%s” extractor؟" msgid "Extractors" msgstr "دەهێنەرەکان" msgid "Accounts" msgstr "هەژمار" msgid "Automatically check for updates" msgstr "پشکنین بۆ نوێکردنەوە بەخۆکاری" msgid "Include beta versions" msgstr "هەروەها وەشانی بیتا" msgid "" "Beta versions contain the latest new features and improvements, but may be a " "bit less stable." msgstr "" msgid "Updates" msgstr "نوێکردنەوە" msgid "" "These settings affect internal formatting of PO files. Adjust them if you " "have specific requirements e.g. because of version control." msgstr "" msgid "Line endings:" msgstr "" msgid "Unix (recommended)" msgstr "Unix (پێشنیارکراو)" msgid "Windows" msgstr "Windows" #. TRANSLATORS: Followed by text control for entering number; wraps text at given width msgid "Wrap at:" msgstr "" msgid "Preserve formatting of existing files" msgstr "" msgid "Advanced" msgstr "پەرەسەندوو" msgid "Pre-translating…" msgstr "" #, c-format msgid "Pre-translated %u string" msgid_plural "Pre-translated %u strings" msgstr[0] "" msgstr[1] "" #. TRANSLATORS: This is a somewhat common term describing the action where #. you apply the translation memory and/or machine translation to all of the #. strings you're translating as the first step, followed by correcting, #. improving etc., i.e. actually translating the strings. This may be tricky #. to express in other languages as simply as in English, but please try to #. keep it similarly concise. Please try to avoid, if possible, describing it #. as "auto-translation" and similar, because such terminology would mislead #. some users into thinking it's all that needs to be done (spoken from #. experience). "Pre-translate" nicely expresses that it's only the step done #. *before* actual translation. msgid "Pre-translate" msgstr "" msgid "Only fill in exact matches" msgstr "" msgid "" "By default, inaccurate results are filled in as well and marked as needing " "work. Check this option to only include accurate matches." msgstr "" msgid "Don’t mark exact matches as needing work" msgstr "" msgid "" "Only enable if you trust the quality of your TM. By default, all matches " "from the TM are marked as needing work and should be reviewed before use." msgstr "" msgid "" "Pre-translation automatically finds exact or fuzzy matches for untranslated " "strings in the translation memory and fills in their translations." msgstr "" #, c-format msgid "%d entry was pre-translated." msgid_plural "%d entries were pre-translated." msgstr[0] "" msgstr[1] "" msgid "" "The translations were marked as needing work, because they may be " "inaccurate. You should review them for correctness." msgstr "" msgid "No entries could be pre-translated." msgstr "" msgid "" "The TM doesn’t contain any strings similar to the content of this file. It " "is only effective for semi-automatic translations after Poedit learns enough " "from files that you translated manually." msgstr "" msgid "" "Drag and Drop Folders Here\n" "\n" "or use the + button" msgstr "" msgid "" "Drag and drop folders here\n" "\n" "or use the + button" msgstr "" msgid "Add Folders…" msgstr "" msgid "Add folders…" msgstr "" msgid "Add Files…" msgstr "" msgid "Add files…" msgstr "" msgid "Add Wildcard…" msgstr "" msgid "Add wildcard…" msgstr "" msgid "Paths" msgstr "ڕێچکەکان" msgid "Excluded paths" msgstr "" msgid "Advanced extraction settings" msgstr "" msgid "Extract notes for translators from:" msgstr "" msgid "Comments prefixed with:" msgstr "" msgid "All comments" msgstr "" msgid "Additional xgettext flags:" msgstr "" msgid "Additional keywords" msgstr "" msgid "Name of the project the translation is for" msgstr "" msgid "Team name and email address or URL" msgstr "" msgid "e.g. nplurals=2; plural=(n > 1);" msgstr "" msgid "UTF-8 (recommended)" msgstr "UTF-8 (پێشنیارکراو)" msgid "Please save the file first. This section cannot be edited until then." msgstr "" msgid "Not all plural forms are translated." msgstr "" msgid "The translation should start as a sentence." msgstr "" msgid "The translation should start with a lowercase character." msgstr "" msgid "The translation doesn’t start with a space." msgstr "" msgid "The translation starts with a space, but the source text doesn’t." msgstr "" msgid "The translation is missing a newline at the end." msgstr "" msgid "The translation ends with a newline, but the source text doesn’t." msgstr "" msgid "The translation is missing a space at the end." msgstr "" msgid "The translation ends with a space, but the source text doesn’t." msgstr "" #, c-format msgid "The translation should end with “%s”." msgstr "" #, c-format msgid "The translation should not end with “%s”." msgstr "" #, c-format msgid "The translation ends with “%s”, but the source text ends with “%s”." msgstr "" msgid "Comment:" msgstr "لێدوان:" msgid "OK" msgstr "باشە" msgid "C&lear" msgstr "" msgid "Clear the comment" msgstr "سڕینەوەی لێدوان" msgid "New" msgstr "نوێ" msgid "Create new translations project" msgstr "دروستکردنی پرۆژەیەکی نوێی وەرگێڕان" msgid "Edit" msgstr "دەستکاریکردن" msgid "Edit the project" msgstr "دەستکاریکردنی پرۆژەکە" msgid "Delete the project" msgstr "سڕینەوەی پرۆژەکە" msgid "Update all" msgstr "نوێکردنەوەی هەموو" msgid "Update all catalogs in the project" msgstr "نوێکردنەوەی هەموو کەتەلۆگەکان لە پرۆژەکە" msgid "Edit project" msgstr "دەستکاریکردنی پرۆژە" msgid "Project name:" msgstr "ناوی پرۆژە:" msgid "Browse" msgstr "گەڕان" msgid "Add directory to the list" msgstr "زیادکردنی پێڕست بۆ لیستەکە" msgid "&New…" msgstr "" msgid "New from &POT/PO file…" msgstr "" msgid "New From &POT/PO File…" msgstr "" msgid "&Open…" msgstr "" msgid "Open Recent" msgstr "" msgid "Open from Crowdin…" msgstr "" msgid "Open From Crowdin…" msgstr "" msgid "&Close" msgstr "&داخستن" msgid "&Save" msgstr "&پاشەکەوت کردن" msgid "Save &as…" msgstr "" msgid "Save &As…" msgstr "" msgid "Compile to MO…" msgstr "" msgid "E&xport as HTML…" msgstr "" msgid "Check for updates…" msgstr "" msgid "&Preferences…" msgstr "" msgid "Catalogs &manager" msgstr "سازکاریی &کەتەلۆگەکان" msgid "Catalogs &Manager" msgstr "سازکاریی &کەتەلۆگەکان" msgid "E&xit" msgstr "چوو&نەدەرەوە" msgid "Quit" msgstr "وازهێنان" msgid "Copy from singular" msgstr "" msgid "Copy From Singular" msgstr "" msgid "Translation needs &work" msgstr "" msgid "Translation Needs &Work" msgstr "" msgid "Edit &comment" msgstr "دەستکاریکردنی &لێدوان" msgid "Edit &Comment" msgstr "دەستکاریکردنی &لێدوان" msgid "Suggestions" msgstr "" msgid "&Find…" msgstr "" msgid "Replace…" msgstr "" msgid "Find next" msgstr "دۆزینەوەی دواتر" msgid "Find previous" msgstr "دۆزینەوەی پێشتر" msgid "Find and Replace…" msgstr "" msgid "Find Next" msgstr "دۆزینەوەی دواتر" msgid "Find Previous" msgstr "دۆزینەوەی پێشتر" msgid "&Preferences" msgstr "&سازکارییەکان" msgid "Display entry &IDs" msgstr "" msgid "Display Entry &IDs" msgstr "" msgid "Sort by &file order" msgstr "ڕێکخستن بەپێی &ڕیزی پەڕگە" msgid "Sort by &File Order" msgstr "ڕێکخستن بەپێی &ڕیزی پەڕگە" msgid "Sort by &source" msgstr "ڕێکخستن بەپێی &ژێدەر" msgid "Sort by &Source" msgstr "ڕێکخستن بەپێی &ژێدەر" msgid "Sort by &translation" msgstr "ڕێکخستن بەپێی &وەرگێڕان" msgid "Sort by &Translation" msgstr "ڕێکخستن بەپێی &وەرگێڕان" msgid "&Group by context" msgstr "" msgid "&Group By Context" msgstr "" msgid "Entries with errors first" msgstr "" msgid "Entries with Errors First" msgstr "" msgid "&Untranslated entries first" msgstr "&سەرەتا وەرنەگێڕدراوە تێئاخنراوەکان" msgid "&Untranslated Entries First" msgstr "&سەرەتا وەرنەگێڕدراوە تێئاخنراوەکان" msgid "&Show references" msgstr "&پیشاندانی ئاماژەپێکراوەکان" msgid "&Show References" msgstr "&پیشاندانی ئاماژەپێکراوەکان" msgid "Show sidebar" msgstr "پیشاندانی لاتەنیشت" msgid "Show status bar" msgstr "پیشاندانی شریتی دۆخ" msgid "C&atalog" msgstr "کە&تەلۆگ" msgid "&Update from sources" msgstr "&نوێکردنەوە لە ژێدەرەکانەوە" msgid "&Update from Sources" msgstr "&نوێکردنەوە لە ژێدەرەکانەوە" msgid "Update from &POT file…" msgstr "" msgid "Update from &POT File…" msgstr "" msgid "Sync with Crowdin" msgstr "Crowdin هاوکاتکردن لەگەڵ " msgid "Pre-&translate…" msgstr "" msgid "&Purge deleted translations" msgstr "&پاکژکردنەوەی وەرگێڕانە سڕاوەکان" msgid "&Purge Deleted Translations" msgstr "&پاکژکردنەوەی وەرگێڕانە سڕاوەکان" msgid "&Validate translations" msgstr "" msgid "&Validate Translations" msgstr "" msgid "&Properties…" msgstr "" msgid "&Done and next" msgstr "&جێبەجێکراو و بچۆ دانەی دواتر" msgid "&Done and Next" msgstr "&جێبەجێکراو و بچۆ دانەی دواتر" msgid "&Previous translation" msgstr "&وەرگێڕانی پێشتر" msgid "&Previous Translation" msgstr "&وەرگێڕانی پێشتر" msgid "&Next translation" msgstr "&وەرگێڕانی دواتر" msgid "&Next Translation" msgstr "&وەرگێڕانی دواتر" msgid "P&revious unfinished" msgstr "تەواو&نەکراوی پێشوو" msgid "P&revious Unfinished" msgstr "تەواو&نەکراوی پێشوو" msgid "Ne&xt unfinished" msgstr "تەواو&نەکراوی دواتر" msgid "Ne&xt Unfinished" msgstr "تەواو&نەکراوی دواتر" msgid "Previous plural form" msgstr "" msgid "Previous Plural Form" msgstr "" msgid "Next plural form" msgstr "" msgid "Next Plural Form" msgstr "" msgid "&Online help" msgstr "&یارمەتی سەرهێڵ" msgid "&Online Help" msgstr "&یارمەتی سەرهێڵ" msgid "&GNU gettext manual" msgstr "" msgid "&GNU gettext Manual" msgstr "" msgid "&About Poedit" msgstr "&Poedit دەربارەی" msgid "&About" msgstr "&دەربارە" msgid "Extractor setup" msgstr "" msgid "List of extensions separated by semicolons (e.g. *.cpp;*.h):" msgstr "لیستێک لە extensions جیاکرانەتەوە بە خاڵبۆر (e.g. *.cpp;*.h):" msgid "Invocation:" msgstr "" msgid "Command to extract translations:" msgstr "" msgid "" "This is the command used to launch the extractor.\n" "%o expands to the name of output file, %K to list\n" "of keywords, %F to list of input files,\n" "%C to charset flag (see below)." msgstr "" msgid "An item in keywords list:" msgstr "دانەیەک لە لیستەی وشەکلیلەکان:" msgid "" "This will be attached to the command line once\n" "for each keyword. %k expands to the keyword." msgstr "" "ئەمە هاوپێچ دەکرێت بۆ دێڕی فەرمی یەکجار\n" "بۆ هەر کلیلەوشەیەک. %k فراوانی دەکات بۆ کلیلەوشەکە." msgid "An item in input files list:" msgstr "دانەیەک لە لیستەی تێئاخنینی پەڕگەکان:" #, c-format msgid "" "This will be attached to the command line once\n" "for each input file. %f expands to the filename." msgstr "" "ئەمە هاوپێچ دەکرێت بۆ دێڕی فەرمی یەکجار\n" "بۆ هەر پەڕگەیەکی تێچوو. %f فراوانی دەکات بۆ ناوی پەڕگە." msgid "Source code charset:" msgstr "هێڵکاری کۆدی ژێدەر:" #, c-format msgid "" "This will be attached to the command line\n" "only if source code charset was given. %c expands to charset value." msgstr "" "ئەمە هاوپێچ دەکرێت بۆ دێڕی فەرمان\n" "تەنیا ئەگەر کۆدی هێڵکاریی ژێدەر درابوو. %c فرااوانی دەکات بۆ نرخی هێڵکاریی." msgid "Catalog properties" msgstr "تایبەتمەندییەکانی کەتەلۆگ" msgid "Project name and version:" msgstr "ناو و وەشانی پرۆژە:" msgid "Language team:" msgstr "" msgid "Plural forms:" msgstr "" msgid "Use default rules for this language" msgstr "" msgid "Use custom expression" msgstr "" msgid "Learn about plural forms" msgstr "" msgid "Charset:" msgstr "Koma tîpan (Charset):" msgid "Advanced Extraction Settings…" msgstr "" msgid "Advanced extraction settings…" msgstr "" msgid "Translation Properties" msgstr "" msgid "Translation properties" msgstr "" msgid "Sources Paths" msgstr "" msgid "Sources paths" msgstr "ژێدەرەکانی ڕێچکەکان" msgid "Extract text from source files in the following directories:" msgstr "دەرهێنانی دەق لە پەڕگەکانی ژێدەرەوە لە پێڕستەکانی دادێ:" msgid "Base path:" msgstr "ڕێچکەی بنچینە:" msgid "Sources Keywords" msgstr "" msgid "Sources keywords" msgstr "ژێدەرەکانی کلیلەوشە" msgid "" "Use these keywords (function names) to recognize translatable strings\n" "in source files:" msgstr "" "ئەم کلیلەوشانە بەکاربهێنە(ناوی نەخشەکان) بۆ ناسینەوەی ئەو زنجیرەنووسانەی " "دەتوانرێت وەربگێڕدرێت\n" "لە پەڕگەکانی ژێدەرەکە:" msgid "Also use default keywords for supported languages" msgstr "" msgid "Learn About Gettext Keywords" msgstr "" msgid "Learn about gettext keywords" msgstr "" msgid "Update summary" msgstr "کورتە نوێ بکەرەوە" msgid "" "These strings were found in the sources but were not in the catalog.\n" "Poedit will add them to the catalog now." msgstr "" "ئەم زنجیرەنووسانە دۆزرانەوە لە ژێدەرەکاندا بەڵام لە کەتەلۆگەکەدا نەبوون.\n" "Poedit ئێستا زیادیان دەکات بۆ کەتەلۆگەکە." msgid "New strings" msgstr "زنجیرەنووسەی نوێ" msgid "" "These strings are no longer in the sources.\n" "Poedit will remove them from the catalog now." msgstr "" "ئەم زنجیرەنووسانە چیتر لە ژێدەرەکەدا نین.\n" "Poedit ئێستا لە کەتەلۆگەکە لایان دەبات." msgid "Obsolete strings" msgstr "زنجیرەنووسەی کۆن" msgid "(0 new, 0 obsolete)" msgstr "(0 نوێ، 0 کۆن)" msgid "Open" msgstr "کردنەوە" msgid "Save catalog" msgstr "پاشەکەوت کردنی کەتەلۆگ" msgid "Validate" msgstr "" msgid "Check for errors in the translation" msgstr "" msgid "Update" msgstr "نوێکردنەوە" msgid "Update catalog - synchronize it with sources" msgstr "نوێکردنەوەی کەتەلۆگ - هاوکاتکردنی لەگەڵ ژێدەرەکاندایە" msgid "Sidebar" msgstr "لاتەنیشت" msgid "Show or hide the sidebar" msgstr "پیشاندان و شارنەوەی لاتەنیشت" #. TRANSLATORS: "Previous" as in used in the past, now replaced with newer. msgid "Previous source text:" msgstr "" msgid "" "The old source text (before it changed during an update) that the now-" "inaccurate translation corresponds to." msgstr "" msgid "Notes for translators:" msgstr "" msgid "Add comment" msgstr "نووسینی لێدوان" msgid "Add Comment" msgstr "نووسینی لێدوان" msgid "Translation suggestions:" msgstr "" #. TRANSLATORS: This is shown when no translation suggestions can be found in the TM (Windows). msgid "No matches found" msgstr "" #. TRANSLATORS: This is shown when no translation suggestions can be found in the TM (macOS, Linux). msgid "No Matches Found" msgstr "" msgid "This string was found in Poedit’s translation memory." msgstr "" msgid "Cannot create temporary directory." msgstr "ناتوانرێت پێڕستی کاتی دروست بکرێت." msgid "Welcome to Poedit" msgstr "Poedit بەخێربێیت بۆ" #. TRANSLATORS: This is version information in about dialog, "%s" will be #. version number when used #, c-format msgid "Version %s" msgstr "وەشان %s" msgid "Edit a Translation" msgstr "" msgid "Edit a translation" msgstr "دەستکاریکردنی وەرگێڕان" msgid "Open an existing PO file and edit the translation." msgstr "" msgid "" "Take an existing PO file or POT template and create a new translation from " "it." msgstr "" msgid "Collaborate on a Translation with Others" msgstr "" msgid "Collaborate on a translation with others" msgstr "" msgid "" "Download a file from Crowdin project, translate and sync your changes back." msgstr "" msgid "What is Crowdin?" msgstr "چییە Crowdin" msgid "There are no translations. That’s unusual." msgstr "" msgid "" "Translatable entries aren’t added manually in the Gettext system, but are " "automatically extracted\n" "from source code. This way, they stay up to date and accurate.\n" "Translators typically use PO template files (POTs) prepared for them by the " "developer." msgstr "" msgid "(Learn more about GNU gettext)" msgstr "" msgid "The simplest way to fill this catalog is to update it from a POT:" msgstr "" msgid "Update from POT" msgstr "" msgid "Take translatable strings from an existing POT template." msgstr "" msgid "" "You can also extract translatable strings directly from the source code:" msgstr "" msgid "Extract from sources" msgstr "" msgid "Configure source code extraction in Properties." msgstr "" msgid "Sync" msgstr "" msgid "Synchronize the translation with Crowdin" msgstr "" #. TRANSLATORS: This is titlebar of about dialog, "%s" is application name #. ("Poedit" here, but please use "%s") #, c-format msgid "About %s" msgstr "دەربارەی %s" #. TRANSLATORS: Title of the preferences window on Windows and Linux. "%s" is replaced with "Poedit" when running. #, c-format msgid "%s Preferences" msgstr "" #. TRANSLATORS: macOS item in app menu msgid "Services" msgstr "" #. TRANSLATORS: macOS item in app menu, %s is replaced with "Poedit" #, c-format msgid "Hide %s" msgstr "" #. TRANSLATORS: macOS item in app menu msgid "Hide Others" msgstr "" #. TRANSLATORS: macOS item in app menu msgid "Show All" msgstr "" #. TRANSLATORS: macOS item in app menu, %s is replaced with "Poedit" #, c-format msgid "Quit %s" msgstr "" #. TRANSLATORS: macOS item in app menu msgid "Preferences…" msgstr "" msgid "Preferences..." msgstr "" #. TRANSLATORS: Title of a category in Windows task menu (right-click icon in taskbar) msgid "Recent" msgstr "" #. TRANSLATORS: Title of a category in Windows task menu (right-click icon in taskbar) msgid "Frequent" msgstr "" msgid "&Apply" msgstr "" msgid "Apply" msgstr "" msgid "&Back" msgstr "" msgid "Back" msgstr "" msgid "&Cancel" msgstr "" msgid "&Clear" msgstr "" msgid "Clear" msgstr "" msgid "Copy" msgstr "لەبەرگرتنەوە" msgid "Cu&t" msgstr "بڕ&ین" msgid "Cut" msgstr "بڕین" msgid "&Delete" msgstr "&سڕینەوە" msgid "&Quit" msgstr "" msgid "File" msgstr "" msgid "Help" msgstr "" msgid "&New" msgstr "" msgid "&No" msgstr "" msgid "No" msgstr "" msgid "&OK" msgstr "" msgid "Open…" msgstr "" msgid "&Open..." msgstr "&کردنەوە..." msgid "Open..." msgstr "" msgid "&Paste" msgstr "&دانان" msgid "Paste" msgstr "دانان" msgid "Preferences" msgstr "" msgid "&Redo" msgstr "&دواتر" msgid "Refresh" msgstr "" msgid "&Save as" msgstr "" msgid "Save as" msgstr "" msgid "Select &All" msgstr "دیاریکردنی &هەمووی" msgid "Select All" msgstr "دیاریکردنی هەمووی" msgid "&Undo" msgstr "&پێشتر" msgid "&Yes" msgstr "" msgid "Yes" msgstr "" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Shift+" msgstr "Shift+" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Enter" msgstr "Enter" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Up" msgstr "دوگمەی سەرەوە" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Down" msgstr "دوگمەی خوارەوە" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Left" msgstr "" #. TRANSLATORS: Keyboard shortcut for display in Windows menus msgid "Right" msgstr "" #. TRANSLATORS: Keyboard shortcut, must correspond to translation of "Ctrl+" msgid "ctrl" msgstr "ctrl" #. TRANSLATORS: Keyboard shortcut, must correspond to translation of "Alt+" msgid "alt" msgstr "alt" #. TRANSLATORS: Keyboard shortcut, must correspond to translation of "Shift+" msgid "shift" msgstr "shift" poedit-2.0.6/artwork/0000775000372000037200000000000013230132101011457 500000000000000poedit-2.0.6/artwork/poedit-status-comment@2x.png0000664000372000037200000000050613230131546016741 00000000000000PNG  IHDR szztEXtSoftwareAdobe ImageReadyqe<IDATxb?@&u 6AFFFX-DZQ/@A?""5 a9 }I#l<2 F0Q  瀖ddbAN\ ؐ/dVE⨎}B@ՠk@|1NG.˃̄Vipc @|_* ) ~G\/QOΆsC}Z)~RzGw@{r28@IENDB`poedit-2.0.6/artwork/SuggestionTM.png0000664000372000037200000000024013230131546014505 00000000000000PNG  IHDR r|gIDATxcV 6H r n (?$Q)`Eq "5e#kEs^!kbo Vb! 怊s@P*,u^5ΫF֔NҐ5v"2'IIENDB`poedit-2.0.6/artwork/Makefile.am0000664000372000037200000000333113230131546013447 00000000000000 iconsdir=$(datadir)/icons/hicolor appicons16dir=$(iconsdir)/16x16/apps appicons24dir=$(iconsdir)/24x24/apps appicons32dir=$(iconsdir)/32x32/apps appicons48dir=$(iconsdir)/48x48/apps appicons256dir=$(iconsdir)/256x256/apps appicons512dir=$(iconsdir)/512x512/apps pixmapsdir=$(datadir)/pixmaps uiiconsdir=$(datadir)/poedit/icons dist_appicons16_DATA = linux/appicon/16x16/apps/poedit.png dist_appicons24_DATA = linux/appicon/24x24/apps/poedit.png dist_appicons32_DATA = linux/appicon/32x32/apps/poedit.png dist_appicons48_DATA = linux/appicon/48x48/apps/poedit.png dist_appicons256_DATA = linux/appicon/256x256/apps/poedit.png dist_appicons512_DATA = linux/appicon/512x512/apps/poedit.png dist_pixmaps_DATA = linux/appicon/48x48/apps/poedit.png dist_uiicons_DATA = \ linux/document-open.png \ linux/document-save.png \ linux/document-properties.png \ linux/document-new.png \ linux/edit-delete.png \ linux/poedit-update.png \ linux/poedit-sync.png \ linux/poedit-validate.png \ linux/sidebar.png \ poedit-status-bookmark-selected.png \ poedit-status-bookmark-selected@2x.png \ poedit-status-bookmark.png \ poedit-status-bookmark@2x.png \ poedit-status-comment-selected.png \ poedit-status-comment-selected@2x.png \ poedit-status-comment.png \ poedit-status-comment@2x.png \ poedit-status-error.png \ poedit-status-error@2x.png \ poedit-status-warning.png \ poedit-status-warning@2x.png \ poedit-status-cat-mid.png \ poedit-status-cat-no.png \ poedit-status-cat-ok.png \ window-close.png \ SuggestionError.png \ SuggestionPerfectMatch.png \ SuggestionPerfectMatch@2x.png \ SuggestionTM.png \ PoeditWelcome.png \ CrowdinLogo.png \ ExtractorsGNUgettext.png \ ExtractorsGNUgettext@2x.png poedit-2.0.6/artwork/poedit-status-comment-selected@2x.png0000664000372000037200000000032413230131546020525 00000000000000PNG  IHDR szzIDATxcF(@?j9xzC F0Q:pQE]$EQ쎭2BS ~#TӾzFf e<=Jb_5PP; w ,E@46e V`b1GsqIENDB`poedit-2.0.6/artwork/SuggestionPerfectMatch@2x.png0000664000372000037200000000047413230131546017115 00000000000000PNG  IHDRaIDATxc@*WӵԮ]M?H $ǀ h_ eS6/ǁ_M!C3Pr7\!anڕԩ R0ȵP?j*`? W|@׳b &Ald ~B9 灜IX3ry05#g04lxS3&DtCWS'0h^KAƆgK%gBӀ7f@z(Nf&LOڠQv6H g4$q4IENDB`poedit-2.0.6/artwork/linux/0000775000372000037200000000000013230132101012616 500000000000000poedit-2.0.6/artwork/linux/poedit-validate.png0000664000372000037200000000107113230131546016332 00000000000000PNG  IHDRĴl;IDATxA"mۍj3lؘ͠mEڶms&kͶ{|rHU^vlڸ}[mژ'-8r9T*R*YVs4 i:. ދ ".}6Ν;E1 b$EdR) >B1&EZ!L&82sfYX|5AYYV8hh4"` sZ|y3iO1yb>\tRv7H]cbAns\.t 1iLxPA1b!A*vͻ|8MnFJ4&iOg|dڂ/k{j| lҮ/ّrz}.:хרN{K 2 %~ie:B-k&\Ȓ}~Yb&?1@>`0H@-b=|>uP(XJ.[7na޼SUріы1111111этQ7jRbC;IENDB`poedit-2.0.6/artwork/linux/document-open.png0000664000372000037200000000142313230131546016035 00000000000000PNG  IHDRĴl;IDATxEp$GE6efffff7u3^̸̞̻bͪuzq~s" k bq9<`s1= C#_}͉P?6 B N;m| )v؁0 $I ēO>_h?y}XqOm/ŊC(̲=n<>>nk}0/֝*44qÏߛwt͈2:Fq*6݀lo;6v6>[Ƨhm%ySO=er%4yes7VG 董n]|"t]B=}UJgrB:0]l@5NjXA* =6?DZ[7x?xFn zG9jz+HBᨥjťP(0rh.X\q Gl_r^Z\M^\ rdZ42S1KY|d!XMp5nb遶 jtvvsݍ  XBc.z[hRahl}pA\@Y0gm 5fD% BL5uRB=ckM9VTV".%P)`r`ןop!P\DyExQSYXxI!QXqxQY}-F Rg;Tn*vu OmeQP<؏ /:+Җ!() b- &DMH7 E׀Du- CTcY>…fcd8|[M#.ƙ(v=ZO?E8'@ʈVnh4Z/^Ƹ|T׹ग़G=EJ b8n_%xxۜ9s cVr$Κ56{Z'`\.K,Ÿ{n+'&oid7O H Y vZ{i_@|F^`O0y {ZGH$ٳl{tbK_[jIENDB`poedit-2.0.6/artwork/linux/poedit-sync.png0000664000372000037200000000245013230131546015517 00000000000000PNG  IHDRĴl;IDATxڕ LWǯ<»e9 V:A:8SQ(/Aj!kpE,M,XK6[kM=/{>4 ;Z;QwԲ66spX^T*d?$&+uT0R?/N^C;Qk!꯶Y5ᶺvrO6ViY.RylK4ߡಅK<;5\Kb^rY3Y.>ep81:G~;/`즆5  o5"w%3):~^_p*?#OK泶0a4vZ<>5 @Ae**KZ0";J*hSyS/pGb9#\g3NC ;H1=#Cز} WuTpWv[ e--IWo6 ?3ߵXh#`9,'_FQXhk\.wzswHg h3f$#EMB7tլ皁0ZU7 -9% 1̡׺l둰:cryGVQmKcׅ1h o5OC7q'=#o GmIIi(cS 8mXÇ}&Q0 )Ioi7f\co|e~RbBd糖jډGm{jޟcY9,yN !>7_BNyi:g n##M;kuWhZXؕFa>^\N3նM$иuH((uq>s1|@QQJD3_ZZL!^tflsM!==Zmj5gD"D" GDDر9:_~ӐVX\?))_? !|||BBCC֭[WE.a Ǎ>cv8b^\0LlL`7Y//%AIENDB`poedit-2.0.6/artwork/linux/document-save.png0000664000372000037200000000145213230131546016034 00000000000000PNG  IHDRĴl;IDATxb@9s}+'HsWԞkf L]Xhh` 07Fc7Ѹmxm۶mw3>;I=U{|Q9Yз'd=B7D:il =x7E*VF`kPaz>Dhzg|κZ?װY^ڷ^NB.F4+o[<^^K3#T5Һ)v~ү΅3Z|/tfoKICZT%C锉-zc[yݾob޿m5z.Ww'Z^^f KKKYDǼ1b wa=N,͵oOv@Qwe/ptv  ᕕu\1,]hnnN0Qedh\8RT<˗/EWݽ޼y-W^(tޭ8+dVL3  EO<`Դ***:joojjjQVxll(22);;򨦦nv6QN^9 vr9O=y?gN=;ֻ IENDB`poedit-2.0.6/artwork/linux/appicon/0000775000372000037200000000000013230132101014247 500000000000000poedit-2.0.6/artwork/linux/appicon/24x24/0000775000372000037200000000000013230132101015032 500000000000000poedit-2.0.6/artwork/linux/appicon/24x24/apps/0000775000372000037200000000000013230132101015775 500000000000000poedit-2.0.6/artwork/linux/appicon/24x24/apps/poedit.png0000664000372000037200000000150013230131546017717 00000000000000PNG  IHDRw=IDATx4GY{mضbb۶mڜajk#rjTO /~BLLs9=@K Eh nWB볝WY|G'?cVdI;uL_3|"_? 7I' 9$Y*6Ϸ?4#@P4$EA[|K0JmKkP{ӈEVvb@kƝ<i}ANgQ9S]M1_k!".jEG`YIF!I^%;>J32e&yވ;{Kx㞁RLS~qrh"Zk)gs915Њ=0Jk--?~&%KTDd@(iZ;\r߆`$;"xI#].[*EXlܴRͳ K:Y g0WaXV[>fC5#sk W# WIENDB`poedit-2.0.6/artwork/linux/appicon/48x48/0000775000372000037200000000000013230132101015046 500000000000000poedit-2.0.6/artwork/linux/appicon/48x48/apps/0000775000372000037200000000000013230132101016011 500000000000000poedit-2.0.6/artwork/linux/appicon/48x48/apps/poedit.png0000664000372000037200000000426713230131546017750 00000000000000PNG  IHDR00W~IDATx PTAh3>N1;i35F@XD*`A|!,((Uay* 7PcyAqA( ,Klfrg~s=s;#e 8< iQJ|诓x׿!?'tw\av 4)c~Xv {p9j' ·"?~<\r3  ٤6o#4{32m>\e}ti?@ZH"w~֟+Պ& iP@lWϹycyߣG<&Pn@ZH#/ؖ棜xo0 n'i -I  <}S|*"#Y[Cp[օ>  <0SIT,&S]!4O޽{M̃ףמ:L=$?[dSwDgqs7Ҏ;=?TNY3OFg.7P X8ZL===7vVb51wTJAL<7!vPaS!0(*> X噀̒*V߀h ;P8x7~>BR-njDXAR^x|)TFgG Bwx|mS'. tuuu|J*\U"31@;m l# [!. ܺu 0uic'¥4~!.τPrGD,]Umk);4Wgѯ^oXD7 m{❦8deҦd2כCzt2Z כ2P1>pqqf &atZJY Wn314*7%cK~ ?@/xuE W'ĺk I33UhQ| WLD=h bB.oAp~Uy|>/\)z||6pف6epn!e\42>&BY97'f"99疄؍#|1Ԏ?Sv .Opub(ͳCsP{C*Rn!W)hk؟-acꦦ&s% LP88s6T_OZ ԯMt[MH;rL*oQ!t\EG4e| &½r4T -șk -IQ{B{kDp D_dȊN:=YGemݼRn&E?%4̚6kye. h}kpL$i?=/ Oݴ'DHbrBd),zs[h2JH#= C-.O Pn!&M\13.ӱK ރ/f}f C\<ҤPm41`%&&&XDW̮?% \&rL022ПP'sة T1IUr 0̈́IENDB`poedit-2.0.6/artwork/linux/appicon/32x32/0000775000372000037200000000000013230132101015030 500000000000000poedit-2.0.6/artwork/linux/appicon/32x32/apps/0000775000372000037200000000000013230132101015773 500000000000000poedit-2.0.6/artwork/linux/appicon/32x32/apps/poedit.png0000664000372000037200000000244613230131546017727 00000000000000PNG  IHDR szzIDATx^Ŗ{hSg?&MNc^Զv^96W:@@dl n. 6LcsCJ}qQqnw۷&mҴI($m ={><ÿ-r//4V>G?{iė(./+IxXRUP0yI0LsGqa!i5t&˸bH$Tf#S,\ 2M&~bJ TŰr k0]aꪈ%Ӵ.@ ?|]t6Zm G9/fX$\ins` tm|@3 3RP$ <)u`2V6ezy&} 뻵AY Y+o~>CR1SU,ɵ)gaSnXT9=q:Oc3G}Ο8wHnHyP/-Y,jn^ˤ[d\ik,tvU [?^O1a@0|qebmc,4#JyUHNOw/41$82Xfl.L2&36pk->B8C`0`02:'mMY;iq*p8q\"rl*=}# wKq# Vf M[ؤ`h)3XG c1EK{h|)N{@`VT_M7oFe\:4D\#ʳkqT<6ۏ fE+k0:Cq6vy/\i x\dQ`N Vw<7" FNxȵے\@w< 7,c梑oqV ݸWɱn,zo''vaj&Urx5M%ʫY/WyȑU:+w' L0ТV/:2e79^l;{s٣?Dlȝ귟|D#ڬaV+nv^͋uUb*j{ӓE~p6ܸe:88Q am B!jqfחFOo{h/z2+}sQ'lI ,ZISsVEcH@$A UyǢp WuXP00F:ۇvɛm^!I&/Od""(G`֏L_=5ըNUQ /_YC P,GFᕐ-EI压UE9yEtn~S@Fl=8q~`d]?CHƤRU 6 d%p#'S( Ƅht.:LțEKZQ5kE9g+O?GW WY@ί]cNjN 0  Z\A6Wd W(l [h4˪nИL?_s嫻y.H lP,'31ԧsE4E: ,B,IijP =߽rm~B~uU_=Sщ5F&!A,M^#l&(oˠ끷Nc_@+^e 5fz(2Leٶ*ۼ}' c{a)"Im&wj~[%e>[M> (&W$h.0?WA&ѲxBв~Ud|b:/<늘Cm3vjmib.1Fx~cUe+~x+y5MLh/0{m9iϼ6HIOm6g3ѽGF5< m˷b~Y ^eu\2/7sl#),ĥ ?ɨ9[8ȡĪ4qri\* y֪m q˘)DOH?14lk0-ݯ(Tvm[Ζʼ6@8ls\w,}Y0D"Tr5$@&|&böǖFX ⓕVH H(€7V E?;z7_t/r¢PѬ%qRs2z:t+_s^}M'ſ:C}OZů1T@Xt9'"p ~cd?)߿@rƶV|;Sŏ-ǣ=sm0w`}E@>eh!fhGŸ/߿/=fI篬Nbq9q7 3C,t%)d39( t=]}x澗!h_ ?9coL7^}<MG,atNX!:m/4P(%xhJԏAj<ڦI5+:puO[Ť0FLD";?Ѷt.5p(J<("G. SmR*Ν?G htU^"R-"7 oyWJ1{nLNT;85)h:twIJE1L=fg2 $bD"u5@}7Swb݋28T@&lYGe]BMCMˀL<üfSe=Z!gs;l&\?xн(!ʥj {Hn!twp'`=[X2!@Pб?zQQ2Wv>ǡP9ݍ^>d%P0I"nt2},;q7{y 2N CcxCB$8w҆fz ,G}FK7@1T7ܻO b +{E-97_~򾾯},xωkO!y?)AuZǾryj魿>ϩ{n**?r\rhKȭ`31~ҨA|e҄BOM>>.YԌ.0MeaD hu5fEO!_~g>lU%G._ 9Ny eH.?C)~C\\ׇ D4~a0M9? 4S]16Vp.yrDP**`B.~X .f v;h  :'I" 3L`H޼&G썎wni?~߸ 8Ewh@xɷ^DjQTL+o @8-.ҵGN|S9 @D2h\_aG*/}=i % :uN_k\@/L8@Dв{Gʏ Y +O/@v0\P(е>*x|?Ͼ}^|C{em1~XX碌\[-MAvxF n? 5qy čF# e]hD,[YYXH[p29^ 'EBK,- \IB4naTs#djSP($FNEEe%8y܌jL!6%ep:\)G.eߵ )mg߻^0Yհ# aBWcuGȉyXlV\5}& צ0~=E⏌XUbce?8H_,$ ߉'Ɯb}ٿ8Za( [݌$IXVhGT GFSS.EVm"HT788X̿d?x/!LGC.[]i+R ȘQ|}~FT#YG)P DeXT[ŝw1Hn$$v?Z133323c2ue6а)<'щ]Ont~̱먒ޙ?wz0;D,C.C0dvVB|(/ `G<y0-],|{`k_\D2QAFzrkmi!N#_(mmmA&@:f I A(N-.N+G^xuD@9.N-ECAkc~BW7ى5k֠`eFFF0::96W);](Y`Ϥ/Tؿ2ShJ0DAP\aG#83Z pR{ W[5l0;;z|>ώQE^1 _3 o>t*5KI$Jr~Y 7 |?@ˇ;)  t`_(fc`c4fWѬ]R/fF4H$shEkG188 P. e! ~TBӴ#ces=9hK]s0W #kH$7FA"@.!-\*Śa`XBߘ7|leŒ,,u 18٠ZbGp44`f +]S)]9p8{~䜓w៫=sHY>tBp~o h@0^*_r/ 4삟&tC0L6 U՘v`jj 1/f#mm{jTs˽,'?88V9x0^.7D!K%l9ukז̰ƐH~o{`#E_\_xn#ROo2ɊH[C5₶'0{-~d>6( ӄOب<(lG0?" SSxװn:qW_y1q*pkAҐH!৻@$`Da/C`gzׇ֗^&Eמ&A=r켊!0 ,yP MΤ*ty]]ghMˈxcנ}h[Yz?¡#( axiG5Jm)pyo>U(kK1x@*/dAuVBB9g|c9CXE:3 ښѿ" Aɼc^;P °?J ¦Mz( ^ٹT??g no8o>m!hj)-JJs4$F !Tt9 iKP݉020}V(J E?khb7nb,.3)EMos \vf^M"itho։/'Tao }Yh ? a4Yв,6Df033ReG{#Omyޟ3` HZiyhZ37'0ߠx-PFjnMlAy=kΦ Tm{E<P8AdP$Fmn%>Όao"\yFqyY?44aKS?K')`/_S0M t mq냘 L=G6 Z9tI\!*A QP Ta980ګxޞ-.C!H$P 6C!%ό&$Q (3[e|㯜x$I^VƱUt7%pES? q?H$' 5R螁j`-45%RC!@W\>̔K:DRj@DcYPjh_qG.;J$ 5Pn(n&TÍD y9ŸzfHD=_9~+/@ErxnY|nð SjYOX"xi?}@ /Գ^RȃAyۡ ߞxF _Abp#_ԿK_`2!>*Ag#1!B2A/&ƞ!n@8DR|Q3p0;ޟ5qP"Q Y?qqx ODȝ ~Gpɝɲ`oֻF9./xpS=-;^k\i{qrRM lܞ5I}{\Mɋ f(qFT Y/W @,iuw;z8kg xPC_p wrAFr?+XE  xvK>Ÿm`m7e(nxvDA).ی\8͐X:Js?=iٺ^!1?+$sHJDPY߸xh<"s9{pKG߸W3IiQR#&W}%+% ykN~>|q`GA0-\ϽWcO 1Iq:#F^.e*wjދ~h `1_ؘW79~0M/݌~_ϼssq|#6߾Ez<܃= _U~Ͼ# 4m$T9}Ȳjd%i1Y&l'Mv~q,R1ӯ^B*s_zM9STe:={/ 'PA"C\ϿGz(B,j*FT)~,>q1 %q`' GRx!HV.f(ٗ?\ aO!;q?R xoa.Wf]ك\J7q Scx(ౝ#XegB-\~V?sd*cs8Gy/Q!_s?3Ƅ?'st=R$+5 DFS<;>g}`8*Z\=}*:X̾q=F=TgQ|nj`XE&V  SE2~n둗K1T |lfjG6DNM$jr7`xl _ bq*gwqz 8> r%l_ZE<9d%AOY߂/'. A!^NqqPwUQ_dH+wSw@^A@ဆZq*@JKy/E'"na*MCLWeBP%Ä()Ie(xl.G`Jw8Ÿv%JWJU2;"( & [yUlxeߙpUרJs?][b|OFXFΏixxU}O3_(xr(>'Լg :sgr~{(xjSP CI339>~ $`QbGNJXV|b1e/s'ߟS1l.Ibš7|z8 O~n[9K~bb | TJ>_{9pmk#W89?'B_ Mq'o;Ǵ#tq& :<xmG?{QZ>|h4 炞{*҂;E|~'{Gr:VϿz9޾*F`F\+?㹷Ƒ`Կ ] o,s]X6Gw-xb(N;ǟ~2\Ɔ>Ium[8[ӉsWs;n]wKŹ> ?A Fe,BL__舳~%?Q.\Ͽ7rn5op9UiL7B_[X?!I4 g¥D͹{}/+&p뛩=pǶ*z.yk3~6@si/9u3x. C Ԟԟt)<d|ϱn)! E(ŸtVcffI=ĮA# rŸ8gDp ɼ7%3(ßCRPH$XYO 5>C*qnGYP![;ͦHƘ~;!^'U˨K@(P%G!2 POg]?T?n !BXiJ@]?R$AKzX0TMQT/GsљCp#`?.};XwCV62 (`#1\MCbɇ!7/Iڠi3v4,7f|ӿ.æ46}Y*3p?p;DƲQy}>i~QP Rpo_#-ֺa_/ED!7/\G 9Ԓ}V pCe=(լ ?gO6Vv3x"QrߚƷgq.܍MؓT 0m^]6nBBOUvKl 5McaӰX j=o؀ ^Ꮒ،{gc?slg~@֖c7Qay"R;?SasEasA4m!Ȃ q,܎ב{c' %HXr_nY P[ZqǰKpŸBv#? 2/`yDO |װ_1! 7wˆEܐs8):@_WO {EH#'-%_o ko_UM!)@*PtCluD+ Z?81qw2@Bu=O0U$F܌"Y?&Ry՟(t_` K*c_3Qbq ??3~H(#@mpr@ICo{;hNY߂/',Gr?iɌ@?(>'y/lZ>XF Y:W0X +mBX[8?_%o 'm[e}%N6#n]b*z{O$'e!v8iz{//vb&x Ÿ_i2@ TMٽ?CHsKD/c@ 6B~dq1L4#iv޿"CrbGjd580o մU_:N +R'",FŸiʲ۽?{RVfy,؉]V2۞F” ?zP&)UU6nT#{uH?IN꯿NŸ=o_:V x-xAfS :s*W7R 5g`)@fQﯴb՟9;g[8FBRh-Ÿ F_YMmݐ#jgu*60]*.YcZ|S^CY=6` T" g((Vcr_Yڭ1]{?׺TKe=NsI8i5Esv֡&|m@`,'@z5m.,)ƌq)zjs+CS1~މ 3P+DUz;9K)J<'r;p?* ?{h?x?+~?.fwd8y-ٟ7-XL?go(0/Q %HsEAA{JP53Wijb|!MMhT)TUP8?wgy#|(ޟ֎Oӏ 6iv;zwS8-eY0- {O(D87MEuNʿHM9%4 .{v)%Z(|֙ !V_d7\ϔqEE?.Ut:b+֌ O=QoLÀiXR}~_xp "P A4"n^FiiX&kX1a_ľ.Ґ}.!B4(ܘ/ggQo!::3d4s+r+٢n?n&, $b+2$[_Z jDFIYﲅ?'l"cqPO P2P X.@!S!9=ѳqhӋW ߁\]ȒMInہcfff cfffffffZ0 6Iʘ ZǕGd%TIN#4,P[㙉~ְ/imuvl{$@hᒆ7DM:ԉ޸ .1:ǯ?aVX#;I6͢հC27G}zߕ:J!v!~WHx5AC4Tomуg'Ϣ)ɟ@/ {SbWB? oVwm>WR7N춂;+Cy z2!Oe2±~ѓeAۜ ϡ9A/gu=Zywl$sc@7~U,|>,zӧIθ3_rh>#^60Jvwi $|@~ZT.4jCy]SƟ6]z#{ {hYIϜ>ġZ*Ka3)ߙb& އIwǨIͿ_oCk]p7 +u,nMr()3 V4s8R)S+ĭCQZ[FN|uaLMJqT\0&HN iuA@NDvt,gsgoII?22B466@kyhXa@ĹZ vMm:QBDB "sI~4ب54W,sܒCDCgӀn@{@nսݖ:leN[ػ-0Rrw_w̥zu0ˑ Ϥgxݧ^[|Yve^/KO~'=~lY.|-|>_ϳ gHJ7f^MG ]X)E1"T+P*4TVZ)TPc:=7ISHϫUnSE4VX:_Y3gPމZAڌ>P^{ | >̷i?RM|y>w\`^2\^ kwk?BRĤLV8DlB*E{,s6yNHAF_tuAq?1d25O-k=ͯȚ5tB9A$9Xk2~R9߂/>^ӇΦxB#MBݵ:1n~M5E#C'(*OzvAϢ@@acG@!|ZS+7:SPd.yLRqp5DK~~/RϯR ;wڿɦ$1HM(n_~nֶ*)]!؉Ó4>\I;d9de*/). &Fe7wTApWY)#>H (u@^<Az##pH ƾʣ_4SSd+K[镡{ףJD6}MUɵ06]IO_R!XXmr|3^BlyiԶnvY"uHAc oLd hßeVvwq1 ,,Ad02p}v딚}~ e 6w::M&G:T&N@D@ecwwyo3Qw=&<It~#U~^0zhk[~СS篡?|5k8WN>泭߁bQ5[~sEHf%H,M)28O/L`i9ptJ +Pdvx1(0{2LH}NONsM?D'(Ob-{V:Z.3v"kxYXm 76F@SHv@6-! PDw9:eU(j(%Sthz B|A@ .g`ˬ=3nPф@:~?[zQJ|ͭtwU*(ɯl\XBv֩A|* ,H GnWZ˄BmN$oHeDt MnnY߿/&hEݬMc6_2ⷲ ^[gv?!zO eYe!us򋳊 D&5Ga8מs+d.,uFqvN?=NUf_(n3 tb&,>=*OU>ƶ,/$`XaPo@ڮ\t}f`cEv</d ֞ /}o/ Vʁo,?G~huܢ0Z0+ JDZd'^-n,k;b݃RX=ځ!5sɑcFC'U[9=jۖ ˵1rO6Kyt=Igs;Oё8NF[m?\5مƌw4KG6i T`i2@GÀD DtJC^Yh w=,io8Ͼd@$kH4+f7OBG/Я (BJl^E( wf bY|>W6`7xE %QKX㯀ic<Р<:]F,  'JLf/ix˷iy:p}"]B9h,# 8QD\@dO @A9 O4>i3V=B!'/Ze7ńJ]dy<3֣zO;;@'q=d{ 0| E֦[sD>{ ft04,H_rivO_ixqEChӢ0#+lѾJHcTcb6vW~>0Gqc$6t@!<_"_.tQ94ɻF-tayǼµ?z!od,@ h= '/7 řD m(LHq_)(B}ZV*~t2}_|/lv}I~}ix}^ ׌T4}cdHIB 1`einSٔM?|j5Σ!,;`XC|R8s :ßR_/FӐk7Ғ~7%}КՇv۽e_MFoYV/..7{ +?ʹ-H>•Pu՞}o'jB + 0/A3 "n ~_@a%¸į7 @܍!Q @43^4)ywZTx- @"g&dJPaI>,LM!Y-{m]IENDB`poedit-2.0.6/artwork/linux/appicon/512x512/0000775000372000037200000000000013230132101015176 500000000000000poedit-2.0.6/artwork/linux/appicon/512x512/apps/0000775000372000037200000000000013230132101016141 500000000000000poedit-2.0.6/artwork/linux/appicon/512x512/apps/poedit.png0000664000372000037200000013173413230131546020100 00000000000000PNG  IHDRxIDATxCA (| =LlRvf{E;VKXy. (+C? p_~' eПg%8}>", Na ({g&Ǎ{fvk0z133{<œ\93\̼ӭ7jvuFպw2篬nMVU+~GڽnmoX2Eyd7\؟%>5'z^=9G'*jo ыk;{u=E6@o!@@Y۩uoϜOO?6'x}ϛK{ 0(Du~ǣ/n_%K@FPF{ej٣ b8B}c 2qXF:W9 5Q+} "(ׯ\}gsKVD~x"ՔSj<6 x|UfA&|X|L%CEQ<_Cє@aBۋc/9.=Z/n77 lciw516#}֠ըO&AEׇntvu abD8y_? ~eY!@df韾~nS;ր P_WX3rSWA0uڡ}1v:[B#FOd>@s.>}ޭ1U̩cojlB]]-&܎9ي 6?R?!Ķ&R_߉5k`}g'`횻o/cbp(mT߿#:liEK Yٽ(q( a0 0Ѡ!8@ .R=xx><%I &Irj3`8%}o*2=e|Te?*7*: J? C!+9Ds*=j> Ad(J_B|? "ƀ`Pʕ+vz[ǻziW}wKKtC@3|0`]|C ?3ǵPR~ d136VaAQoJ 2D:h $FXc S!c)}X|y1 x'^~p˚:$Qm=g=fMn=cyͨ# ~b/[fAdH=!Aǽ~cJ^~V\5ʁϼ줏҇*=Qy o;u3Cji c/l ! ϓ@ld3YLO#+lrtuw7/+]x3P*_9ܶ+~!]'o?1dL--D@*"oOA 󤒞( z3skjkQ`` ̟ڥ>CU"JWJK)?wbi=ǸqObPB;@!' C  8LYv_W;|ns޸ߏ?i vA Z*}䣊-_s1 S0.ؙEWQDaz^򳞿s\V|K|oW5o:?~=}#=rݖPBMUq*roVvϜJ,YA;ޚ%k0/uQ^{z%XQ׊!UaNjc\1͚:bݮڼ/E0[jGsdK*ֺ˟Dž4׏ޞ/>K/ǵЏg*8~6c^kvo]˹g7ޞ{2*lKƈρk7ݛ^ yƲv{n븖;&Yʯ @Iu LĻph|UZ;̞xu=XE'`5Fw0cm^7MkK_v 4 b$Đ! RH+fk=dR{uw<{ j{^#v(AuuMM2-PV,BA9FUl)M{檋_[3{+l!_V/>pb[J﯍ה2xY_7n7gDZ)Ayg cOKidxV'w;kyUt9-u6J ;b2vC?P7 #CÄYk|8Tյ AoG"1TZ@O'zׯDϚX}X qY :%+5aB45Vf:OH{kqGP"9L*[삶Y;mr NF*[c as JdDL=ҵkm?@!0= RY I=-?SАjD?K8[v; ;8i έ9ZupvmNnCEjF40a9͍u[߅!_w\r됧y9D6]޿Yʭ:=kwgm{^ mS0}=E&_@qA qݭau B7\TSꪏ**̅GĿZ/'8c{0~V5ewn:D6rqwclwEuʼmGޚ_cǼpi~/6y>ڧc_Sz@cޠvmg_z틞y !O &~p|*(6 E Pn]b;Wߊ8ޅ J ƦIs2ukyEz,C`XI/UY  adV ^YX&} 􀩺Bq"$XQPdSUS0pQ: CAԴLG>;W0ˣp0Ƽ׏A9`X^2{?ʼn'Qu@=d%G|c;?[AA;E)$QEEq69 @@_{e6/q CqL8* 1oOlIIA'PQzutF@$ (ۥ_ E½Re0K׿WJyã(CmyPlnf}6 BԥN#4(t٫+% a(¤G,C>+?{!0&Ah?o>uf7Pʼnj80RD(u}cZ3 i@Ry>Qyk_x9 {X :)E(Du.A['nm4 vQSb DC=la5GF7 ߶OJs]~~u a`4DĿ<{a *Z!%PDDbڪ9F}D p@.(^9Sd4Il;Oz;-Az/PuZ<z~H \9_$I3ֿ\P=['n l`2CevPZTjQ>VuB{|,!T)/;==R-T6]ʄo)_g`=V;peGO5][OunZGv*0 ٌ?YU)Q~m%A0d!|d3߃yMQב0#W* XWAaMla{)˳OMz{i>sI7+1Ús团/ C b /@bu@a폿z=I @۟L% ~{31!Bgq* (Į#'l'AQ>֭WݐRJ~!a}c@׶@N 7BY'Qyn㨜+8mAQ^jƉ:X)Nsf G"FKZ P4Cׇ= vA奦iCkcI9P]# ul(y!U5  ʊ{e=rԭ7v*-sd9u+,JAQ^D=.Di$&BK]R1Fo0Rq'm濄k w;_J4_R~G@@*o}`iyAo I_W䰢F| Z_mO7@|vg-%EɯEn"EXAQDo8M /W@r[1"@ؐe' iVw/)= ݝ=񛯜w^A аlY<\&qa:˪_@yڏ \ImK,/U+qi߸O><K__wUAT"RY2fa6D"[pCj0V.] ~/\x\ ^Wk{%caY]̔1LR X+3셭ށӾy^[$/y @Q)u0wvU D٢{ܱG4 F3js{nx8.HXts.R4Db+hB?nTќWXخۂ;s~MZ:ݯ~:kuu}.&zݰ1xp{v93}v}ب+G9ߛ^oN^FcXR`kkN5,n%9 69,K!VÜͿe=f#i9(Q;:g3B٪~M6_~|wrkο5* gUj`X峚ϯc/wuv1Za}#!R;"h`Bu?_*Ξ }8ljou`'o\2m$w؟R~oI<ʭǧy(HKZpmӍ=MHsnE]3++rrH ,Ǫ+c/ZAAew;qOo_J 0}$AA˿"_y-  69D(:.C)D//-F6AAP>k\hH#/.wc+a `:&M}/ p)"c`P6o[e@?3 a?p.or F]I;[g700}mٞkt9uܗZ]ε\[=8ky%?gNVX%kQיf?EVmS"~wܷe?}~֯w~oE{^ߴ „mm. 1K d+4Xye4yNBJ7؏{Sg#ϖ|ck:&FRN;יcQ"~33MM>/"!"A|d0u<^>5?3Mquz_ۖwWB@0kϿ (Yv{Ԏ_3 XK!`x̛d?9kܴ_<u=C?7LJ6=2.=z@b Qך|[x1!j__ҨNUp-wܫ|Ξ~- oCXl-V.pѝMx쮧 RS{ ' Jux$y&Nj]vu_:]Ι_eYE`5+ zyM\~M贫 0Zqv++P TGPL(21o|?]?|Ԛ{ Fۄ'c3s (@)K\&'T'Rmƿ/$Q!|t]Ӿ|·>,+0qׂ b34i͓>44/>cC=P[B8WRzHK5޹둏^ޟx)T醀>`TA9X|- 6i 2:[ui_!yNd!RRGBG{]_9_ѹ{ۗ)~$&SK"oS@! cw?aA_:&.1A37v}ߓ|m&g[DcJ*H/f4;\>:[p ѷ^XZ%}f@<hˡ={p:vCYtv<:L}K/Ɂ=m_ߩb f~?I:ꏤA+m~٪ /mm*({_:2NB8qs0Ca~=bB? [?+{仰)Qj2>ZYp0eTucMsK`i-` i+7~s4~~i&{z7`/!3䤅(3Dލ/R)m5*\UzZěͿ;+$2RR\=\ݶ\VKmP4[;}/^ioL^iS06>_S\Q*q%{ v:яNM[2h` @T¶vǁ ry"-O4'?" _5ewGJ׾Tr2'[};9bos4i( 3 NbipeƖS0if @*tl\]3}oh`_@}H@)oOZW0eB`Scp%x^|M$bn 8~lAhn¼w+=)_yi[L( !c0~z+>4c7isabnwX3rkj Xj=6y E`^3{H_"AcrOztc"IL֏[qO^0KRDD[Չnz6w7BƖzAl뉾ﳤk?]FcK m韢MK9r[|Zf7M.['כ!Թwcq$ 0uzS{m_r?i,H?cI|R關}$=r= 8`_D|4xXtsЩo)]< c9H?sY<%_nuxQk莙t}wqN@~D02R0so;\bgMm  RëUgQJ8qf8᱘p׿! LдN$'0a֡;aqkpj6Z-\]^&qqC$gլ݅խF*n}kIl-l;{ǣf-zwo<mmԳzTE9?GgZlǿ?w:4  `FhpibkBĿRP;&`Es,?KF*kuIeMBؐůÞ9Vk;^wEoN8 -o=ZI6bxwu}a6?/cǘ?}1q?5mfHEGEFC$R]"CZσfЂCk {,EymXi` 59t!yB.݉F2I={OEj%=5oRv5R"57Y_.zUStů+}G5_Hc Ϧj eD.[j4: q;O;.Tg#,>HvK9Iel>QZПi@9V=Jj@5˺WKX"a(S𙟾A#R}XPf3t^?V> ;~J98Qd6.n;Q/%b Dm0Ϙ$x}gTa{Ac2O4j#,xݿH3Hc|Q>, k]we{A _Un(ІBm׼|˚VZ`ap)>|9!Z:a;c$j  Azn z*uEc.G&E?{WGd_Wu5"Y8fffff{|yl٢3 N/rs:Kwvc2AȀ1P3( Hvz: 7:EyEn׸A$@#j{+*#"pr( ~ADю !w¹J`H=݉nxl]D {F?5H ]k xջz-Xyh000000HX)l "!ϋG%].B' &@@%}(UlޙGqbJVZk`vWUؘ< ؀5NPvP󤸮+F !Vt"DR*fffR>ތ<<.$Kz$$|/#AD j%^-["W " 0x?H|i|w~  ^WS-t*%hooGSS3RP1??O@ A ϣcaJ^SZ#D*,([KQ)zפy&pD ^OFJL.RSɧqᅳ<֎A. *=6Gs1ܞIʤvRlE,,,AKk+ PR[ dζ#y[+X2KM3 ! ~Ȼ3bU/I䛲8 C*=O>YxJ{~8LC@HKGoȴ)H=GzdK`#r Qܙomm 455\@pzrhHίc,#+Z Ǯ5n Y^y~`rb5}OQG>|O9io9Oƫ><>s^OҏG ?TՀ5/ cǻِ,8>hf. <:oaPf>2JC^Ox$]$ߍ>^-\2n} |ZzN~&}G2%(Ƀp9"I\avfG |}1?8:,r/D!+(}|"kىD7P1t_W;{vgOPi!гrA/]"*oF}GռIE/rԾo5Tكj?)y}>=Ǫi I͇ݻK1j裛r2FQc X)ǑYUn<9WTB AVUPKKK58 OB&ƄyBs 6/s2%\#j7 QŹ1 hvc}'VH:"0+҈|+'wx؟D΅i#DK8Ͽgq'1>`c ]ؿ*آCb^*քoiiF(J-³D:* J^mwDݓxwLnvxT}ua?Ahy\#0x찓֎a````Xt If;a\6L@*s ܂ W477lnl ]W5X/ TeQMDb֕e`q}WuHDlL@`````5>Vf焜4aG'N"?==FD9`RV@^+I9yB*+, :K̵0Xw^=*ܯw-9:`C #"MDQ3$I \K408̣rÙ3gC@fO`vvpE/d?ld$] 94[-fOWbab}er&Zߦs``````0W"%*zJC#uw)@լ󷴴,bW VfH 9E x zhdcɡ)_mLш:J?#:h````pd0Ys~W`'!;vXbC ǜQך D)[[ jɇphzjJTxQN/}!gWO|q-[)Sh````ptP8v|еU?ڙK@RVpЕ0ܪjI +mU L8<~℠+mƚSƱ,,5xߪ(VCsTNw W{Z -ƚ`5f|{#;T\6%ג ϧ06>ΤBD3ϋQg*߳RE +_]7֤h'pFFF077'ama?ŹTZ(dk]d^ͯ%'1J)<5C@<9wNÄΝu"b^C1킸4[%#]C000000YK꺰8$# D2*-Jӟpp:d^@XWޗe_*g5W Tq. }]1WO*u^FPhlbvfZ a(=^>塒xr nκsWu_ ¸?Gf=3Yb Qq]'OuMb?=SSSd鞈RSP#@kaܺu[xh=sO>xvW\{}JU?r̀ V oTaU2s*Wf>8c2WtKPBm+#WLz{uOeLŽȰFz_Z$h Cd````p@1QP(O@@iظK( eU'b7sֻv{j^Oo{~u랿ۼq#d<?;ӯ㢿ϩ?}̣!{ՏCk"߄u]ύϲ׽#5~}{!d3UfQ}l:?2%eyʗ_5 + Z[ۘHB!Ѻ8x 7=P +D3TC6 0хf@_00000 H6d3hQ˹9 { נ<O@z+FBd# ;RvUX^Y'L:9jNjXW\յ >EDMaWqa9]p[=!z&M/ ّ/!V؂J^r\v!P.jTg M$M,.-R{l|H000008H9[h .~# Yʗq\΃=sj9ۯVEHD6aW/!/2]ЀH|+_~qё'f H~gÃ֦1 avJH@߉;|ςuH?)T4x^k['03;\579TǏSO=%nxn߾+??0C۪0HO!^t:V\@US <=W`I"=<74Ο?$@c  "Id2~AfÓ`J.I&49 YFO1y_?sv y uo7008l00\+>[X $!I;³M~]ݭY= y9s\2/@O;kNss =V5֜*#kWa````HZ pۈҙu2B͋B?c19(YA׭hni:;;l~*~4/MY@l}/sIS^..e efrMd;Nlk9Y*#vzqh${*X̋J t4OYa7'N U\rƠ)‰Txb^ h@BL&I17 9s栦7pr96 vrB]K}:cѓRwN,JHn'}t=sշ]K\_o3/V 1ZV'_ʁ@h8n jOrc#4=\x<ܹs容\}ȉN:0?Tj@Pϥe h:վͫdiJ]ʖ^àTHULj` :M_(~eN}=.&}0u۝eTi-giȕ.uF"τ5fgc6߿os?P D.eMBqP9Rh龳rS?*^u`V4ѿ)T牡*UDPl.! K.CCMLXzʕ nDa1M]vm,"0qv ܋tVopCG_0 c?D=S'YM$Al%kNgN*LBXZ=wkxfhU/J Y+MRt@z2d*?:Păx8&V?8a TRqJŕ+w\sIN]Nx.<죦i@&[t3:[Z0 /B:*h&VC! !BHm_K.Ȍx&`aJ=DP]9E? U4.]Ϸ^Sa&ٻ"|>' B"_="˃{?9 0L !h'TqŬMJC+օ#Hҏ?0 0%q߸O_EMG%񏁮#:Yx0 Jk/v>uTlEagT$ :NZ)?0 0AmpPwG$(0 ÈT?Rݫ9al>,S|Uϳ>Ba)ͣ?^|IA0*CQ4s8>SkȧtIjTaz?9АF%<7Uz@H Ͽyvhy$?( UzqpI\hHS/$Mbˉ6.߈l<T'F-Ϲ| >a,DQl.NR7b^}E}~)ٿ_y,8">sX֨ Y!t$ZUst$l *'k ?ͧ4`]{zr̞6/]p9^vxϽWoyL?2|uwǫn Mj{k.o}^]!pŻ{q4Iށa3ZۼĀDv7)TQS۩gS>o,(A]NHZޟrrS}ۡZ_ ; ,u`v_X|=A`Eo>ޚ=]N7MJ0d0ޅAaz?۞Ougo G,F}Gyvv)bO~"ީ,Qtt݁s;a@L! P8J=GBAebfI7ϙN80ҋ}`{dG= ! ?l8I[%1{Ͽ a0 yN$@r޳v = |«oėA!8^u,0eF}ZxAc!N\ @q`0Au[g+n93Qo9a[YgeMnvXnqn~ T-T1y«@aفƬVa$Ѷ x= FpfQOߢhw7µN&`t}`(R]Y MˠD)XI0=Qcf>y&C `#)GrP`* BG0>oİRhDs )#dRK. z8`n'V+ʦ`|HD}IV"BH~a;~. fo#rœLݦ0Lh_ UrFmz@Nlj]?(:̑^2:(̚^ ^] NIm-UɄ[#$Ѭdl偾?ȆBvAW&iʬiO^z@*H2#oU$ SN|Ӟ/LuVI,#P~z;}T/a_"}gnr Uh_WQ7Db?Q 'JwҀmM (}˒W  ؙɿ?Џ)X°5t1KkuːE߶ T*CD1Pn掠^C.-DPl\HPe~Rsu`(LS*Tw0 E6OAd0PL@a>O$ Uˈ"KɯC 9g C;OJSFnP Q0 4'|>l?~7?? 5Fn 7Jt;:qf{]U:#?|a\NJax'-.V??ldTsái8~.( 7%äY ]>P!]A@( kbUuy wߍ_#~soV!֋>%iLu].Z* UpӛWߪ&&gA~M3BSJآSa[ m'FX%.3/ON d;*¢ +Qܖ&վD5^-G=E)P#3eF6(Һ[^_Z#GmiY(A3 u'lS<}B܆߹u(ےr;(ΔgOSݏ2Y"rq@_}PW %QZS WΒFo= Ѷ]*IQ%l$SnCgY× >`{g0?u; DFU>/\@_(BWNWΨasw9\XوZqfS#3N*=QlJdA:U|?׋ Ÿ%fΌjP@z0Ɏ%6詇*mS 5L{(}à2kD0 sac,O؅T"UVǍKkAgV?0. ά0Tt9lz[J_M_k/@8~dId7 ÈYb-Pe[X> Jw5+9;0TףRe#D{TpWA."ǎϸK@@:iPGG+D zAId[>}*ԮA@v U&MYSa U8PlOb zOŇB$F w^CMv&Ͻ$aR*f鈗X?8aϾ>n?ֹӱ/ ŢƗ_s#|ŘQ')o%⟊*AO]ё0_~>? P *<.571и&/T'M{]5_}%yϕp:q ݹ'A$?a9.$9P@` ?߳mȻ-(ۑ= 1I_MC>MN/)#3P6lDXYzr9Go|7v;pݨ1J_ѡi/ u={;2J_.vT[V1“M3cŸm] vwgBLUΙ,,v`F6!^z屫<(6}n?G|q  119T2-i9C`.$@,)5ͬg_ab0>78Һ@"Ϭ)U~'JY0L>IsV& 6C]/QW`a@w TV^hQ[?HTYWlyx0 Rh>_l?}atzlέ߯ו]ΰߺAOXӽ'}?ʪ;VK_S}>/]0mKg:yK;|1}.yg}eFZ+"p}m*-崔 O `|Bb^1wBH"0(.Aĉ v Bq =VCÕ'^_-΁ӟj~B%eϔO C'@Đs:c˾a涁2.CA#<|'\) nD.dF+ c7) @ADO•ᔄBg^=+-y! G'@fe t{4bH   ug7v hf)?닜NA_Oy\_\&"ac_?y`EAAq"5DHE0\zHzK pw`vfC(Oj3 rAG[yh A5?W CXO}f\ٺo/r{tCd >aB2ܮ6E/4H0's^$_M ccfzz7}?_+e`y eQr-{9Lh "GΌO/cƃώCx(~kB_ =LNum C;# 9 )= qQY|6A{ uWs ǶM7HgS:S`*|o\,ig\K52OⱦVԓp44~SQ=0#ku#\@Կdwrwr*?G0e܍Zgdݡ^'f{Za?g"k"3YWvY^Ѓ@1<Hy@A-g= !Cgrr0!lAё sRJ?̋ϡ*EHWPY *3h?g"3=" ?S{TC 6 ?2 h^GUÕa:OAn?2 H'|cmXB8@A?NOMۮ•7޿ gg$'df?AD4va #STreBD@_yAAR!CEL 8`Lr0Ĝ<@ $C@!*ff* /?G&VHe9_x$K@!{t{NnsUOJQsA(`P~2 x1 V ?-p d^|pΐc p'H0 "h"3UGļUڴ?۹2 b* a?AA'{ \) ȄO3҄d SzN?dd p%(C!@ᜡVWW+jL9r!9C 2e |Z)Xg >xI?! gkb9㪃0ao'0pbp>I}n~lt13 2=T+JyjCJ\UHciddplgآ"V WC$1r%ց̘xO&y{d&c ˞)gXVU@zdg3%_hkQYDOz7*UW_??O6RWSIcJ`7"?0-Zi)/}xr|b!bB1NX$8NQ*A,5SO VȊU`,F926N f%tوϏ }.)$ssP)c ԓ W ҠZk8!Ǝ+uO(y'9$ցC Ae`ȄyK9cjoahjs_BgsZSQ1n{Nø|n .i&pϢ=cJo9P]؞y]s 6Õ*4.(>@`,1Dlz.u~,kc'xy6om8 ?܊]ȭXu?Sz3D7TtO2^Z{alRiPVJ#>3mLMWH8@w߅gxkUT/p~{@gp0 bc~޿R/@ 2X߀p_-V~"f-K{&E,M rHJL(&U_,#I/Adų^oS~1z˭?,x 0#SXr:0Ц*= /ydv0K.źIwb/*/P6XAO Abo#<: "c_6z8! D?|ŕ˿Ɓ/7>b WrSS0"tD$?? A^yj~n3gCC6zO]߃Yg~|~>*sNJrDroj{tS tT5tI`_gx}j?awn0AH Q18{ Cf ?~L򟹞,t2&fM|rmD.[76q5kĀoqH_&LVƘ<m{^xcy>~lw.0 <ƤG{#ϫ׉uX ~Wc!B_ LȺP #)`zDF}/UO]Ax^i7x.hh3oN@{V^{C_y۳7Y=k'ᢅ\ =g=:e91DtdLɺ6/Ow>< "byJ^$A.?x/3?ʘ\و_6BHj?3 4 "?q#iu.x"1]HzA_2 xBߍ 5ju֫4_@nף1MWPkoz1D3܊(CX> YԄ'UG$K# 0o,4d ?jO"O (|2A|iCaLD(}@J_B ?_QO3jA8#A4r 80QWcP4IXy}XD{]ݨ?A|?R fC9*]ЦaWҬ~2>A|.2]ւ1$20O FGos'WxЃv*6":q2]#rueUOa4oa T? R 1Pl# 1Rl|>Oz ?" l7+M7Af&ʇJah#2$sMO 15_ 8K+DDћny{̧!;mԟ||Q\_=je̬ǟ>3ϴk_c \6"rA91ZU95בCK_w?wͧ;/2Go3Աy^6xQXv|  H{*#|GgEߪPu%\xg;h?}==駀T' xičКԄ8J<1쯚K#@AQQȯY?3X#?f1Oj[ cwz9)K?b_F$TvY%{2toCa:1 E(s`@ S{93៙៱jO"!H\#$n= )s? +sB1f 6"WG ޅ2]0 t g\`pj0 &xih0j0?\,O#n5abJz H꧀hNJ՞9_Do:Ƹ_&15W[ՅZg"7i:Ԅjpe6:z]G"#0cgn6ݣ4X{N Bg-?--h88?'Py lo,G̴.C.Es4^8\) ڙOu > u:i<\ĉݐCNmhe%q0L I2o-C_! ?瞕e̯.Q]# *Ik0]{"9 -oR$W" 0;Ճ`L4Sy1H10 Ͷ'As(}.Qq0 NxxZ<&#~'P<:۶AcG`/DZ!/Tu \D?I1_$j R֛BwA}zm.'$+U) 4GcU1Wi] RGĉAcw|#3?2X!=iz"dCmg'D 0ӐS/?%bO"gyӇ.B?6ҠZEr;yd,!S'*US4_E" Rw +f?q NKҠZXr?d&?X$Sz) l+Gkdo/C4@?1O>ߚ V8sA߇`xY JE `лE$2Q7^G49w]_-,4P~W YZ7Qd R.gbQiws4ItBইl k1<Dn3c3oG+]z'5C8}a 5!¡U9˹ߋ,^ߖf` y+@s4G-gr]G{ߟ(#b36 B==!N kb~k1}ѵs$Ʃu^z&! :r6L0;xm[E`-cՋPv$ }WtL̶Mo̱m1~"|gjwߛj.?2FjNHDWFG)Fڍg`bʫ 9 7b{ :S1ݽz?ެ[߳z2,[vӞ7ӳy:pa,ZEHG6pޠY4/J,Dg7+r(ZHj\6"sׅH ❛g=a"n.dۡb "< 8;?*\mUG@}sX`*idP UA& GJ=A\+x=d(+/S h ze4~jk'~׷ b=A1`[J%X" }_Co| >xz|7 f.{{Տx o:f*UG$K'2O| w [$=|XGEcJw(毣oc|7aIAZvj =>j.Q4H^};9=o s9KK {J~ԄjJ9??u?- z-og&޲ FX`@sp4"E\QXx*? ܅/l0=tT >~\ 'gIGtGG'H'X ]ɯ_oWnZƐ[} >a)H'៫dcn1 j3|Y=©q#H7.0) "ӊgZ+K'hp zʗg~΂'4oV }rQ/看5?X2$35 h7v6Yij>IrJp I<.d-F?Eql<~>HP ZW|Waٹa>(gCCAaYOܦ` #U=_Oq.06`/%߇φ?IQ?&Гobp>/"2E2 TV_m(2"":ųϱfhh3NXH y0Kǁ]QĎx;v$@w\ :Zw lbvK|`ai ,f%"N_0_*.xAOAI  U܃UV\+ML>""".QNW5$;R'sH|ycAWNLP@rs ((#=<~K{+Gm!&emΤ_xaKSxi:{ SYZ9=Ա^5ʳyv&"""6֚Ph`U =M#@aX]>X_:Dj)l- vr@zY1.fFr8'껭y\zPi>,%͝DmߣTo. QO4Z a]@'(L "3k o!J@+CDDİ \F=FWB+E3 F)4h\w |ML gPu=6WoUd'6dߍ|۝X KyN]@AzzQdx诵= K84vwa(uDŽ(DZ\ ON@;0s?> Ǟz_R v@9Np._fܧ: v/=+|lpڈMǥl'c_BPK1)\g%{ 'u>' :(kln3\8x9RXA(晈)]SyN#ӌO$'yDDD\Z{-N\o;M%zP ÅLǑG&۟fIGqkD-0')O,o Ky>);no$߅{teK>x4b/MyNa"b){'r==7v3\Jol0su\@i4W'ۃN#O2@}>1I0N@Vj5 ayV*`D%|EE: 1lHPJp|@>j>)olzFi #(@ߠ?̟8w˼v381r؇f蛇PJov›OJau7 /~DDD_jORvw:-oB6'*9;N++GI!kl-^n.}.< gPqB.}<t\{N٠0?. Y!nhC;ql}mT3A ?^#&>_8~"{m+*27\qÓ3B\R0 SD$IIfnC'L-An:tB:3=Z?j{6VNo}?r, JF3}V@ߋ _S?LXusʏ+ ϊ+I(q-Tm#}Hf^*W`f_ncQ@-ql'fF4wJ~K&R~˧>V`Cʸ%VgN:o\n? $D":05s_64Il p=6?GHӹ +&cfZN?fw`;E#_eGRP&ѮCל&9|WNEDDċ;P= '+ov9fKe#3_O8~Ԓm?-$,B\w‡!(DbT,vjSJKoLhuT[+/7ujF$kg/KGDDX2NpTYZCP u}_Ɨ~?b} Xld3ol}0s 19K1Gkq図\ƒ!M9P" pYVkP˷o#ƒVs%"KQ:CcbȟIxod0]?'߿Ń7 Қ#} JY[m76zҫG&}_MXFҼW`F=R] Ajڴ]K \s ,o Eos{wn\w+{rDDD_f_~S!q%Oc$!ӳ8nw#X8uOf`fNej?jm0vvOaN倣P>/xv  / e I5@]K]\[=q?xkތ_\yݍw5}i4!Ӄ B ת'm7ϑl꿌9q+8'ߏ?Ps sh?N)4Wws+R3R%DRbl 1w"4;%kŖtpO336 N(刟#j瞨ǎ]힭.jpvF*O+NZOիlD Wk/E(_cf6frcCh l\Jx^,}}>{|Û8ϔwjP 8 @-HePJ{NTt Bm;Ŀ2O hR:8DlS#sIKI}ߋ.m~]6F#q_#?:@&[9k[xu-0:5(H!蟄Vێi(=})CDDlhJ$SK8ȳ&9A#v/_c"ft. ]c '{S #E䟺JfecmV8VIOtQ>/(#+\wf~0?ӤN,p\#?ȕ}5 NT""b604T$+C%$#ANSލou"tYpa׼/޶q=\/EG2@O-OZсddm^g`ZА#mw%5#&C@zڦ"""͆OAW|_އl=?7`! 't'l!0RHF'|_vnC l4Cyfꔱg%)q|'Y˿^)l 00 C@v#Rk)EPmV8 LʉF.xOSXYYGV'6?f,1ODg.?@]0 'Ι掃O5{Ӝk. қy_16'$N1 x)d/ iZW?}ێjԜl YiEvH+h7Gld %m???'>玝6v]#1Ӛ|snQ;:2g"t.Y7귊'7:CK3P[7>V0 + .`0K'tv7~4iawW:kaR"Fʞ+wNsw3{_W3FJ$eH&Gq<}%tXo45D/<7pL؀'7MH 2 \Dٓ2us ҙ$XrvӞ5Nl./83vi3@"@!~-D?;={cO>q2_8qOD @Ot9zo\{㙐U]|,50רZ͉345@$VD tR\D%*ޣ@1Dzߢk k=;8(Uv#}?@ ߠLO *> @X>_ϗF<35ZBIz|sLVVؐDajB8߳fV dGZ<|dyN2-N@tFDH:9w򐯺"tSS^wnblL XBdb*(:}lQ#DL٭~'em?%xٓ9 F#Xui+G& lZNzԩ5Ze5ᓿɈ"H>zw+u".tH#84ǎt9MMW10@zCCd*"@*ofVPU>Yl|PSF& pYg r]գg#\|R%s%#3Olv]7pP'ݷ4m#HXRt """a+# lwq߁GYpBl8ڜ>!m9D!U3npU4?~Y\Hds#wL?:d޹d`#Љ_;Z!};#М1{k_jz$ѿ\6_^ǽ>4 __`;&7Pl\);OS;HmAV:ۀ^ioZbIdJAx*@L3_|ˮ|R9KgtlHm v6Ylƌ"0(7҈Hj/7rI ȟvc# ZAv5׎3-K6;׶ tό~P2&w:Uc ItZm?W_ͼ a:I`B3u6ncSp+oeT)5Ϥ?~]"h2ZF"Z`pXIh^&Q7LcPU0$]dv8|E䘙133œ`wfw>ݯO믪kfI8'^]!Ϟ"}Ex/@L8B Pmơ|ξh qoULj \Z;2ϜyE73U\ig|/G~4?NBc Y7/ОN(6#B|z7y@F5 \L5zpMc`mt݆߂&dCKBa&f5G:n"c/c`?28~-#G_7l/= 6+@pA^ DO lhWܮO(o)\O;u<~śGN u~џg(.B dz2pnZ[!{7v/@ (K c$Xs9M#皻Ցg"wVt&x &Iz~k|zN3gT1Cl?k| L@z !CF*gn}@we|i"L&sQar\zýju߇a)x͊N^JTΜ=|T9S܇}H$_4ﮈ`q0o6р[y]T gf'lJE.agO-Ʈ5 NqM.Ԛfk={׿@JO X'TJDܐ?2,e7賣Gg7yBD MlП=/۱rJ (H?;_wGJޚTCv_%#?nNj֋P5z8efbo,C:@e,Wn\H5uA?|u7~Uk1>}!2l~t6@F _?~`ϱx/Ġ59QV87_B`"Ϗ##mx/ "|#A[x99~L‡{ů?K":?@(S DL`G-~1ȁ}w t(%C`gE&v?<\@a @`@  GR ~X?=rvMG[&B~N:sF NE`gY53XH! ^랮r31q h?21}?0͵L?E('?B2a"X"iG$$ \qU*V.sU]^oNl#EpEK<_[`1@H aOBArxɃ[9UT=%u[mh[_X~gqbr,?I|ϟǨv8;5 "Pha;z7|"6`yP(&o z\N ܢWm/-=YUz.HRq7'gP72M^1YB "[j<^BxxeS@ӽ.Yyfb#Vfj抧fUO_h4_?Jx}:"@|9B""x 2Bh^rA 657pT*Eϒd Z$?Yc‚M-%Vwo7#'0qQx%0$0W> f4  }=bXyZr-yϾhfϝU{OT}VU u[s!mjfȟ+|> z\ەm4{"@n,B[oPo[Cݣ'=#ԫM;T6C?ۆ!~r3値#pcs,x" cg"$@w5p{YoK kJ o׺mW?gg?i@_t Sy~ՇhŢ@ȡ#lC?AAⒽT { ?^ x{?C?tD@^_urSn_1ӳyL:!>6Dm9ǎ#@:|pV9+MKٻ䏧{ߎ* q$颿䟚zB"R1V.K_ H_1X z,s?0+ykucX3?"ʻE9>1"x!} {! #`-pA(ul.[$fpG:D C:E !t,pn ͹?fÚ Ŭ5gSnDA\u'a"iVc k@@  xbJzȘEE'Lg?:3ȟ?__ @ Q(z{[`󷏝޽{',J)P $VlZ_ @ Rbq0-Cي||zzz%\Fi /|>| "vխ}СC1=&O W@/f0iՒc>~Cɳ{^?^ (-zaT3qߍ& bO3G DA8&aP7O){ȹ\1'iސ!+Q0 F(T?T)v={Q"0%o+Q0 FGF(XtpppDp_ x/p߽Ǐ_wrP@'v죫2- .ytPz?hP̱G_ PN3~m1 m( AS.Q^%xvs0=G͖ Z)K@|ګPͱ93\aDZu; ̑E`3 lG 0^f`7(/FoK9nBRh @`Fivy 6~̺ <ιMmG%G4 ;_?F!wD0^x a5s8z P ýC@ hu_] @W94#@ 6`tk! @ iu?#8U ]7׷;p-`77*J H,k6͐ })T/jGqzGv.( R-JI&n>}ʀ@`!Bi`ܼab%eFOEu. spCcѵ ھ{i꬘Ћ"h*o7ҪDՀFO#(*$E9lAFXً1cqAV7eTg*?SA@R Ӹ T#ߏ8 ߾Ɠ&)Tu>d#É۫@ieK~ȹ)  /On=M;mOweTZӽǞJpmY5^iNE~cfmx]5KУL^?KڎԃI%_ 4\\/o[^2a\CS:IENDB`poedit-2.0.6/artwork/linux/document-new.png0000664000372000037200000000112713230131546015666 00000000000000PNG  IHDRĴl;IDATx5pAE_Y ȑ!ujf<63ff|ҎݩtC7ގOFsē۬Yr.H%?n1Ci謌I@c$L)>?orc C"Ggc2&"A e'1Ib\M}#*?z@L1(Զ.@TA$ |BʑG8[OmU^9h3*ЏLZ@Z=}FjI0!\]p ޢƗ^_ b$(ǯC4@ p^}͛7J\b@h#2 թP(Q1Pуj*l|!vR9nP% _x{Pƪ> Ic#`8s`6v踅D#tYObHdhiJWVV|p+֮_ūiZh]Bd岋sIENDB`poedit-2.0.6/artwork/linux/document-properties.png0000664000372000037200000000100213230131546017261 00000000000000PNG  IHDRĴl;IDATxb9jmdk@Dgh@+Q_w/*@un$!Ȑ+2M|9sJ~x+nzv20 0=F³-t:"T* r-3)iRHs^`TeZ Jg-֔s [])rl`\ba8NjjsuVUq~L1ŬR^ z.3F31dX?OFX,jmoմZD @2δZSkfD"T*t:L&c/e3[ 8,\NLx1xWX,R|$L|:p>q^q\gLʔAx8y_ALiՔĀ@, Z@lĎ@ n@ @lj@,ļP}0C~qIENDB`poedit-2.0.6/artwork/linux/sidebar.png0000664000372000037200000000101413230131546014665 00000000000000PNG  IHDRw=IDATxb5`LKKcUSSj?ƻw5koeeeKKˉ\Բߘ9 ]]]O>OMŋk֬ YB+7=/P(CE33:_vvv,;؇Fłi%-_:ɘ`dDځێvoڇ@Jw " p-V^UMU*eh d8mȂk;Pgm;%Iq&52<=rW."qt9~+2/$,FuLA6UﵼqM@KE|֏XԷ+"n7uE)l01@7or*~ǯ_-}"`V\>}"nzTC2hh0 ~߽{FzgFIENDB`poedit-2.0.6/artwork/linux/edit-delete.png0000664000372000037200000000201213230131546015440 00000000000000PNG  IHDRĴl;IDATx,Gc۶QVl'gyql5f9Sla.T}}م;)NM? )EсDQ8E8 Tvv_${@@f`2.b||fAb=ȉĀ3Fp~`ZP(@@!D"jŠX@ '%|&r!á())Y.Kf>]Cg>?G/>ߥ +'ߠ/hb4@OQz҆k ]lim^޵{guԙDGGCM͍ǎ`~֍qJf/PP; JAb2sMMәY@N^vgپʊ ZZ1YL^w&|#; dPeuEDnI~҈qjljɥU Vx= 9y,W0ģh&n+ìѨ-V &.k(ކ+aŌUTS\umK2('36v.Fva33̳|#v2PP}^JAMmp8>,0T-š[MbNdn>[g0hcc|8 >>4lTUTH":.Hs$;b[kϴv6ffg cwIÐ7֕(qcK 1ä4ai9 άNI$6!P|xRBF" @ߜ@OBD"3ts^v5IH|[O4eVM(`\JT XˉA | R9NCpO3?z#kׯ.@v\i)hqߵgG}.ݎė'OnS /A^l< yӐ!@׹-8IENDB`poedit-2.0.6/artwork/poedit-status-warning.png0000664000372000037200000000043613230131546016374 00000000000000PNG  IHDRaIDATxQP 3)w(Z`-5 ͿoIˣ> ݆@NC^r`ƭYq;f k։Ĝv l繟_/;&|n8+Hy`~Ch9mPܡ(&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = artwork DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ $(dist_appicons16_DATA) $(dist_appicons24_DATA) \ $(dist_appicons256_DATA) $(dist_appicons32_DATA) \ $(dist_appicons48_DATA) $(dist_appicons512_DATA) \ $(dist_pixmaps_DATA) $(dist_uiicons_DATA) README ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/admin/ax_boost_base.m4 \ $(top_srcdir)/admin/ax_boost_iostreams.m4 \ $(top_srcdir)/admin/ax_boost_regex.m4 \ $(top_srcdir)/admin/ax_boost_system.m4 \ $(top_srcdir)/admin/ax_boost_thread.m4 \ $(top_srcdir)/admin/ax_cxx_check_flag.m4 \ $(top_srcdir)/admin/ax_cxx_compile_stdcxx.m4 \ $(top_srcdir)/admin/wxwin.m4 $(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; }; \ } am__installdirs = "$(DESTDIR)$(appicons16dir)" \ "$(DESTDIR)$(appicons24dir)" "$(DESTDIR)$(appicons256dir)" \ "$(DESTDIR)$(appicons32dir)" "$(DESTDIR)$(appicons48dir)" \ "$(DESTDIR)$(appicons512dir)" "$(DESTDIR)$(pixmapsdir)" \ "$(DESTDIR)$(uiiconsdir)" DATA = $(dist_appicons16_DATA) $(dist_appicons24_DATA) \ $(dist_appicons256_DATA) $(dist_appicons32_DATA) \ $(dist_appicons48_DATA) $(dist_appicons512_DATA) \ $(dist_pixmaps_DATA) $(dist_uiicons_DATA) am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BOOST_CPPFLAGS = @BOOST_CPPFLAGS@ BOOST_IOSTREAMS_LIB = @BOOST_IOSTREAMS_LIB@ BOOST_LDFLAGS = @BOOST_LDFLAGS@ BOOST_REGEX_LIB = @BOOST_REGEX_LIB@ BOOST_SYSTEM_LIB = @BOOST_SYSTEM_LIB@ BOOST_THREAD_LIB = @BOOST_THREAD_LIB@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CLD2_LIBS = @CLD2_LIBS@ CPPFLAGS = @CPPFLAGS@ CPPREST_LIBS = @CPPREST_LIBS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GREP = @GREP@ GTKSPELL_CFLAGS = @GTKSPELL_CFLAGS@ GTKSPELL_LIBS = @GTKSPELL_LIBS@ HAVE_CXX14 = @HAVE_CXX14@ ICU_CFLAGS = @ICU_CFLAGS@ ICU_LIBS = @ICU_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBSECRET_CFLAGS = @LIBSECRET_CFLAGS@ LIBSECRET_LIBS = @LIBSECRET_LIBS@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ LUCENE_CFLAGS = @LUCENE_CFLAGS@ LUCENE_LIBS = @LUCENE_LIBS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_SHORT_VERSION = @PACKAGE_SHORT_VERSION@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ WXRC = @WXRC@ WX_CFLAGS = @WX_CFLAGS@ WX_CFLAGS_ONLY = @WX_CFLAGS_ONLY@ WX_CONFIG_PATH = @WX_CONFIG_PATH@ WX_CONFIG_WITH_ARGS = @WX_CONFIG_WITH_ARGS@ WX_CPPFLAGS = @WX_CPPFLAGS@ WX_CXXFLAGS = @WX_CXXFLAGS@ WX_CXXFLAGS_ONLY = @WX_CXXFLAGS_ONLY@ WX_LIBS = @WX_LIBS@ WX_LIBS_STATIC = @WX_LIBS_STATIC@ WX_RESCOMP = @WX_RESCOMP@ WX_VERSION = @WX_VERSION@ WX_VERSION_MAJOR = @WX_VERSION_MAJOR@ WX_VERSION_MICRO = @WX_VERSION_MICRO@ WX_VERSION_MINOR = @WX_VERSION_MINOR@ 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@ ac_ct_CXX = @ac_ct_CXX@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ iconsdir = $(datadir)/icons/hicolor appicons16dir = $(iconsdir)/16x16/apps appicons24dir = $(iconsdir)/24x24/apps appicons32dir = $(iconsdir)/32x32/apps appicons48dir = $(iconsdir)/48x48/apps appicons256dir = $(iconsdir)/256x256/apps appicons512dir = $(iconsdir)/512x512/apps pixmapsdir = $(datadir)/pixmaps uiiconsdir = $(datadir)/poedit/icons dist_appicons16_DATA = linux/appicon/16x16/apps/poedit.png dist_appicons24_DATA = linux/appicon/24x24/apps/poedit.png dist_appicons32_DATA = linux/appicon/32x32/apps/poedit.png dist_appicons48_DATA = linux/appicon/48x48/apps/poedit.png dist_appicons256_DATA = linux/appicon/256x256/apps/poedit.png dist_appicons512_DATA = linux/appicon/512x512/apps/poedit.png dist_pixmaps_DATA = linux/appicon/48x48/apps/poedit.png dist_uiicons_DATA = \ linux/document-open.png \ linux/document-save.png \ linux/document-properties.png \ linux/document-new.png \ linux/edit-delete.png \ linux/poedit-update.png \ linux/poedit-sync.png \ linux/poedit-validate.png \ linux/sidebar.png \ poedit-status-bookmark-selected.png \ poedit-status-bookmark-selected@2x.png \ poedit-status-bookmark.png \ poedit-status-bookmark@2x.png \ poedit-status-comment-selected.png \ poedit-status-comment-selected@2x.png \ poedit-status-comment.png \ poedit-status-comment@2x.png \ poedit-status-error.png \ poedit-status-error@2x.png \ poedit-status-warning.png \ poedit-status-warning@2x.png \ poedit-status-cat-mid.png \ poedit-status-cat-no.png \ poedit-status-cat-ok.png \ window-close.png \ SuggestionError.png \ SuggestionPerfectMatch.png \ SuggestionPerfectMatch@2x.png \ SuggestionTM.png \ PoeditWelcome.png \ CrowdinLogo.png \ ExtractorsGNUgettext.png \ ExtractorsGNUgettext@2x.png all: all-am .SUFFIXES: $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign artwork/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign artwork/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: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-dist_appicons16DATA: $(dist_appicons16_DATA) @$(NORMAL_INSTALL) @list='$(dist_appicons16_DATA)'; test -n "$(appicons16dir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(appicons16dir)'"; \ $(MKDIR_P) "$(DESTDIR)$(appicons16dir)" || 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)$(appicons16dir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(appicons16dir)" || exit $$?; \ done uninstall-dist_appicons16DATA: @$(NORMAL_UNINSTALL) @list='$(dist_appicons16_DATA)'; test -n "$(appicons16dir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(appicons16dir)'; $(am__uninstall_files_from_dir) install-dist_appicons24DATA: $(dist_appicons24_DATA) @$(NORMAL_INSTALL) @list='$(dist_appicons24_DATA)'; test -n "$(appicons24dir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(appicons24dir)'"; \ $(MKDIR_P) "$(DESTDIR)$(appicons24dir)" || 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)$(appicons24dir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(appicons24dir)" || exit $$?; \ done uninstall-dist_appicons24DATA: @$(NORMAL_UNINSTALL) @list='$(dist_appicons24_DATA)'; test -n "$(appicons24dir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(appicons24dir)'; $(am__uninstall_files_from_dir) install-dist_appicons256DATA: $(dist_appicons256_DATA) @$(NORMAL_INSTALL) @list='$(dist_appicons256_DATA)'; test -n "$(appicons256dir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(appicons256dir)'"; \ $(MKDIR_P) "$(DESTDIR)$(appicons256dir)" || 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)$(appicons256dir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(appicons256dir)" || exit $$?; \ done uninstall-dist_appicons256DATA: @$(NORMAL_UNINSTALL) @list='$(dist_appicons256_DATA)'; test -n "$(appicons256dir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(appicons256dir)'; $(am__uninstall_files_from_dir) install-dist_appicons32DATA: $(dist_appicons32_DATA) @$(NORMAL_INSTALL) @list='$(dist_appicons32_DATA)'; test -n "$(appicons32dir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(appicons32dir)'"; \ $(MKDIR_P) "$(DESTDIR)$(appicons32dir)" || 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)$(appicons32dir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(appicons32dir)" || exit $$?; \ done uninstall-dist_appicons32DATA: @$(NORMAL_UNINSTALL) @list='$(dist_appicons32_DATA)'; test -n "$(appicons32dir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(appicons32dir)'; $(am__uninstall_files_from_dir) install-dist_appicons48DATA: $(dist_appicons48_DATA) @$(NORMAL_INSTALL) @list='$(dist_appicons48_DATA)'; test -n "$(appicons48dir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(appicons48dir)'"; \ $(MKDIR_P) "$(DESTDIR)$(appicons48dir)" || 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)$(appicons48dir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(appicons48dir)" || exit $$?; \ done uninstall-dist_appicons48DATA: @$(NORMAL_UNINSTALL) @list='$(dist_appicons48_DATA)'; test -n "$(appicons48dir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(appicons48dir)'; $(am__uninstall_files_from_dir) install-dist_appicons512DATA: $(dist_appicons512_DATA) @$(NORMAL_INSTALL) @list='$(dist_appicons512_DATA)'; test -n "$(appicons512dir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(appicons512dir)'"; \ $(MKDIR_P) "$(DESTDIR)$(appicons512dir)" || 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)$(appicons512dir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(appicons512dir)" || exit $$?; \ done uninstall-dist_appicons512DATA: @$(NORMAL_UNINSTALL) @list='$(dist_appicons512_DATA)'; test -n "$(appicons512dir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(appicons512dir)'; $(am__uninstall_files_from_dir) install-dist_pixmapsDATA: $(dist_pixmaps_DATA) @$(NORMAL_INSTALL) @list='$(dist_pixmaps_DATA)'; test -n "$(pixmapsdir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(pixmapsdir)'"; \ $(MKDIR_P) "$(DESTDIR)$(pixmapsdir)" || 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)$(pixmapsdir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(pixmapsdir)" || exit $$?; \ done uninstall-dist_pixmapsDATA: @$(NORMAL_UNINSTALL) @list='$(dist_pixmaps_DATA)'; test -n "$(pixmapsdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(pixmapsdir)'; $(am__uninstall_files_from_dir) install-dist_uiiconsDATA: $(dist_uiicons_DATA) @$(NORMAL_INSTALL) @list='$(dist_uiicons_DATA)'; test -n "$(uiiconsdir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(uiiconsdir)'"; \ $(MKDIR_P) "$(DESTDIR)$(uiiconsdir)" || 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)$(uiiconsdir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(uiiconsdir)" || exit $$?; \ done uninstall-dist_uiiconsDATA: @$(NORMAL_UNINSTALL) @list='$(dist_uiicons_DATA)'; test -n "$(uiiconsdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(uiiconsdir)'; $(am__uninstall_files_from_dir) tags TAGS: ctags CTAGS: cscope cscopelist: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(DATA) installdirs: for dir in "$(DESTDIR)$(appicons16dir)" "$(DESTDIR)$(appicons24dir)" "$(DESTDIR)$(appicons256dir)" "$(DESTDIR)$(appicons32dir)" "$(DESTDIR)$(appicons48dir)" "$(DESTDIR)$(appicons512dir)" "$(DESTDIR)$(pixmapsdir)" "$(DESTDIR)$(uiiconsdir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic 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-dist_appicons16DATA \ install-dist_appicons24DATA install-dist_appicons256DATA \ install-dist_appicons32DATA install-dist_appicons48DATA \ install-dist_appicons512DATA install-dist_pixmapsDATA \ install-dist_uiiconsDATA install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-dist_appicons16DATA \ uninstall-dist_appicons24DATA uninstall-dist_appicons256DATA \ uninstall-dist_appicons32DATA uninstall-dist_appicons48DATA \ uninstall-dist_appicons512DATA uninstall-dist_pixmapsDATA \ uninstall-dist_uiiconsDATA .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-dist_appicons16DATA \ install-dist_appicons24DATA install-dist_appicons256DATA \ install-dist_appicons32DATA install-dist_appicons48DATA \ install-dist_appicons512DATA install-dist_pixmapsDATA \ install-dist_uiiconsDATA install-dvi install-dvi-am \ install-exec install-exec-am install-html install-html-am \ install-info install-info-am install-man install-pdf \ install-pdf-am install-ps install-ps-am install-strip \ installcheck installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ pdf-am ps ps-am tags-am uninstall uninstall-am \ uninstall-dist_appicons16DATA uninstall-dist_appicons24DATA \ uninstall-dist_appicons256DATA uninstall-dist_appicons32DATA \ uninstall-dist_appicons48DATA uninstall-dist_appicons512DATA \ uninstall-dist_pixmapsDATA uninstall-dist_uiiconsDATA # 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: poedit-2.0.6/artwork/poedit-status-bookmark@2x.png0000664000372000037200000000050513230131546017103 00000000000000PNG  IHDR szztEXtSoftwareAdobe ImageReadyqe<IDATxb?@&B )Pq 6b6" @Zi@jPz3}}4:`uGWC X@^6N@u_tZ@ ?Ģ@Wi](/o( TNؖ 93h%F>g mpπ-4JxJ̈́PjhI8`+Vy0IENDB`poedit-2.0.6/artwork/poedit-status-cat-ok.png0000664000372000037200000000035113230131546016101 00000000000000PNG  IHDRaIDATxc~UWmך5,3"ŀצ?wzf D`ꁇO4癎K,o>E*m0Ζgj?¬&]`ܤa_Y'_J,JYLo0ӹjԪyUHA+QNFq6 PyIENDB`poedit-2.0.6/artwork/poedit-status-cat-no.png0000664000372000037200000000034013230131546016102 00000000000000PNG  IHDRaIDAT8Pmk` ZD $JGh1J,Bf݈#MJ#WK7堇p}W =w ,?Q*[oḢ}vf:Η NFY2d<f2bļv{:CG(T Ĩ+M7IENDB`poedit-2.0.6/artwork/poedit-status-comment-selected.png0000664000372000037200000000017513230131546020157 00000000000000PNG  IHDRaDIDATxc@$f±KeX  Հ '6_Z"IENDB`poedit-2.0.6/artwork/SuggestionPerfectMatch.png0000664000372000037200000000027013230131546016535 00000000000000PNG  IHDRIDATxc@?0 T@C@%_^2RZ`?R3XA| & W]n̑s ԤO eVIENDB`poedit-2.0.6/artwork/README0000664000372000037200000000171013230131546012272 00000000000000 This directory holds some Poedit icons. Their authorship and licensing is as follows: The application icon as well as Poedit MIME type icons (except for platform-specific background template) are under the same license terms as Poedit itself. Toolbar icons are from the Tango Desktop Project [http://tango.freedesktop.org] and are released to the Public Domain. Status icons are from Mark James's Silk icons set [http://www.famfamfam.com/lab/icons/silk] and are under the Creative Commons Attribution 2.5 License [http://creativecommons.org/licenses/by/2.5/]. The Silk icons can also be used under Creative Commons Attribution 3.0 License [http://creativecommons.org/licenses/by/3.0/] (Hi Debian folks!) with the following requirements: "As an author, I would appreciate a reference to my authorship of the Silk icon set contents within a readme file or equivalent documentation for the software which includes the set or a subset of the icons contained within." poedit-2.0.6/artwork/poedit-status-bookmark-selected@2x.png0000664000372000037200000000034013230131546020666 00000000000000PNG  IHDR szzIDATxQ-bv" ( B&BP^D7 dJoJ=ʔ*Zr@08 ~sLp p@\PwFC\QwDs@l{K0F&w1v63E=IENDB`poedit-2.0.6/artwork/SuggestionError.png0000664000372000037200000000022413230131546015260 00000000000000PNG  IHDR r|[IDATxcPZ na(_8 5ipֈiCT<F8tN/\pDK&2.| fȄn,{V6sfJ'WZ ƒ6g}RM$Q˜ZuCrCԿXO5/s24Na]MNF=-/XK"$*0A^͟@Vrsܚk-?fҀJiz$(YԽޒ[f g>.9lu†NK^"IC{fW /`^s~ E?<2gBc/ Z9\w~$:R2.o Y/(6[T)Qe!.Ӣ(dnciY^Pu,fK$E_xOm:Eی!:cem͙$7kmwE&"Bk5؃3880ǫc“F}t`WtcG9$mHr3PkRB;`";'(&1 }چQG `UM\!Tt4WDa s+Lrx'KtCQcC7,USYԲ`2˸7 &(b";m֚T|)ltT K8b&B7EG}N.ϱ'ӝ!z-@p.5Yn^҈zYtQqkSF+SSaWB{QRKqr!UNGrxn>,9za"|xbZs!KlsJmΓ?UȏM12u'1qT8o`"W@OhQƥV5ٯ\FM[e‰j! nPO@ܼ$AC@ƫO 6*@L[O b,hlU*#zyȕfpkukZQo #T0w1裾-^u0?)\\V.9 <};֦s 1/qhsvne${i0} {{}`"[A5IR{϶} QK]*_Y|0"thK3V[ait&5!op 5]O9M ,p#P\< j_`3@$ 18x!Xh&Rl 6˚H~|r,̐&P KPE#-3Bs(Fkghx29ǡ_j퇩/u~X};\<*U&WVGSCJ!-#ݯ*8lʥLSi=ǂ+6)}xE,ևT57s^ /l6 A]kz uhCȌŁQ[hx}]$q!N:xPǃ#^0F7ߡ4AhfdRZa*ꯌ`^,g o Y+xq p Ђ/A SFYFc'>c!R:!plCj=n`z݌w|+M\}P"Fgřn,b-Zd(%^kpêr@ @Ę{͠pkote11R{nbq`P Q` p$uS+9 UDd& A`\.8xO6,A5' B;CS$r{-<\O"|][d;R3-6U?{Zyw4xuKG'|˧BzFV)fL631ɍHFS\S`s\k>9moyWm!)A(͇߈ eA\4jK > ^k' >w!b8ݓq?v^֐ x1&J~AGM4QU$g-9SPn{"}(aSTuOTV|]h?_Ʀÿ'vPji ,l~qw3p ) {"7`NBB} pXC+׆%1<y a3$D hMa?a PZqaeq8cha^/%@*N\6y$gV)+|cOCw3'P}/xLEs>w;KA4툽}/52v{K9zCxPС|Wp9T̩ࡵD8G&A3%ѥϭk,VIn y%umҮ'L@|Bb;<^h8N="i9O@^&q +,VBn9"? ڿ&&},2g R~4x<7ɨ/sӧF.w\>0>o=A[%+B(|kE  E|=D蝬:y~[f!L|G ʹO X]V1;CLMe~_zʮ!ƣ.XAXW$pÐAE# xejHa<~ I ?k$4k mO1" xךk P_|N y-~׋`AH^\,?䦄4*Ø:Ř~;Ak!O5;Q닃QEZ~cfRoHMٞ/G6pƀ;RyiL1\L`ZF$ u WX09 $:.?F0W]^DŁ9xT a?4_<=GOP]sc t'4/ i>3WOu0օA э_}W;Nڈ4"DV+&&=+牾}.3|yeۏK/̫?7#Y~xhdJb3u P{1":{q+?q牜~#ϿpDrM"&͟)C R?YSQE4v4O߼g @e4W5xl b),l[f4I33?@=jԸ\ iY"bՔHNgiVf. J1p G;JS1yYEIENDB`poedit-2.0.6/artwork/ExtractorsGNUgettext.png0000664000372000037200000000106213230131546016235 00000000000000PNG  IHDR szzIDATxqƛ jjĶ.*Nvն8l۶ż{wN7qwAV2-V䜛4M%xN˗UzzE mttH@o CT5Pvh vk5>TA ԣ]sAr{h*1Ut#E& zO/[jY,ׇ`1SЊC;^dt0#@&瞥WYg']-f09ȟ/?7bޜzvmh1c ŲYiSsZ#RƝCdƧKT&Ҡ V8|)WG9͟}<4ЊV&(83%Zoݽ́ o3/^>^v1>}Jc.,g2>(s#GYHmI"f5jf#1*^3lէ=IENDB`poedit-2.0.6/artwork/poedit-status-error.png0000664000372000037200000000026013230131546016053 00000000000000PNG  IHDRawIDATxc|ফ*&G淑gg`5/Ka3oa qZ 8})0`&4@\H8C3)ifr2B _ۿOgIENDB`poedit-2.0.6/artwork/poedit-status-cat-mid.png0000664000372000037200000000034213230131546016241 00000000000000PNG  IHDRaIDAT8= q=b07 %< QrA)Dyvup¥_l>?A=H2h@N X0E w2Z5LF2h3^;0Wc]Ӽ[07!\67a= U֬JЮ f ,'^ՌzIENDB`poedit-2.0.6/artwork/PoeditWelcome.png0000664000372000037200000000307313230131546014664 00000000000000PNG  IHDRnpY"PLTE atRNSm {a\8IDATx^r6]˒\Kr {&'yg.$ŔǢH_hhIf{ V7n/XonblOY)Y.0f{#\s9^T6*aMGr59^}4p]&#x;ϩӔ\KyCSN bZD9F d;){c\=T\q.h6)?_89.3qɲ˕,INqOidvt%isOz|j F賍.]Z3}.G>80ܜs>1c|ۮbr0"d\jtq7AIVb(^#q,!E0GMD.&r+B <M,{D s9Y3DW}J 9t!2*ppezGv/ pcu e8uE:G:"܃MXK (E5HL>"jHP>W=<9s@/ދ}| U{ )dK-@ƽS{u͒kr! + 2d9 Օ ņ8A P\pqxlUq2;ܴ TkrBG|HP5!]克P-Zgq)xb>'L0$EAs܃&|)cRRu،%Q8gFkq1QkP NNRߴ~*1jT_IkY G]HsU8 \R;+e ГVJf᪱Oη;b.6"ͤK!dǙqH @=cPʍƗpdg| \Nwz \.>{e%r qLΏZC6{cv8|G|YG5ˤNbu_9 B#1PuAj Mtr2#gb452v4؉ ʧo^v'ra -DZ RZ)N.IbM`_BxC@sP&F+iWTY`̭V9񗊵T\<q]RmЅ q'SkJ'sKea|ڼ]S{y&nMnzOۯwVww_o7ۏvm Ƌ&IENDB`poedit-2.0.6/artwork/ExtractorsGNUgettext@2x.png0000664000372000037200000000233113230131546016607 00000000000000PNG  IHDR@@iqIDATxYƃE+m۶m[eJm۶ms5ovv&5zmʪ +j ubUFiz:2!s*s.s)sOT<4W\1,~}ݾdɒDb]X̑O ^ӚŋwGx皆3g 2|>"{L+b@:mV/f+f6p~B1GESfϼ@z+(ЄL߾|lA?@ژYE;F9&;|xЄ#< %* mm@nZ=a:QJx@)V,h> V>alyhAU&/1n 5ں0wlYҪ)zqBZМh¯aX^~hB.x`0%k/ *=|x1@.h4lҹ.vP$vמ{߈7.8y|0uAv9&wҍ7LJd<<;vPe C/}Ճ0`*`u @|T1b> !߁>?OE4Lpa<= kIENDB`poedit-2.0.6/artwork/poedit-status-error@2x.png0000664000372000037200000000041013230131546016422 00000000000000PNG  IHDR szzIDATxձ @k>M43+ ӽaXy*5(߉n,'^.0o!{<݇Aɷ7!u% s,`?93ؓƑi0 `O{'tؓꚀIZ~)r/_#:]#aa,ܣAP>|IENDB`poedit-2.0.6/artwork/poedit-status-warning@2x.png0000664000372000037200000000067613230131546016754 00000000000000PNG  IHDR szzIDATxTFQ}h?(}CmBDTcPvE+mV4昽t1޼ p9 AkWG\/Ո4Z%-JDz<96PK_ꁨ0 αDr->_״ǎK;y:Q4 }bF3|+=̘. iCF_G36PZ|UEWO{faKYї3}wY5L#Pǵ60hc>vk2r{Z7o.#ZFnru7G bn2r41P˹hȕlL#h "ט"8dCFM?H1hĨ\{2#מ͑^ 5(P+`pIENDB`poedit-2.0.6/artwork/poedit-status-bookmark-selected.png0000664000372000037200000000021013230131546020310 00000000000000PNG  IHDRaOIDATxc{c{5?1F8aK!] 5؁?q jy ^@ϒb# NBKǃ3/ߣIENDB`poedit-2.0.6/artwork/poedit-status-comment.png0000664000372000037200000000033613230131546016370 00000000000000PNG  IHDRatEXtSoftwareAdobe ImageReadyqe<IDATxb?%B@,0###Ia^gAb!zQҗ} | hD aX@nb b^45 b9qf:+ ďI |+@P0œOqR&7[R>2/:ЬIENDB`poedit-2.0.6/configure0000775000372000037200000107677213230132041011644 00000000000000#! /bin/sh # Guess values for system-dependent variables and create Makefiles. # Generated by GNU Autoconf 2.69 for poedit 2.0.6. # # Report bugs to . # # # Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc. # # # This configure script is free software; the Free Software Foundation # gives unlimited permission to copy, distribute and modify it. ## -------------------- ## ## M4sh Initialization. ## ## -------------------- ## # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi as_nl=' ' export as_nl # Printing a long string crashes Solaris 7 /usr/bin/printf. as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo # Prefer a ksh shell builtin over an external printf program on Solaris, # but without wasting forks for bash or zsh. if test -z "$BASH_VERSION$ZSH_VERSION" \ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='print -r --' as_echo_n='print -rn --' elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='printf %s\n' as_echo_n='printf %s' else if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' as_echo_n='/usr/ucb/echo -n' else as_echo_body='eval expr "X$1" : "X\\(.*\\)"' as_echo_n_body='eval arg=$1; case $arg in #( *"$as_nl"*) expr "X$arg" : "X\\(.*\\)$as_nl"; arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; esac; expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" ' export as_echo_n_body as_echo_n='sh -c $as_echo_n_body as_echo' fi export as_echo_body as_echo='sh -c $as_echo_body as_echo' fi # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || PATH_SEPARATOR=';' } fi # IFS # We need space, tab and new line, in precisely that order. Quoting is # there to prevent editors from complaining about space-tab. # (If _AS_PATH_WALK were called with IFS unset, it would disable word # splitting by setting IFS to empty value.) IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. as_myself= case $0 in #(( *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done IFS=$as_save_IFS ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 exit 1 fi # Unset variables that we do not need and which cause bugs (e.g. in # pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" # suppresses any "Segmentation fault" message there. '((' could # trigger a bug in pdksh 5.2.14. for as_var in BASH_ENV ENV MAIL MAILPATH do eval test x\${$as_var+set} = xset \ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : done PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. LC_ALL=C export LC_ALL LANGUAGE=C export LANGUAGE # CDPATH. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH # Use a proper internal environment variable to ensure we don't fall # into an infinite loop, continuously re-executing ourselves. if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then _as_can_reexec=no; export _as_can_reexec; # We cannot yet assume a decent shell, so we have to provide a # neutralization value for shells without unset; and this also # works around shells that cannot unset nonexistent variables. # Preserve -v and -x to the replacement shell. BASH_ENV=/dev/null ENV=/dev/null (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV case $- in # (((( *v*x* | *x*v* ) as_opts=-vx ;; *v* ) as_opts=-v ;; *x* ) as_opts=-x ;; * ) as_opts= ;; esac exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} # Admittedly, this is quite paranoid, since all the known shells bail # out after a failed `exec'. $as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 as_fn_exit 255 fi # We don't want this to propagate to other subprocesses. { _as_can_reexec=; unset _as_can_reexec;} if test "x$CONFIG_SHELL" = x; then as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which # is contrary to our usage. Disable this feature. alias -g '\${1+\"\$@\"}'='\"\$@\"' setopt NO_GLOB_SUBST else case \`(set -o) 2>/dev/null\` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi " as_required="as_fn_return () { (exit \$1); } as_fn_success () { as_fn_return 0; } as_fn_failure () { as_fn_return 1; } as_fn_ret_success () { return 0; } as_fn_ret_failure () { return 1; } exitcode=0 as_fn_success || { exitcode=1; echo as_fn_success failed.; } as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; } as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; } as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; } if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then : else exitcode=1; echo positional parameters were not saved. fi test x\$exitcode = x0 || exit 1 test -x / || exit 1" as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" && test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1 test \$(( 1 + 1 )) = 2 || exit 1" if (eval "$as_required") 2>/dev/null; then : as_have_required=yes else as_have_required=no fi if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then : else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR as_found=false for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. as_found=: case $as_dir in #( /*) for as_base in sh bash ksh sh5; do # Try only shells that exist, to save several forks. as_shell=$as_dir/$as_base if { test -f "$as_shell" || test -f "$as_shell.exe"; } && { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then : CONFIG_SHELL=$as_shell as_have_required=yes if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then : break 2 fi fi done;; esac as_found=false done $as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } && { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then : CONFIG_SHELL=$SHELL as_have_required=yes fi; } IFS=$as_save_IFS if test "x$CONFIG_SHELL" != x; then : export CONFIG_SHELL # We cannot yet assume a decent shell, so we have to provide a # neutralization value for shells without unset; and this also # works around shells that cannot unset nonexistent variables. # Preserve -v and -x to the replacement shell. BASH_ENV=/dev/null ENV=/dev/null (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV case $- in # (((( *v*x* | *x*v* ) as_opts=-vx ;; *v* ) as_opts=-v ;; *x* ) as_opts=-x ;; * ) as_opts= ;; esac exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} # Admittedly, this is quite paranoid, since all the known shells bail # out after a failed `exec'. $as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 exit 255 fi if test x$as_have_required = xno; then : $as_echo "$0: This script requires a shell more modern than all" $as_echo "$0: the shells that I found on your system." if test x${ZSH_VERSION+set} = xset ; then $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should" $as_echo "$0: be upgraded to zsh 4.3.4 or later." else $as_echo "$0: Please tell bug-autoconf@gnu.org and help@poedit.net $0: about your system, including any error possibly output $0: before this message. Then install a modern shell, or $0: manually run the script under such a shell if you do $0: have one." fi exit 1 fi fi fi SHELL=${CONFIG_SHELL-/bin/sh} export SHELL # Unset more variables known to interfere with behavior of common tools. CLICOLOR_FORCE= GREP_OPTIONS= unset CLICOLOR_FORCE GREP_OPTIONS ## --------------------- ## ## M4sh Shell Functions. ## ## --------------------- ## # as_fn_unset VAR # --------------- # Portably unset VAR. as_fn_unset () { { eval $1=; unset $1;} } as_unset=as_fn_unset # as_fn_set_status STATUS # ----------------------- # Set $? to STATUS, without forking. as_fn_set_status () { return $1 } # as_fn_set_status # as_fn_exit STATUS # ----------------- # Exit the shell with STATUS, even in a "trap 0" or "set -e" context. as_fn_exit () { set +e as_fn_set_status $1 exit $1 } # as_fn_exit # as_fn_mkdir_p # ------------- # Create "$as_dir" as a directory, including parents if necessary. as_fn_mkdir_p () { case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || eval $as_mkdir_p || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" as_dir=`$as_dirname -- "$as_dir" || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" } # as_fn_mkdir_p # as_fn_executable_p FILE # ----------------------- # Test if FILE is an executable regular file. as_fn_executable_p () { test -f "$1" && test -x "$1" } # as_fn_executable_p # as_fn_append VAR VALUE # ---------------------- # Append the text in VALUE to the end of the definition contained in VAR. Take # advantage of any shell optimizations that allow amortized linear growth over # repeated appends, instead of the typical quadratic growth present in naive # implementations. if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : eval 'as_fn_append () { eval $1+=\$2 }' else as_fn_append () { eval $1=\$$1\$2 } fi # as_fn_append # as_fn_arith ARG... # ------------------ # Perform arithmetic evaluation on the ARGs, and store the result in the # global $as_val. Take advantage of shells that can avoid forks. The arguments # must be portable across $(()) and expr. if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : eval 'as_fn_arith () { as_val=$(( $* )) }' else as_fn_arith () { as_val=`expr "$@" || test $? -eq 1` } fi # as_fn_arith # as_fn_error STATUS ERROR [LINENO LOG_FD] # ---------------------------------------- # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are # provided, also output the error to LOG_FD, referencing LINENO. Then exit the # script with STATUS, using 1 if that was 0. as_fn_error () { as_status=$1; test $as_status -eq 0 && as_status=1 if test "$4"; then as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 fi $as_echo "$as_me: error: $2" >&2 as_fn_exit $as_status } # as_fn_error if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || $as_echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits as_lineno_1=$LINENO as_lineno_1a=$LINENO as_lineno_2=$LINENO as_lineno_2a=$LINENO eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" && test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || { # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-) sed -n ' p /[$]LINENO/= ' <$as_myself | sed ' s/[$]LINENO.*/&-/ t lineno b :lineno N :loop s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ t loop s/-\n.*// ' >$as_me.lineno && chmod +x "$as_me.lineno" || { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; } # If we had to re-execute with $CONFIG_SHELL, we're ensured to have # already done that, so ensure we don't try to do so again and fall # in an infinite loop. This has already happened in practice. _as_can_reexec=no; export _as_can_reexec # Don't try to exec as it changes $[0], causing all sort of problems # (the dirname of $[0] is not the place where we might find the # original and so on. Autoconf is especially sensitive to this). . "./$as_me.lineno" # Exit status is that of the last command. exit } ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in #((((( -n*) case `echo 'xy\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. xy) ECHO_C='\c';; *) echo `echo ksh88 bug on AIX 6.1` > /dev/null ECHO_T=' ';; esac;; *) ECHO_N='-n';; esac rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir mkdir conf$$.dir 2>/dev/null fi if (echo >conf$$.file) 2>/dev/null; then if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. # In both cases, we have to default to `cp -pR'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -pR' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -pR' fi else as_ln_s='cp -pR' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null if mkdir -p . 2>/dev/null; then as_mkdir_p='mkdir -p "$as_dir"' else test -d ./-p && rmdir ./-p as_mkdir_p=false fi as_test_x='test -x' as_executable_p=as_fn_executable_p # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" 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='poedit' PACKAGE_TARNAME='poedit' PACKAGE_VERSION='2.0.6' PACKAGE_STRING='poedit 2.0.6' PACKAGE_BUGREPORT='help@poedit.net' PACKAGE_URL='' ac_unique_file="poedit.desktop" # 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 WX_CONFIG_WITH_ARGS SED CLD2_LIBS LUCENE_LIBS LUCENE_CFLAGS GTKSPELL_LIBS GTKSPELL_CFLAGS ICU_LIBS ICU_CFLAGS WXRC WX_VERSION_MICRO WX_VERSION_MINOR WX_VERSION_MAJOR WX_RESCOMP WX_VERSION WX_LIBS_STATIC WX_LIBS WX_CXXFLAGS_ONLY WX_CFLAGS_ONLY WX_CXXFLAGS WX_CFLAGS WX_CPPFLAGS WX_CONFIG_PATH HAVE_CPPREST_FALSE HAVE_CPPREST_TRUE LIBSECRET_LIBS LIBSECRET_CFLAGS PKG_CONFIG_LIBDIR PKG_CONFIG_PATH PKG_CONFIG CPPREST_LIBS EGREP GREP BOOST_IOSTREAMS_LIB BOOST_THREAD_LIB BOOST_REGEX_LIB BOOST_SYSTEM_LIB BOOST_LDFLAGS BOOST_CPPFLAGS HAVE_CXX14 CXXCPP am__fastdepCXX_FALSE am__fastdepCXX_TRUE CXXDEPMODE ac_ct_CXX CXXFLAGS CXX 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 RANLIB LN_S MAINT MAINTAINER_MODE_FALSE MAINTAINER_MODE_TRUE AM_BACKSLASH AM_DEFAULT_VERBOSITY AM_DEFAULT_V AM_V am__untar am__tar AMTAR am__leading_dot SET_MAKE AWK mkdir_p MKDIR_P INSTALL_STRIP_PROGRAM STRIP install_sh MAKEINFO AUTOHEADER AUTOMAKE AUTOCONF ACLOCAL VERSION PACKAGE CYGPATH_W am__isrc INSTALL_DATA INSTALL_SCRIPT INSTALL_PROGRAM host_os host_vendor host_cpu host build_os build_vendor build_cpu build PACKAGE_SHORT_VERSION target_alias host_alias build_alias LIBS ECHO_T ECHO_N ECHO_C DEFS mandir localedir libdir psdir pdfdir dvidir htmldir infodir docdir oldincludedir includedir localstatedir sharedstatedir sysconfdir datadir datarootdir libexecdir sbindir bindir program_transform_name prefix exec_prefix PACKAGE_URL PACKAGE_BUGREPORT PACKAGE_STRING PACKAGE_VERSION PACKAGE_TARNAME PACKAGE_NAME PATH_SEPARATOR SHELL' ac_subst_files='' ac_user_opts=' enable_option_checking enable_silent_rules enable_maintainer_mode with_wxdir with_wx_config with_wx_prefix with_wx_exec_prefix enable_debug enable_dependency_tracking with_boost with_boost_libdir with_boost_system with_boost_regex with_boost_thread with_cpprest with_boost_iostreams with_cld2 ' ac_precious_vars='build_alias host_alias target_alias CC CFLAGS LDFLAGS LIBS CPPFLAGS CXX CXXFLAGS CCC CXXCPP PKG_CONFIG PKG_CONFIG_PATH PKG_CONFIG_LIBDIR LIBSECRET_CFLAGS LIBSECRET_LIBS WXRC ICU_CFLAGS ICU_LIBS GTKSPELL_CFLAGS GTKSPELL_LIBS LUCENE_CFLAGS LUCENE_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 poedit 2.0.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/poedit] --htmldir=DIR html documentation [DOCDIR] --dvidir=DIR dvi documentation [DOCDIR] --pdfdir=DIR pdf documentation [DOCDIR] --psdir=DIR ps documentation [DOCDIR] _ACEOF cat <<\_ACEOF Program names: --program-prefix=PREFIX prepend PREFIX to installed program names --program-suffix=SUFFIX append SUFFIX to installed program names --program-transform-name=PROGRAM run sed PROGRAM on installed program names System types: --build=BUILD configure for building on BUILD [guessed] --host=HOST cross-compile to build programs to run on HOST [BUILD] _ACEOF fi if test -n "$ac_init_help"; then case $ac_init_help in short | recursive ) echo "Configuration of poedit 2.0.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") --enable-maintainer-mode enable make rules and dependencies not useful (and sometimes confusing) to the casual installer --enable-debug Enable debug build --enable-dependency-tracking do not reject slow dependency extractors --disable-dependency-tracking speeds up one-time build Optional Packages: --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) --with-wxdir=PATH Use uninstalled version of wxWidgets in PATH --with-wx-config=CONFIG wx-config script to use (optional) --with-wx-prefix=PREFIX Prefix where wxWidgets is installed (optional) --with-wx-exec-prefix=PREFIX Exec prefix where wxWidgets is installed (optional) --with-boost[=ARG] use Boost library from a standard location (ARG=yes), from the specified location (ARG=), or disable it (ARG=no) [ARG=yes] --with-boost-libdir=LIB_DIR Force given directory for boost libraries. Note that this will override library path detection, so use this parameter only if default library detection fails and you know exactly where your boost libraries are located. --with-boost-system[=special-lib] use the System library from boost - it is possible to specify a certain library for the linker e.g. --with-boost-system=boost_system-gcc-mt --with-boost-regex[=special-lib] use the Regex library from boost - it is possible to specify a certain library for the linker e.g. --with-boost-regex=boost_regex-gcc-mt-d-1_33_1 --with-boost-thread[=special-lib] use the Thread library from boost - it is possible to specify a certain library for the linker e.g. --with-boost-thread=boost_thread-gcc-mt --without-cpprest Ignore presence of C++ REST SDK and disable it --with-boost-iostreams[=special-lib] use the IOStreams library from boost - it is possible to specify a certain library for the linker e.g. --with-boost-iostreams=boost_iostreams-gcc-mt-d-1_33_1 --without-cld2 Ignore presence of cld2 and disable it Some influential environment variables: CC C compiler command CFLAGS C compiler flags LDFLAGS linker flags, e.g. -L if you have libraries in a nonstandard directory LIBS libraries to pass to the linker, e.g. -l CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I if you have headers in a nonstandard directory CXX C++ compiler command CXXFLAGS C++ compiler flags CXXCPP C++ preprocessor PKG_CONFIG path to pkg-config utility PKG_CONFIG_PATH directories to add to pkg-config's search path PKG_CONFIG_LIBDIR path overriding pkg-config's built-in search path LIBSECRET_CFLAGS C compiler flags for LIBSECRET, overriding pkg-config LIBSECRET_LIBS linker flags for LIBSECRET, overriding pkg-config WXRC Path to wxWidget's wxrc resource compiler ICU_CFLAGS C compiler flags for ICU, overriding pkg-config ICU_LIBS linker flags for ICU, overriding pkg-config GTKSPELL_CFLAGS C compiler flags for GTKSPELL, overriding pkg-config GTKSPELL_LIBS linker flags for GTKSPELL, overriding pkg-config LUCENE_CFLAGS C compiler flags for LUCENE, overriding pkg-config LUCENE_LIBS linker flags for LUCENE, 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 . _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 poedit configure 2.0.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_cxx_try_compile LINENO # ---------------------------- # Try to compile conftest.$ac_ext, and return whether this succeeded. ac_fn_cxx_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_cxx_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_cxx_try_compile # ac_fn_cxx_try_cpp LINENO # ------------------------ # Try to preprocess conftest.$ac_ext, and return whether this succeeded. ac_fn_cxx_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_cxx_preproc_warn_flag$ac_cxx_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_cxx_try_cpp # ac_fn_cxx_try_link LINENO # ------------------------- # Try to link conftest.$ac_ext, and return whether this succeeded. ac_fn_cxx_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_cxx_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_cxx_try_link # ac_fn_cxx_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_cxx_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_cxx_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_cxx_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_cxx_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;} ( $as_echo "## ------------------------------ ## ## Report this to help@poedit.net ## ## ------------------------------ ##" ) | sed "s/^/$as_me: WARNING: /" >&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_cxx_check_header_mongrel # ac_fn_cxx_try_run LINENO # ------------------------ # Try to link conftest.$ac_ext, and return whether this succeeded. Assumes # that executables *can* be run. ac_fn_cxx_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_cxx_try_run # ac_fn_cxx_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_cxx_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_cxx_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_cxx_check_header_compile # ac_fn_cxx_check_func LINENO FUNC VAR # ------------------------------------ # Tests whether FUNC exists, setting the cache variable VAR accordingly ac_fn_cxx_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_cxx_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_cxx_check_func cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. It was created by poedit $as_me 2.0.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 PACKAGE_SHORT_VERSION=2.0.6 ac_aux_dir= for ac_dir in admin "$srcdir"/admin; 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 admin \"$srcdir\"/admin" "$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. # Make sure we can run config.sub. $SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 || as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5 { $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5 $as_echo_n "checking build system type... " >&6; } if ${ac_cv_build+:} false; then : $as_echo_n "(cached) " >&6 else ac_build_alias=$build_alias test "x$ac_build_alias" = x && ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"` test "x$ac_build_alias" = x && as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5 ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` || as_fn_error $? "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5 fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5 $as_echo "$ac_cv_build" >&6; } case $ac_cv_build in *-*-*) ;; *) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;; esac build=$ac_cv_build ac_save_IFS=$IFS; IFS='-' set x $ac_cv_build shift build_cpu=$1 build_vendor=$2 shift; shift # Remember, the first character of IFS is used to create $*, # except with old shells: build_os=$* IFS=$ac_save_IFS case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5 $as_echo_n "checking host system type... " >&6; } if ${ac_cv_host+:} false; then : $as_echo_n "(cached) " >&6 else if test "x$host_alias" = x; then ac_cv_host=$ac_cv_build else ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` || as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5 fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5 $as_echo "$ac_cv_host" >&6; } case $ac_cv_host in *-*-*) ;; *) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;; esac host=$ac_cv_host ac_save_IFS=$IFS; IFS='-' set x $ac_cv_host shift host_cpu=$1 host_vendor=$2 shift; shift # Remember, the first character of IFS is used to create $*, # except with old shells: host_os=$* IFS=$ac_save_IFS case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac am__api_version='1.14' # 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='poedit' VERSION='2.0.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 pax cpio none' am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -' # 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 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable maintainer-specific portions of Makefiles" >&5 $as_echo_n "checking whether to enable maintainer-specific portions of Makefiles... " >&6; } # Check whether --enable-maintainer-mode was given. if test "${enable_maintainer_mode+set}" = set; then : enableval=$enable_maintainer_mode; USE_MAINTAINER_MODE=$enableval else USE_MAINTAINER_MODE=no fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $USE_MAINTAINER_MODE" >&5 $as_echo "$USE_MAINTAINER_MODE" >&6; } if test $USE_MAINTAINER_MODE = yes; then MAINTAINER_MODE_TRUE= MAINTAINER_MODE_FALSE='#' else MAINTAINER_MODE_TRUE='#' MAINTAINER_MODE_FALSE= fi MAINT=$MAINTAINER_MODE_TRUE # Check whether --enable-silent-rules was given. if test "${enable_silent_rules+set}" = set; then : enableval=$enable_silent_rules; fi case $enable_silent_rules in # ((( yes) AM_DEFAULT_VERBOSITY=0;; no) AM_DEFAULT_VERBOSITY=1;; *) AM_DEFAULT_VERBOSITY=0;; esac am_make=${MAKE-make} { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $am_make supports nested variables" >&5 $as_echo_n "checking whether $am_make supports nested variables... " >&6; } if ${am_cv_make_support_nested_variables+:} false; then : $as_echo_n "(cached) " >&6 else if $as_echo 'TRUE=$(BAR$(V)) BAR0=false BAR1=true V=1 am__doit: @$(TRUE) .PHONY: am__doit' | $am_make -f - >/dev/null 2>&1; then am_cv_make_support_nested_variables=yes else am_cv_make_support_nested_variables=no fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_make_support_nested_variables" >&5 $as_echo "$am_cv_make_support_nested_variables" >&6; } if test $am_cv_make_support_nested_variables = yes; then AM_V='$(V)' AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' else AM_V=$AM_DEFAULT_VERBOSITY AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY fi AM_BACKSLASH='\' # Check whether --with-wxdir was given. if test "${with_wxdir+set}" = set; then : withval=$with_wxdir; wx_config_name="$withval/wx-config" wx_config_args="--inplace" fi # Check whether --with-wx-config was given. if test "${with_wx_config+set}" = set; then : withval=$with_wx_config; wx_config_name="$withval" fi # Check whether --with-wx-prefix was given. if test "${with_wx_prefix+set}" = set; then : withval=$with_wx_prefix; wx_config_prefix="$withval" else wx_config_prefix="" fi # Check whether --with-wx-exec-prefix was given. if test "${with_wx_exec_prefix+set}" = set; then : withval=$with_wx_exec_prefix; wx_config_exec_prefix="$withval" else wx_config_exec_prefix="" fi # Check whether --enable-debug was given. if test "${enable_debug+set}" = set; then : enableval=$enable_debug; USE_DEBUG="$enableval" else USE_DEBUG="no" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for install location" >&5 $as_echo_n "checking for install location... " >&6; } case "$prefix" in NONE) if ${m_cv_prefix+:} false; then : $as_echo_n "(cached) " >&6 else m_cv_prefix=$ac_default_prefix fi ;; *) m_cv_prefix=$prefix ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: result: $m_cv_prefix" >&5 $as_echo "$m_cv_prefix" >&6; } case "$m_cv_prefix" in /*) ;; *) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: --prefix=$prefix must be an absolute path name, using $ac_default_prefix" >&5 $as_echo "$as_me: WARNING: --prefix=$prefix must be an absolute path name, using $ac_default_prefix" >&2;} m_cv_prefix=$ac_default_prefix esac prefix=$m_cv_prefix 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 ln -s works" >&5 $as_echo_n "checking whether ln -s works... " >&6; } LN_S=$as_ln_s if test "$LN_S" = "ln -s"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, using $LN_S" >&5 $as_echo "no, using $LN_S" >&6; } fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. set dummy ${ac_tool_prefix}ranlib; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_RANLIB+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$RANLIB"; then ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi RANLIB=$ac_cv_prog_RANLIB if test -n "$RANLIB"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5 $as_echo "$RANLIB" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_RANLIB"; then ac_ct_RANLIB=$RANLIB # Extract the first word of "ranlib", so it can be a program name with args. set dummy ranlib; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_RANLIB+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_RANLIB"; then ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_RANLIB="ranlib" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB if test -n "$ac_ct_RANLIB"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5 $as_echo "$ac_ct_RANLIB" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_RANLIB" = x; then RANLIB=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac RANLIB=$ac_ct_RANLIB fi else RANLIB="$ac_cv_prog_RANLIB" fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. set dummy ${ac_tool_prefix}gcc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="${ac_tool_prefix}gcc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_CC"; then ac_ct_CC=$CC # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="gcc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 $as_echo "$ac_ct_CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi else CC="$ac_cv_prog_CC" fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. set dummy ${ac_tool_prefix}cc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="${ac_tool_prefix}cc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi fi if test -z "$CC"; then # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else ac_prog_rejected=no as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then ac_prog_rejected=yes continue fi ac_cv_prog_CC="cc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS if test $ac_prog_rejected = yes; then # We found a bogon in the path, so make sure we never use it. set dummy $ac_cv_prog_CC shift if test $# != 0; then # We chose a different compiler from the bogus one. # However, it has the same basename, so the bogon will be chosen # first if we set CC to just the basename; use the full file name. shift ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" fi fi fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then for ac_prog in cl.exe do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$CC" && break done fi if test -z "$CC"; then ac_ct_CC=$CC for ac_prog in cl.exe do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 $as_echo "$ac_ct_CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$ac_ct_CC" && break done if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi fi fi test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "no acceptable C compiler found in \$PATH See \`config.log' for more details" "$LINENO" 5; } # Provide some information about the compiler. $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 set X $ac_compile ac_compiler=$2 for ac_option in --version -v -V -qversion; do { { ac_try="$ac_compiler $ac_option >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compiler $ac_option >&5") 2>conftest.err ac_status=$? if test -s conftest.err; then sed '10a\ ... rest of stderr output deleted ... 10q' conftest.err >conftest.er1 cat conftest.er1 >&5 fi rm -f conftest.er1 conftest.err $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } done cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out" # Try to create an executable without -o first, disregard a.out. # It will help us diagnose broken compilers, and finding out an intuition # of exeext. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5 $as_echo_n "checking whether the C compiler works... " >&6; } ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` # The possible output files: ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*" ac_rmfiles= for ac_file in $ac_files do case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; * ) ac_rmfiles="$ac_rmfiles $ac_file";; esac done rm -f $ac_rmfiles if { { ac_try="$ac_link_default" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link_default") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then : # Autoconf-2.13 could set the ac_cv_exeext variable to `no'. # So ignore a value of `no', otherwise this would lead to `EXEEXT = no' # in a Makefile. We should not override ac_cv_exeext if it was cached, # so that the user can short-circuit this test for compilers unknown to # Autoconf. for ac_file in $ac_files '' do test -f "$ac_file" || continue case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; [ab].out ) # We found the default executable, but exeext='' is most # certainly right. break;; *.* ) if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no; then :; else ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` fi # We set ac_cv_exeext here because the later test for it is not # safe: cross compilers may not add the suffix if given an `-o' # argument, so we may need to know it at that point already. # Even if this section looks crufty: it has the advantage of # actually working. break;; * ) break;; esac done test "$ac_cv_exeext" = no && ac_cv_exeext= else ac_file='' fi if test -z "$ac_file"; then : { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error 77 "C compiler cannot create executables See \`config.log' for more details" "$LINENO" 5; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5 $as_echo_n "checking for C compiler default output file name... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5 $as_echo "$ac_file" >&6; } ac_exeext=$ac_cv_exeext rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out ac_clean_files=$ac_clean_files_save { $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5 $as_echo_n "checking for suffix of executables... " >&6; } if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then : # If both `conftest.exe' and `conftest' are `present' (well, observable) # catch `conftest.exe'. For instance with Cygwin, `ls conftest' will # work properly (i.e., refer to `conftest.exe'), while it won't with # `rm'. for ac_file in conftest.exe conftest conftest.*; do test -f "$ac_file" || continue case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` break;; * ) break;; esac done else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot compute suffix of executables: cannot compile and link See \`config.log' for more details" "$LINENO" 5; } fi rm -f conftest conftest$ac_cv_exeext { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5 $as_echo "$ac_cv_exeext" >&6; } rm -f conftest.$ac_ext EXEEXT=$ac_cv_exeext ac_exeext=$EXEEXT cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { FILE *f = fopen ("conftest.out", "w"); return ferror (f) || fclose (f) != 0; ; return 0; } _ACEOF ac_clean_files="$ac_clean_files conftest.out" # Check that the compiler produces executables we can run. If not, either # the compiler is broken, or we cross compile. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5 $as_echo_n "checking whether we are cross compiling... " >&6; } if test "$cross_compiling" != yes; then { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } if { ac_try='./conftest$ac_cv_exeext' { { case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_try") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; }; then cross_compiling=no else if test "$cross_compiling" = maybe; then cross_compiling=yes else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot run C compiled programs. If you meant to cross compile, use \`--host'. See \`config.log' for more details" "$LINENO" 5; } fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5 $as_echo "$cross_compiling" >&6; } rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out ac_clean_files=$ac_clean_files_save { $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5 $as_echo_n "checking for suffix of object files... " >&6; } if ${ac_cv_objext+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.o conftest.obj if { { ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compile") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then : for ac_file in conftest.o conftest.obj conftest.*; do test -f "$ac_file" || continue; case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;; *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` break;; esac done else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot compute suffix of object files: cannot compile See \`config.log' for more details" "$LINENO" 5; } fi rm -f conftest.$ac_cv_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5 $as_echo "$ac_cv_objext" >&6; } OBJEXT=$ac_cv_objext ac_objext=$OBJEXT { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5 $as_echo_n "checking whether we are using the GNU C compiler... " >&6; } if ${ac_cv_c_compiler_gnu+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { #ifndef __GNUC__ choke me #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_compiler_gnu=yes else ac_compiler_gnu=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_c_compiler_gnu=$ac_compiler_gnu fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 $as_echo "$ac_cv_c_compiler_gnu" >&6; } if test $ac_compiler_gnu = yes; then GCC=yes else GCC= fi ac_test_CFLAGS=${CFLAGS+set} ac_save_CFLAGS=$CFLAGS { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 $as_echo_n "checking whether $CC accepts -g... " >&6; } if ${ac_cv_prog_cc_g+:} false; then : $as_echo_n "(cached) " >&6 else ac_save_c_werror_flag=$ac_c_werror_flag ac_c_werror_flag=yes ac_cv_prog_cc_g=no CFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_g=yes else CFLAGS="" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : else ac_c_werror_flag=$ac_save_c_werror_flag CFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_g=yes fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_c_werror_flag=$ac_save_c_werror_flag fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 $as_echo "$ac_cv_prog_cc_g" >&6; } if test "$ac_test_CFLAGS" = set; then CFLAGS=$ac_save_CFLAGS elif test $ac_cv_prog_cc_g = yes; then if test "$GCC" = yes; then CFLAGS="-g -O2" else CFLAGS="-g" fi else if test "$GCC" = yes; then CFLAGS="-O2" else CFLAGS= fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5 $as_echo_n "checking for $CC option to accept ISO C89... " >&6; } if ${ac_cv_prog_cc_c89+:} false; then : $as_echo_n "(cached) " >&6 else ac_cv_prog_cc_c89=no ac_save_CC=$CC cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include struct stat; /* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ struct buf { int x; }; FILE * (*rcsopen) (struct buf *, struct stat *, int); static char *e (p, i) char **p; int i; { return p[i]; } static char *f (char * (*g) (char **, int), char **p, ...) { char *s; va_list v; va_start (v,p); s = g (p, va_arg (v,int)); va_end (v); return s; } /* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has function prototypes and stuff, but not '\xHH' hex character constants. These don't provoke an error unfortunately, instead are silently treated as 'x'. The following induces an error, until -std is added to get proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an array size at least. It's necessary to write '\x00'==0 to get something that's true only with -std. */ int osf4_cc_array ['\x00' == 0 ? 1 : -1]; /* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters inside strings and character constants. */ #define FOO(x) 'x' int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; int test (int i, double x); struct s1 {int (*f) (int a);}; struct s2 {int (*f) (double a);}; int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); int argc; char **argv; int main () { return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; ; return 0; } _ACEOF for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" do CC="$ac_save_CC $ac_arg" if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_c89=$ac_arg fi rm -f core conftest.err conftest.$ac_objext test "x$ac_cv_prog_cc_c89" != "xno" && break done rm -f conftest.$ac_ext CC=$ac_save_CC fi # AC_CACHE_VAL case "x$ac_cv_prog_cc_c89" in x) { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 $as_echo "none needed" >&6; } ;; xno) { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 $as_echo "unsupported" >&6; } ;; *) CC="$CC $ac_cv_prog_cc_c89" { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 $as_echo "$ac_cv_prog_cc_c89" >&6; } ;; esac if test "x$ac_cv_prog_cc_c89" != xno; then : fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC understands -c and -o together" >&5 $as_echo_n "checking whether $CC understands -c and -o together... " >&6; } if ${am_cv_prog_cc_c_o+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF # Make sure it works both with $CC and with simple cc. # Following AC_PROG_CC_C_O, we do the test twice because some # compilers refuse to overwrite an existing .o file with -o, # though they will create one. am_cv_prog_cc_c_o=yes for am_i in 1 2; do if { echo "$as_me:$LINENO: $CC -c conftest.$ac_ext -o conftest2.$ac_objext" >&5 ($CC -c conftest.$ac_ext -o conftest2.$ac_objext) >&5 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } \ && test -f conftest2.$ac_objext; then : OK else am_cv_prog_cc_c_o=no break fi done rm -f core conftest* unset am_i fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_cc_c_o" >&5 $as_echo "$am_cv_prog_cc_c_o" >&6; } if test "$am_cv_prog_cc_c_o" != yes; then # Losing compiler, so override with the script. # FIXME: It is wrong to rewrite CC. # But if we don't then we get into trouble of one sort or another. # A longer-term fix would be to have automake use am__CC in this case, # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)" CC="$am_aux_dir/compile $CC" fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu DEPDIR="${am__leading_dot}deps" ac_config_commands="$ac_config_commands depfiles" am_make=${MAKE-make} cat > confinc << 'END' am__doit: @echo this is the am__doit target .PHONY: am__doit END # If we don't find an include directive, just comment out the code. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for style of include used by $am_make" >&5 $as_echo_n "checking for style of include used by $am_make... " >&6; } am__include="#" am__quote= _am_result=none # First try GNU make style include. echo "include confinc" > confmf # Ignore all kinds of additional output from 'make'. case `$am_make -s -f confmf 2> /dev/null` in #( *the\ am__doit\ target*) am__include=include am__quote= _am_result=GNU ;; esac # Now try BSD make style include. if test "$am__include" = "#"; then echo '.include "confinc"' > confmf case `$am_make -s -f confmf 2> /dev/null` in #( *the\ am__doit\ target*) am__include=.include am__quote="\"" _am_result=BSD ;; esac fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $_am_result" >&5 $as_echo "$_am_result" >&6; } rm -f confinc confmf # Check whether --enable-dependency-tracking was given. if test "${enable_dependency_tracking+set}" = set; then : enableval=$enable_dependency_tracking; fi if test "x$enable_dependency_tracking" != xno; then am_depcomp="$ac_aux_dir/depcomp" AMDEPBACKSLASH='\' am__nodep='_no' fi if test "x$enable_dependency_tracking" != xno; then AMDEP_TRUE= AMDEP_FALSE='#' else AMDEP_TRUE='#' AMDEP_FALSE= fi depcc="$CC" am_compiler_list= { $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 $as_echo_n "checking dependency style of $depcc... " >&6; } if ${am_cv_CC_dependencies_compiler_type+:} false; then : $as_echo_n "(cached) " >&6 else if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up # making a dummy file named 'D' -- because '-MD' means "put the output # in D". rm -rf conftest.dir mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. cp "$am_depcomp" conftest.dir cd conftest.dir # We will build objects and dependencies in a subdirectory because # it helps to detect inapplicable dependency modes. For instance # both Tru64's cc and ICC support -MD to output dependencies as a # side effect of compilation, but ICC will put the dependencies in # the current directory while Tru64 will put them in the object # directory. mkdir sub am_cv_CC_dependencies_compiler_type=none if test "$am_compiler_list" = ""; then am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` fi am__universal=false case " $depcc " in #( *\ -arch\ *\ -arch\ *) am__universal=true ;; esac for depmode in $am_compiler_list; do # Setup a source with many dependencies, because some compilers # like to wrap large dependency lists on column 80 (with \), and # we should not choose a depcomp mode which is confused by this. # # We need to recreate these files for each test, as the compiler may # overwrite some of them when testing with obscure command lines. # This happens at least with the AIX C compiler. : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with # Solaris 10 /bin/sh. echo '/* dummy */' > sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf # We check with '-c' and '-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly # handle '-M -o', and we need to detect this. Also, some Intel # versions had trouble with output in subdirs. am__obj=sub/conftest.${OBJEXT-o} am__minus_obj="-o $am__obj" case $depmode in gcc) # This depmode causes a compiler race in universal mode. test "$am__universal" = false || continue ;; nosideeffect) # After this tag, mechanisms are not by side-effect, so they'll # only be used when explicitly requested. if test "x$enable_dependency_tracking" = xyes; then continue else break fi ;; msvc7 | msvc7msys | msvisualcpp | msvcmsys) # This compiler won't grok '-c -o', but also, the minuso test has # not run yet. These depmodes are late enough in the game, and # so weak that their functioning should not be impacted. am__obj=conftest.${OBJEXT-o} am__minus_obj= ;; none) break ;; esac if depmode=$depmode \ source=sub/conftest.c object=$am__obj \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep $am__obj sub/conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then # icc doesn't choke on unknown options, it will just issue warnings # or remarks (even with -Werror). So we grep stderr for any message # that says an option was ignored or not supported. # When given -MP, icc 7.0 and 7.1 complain thusly: # icc: Command line warning: ignoring option '-M'; no argument required # The diagnosis changed in icc 8.0: # icc: Command line remark: option '-MP' not supported if (grep 'ignoring option' conftest.err || grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else am_cv_CC_dependencies_compiler_type=$depmode break fi fi done cd .. rm -rf conftest.dir else am_cv_CC_dependencies_compiler_type=none fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5 $as_echo "$am_cv_CC_dependencies_compiler_type" >&6; } CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type if test "x$enable_dependency_tracking" != xno \ && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then am__fastdepCC_TRUE= am__fastdepCC_FALSE='#' else am__fastdepCC_TRUE='#' am__fastdepCC_FALSE= fi ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu if test -z "$CXX"; then if test -n "$CCC"; then CXX=$CCC else if test -n "$ac_tool_prefix"; then for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC 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_CXX+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CXX"; then ac_cv_prog_CXX="$CXX" # 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_CXX="$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 CXX=$ac_cv_prog_CXX if test -n "$CXX"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CXX" >&5 $as_echo "$CXX" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$CXX" && break done fi if test -z "$CXX"; then ac_ct_CXX=$CXX for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC 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_CXX+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CXX"; then ac_cv_prog_ac_ct_CXX="$ac_ct_CXX" # 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_CXX="$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_CXX=$ac_cv_prog_ac_ct_CXX if test -n "$ac_ct_CXX"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CXX" >&5 $as_echo "$ac_ct_CXX" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$ac_ct_CXX" && break done if test "x$ac_ct_CXX" = x; then CXX="g++" 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 CXX=$ac_ct_CXX fi fi fi fi # Provide some information about the compiler. $as_echo "$as_me:${as_lineno-$LINENO}: checking for C++ compiler version" >&5 set X $ac_compile ac_compiler=$2 for ac_option in --version -v -V -qversion; do { { ac_try="$ac_compiler $ac_option >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compiler $ac_option >&5") 2>conftest.err ac_status=$? if test -s conftest.err; then sed '10a\ ... rest of stderr output deleted ... 10q' conftest.err >conftest.er1 cat conftest.er1 >&5 fi rm -f conftest.er1 conftest.err $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } done { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C++ compiler" >&5 $as_echo_n "checking whether we are using the GNU C++ compiler... " >&6; } if ${ac_cv_cxx_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_cxx_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_cxx_compiler_gnu=$ac_compiler_gnu fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cxx_compiler_gnu" >&5 $as_echo "$ac_cv_cxx_compiler_gnu" >&6; } if test $ac_compiler_gnu = yes; then GXX=yes else GXX= fi ac_test_CXXFLAGS=${CXXFLAGS+set} ac_save_CXXFLAGS=$CXXFLAGS { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CXX accepts -g" >&5 $as_echo_n "checking whether $CXX accepts -g... " >&6; } if ${ac_cv_prog_cxx_g+:} false; then : $as_echo_n "(cached) " >&6 else ac_save_cxx_werror_flag=$ac_cxx_werror_flag ac_cxx_werror_flag=yes ac_cv_prog_cxx_g=no CXXFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_cxx_try_compile "$LINENO"; then : ac_cv_prog_cxx_g=yes else CXXFLAGS="" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_cxx_try_compile "$LINENO"; then : else ac_cxx_werror_flag=$ac_save_cxx_werror_flag CXXFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_cxx_try_compile "$LINENO"; then : ac_cv_prog_cxx_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_cxx_werror_flag=$ac_save_cxx_werror_flag fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cxx_g" >&5 $as_echo "$ac_cv_prog_cxx_g" >&6; } if test "$ac_test_CXXFLAGS" = set; then CXXFLAGS=$ac_save_CXXFLAGS elif test $ac_cv_prog_cxx_g = yes; then if test "$GXX" = yes; then CXXFLAGS="-g -O2" else CXXFLAGS="-g" fi else if test "$GXX" = yes; then CXXFLAGS="-O2" else CXXFLAGS= fi 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="$CXX" 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_CXX_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_CXX_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_CXX_dependencies_compiler_type=$depmode break fi fi done cd .. rm -rf conftest.dir else am_cv_CXX_dependencies_compiler_type=none fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CXX_dependencies_compiler_type" >&5 $as_echo "$am_cv_CXX_dependencies_compiler_type" >&6; } CXXDEPMODE=depmode=$am_cv_CXX_dependencies_compiler_type if test "x$enable_dependency_tracking" != xno \ && test "$am_cv_CXX_dependencies_compiler_type" = gcc3; then am__fastdepCXX_TRUE= am__fastdepCXX_FALSE='#' else am__fastdepCXX_TRUE='#' am__fastdepCXX_FALSE= fi ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_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; } if test -z "$CXXCPP"; then if ${ac_cv_prog_CXXCPP+:} false; then : $as_echo_n "(cached) " >&6 else # Double quotes because CXXCPP needs to be expanded for CXXCPP in "$CXX -E" "/lib/cpp" do ac_preproc_ok=false for ac_cxx_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_cxx_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_cxx_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_CXXCPP=$CXXCPP fi CXXCPP=$ac_cv_prog_CXXCPP else ac_cv_prog_CXXCPP=$CXXCPP fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CXXCPP" >&5 $as_echo "$CXXCPP" >&6; } ac_preproc_ok=false for ac_cxx_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_cxx_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_cxx_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 \"$CXXCPP\" 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 ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu ax_cxx_compile_cxx14_required=true ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu ac_success=no { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CXX supports C++14 features by default" >&5 $as_echo_n "checking whether $CXX supports C++14 features by default... " >&6; } if ${ax_cv_cxx_compile_cxx14+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ // If the compiler admits that it is not ready for C++11, why torture it? // Hopefully, this will speed up the test. #ifndef __cplusplus #error "This is not a C++ compiler" #elif __cplusplus < 201103L #error "This is not a C++11 compiler" #else namespace cxx11 { namespace test_static_assert { template struct check { static_assert(sizeof(int) <= sizeof(T), "not big enough"); }; } namespace test_final_override { struct Base { virtual void f() {} }; struct Derived : public Base { virtual void f() override {} }; } namespace test_double_right_angle_brackets { template < typename T > struct check {}; typedef check single_type; typedef check> double_type; typedef check>> triple_type; typedef check>>> quadruple_type; } namespace test_decltype { int f() { int a = 1; decltype(a) b = 2; return a + b; } } namespace test_type_deduction { template < typename T1, typename T2 > struct is_same { static const bool value = false; }; template < typename T > struct is_same { static const bool value = true; }; template < typename T1, typename T2 > auto add(T1 a1, T2 a2) -> decltype(a1 + a2) { return a1 + a2; } int test(const int c, volatile int v) { static_assert(is_same::value == true, ""); static_assert(is_same::value == false, ""); static_assert(is_same::value == false, ""); auto ac = c; auto av = v; auto sumi = ac + av + 'x'; auto sumf = ac + av + 1.0; static_assert(is_same::value == true, ""); static_assert(is_same::value == true, ""); static_assert(is_same::value == true, ""); static_assert(is_same::value == false, ""); static_assert(is_same::value == true, ""); return (sumf > 0.0) ? sumi : add(c, v); } } namespace test_noexcept { int f() { return 0; } int g() noexcept { return 0; } static_assert(noexcept(f()) == false, ""); static_assert(noexcept(g()) == true, ""); } namespace test_constexpr { template < typename CharT > unsigned long constexpr strlen_c_r(const CharT *const s, const unsigned long acc) noexcept { return *s ? strlen_c_r(s + 1, acc + 1) : acc; } template < typename CharT > unsigned long constexpr strlen_c(const CharT *const s) noexcept { return strlen_c_r(s, 0UL); } static_assert(strlen_c("") == 0UL, ""); static_assert(strlen_c("1") == 1UL, ""); static_assert(strlen_c("example") == 7UL, ""); static_assert(strlen_c("another\0example") == 7UL, ""); } namespace test_rvalue_references { template < int N > struct answer { static constexpr int value = N; }; answer<1> f(int&) { return answer<1>(); } answer<2> f(const int&) { return answer<2>(); } answer<3> f(int&&) { return answer<3>(); } void test() { int i = 0; const int c = 0; static_assert(decltype(f(i))::value == 1, ""); static_assert(decltype(f(c))::value == 2, ""); static_assert(decltype(f(0))::value == 3, ""); } } namespace test_uniform_initialization { struct test { static const int zero {}; static const int one {1}; }; static_assert(test::zero == 0, ""); static_assert(test::one == 1, ""); } namespace test_lambdas { void test1() { auto lambda1 = [](){}; auto lambda2 = lambda1; lambda1(); lambda2(); } int test2() { auto a = [](int i, int j){ return i + j; }(1, 2); auto b = []() -> int { return '0'; }(); auto c = [=](){ return a + b; }(); auto d = [&](){ return c; }(); auto e = [a, &b](int x) mutable { const auto identity = [](int y){ return y; }; for (auto i = 0; i < a; ++i) a += b--; return x + identity(a + b); }(0); return a + b + c + d + e; } int test3() { const auto nullary = [](){ return 0; }; const auto unary = [](int x){ return x; }; using nullary_t = decltype(nullary); using unary_t = decltype(unary); const auto higher1st = [](nullary_t f){ return f(); }; const auto higher2nd = [unary](nullary_t f1){ return [unary, f1](unary_t f2){ return f2(unary(f1())); }; }; return higher1st(nullary) + higher2nd(nullary)(unary); } } namespace test_variadic_templates { template struct sum; template struct sum { static constexpr auto value = N0 + sum::value; }; template <> struct sum<> { static constexpr auto value = 0; }; static_assert(sum<>::value == 0, ""); static_assert(sum<1>::value == 1, ""); static_assert(sum<23>::value == 23, ""); static_assert(sum<1, 2>::value == 3, ""); static_assert(sum<5, 5, 11>::value == 21, ""); static_assert(sum<2, 3, 5, 7, 11, 13>::value == 41, ""); } // http://stackoverflow.com/questions/13728184/template-aliases-and-sfinae // Clang 3.1 fails with headers of libstd++ 4.8.3 when using std::function // because of this. namespace test_template_alias_sfinae { struct foo {}; template using member = typename T::member_type; template void func(...) {} template void func(member*) {} void test(); void test() { func(0); } } } // namespace cxx11 #endif // __cplusplus >= 201103L // If the compiler admits that it is not ready for C++14, why torture it? // Hopefully, this will speed up the test. #ifndef __cplusplus #error "This is not a C++ compiler" #elif __cplusplus < 201402L #error "This is not a C++14 compiler" #else namespace cxx14 { namespace test_polymorphic_lambdas { int test() { const auto lambda = [](auto&&... args){ const auto istiny = [](auto x){ return (sizeof(x) == 1UL) ? 1 : 0; }; const int aretiny[] = { istiny(args)... }; return aretiny[0]; }; return lambda(1, 1L, 1.0f, '1'); } } namespace test_binary_literals { constexpr auto ivii = 0b0000000000101010; static_assert(ivii == 42, "wrong value"); } namespace test_generalized_constexpr { template < typename CharT > constexpr unsigned long strlen_c(const CharT *const s) noexcept { auto length = 0UL; for (auto p = s; *p; ++p) ++length; return length; } static_assert(strlen_c("") == 0UL, ""); static_assert(strlen_c("x") == 1UL, ""); static_assert(strlen_c("test") == 4UL, ""); static_assert(strlen_c("another\0test") == 7UL, ""); } namespace test_lambda_init_capture { int test() { auto x = 0; const auto lambda1 = [a = x](int b){ return a + b; }; const auto lambda2 = [a = lambda1(x)](){ return a; }; return lambda2(); } } namespace test_digit_seperators { constexpr auto ten_million = 100'000'000; static_assert(ten_million == 100000000, ""); } namespace test_return_type_deduction { auto f(int& x) { return x; } decltype(auto) g(int& x) { return x; } template < typename T1, typename T2 > struct is_same { static constexpr auto value = false; }; template < typename T > struct is_same { static constexpr auto value = true; }; int test() { auto x = 0; static_assert(is_same::value, ""); static_assert(is_same::value, ""); return x; } } } // namespace cxx14 #endif // __cplusplus >= 201402L _ACEOF if ac_fn_cxx_try_compile "$LINENO"; then : ax_cv_cxx_compile_cxx14=yes else ax_cv_cxx_compile_cxx14=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_cxx_compile_cxx14" >&5 $as_echo "$ax_cv_cxx_compile_cxx14" >&6; } if test x$ax_cv_cxx_compile_cxx14 = xyes; then ac_success=yes fi if test x$ac_success = xno; then for switch in -std=gnu++14 -std=gnu++0x; do cachevar=`$as_echo "ax_cv_cxx_compile_cxx14_$switch" | $as_tr_sh` { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CXX supports C++14 features with $switch" >&5 $as_echo_n "checking whether $CXX supports C++14 features with $switch... " >&6; } if eval \${$cachevar+:} false; then : $as_echo_n "(cached) " >&6 else ac_save_CXX="$CXX" CXX="$CXX $switch" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ // If the compiler admits that it is not ready for C++11, why torture it? // Hopefully, this will speed up the test. #ifndef __cplusplus #error "This is not a C++ compiler" #elif __cplusplus < 201103L #error "This is not a C++11 compiler" #else namespace cxx11 { namespace test_static_assert { template struct check { static_assert(sizeof(int) <= sizeof(T), "not big enough"); }; } namespace test_final_override { struct Base { virtual void f() {} }; struct Derived : public Base { virtual void f() override {} }; } namespace test_double_right_angle_brackets { template < typename T > struct check {}; typedef check single_type; typedef check> double_type; typedef check>> triple_type; typedef check>>> quadruple_type; } namespace test_decltype { int f() { int a = 1; decltype(a) b = 2; return a + b; } } namespace test_type_deduction { template < typename T1, typename T2 > struct is_same { static const bool value = false; }; template < typename T > struct is_same { static const bool value = true; }; template < typename T1, typename T2 > auto add(T1 a1, T2 a2) -> decltype(a1 + a2) { return a1 + a2; } int test(const int c, volatile int v) { static_assert(is_same::value == true, ""); static_assert(is_same::value == false, ""); static_assert(is_same::value == false, ""); auto ac = c; auto av = v; auto sumi = ac + av + 'x'; auto sumf = ac + av + 1.0; static_assert(is_same::value == true, ""); static_assert(is_same::value == true, ""); static_assert(is_same::value == true, ""); static_assert(is_same::value == false, ""); static_assert(is_same::value == true, ""); return (sumf > 0.0) ? sumi : add(c, v); } } namespace test_noexcept { int f() { return 0; } int g() noexcept { return 0; } static_assert(noexcept(f()) == false, ""); static_assert(noexcept(g()) == true, ""); } namespace test_constexpr { template < typename CharT > unsigned long constexpr strlen_c_r(const CharT *const s, const unsigned long acc) noexcept { return *s ? strlen_c_r(s + 1, acc + 1) : acc; } template < typename CharT > unsigned long constexpr strlen_c(const CharT *const s) noexcept { return strlen_c_r(s, 0UL); } static_assert(strlen_c("") == 0UL, ""); static_assert(strlen_c("1") == 1UL, ""); static_assert(strlen_c("example") == 7UL, ""); static_assert(strlen_c("another\0example") == 7UL, ""); } namespace test_rvalue_references { template < int N > struct answer { static constexpr int value = N; }; answer<1> f(int&) { return answer<1>(); } answer<2> f(const int&) { return answer<2>(); } answer<3> f(int&&) { return answer<3>(); } void test() { int i = 0; const int c = 0; static_assert(decltype(f(i))::value == 1, ""); static_assert(decltype(f(c))::value == 2, ""); static_assert(decltype(f(0))::value == 3, ""); } } namespace test_uniform_initialization { struct test { static const int zero {}; static const int one {1}; }; static_assert(test::zero == 0, ""); static_assert(test::one == 1, ""); } namespace test_lambdas { void test1() { auto lambda1 = [](){}; auto lambda2 = lambda1; lambda1(); lambda2(); } int test2() { auto a = [](int i, int j){ return i + j; }(1, 2); auto b = []() -> int { return '0'; }(); auto c = [=](){ return a + b; }(); auto d = [&](){ return c; }(); auto e = [a, &b](int x) mutable { const auto identity = [](int y){ return y; }; for (auto i = 0; i < a; ++i) a += b--; return x + identity(a + b); }(0); return a + b + c + d + e; } int test3() { const auto nullary = [](){ return 0; }; const auto unary = [](int x){ return x; }; using nullary_t = decltype(nullary); using unary_t = decltype(unary); const auto higher1st = [](nullary_t f){ return f(); }; const auto higher2nd = [unary](nullary_t f1){ return [unary, f1](unary_t f2){ return f2(unary(f1())); }; }; return higher1st(nullary) + higher2nd(nullary)(unary); } } namespace test_variadic_templates { template struct sum; template struct sum { static constexpr auto value = N0 + sum::value; }; template <> struct sum<> { static constexpr auto value = 0; }; static_assert(sum<>::value == 0, ""); static_assert(sum<1>::value == 1, ""); static_assert(sum<23>::value == 23, ""); static_assert(sum<1, 2>::value == 3, ""); static_assert(sum<5, 5, 11>::value == 21, ""); static_assert(sum<2, 3, 5, 7, 11, 13>::value == 41, ""); } // http://stackoverflow.com/questions/13728184/template-aliases-and-sfinae // Clang 3.1 fails with headers of libstd++ 4.8.3 when using std::function // because of this. namespace test_template_alias_sfinae { struct foo {}; template using member = typename T::member_type; template void func(...) {} template void func(member*) {} void test(); void test() { func(0); } } } // namespace cxx11 #endif // __cplusplus >= 201103L // If the compiler admits that it is not ready for C++14, why torture it? // Hopefully, this will speed up the test. #ifndef __cplusplus #error "This is not a C++ compiler" #elif __cplusplus < 201402L #error "This is not a C++14 compiler" #else namespace cxx14 { namespace test_polymorphic_lambdas { int test() { const auto lambda = [](auto&&... args){ const auto istiny = [](auto x){ return (sizeof(x) == 1UL) ? 1 : 0; }; const int aretiny[] = { istiny(args)... }; return aretiny[0]; }; return lambda(1, 1L, 1.0f, '1'); } } namespace test_binary_literals { constexpr auto ivii = 0b0000000000101010; static_assert(ivii == 42, "wrong value"); } namespace test_generalized_constexpr { template < typename CharT > constexpr unsigned long strlen_c(const CharT *const s) noexcept { auto length = 0UL; for (auto p = s; *p; ++p) ++length; return length; } static_assert(strlen_c("") == 0UL, ""); static_assert(strlen_c("x") == 1UL, ""); static_assert(strlen_c("test") == 4UL, ""); static_assert(strlen_c("another\0test") == 7UL, ""); } namespace test_lambda_init_capture { int test() { auto x = 0; const auto lambda1 = [a = x](int b){ return a + b; }; const auto lambda2 = [a = lambda1(x)](){ return a; }; return lambda2(); } } namespace test_digit_seperators { constexpr auto ten_million = 100'000'000; static_assert(ten_million == 100000000, ""); } namespace test_return_type_deduction { auto f(int& x) { return x; } decltype(auto) g(int& x) { return x; } template < typename T1, typename T2 > struct is_same { static constexpr auto value = false; }; template < typename T > struct is_same { static constexpr auto value = true; }; int test() { auto x = 0; static_assert(is_same::value, ""); static_assert(is_same::value, ""); return x; } } } // namespace cxx14 #endif // __cplusplus >= 201402L _ACEOF if ac_fn_cxx_try_compile "$LINENO"; then : eval $cachevar=yes else eval $cachevar=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext CXX="$ac_save_CXX" fi eval ac_res=\$$cachevar { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } if eval test x\$$cachevar = xyes; then CXX="$CXX $switch" if test -n "$CXXCPP" ; then CXXCPP="$CXXCPP $switch" fi ac_success=yes break fi done fi if test x$ac_success = xno; then for switch in -std=c++14 -std=c++0x +std=c++14 "-h std=c++14"; do cachevar=`$as_echo "ax_cv_cxx_compile_cxx14_$switch" | $as_tr_sh` { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CXX supports C++14 features with $switch" >&5 $as_echo_n "checking whether $CXX supports C++14 features with $switch... " >&6; } if eval \${$cachevar+:} false; then : $as_echo_n "(cached) " >&6 else ac_save_CXX="$CXX" CXX="$CXX $switch" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ // If the compiler admits that it is not ready for C++11, why torture it? // Hopefully, this will speed up the test. #ifndef __cplusplus #error "This is not a C++ compiler" #elif __cplusplus < 201103L #error "This is not a C++11 compiler" #else namespace cxx11 { namespace test_static_assert { template struct check { static_assert(sizeof(int) <= sizeof(T), "not big enough"); }; } namespace test_final_override { struct Base { virtual void f() {} }; struct Derived : public Base { virtual void f() override {} }; } namespace test_double_right_angle_brackets { template < typename T > struct check {}; typedef check single_type; typedef check> double_type; typedef check>> triple_type; typedef check>>> quadruple_type; } namespace test_decltype { int f() { int a = 1; decltype(a) b = 2; return a + b; } } namespace test_type_deduction { template < typename T1, typename T2 > struct is_same { static const bool value = false; }; template < typename T > struct is_same { static const bool value = true; }; template < typename T1, typename T2 > auto add(T1 a1, T2 a2) -> decltype(a1 + a2) { return a1 + a2; } int test(const int c, volatile int v) { static_assert(is_same::value == true, ""); static_assert(is_same::value == false, ""); static_assert(is_same::value == false, ""); auto ac = c; auto av = v; auto sumi = ac + av + 'x'; auto sumf = ac + av + 1.0; static_assert(is_same::value == true, ""); static_assert(is_same::value == true, ""); static_assert(is_same::value == true, ""); static_assert(is_same::value == false, ""); static_assert(is_same::value == true, ""); return (sumf > 0.0) ? sumi : add(c, v); } } namespace test_noexcept { int f() { return 0; } int g() noexcept { return 0; } static_assert(noexcept(f()) == false, ""); static_assert(noexcept(g()) == true, ""); } namespace test_constexpr { template < typename CharT > unsigned long constexpr strlen_c_r(const CharT *const s, const unsigned long acc) noexcept { return *s ? strlen_c_r(s + 1, acc + 1) : acc; } template < typename CharT > unsigned long constexpr strlen_c(const CharT *const s) noexcept { return strlen_c_r(s, 0UL); } static_assert(strlen_c("") == 0UL, ""); static_assert(strlen_c("1") == 1UL, ""); static_assert(strlen_c("example") == 7UL, ""); static_assert(strlen_c("another\0example") == 7UL, ""); } namespace test_rvalue_references { template < int N > struct answer { static constexpr int value = N; }; answer<1> f(int&) { return answer<1>(); } answer<2> f(const int&) { return answer<2>(); } answer<3> f(int&&) { return answer<3>(); } void test() { int i = 0; const int c = 0; static_assert(decltype(f(i))::value == 1, ""); static_assert(decltype(f(c))::value == 2, ""); static_assert(decltype(f(0))::value == 3, ""); } } namespace test_uniform_initialization { struct test { static const int zero {}; static const int one {1}; }; static_assert(test::zero == 0, ""); static_assert(test::one == 1, ""); } namespace test_lambdas { void test1() { auto lambda1 = [](){}; auto lambda2 = lambda1; lambda1(); lambda2(); } int test2() { auto a = [](int i, int j){ return i + j; }(1, 2); auto b = []() -> int { return '0'; }(); auto c = [=](){ return a + b; }(); auto d = [&](){ return c; }(); auto e = [a, &b](int x) mutable { const auto identity = [](int y){ return y; }; for (auto i = 0; i < a; ++i) a += b--; return x + identity(a + b); }(0); return a + b + c + d + e; } int test3() { const auto nullary = [](){ return 0; }; const auto unary = [](int x){ return x; }; using nullary_t = decltype(nullary); using unary_t = decltype(unary); const auto higher1st = [](nullary_t f){ return f(); }; const auto higher2nd = [unary](nullary_t f1){ return [unary, f1](unary_t f2){ return f2(unary(f1())); }; }; return higher1st(nullary) + higher2nd(nullary)(unary); } } namespace test_variadic_templates { template struct sum; template struct sum { static constexpr auto value = N0 + sum::value; }; template <> struct sum<> { static constexpr auto value = 0; }; static_assert(sum<>::value == 0, ""); static_assert(sum<1>::value == 1, ""); static_assert(sum<23>::value == 23, ""); static_assert(sum<1, 2>::value == 3, ""); static_assert(sum<5, 5, 11>::value == 21, ""); static_assert(sum<2, 3, 5, 7, 11, 13>::value == 41, ""); } // http://stackoverflow.com/questions/13728184/template-aliases-and-sfinae // Clang 3.1 fails with headers of libstd++ 4.8.3 when using std::function // because of this. namespace test_template_alias_sfinae { struct foo {}; template using member = typename T::member_type; template void func(...) {} template void func(member*) {} void test(); void test() { func(0); } } } // namespace cxx11 #endif // __cplusplus >= 201103L // If the compiler admits that it is not ready for C++14, why torture it? // Hopefully, this will speed up the test. #ifndef __cplusplus #error "This is not a C++ compiler" #elif __cplusplus < 201402L #error "This is not a C++14 compiler" #else namespace cxx14 { namespace test_polymorphic_lambdas { int test() { const auto lambda = [](auto&&... args){ const auto istiny = [](auto x){ return (sizeof(x) == 1UL) ? 1 : 0; }; const int aretiny[] = { istiny(args)... }; return aretiny[0]; }; return lambda(1, 1L, 1.0f, '1'); } } namespace test_binary_literals { constexpr auto ivii = 0b0000000000101010; static_assert(ivii == 42, "wrong value"); } namespace test_generalized_constexpr { template < typename CharT > constexpr unsigned long strlen_c(const CharT *const s) noexcept { auto length = 0UL; for (auto p = s; *p; ++p) ++length; return length; } static_assert(strlen_c("") == 0UL, ""); static_assert(strlen_c("x") == 1UL, ""); static_assert(strlen_c("test") == 4UL, ""); static_assert(strlen_c("another\0test") == 7UL, ""); } namespace test_lambda_init_capture { int test() { auto x = 0; const auto lambda1 = [a = x](int b){ return a + b; }; const auto lambda2 = [a = lambda1(x)](){ return a; }; return lambda2(); } } namespace test_digit_seperators { constexpr auto ten_million = 100'000'000; static_assert(ten_million == 100000000, ""); } namespace test_return_type_deduction { auto f(int& x) { return x; } decltype(auto) g(int& x) { return x; } template < typename T1, typename T2 > struct is_same { static constexpr auto value = false; }; template < typename T > struct is_same { static constexpr auto value = true; }; int test() { auto x = 0; static_assert(is_same::value, ""); static_assert(is_same::value, ""); return x; } } } // namespace cxx14 #endif // __cplusplus >= 201402L _ACEOF if ac_fn_cxx_try_compile "$LINENO"; then : eval $cachevar=yes else eval $cachevar=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext CXX="$ac_save_CXX" fi eval ac_res=\$$cachevar { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } if eval test x\$$cachevar = xyes; then CXX="$CXX $switch" if test -n "$CXXCPP" ; then CXXCPP="$CXXCPP $switch" fi ac_success=yes break fi done fi ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu if test x$ax_cxx_compile_cxx14_required = xtrue; then if test x$ac_success = xno; then as_fn_error $? "*** A compiler with support for C++14 language features is required." "$LINENO" 5 fi fi if test x$ac_success = xno; then HAVE_CXX14=0 { $as_echo "$as_me:${as_lineno-$LINENO}: No compiler with C++14 support was found" >&5 $as_echo "$as_me: No compiler with C++14 support was found" >&6;} else HAVE_CXX14=1 $as_echo "#define HAVE_CXX14 1" >>confdefs.h fi WXLIBS_USED="xrc,stc,html,xml,adv,core,net" case "$USE_DEBUG" in yes) DEBUG_FLAGS="-g -Wall -O0" ;; esac # Check whether --with-boost was given. if test "${with_boost+set}" = set; then : withval=$with_boost; if test "$withval" = "no"; then want_boost="no" elif test "$withval" = "yes"; then want_boost="yes" ac_boost_path="" else want_boost="yes" ac_boost_path="$withval" fi else want_boost="yes" fi # Check whether --with-boost-libdir was given. if test "${with_boost_libdir+set}" = set; then : withval=$with_boost_libdir; if test -d "$withval" then ac_boost_lib_path="$withval" else as_fn_error $? "--with-boost-libdir expected directory name" "$LINENO" 5 fi else ac_boost_lib_path="" fi if test "x$want_boost" = "xyes"; then boost_lib_version_req=1.60 boost_lib_version_req_shorten=`expr $boost_lib_version_req : '\([0-9]*\.[0-9]*\)'` boost_lib_version_req_major=`expr $boost_lib_version_req : '\([0-9]*\)'` boost_lib_version_req_minor=`expr $boost_lib_version_req : '[0-9]*\.\([0-9]*\)'` boost_lib_version_req_sub_minor=`expr $boost_lib_version_req : '[0-9]*\.[0-9]*\.\([0-9]*\)'` if test "x$boost_lib_version_req_sub_minor" = "x" ; then boost_lib_version_req_sub_minor="0" fi WANT_BOOST_VERSION=`expr $boost_lib_version_req_major \* 100000 \+ $boost_lib_version_req_minor \* 100 \+ $boost_lib_version_req_sub_minor` { $as_echo "$as_me:${as_lineno-$LINENO}: checking for boostlib >= $boost_lib_version_req" >&5 $as_echo_n "checking for boostlib >= $boost_lib_version_req... " >&6; } succeeded=no libsubdirs="lib" ax_arch=`uname -m` case $ax_arch in x86_64) libsubdirs="lib64 libx32 lib lib64" ;; ppc64|s390x|sparc64|aarch64|ppc64le) libsubdirs="lib64 lib lib64 ppc64le" ;; esac libsubdirs="lib/${host_cpu}-${host_os} $libsubdirs" case ${host_cpu} in i?86) libsubdirs="lib/i386-${host_os} $libsubdirs" ;; esac if test "$ac_boost_path" != ""; then BOOST_CPPFLAGS="-I$ac_boost_path/include" for ac_boost_path_tmp in $libsubdirs; do if test -d "$ac_boost_path"/"$ac_boost_path_tmp" ; then BOOST_LDFLAGS="-L$ac_boost_path/$ac_boost_path_tmp" break fi done elif test "$cross_compiling" != yes; then for ac_boost_path_tmp in /usr /usr/local /opt /opt/local ; do if test -d "$ac_boost_path_tmp/include/boost" && test -r "$ac_boost_path_tmp/include/boost"; then for libsubdir in $libsubdirs ; do if ls "$ac_boost_path_tmp/$libsubdir/libboost_"* >/dev/null 2>&1 ; then break; fi done BOOST_LDFLAGS="-L$ac_boost_path_tmp/$libsubdir" BOOST_CPPFLAGS="-I$ac_boost_path_tmp/include" break; fi done fi if test "$ac_boost_lib_path" != ""; then BOOST_LDFLAGS="-L$ac_boost_lib_path" fi CPPFLAGS_SAVED="$CPPFLAGS" CPPFLAGS="$CPPFLAGS $BOOST_CPPFLAGS" export CPPFLAGS LDFLAGS_SAVED="$LDFLAGS" LDFLAGS="$LDFLAGS $BOOST_LDFLAGS" export LDFLAGS ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { #if BOOST_VERSION >= $WANT_BOOST_VERSION // Everything is okay #else # error Boost version is too old #endif ; return 0; } _ACEOF if ac_fn_cxx_try_compile "$LINENO"; then : { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } succeeded=yes found_system=yes fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu if test "x$succeeded" != "xyes"; then CPPFLAGS="$CPPFLAGS_SAVED" LDFLAGS="$LDFLAGS_SAVED" BOOST_CPPFLAGS= BOOST_LDFLAGS= _version=0 if test "$ac_boost_path" != ""; then if test -d "$ac_boost_path" && test -r "$ac_boost_path"; then for i in `ls -d $ac_boost_path/include/boost-* 2>/dev/null`; do _version_tmp=`echo $i | sed "s#$ac_boost_path##" | sed 's/\/include\/boost-//' | sed 's/_/./'` V_CHECK=`expr $_version_tmp \> $_version` if test "$V_CHECK" = "1" ; then _version=$_version_tmp fi VERSION_UNDERSCORE=`echo $_version | sed 's/\./_/'` BOOST_CPPFLAGS="-I$ac_boost_path/include/boost-$VERSION_UNDERSCORE" done if test -z "$BOOST_CPPFLAGS"; then if test -d "$ac_boost_path/boost" && test -r "$ac_boost_path/boost"; then BOOST_CPPFLAGS="-I$ac_boost_path" fi fi fi else if test "$cross_compiling" != yes; then for ac_boost_path in /usr /usr/local /opt /opt/local ; do if test -d "$ac_boost_path" && test -r "$ac_boost_path"; then for i in `ls -d $ac_boost_path/include/boost-* 2>/dev/null`; do _version_tmp=`echo $i | sed "s#$ac_boost_path##" | sed 's/\/include\/boost-//' | sed 's/_/./'` V_CHECK=`expr $_version_tmp \> $_version` if test "$V_CHECK" = "1" ; then _version=$_version_tmp best_path=$ac_boost_path fi done fi done VERSION_UNDERSCORE=`echo $_version | sed 's/\./_/'` BOOST_CPPFLAGS="-I$best_path/include/boost-$VERSION_UNDERSCORE" if test "$ac_boost_lib_path" = ""; then for libsubdir in $libsubdirs ; do if ls "$best_path/$libsubdir/libboost_"* >/dev/null 2>&1 ; then break; fi done BOOST_LDFLAGS="-L$best_path/$libsubdir" fi fi if test "x$BOOST_ROOT" != "x"; then for libsubdir in $libsubdirs ; do if ls "$BOOST_ROOT/stage/$libsubdir/libboost_"* >/dev/null 2>&1 ; then break; fi done if test -d "$BOOST_ROOT" && test -r "$BOOST_ROOT" && test -d "$BOOST_ROOT/stage/$libsubdir" && test -r "$BOOST_ROOT/stage/$libsubdir"; then version_dir=`expr //$BOOST_ROOT : '.*/\(.*\)'` stage_version=`echo $version_dir | sed 's/boost_//' | sed 's/_/./g'` stage_version_shorten=`expr $stage_version : '\([0-9]*\.[0-9]*\)'` V_CHECK=`expr $stage_version_shorten \>\= $_version` if test "$V_CHECK" = "1" -a "$ac_boost_lib_path" = "" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: We will use a staged boost library from $BOOST_ROOT" >&5 $as_echo "$as_me: We will use a staged boost library from $BOOST_ROOT" >&6;} BOOST_CPPFLAGS="-I$BOOST_ROOT" BOOST_LDFLAGS="-L$BOOST_ROOT/stage/$libsubdir" fi fi fi fi CPPFLAGS="$CPPFLAGS $BOOST_CPPFLAGS" export CPPFLAGS LDFLAGS="$LDFLAGS $BOOST_LDFLAGS" export LDFLAGS ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { #if BOOST_VERSION >= $WANT_BOOST_VERSION // Everything is okay #else # error Boost version is too old #endif ; return 0; } _ACEOF if ac_fn_cxx_try_compile "$LINENO"; then : { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } succeeded=yes found_system=yes fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu fi if test "$succeeded" != "yes" ; then if test "$_version" = "0" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: We could not detect the boost libraries (version $boost_lib_version_req_shorten or higher). If you have a staged boost library (still not installed) please specify \$BOOST_ROOT in your environment and do not give a PATH to --with-boost option. If you are sure you have boost installed, then check your version number looking in . See http://randspringer.de/boost for more documentation." >&5 $as_echo "$as_me: We could not detect the boost libraries (version $boost_lib_version_req_shorten or higher). If you have a staged boost library (still not installed) please specify \$BOOST_ROOT in your environment and do not give a PATH to --with-boost option. If you are sure you have boost installed, then check your version number looking in . See http://randspringer.de/boost for more documentation." >&6;} else { $as_echo "$as_me:${as_lineno-$LINENO}: Your boost libraries seems to old (version $_version)." >&5 $as_echo "$as_me: Your boost libraries seems to old (version $_version)." >&6;} fi # execute ACTION-IF-NOT-FOUND (if present): as_fn_error $? "Boost libraries are required" "$LINENO" 5 else $as_echo "#define HAVE_BOOST /**/" >>confdefs.h # execute ACTION-IF-FOUND (if present): : fi CPPFLAGS="$CPPFLAGS_SAVED" LDFLAGS="$LDFLAGS_SAVED" fi # Check whether --with-boost-system was given. if test "${with_boost_system+set}" = set; then : withval=$with_boost_system; if test "$withval" = "no"; then want_boost="no" elif test "$withval" = "yes"; then want_boost="yes" ax_boost_user_system_lib="" else want_boost="yes" ax_boost_user_system_lib="$withval" fi else want_boost="yes" fi if test "x$want_boost" = "xyes"; then CPPFLAGS_SAVED="$CPPFLAGS" CPPFLAGS="$CPPFLAGS $BOOST_CPPFLAGS" export CPPFLAGS LDFLAGS_SAVED="$LDFLAGS" LDFLAGS="$LDFLAGS $BOOST_LDFLAGS" export LDFLAGS { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the Boost::System library is available" >&5 $as_echo_n "checking whether the Boost::System library is available... " >&6; } if ${ax_cv_boost_system+:} false; then : $as_echo_n "(cached) " >&6 else ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu CXXFLAGS_SAVE=$CXXFLAGS cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { boost::system::system_category ; return 0; } _ACEOF if ac_fn_cxx_try_compile "$LINENO"; then : ax_cv_boost_system=yes else ax_cv_boost_system=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext CXXFLAGS=$CXXFLAGS_SAVE ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_boost_system" >&5 $as_echo "$ax_cv_boost_system" >&6; } if test "x$ax_cv_boost_system" = "xyes"; then $as_echo "#define HAVE_BOOST_SYSTEM /**/" >>confdefs.h BOOSTLIBDIR=`echo $BOOST_LDFLAGS | sed -e 's/[^\/]*//'` LDFLAGS_SAVE=$LDFLAGS if test "x$ax_boost_user_system_lib" = "x"; then for libextension in `ls -r $BOOSTLIBDIR/libboost_system* 2>/dev/null | sed 's,.*/lib,,' | sed 's,\..*,,'` ; do ax_lib=${libextension} as_ac_Lib=`$as_echo "ac_cv_lib_$ax_lib''_exit" | $as_tr_sh` { $as_echo "$as_me:${as_lineno-$LINENO}: checking for exit in -l$ax_lib" >&5 $as_echo_n "checking for exit in -l$ax_lib... " >&6; } if eval \${$as_ac_Lib+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-l$ax_lib $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 exit (); int main () { return exit (); ; return 0; } _ACEOF if ac_fn_cxx_try_link "$LINENO"; then : eval "$as_ac_Lib=yes" else eval "$as_ac_Lib=no" fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi eval ac_res=\$$as_ac_Lib { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then : BOOST_SYSTEM_LIB="-l$ax_lib"; link_system="yes"; break else link_system="no" fi done if test "x$link_system" != "xyes"; then for libextension in `ls -r $BOOSTLIBDIR/boost_system* 2>/dev/null | sed 's,.*/,,' | sed -e 's,\..*,,'` ; do ax_lib=${libextension} as_ac_Lib=`$as_echo "ac_cv_lib_$ax_lib''_exit" | $as_tr_sh` { $as_echo "$as_me:${as_lineno-$LINENO}: checking for exit in -l$ax_lib" >&5 $as_echo_n "checking for exit in -l$ax_lib... " >&6; } if eval \${$as_ac_Lib+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-l$ax_lib $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 exit (); int main () { return exit (); ; return 0; } _ACEOF if ac_fn_cxx_try_link "$LINENO"; then : eval "$as_ac_Lib=yes" else eval "$as_ac_Lib=no" fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi eval ac_res=\$$as_ac_Lib { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then : BOOST_SYSTEM_LIB="-l$ax_lib"; link_system="yes"; break else link_system="no" fi done fi else for ax_lib in $ax_boost_user_system_lib boost_system-$ax_boost_user_system_lib; do as_ac_Lib=`$as_echo "ac_cv_lib_$ax_lib''_exit" | $as_tr_sh` { $as_echo "$as_me:${as_lineno-$LINENO}: checking for exit in -l$ax_lib" >&5 $as_echo_n "checking for exit in -l$ax_lib... " >&6; } if eval \${$as_ac_Lib+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-l$ax_lib $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 exit (); int main () { return exit (); ; return 0; } _ACEOF if ac_fn_cxx_try_link "$LINENO"; then : eval "$as_ac_Lib=yes" else eval "$as_ac_Lib=no" fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi eval ac_res=\$$as_ac_Lib { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then : BOOST_SYSTEM_LIB="-l$ax_lib"; link_system="yes"; break else link_system="no" fi done fi if test "x$ax_lib" = "x"; then as_fn_error $? "Could not find a version of the library!" "$LINENO" 5 fi if test "x$link_system" = "xno"; then as_fn_error $? "Could not link against $ax_lib !" "$LINENO" 5 fi fi CPPFLAGS="$CPPFLAGS_SAVED" LDFLAGS="$LDFLAGS_SAVED" fi # Check whether --with-boost-regex was given. if test "${with_boost_regex+set}" = set; then : withval=$with_boost_regex; if test "$withval" = "no"; then want_boost="no" elif test "$withval" = "yes"; then want_boost="yes" ax_boost_user_regex_lib="" else want_boost="yes" ax_boost_user_regex_lib="$withval" fi else want_boost="yes" fi if test "x$want_boost" = "xyes"; then CPPFLAGS_SAVED="$CPPFLAGS" CPPFLAGS="$CPPFLAGS $BOOST_CPPFLAGS" export CPPFLAGS LDFLAGS_SAVED="$LDFLAGS" LDFLAGS="$LDFLAGS $BOOST_LDFLAGS" export LDFLAGS { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the Boost::Regex library is available" >&5 $as_echo_n "checking whether the Boost::Regex library is available... " >&6; } if ${ax_cv_boost_regex+:} false; then : $as_echo_n "(cached) " >&6 else ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { boost::regex r(); return 0; ; return 0; } _ACEOF if ac_fn_cxx_try_compile "$LINENO"; then : ax_cv_boost_regex=yes else ax_cv_boost_regex=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_boost_regex" >&5 $as_echo "$ax_cv_boost_regex" >&6; } if test "x$ax_cv_boost_regex" = "xyes"; then $as_echo "#define HAVE_BOOST_REGEX /**/" >>confdefs.h BOOSTLIBDIR=`echo $BOOST_LDFLAGS | sed -e 's/[^\/]*//'` if test "x$ax_boost_user_regex_lib" = "x"; then for libextension in `ls $BOOSTLIBDIR/libboost_regex*.so* $BOOSTLIBDIR/libboost_regex*.dylib* $BOOSTLIBDIR/libboost_regex*.a* 2>/dev/null | sed 's,.*/,,' | sed -e 's;^lib\(boost_regex.*\)\.so.*$;\1;' -e 's;^lib\(boost_regex.*\)\.dylib.*;\1;' -e 's;^lib\(boost_regex.*\)\.a.*$;\1;'` ; do ax_lib=${libextension} as_ac_Lib=`$as_echo "ac_cv_lib_$ax_lib''_exit" | $as_tr_sh` { $as_echo "$as_me:${as_lineno-$LINENO}: checking for exit in -l$ax_lib" >&5 $as_echo_n "checking for exit in -l$ax_lib... " >&6; } if eval \${$as_ac_Lib+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-l$ax_lib $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 exit (); int main () { return exit (); ; return 0; } _ACEOF if ac_fn_cxx_try_link "$LINENO"; then : eval "$as_ac_Lib=yes" else eval "$as_ac_Lib=no" fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi eval ac_res=\$$as_ac_Lib { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then : BOOST_REGEX_LIB="-l$ax_lib"; link_regex="yes"; break else link_regex="no" fi done if test "x$link_regex" != "xyes"; then for libextension in `ls $BOOSTLIBDIR/boost_regex*.dll* $BOOSTLIBDIR/boost_regex*.a* 2>/dev/null | sed 's,.*/,,' | sed -e 's;^\(boost_regex.*\)\.dll.*$;\1;' -e 's;^\(boost_regex.*\)\.a.*$;\1;'` ; do ax_lib=${libextension} as_ac_Lib=`$as_echo "ac_cv_lib_$ax_lib''_exit" | $as_tr_sh` { $as_echo "$as_me:${as_lineno-$LINENO}: checking for exit in -l$ax_lib" >&5 $as_echo_n "checking for exit in -l$ax_lib... " >&6; } if eval \${$as_ac_Lib+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-l$ax_lib $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 exit (); int main () { return exit (); ; return 0; } _ACEOF if ac_fn_cxx_try_link "$LINENO"; then : eval "$as_ac_Lib=yes" else eval "$as_ac_Lib=no" fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi eval ac_res=\$$as_ac_Lib { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then : BOOST_REGEX_LIB="-l$ax_lib"; link_regex="yes"; break else link_regex="no" fi done fi else for ax_lib in $ax_boost_user_regex_lib boost_regex-$ax_boost_user_regex_lib; do as_ac_Lib=`$as_echo "ac_cv_lib_$ax_lib''_main" | $as_tr_sh` { $as_echo "$as_me:${as_lineno-$LINENO}: checking for main in -l$ax_lib" >&5 $as_echo_n "checking for main in -l$ax_lib... " >&6; } if eval \${$as_ac_Lib+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-l$ax_lib $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { return main (); ; return 0; } _ACEOF if ac_fn_cxx_try_link "$LINENO"; then : eval "$as_ac_Lib=yes" else eval "$as_ac_Lib=no" fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi eval ac_res=\$$as_ac_Lib { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then : BOOST_REGEX_LIB="-l$ax_lib"; link_regex="yes"; break else link_regex="no" fi done fi if test "x$ax_lib" = "x"; then as_fn_error $? "Could not find a version of the Boost::Regex library!" "$LINENO" 5 fi if test "x$link_regex" != "xyes"; then as_fn_error $? "Could not link against $ax_lib !" "$LINENO" 5 fi fi CPPFLAGS="$CPPFLAGS_SAVED" LDFLAGS="$LDFLAGS_SAVED" fi # Check whether --with-boost-thread was given. if test "${with_boost_thread+set}" = set; then : withval=$with_boost_thread; if test "$withval" = "no"; then want_boost="no" elif test "$withval" = "yes"; then want_boost="yes" ax_boost_user_thread_lib="" else want_boost="yes" ax_boost_user_thread_lib="$withval" fi else want_boost="yes" fi if test "x$want_boost" = "xyes"; then CPPFLAGS_SAVED="$CPPFLAGS" CPPFLAGS="$CPPFLAGS $BOOST_CPPFLAGS" export CPPFLAGS LDFLAGS_SAVED="$LDFLAGS" LDFLAGS="$LDFLAGS $BOOST_LDFLAGS" export LDFLAGS { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the Boost::Thread library is available" >&5 $as_echo_n "checking whether the Boost::Thread library is available... " >&6; } if ${ax_cv_boost_thread+:} false; then : $as_echo_n "(cached) " >&6 else ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu CXXFLAGS_SAVE=$CXXFLAGS if test "x$host_os" = "xsolaris" ; then CXXFLAGS="-pthreads $CXXFLAGS" elif test "x$host_os" = "xmingw32" ; then CXXFLAGS="-mthreads $CXXFLAGS" else CXXFLAGS="-pthread $CXXFLAGS" fi cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { boost::thread_group thrds; return 0; ; return 0; } _ACEOF if ac_fn_cxx_try_compile "$LINENO"; then : ax_cv_boost_thread=yes else ax_cv_boost_thread=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext CXXFLAGS=$CXXFLAGS_SAVE ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_boost_thread" >&5 $as_echo "$ax_cv_boost_thread" >&6; } if test "x$ax_cv_boost_thread" = "xyes"; then if test "x$host_os" = "xsolaris" ; then BOOST_CPPFLAGS="-pthreads $BOOST_CPPFLAGS" elif test "x$host_os" = "xmingw32" ; then BOOST_CPPFLAGS="-mthreads $BOOST_CPPFLAGS" else BOOST_CPPFLAGS="-pthread $BOOST_CPPFLAGS" fi $as_echo "#define HAVE_BOOST_THREAD /**/" >>confdefs.h BOOSTLIBDIR=`echo $BOOST_LDFLAGS | sed -e 's/[^\/]*//'` LDFLAGS_SAVE=$LDFLAGS case "x$host_os" in *bsd* ) LDFLAGS="-pthread $LDFLAGS" break; ;; esac if test "x$ax_boost_user_thread_lib" = "x"; then for libextension in `ls -r $BOOSTLIBDIR/libboost_thread* 2>/dev/null | sed 's,.*/lib,,' | sed 's,\..*,,'`; do ax_lib=${libextension} as_ac_Lib=`$as_echo "ac_cv_lib_$ax_lib''_exit" | $as_tr_sh` { $as_echo "$as_me:${as_lineno-$LINENO}: checking for exit in -l$ax_lib" >&5 $as_echo_n "checking for exit in -l$ax_lib... " >&6; } if eval \${$as_ac_Lib+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-l$ax_lib $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 exit (); int main () { return exit (); ; return 0; } _ACEOF if ac_fn_cxx_try_link "$LINENO"; then : eval "$as_ac_Lib=yes" else eval "$as_ac_Lib=no" fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi eval ac_res=\$$as_ac_Lib { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then : BOOST_THREAD_LIB="-l$ax_lib"; link_thread="yes"; break else link_thread="no" fi done if test "x$link_thread" != "xyes"; then for libextension in `ls -r $BOOSTLIBDIR/boost_thread* 2>/dev/null | sed 's,.*/,,' | sed 's,\..*,,'`; do ax_lib=${libextension} as_ac_Lib=`$as_echo "ac_cv_lib_$ax_lib''_exit" | $as_tr_sh` { $as_echo "$as_me:${as_lineno-$LINENO}: checking for exit in -l$ax_lib" >&5 $as_echo_n "checking for exit in -l$ax_lib... " >&6; } if eval \${$as_ac_Lib+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-l$ax_lib $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 exit (); int main () { return exit (); ; return 0; } _ACEOF if ac_fn_cxx_try_link "$LINENO"; then : eval "$as_ac_Lib=yes" else eval "$as_ac_Lib=no" fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi eval ac_res=\$$as_ac_Lib { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then : BOOST_THREAD_LIB="-l$ax_lib"; link_thread="yes"; break else link_thread="no" fi done fi else for ax_lib in $ax_boost_user_thread_lib boost_thread-$ax_boost_user_thread_lib; do as_ac_Lib=`$as_echo "ac_cv_lib_$ax_lib''_exit" | $as_tr_sh` { $as_echo "$as_me:${as_lineno-$LINENO}: checking for exit in -l$ax_lib" >&5 $as_echo_n "checking for exit in -l$ax_lib... " >&6; } if eval \${$as_ac_Lib+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-l$ax_lib $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 exit (); int main () { return exit (); ; return 0; } _ACEOF if ac_fn_cxx_try_link "$LINENO"; then : eval "$as_ac_Lib=yes" else eval "$as_ac_Lib=no" fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi eval ac_res=\$$as_ac_Lib { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then : BOOST_THREAD_LIB="-l$ax_lib"; link_thread="yes"; break else link_thread="no" fi done fi if test "x$ax_lib" = "x"; then as_fn_error $? "Could not find a version of the library!" "$LINENO" 5 fi if test "x$link_thread" = "xno"; then as_fn_error $? "Could not link against $ax_lib !" "$LINENO" 5 else case "x$host_os" in *bsd* ) BOOST_LDFLAGS="-pthread $BOOST_LDFLAGS" break; ;; esac fi fi CPPFLAGS="$CPPFLAGS_SAVED" LDFLAGS="$LDFLAGS_SAVED" fi CXXFLAGS="$CXXFLAGS $BOOST_CPPFLAGS" # Check whether --with-cpprest was given. if test "${with_cpprest+set}" = set; then : withval=$with_cpprest; fi { $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_cxx_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_cxx_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_cxx_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 if test "x$with_cpprest" != "xno"; then : # Check whether --with-boost-iostreams was given. if test "${with_boost_iostreams+set}" = set; then : withval=$with_boost_iostreams; if test "$withval" = "no"; then want_boost="no" elif test "$withval" = "yes"; then want_boost="yes" ax_boost_user_iostreams_lib="" else want_boost="yes" ax_boost_user_iostreams_lib="$withval" fi else want_boost="yes" fi if test "x$want_boost" = "xyes"; then CPPFLAGS_SAVED="$CPPFLAGS" CPPFLAGS="$CPPFLAGS $BOOST_CPPFLAGS" export CPPFLAGS LDFLAGS_SAVED="$LDFLAGS" LDFLAGS="$LDFLAGS $BOOST_LDFLAGS" export LDFLAGS { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the Boost::IOStreams library is available" >&5 $as_echo_n "checking whether the Boost::IOStreams library is available... " >&6; } if ${ax_cv_boost_iostreams+:} false; then : $as_echo_n "(cached) " >&6 else ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include int main () { std::string input = "Hello World!"; namespace io = boost::iostreams; io::filtering_istream in(boost::make_iterator_range(input)); return 0; ; return 0; } _ACEOF if ac_fn_cxx_try_compile "$LINENO"; then : ax_cv_boost_iostreams=yes else ax_cv_boost_iostreams=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_boost_iostreams" >&5 $as_echo "$ax_cv_boost_iostreams" >&6; } if test "x$ax_cv_boost_iostreams" = "xyes"; then $as_echo "#define HAVE_BOOST_IOSTREAMS /**/" >>confdefs.h BOOSTLIBDIR=`echo $BOOST_LDFLAGS | sed -e 's/[^\/]*//'` if test "x$ax_boost_user_iostreams_lib" = "x"; then for libextension in `ls $BOOSTLIBDIR/libboost_iostreams*.so* $BOOSTLIBDIR/libboost_iostream*.dylib* $BOOSTLIBDIR/libboost_iostreams*.a* 2>/dev/null | sed 's,.*/,,' | sed -e 's;^lib\(boost_iostreams.*\)\.so.*$;\1;' -e 's;^lib\(boost_iostream.*\)\.dylib.*$;\1;' -e 's;^lib\(boost_iostreams.*\)\.a.*$;\1;'` ; do ax_lib=${libextension} as_ac_Lib=`$as_echo "ac_cv_lib_$ax_lib''_exit" | $as_tr_sh` { $as_echo "$as_me:${as_lineno-$LINENO}: checking for exit in -l$ax_lib" >&5 $as_echo_n "checking for exit in -l$ax_lib... " >&6; } if eval \${$as_ac_Lib+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-l$ax_lib $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 exit (); int main () { return exit (); ; return 0; } _ACEOF if ac_fn_cxx_try_link "$LINENO"; then : eval "$as_ac_Lib=yes" else eval "$as_ac_Lib=no" fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi eval ac_res=\$$as_ac_Lib { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then : BOOST_IOSTREAMS_LIB="-l$ax_lib"; link_iostreams="yes"; break else link_iostreams="no" fi done if test "x$link_iostreams" != "xyes"; then for libextension in `ls $BOOSTLIBDIR/boost_iostreams*.dll* $BOOSTLIBDIR/boost_iostreams*.a* 2>/dev/null | sed 's,.*/,,' | sed -e 's;^\(boost_iostreams.*\)\.dll.*$;\1;' -e 's;^\(boost_iostreams.*\)\.a.*$;\1;'` ; do ax_lib=${libextension} as_ac_Lib=`$as_echo "ac_cv_lib_$ax_lib''_exit" | $as_tr_sh` { $as_echo "$as_me:${as_lineno-$LINENO}: checking for exit in -l$ax_lib" >&5 $as_echo_n "checking for exit in -l$ax_lib... " >&6; } if eval \${$as_ac_Lib+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-l$ax_lib $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 exit (); int main () { return exit (); ; return 0; } _ACEOF if ac_fn_cxx_try_link "$LINENO"; then : eval "$as_ac_Lib=yes" else eval "$as_ac_Lib=no" fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi eval ac_res=\$$as_ac_Lib { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then : BOOST_IOSTREAMS_LIB="-l$ax_lib"; link_iostreams="yes"; break else link_iostreams="no" fi done fi else for ax_lib in $ax_boost_user_iostreams_lib boost_iostreams-$ax_boost_user_iostreams_lib; do as_ac_Lib=`$as_echo "ac_cv_lib_$ax_lib''_main" | $as_tr_sh` { $as_echo "$as_me:${as_lineno-$LINENO}: checking for main in -l$ax_lib" >&5 $as_echo_n "checking for main in -l$ax_lib... " >&6; } if eval \${$as_ac_Lib+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-l$ax_lib $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { return main (); ; return 0; } _ACEOF if ac_fn_cxx_try_link "$LINENO"; then : eval "$as_ac_Lib=yes" else eval "$as_ac_Lib=no" fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi eval ac_res=\$$as_ac_Lib { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then : BOOST_IOSTREAMS_LIB="-l$ax_lib"; link_iostreams="yes"; break else link_iostreams="no" fi done fi if test "x$ax_lib" = "x"; then as_fn_error $? "Could not find a version of the library!" "$LINENO" 5 fi if test "x$link_iostreams" != "xyes"; then as_fn_error $? "Could not link against $ax_lib !" "$LINENO" 5 fi fi CPPFLAGS="$CPPFLAGS_SAVED" LDFLAGS="$LDFLAGS_SAVED" fi have_cpprest=no old_CPPFLAGS="$CPPFLAGS" CPPFLAGS="$CPPFLAGS $CXXFLAGS $BOOST_CPPFLAGS" for ac_header in cpprest/http_client.h do : ac_fn_cxx_check_header_mongrel "$LINENO" "cpprest/http_client.h" "ac_cv_header_cpprest_http_client_h" "$ac_includes_default" if test "x$ac_cv_header_cpprest_http_client_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_CPPREST_HTTP_CLIENT_H 1 _ACEOF { $as_echo "$as_me:${as_lineno-$LINENO}: checking for libcpprest >= 2.5" >&5 $as_echo_n "checking for libcpprest >= 2.5... " >&6; } old_LIBS="$LIBS" LIBS="-lcpprest $BOOST_SYSTEM_LIB $BOOST_THREAD_LIB -lssl -lcrypto $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include int main () { #if CPPREST_VERSION < 200500 #error "cpprest >= 2.5 required" #endif web::http::client::http_client c(U("https://poedit.net")); ; return 0; } _ACEOF if ac_fn_cxx_try_link "$LINENO"; then : have_cpprest=yes fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS="$old_LIBS" { $as_echo "$as_me:${as_lineno-$LINENO}: result: $have_cpprest" >&5 $as_echo "$have_cpprest" >&6; } fi done CPPFLAGS="$old_CPPFLAGS" else have_cpprest=no fi if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args. set dummy ${ac_tool_prefix}pkg-config; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_PKG_CONFIG+:} false; then : $as_echo_n "(cached) " >&6 else case $PKG_CONFIG in [\\/]* | ?:[\\/]*) ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi PKG_CONFIG=$ac_cv_path_PKG_CONFIG if test -n "$PKG_CONFIG"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5 $as_echo "$PKG_CONFIG" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_path_PKG_CONFIG"; then ac_pt_PKG_CONFIG=$PKG_CONFIG # Extract the first word of "pkg-config", so it can be a program name with args. set dummy pkg-config; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_ac_pt_PKG_CONFIG+:} false; then : $as_echo_n "(cached) " >&6 else case $ac_pt_PKG_CONFIG in [\\/]* | ?:[\\/]*) ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG if test -n "$ac_pt_PKG_CONFIG"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5 $as_echo "$ac_pt_PKG_CONFIG" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_pt_PKG_CONFIG" = x; then PKG_CONFIG="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac PKG_CONFIG=$ac_pt_PKG_CONFIG fi else PKG_CONFIG="$ac_cv_path_PKG_CONFIG" fi fi if test -n "$PKG_CONFIG"; then _pkg_min_version=0.9.0 { $as_echo "$as_me:${as_lineno-$LINENO}: checking pkg-config is at least version $_pkg_min_version" >&5 $as_echo_n "checking pkg-config is at least version $_pkg_min_version... " >&6; } if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } PKG_CONFIG="" fi fi if test "x$have_cpprest" = "xyes"; then : $as_echo "#define HAVE_HTTP_CLIENT 1" >>confdefs.h $as_echo "#define HAVE_PPL 1" >>confdefs.h CPPREST_LIBS="-lcpprest $BOOST_IOSTREAMS_LIB $BOOST_THREAD_LIB $BOOST_SYSTEM_LIB -lssl -lcrypto" pkg_failed=no { $as_echo "$as_me:${as_lineno-$LINENO}: checking for LIBSECRET" >&5 $as_echo_n "checking for LIBSECRET... " >&6; } if test -n "$LIBSECRET_CFLAGS"; then pkg_cv_LIBSECRET_CFLAGS="$LIBSECRET_CFLAGS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libsecret-1\""; } >&5 ($PKG_CONFIG --exists --print-errors "libsecret-1") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_LIBSECRET_CFLAGS=`$PKG_CONFIG --cflags "libsecret-1" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes fi else pkg_failed=untried fi if test -n "$LIBSECRET_LIBS"; then pkg_cv_LIBSECRET_LIBS="$LIBSECRET_LIBS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libsecret-1\""; } >&5 ($PKG_CONFIG --exists --print-errors "libsecret-1") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_LIBSECRET_LIBS=`$PKG_CONFIG --libs "libsecret-1" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes fi else pkg_failed=untried fi if test $pkg_failed = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then _pkg_short_errors_supported=yes else _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then LIBSECRET_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "libsecret-1" 2>&1` else LIBSECRET_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "libsecret-1" 2>&1` fi # Put the nasty error message in config.log where it belongs echo "$LIBSECRET_PKG_ERRORS" >&5 as_fn_error $? "Package requirements (libsecret-1) were not met: $LIBSECRET_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 LIBSECRET_CFLAGS and LIBSECRET_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 LIBSECRET_CFLAGS and LIBSECRET_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 LIBSECRET_CFLAGS=$pkg_cv_LIBSECRET_CFLAGS LIBSECRET_LIBS=$pkg_cv_LIBSECRET_LIBS { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } CXXFLAGS="$CXXFLAGS $LIBSECRET_CFLAGS" fi else if test "x$with_cpprest" = "xyes"; then : as_fn_error $? "C++ REST SDK requested but not found" "$LINENO" 5 fi fi if test "x$have_cpprest" != "xno"; then HAVE_CPPREST_TRUE= HAVE_CPPREST_FALSE='#' else HAVE_CPPREST_TRUE='#' HAVE_CPPREST_FALSE= fi for ac_header in json.hpp do : ac_fn_cxx_check_header_mongrel "$LINENO" "json.hpp" "ac_cv_header_json_hpp" "$ac_includes_default" if test "x$ac_cv_header_json_hpp" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_JSON_HPP 1 _ACEOF fi done if test x${WX_CONFIG_NAME+set} != xset ; then WX_CONFIG_NAME=wx-config fi if test "x$wx_config_name" != x ; then WX_CONFIG_NAME="$wx_config_name" fi if test x$wx_config_exec_prefix != x ; then wx_config_args="$wx_config_args --exec-prefix=$wx_config_exec_prefix" WX_LOOKUP_PATH="$wx_config_exec_prefix/bin" fi if test x$wx_config_prefix != x ; then wx_config_args="$wx_config_args --prefix=$wx_config_prefix" WX_LOOKUP_PATH="$WX_LOOKUP_PATH:$wx_config_prefix/bin" fi if test "$cross_compiling" = "yes"; then wx_config_args="$wx_config_args --host=$host_alias" fi if test -x "$WX_CONFIG_NAME" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for wx-config" >&5 $as_echo_n "checking for wx-config... " >&6; } WX_CONFIG_PATH="$WX_CONFIG_NAME" { $as_echo "$as_me:${as_lineno-$LINENO}: result: $WX_CONFIG_PATH" >&5 $as_echo "$WX_CONFIG_PATH" >&6; } else # Extract the first word of "$WX_CONFIG_NAME", so it can be a program name with args. set dummy $WX_CONFIG_NAME; 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_WX_CONFIG_PATH+:} false; then : $as_echo_n "(cached) " >&6 else case $WX_CONFIG_PATH in [\\/]* | ?:[\\/]*) ac_cv_path_WX_CONFIG_PATH="$WX_CONFIG_PATH" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR as_dummy=""$WX_LOOKUP_PATH:$PATH"" for as_dir in $as_dummy do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_WX_CONFIG_PATH="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_path_WX_CONFIG_PATH" && ac_cv_path_WX_CONFIG_PATH="no" ;; esac fi WX_CONFIG_PATH=$ac_cv_path_WX_CONFIG_PATH if test -n "$WX_CONFIG_PATH"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $WX_CONFIG_PATH" >&5 $as_echo "$WX_CONFIG_PATH" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test "$WX_CONFIG_PATH" != "no" ; then WX_VERSION="" min_wx_version=3.0.3 if test -z "--unicode" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for wxWidgets version >= $min_wx_version" >&5 $as_echo_n "checking for wxWidgets version >= $min_wx_version... " >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for wxWidgets version >= $min_wx_version (--unicode)" >&5 $as_echo_n "checking for wxWidgets version >= $min_wx_version (--unicode)... " >&6; } fi WX_CONFIG_WITH_ARGS="$WX_CONFIG_PATH $wx_config_args --unicode" WX_VERSION=`$WX_CONFIG_WITH_ARGS --version 2>/dev/null` wx_config_major_version=`echo $WX_VERSION | \ sed 's/\([0-9]*\).\([0-9]*\).\([0-9]*\)/\1/'` wx_config_minor_version=`echo $WX_VERSION | \ sed 's/\([0-9]*\).\([0-9]*\).\([0-9]*\)/\2/'` wx_config_micro_version=`echo $WX_VERSION | \ sed 's/\([0-9]*\).\([0-9]*\).\([0-9]*\)/\3/'` wx_requested_major_version=`echo $min_wx_version | \ sed 's/\([0-9]*\).\([0-9]*\).\([0-9]*\)/\1/'` wx_requested_minor_version=`echo $min_wx_version | \ sed 's/\([0-9]*\).\([0-9]*\).\([0-9]*\)/\2/'` wx_requested_micro_version=`echo $min_wx_version | \ sed 's/\([0-9]*\).\([0-9]*\).\([0-9]*\)/\3/'` wx_ver_ok="" if test "x$WX_VERSION" != x ; then if test $wx_config_major_version -gt $wx_requested_major_version; then wx_ver_ok=yes else if test $wx_config_major_version -eq $wx_requested_major_version; then if test $wx_config_minor_version -gt $wx_requested_minor_version; then wx_ver_ok=yes else if test $wx_config_minor_version -eq $wx_requested_minor_version; then if test $wx_config_micro_version -ge $wx_requested_micro_version; then wx_ver_ok=yes fi fi fi fi fi fi if test -n "$wx_ver_ok"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes (version $WX_VERSION)" >&5 $as_echo "yes (version $WX_VERSION)" >&6; } WX_LIBS=`$WX_CONFIG_WITH_ARGS --libs $WXLIBS_USED` { $as_echo "$as_me:${as_lineno-$LINENO}: checking for wxWidgets static library" >&5 $as_echo_n "checking for wxWidgets static library... " >&6; } WX_LIBS_STATIC=`$WX_CONFIG_WITH_ARGS --static --libs $WXLIBS_USED 2>/dev/null` if test "x$WX_LIBS_STATIC" = "x"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } fi wx_has_cppflags="" if test $wx_config_major_version -gt 2; then wx_has_cppflags=yes else if test $wx_config_major_version -eq 2; then if test $wx_config_minor_version -gt 2; then wx_has_cppflags=yes else if test $wx_config_minor_version -eq 2; then if test $wx_config_micro_version -ge 6; then wx_has_cppflags=yes fi fi fi fi fi wx_has_rescomp="" if test $wx_config_major_version -gt 2; then wx_has_rescomp=yes else if test $wx_config_major_version -eq 2; then if test $wx_config_minor_version -ge 7; then wx_has_rescomp=yes fi fi fi if test "x$wx_has_rescomp" = x ; then WX_RESCOMP= else WX_RESCOMP=`$WX_CONFIG_WITH_ARGS --rescomp` fi if test "x$wx_has_cppflags" = x ; then WX_CFLAGS=`$WX_CONFIG_WITH_ARGS --cflags $WXLIBS_USED` WX_CPPFLAGS=$WX_CFLAGS WX_CXXFLAGS=$WX_CFLAGS WX_CFLAGS_ONLY=$WX_CFLAGS WX_CXXFLAGS_ONLY=$WX_CFLAGS else WX_CPPFLAGS=`$WX_CONFIG_WITH_ARGS --cppflags $WXLIBS_USED` WX_CXXFLAGS=`$WX_CONFIG_WITH_ARGS --cxxflags $WXLIBS_USED` WX_CFLAGS=`$WX_CONFIG_WITH_ARGS --cflags $WXLIBS_USED` WX_CFLAGS_ONLY=`echo $WX_CFLAGS | sed "s@^$WX_CPPFLAGS *@@"` WX_CXXFLAGS_ONLY=`echo $WX_CXXFLAGS | sed "s@^$WX_CFLAGS *@@"` fi WXFOUND=1 else if test "x$WX_VERSION" = x; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no (version $WX_VERSION is not new enough)" >&5 $as_echo "no (version $WX_VERSION is not new enough)" >&6; } fi WX_CFLAGS="" WX_CPPFLAGS="" WX_CXXFLAGS="" WX_LIBS="" WX_LIBS_STATIC="" WX_RESCOMP="" if test ! -z "--unicode"; then wx_error_message=" The configuration you asked for $PACKAGE_NAME requires a wxWidgets build with the following settings: --unicode but such build is not available. To see the wxWidgets builds available on this system, please use 'wx-config --list' command. To use the default build, returned by 'wx-config --selected-config', use the options with their 'auto' default values." fi wx_error_message=" The requested wxWidgets build couldn't be found. $wx_error_message If you still get this error, then check that 'wx-config' is in path, the directory where wxWidgets libraries are installed (returned by 'wx-config --libs' command) is in LD_LIBRARY_PATH or equivalent variable and wxWidgets version is 3.0.3 or above." WXFOUND=0 fi else WX_CFLAGS="" WX_CPPFLAGS="" WX_CXXFLAGS="" WX_LIBS="" WX_LIBS_STATIC="" WX_RESCOMP="" WXFOUND=0 fi WX_VERSION_MAJOR="$wx_config_major_version" WX_VERSION_MINOR="$wx_config_minor_version" WX_VERSION_MICRO="$wx_config_micro_version" if test "$WXFOUND" != 1; then as_fn_error $? " Please check that wx-config is in path, the directory where wxWidgets libraries are installed (returned by 'wx-config --unicode --libs' command) is in LD_LIBRARY_PATH or equivalent variable and wxWidgets is version 3.0.0 or above, with Unicode build available. " "$LINENO" 5 fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking if wxWidgets includes XRC" >&5 $as_echo_n "checking if wxWidgets includes XRC... " >&6; } saved_CXXFLAGS="$CXXFLAGS" CXXFLAGS="$CXXFLAGS $WX_CXXFLAGS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { #if !defined(wxUSE_XRC) || !wxUSE_XRC #error "XRC not compiled in" #endif ; return 0; } _ACEOF if ac_fn_cxx_try_compile "$LINENO"; 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; } as_fn_error $? "XRC is required to build poedit!" "$LINENO" 5 fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext CXXFLAGS="$saved_CXXFLAGS" CXXFLAGS="$CXXFLAGS $WX_CXXFLAGS" if test "x$WX_CONFIG_NAME" = x; then as_fn_error $? "The wxrc tests must run after wxWidgets test." "$LINENO" 5 else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for wxrc" >&5 $as_echo_n "checking for wxrc... " >&6; } if test "x$WXRC" = x ; then wx_ver_ok="" if test "x$WX_VERSION" != x ; then if test $wx_config_major_version -gt 2; then wx_ver_ok=yes else if test $wx_config_major_version -eq 2; then if test $wx_config_minor_version -gt 5; then wx_ver_ok=yes else if test $wx_config_minor_version -eq 5; then if test $wx_config_micro_version -ge 3; then wx_ver_ok=yes fi fi fi fi fi fi if test -n "$wx_ver_ok"; then WXRC=`$WX_CONFIG_WITH_ARGS --utility=wxrc` fi fi if test "x$WXRC" = x ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 $as_echo "not found" >&6; } as_fn_error $? "wxrc is needed to compile Poedit." "$LINENO" 5 else { $as_echo "$as_me:${as_lineno-$LINENO}: result: $WXRC" >&5 $as_echo "$WXRC" >&6; } : fi fi for ac_func in mkdtemp do : ac_fn_cxx_check_func "$LINENO" "mkdtemp" "ac_cv_func_mkdtemp" if test "x$ac_cv_func_mkdtemp" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_MKDTEMP 1 _ACEOF fi done pkg_failed=no { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ICU" >&5 $as_echo_n "checking for ICU... " >&6; } if test -n "$ICU_CFLAGS"; then pkg_cv_ICU_CFLAGS="$ICU_CFLAGS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"icu-uc icu-i18n\""; } >&5 ($PKG_CONFIG --exists --print-errors "icu-uc icu-i18n") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_ICU_CFLAGS=`$PKG_CONFIG --cflags "icu-uc icu-i18n" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes fi else pkg_failed=untried fi if test -n "$ICU_LIBS"; then pkg_cv_ICU_LIBS="$ICU_LIBS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"icu-uc icu-i18n\""; } >&5 ($PKG_CONFIG --exists --print-errors "icu-uc icu-i18n") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_ICU_LIBS=`$PKG_CONFIG --libs "icu-uc icu-i18n" 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 ICU_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "icu-uc icu-i18n" 2>&1` else ICU_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "icu-uc icu-i18n" 2>&1` fi # Put the nasty error message in config.log where it belongs echo "$ICU_PKG_ERRORS" >&5 as_fn_error $? "missing ICU library" "$LINENO" 5 elif test $pkg_failed = untried; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } as_fn_error $? "missing ICU library" "$LINENO" 5 else ICU_CFLAGS=$pkg_cv_ICU_CFLAGS ICU_LIBS=$pkg_cv_ICU_LIBS { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } CXXFLAGS="$CXXFLAGS $ICU_CFLAGS" LIBS="$LIBS $ICU_LIBS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking if wxWidgets toolkit uses GTK+ 3" >&5 $as_echo_n "checking if wxWidgets toolkit uses GTK+ 3... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { #ifndef __WXGTK3__ #error "not GTK+ 3" #endif ; return 0; } _ACEOF if ac_fn_cxx_try_compile "$LINENO"; then : { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } gtkspell_packages="gtkspell3-3.0 gtk+-3.0" else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking if wxWidgets toolkit uses GTK+ 2" >&5 $as_echo_n "checking if wxWidgets toolkit uses GTK+ 2... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { #ifndef __WXGTK20__ #error "not GTK+ 2" #endif ; return 0; } _ACEOF if ac_fn_cxx_try_compile "$LINENO"; then : { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } gtkspell_packages="gtkspell-2.0 gtk+-2.0 >= 2.20" else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } as_fn_error $? "GTK+ build of wxWidgets is required" "$LINENO" 5 fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext pkg_failed=no { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GTKSPELL" >&5 $as_echo_n "checking for GTKSPELL... " >&6; } if test -n "$GTKSPELL_CFLAGS"; then pkg_cv_GTKSPELL_CFLAGS="$GTKSPELL_CFLAGS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$gtkspell_packages\""; } >&5 ($PKG_CONFIG --exists --print-errors "$gtkspell_packages") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_GTKSPELL_CFLAGS=`$PKG_CONFIG --cflags "$gtkspell_packages" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes fi else pkg_failed=untried fi if test -n "$GTKSPELL_LIBS"; then pkg_cv_GTKSPELL_LIBS="$GTKSPELL_LIBS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$gtkspell_packages\""; } >&5 ($PKG_CONFIG --exists --print-errors "$gtkspell_packages") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_GTKSPELL_LIBS=`$PKG_CONFIG --libs "$gtkspell_packages" 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 GTKSPELL_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "$gtkspell_packages" 2>&1` else GTKSPELL_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "$gtkspell_packages" 2>&1` fi # Put the nasty error message in config.log where it belongs echo "$GTKSPELL_PKG_ERRORS" >&5 as_fn_error $? "missing GtkSpell library" "$LINENO" 5 elif test $pkg_failed = untried; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } as_fn_error $? "missing GtkSpell library" "$LINENO" 5 else GTKSPELL_CFLAGS=$pkg_cv_GTKSPELL_CFLAGS GTKSPELL_LIBS=$pkg_cv_GTKSPELL_LIBS { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } CXXFLAGS="$CXXFLAGS $GTKSPELL_CFLAGS" LIBS="$LIBS $GTKSPELL_LIBS" fi pkg_failed=no { $as_echo "$as_me:${as_lineno-$LINENO}: checking for LUCENE" >&5 $as_echo_n "checking for LUCENE... " >&6; } if test -n "$LUCENE_CFLAGS"; then pkg_cv_LUCENE_CFLAGS="$LUCENE_CFLAGS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"liblucene++ >= 3.0.5\""; } >&5 ($PKG_CONFIG --exists --print-errors "liblucene++ >= 3.0.5") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_LUCENE_CFLAGS=`$PKG_CONFIG --cflags "liblucene++ >= 3.0.5" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes fi else pkg_failed=untried fi if test -n "$LUCENE_LIBS"; then pkg_cv_LUCENE_LIBS="$LUCENE_LIBS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"liblucene++ >= 3.0.5\""; } >&5 ($PKG_CONFIG --exists --print-errors "liblucene++ >= 3.0.5") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_LUCENE_LIBS=`$PKG_CONFIG --libs "liblucene++ >= 3.0.5" 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 LUCENE_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "liblucene++ >= 3.0.5" 2>&1` else LUCENE_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "liblucene++ >= 3.0.5" 2>&1` fi # Put the nasty error message in config.log where it belongs echo "$LUCENE_PKG_ERRORS" >&5 as_fn_error $? "missing Lucene++ library" "$LINENO" 5 elif test $pkg_failed = untried; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } as_fn_error $? "missing Lucene++ library" "$LINENO" 5 else LUCENE_CFLAGS=$pkg_cv_LUCENE_CFLAGS LUCENE_LIBS=$pkg_cv_LUCENE_LIBS { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } CXXFLAGS="$CXXFLAGS $LUCENE_CFLAGS" fi # Check whether --with-cld2 was given. if test "${with_cld2+set}" = set; then : withval=$with_cld2; fi if test "x$with_cld2" != "xno"; then : have_cld2=no for ac_header in cld2/public/compact_lang_det.h do : ac_fn_cxx_check_header_mongrel "$LINENO" "cld2/public/compact_lang_det.h" "ac_cv_header_cld2_public_compact_lang_det_h" "$ac_includes_default" if test "x$ac_cv_header_cld2_public_compact_lang_det_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_CLD2_PUBLIC_COMPACT_LANG_DET_H 1 _ACEOF { $as_echo "$as_me:${as_lineno-$LINENO}: checking for libcld2" >&5 $as_echo_n "checking for libcld2... " >&6; } old_LIBS="$LIBS" LIBS="-lcld2 $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include int main () { CLD2::isDataDynamic(); ; return 0; } _ACEOF if ac_fn_cxx_try_link "$LINENO"; then : have_cld2=yes fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS="$old_LIBS" { $as_echo "$as_me:${as_lineno-$LINENO}: result: $have_cld2" >&5 $as_echo "$have_cld2" >&6; } fi done else have_cld2=no fi if test "x$have_cld2" = "xyes"; then : $as_echo "#define HAVE_CLD2 1" >>confdefs.h CLD2_LIBS="-lcld2" else if test "x$with_cld2" = "xyes"; then : as_fn_error $? "cld2 requested but not found" "$LINENO" 5 fi fi if test "x$GXX" == "xyes"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5 $as_echo_n "checking for a sed that does not truncate output... " >&6; } if ${ac_cv_path_SED+:} false; then : $as_echo_n "(cached) " >&6 else ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/ for ac_i in 1 2 3 4 5 6 7; do ac_script="$ac_script$as_nl$ac_script" done echo "$ac_script" 2>/dev/null | sed 99q >conftest.sed { ac_script=; unset ac_script;} if test -z "$SED"; then ac_path_SED_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in sed gsed; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_SED="$as_dir/$ac_prog$ac_exec_ext" as_fn_executable_p "$ac_path_SED" || continue # Check for GNU ac_path_SED and select it if it is found. # Check for GNU $ac_path_SED case `"$ac_path_SED" --version 2>&1` in *GNU*) ac_cv_path_SED="$ac_path_SED" ac_path_SED_found=:;; *) ac_count=0 $as_echo_n 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" $as_echo '' >> "conftest.nl" "$ac_path_SED" -f conftest.sed < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break as_fn_arith $ac_count + 1 && ac_count=$as_val if test $ac_count -gt ${ac_path_SED_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_SED="$ac_path_SED" ac_path_SED_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_SED_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_SED"; then as_fn_error $? "no acceptable sed could be found in \$PATH" "$LINENO" 5 fi else ac_cv_path_SED=$SED fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_SED" >&5 $as_echo "$ac_cv_path_SED" >&6; } SED="$ac_cv_path_SED" rm -f conftest.sed flag=`echo "-Wall" | $SED 'y% .=/+-(){}<>:*,%_______________%'` { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C++ compiler accepts the -Wall flag" >&5 $as_echo_n "checking whether the C++ compiler accepts the -Wall flag... " >&6; } if eval \${ax_cv_cxx_check_flag_$flag+:} false; then : $as_echo_n "(cached) " >&6 else ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu save_CXXFLAGS="$CXXFLAGS" CXXFLAGS="$CXXFLAGS -Wall" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_cxx_try_compile "$LINENO"; then : eval "ax_cv_cxx_check_flag_$flag=yes" else eval "ax_cv_cxx_check_flag_$flag=no" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext CXXFLAGS="$save_CXXFLAGS" ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu fi eval ac_res=\$ax_cv_cxx_check_flag_$flag { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } if eval "test \"`echo '$ax_cv_cxx_check_flag_'$flag`\" = yes"; then : : CXXFLAGS="$CXXFLAGS -Wall" else : fi flag=`echo "-Wextra" | $SED 'y% .=/+-(){}<>:*,%_______________%'` { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C++ compiler accepts the -Wextra flag" >&5 $as_echo_n "checking whether the C++ compiler accepts the -Wextra flag... " >&6; } if eval \${ax_cv_cxx_check_flag_$flag+:} false; then : $as_echo_n "(cached) " >&6 else ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu save_CXXFLAGS="$CXXFLAGS" CXXFLAGS="$CXXFLAGS -Wextra" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_cxx_try_compile "$LINENO"; then : eval "ax_cv_cxx_check_flag_$flag=yes" else eval "ax_cv_cxx_check_flag_$flag=no" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext CXXFLAGS="$save_CXXFLAGS" ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu fi eval ac_res=\$ax_cv_cxx_check_flag_$flag { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } if eval "test \"`echo '$ax_cv_cxx_check_flag_'$flag`\" = yes"; then : : CXXFLAGS="$CXXFLAGS -Wextra" else : fi fi CXXFLAGS="$CXXFLAGS $DEBUG_FLAGS -DwxNO_UNSAFE_WXSTRING_CONV=1 \"-DPOEDIT_PREFIX=\\\"$prefix\\\"\"" ac_config_files="$ac_config_files Makefile src/Makefile artwork/Makefile locales/Makefile docs/Makefile" cat >confcache <<\_ACEOF # This file is a shell script that caches the results of configure # tests run on this system so they can be shared between configure # scripts and configure runs, see configure's option --config-cache. # It is not useful on other systems. If it contains results you don't # want to keep, you may remove or edit it. # # config.status only pays attention to the cache file if you give it # the --recheck option to rerun configure. # # `ac_cv_env_foo' variables (set or unset) will be overridden when # loading this file, other *unset* `ac_cv_foo' will be assigned the # following values. _ACEOF # The following way of writing the cache mishandles newlines in values, # but we know of no workaround that is simple, portable, and efficient. # So, we kill variables containing newlines. # Ultrix sh set writes to stderr and can't be redirected directly, # and sets the high bit in the cache file unless we assign to the vars. ( for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do eval ac_val=\$$ac_var case $ac_val in #( *${as_nl}*) case $ac_var in #( *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( *) { eval $ac_var=; unset $ac_var;} ;; esac ;; esac done (set) 2>&1 | case $as_nl`(ac_space=' '; set) 2>&1` in #( *${as_nl}ac_space=\ *) # `set' does not quote correctly, so add quotes: double-quote # substitution turns \\\\ into \\, and sed turns \\ into \. sed -n \ "s/'/'\\\\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" ;; #( *) # `set' quotes correctly as required by POSIX, so do not add quotes. sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | sort ) | sed ' /^ac_cv_env_/b end t clear :clear s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ t end s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ :end' >>confcache if diff "$cache_file" confcache >/dev/null 2>&1; then :; else if test -w "$cache_file"; then if test "x$cache_file" != "x/dev/null"; then { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 $as_echo "$as_me: updating cache $cache_file" >&6;} if test ! -f "$cache_file" || test -h "$cache_file"; then cat confcache >"$cache_file" else case $cache_file in #( */* | ?:*) mv -f confcache "$cache_file"$$ && mv -f "$cache_file"$$ "$cache_file" ;; #( *) mv -f confcache "$cache_file" ;; esac fi fi else { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 $as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} fi fi rm -f confcache test "x$prefix" = xNONE && prefix=$ac_default_prefix # Let make expand exec_prefix. test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' # 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 "${MAINTAINER_MODE_TRUE}" && test -z "${MAINTAINER_MODE_FALSE}"; then as_fn_error $? "conditional \"MAINTAINER_MODE\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then as_fn_error $? "conditional \"AMDEP\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then as_fn_error $? "conditional \"am__fastdepCC\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${am__fastdepCXX_TRUE}" && test -z "${am__fastdepCXX_FALSE}"; then as_fn_error $? "conditional \"am__fastdepCXX\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${HAVE_CPPREST_TRUE}" && test -z "${HAVE_CPPREST_FALSE}"; then as_fn_error $? "conditional \"HAVE_CPPREST\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi : "${CONFIG_STATUS=./config.status}" ac_write_fail=0 ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files $CONFIG_STATUS" { $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5 $as_echo "$as_me: creating $CONFIG_STATUS" >&6;} as_write_fail=0 cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1 #! $SHELL # Generated by $as_me. # Run this file to recreate the current configuration. # Compiler output produced by configure, useful for debugging # configure, is in config.log if it exists. debug=false ac_cs_recheck=false ac_cs_silent=false SHELL=\${CONFIG_SHELL-$SHELL} export SHELL _ASEOF cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1 ## -------------------- ## ## M4sh Initialization. ## ## -------------------- ## # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi as_nl=' ' export as_nl # Printing a long string crashes Solaris 7 /usr/bin/printf. as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo # Prefer a ksh shell builtin over an external printf program on Solaris, # but without wasting forks for bash or zsh. if test -z "$BASH_VERSION$ZSH_VERSION" \ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='print -r --' as_echo_n='print -rn --' elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='printf %s\n' as_echo_n='printf %s' else if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' as_echo_n='/usr/ucb/echo -n' else as_echo_body='eval expr "X$1" : "X\\(.*\\)"' as_echo_n_body='eval arg=$1; case $arg in #( *"$as_nl"*) expr "X$arg" : "X\\(.*\\)$as_nl"; arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; esac; expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" ' export as_echo_n_body as_echo_n='sh -c $as_echo_n_body as_echo' fi export as_echo_body as_echo='sh -c $as_echo_body as_echo' fi # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || PATH_SEPARATOR=';' } fi # IFS # We need space, tab and new line, in precisely that order. Quoting is # there to prevent editors from complaining about space-tab. # (If _AS_PATH_WALK were called with IFS unset, it would disable word # splitting by setting IFS to empty value.) IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. as_myself= case $0 in #(( *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done IFS=$as_save_IFS ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 exit 1 fi # Unset variables that we do not need and which cause bugs (e.g. in # pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" # suppresses any "Segmentation fault" message there. '((' could # trigger a bug in pdksh 5.2.14. for as_var in BASH_ENV ENV MAIL MAILPATH do eval test x\${$as_var+set} = xset \ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : done PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. LC_ALL=C export LC_ALL LANGUAGE=C export LANGUAGE # CDPATH. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH # as_fn_error STATUS ERROR [LINENO LOG_FD] # ---------------------------------------- # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are # provided, also output the error to LOG_FD, referencing LINENO. Then exit the # script with STATUS, using 1 if that was 0. as_fn_error () { as_status=$1; test $as_status -eq 0 && as_status=1 if test "$4"; then as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 fi $as_echo "$as_me: error: $2" >&2 as_fn_exit $as_status } # as_fn_error # as_fn_set_status STATUS # ----------------------- # Set $? to STATUS, without forking. as_fn_set_status () { return $1 } # as_fn_set_status # as_fn_exit STATUS # ----------------- # Exit the shell with STATUS, even in a "trap 0" or "set -e" context. as_fn_exit () { set +e as_fn_set_status $1 exit $1 } # as_fn_exit # as_fn_unset VAR # --------------- # Portably unset VAR. as_fn_unset () { { eval $1=; unset $1;} } as_unset=as_fn_unset # as_fn_append VAR VALUE # ---------------------- # Append the text in VALUE to the end of the definition contained in VAR. Take # advantage of any shell optimizations that allow amortized linear growth over # repeated appends, instead of the typical quadratic growth present in naive # implementations. if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : eval 'as_fn_append () { eval $1+=\$2 }' else as_fn_append () { eval $1=\$$1\$2 } fi # as_fn_append # as_fn_arith ARG... # ------------------ # Perform arithmetic evaluation on the ARGs, and store the result in the # global $as_val. Take advantage of shells that can avoid forks. The arguments # must be portable across $(()) and expr. if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : eval 'as_fn_arith () { as_val=$(( $* )) }' else as_fn_arith () { as_val=`expr "$@" || test $? -eq 1` } fi # as_fn_arith if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || $as_echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in #((((( -n*) case `echo 'xy\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. xy) ECHO_C='\c';; *) echo `echo ksh88 bug on AIX 6.1` > /dev/null ECHO_T=' ';; esac;; *) ECHO_N='-n';; esac rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir mkdir conf$$.dir 2>/dev/null fi if (echo >conf$$.file) 2>/dev/null; then if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. # In both cases, we have to default to `cp -pR'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -pR' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -pR' fi else as_ln_s='cp -pR' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null # as_fn_mkdir_p # ------------- # Create "$as_dir" as a directory, including parents if necessary. as_fn_mkdir_p () { case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || eval $as_mkdir_p || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" as_dir=`$as_dirname -- "$as_dir" || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" } # as_fn_mkdir_p if mkdir -p . 2>/dev/null; then as_mkdir_p='mkdir -p "$as_dir"' else test -d ./-p && rmdir ./-p as_mkdir_p=false fi # as_fn_executable_p FILE # ----------------------- # Test if FILE is an executable regular file. as_fn_executable_p () { test -f "$1" && test -x "$1" } # as_fn_executable_p as_test_x='test -x' as_executable_p=as_fn_executable_p # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" exec 6>&1 ## ----------------------------------- ## ## Main body of $CONFIG_STATUS script. ## ## ----------------------------------- ## _ASEOF test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1 cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # Save the log message, to keep $0 and so on meaningful, and to # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" This file was extended by poedit $as_me 2.0.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 ." _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ poedit config.status 2.0.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" ;; "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; "src/Makefile") CONFIG_FILES="$CONFIG_FILES src/Makefile" ;; "artwork/Makefile") CONFIG_FILES="$CONFIG_FILES artwork/Makefile" ;; "locales/Makefile") CONFIG_FILES="$CONFIG_FILES locales/Makefile" ;; "docs/Makefile") CONFIG_FILES="$CONFIG_FILES docs/Makefile" ;; *) 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 } ;; esac done # for ac_tag as_fn_exit 0 _ACEOF ac_clean_files=$ac_clean_files_save test $ac_write_fail = 0 || as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5 # configure is writing to config.log, and then calls config.status. # config.status does its own redirection, appending to config.log. # Unfortunately, on DOS this fails, as config.log is still kept open # by configure, so config.status won't be able to write to it; its # output is simply discarded. So we exec the FD to /dev/null, # effectively closing config.log, so it can be properly (re)opened and # appended to by config.status. When coming back to configure, we # need to make the FD available again. if test "$no_create" != yes; then ac_cs_success=: ac_config_status_args= test "$silent" = yes && ac_config_status_args="$ac_config_status_args --quiet" exec 5>/dev/null $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false exec 5>>config.log # Use ||, not &&, to avoid exiting from the if with $? = 1, which # would make configure fail if this is the last instruction. $ac_cs_success || as_fn_exit 1 fi if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} fi echo " Configured $PACKAGE-$VERSION for $host Enabled features: * debug build: $USE_DEBUG * language detection: $have_cld2 * crowdin integration: $have_cpprest " if test "x$have_cld2" != "xyes" -o "x$have_cpprest" != "xyes" ; then echo " !!! WARNING !!! Your are building a limited version of Poedit without some important features (see above). This makes Poedit harder to use and is strongly advised against. !!! WARNING !!! " fi poedit-2.0.6/configure.ac0000664000372000037200000002066613230131546012222 00000000000000dnl Process this file with autoconf to produce a configure script. AC_PREREQ(2.59) AC_INIT([poedit], [2.0.6], [help@poedit.net]) PACKAGE_SHORT_VERSION=2.0.6 AC_SUBST(PACKAGE_SHORT_VERSION) AC_CONFIG_AUX_DIR([admin]) AC_CONFIG_SRCDIR([poedit.desktop]) AC_CANONICAL_BUILD AC_CANONICAL_HOST AM_INIT_AUTOMAKE([subdir-objects foreign]) AM_MAINTAINER_MODE m4_ifdef([AM_SILENT_RULES],[AM_SILENT_RULES([yes])]) WX_CONFIG_OPTIONS AC_ARG_ENABLE(debug, AS_HELP_STRING([--enable-debug], [Enable debug build]), USE_DEBUG="$enableval", USE_DEBUG="no") AC_MSG_CHECKING(for install location) case "$prefix" in NONE) AC_CACHE_VAL(m_cv_prefix,m_cv_prefix=$ac_default_prefix);; *) m_cv_prefix=$prefix ;; esac AC_MSG_RESULT($m_cv_prefix) case "$m_cv_prefix" in /*) ;; *) AC_MSG_WARN([--prefix=$prefix must be an absolute path name, using $ac_default_prefix]) m_cv_prefix=$ac_default_prefix esac prefix=$m_cv_prefix dnl Checks for programs. AC_PROG_AWK AC_PROG_INSTALL AC_PROG_LN_S AC_PROG_RANLIB AC_PROG_CC AC_PROG_CXX AC_PROG_CXXCPP AC_LANG([C++]) AX_CXX_COMPILE_STDCXX([14], [], [mandatory]) WXLIBS_USED="xrc,stc,html,xml,adv,core,net" case "$USE_DEBUG" in yes) DEBUG_FLAGS="-g -Wall -O0" ;; esac AX_BOOST_BASE([1.60], [], [AC_MSG_ERROR([Boost libraries are required])]) AX_BOOST_SYSTEM AX_BOOST_REGEX AX_BOOST_THREAD CXXFLAGS="$CXXFLAGS $BOOST_CPPFLAGS" dnl Check for C++REST SDK used for online features AC_ARG_WITH([cpprest], AS_HELP_STRING([--without-cpprest], [Ignore presence of C++ REST SDK and disable it])) AS_IF([test "x$with_cpprest" != "xno"], [ AX_BOOST_IOSTREAMS have_cpprest=no dnl C++11 check above modified CXXFLAGS, but AC_CHECK_HEADERS needs dnl it for this header too and it uses only the preprocessor in one dnl of its two phases: old_CPPFLAGS="$CPPFLAGS" CPPFLAGS="$CPPFLAGS $CXXFLAGS $BOOST_CPPFLAGS" AC_CHECK_HEADERS([cpprest/http_client.h], [ AC_MSG_CHECKING([for libcpprest >= 2.5]) old_LIBS="$LIBS" LIBS="-lcpprest $BOOST_SYSTEM_LIB $BOOST_THREAD_LIB -lssl -lcrypto $LIBS" AC_LINK_IFELSE([AC_LANG_PROGRAM( [ #include #include ], [ #if CPPREST_VERSION < 200500 #error "cpprest >= 2.5 required" #endif web::http::client::http_client c(U("https://poedit.net")); ])], [have_cpprest=yes]) LIBS="$old_LIBS" AC_MSG_RESULT([$have_cpprest]) ]) CPPFLAGS="$old_CPPFLAGS" ], [have_cpprest=no]) AS_IF([test "x$have_cpprest" = "xyes"], [ AC_DEFINE([HAVE_HTTP_CLIENT]) AC_DEFINE([HAVE_PPL]) CPPREST_LIBS="-lcpprest $BOOST_IOSTREAMS_LIB $BOOST_THREAD_LIB $BOOST_SYSTEM_LIB -lssl -lcrypto" AC_SUBST(CPPREST_LIBS) PKG_CHECK_MODULES([LIBSECRET], [libsecret-1], [ CXXFLAGS="$CXXFLAGS $LIBSECRET_CFLAGS" AC_SUBST(LIBSECRET_LIBS) ]) ], [ AS_IF([test "x$with_cpprest" = "xyes"], [AC_MSG_ERROR([C++ REST SDK requested but not found])]) ]) AM_CONDITIONAL([HAVE_CPPREST], [test "x$have_cpprest" != "xno"]) AC_CHECK_HEADERS([json.hpp]) WX_CONFIG_CHECK([3.0.3], [WXFOUND=1], [WXFOUND=0], [$WXLIBS_USED], [--unicode]) if test "$WXFOUND" != 1; then AC_MSG_ERROR([ Please check that wx-config is in path, the directory where wxWidgets libraries are installed (returned by 'wx-config --unicode --libs' command) is in LD_LIBRARY_PATH or equivalent variable and wxWidgets is version 3.0.0 or above, with Unicode build available. ]) fi dnl Check if wxWidgets includes XRC library and if it does, don't build it dnl ourselves: AC_MSG_CHECKING([if wxWidgets includes XRC]) saved_CXXFLAGS="$CXXFLAGS" CXXFLAGS="$CXXFLAGS $WX_CXXFLAGS" AC_TRY_COMPILE([#include ], [ #if !defined(wxUSE_XRC) || !wxUSE_XRC #error "XRC not compiled in" #endif ], [ AC_MSG_RESULT([yes]) ], [ AC_MSG_RESULT([no]) AC_MSG_ERROR([XRC is required to build poedit!]) ]) CXXFLAGS="$saved_CXXFLAGS" CXXFLAGS="$CXXFLAGS $WX_CXXFLAGS" WXRC_CHECK([], [AC_MSG_ERROR([wxrc is needed to compile Poedit.])]) AC_CHECK_FUNCS([mkdtemp]) PKG_CHECK_MODULES([ICU], [icu-uc icu-i18n], [ CXXFLAGS="$CXXFLAGS $ICU_CFLAGS" LIBS="$LIBS $ICU_LIBS" ], [ AC_MSG_ERROR([missing ICU library]) ]) dnl we need GtkSpell and GTK+ >= 2 for this, check if we're compatible AC_MSG_CHECKING([if wxWidgets toolkit uses GTK+ 3]) AC_TRY_COMPILE([#include ], [ #ifndef __WXGTK3__ #error "not GTK+ 3" #endif ], [ AC_MSG_RESULT([yes]) gtkspell_packages="gtkspell3-3.0 gtk+-3.0" ], [ AC_MSG_RESULT([no]) AC_MSG_CHECKING([if wxWidgets toolkit uses GTK+ 2]) AC_TRY_COMPILE([#include ], [ #ifndef __WXGTK20__ #error "not GTK+ 2" #endif ], [ AC_MSG_RESULT([yes]) gtkspell_packages="gtkspell-2.0 gtk+-2.0 >= 2.20" ], [ AC_MSG_RESULT([no]) AC_MSG_ERROR([GTK+ build of wxWidgets is required]) ]) ]) PKG_CHECK_MODULES([GTKSPELL], [$gtkspell_packages], [ CXXFLAGS="$CXXFLAGS $GTKSPELL_CFLAGS" LIBS="$LIBS $GTKSPELL_LIBS" ], [ AC_MSG_ERROR([missing GtkSpell library]) ]) PKG_CHECK_MODULES([LUCENE], [liblucene++ >= 3.0.5], [ CXXFLAGS="$CXXFLAGS $LUCENE_CFLAGS" AC_SUBST(LUCENE_LIBS) ], [ AC_MSG_ERROR([missing Lucene++ library]) ]) dnl Check for Compact Language Detector 2 dnl (used for better language detection and for non-English source languages) AC_ARG_WITH([cld2], AS_HELP_STRING([--without-cld2], [Ignore presence of cld2 and disable it])) AS_IF([test "x$with_cld2" != "xno"], [ have_cld2=no AC_CHECK_HEADERS([cld2/public/compact_lang_det.h], [ AC_MSG_CHECKING([for libcld2]) old_LIBS="$LIBS" LIBS="-lcld2 $LIBS" AC_LINK_IFELSE([AC_LANG_PROGRAM( [ #include #include ], [ CLD2::isDataDynamic(); ])], [have_cld2=yes]) LIBS="$old_LIBS" AC_MSG_RESULT([$have_cld2]) ]) ], [have_cld2=no]) AS_IF([test "x$have_cld2" = "xyes"], [ AC_DEFINE([HAVE_CLD2]) CLD2_LIBS="-lcld2" AC_SUBST(CLD2_LIBS) ], [ AS_IF([test "x$with_cld2" = "xyes"], [AC_MSG_ERROR([cld2 requested but not found])]) ]) if test "x$GXX" == "xyes"; then AX_CXX_CHECK_FLAG([-Wall],[],[], [CXXFLAGS="$CXXFLAGS -Wall"]) AX_CXX_CHECK_FLAG([-Wextra],[],[], [CXXFLAGS="$CXXFLAGS -Wextra"]) fi CXXFLAGS="$CXXFLAGS $DEBUG_FLAGS -DwxNO_UNSAFE_WXSTRING_CONV=1 \"-DPOEDIT_PREFIX=\\\"$prefix\\\"\"" AC_SUBST(LDFLAGS) AC_SUBST(CFLAGS) AC_SUBST(CXXFLAGS) AC_SUBST(WX_CONFIG_WITH_ARGS) AC_SUBST(WX_LIBS) AC_CONFIG_FILES([ Makefile src/Makefile artwork/Makefile locales/Makefile docs/Makefile ]) AC_OUTPUT echo " Configured $PACKAGE-$VERSION for $host Enabled features: * debug build: $USE_DEBUG * language detection: $have_cld2 * crowdin integration: $have_cpprest " if test "x$have_cld2" != "xyes" -o "x$have_cpprest" != "xyes" ; then echo " !!! WARNING !!! Your are building a limited version of Poedit without some important features (see above). This makes Poedit harder to use and is strongly advised against. !!! WARNING !!! " fi poedit-2.0.6/README0000664000372000037200000000724613230131546010613 00000000000000 ------------ Poedit ------------ a cross-platform gettext catalogs editing tool About ======= This program is GUI frontend to GNU gettext utilities (win32 version is part of the distribution) and catalogs editor/source code parser. It helps with translating application into another language. For details on principles of the solution used, see GNU gettext documentation or wxWidgets' wxLocale class reference. Installing ============ Binary easily-installable packages are provided for Windows and macOS and are part of many Linux distributions. Installing from sources ========================= Requirements: * Boost * Unicode build of wxWidgets library, version >= 3.0.3 (see http://www.wxwidgets.org) * ICU * LucenePlusPlus * If on Unix, GtkSpell for spell checking support Optional dependencies: * cld2 (better language autodetection and non-English source languages) * C++REST SDK >= 2.5 (Crowdin integration) Unix ------ Do the usual thing: ./configure make make install You must have the dependencies installed in a location configure will find, e.g. by setting CPPFLAGS and LDFLAGS appropriately. macOS ------- You need a full git checkout to build on macOS; see below for details. After checkout, use the Poedit.xcworkspace workspace and Xcode 6 to build Poedit. There are some additional dependencies on tools not included with macOS. They can be installed with Homebrew and macos/Brewfile: brew bundle --file=macos/Brewfile Windows using Visual Studio 2015 ---------------------------------- You need a full git checkout to build on Windows; see below for details. After checkout, use the Poedit.sln solution to build everything. To build the installer, open win32/poedit.iss in Inno Setup and compile the project. Installing from Git repository -------------------------------- Get the sources from github (https://github.com/vslavik/poedit): git clone https://github.com/vslavik/poedit.git If you are on Windows or OSX, you'll need all the dependencies too. After closing, run the following command: git submodule update --init --recursive On Linux and other Unices, only a subset of submodules is necessary, so you can save some time and disk space by checking out only them: git submodule update --init src/json When building for Unix/Linux, if you get the sources directly from the Git repository, some generated files are not present. You have to run the ./bootstrap script to create them. After that, continue according to the instructions above. The ./bootstrap script requires some additional tools to be installed: * AsciiDoc, xsltproc and xmlto to generate the manual page * gettext tools to create .mo files On macOS and Windows, bootstrapping is not needed. License ========= Poedit is released under the MIT license and you're free to do whatever you want with it and its source code (well, almost :-) -- see the license text). See the COPYING file for details on program's licensing and the icons/README file for details on the icons. Windows and macOS versions contain GNU gettext binaries. They are distributed under the GNU General Public License and their source code is available from http://www.gnu.org/software/gettext or, if you have difficulties getting them from there, email me for a copy of the sources. Author ======== Vaclav Slavik Please see the AUTHORS file for information about other contributors. Links ======= https://poedit.net/ - Poedit homepage http://www.gnu.org/software/gettext/ - GNU project homepage, contains gettext and documentation poedit-2.0.6/admin/0000775000372000037200000000000013230132100011055 500000000000000poedit-2.0.6/admin/wxwin.m40000664000372000037200000011716113230131546012437 00000000000000dnl --------------------------------------------------------------------------- dnl Author: wxWidgets development team, dnl Francesco Montorsi, dnl Bob McCown (Mac-testing) dnl Creation date: 24/11/2001 dnl --------------------------------------------------------------------------- dnl =========================================================================== dnl Table of Contents of this macro file: dnl ------------------------------------- dnl dnl SECTION A: wxWidgets main macros dnl - WX_CONFIG_OPTIONS dnl - WX_CONFIG_CHECK dnl - WXRC_CHECK dnl - WX_STANDARD_OPTIONS dnl - WX_CONVERT_STANDARD_OPTIONS_TO_WXCONFIG_FLAGS dnl - WX_DETECT_STANDARD_OPTION_VALUES dnl dnl SECTION B: wxWidgets-related utilities dnl - WX_LIKE_LIBNAME dnl - WX_ARG_ENABLE_YESNOAUTO dnl - WX_ARG_WITH_YESNOAUTO dnl dnl SECTION C: messages to the user dnl - WX_STANDARD_OPTIONS_SUMMARY_MSG dnl - WX_STANDARD_OPTIONS_SUMMARY_MSG_BEGIN dnl - WX_STANDARD_OPTIONS_SUMMARY_MSG_END dnl - WX_BOOLOPT_SUMMARY dnl dnl The special "WX_DEBUG_CONFIGURE" variable can be set to 1 to enable extra dnl debug output on stdout from these macros. dnl =========================================================================== dnl --------------------------------------------------------------------------- dnl Macros for wxWidgets detection. Typically used in configure.in as: dnl dnl AC_ARG_ENABLE(...) dnl AC_ARG_WITH(...) dnl ... dnl WX_CONFIG_OPTIONS dnl ... dnl ... dnl WX_CONFIG_CHECK([2.6.0], [wxWin=1]) dnl if test "$wxWin" != 1; then dnl AC_MSG_ERROR([ dnl wxWidgets must be installed on your system dnl but wx-config script couldn't be found. dnl dnl Please check that wx-config is in path, the directory dnl where wxWidgets libraries are installed (returned by dnl 'wx-config --libs' command) is in LD_LIBRARY_PATH or dnl equivalent variable and wxWidgets version is 2.3.4 or above. dnl ]) dnl fi dnl CPPFLAGS="$CPPFLAGS $WX_CPPFLAGS" dnl CXXFLAGS="$CXXFLAGS $WX_CXXFLAGS_ONLY" dnl CFLAGS="$CFLAGS $WX_CFLAGS_ONLY" dnl dnl LIBS="$LIBS $WX_LIBS" dnl dnl If you want to support standard --enable-debug/unicode/shared options, you dnl may do the following: dnl dnl ... dnl AC_CANONICAL_SYSTEM dnl dnl # define configure options dnl WX_CONFIG_OPTIONS dnl WX_STANDARD_OPTIONS([debug,unicode,shared,toolkit,wxshared]) dnl dnl # basic configure checks dnl ... dnl dnl # we want to always have DEBUG==WX_DEBUG and UNICODE==WX_UNICODE dnl WX_DEBUG=$DEBUG dnl WX_UNICODE=$UNICODE dnl dnl WX_CONVERT_STANDARD_OPTIONS_TO_WXCONFIG_FLAGS dnl WX_CONFIG_CHECK([2.8.0], [wxWin=1],,[html,core,net,base],[$WXCONFIG_FLAGS]) dnl WX_DETECT_STANDARD_OPTION_VALUES dnl dnl # write the output files dnl AC_CONFIG_FILES([Makefile ...]) dnl AC_OUTPUT dnl dnl # optional: just to show a message to the user dnl WX_STANDARD_OPTIONS_SUMMARY_MSG dnl dnl --------------------------------------------------------------------------- dnl --------------------------------------------------------------------------- dnl WX_CONFIG_OPTIONS dnl dnl adds support for --wx-prefix, --wx-exec-prefix, --with-wxdir and dnl --wx-config command line options dnl --------------------------------------------------------------------------- AC_DEFUN([WX_CONFIG_OPTIONS], [ AC_ARG_WITH(wxdir, [ --with-wxdir=PATH Use uninstalled version of wxWidgets in PATH], [ wx_config_name="$withval/wx-config" wx_config_args="--inplace"]) AC_ARG_WITH(wx-config, [ --with-wx-config=CONFIG wx-config script to use (optional)], wx_config_name="$withval" ) AC_ARG_WITH(wx-prefix, [ --with-wx-prefix=PREFIX Prefix where wxWidgets is installed (optional)], wx_config_prefix="$withval", wx_config_prefix="") AC_ARG_WITH(wx-exec-prefix, [ --with-wx-exec-prefix=PREFIX Exec prefix where wxWidgets is installed (optional)], wx_config_exec_prefix="$withval", wx_config_exec_prefix="") ]) dnl Helper macro for checking if wx version is at least $1.$2.$3, set's dnl wx_ver_ok=yes if it is: AC_DEFUN([_WX_PRIVATE_CHECK_VERSION], [ wx_ver_ok="" if test "x$WX_VERSION" != x ; then if test $wx_config_major_version -gt $1; then wx_ver_ok=yes else if test $wx_config_major_version -eq $1; then if test $wx_config_minor_version -gt $2; then wx_ver_ok=yes else if test $wx_config_minor_version -eq $2; then if test $wx_config_micro_version -ge $3; then wx_ver_ok=yes fi fi fi fi fi fi ]) dnl --------------------------------------------------------------------------- dnl WX_CONFIG_CHECK(VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND dnl [, WX-LIBS [, ADDITIONAL-WX-CONFIG-FLAGS]]]]) dnl dnl Test for wxWidgets, and define WX_C*FLAGS, WX_LIBS and WX_LIBS_STATIC dnl (the latter is for static linking against wxWidgets). Set WX_CONFIG_NAME dnl environment variable to override the default name of the wx-config script dnl to use. Set WX_CONFIG_PATH to specify the full path to wx-config - in this dnl case the macro won't even waste time on tests for its existence. dnl dnl Optional WX-LIBS argument contains comma- or space-separated list of dnl wxWidgets libraries to link against. If it is not specified then WX_LIBS dnl and WX_LIBS_STATIC will contain flags to link with all of the core dnl wxWidgets libraries. dnl dnl Optional ADDITIONAL-WX-CONFIG-FLAGS argument is appended to wx-config dnl invocation command in present. It can be used to fine-tune lookup of dnl best wxWidgets build available. dnl dnl Example use: dnl WX_CONFIG_CHECK([2.6.0], [wxWin=1], [wxWin=0], [html,core,net] dnl [--unicode --debug]) dnl --------------------------------------------------------------------------- dnl dnl Get the cflags and libraries from the wx-config script dnl AC_DEFUN([WX_CONFIG_CHECK], [ dnl do we have wx-config name: it can be wx-config or wxd-config or ... if test x${WX_CONFIG_NAME+set} != xset ; then WX_CONFIG_NAME=wx-config fi if test "x$wx_config_name" != x ; then WX_CONFIG_NAME="$wx_config_name" fi dnl deal with optional prefixes if test x$wx_config_exec_prefix != x ; then wx_config_args="$wx_config_args --exec-prefix=$wx_config_exec_prefix" WX_LOOKUP_PATH="$wx_config_exec_prefix/bin" fi if test x$wx_config_prefix != x ; then wx_config_args="$wx_config_args --prefix=$wx_config_prefix" WX_LOOKUP_PATH="$WX_LOOKUP_PATH:$wx_config_prefix/bin" fi if test "$cross_compiling" = "yes"; then wx_config_args="$wx_config_args --host=$host_alias" fi dnl don't search the PATH if WX_CONFIG_NAME is absolute filename if test -x "$WX_CONFIG_NAME" ; then AC_MSG_CHECKING(for wx-config) WX_CONFIG_PATH="$WX_CONFIG_NAME" AC_MSG_RESULT($WX_CONFIG_PATH) else AC_PATH_PROG(WX_CONFIG_PATH, $WX_CONFIG_NAME, no, "$WX_LOOKUP_PATH:$PATH") fi if test "$WX_CONFIG_PATH" != "no" ; then WX_VERSION="" min_wx_version=ifelse([$1], ,2.2.1,$1) if test -z "$5" ; then AC_MSG_CHECKING([for wxWidgets version >= $min_wx_version]) else AC_MSG_CHECKING([for wxWidgets version >= $min_wx_version ($5)]) fi dnl don't add the libraries ($4) to this variable as this would result in dnl an error when it's used with --version below WX_CONFIG_WITH_ARGS="$WX_CONFIG_PATH $wx_config_args $5" WX_VERSION=`$WX_CONFIG_WITH_ARGS --version 2>/dev/null` wx_config_major_version=`echo $WX_VERSION | \ sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'` wx_config_minor_version=`echo $WX_VERSION | \ sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'` wx_config_micro_version=`echo $WX_VERSION | \ sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'` wx_requested_major_version=`echo $min_wx_version | \ sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'` wx_requested_minor_version=`echo $min_wx_version | \ sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'` wx_requested_micro_version=`echo $min_wx_version | \ sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'` _WX_PRIVATE_CHECK_VERSION([$wx_requested_major_version], [$wx_requested_minor_version], [$wx_requested_micro_version]) if test -n "$wx_ver_ok"; then AC_MSG_RESULT(yes (version $WX_VERSION)) WX_LIBS=`$WX_CONFIG_WITH_ARGS --libs $4` dnl is this even still appropriate? --static is a real option now dnl and WX_CONFIG_WITH_ARGS is likely to contain it if that is dnl what the user actually wants, making this redundant at best. dnl For now keep it in case anyone actually used it in the past. AC_MSG_CHECKING([for wxWidgets static library]) WX_LIBS_STATIC=`$WX_CONFIG_WITH_ARGS --static --libs $4 2>/dev/null` if test "x$WX_LIBS_STATIC" = "x"; then AC_MSG_RESULT(no) else AC_MSG_RESULT(yes) fi dnl starting with version 2.2.6 wx-config has --cppflags argument wx_has_cppflags="" if test $wx_config_major_version -gt 2; then wx_has_cppflags=yes else if test $wx_config_major_version -eq 2; then if test $wx_config_minor_version -gt 2; then wx_has_cppflags=yes else if test $wx_config_minor_version -eq 2; then if test $wx_config_micro_version -ge 6; then wx_has_cppflags=yes fi fi fi fi fi dnl starting with version 2.7.0 wx-config has --rescomp option wx_has_rescomp="" if test $wx_config_major_version -gt 2; then wx_has_rescomp=yes else if test $wx_config_major_version -eq 2; then if test $wx_config_minor_version -ge 7; then wx_has_rescomp=yes fi fi fi if test "x$wx_has_rescomp" = x ; then dnl cannot give any useful info for resource compiler WX_RESCOMP= else WX_RESCOMP=`$WX_CONFIG_WITH_ARGS --rescomp` fi if test "x$wx_has_cppflags" = x ; then dnl no choice but to define all flags like CFLAGS WX_CFLAGS=`$WX_CONFIG_WITH_ARGS --cflags $4` WX_CPPFLAGS=$WX_CFLAGS WX_CXXFLAGS=$WX_CFLAGS WX_CFLAGS_ONLY=$WX_CFLAGS WX_CXXFLAGS_ONLY=$WX_CFLAGS else dnl we have CPPFLAGS included in CFLAGS included in CXXFLAGS WX_CPPFLAGS=`$WX_CONFIG_WITH_ARGS --cppflags $4` WX_CXXFLAGS=`$WX_CONFIG_WITH_ARGS --cxxflags $4` WX_CFLAGS=`$WX_CONFIG_WITH_ARGS --cflags $4` WX_CFLAGS_ONLY=`echo $WX_CFLAGS | sed "s@^$WX_CPPFLAGS *@@"` WX_CXXFLAGS_ONLY=`echo $WX_CXXFLAGS | sed "s@^$WX_CFLAGS *@@"` fi ifelse([$2], , :, [$2]) else if test "x$WX_VERSION" = x; then dnl no wx-config at all AC_MSG_RESULT(no) else AC_MSG_RESULT(no (version $WX_VERSION is not new enough)) fi WX_CFLAGS="" WX_CPPFLAGS="" WX_CXXFLAGS="" WX_LIBS="" WX_LIBS_STATIC="" WX_RESCOMP="" if test ! -z "$5"; then wx_error_message=" The configuration you asked for $PACKAGE_NAME requires a wxWidgets build with the following settings: $5 but such build is not available. To see the wxWidgets builds available on this system, please use 'wx-config --list' command. To use the default build, returned by 'wx-config --selected-config', use the options with their 'auto' default values." fi wx_error_message=" The requested wxWidgets build couldn't be found. $wx_error_message If you still get this error, then check that 'wx-config' is in path, the directory where wxWidgets libraries are installed (returned by 'wx-config --libs' command) is in LD_LIBRARY_PATH or equivalent variable and wxWidgets version is $1 or above." ifelse([$3], , AC_MSG_ERROR([$wx_error_message]), [$3]) fi else WX_CFLAGS="" WX_CPPFLAGS="" WX_CXXFLAGS="" WX_LIBS="" WX_LIBS_STATIC="" WX_RESCOMP="" ifelse([$3], , :, [$3]) fi AC_SUBST(WX_CPPFLAGS) AC_SUBST(WX_CFLAGS) AC_SUBST(WX_CXXFLAGS) AC_SUBST(WX_CFLAGS_ONLY) AC_SUBST(WX_CXXFLAGS_ONLY) AC_SUBST(WX_LIBS) AC_SUBST(WX_LIBS_STATIC) AC_SUBST(WX_VERSION) AC_SUBST(WX_RESCOMP) dnl need to export also WX_VERSION_MINOR and WX_VERSION_MAJOR symbols dnl to support wxpresets bakefiles (we export also WX_VERSION_MICRO for completeness): WX_VERSION_MAJOR="$wx_config_major_version" WX_VERSION_MINOR="$wx_config_minor_version" WX_VERSION_MICRO="$wx_config_micro_version" AC_SUBST(WX_VERSION_MAJOR) AC_SUBST(WX_VERSION_MINOR) AC_SUBST(WX_VERSION_MICRO) ]) dnl --------------------------------------------------------------------------- dnl Get information on the wxrc program for making C++, Python and xrs dnl resource files. dnl dnl AC_ARG_ENABLE(...) dnl AC_ARG_WITH(...) dnl ... dnl WX_CONFIG_OPTIONS dnl ... dnl WX_CONFIG_CHECK(2.6.0, wxWin=1) dnl if test "$wxWin" != 1; then dnl AC_MSG_ERROR([ dnl wxWidgets must be installed on your system dnl but wx-config script couldn't be found. dnl dnl Please check that wx-config is in path, the directory dnl where wxWidgets libraries are installed (returned by dnl 'wx-config --libs' command) is in LD_LIBRARY_PATH or dnl equivalent variable and wxWidgets version is 2.6.0 or above. dnl ]) dnl fi dnl dnl WXRC_CHECK([HAVE_WXRC=1], [HAVE_WXRC=0]) dnl if test "x$HAVE_WXRC" != x1; then dnl AC_MSG_ERROR([ dnl The wxrc program was not installed or not found. dnl dnl Please check the wxWidgets installation. dnl ]) dnl fi dnl dnl CPPFLAGS="$CPPFLAGS $WX_CPPFLAGS" dnl CXXFLAGS="$CXXFLAGS $WX_CXXFLAGS_ONLY" dnl CFLAGS="$CFLAGS $WX_CFLAGS_ONLY" dnl dnl LDFLAGS="$LDFLAGS $WX_LIBS" dnl --------------------------------------------------------------------------- dnl --------------------------------------------------------------------------- dnl WXRC_CHECK([ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]) dnl dnl Test for wxWidgets' wxrc program for creating either C++, Python or XRS dnl resources. The variable WXRC will be set and substituted in the configure dnl script and Makefiles. dnl dnl Example use: dnl WXRC_CHECK([wxrc=1], [wxrc=0]) dnl --------------------------------------------------------------------------- dnl dnl wxrc program from the wx-config script dnl AC_DEFUN([WXRC_CHECK], [ AC_ARG_VAR([WXRC], [Path to wxWidget's wxrc resource compiler]) if test "x$WX_CONFIG_NAME" = x; then AC_MSG_ERROR([The wxrc tests must run after wxWidgets test.]) else AC_MSG_CHECKING([for wxrc]) if test "x$WXRC" = x ; then dnl wx-config --utility is a new addition to wxWidgets: _WX_PRIVATE_CHECK_VERSION(2,5,3) if test -n "$wx_ver_ok"; then WXRC=`$WX_CONFIG_WITH_ARGS --utility=wxrc` fi fi if test "x$WXRC" = x ; then AC_MSG_RESULT([not found]) ifelse([$2], , :, [$2]) else AC_MSG_RESULT([$WXRC]) ifelse([$1], , :, [$1]) fi AC_SUBST(WXRC) fi ]) dnl --------------------------------------------------------------------------- dnl WX_LIKE_LIBNAME([output-var] [prefix], [name]) dnl dnl Sets the "output-var" variable to the name of a library named with same dnl wxWidgets rule. dnl E.g. for output-var=='lib', name=='test', prefix='mine', sets dnl the $lib variable to: dnl 'mine_gtk2ud_test-2.8' dnl if WX_PORT=gtk2, WX_UNICODE=1, WX_DEBUG=1 and WX_RELEASE=28 dnl --------------------------------------------------------------------------- AC_DEFUN([WX_LIKE_LIBNAME], [ wx_temp="$2""_""$WX_PORT" dnl add the [u][d] string if test "$WX_UNICODE" = "1"; then wx_temp="$wx_temp""u" fi if test "$WX_DEBUG" = "1"; then wx_temp="$wx_temp""d" fi dnl complete the name of the lib wx_temp="$wx_temp""_""$3""-$WX_VERSION_MAJOR.$WX_VERSION_MINOR" dnl save it in the user's variable $1=$wx_temp ]) dnl --------------------------------------------------------------------------- dnl WX_ARG_ENABLE_YESNOAUTO/WX_ARG_WITH_YESNOAUTO dnl dnl Two little custom macros which define the ENABLE/WITH configure arguments. dnl Macro arguments: dnl $1 = the name of the --enable / --with feature dnl $2 = the name of the variable associated dnl $3 = the description of that feature dnl $4 = the default value for that feature dnl $5 = additional action to do in case option is given with "yes" value dnl --------------------------------------------------------------------------- AC_DEFUN([WX_ARG_ENABLE_YESNOAUTO], [AC_ARG_ENABLE($1, AC_HELP_STRING([--enable-$1], [$3 (default is $4)]), [], [enableval="$4"]) dnl Show a message to the user about this option AC_MSG_CHECKING([for the --enable-$1 option]) if test "$enableval" = "yes" ; then AC_MSG_RESULT([yes]) $2=1 $5 elif test "$enableval" = "no" ; then AC_MSG_RESULT([no]) $2=0 elif test "$enableval" = "auto" ; then AC_MSG_RESULT([will be automatically detected]) $2="auto" else AC_MSG_ERROR([ Unrecognized option value (allowed values: yes, no, auto) ]) fi ]) AC_DEFUN([WX_ARG_WITH_YESNOAUTO], [AC_ARG_WITH($1, AC_HELP_STRING([--with-$1], [$3 (default is $4)]), [], [withval="$4"]) dnl Show a message to the user about this option AC_MSG_CHECKING([for the --with-$1 option]) if test "$withval" = "yes" ; then AC_MSG_RESULT([yes]) $2=1 $5 dnl NB: by default we don't allow --with-$1=no option dnl since it does not make much sense ! elif test "$6" = "1" -a "$withval" = "no" ; then AC_MSG_RESULT([no]) $2=0 elif test "$withval" = "auto" ; then AC_MSG_RESULT([will be automatically detected]) $2="auto" else AC_MSG_ERROR([ Unrecognized option value (allowed values: yes, auto) ]) fi ]) dnl --------------------------------------------------------------------------- dnl WX_STANDARD_OPTIONS([options-to-add]) dnl dnl Adds to the configure script one or more of the following options: dnl --enable-[debug|unicode|shared|wxshared|wxdebug] dnl --with-[gtk|msw|motif|x11|mac|dfb] dnl --with-wxversion dnl Then checks for their presence and eventually set the DEBUG, UNICODE, SHARED, dnl PORT, WX_SHARED, WX_DEBUG, variables to one of the "yes", "no", "auto" values. dnl dnl Note that e.g. UNICODE != WX_UNICODE; the first is the value of the dnl --enable-unicode option (in boolean format) while the second indicates dnl if wxWidgets was built in Unicode mode (and still is in boolean format). dnl --------------------------------------------------------------------------- AC_DEFUN([WX_STANDARD_OPTIONS], [ dnl the following lines will expand to WX_ARG_ENABLE_YESNOAUTO calls if and only if dnl the $1 argument contains respectively the debug,unicode or shared options. dnl be careful here not to set debug flag if only "wxdebug" was specified ifelse(regexp([$1], [\bdebug]), [-1],, [WX_ARG_ENABLE_YESNOAUTO([debug], [DEBUG], [Build in debug mode], [auto])]) ifelse(index([$1], [unicode]), [-1],, [WX_ARG_ENABLE_YESNOAUTO([unicode], [UNICODE], [Build in Unicode mode], [auto])]) ifelse(regexp([$1], [\bshared]), [-1],, [WX_ARG_ENABLE_YESNOAUTO([shared], [SHARED], [Build as shared library], [auto])]) dnl WX_ARG_WITH_YESNOAUTO cannot be used for --with-toolkit since it's an option dnl which must be able to accept the auto|gtk1|gtk2|msw|... values ifelse(index([$1], [toolkit]), [-1],, [ AC_ARG_WITH([toolkit], AC_HELP_STRING([--with-toolkit], [Build against a specific wxWidgets toolkit (default is auto)]), [], [withval="auto"]) dnl Show a message to the user about this option AC_MSG_CHECKING([for the --with-toolkit option]) if test "$withval" = "auto" ; then AC_MSG_RESULT([will be automatically detected]) TOOLKIT="auto" else TOOLKIT="$withval" dnl PORT must be one of the allowed values if test "$TOOLKIT" != "gtk1" -a "$TOOLKIT" != "gtk2" -a \ "$TOOLKIT" != "msw" -a "$TOOLKIT" != "motif" -a \ "$TOOLKIT" != "osx_carbon" -a "$TOOLKIT" != "osx_cocoa" -a \ "$TOOLKIT" != "dfb" -a "$TOOLKIT" != "x11"; then AC_MSG_ERROR([ Unrecognized option value (allowed values: auto, gtk1, gtk2, msw, motif, osx_carbon, osx_cocoa, dfb, x11) ]) fi AC_MSG_RESULT([$TOOLKIT]) fi ]) dnl ****** IMPORTANT ******* dnl Unlike for the UNICODE setting, you can build your program in dnl shared mode against a static build of wxWidgets. Thus we have the dnl following option which allows these mixtures. E.g. dnl dnl ./configure --disable-shared --with-wxshared dnl dnl will build your library in static mode against the first available dnl shared build of wxWidgets. dnl dnl Note that's not possible to do the viceversa: dnl dnl ./configure --enable-shared --without-wxshared dnl dnl Doing so you would try to build your library in shared mode against a static dnl build of wxWidgets. This is not possible (you would mix PIC and non PIC code) ! dnl A check for this combination of options is in WX_DETECT_STANDARD_OPTION_VALUES dnl (where we know what 'auto' should be expanded to). dnl dnl If you try to build something in ANSI mode against a UNICODE build dnl of wxWidgets or in RELEASE mode against a DEBUG build of wxWidgets, dnl then at best you'll get ton of linking errors ! dnl ************************ ifelse(index([$1], [wxshared]), [-1],, [ WX_ARG_WITH_YESNOAUTO( [wxshared], [WX_SHARED], [Force building against a shared build of wxWidgets, even if --disable-shared is given], [auto], [], [1]) ]) dnl Just like for SHARED and WX_SHARED it may happen that some adventurous dnl peoples will want to mix a wxWidgets release build with a debug build of dnl his app/lib. So, we have both DEBUG and WX_DEBUG variables. ifelse(index([$1], [wxdebug]), [-1],, [ WX_ARG_WITH_YESNOAUTO( [wxdebug], [WX_DEBUG], [Force building against a debug build of wxWidgets, even if --disable-debug is given], [auto], [], [1]) ]) dnl WX_ARG_WITH_YESNOAUTO cannot be used for --with-wxversion since it's an option dnl which accepts the "auto|2.6|2.7|2.8|2.9|3.0" etc etc values ifelse(index([$1], [wxversion]), [-1],, [ AC_ARG_WITH([wxversion], AC_HELP_STRING([--with-wxversion], [Build against a specific version of wxWidgets (default is auto)]), [], [withval="auto"]) dnl Show a message to the user about this option AC_MSG_CHECKING([for the --with-wxversion option]) if test "$withval" = "auto" ; then AC_MSG_RESULT([will be automatically detected]) WX_RELEASE="auto" else wx_requested_major_version=`echo $withval | \ sed 's/\([[0-9]]*\).\([[0-9]]*\).*/\1/'` wx_requested_minor_version=`echo $withval | \ sed 's/\([[0-9]]*\).\([[0-9]]*\).*/\2/'` dnl both vars above must be exactly 1 digit if test "${#wx_requested_major_version}" != "1" -o \ "${#wx_requested_minor_version}" != "1" ; then AC_MSG_ERROR([ Unrecognized option value (allowed values: auto, 2.6, 2.7, 2.8, 2.9, 3.0) ]) fi WX_RELEASE="$wx_requested_major_version"".""$wx_requested_minor_version" AC_MSG_RESULT([$WX_RELEASE]) fi ]) if test "$WX_DEBUG_CONFIGURE" = "1"; then echo "[[dbg]] DEBUG: $DEBUG, WX_DEBUG: $WX_DEBUG" echo "[[dbg]] UNICODE: $UNICODE, WX_UNICODE: $WX_UNICODE" echo "[[dbg]] SHARED: $SHARED, WX_SHARED: $WX_SHARED" echo "[[dbg]] TOOLKIT: $TOOLKIT, WX_TOOLKIT: $WX_TOOLKIT" echo "[[dbg]] VERSION: $VERSION, WX_RELEASE: $WX_RELEASE" fi ]) dnl --------------------------------------------------------------------------- dnl WX_CONVERT_STANDARD_OPTIONS_TO_WXCONFIG_FLAGS dnl dnl Sets the WXCONFIG_FLAGS string using the SHARED,DEBUG,UNICODE variable values dnl which are different from "auto". dnl Thus this macro needs to be called only once all options have been set. dnl --------------------------------------------------------------------------- AC_DEFUN([WX_CONVERT_STANDARD_OPTIONS_TO_WXCONFIG_FLAGS], [ if test "$WX_SHARED" = "1" ; then WXCONFIG_FLAGS="--static=no " elif test "$WX_SHARED" = "0" ; then WXCONFIG_FLAGS="--static=yes " fi if test "$WX_DEBUG" = "1" ; then WXCONFIG_FLAGS="$WXCONFIG_FLAGS""--debug=yes " elif test "$WX_DEBUG" = "0" ; then WXCONFIG_FLAGS="$WXCONFIG_FLAGS""--debug=no " fi dnl The user should have set WX_UNICODE=UNICODE if test "$WX_UNICODE" = "1" ; then WXCONFIG_FLAGS="$WXCONFIG_FLAGS""--unicode=yes " elif test "$WX_UNICODE" = "0" ; then WXCONFIG_FLAGS="$WXCONFIG_FLAGS""--unicode=no " fi if test "$TOOLKIT" != "auto" ; then WXCONFIG_FLAGS="$WXCONFIG_FLAGS""--toolkit=$TOOLKIT " fi if test "$WX_RELEASE" != "auto" ; then WXCONFIG_FLAGS="$WXCONFIG_FLAGS""--version=$WX_RELEASE " fi dnl strip out the last space of the string WXCONFIG_FLAGS=${WXCONFIG_FLAGS% } if test "$WX_DEBUG_CONFIGURE" = "1"; then echo "[[dbg]] WXCONFIG_FLAGS: $WXCONFIG_FLAGS" fi ]) dnl --------------------------------------------------------------------------- dnl _WX_SELECTEDCONFIG_CHECKFOR([RESULTVAR], [STRING], [MSG] dnl [, ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]) dnl dnl Outputs the given MSG. Then searches the given STRING in the wxWidgets dnl additional CPP flags and put the result of the search in WX_$RESULTVAR dnl also adding the "yes" or "no" message result to MSG. dnl --------------------------------------------------------------------------- AC_DEFUN([_WX_SELECTEDCONFIG_CHECKFOR], [ if test "$$1" = "auto" ; then dnl The user does not have particular preferences for this option; dnl so we will detect the wxWidgets relative build setting and use it AC_MSG_CHECKING([$3]) dnl set WX_$1 variable to 1 if the $WX_SELECTEDCONFIG contains the $2 dnl string or to 0 otherwise. dnl NOTE: 'expr match STRING REGEXP' cannot be used since on Mac it dnl doesn't work; we use 'expr STRING : REGEXP' instead WX_$1=$(expr "$WX_SELECTEDCONFIG" : ".*$2.*") if test "$WX_$1" != "0"; then WX_$1=1 AC_MSG_RESULT([yes]) ifelse([$4], , :, [$4]) else WX_$1=0 AC_MSG_RESULT([no]) ifelse([$5], , :, [$5]) fi else dnl Use the setting given by the user WX_$1=$$1 fi ]) dnl --------------------------------------------------------------------------- dnl WX_DETECT_STANDARD_OPTION_VALUES dnl dnl Detects the values of the following variables: dnl 1) WX_RELEASE dnl 2) WX_UNICODE dnl 3) WX_DEBUG dnl 4) WX_SHARED (and also WX_STATIC) dnl 5) WX_PORT dnl from the previously selected wxWidgets build; this macro in fact must be dnl called *after* calling the WX_CONFIG_CHECK macro. dnl dnl Note that the WX_VERSION_MAJOR, WX_VERSION_MINOR symbols are already set dnl by WX_CONFIG_CHECK macro dnl --------------------------------------------------------------------------- AC_DEFUN([WX_DETECT_STANDARD_OPTION_VALUES], [ dnl IMPORTANT: WX_VERSION contains all three major.minor.micro digits, dnl while WX_RELEASE only the major.minor ones. WX_RELEASE="$WX_VERSION_MAJOR""$WX_VERSION_MINOR" if test $WX_RELEASE -lt 26 ; then AC_MSG_ERROR([ Cannot detect the wxWidgets configuration for the selected wxWidgets build since its version is $WX_VERSION < 2.6.0; please install a newer version of wxWidgets. ]) fi dnl The wx-config we are using understands the "--selected_config" dnl option which returns an easy-parseable string ! WX_SELECTEDCONFIG=$($WX_CONFIG_WITH_ARGS --selected_config) if test "$WX_DEBUG_CONFIGURE" = "1"; then echo "[[dbg]] Using wx-config --selected-config" echo "[[dbg]] WX_SELECTEDCONFIG: $WX_SELECTEDCONFIG" fi dnl we could test directly for WX_SHARED with a line like: dnl _WX_SELECTEDCONFIG_CHECKFOR([SHARED], [shared], dnl [if wxWidgets was built in SHARED mode]) dnl but wx-config --selected-config DOES NOT outputs the 'shared' dnl word when wx was built in shared mode; it rather outputs the dnl 'static' word when built in static mode. if test $WX_SHARED = "1"; then STATIC=0 elif test $WX_SHARED = "0"; then STATIC=1 elif test $WX_SHARED = "auto"; then STATIC="auto" fi dnl Now set the WX_UNICODE, WX_DEBUG, WX_STATIC variables _WX_SELECTEDCONFIG_CHECKFOR([UNICODE], [unicode], [if wxWidgets was built with UNICODE enabled]) _WX_SELECTEDCONFIG_CHECKFOR([DEBUG], [debug], [if wxWidgets was built in DEBUG mode]) _WX_SELECTEDCONFIG_CHECKFOR([STATIC], [static], [if wxWidgets was built in STATIC mode]) dnl init WX_SHARED from WX_STATIC if test "$WX_STATIC" != "0"; then WX_SHARED=0 else WX_SHARED=1 fi AC_SUBST(WX_UNICODE) AC_SUBST(WX_DEBUG) AC_SUBST(WX_SHARED) dnl detect the WX_PORT to use if test "$TOOLKIT" = "auto" ; then dnl The user does not have particular preferences for this option; dnl so we will detect the wxWidgets relative build setting and use it AC_MSG_CHECKING([which wxWidgets toolkit was selected]) WX_GTKPORT1=$(expr "$WX_SELECTEDCONFIG" : ".*gtk1.*") WX_GTKPORT2=$(expr "$WX_SELECTEDCONFIG" : ".*gtk2.*") WX_MSWPORT=$(expr "$WX_SELECTEDCONFIG" : ".*msw.*") WX_MOTIFPORT=$(expr "$WX_SELECTEDCONFIG" : ".*motif.*") WX_OSXCOCOAPORT=$(expr "$WX_SELECTEDCONFIG" : ".*osx_cocoa.*") WX_OSXCARBONPORT=$(expr "$WX_SELECTEDCONFIG" : ".*osx_carbon.*") WX_X11PORT=$(expr "$WX_SELECTEDCONFIG" : ".*x11.*") WX_DFBPORT=$(expr "$WX_SELECTEDCONFIG" : ".*dfb.*") WX_PORT="unknown" if test "$WX_GTKPORT1" != "0"; then WX_PORT="gtk1"; fi if test "$WX_GTKPORT2" != "0"; then WX_PORT="gtk2"; fi if test "$WX_MSWPORT" != "0"; then WX_PORT="msw"; fi if test "$WX_MOTIFPORT" != "0"; then WX_PORT="motif"; fi if test "$WX_OSXCOCOAPORT" != "0"; then WX_PORT="osx_cocoa"; fi if test "$WX_OSXCARBONPORT" != "0"; then WX_PORT="osx_carbon"; fi if test "$WX_X11PORT" != "0"; then WX_PORT="x11"; fi if test "$WX_DFBPORT" != "0"; then WX_PORT="dfb"; fi dnl NOTE: backward-compatible check for wx2.8; in wx2.9 the mac dnl ports are called 'osx_cocoa' and 'osx_carbon' (see above) WX_MACPORT=$(expr "$WX_SELECTEDCONFIG" : ".*mac.*") if test "$WX_MACPORT" != "0"; then WX_PORT="mac"; fi dnl check at least one of the WX_*PORT has been set ! if test "$WX_PORT" = "unknown" ; then AC_MSG_ERROR([ Cannot detect the currently installed wxWidgets port ! Please check your 'wx-config --cxxflags'... ]) fi AC_MSG_RESULT([$WX_PORT]) else dnl Use the setting given by the user if test -z "$TOOLKIT" ; then WX_PORT=$TOOLKIT else dnl try with PORT WX_PORT=$PORT fi fi AC_SUBST(WX_PORT) if test "$WX_DEBUG_CONFIGURE" = "1"; then echo "[[dbg]] Values of all WX_* options after final detection:" echo "[[dbg]] WX_DEBUG: $WX_DEBUG" echo "[[dbg]] WX_UNICODE: $WX_UNICODE" echo "[[dbg]] WX_SHARED: $WX_SHARED" echo "[[dbg]] WX_RELEASE: $WX_RELEASE" echo "[[dbg]] WX_PORT: $WX_PORT" fi dnl Avoid problem described in the WX_STANDARD_OPTIONS which happens when dnl the user gives the options: dnl ./configure --enable-shared --without-wxshared dnl or just do dnl ./configure --enable-shared dnl but there is only a static build of wxWidgets available. if test "$WX_SHARED" = "0" -a "$SHARED" = "1"; then AC_MSG_ERROR([ Cannot build shared library against a static build of wxWidgets ! This error happens because the wxWidgets build which was selected has been detected as static while you asked to build $PACKAGE_NAME as shared library and this is not possible. Use the '--disable-shared' option to build $PACKAGE_NAME as static library or '--with-wxshared' to use wxWidgets as shared library. ]) fi dnl now we can finally update the DEBUG,UNICODE,SHARED options dnl to their final values if they were set to 'auto' if test "$DEBUG" = "auto"; then DEBUG=$WX_DEBUG fi if test "$UNICODE" = "auto"; then UNICODE=$WX_UNICODE fi if test "$SHARED" = "auto"; then SHARED=$WX_SHARED fi if test "$TOOLKIT" = "auto"; then TOOLKIT=$WX_PORT fi dnl in case the user needs a BUILD=debug/release var... if test "$DEBUG" = "1"; then BUILD="debug" elif test "$DEBUG" = "0" -o "$DEBUG" = ""; then BUILD="release" fi dnl respect the DEBUG variable adding the optimize/debug flags dnl NOTE: the CXXFLAGS are merged together with the CPPFLAGS so we dnl don't need to set them, too if test "$DEBUG" = "1"; then CXXFLAGS="$CXXFLAGS -g -O0" CFLAGS="$CFLAGS -g -O0" else CXXFLAGS="$CXXFLAGS -O2" CFLAGS="$CFLAGS -O2" fi ]) dnl --------------------------------------------------------------------------- dnl WX_BOOLOPT_SUMMARY([name of the boolean variable to show summary for], dnl [what to print when var is 1], dnl [what to print when var is 0]) dnl dnl Prints $2 when variable $1 == 1 and prints $3 when variable $1 == 0. dnl This macro mainly exists just to make configure.ac scripts more readable. dnl dnl NOTE: you need to use the [" my message"] syntax for 2nd and 3rd arguments dnl if you want that m4 avoid to throw away the spaces prefixed to the dnl argument value. dnl --------------------------------------------------------------------------- AC_DEFUN([WX_BOOLOPT_SUMMARY], [ if test "x$$1" = "x1" ; then echo $2 elif test "x$$1" = "x0" ; then echo $3 else echo "$1 is $$1" fi ]) dnl --------------------------------------------------------------------------- dnl WX_STANDARD_OPTIONS_SUMMARY_MSG dnl dnl Shows a summary message to the user about the WX_* variable contents. dnl This macro is used typically at the end of the configure script. dnl --------------------------------------------------------------------------- AC_DEFUN([WX_STANDARD_OPTIONS_SUMMARY_MSG], [ echo echo " The wxWidgets build which will be used by $PACKAGE_NAME $PACKAGE_VERSION" echo " has the following settings:" WX_BOOLOPT_SUMMARY([WX_DEBUG], [" - DEBUG build"], [" - RELEASE build"]) WX_BOOLOPT_SUMMARY([WX_UNICODE], [" - UNICODE mode"], [" - ANSI mode"]) WX_BOOLOPT_SUMMARY([WX_SHARED], [" - SHARED mode"], [" - STATIC mode"]) echo " - VERSION: $WX_VERSION" echo " - PORT: $WX_PORT" ]) dnl --------------------------------------------------------------------------- dnl WX_STANDARD_OPTIONS_SUMMARY_MSG_BEGIN, WX_STANDARD_OPTIONS_SUMMARY_MSG_END dnl dnl Like WX_STANDARD_OPTIONS_SUMMARY_MSG macro but these two macros also gives info dnl about the configuration of the package which used the wxpresets. dnl dnl Typical usage: dnl WX_STANDARD_OPTIONS_SUMMARY_MSG_BEGIN dnl echo " - Package setting 1: $SETTING1" dnl echo " - Package setting 2: $SETTING1" dnl ... dnl WX_STANDARD_OPTIONS_SUMMARY_MSG_END dnl dnl --------------------------------------------------------------------------- AC_DEFUN([WX_STANDARD_OPTIONS_SUMMARY_MSG_BEGIN], [ echo echo " ----------------------------------------------------------------" echo " Configuration for $PACKAGE_NAME $PACKAGE_VERSION successfully completed." echo " Summary of main configuration settings for $PACKAGE_NAME:" WX_BOOLOPT_SUMMARY([DEBUG], [" - DEBUG build"], [" - RELEASE build"]) WX_BOOLOPT_SUMMARY([UNICODE], [" - UNICODE mode"], [" - ANSI mode"]) WX_BOOLOPT_SUMMARY([SHARED], [" - SHARED mode"], [" - STATIC mode"]) ]) AC_DEFUN([WX_STANDARD_OPTIONS_SUMMARY_MSG_END], [ WX_STANDARD_OPTIONS_SUMMARY_MSG echo echo " Now, just run make." echo " ----------------------------------------------------------------" echo ]) dnl --------------------------------------------------------------------------- dnl Deprecated macro wrappers dnl --------------------------------------------------------------------------- AC_DEFUN([AM_OPTIONS_WXCONFIG], [WX_CONFIG_OPTIONS]) AC_DEFUN([AM_PATH_WXCONFIG], [ WX_CONFIG_CHECK([$1],[$2],[$3],[$4],[$5]) ]) AC_DEFUN([AM_PATH_WXRC], [WXRC_CHECK([$1],[$2])]) poedit-2.0.6/admin/depcomp0000755000372000037200000005601613230132040012363 00000000000000#! /bin/sh # depcomp - compile a program generating dependencies as side-effects scriptversion=2013-05-30.07; # UTC # Copyright (C) 1999-2013 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # Originally written by Alexandre Oliva . case $1 in '') echo "$0: No command. Try '$0 --help' for more information." 1>&2 exit 1; ;; -h | --h*) cat <<\EOF Usage: depcomp [--help] [--version] PROGRAM [ARGS] Run PROGRAMS ARGS to compile a file, generating dependencies as side-effects. Environment variables: depmode Dependency tracking mode. source Source file read by 'PROGRAMS ARGS'. object Object file output by 'PROGRAMS ARGS'. DEPDIR directory where to store dependencies. depfile Dependency file to output. tmpdepfile Temporary file to use when outputting dependencies. libtool Whether libtool is used (yes/no). Report bugs to . EOF exit $? ;; -v | --v*) echo "depcomp $scriptversion" exit $? ;; esac # Get the directory component of the given path, and save it in the # global variables '$dir'. Note that this directory component will # be either empty or ending with a '/' character. This is deliberate. set_dir_from () { case $1 in */*) dir=`echo "$1" | sed -e 's|/[^/]*$|/|'`;; *) dir=;; esac } # Get the suffix-stripped basename of the given path, and save it the # global variable '$base'. set_base_from () { base=`echo "$1" | sed -e 's|^.*/||' -e 's/\.[^.]*$//'` } # If no dependency file was actually created by the compiler invocation, # we still have to create a dummy depfile, to avoid errors with the # Makefile "include basename.Plo" scheme. make_dummy_depfile () { echo "#dummy" > "$depfile" } # Factor out some common post-processing of the generated depfile. # Requires the auxiliary global variable '$tmpdepfile' to be set. aix_post_process_depfile () { # If the compiler actually managed to produce a dependency file, # post-process it. if test -f "$tmpdepfile"; then # Each line is of the form 'foo.o: dependency.h'. # Do two passes, one to just change these to # $object: dependency.h # and one to simply output # dependency.h: # which is needed to avoid the deleted-header problem. { sed -e "s,^.*\.[$lower]*:,$object:," < "$tmpdepfile" sed -e "s,^.*\.[$lower]*:[$tab ]*,," -e 's,$,:,' < "$tmpdepfile" } > "$depfile" rm -f "$tmpdepfile" else make_dummy_depfile fi } # A tabulation character. tab=' ' # A newline character. nl=' ' # Character ranges might be problematic outside the C locale. # These definitions help. upper=ABCDEFGHIJKLMNOPQRSTUVWXYZ lower=abcdefghijklmnopqrstuvwxyz digits=0123456789 alpha=${upper}${lower} if test -z "$depmode" || test -z "$source" || test -z "$object"; then echo "depcomp: Variables source, object and depmode must be set" 1>&2 exit 1 fi # Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po. depfile=${depfile-`echo "$object" | sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`} tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`} rm -f "$tmpdepfile" # Avoid interferences from the environment. gccflag= dashmflag= # Some modes work just like other modes, but use different flags. We # parameterize here, but still list the modes in the big case below, # to make depend.m4 easier to write. Note that we *cannot* use a case # here, because this file can only contain one case statement. if test "$depmode" = hp; then # HP compiler uses -M and no extra arg. gccflag=-M depmode=gcc fi if test "$depmode" = dashXmstdout; then # This is just like dashmstdout with a different argument. dashmflag=-xM depmode=dashmstdout fi cygpath_u="cygpath -u -f -" if test "$depmode" = msvcmsys; then # This is just like msvisualcpp but w/o cygpath translation. # Just convert the backslash-escaped backslashes to single forward # slashes to satisfy depend.m4 cygpath_u='sed s,\\\\,/,g' depmode=msvisualcpp fi if test "$depmode" = msvc7msys; then # This is just like msvc7 but w/o cygpath translation. # Just convert the backslash-escaped backslashes to single forward # slashes to satisfy depend.m4 cygpath_u='sed s,\\\\,/,g' depmode=msvc7 fi if test "$depmode" = xlc; then # IBM C/C++ Compilers xlc/xlC can output gcc-like dependency information. gccflag=-qmakedep=gcc,-MF depmode=gcc fi case "$depmode" in gcc3) ## gcc 3 implements dependency tracking that does exactly what ## we want. Yay! Note: for some reason libtool 1.4 doesn't like ## it if -MD -MP comes after the -MF stuff. Hmm. ## Unfortunately, FreeBSD c89 acceptance of flags depends upon ## the command line argument order; so add the flags where they ## appear in depend2.am. Note that the slowdown incurred here ## affects only configure: in makefiles, %FASTDEP% shortcuts this. for arg do case $arg in -c) set fnord "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" "$arg" ;; *) set fnord "$@" "$arg" ;; esac shift # fnord shift # $arg done "$@" stat=$? if test $stat -ne 0; then rm -f "$tmpdepfile" exit $stat fi mv "$tmpdepfile" "$depfile" ;; gcc) ## Note that this doesn't just cater to obsosete pre-3.x GCC compilers. ## but also to in-use compilers like IMB xlc/xlC and the HP C compiler. ## (see the conditional assignment to $gccflag above). ## There are various ways to get dependency output from gcc. Here's ## why we pick this rather obscure method: ## - Don't want to use -MD because we'd like the dependencies to end ## up in a subdir. Having to rename by hand is ugly. ## (We might end up doing this anyway to support other compilers.) ## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like ## -MM, not -M (despite what the docs say). Also, it might not be ## supported by the other compilers which use the 'gcc' depmode. ## - Using -M directly means running the compiler twice (even worse ## than renaming). if test -z "$gccflag"; then gccflag=-MD, fi "$@" -Wp,"$gccflag$tmpdepfile" stat=$? if test $stat -ne 0; then rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" echo "$object : \\" > "$depfile" # The second -e expression handles DOS-style file names with drive # letters. sed -e 's/^[^:]*: / /' \ -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile" ## This next piece of magic avoids the "deleted header file" problem. ## The problem is that when a header file which appears in a .P file ## is deleted, the dependency causes make to die (because there is ## typically no way to rebuild the header). We avoid this by adding ## dummy dependencies for each header file. Too bad gcc doesn't do ## this for us directly. ## Some versions of gcc put a space before the ':'. On the theory ## that the space means something, we add a space to the output as ## well. hp depmode also adds that space, but also prefixes the VPATH ## to the object. Take care to not repeat it in the output. ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. tr ' ' "$nl" < "$tmpdepfile" \ | sed -e 's/^\\$//' -e '/^$/d' -e "s|.*$object$||" -e '/:$/d' \ | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; hp) # This case exists only to let depend.m4 do its work. It works by # looking at the text of this script. This case will never be run, # since it is checked for above. exit 1 ;; sgi) if test "$libtool" = yes; then "$@" "-Wp,-MDupdate,$tmpdepfile" else "$@" -MDupdate "$tmpdepfile" fi stat=$? if test $stat -ne 0; then rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files echo "$object : \\" > "$depfile" # Clip off the initial element (the dependent). Don't try to be # clever and replace this with sed code, as IRIX sed won't handle # lines with more than a fixed number of characters (4096 in # IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines; # the IRIX cc adds comments like '#:fec' to the end of the # dependency line. tr ' ' "$nl" < "$tmpdepfile" \ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' \ | tr "$nl" ' ' >> "$depfile" echo >> "$depfile" # The second pass generates a dummy entry for each header file. tr ' ' "$nl" < "$tmpdepfile" \ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \ >> "$depfile" else make_dummy_depfile fi rm -f "$tmpdepfile" ;; xlc) # This case exists only to let depend.m4 do its work. It works by # looking at the text of this script. This case will never be run, # since it is checked for above. exit 1 ;; aix) # The C for AIX Compiler uses -M and outputs the dependencies # in a .u file. In older versions, this file always lives in the # current directory. Also, the AIX compiler puts '$object:' at the # start of each line; $object doesn't have directory information. # Version 6 uses the directory in both cases. set_dir_from "$object" set_base_from "$object" if test "$libtool" = yes; then tmpdepfile1=$dir$base.u tmpdepfile2=$base.u tmpdepfile3=$dir.libs/$base.u "$@" -Wc,-M else tmpdepfile1=$dir$base.u tmpdepfile2=$dir$base.u tmpdepfile3=$dir$base.u "$@" -M fi stat=$? if test $stat -ne 0; then rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" exit $stat fi for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" do test -f "$tmpdepfile" && break done aix_post_process_depfile ;; tcc) # tcc (Tiny C Compiler) understand '-MD -MF file' since version 0.9.26 # FIXME: That version still under development at the moment of writing. # Make that this statement remains true also for stable, released # versions. # It will wrap lines (doesn't matter whether long or short) with a # trailing '\', as in: # # foo.o : \ # foo.c \ # foo.h \ # # It will put a trailing '\' even on the last line, and will use leading # spaces rather than leading tabs (at least since its commit 0394caf7 # "Emit spaces for -MD"). "$@" -MD -MF "$tmpdepfile" stat=$? if test $stat -ne 0; then rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" # Each non-empty line is of the form 'foo.o : \' or ' dep.h \'. # We have to change lines of the first kind to '$object: \'. sed -e "s|.*:|$object :|" < "$tmpdepfile" > "$depfile" # And for each line of the second kind, we have to emit a 'dep.h:' # dummy dependency, to avoid the deleted-header problem. sed -n -e 's|^ *\(.*\) *\\$|\1:|p' < "$tmpdepfile" >> "$depfile" rm -f "$tmpdepfile" ;; ## The order of this option in the case statement is important, since the ## shell code in configure will try each of these formats in the order ## listed in this file. A plain '-MD' option would be understood by many ## compilers, so we must ensure this comes after the gcc and icc options. pgcc) # Portland's C compiler understands '-MD'. # Will always output deps to 'file.d' where file is the root name of the # source file under compilation, even if file resides in a subdirectory. # The object file name does not affect the name of the '.d' file. # pgcc 10.2 will output # foo.o: sub/foo.c sub/foo.h # and will wrap long lines using '\' : # foo.o: sub/foo.c ... \ # sub/foo.h ... \ # ... set_dir_from "$object" # Use the source, not the object, to determine the base name, since # that's sadly what pgcc will do too. set_base_from "$source" tmpdepfile=$base.d # For projects that build the same source file twice into different object # files, the pgcc approach of using the *source* file root name can cause # problems in parallel builds. Use a locking strategy to avoid stomping on # the same $tmpdepfile. lockdir=$base.d-lock trap " echo '$0: caught signal, cleaning up...' >&2 rmdir '$lockdir' exit 1 " 1 2 13 15 numtries=100 i=$numtries while test $i -gt 0; do # mkdir is a portable test-and-set. if mkdir "$lockdir" 2>/dev/null; then # This process acquired the lock. "$@" -MD stat=$? # Release the lock. rmdir "$lockdir" break else # If the lock is being held by a different process, wait # until the winning process is done or we timeout. while test -d "$lockdir" && test $i -gt 0; do sleep 1 i=`expr $i - 1` done fi i=`expr $i - 1` done trap - 1 2 13 15 if test $i -le 0; then echo "$0: failed to acquire lock after $numtries attempts" >&2 echo "$0: check lockdir '$lockdir'" >&2 exit 1 fi if test $stat -ne 0; then rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" # Each line is of the form `foo.o: dependent.h', # or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'. # Do two passes, one to just change these to # `$object: dependent.h' and one to simply `dependent.h:'. sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile" # Some versions of the HPUX 10.20 sed can't process this invocation # correctly. Breaking it into two sed invocations is a workaround. sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" \ | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; hp2) # The "hp" stanza above does not work with aCC (C++) and HP's ia64 # compilers, which have integrated preprocessors. The correct option # to use with these is +Maked; it writes dependencies to a file named # 'foo.d', which lands next to the object file, wherever that # happens to be. # Much of this is similar to the tru64 case; see comments there. set_dir_from "$object" set_base_from "$object" if test "$libtool" = yes; then tmpdepfile1=$dir$base.d tmpdepfile2=$dir.libs/$base.d "$@" -Wc,+Maked else tmpdepfile1=$dir$base.d tmpdepfile2=$dir$base.d "$@" +Maked fi stat=$? if test $stat -ne 0; then rm -f "$tmpdepfile1" "$tmpdepfile2" exit $stat fi for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" do test -f "$tmpdepfile" && break done if test -f "$tmpdepfile"; then sed -e "s,^.*\.[$lower]*:,$object:," "$tmpdepfile" > "$depfile" # Add 'dependent.h:' lines. sed -ne '2,${ s/^ *// s/ \\*$// s/$/:/ p }' "$tmpdepfile" >> "$depfile" else make_dummy_depfile fi rm -f "$tmpdepfile" "$tmpdepfile2" ;; tru64) # The Tru64 compiler uses -MD to generate dependencies as a side # effect. 'cc -MD -o foo.o ...' puts the dependencies into 'foo.o.d'. # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put # dependencies in 'foo.d' instead, so we check for that too. # Subdirectories are respected. set_dir_from "$object" set_base_from "$object" if test "$libtool" = yes; then # Libtool generates 2 separate objects for the 2 libraries. These # two compilations output dependencies in $dir.libs/$base.o.d and # in $dir$base.o.d. We have to check for both files, because # one of the two compilations can be disabled. We should prefer # $dir$base.o.d over $dir.libs/$base.o.d because the latter is # automatically cleaned when .libs/ is deleted, while ignoring # the former would cause a distcleancheck panic. tmpdepfile1=$dir$base.o.d # libtool 1.5 tmpdepfile2=$dir.libs/$base.o.d # Likewise. tmpdepfile3=$dir.libs/$base.d # Compaq CCC V6.2-504 "$@" -Wc,-MD else tmpdepfile1=$dir$base.d tmpdepfile2=$dir$base.d tmpdepfile3=$dir$base.d "$@" -MD fi stat=$? if test $stat -ne 0; then rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" exit $stat fi for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" do test -f "$tmpdepfile" && break done # Same post-processing that is required for AIX mode. aix_post_process_depfile ;; msvc7) if test "$libtool" = yes; then showIncludes=-Wc,-showIncludes else showIncludes=-showIncludes fi "$@" $showIncludes > "$tmpdepfile" stat=$? grep -v '^Note: including file: ' "$tmpdepfile" if test $stat -ne 0; then rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" echo "$object : \\" > "$depfile" # The first sed program below extracts the file names and escapes # backslashes for cygpath. The second sed program outputs the file # name when reading, but also accumulates all include files in the # hold buffer in order to output them again at the end. This only # works with sed implementations that can handle large buffers. sed < "$tmpdepfile" -n ' /^Note: including file: *\(.*\)/ { s//\1/ s/\\/\\\\/g p }' | $cygpath_u | sort -u | sed -n ' s/ /\\ /g s/\(.*\)/'"$tab"'\1 \\/p s/.\(.*\) \\/\1:/ H $ { s/.*/'"$tab"'/ G p }' >> "$depfile" echo >> "$depfile" # make sure the fragment doesn't end with a backslash rm -f "$tmpdepfile" ;; msvc7msys) # This case exists only to let depend.m4 do its work. It works by # looking at the text of this script. This case will never be run, # since it is checked for above. exit 1 ;; #nosideeffect) # This comment above is used by automake to tell side-effect # dependency tracking mechanisms from slower ones. dashmstdout) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout, regardless of -o. "$@" || exit $? # Remove the call to Libtool. if test "$libtool" = yes; then while test "X$1" != 'X--mode=compile'; do shift done shift fi # Remove '-o $object'. IFS=" " for arg do case $arg in -o) shift ;; $object) shift ;; *) set fnord "$@" "$arg" shift # fnord shift # $arg ;; esac done test -z "$dashmflag" && dashmflag=-M # Require at least two characters before searching for ':' # in the target name. This is to cope with DOS-style filenames: # a dependency such as 'c:/foo/bar' could be seen as target 'c' otherwise. "$@" $dashmflag | sed "s|^[$tab ]*[^:$tab ][^:][^:]*:[$tab ]*|$object: |" > "$tmpdepfile" rm -f "$depfile" cat < "$tmpdepfile" > "$depfile" # Some versions of the HPUX 10.20 sed can't process this sed invocation # correctly. Breaking it into two sed invocations is a workaround. tr ' ' "$nl" < "$tmpdepfile" \ | sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' \ | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; dashXmstdout) # This case only exists to satisfy depend.m4. It is never actually # run, as this mode is specially recognized in the preamble. exit 1 ;; makedepend) "$@" || exit $? # Remove any Libtool call if test "$libtool" = yes; then while test "X$1" != 'X--mode=compile'; do shift done shift fi # X makedepend shift cleared=no eat=no for arg do case $cleared in no) set ""; shift cleared=yes ;; esac if test $eat = yes; then eat=no continue fi case "$arg" in -D*|-I*) set fnord "$@" "$arg"; shift ;; # Strip any option that makedepend may not understand. Remove # the object too, otherwise makedepend will parse it as a source file. -arch) eat=yes ;; -*|$object) ;; *) set fnord "$@" "$arg"; shift ;; esac done obj_suffix=`echo "$object" | sed 's/^.*\././'` touch "$tmpdepfile" ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@" rm -f "$depfile" # makedepend may prepend the VPATH from the source file name to the object. # No need to regex-escape $object, excess matching of '.' is harmless. sed "s|^.*\($object *:\)|\1|" "$tmpdepfile" > "$depfile" # Some versions of the HPUX 10.20 sed can't process the last invocation # correctly. Breaking it into two sed invocations is a workaround. sed '1,2d' "$tmpdepfile" \ | tr ' ' "$nl" \ | sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' \ | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" "$tmpdepfile".bak ;; cpp) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout. "$@" || exit $? # Remove the call to Libtool. if test "$libtool" = yes; then while test "X$1" != 'X--mode=compile'; do shift done shift fi # Remove '-o $object'. IFS=" " for arg do case $arg in -o) shift ;; $object) shift ;; *) set fnord "$@" "$arg" shift # fnord shift # $arg ;; esac done "$@" -E \ | sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \ -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \ | sed '$ s: \\$::' > "$tmpdepfile" rm -f "$depfile" echo "$object : \\" > "$depfile" cat < "$tmpdepfile" >> "$depfile" sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; msvisualcpp) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout. "$@" || exit $? # Remove the call to Libtool. if test "$libtool" = yes; then while test "X$1" != 'X--mode=compile'; do shift done shift fi IFS=" " for arg do case "$arg" in -o) shift ;; $object) shift ;; "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI") set fnord "$@" shift shift ;; *) set fnord "$@" "$arg" shift shift ;; esac done "$@" -E 2>/dev/null | sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::\1:p' | $cygpath_u | sort -u > "$tmpdepfile" rm -f "$depfile" echo "$object : \\" > "$depfile" sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::'"$tab"'\1 \\:p' >> "$depfile" echo "$tab" >> "$depfile" sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::\1\::p' >> "$depfile" rm -f "$tmpdepfile" ;; msvcmsys) # This case exists only to let depend.m4 do its work. It works by # looking at the text of this script. This case will never be run, # since it is checked for above. exit 1 ;; none) exec "$@" ;; *) echo "Unknown depmode $depmode" 1>&2 exit 1 ;; esac exit 0 # Local Variables: # mode: shell-script # sh-indentation: 2 # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC" # time-stamp-end: "; # UTC" # End: poedit-2.0.6/admin/ax_boost_regex.m40000664000372000037200000001016413230131546014266 00000000000000# =========================================================================== # http://www.gnu.org/software/autoconf-archive/ax_boost_regex.html # =========================================================================== # # SYNOPSIS # # AX_BOOST_REGEX # # DESCRIPTION # # Test for Regex library from the Boost C++ libraries. The macro requires # a preceding call to AX_BOOST_BASE. Further documentation is available at # . # # This macro calls: # # AC_SUBST(BOOST_REGEX_LIB) # # And sets: # # HAVE_BOOST_REGEX # # LICENSE # # Copyright (c) 2008 Thomas Porschberg # Copyright (c) 2008 Michael Tindal # # Copying and distribution of this file, with or without modification, are # permitted in any medium without royalty provided the copyright notice # and this notice are preserved. This file is offered as-is, without any # warranty. #serial 22 AC_DEFUN([AX_BOOST_REGEX], [ AC_ARG_WITH([boost-regex], AS_HELP_STRING([--with-boost-regex@<:@=special-lib@:>@], [use the Regex library from boost - it is possible to specify a certain library for the linker e.g. --with-boost-regex=boost_regex-gcc-mt-d-1_33_1 ]), [ if test "$withval" = "no"; then want_boost="no" elif test "$withval" = "yes"; then want_boost="yes" ax_boost_user_regex_lib="" else want_boost="yes" ax_boost_user_regex_lib="$withval" fi ], [want_boost="yes"] ) if test "x$want_boost" = "xyes"; then AC_REQUIRE([AC_PROG_CC]) CPPFLAGS_SAVED="$CPPFLAGS" CPPFLAGS="$CPPFLAGS $BOOST_CPPFLAGS" export CPPFLAGS LDFLAGS_SAVED="$LDFLAGS" LDFLAGS="$LDFLAGS $BOOST_LDFLAGS" export LDFLAGS AC_CACHE_CHECK(whether the Boost::Regex library is available, ax_cv_boost_regex, [AC_LANG_PUSH([C++]) AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[@%:@include ]], [[boost::regex r(); return 0;]])], ax_cv_boost_regex=yes, ax_cv_boost_regex=no) AC_LANG_POP([C++]) ]) if test "x$ax_cv_boost_regex" = "xyes"; then AC_DEFINE(HAVE_BOOST_REGEX,,[define if the Boost::Regex library is available]) BOOSTLIBDIR=`echo $BOOST_LDFLAGS | sed -e 's/@<:@^\/@:>@*//'` if test "x$ax_boost_user_regex_lib" = "x"; then for libextension in `ls $BOOSTLIBDIR/libboost_regex*.so* $BOOSTLIBDIR/libboost_regex*.dylib* $BOOSTLIBDIR/libboost_regex*.a* 2>/dev/null | sed 's,.*/,,' | sed -e 's;^lib\(boost_regex.*\)\.so.*$;\1;' -e 's;^lib\(boost_regex.*\)\.dylib.*;\1;' -e 's;^lib\(boost_regex.*\)\.a.*$;\1;'` ; do ax_lib=${libextension} AC_CHECK_LIB($ax_lib, exit, [BOOST_REGEX_LIB="-l$ax_lib"; AC_SUBST(BOOST_REGEX_LIB) link_regex="yes"; break], [link_regex="no"]) done if test "x$link_regex" != "xyes"; then for libextension in `ls $BOOSTLIBDIR/boost_regex*.dll* $BOOSTLIBDIR/boost_regex*.a* 2>/dev/null | sed 's,.*/,,' | sed -e 's;^\(boost_regex.*\)\.dll.*$;\1;' -e 's;^\(boost_regex.*\)\.a.*$;\1;'` ; do ax_lib=${libextension} AC_CHECK_LIB($ax_lib, exit, [BOOST_REGEX_LIB="-l$ax_lib"; AC_SUBST(BOOST_REGEX_LIB) link_regex="yes"; break], [link_regex="no"]) done fi else for ax_lib in $ax_boost_user_regex_lib boost_regex-$ax_boost_user_regex_lib; do AC_CHECK_LIB($ax_lib, main, [BOOST_REGEX_LIB="-l$ax_lib"; AC_SUBST(BOOST_REGEX_LIB) link_regex="yes"; break], [link_regex="no"]) done fi if test "x$ax_lib" = "x"; then AC_MSG_ERROR(Could not find a version of the Boost::Regex library!) fi if test "x$link_regex" != "xyes"; then AC_MSG_ERROR(Could not link against $ax_lib !) fi fi CPPFLAGS="$CPPFLAGS_SAVED" LDFLAGS="$LDFLAGS_SAVED" fi ]) poedit-2.0.6/admin/ax_boost_system.m40000664000372000037200000001013413230131546014475 00000000000000# =========================================================================== # http://www.gnu.org/software/autoconf-archive/ax_boost_system.html # =========================================================================== # # SYNOPSIS # # AX_BOOST_SYSTEM # # DESCRIPTION # # Test for System library from the Boost C++ libraries. The macro requires # a preceding call to AX_BOOST_BASE. Further documentation is available at # . # # This macro calls: # # AC_SUBST(BOOST_SYSTEM_LIB) # # And sets: # # HAVE_BOOST_SYSTEM # # LICENSE # # Copyright (c) 2008 Thomas Porschberg # Copyright (c) 2008 Michael Tindal # Copyright (c) 2008 Daniel Casimiro # # Copying and distribution of this file, with or without modification, are # permitted in any medium without royalty provided the copyright notice # and this notice are preserved. This file is offered as-is, without any # warranty. #serial 17 AC_DEFUN([AX_BOOST_SYSTEM], [ AC_ARG_WITH([boost-system], AS_HELP_STRING([--with-boost-system@<:@=special-lib@:>@], [use the System library from boost - it is possible to specify a certain library for the linker e.g. --with-boost-system=boost_system-gcc-mt ]), [ if test "$withval" = "no"; then want_boost="no" elif test "$withval" = "yes"; then want_boost="yes" ax_boost_user_system_lib="" else want_boost="yes" ax_boost_user_system_lib="$withval" fi ], [want_boost="yes"] ) if test "x$want_boost" = "xyes"; then AC_REQUIRE([AC_PROG_CC]) AC_REQUIRE([AC_CANONICAL_BUILD]) CPPFLAGS_SAVED="$CPPFLAGS" CPPFLAGS="$CPPFLAGS $BOOST_CPPFLAGS" export CPPFLAGS LDFLAGS_SAVED="$LDFLAGS" LDFLAGS="$LDFLAGS $BOOST_LDFLAGS" export LDFLAGS AC_CACHE_CHECK(whether the Boost::System library is available, ax_cv_boost_system, [AC_LANG_PUSH([C++]) CXXFLAGS_SAVE=$CXXFLAGS AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[@%:@include ]], [[boost::system::system_category]])], ax_cv_boost_system=yes, ax_cv_boost_system=no) CXXFLAGS=$CXXFLAGS_SAVE AC_LANG_POP([C++]) ]) if test "x$ax_cv_boost_system" = "xyes"; then AC_SUBST(BOOST_CPPFLAGS) AC_DEFINE(HAVE_BOOST_SYSTEM,,[define if the Boost::System library is available]) BOOSTLIBDIR=`echo $BOOST_LDFLAGS | sed -e 's/@<:@^\/@:>@*//'` LDFLAGS_SAVE=$LDFLAGS if test "x$ax_boost_user_system_lib" = "x"; then for libextension in `ls -r $BOOSTLIBDIR/libboost_system* 2>/dev/null | sed 's,.*/lib,,' | sed 's,\..*,,'` ; do ax_lib=${libextension} AC_CHECK_LIB($ax_lib, exit, [BOOST_SYSTEM_LIB="-l$ax_lib"; AC_SUBST(BOOST_SYSTEM_LIB) link_system="yes"; break], [link_system="no"]) done if test "x$link_system" != "xyes"; then for libextension in `ls -r $BOOSTLIBDIR/boost_system* 2>/dev/null | sed 's,.*/,,' | sed -e 's,\..*,,'` ; do ax_lib=${libextension} AC_CHECK_LIB($ax_lib, exit, [BOOST_SYSTEM_LIB="-l$ax_lib"; AC_SUBST(BOOST_SYSTEM_LIB) link_system="yes"; break], [link_system="no"]) done fi else for ax_lib in $ax_boost_user_system_lib boost_system-$ax_boost_user_system_lib; do AC_CHECK_LIB($ax_lib, exit, [BOOST_SYSTEM_LIB="-l$ax_lib"; AC_SUBST(BOOST_SYSTEM_LIB) link_system="yes"; break], [link_system="no"]) done fi if test "x$ax_lib" = "x"; then AC_MSG_ERROR(Could not find a version of the library!) fi if test "x$link_system" = "xno"; then AC_MSG_ERROR(Could not link against $ax_lib !) fi fi CPPFLAGS="$CPPFLAGS_SAVED" LDFLAGS="$LDFLAGS_SAVED" fi ]) poedit-2.0.6/admin/ax_boost_iostreams.m40000664000372000037200000001101213230131546015153 00000000000000# =========================================================================== # http://www.gnu.org/software/autoconf-archive/ax_boost_iostreams.html # =========================================================================== # # SYNOPSIS # # AX_BOOST_IOSTREAMS # # DESCRIPTION # # Test for IOStreams library from the Boost C++ libraries. The macro # requires a preceding call to AX_BOOST_BASE. Further documentation is # available at . # # This macro calls: # # AC_SUBST(BOOST_IOSTREAMS_LIB) # # And sets: # # HAVE_BOOST_IOSTREAMS # # LICENSE # # Copyright (c) 2008 Thomas Porschberg # # Copying and distribution of this file, with or without modification, are # permitted in any medium without royalty provided the copyright notice # and this notice are preserved. This file is offered as-is, without any # warranty. #serial 20 AC_DEFUN([AX_BOOST_IOSTREAMS], [ AC_ARG_WITH([boost-iostreams], AS_HELP_STRING([--with-boost-iostreams@<:@=special-lib@:>@], [use the IOStreams library from boost - it is possible to specify a certain library for the linker e.g. --with-boost-iostreams=boost_iostreams-gcc-mt-d-1_33_1 ]), [ if test "$withval" = "no"; then want_boost="no" elif test "$withval" = "yes"; then want_boost="yes" ax_boost_user_iostreams_lib="" else want_boost="yes" ax_boost_user_iostreams_lib="$withval" fi ], [want_boost="yes"] ) if test "x$want_boost" = "xyes"; then AC_REQUIRE([AC_PROG_CC]) CPPFLAGS_SAVED="$CPPFLAGS" CPPFLAGS="$CPPFLAGS $BOOST_CPPFLAGS" export CPPFLAGS LDFLAGS_SAVED="$LDFLAGS" LDFLAGS="$LDFLAGS $BOOST_LDFLAGS" export LDFLAGS AC_CACHE_CHECK(whether the Boost::IOStreams library is available, ax_cv_boost_iostreams, [AC_LANG_PUSH([C++]) AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[@%:@include @%:@include ]], [[std::string input = "Hello World!"; namespace io = boost::iostreams; io::filtering_istream in(boost::make_iterator_range(input)); return 0; ]])], ax_cv_boost_iostreams=yes, ax_cv_boost_iostreams=no) AC_LANG_POP([C++]) ]) if test "x$ax_cv_boost_iostreams" = "xyes"; then AC_DEFINE(HAVE_BOOST_IOSTREAMS,,[define if the Boost::IOStreams library is available]) BOOSTLIBDIR=`echo $BOOST_LDFLAGS | sed -e 's/@<:@^\/@:>@*//'` if test "x$ax_boost_user_iostreams_lib" = "x"; then for libextension in `ls $BOOSTLIBDIR/libboost_iostreams*.so* $BOOSTLIBDIR/libboost_iostream*.dylib* $BOOSTLIBDIR/libboost_iostreams*.a* 2>/dev/null | sed 's,.*/,,' | sed -e 's;^lib\(boost_iostreams.*\)\.so.*$;\1;' -e 's;^lib\(boost_iostream.*\)\.dylib.*$;\1;' -e 's;^lib\(boost_iostreams.*\)\.a.*$;\1;'` ; do ax_lib=${libextension} AC_CHECK_LIB($ax_lib, exit, [BOOST_IOSTREAMS_LIB="-l$ax_lib"; AC_SUBST(BOOST_IOSTREAMS_LIB) link_iostreams="yes"; break], [link_iostreams="no"]) done if test "x$link_iostreams" != "xyes"; then for libextension in `ls $BOOSTLIBDIR/boost_iostreams*.dll* $BOOSTLIBDIR/boost_iostreams*.a* 2>/dev/null | sed 's,.*/,,' | sed -e 's;^\(boost_iostreams.*\)\.dll.*$;\1;' -e 's;^\(boost_iostreams.*\)\.a.*$;\1;'` ; do ax_lib=${libextension} AC_CHECK_LIB($ax_lib, exit, [BOOST_IOSTREAMS_LIB="-l$ax_lib"; AC_SUBST(BOOST_IOSTREAMS_LIB) link_iostreams="yes"; break], [link_iostreams="no"]) done fi else for ax_lib in $ax_boost_user_iostreams_lib boost_iostreams-$ax_boost_user_iostreams_lib; do AC_CHECK_LIB($ax_lib, main, [BOOST_IOSTREAMS_LIB="-l$ax_lib"; AC_SUBST(BOOST_IOSTREAMS_LIB) link_iostreams="yes"; break], [link_iostreams="no"]) done fi if test "x$ax_lib" = "x"; then AC_MSG_ERROR(Could not find a version of the library!) fi if test "x$link_iostreams" != "xyes"; then AC_MSG_ERROR(Could not link against $ax_lib !) fi fi CPPFLAGS="$CPPFLAGS_SAVED" LDFLAGS="$LDFLAGS_SAVED" fi ]) poedit-2.0.6/admin/ax_cxx_compile_stdcxx.m40000664000372000037200000003300013230131546015647 00000000000000# =========================================================================== # http://www.gnu.org/software/autoconf-archive/ax_cxx_compile_stdcxx.html # =========================================================================== # # SYNOPSIS # # AX_CXX_COMPILE_STDCXX(VERSION, [ext|noext], [mandatory|optional]) # # DESCRIPTION # # Check for baseline language coverage in the compiler for the specified # version of the C++ standard. If necessary, add switches to CXX and # CXXCPP to enable support. VERSION may be '11' (for the C++11 standard) # or '14' (for the C++14 standard). # # The second argument, if specified, indicates whether you insist on an # extended mode (e.g. -std=gnu++11) or a strict conformance mode (e.g. # -std=c++11). If neither is specified, you get whatever works, with # preference for an extended mode. # # The third argument, if specified 'mandatory' or if left unspecified, # indicates that baseline support for the specified C++ standard is # required and that the macro should error out if no mode with that # support is found. If specified 'optional', then configuration proceeds # regardless, after defining HAVE_CXX${VERSION} if and only if a # supporting mode is found. # # LICENSE # # Copyright (c) 2008 Benjamin Kosnik # Copyright (c) 2012 Zack Weinberg # Copyright (c) 2013 Roy Stogner # Copyright (c) 2014, 2015 Google Inc.; contributed by Alexey Sokolov # Copyright (c) 2015 Paul Norman # Copyright (c) 2015 Moritz Klammler # # Copying and distribution of this file, with or without modification, are # permitted in any medium without royalty provided the copyright notice # and this notice are preserved. This file is offered as-is, without any # warranty. #serial 4 dnl This macro is based on the code from the AX_CXX_COMPILE_STDCXX_11 macro dnl (serial version number 13). AC_DEFUN([AX_CXX_COMPILE_STDCXX], [dnl m4_if([$1], [11], [], [$1], [14], [], [$1], [17], [m4_fatal([support for C++17 not yet implemented in AX_CXX_COMPILE_STDCXX])], [m4_fatal([invalid first argument `$1' to AX_CXX_COMPILE_STDCXX])])dnl m4_if([$2], [], [], [$2], [ext], [], [$2], [noext], [], [m4_fatal([invalid second argument `$2' to AX_CXX_COMPILE_STDCXX])])dnl m4_if([$3], [], [ax_cxx_compile_cxx$1_required=true], [$3], [mandatory], [ax_cxx_compile_cxx$1_required=true], [$3], [optional], [ax_cxx_compile_cxx$1_required=false], [m4_fatal([invalid third argument `$3' to AX_CXX_COMPILE_STDCXX])]) AC_LANG_PUSH([C++])dnl ac_success=no AC_CACHE_CHECK(whether $CXX supports C++$1 features by default, ax_cv_cxx_compile_cxx$1, [AC_COMPILE_IFELSE([AC_LANG_SOURCE([_AX_CXX_COMPILE_STDCXX_testbody_$1])], [ax_cv_cxx_compile_cxx$1=yes], [ax_cv_cxx_compile_cxx$1=no])]) if test x$ax_cv_cxx_compile_cxx$1 = xyes; then ac_success=yes fi m4_if([$2], [noext], [], [dnl if test x$ac_success = xno; then for switch in -std=gnu++$1 -std=gnu++0x; do cachevar=AS_TR_SH([ax_cv_cxx_compile_cxx$1_$switch]) AC_CACHE_CHECK(whether $CXX supports C++$1 features with $switch, $cachevar, [ac_save_CXX="$CXX" CXX="$CXX $switch" AC_COMPILE_IFELSE([AC_LANG_SOURCE([_AX_CXX_COMPILE_STDCXX_testbody_$1])], [eval $cachevar=yes], [eval $cachevar=no]) CXX="$ac_save_CXX"]) if eval test x\$$cachevar = xyes; then CXX="$CXX $switch" if test -n "$CXXCPP" ; then CXXCPP="$CXXCPP $switch" fi ac_success=yes break fi done fi]) m4_if([$2], [ext], [], [dnl if test x$ac_success = xno; then dnl HP's aCC needs +std=c++11 according to: dnl http://h21007.www2.hp.com/portal/download/files/unprot/aCxx/PDF_Release_Notes/769149-001.pdf dnl Cray's crayCC needs "-h std=c++11" for switch in -std=c++$1 -std=c++0x +std=c++$1 "-h std=c++$1"; do cachevar=AS_TR_SH([ax_cv_cxx_compile_cxx$1_$switch]) AC_CACHE_CHECK(whether $CXX supports C++$1 features with $switch, $cachevar, [ac_save_CXX="$CXX" CXX="$CXX $switch" AC_COMPILE_IFELSE([AC_LANG_SOURCE([_AX_CXX_COMPILE_STDCXX_testbody_$1])], [eval $cachevar=yes], [eval $cachevar=no]) CXX="$ac_save_CXX"]) if eval test x\$$cachevar = xyes; then CXX="$CXX $switch" if test -n "$CXXCPP" ; then CXXCPP="$CXXCPP $switch" fi ac_success=yes break fi done fi]) AC_LANG_POP([C++]) if test x$ax_cxx_compile_cxx$1_required = xtrue; then if test x$ac_success = xno; then AC_MSG_ERROR([*** A compiler with support for C++$1 language features is required.]) fi fi if test x$ac_success = xno; then HAVE_CXX$1=0 AC_MSG_NOTICE([No compiler with C++$1 support was found]) else HAVE_CXX$1=1 AC_DEFINE(HAVE_CXX$1,1, [define if the compiler supports basic C++$1 syntax]) fi AC_SUBST(HAVE_CXX$1) ]) dnl Test body for checking C++11 support m4_define([_AX_CXX_COMPILE_STDCXX_testbody_11], _AX_CXX_COMPILE_STDCXX_testbody_new_in_11 ) dnl Test body for checking C++14 support m4_define([_AX_CXX_COMPILE_STDCXX_testbody_14], _AX_CXX_COMPILE_STDCXX_testbody_new_in_11 _AX_CXX_COMPILE_STDCXX_testbody_new_in_14 ) dnl Tests for new features in C++11 m4_define([_AX_CXX_COMPILE_STDCXX_testbody_new_in_11], [[ // If the compiler admits that it is not ready for C++11, why torture it? // Hopefully, this will speed up the test. #ifndef __cplusplus #error "This is not a C++ compiler" #elif __cplusplus < 201103L #error "This is not a C++11 compiler" #else namespace cxx11 { namespace test_static_assert { template struct check { static_assert(sizeof(int) <= sizeof(T), "not big enough"); }; } namespace test_final_override { struct Base { virtual void f() {} }; struct Derived : public Base { virtual void f() override {} }; } namespace test_double_right_angle_brackets { template < typename T > struct check {}; typedef check single_type; typedef check> double_type; typedef check>> triple_type; typedef check>>> quadruple_type; } namespace test_decltype { int f() { int a = 1; decltype(a) b = 2; return a + b; } } namespace test_type_deduction { template < typename T1, typename T2 > struct is_same { static const bool value = false; }; template < typename T > struct is_same { static const bool value = true; }; template < typename T1, typename T2 > auto add(T1 a1, T2 a2) -> decltype(a1 + a2) { return a1 + a2; } int test(const int c, volatile int v) { static_assert(is_same::value == true, ""); static_assert(is_same::value == false, ""); static_assert(is_same::value == false, ""); auto ac = c; auto av = v; auto sumi = ac + av + 'x'; auto sumf = ac + av + 1.0; static_assert(is_same::value == true, ""); static_assert(is_same::value == true, ""); static_assert(is_same::value == true, ""); static_assert(is_same::value == false, ""); static_assert(is_same::value == true, ""); return (sumf > 0.0) ? sumi : add(c, v); } } namespace test_noexcept { int f() { return 0; } int g() noexcept { return 0; } static_assert(noexcept(f()) == false, ""); static_assert(noexcept(g()) == true, ""); } namespace test_constexpr { template < typename CharT > unsigned long constexpr strlen_c_r(const CharT *const s, const unsigned long acc) noexcept { return *s ? strlen_c_r(s + 1, acc + 1) : acc; } template < typename CharT > unsigned long constexpr strlen_c(const CharT *const s) noexcept { return strlen_c_r(s, 0UL); } static_assert(strlen_c("") == 0UL, ""); static_assert(strlen_c("1") == 1UL, ""); static_assert(strlen_c("example") == 7UL, ""); static_assert(strlen_c("another\0example") == 7UL, ""); } namespace test_rvalue_references { template < int N > struct answer { static constexpr int value = N; }; answer<1> f(int&) { return answer<1>(); } answer<2> f(const int&) { return answer<2>(); } answer<3> f(int&&) { return answer<3>(); } void test() { int i = 0; const int c = 0; static_assert(decltype(f(i))::value == 1, ""); static_assert(decltype(f(c))::value == 2, ""); static_assert(decltype(f(0))::value == 3, ""); } } namespace test_uniform_initialization { struct test { static const int zero {}; static const int one {1}; }; static_assert(test::zero == 0, ""); static_assert(test::one == 1, ""); } namespace test_lambdas { void test1() { auto lambda1 = [](){}; auto lambda2 = lambda1; lambda1(); lambda2(); } int test2() { auto a = [](int i, int j){ return i + j; }(1, 2); auto b = []() -> int { return '0'; }(); auto c = [=](){ return a + b; }(); auto d = [&](){ return c; }(); auto e = [a, &b](int x) mutable { const auto identity = [](int y){ return y; }; for (auto i = 0; i < a; ++i) a += b--; return x + identity(a + b); }(0); return a + b + c + d + e; } int test3() { const auto nullary = [](){ return 0; }; const auto unary = [](int x){ return x; }; using nullary_t = decltype(nullary); using unary_t = decltype(unary); const auto higher1st = [](nullary_t f){ return f(); }; const auto higher2nd = [unary](nullary_t f1){ return [unary, f1](unary_t f2){ return f2(unary(f1())); }; }; return higher1st(nullary) + higher2nd(nullary)(unary); } } namespace test_variadic_templates { template struct sum; template struct sum { static constexpr auto value = N0 + sum::value; }; template <> struct sum<> { static constexpr auto value = 0; }; static_assert(sum<>::value == 0, ""); static_assert(sum<1>::value == 1, ""); static_assert(sum<23>::value == 23, ""); static_assert(sum<1, 2>::value == 3, ""); static_assert(sum<5, 5, 11>::value == 21, ""); static_assert(sum<2, 3, 5, 7, 11, 13>::value == 41, ""); } // http://stackoverflow.com/questions/13728184/template-aliases-and-sfinae // Clang 3.1 fails with headers of libstd++ 4.8.3 when using std::function // because of this. namespace test_template_alias_sfinae { struct foo {}; template using member = typename T::member_type; template void func(...) {} template void func(member*) {} void test(); void test() { func(0); } } } // namespace cxx11 #endif // __cplusplus >= 201103L ]]) dnl Tests for new features in C++14 m4_define([_AX_CXX_COMPILE_STDCXX_testbody_new_in_14], [[ // If the compiler admits that it is not ready for C++14, why torture it? // Hopefully, this will speed up the test. #ifndef __cplusplus #error "This is not a C++ compiler" #elif __cplusplus < 201402L #error "This is not a C++14 compiler" #else namespace cxx14 { namespace test_polymorphic_lambdas { int test() { const auto lambda = [](auto&&... args){ const auto istiny = [](auto x){ return (sizeof(x) == 1UL) ? 1 : 0; }; const int aretiny[] = { istiny(args)... }; return aretiny[0]; }; return lambda(1, 1L, 1.0f, '1'); } } namespace test_binary_literals { constexpr auto ivii = 0b0000000000101010; static_assert(ivii == 42, "wrong value"); } namespace test_generalized_constexpr { template < typename CharT > constexpr unsigned long strlen_c(const CharT *const s) noexcept { auto length = 0UL; for (auto p = s; *p; ++p) ++length; return length; } static_assert(strlen_c("") == 0UL, ""); static_assert(strlen_c("x") == 1UL, ""); static_assert(strlen_c("test") == 4UL, ""); static_assert(strlen_c("another\0test") == 7UL, ""); } namespace test_lambda_init_capture { int test() { auto x = 0; const auto lambda1 = [a = x](int b){ return a + b; }; const auto lambda2 = [a = lambda1(x)](){ return a; }; return lambda2(); } } namespace test_digit_seperators { constexpr auto ten_million = 100'000'000; static_assert(ten_million == 100000000, ""); } namespace test_return_type_deduction { auto f(int& x) { return x; } decltype(auto) g(int& x) { return x; } template < typename T1, typename T2 > struct is_same { static constexpr auto value = false; }; template < typename T > struct is_same { static constexpr auto value = true; }; int test() { auto x = 0; static_assert(is_same::value, ""); static_assert(is_same::value, ""); return x; } } } // namespace cxx14 #endif // __cplusplus >= 201402L ]]) poedit-2.0.6/admin/ax_cxx_check_flag.m40000664000372000037200000000565013230131546014702 00000000000000# =========================================================================== # http://www.nongnu.org/autoconf-archive/ax_cxx_check_flag.html # =========================================================================== # # SYNOPSIS # # AX_CXX_CHECK_FLAG(FLAG-TO-CHECK,[PROLOGUE],[BODY],[ACTION-IF-SUCCESS],[ACTION-IF-FAILURE]) # # DESCRIPTION # # This macro tests if the C++ compiler supports the flag FLAG-TO-CHECK. If # successfull execute ACTION-IF-SUCCESS otherwise ACTION-IF-FAILURE. # PROLOGUE and BODY are optional and should be used as in AC_LANG_PROGRAM # macro. # # This code is inspired from KDE_CHECK_COMPILER_FLAG macro. Thanks to # Bogdan Drozdowski for testing and bug fixes. # # LICENSE # # Copyright (c) 2008 Francesco Salvestrini # # 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, see . # # As a special exception, the respective Autoconf Macro's copyright owner # gives unlimited permission to copy, distribute and modify the configure # scripts that are the output of Autoconf when processing the Macro. You # need not follow the terms of the GNU General Public License when using # or distributing such scripts, even though portions of the text of the # Macro appear in them. The GNU General Public License (GPL) does govern # all other use of the material that constitutes the Autoconf Macro. # # This special exception to the GPL applies to versions of the Autoconf # Macro released by the Autoconf Archive. When you make and distribute a # modified version of the Autoconf Macro, you may extend this special # exception to the GPL to apply to your modified version as well. AC_DEFUN([AX_CXX_CHECK_FLAG],[ AC_PREREQ([2.61]) AC_REQUIRE([AC_PROG_CXX]) AC_REQUIRE([AC_PROG_SED]) flag=`echo "$1" | $SED 'y% .=/+-(){}<>:*,%_______________%'` AC_CACHE_CHECK([whether the C++ compiler accepts the $1 flag], [ax_cv_cxx_check_flag_$flag],[ AC_LANG_PUSH([C++]) save_CXXFLAGS="$CXXFLAGS" CXXFLAGS="$CXXFLAGS $1" AC_COMPILE_IFELSE([ AC_LANG_PROGRAM([$2],[$3]) ],[ eval "ax_cv_cxx_check_flag_$flag=yes" ],[ eval "ax_cv_cxx_check_flag_$flag=no" ]) CXXFLAGS="$save_CXXFLAGS" AC_LANG_POP ]) AS_IF([eval "test \"`echo '$ax_cv_cxx_check_flag_'$flag`\" = yes"],[ : $4 ],[ : $5 ]) ]) poedit-2.0.6/admin/compile0000755000372000037200000001624513230132040012364 00000000000000#! /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: poedit-2.0.6/admin/missing0000755000372000037200000001533013230132040012377 00000000000000#! /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: poedit-2.0.6/admin/config.guess0000755000372000037200000013036113230132040013322 00000000000000#! /bin/sh # Attempt to guess a canonical system name. # Copyright 1992-2013 Free Software Foundation, Inc. timestamp='2013-06-10' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, see . # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that # program. This Exception is an additional permission under section 7 # of the GNU General Public License, version 3 ("GPLv3"). # # Originally written by Per Bothner. # # You can get the latest version of this script from: # http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD # # Please send patches with a ChangeLog entry to config-patches@gnu.org. me=`echo "$0" | sed -e 's,.*/,,'` usage="\ Usage: $0 [OPTION] Output the configuration name of the system \`$me' is run on. Operation modes: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit Report bugs and patches to ." version="\ GNU config.guess ($timestamp) Originally written by Per Bothner. Copyright 1992-2013 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." help=" Try \`$me --help' for more information." # Parse command line while test $# -gt 0 ; do case $1 in --time-stamp | --time* | -t ) echo "$timestamp" ; exit ;; --version | -v ) echo "$version" ; exit ;; --help | --h* | -h ) echo "$usage"; exit ;; -- ) # Stop option processing shift; break ;; - ) # Use stdin as input. break ;; -* ) echo "$me: invalid option $1$help" >&2 exit 1 ;; * ) break ;; esac done if test $# != 0; then echo "$me: too many arguments$help" >&2 exit 1 fi trap 'exit 1' 1 2 15 # CC_FOR_BUILD -- compiler used by this script. Note that the use of a # compiler to aid in system detection is discouraged as it requires # temporary files to be created and, as you can see below, it is a # headache to deal with in a portable fashion. # Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still # use `HOST_CC' if defined, but it is deprecated. # Portable tmp directory creation inspired by the Autoconf team. set_cc_for_build=' trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; : ${TMPDIR=/tmp} ; { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } || { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; dummy=$tmp/dummy ; tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ; case $CC_FOR_BUILD,$HOST_CC,$CC in ,,) echo "int x;" > $dummy.c ; for c in cc gcc c89 c99 ; do if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then CC_FOR_BUILD="$c"; break ; fi ; done ; if test x"$CC_FOR_BUILD" = x ; then CC_FOR_BUILD=no_compiler_found ; fi ;; ,,*) CC_FOR_BUILD=$CC ;; ,*,*) CC_FOR_BUILD=$HOST_CC ;; esac ; set_cc_for_build= ;' # This is needed to find uname on a Pyramid OSx when run in the BSD universe. # (ghazi@noc.rutgers.edu 1994-08-24) if (test -f /.attbin/uname) >/dev/null 2>&1 ; then PATH=$PATH:/.attbin ; export PATH fi UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown case "${UNAME_SYSTEM}" in Linux|GNU|GNU/*) # If the system lacks a compiler, then just pick glibc. # We could probably try harder. LIBC=gnu eval $set_cc_for_build cat <<-EOF > $dummy.c #include #if defined(__UCLIBC__) LIBC=uclibc #elif defined(__dietlibc__) LIBC=dietlibc #else LIBC=gnu #endif EOF eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC'` ;; esac # Note: order is significant - the case branches are not exclusive. case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in *:NetBSD:*:*) # NetBSD (nbsd) targets should (where applicable) match one or # more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*, # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently # switched to ELF, *-*-netbsd* would select the old # object file format. This provides both forward # compatibility and a consistent mechanism for selecting the # object file format. # # Note: NetBSD doesn't particularly care about the vendor # portion of the name. We always set it to "unknown". sysctl="sysctl -n hw.machine_arch" UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \ /usr/sbin/$sysctl 2>/dev/null || echo unknown)` case "${UNAME_MACHINE_ARCH}" in armeb) machine=armeb-unknown ;; arm*) machine=arm-unknown ;; sh3el) machine=shl-unknown ;; sh3eb) machine=sh-unknown ;; sh5el) machine=sh5le-unknown ;; *) machine=${UNAME_MACHINE_ARCH}-unknown ;; esac # The Operating System including object format, if it has switched # to ELF recently, or will in the future. case "${UNAME_MACHINE_ARCH}" in arm*|i386|m68k|ns32k|sh3*|sparc|vax) eval $set_cc_for_build if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ELF__ then # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). # Return netbsd for either. FIX? os=netbsd else os=netbsdelf fi ;; *) os=netbsd ;; esac # The OS release # Debian GNU/NetBSD machines have a different userland, and # thus, need a distinct triplet. However, they do not need # kernel version information, so it can be replaced with a # suitable tag, in the style of linux-gnu. case "${UNAME_VERSION}" in Debian*) release='-gnu' ;; *) release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` ;; esac # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: # contains redundant information, the shorter form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. echo "${machine}-${os}${release}" exit ;; *:Bitrig:*:*) UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'` echo ${UNAME_MACHINE_ARCH}-unknown-bitrig${UNAME_RELEASE} exit ;; *:OpenBSD:*:*) UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} exit ;; *:ekkoBSD:*:*) echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} exit ;; *:SolidBSD:*:*) echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE} exit ;; macppc:MirBSD:*:*) echo powerpc-unknown-mirbsd${UNAME_RELEASE} exit ;; *:MirBSD:*:*) echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} exit ;; alpha:OSF1:*:*) case $UNAME_RELEASE in *4.0) UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` ;; *5.*) UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` ;; esac # According to Compaq, /usr/sbin/psrinfo has been available on # OSF/1 and Tru64 systems produced since 1995. I hope that # covers most systems running today. This code pipes the CPU # types through head -n 1, so we only detect the type of CPU 0. ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` case "$ALPHA_CPU_TYPE" in "EV4 (21064)") UNAME_MACHINE="alpha" ;; "EV4.5 (21064)") UNAME_MACHINE="alpha" ;; "LCA4 (21066/21068)") UNAME_MACHINE="alpha" ;; "EV5 (21164)") UNAME_MACHINE="alphaev5" ;; "EV5.6 (21164A)") UNAME_MACHINE="alphaev56" ;; "EV5.6 (21164PC)") UNAME_MACHINE="alphapca56" ;; "EV5.7 (21164PC)") UNAME_MACHINE="alphapca57" ;; "EV6 (21264)") UNAME_MACHINE="alphaev6" ;; "EV6.7 (21264A)") UNAME_MACHINE="alphaev67" ;; "EV6.8CB (21264C)") UNAME_MACHINE="alphaev68" ;; "EV6.8AL (21264B)") UNAME_MACHINE="alphaev68" ;; "EV6.8CX (21264D)") UNAME_MACHINE="alphaev68" ;; "EV6.9A (21264/EV69A)") UNAME_MACHINE="alphaev69" ;; "EV7 (21364)") UNAME_MACHINE="alphaev7" ;; "EV7.9 (21364A)") UNAME_MACHINE="alphaev79" ;; esac # A Pn.n version is a patched version. # A Vn.n version is a released version. # A Tn.n version is a released field test version. # A Xn.n version is an unreleased experimental baselevel. # 1.2 uses "1.2" for uname -r. echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` # Reset EXIT trap before exiting to avoid spurious non-zero exit code. exitcode=$? trap '' 0 exit $exitcode ;; Alpha\ *:Windows_NT*:*) # How do we know it's Interix rather than the generic POSIX subsystem? # Should we change UNAME_MACHINE based on the output of uname instead # of the specific Alpha model? echo alpha-pc-interix exit ;; 21064:Windows_NT:50:3) echo alpha-dec-winnt3.5 exit ;; Amiga*:UNIX_System_V:4.0:*) echo m68k-unknown-sysv4 exit ;; *:[Aa]miga[Oo][Ss]:*:*) echo ${UNAME_MACHINE}-unknown-amigaos exit ;; *:[Mm]orph[Oo][Ss]:*:*) echo ${UNAME_MACHINE}-unknown-morphos exit ;; *:OS/390:*:*) echo i370-ibm-openedition exit ;; *:z/VM:*:*) echo s390-ibm-zvmoe exit ;; *:OS400:*:*) echo powerpc-ibm-os400 exit ;; arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) echo arm-acorn-riscix${UNAME_RELEASE} exit ;; arm*:riscos:*:*|arm*:RISCOS:*:*) echo arm-unknown-riscos exit ;; SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) echo hppa1.1-hitachi-hiuxmpp exit ;; Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. if test "`(/bin/universe) 2>/dev/null`" = att ; then echo pyramid-pyramid-sysv3 else echo pyramid-pyramid-bsd fi exit ;; NILE*:*:*:dcosx) echo pyramid-pyramid-svr4 exit ;; DRS?6000:unix:4.0:6*) echo sparc-icl-nx6 exit ;; DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*) case `/usr/bin/uname -p` in sparc) echo sparc-icl-nx7; exit ;; esac ;; s390x:SunOS:*:*) echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4H:SunOS:5.*:*) echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*) echo i386-pc-auroraux${UNAME_RELEASE} exit ;; i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) eval $set_cc_for_build SUN_ARCH="i386" # If there is a compiler, see if it is configured for 64-bit objects. # Note that the Sun cc does not turn __LP64__ into 1 like gcc does. # This test works for both compilers. if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \ (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ grep IS_64BIT_ARCH >/dev/null then SUN_ARCH="x86_64" fi fi echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:6*:*) # According to config.sub, this is the proper way to canonicalize # SunOS6. Hard to guess exactly what SunOS6 will be like, but # it's likely to be more like Solaris than SunOS4. echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:*:*) case "`/usr/bin/arch -k`" in Series*|S4*) UNAME_RELEASE=`uname -v` ;; esac # Japanese Language versions have a version number like `4.1.3-JL'. echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` exit ;; sun3*:SunOS:*:*) echo m68k-sun-sunos${UNAME_RELEASE} exit ;; sun*:*:4.2BSD:*) UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 case "`/bin/arch`" in sun3) echo m68k-sun-sunos${UNAME_RELEASE} ;; sun4) echo sparc-sun-sunos${UNAME_RELEASE} ;; esac exit ;; aushp:SunOS:*:*) echo sparc-auspex-sunos${UNAME_RELEASE} exit ;; # The situation for MiNT is a little confusing. The machine name # can be virtually everything (everything which is not # "atarist" or "atariste" at least should have a processor # > m68000). The system name ranges from "MiNT" over "FreeMiNT" # to the lowercase version "mint" (or "freemint"). Finally # the system name "TOS" denotes a system which is actually not # MiNT. But MiNT is downward compatible to TOS, so this should # be no problem. atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) echo m68k-milan-mint${UNAME_RELEASE} exit ;; hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) echo m68k-hades-mint${UNAME_RELEASE} exit ;; *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) echo m68k-unknown-mint${UNAME_RELEASE} exit ;; m68k:machten:*:*) echo m68k-apple-machten${UNAME_RELEASE} exit ;; powerpc:machten:*:*) echo powerpc-apple-machten${UNAME_RELEASE} exit ;; RISC*:Mach:*:*) echo mips-dec-mach_bsd4.3 exit ;; RISC*:ULTRIX:*:*) echo mips-dec-ultrix${UNAME_RELEASE} exit ;; VAX*:ULTRIX*:*:*) echo vax-dec-ultrix${UNAME_RELEASE} exit ;; 2020:CLIX:*:* | 2430:CLIX:*:*) echo clipper-intergraph-clix${UNAME_RELEASE} exit ;; mips:*:*:UMIPS | mips:*:*:RISCos) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #ifdef __cplusplus #include /* for printf() prototype */ int main (int argc, char *argv[]) { #else int main (argc, argv) int argc; char *argv[]; { #endif #if defined (host_mips) && defined (MIPSEB) #if defined (SYSTYPE_SYSV) printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0); #endif #if defined (SYSTYPE_SVR4) printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0); #endif #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0); #endif #endif exit (-1); } EOF $CC_FOR_BUILD -o $dummy $dummy.c && dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` && SYSTEM_NAME=`$dummy $dummyarg` && { echo "$SYSTEM_NAME"; exit; } echo mips-mips-riscos${UNAME_RELEASE} exit ;; Motorola:PowerMAX_OS:*:*) echo powerpc-motorola-powermax exit ;; Motorola:*:4.3:PL8-*) echo powerpc-harris-powermax exit ;; Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) echo powerpc-harris-powermax exit ;; Night_Hawk:Power_UNIX:*:*) echo powerpc-harris-powerunix exit ;; m88k:CX/UX:7*:*) echo m88k-harris-cxux7 exit ;; m88k:*:4*:R4*) echo m88k-motorola-sysv4 exit ;; m88k:*:3*:R3*) echo m88k-motorola-sysv3 exit ;; AViiON:dgux:*:*) # DG/UX returns AViiON for all architectures UNAME_PROCESSOR=`/usr/bin/uname -p` if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] then if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ [ ${TARGET_BINARY_INTERFACE}x = x ] then echo m88k-dg-dgux${UNAME_RELEASE} else echo m88k-dg-dguxbcs${UNAME_RELEASE} fi else echo i586-dg-dgux${UNAME_RELEASE} fi exit ;; M88*:DolphinOS:*:*) # DolphinOS (SVR3) echo m88k-dolphin-sysv3 exit ;; M88*:*:R3*:*) # Delta 88k system running SVR3 echo m88k-motorola-sysv3 exit ;; XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) echo m88k-tektronix-sysv3 exit ;; Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) echo m68k-tektronix-bsd exit ;; *:IRIX*:*:*) echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` exit ;; ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id exit ;; # Note that: echo "'`uname -s`'" gives 'AIX ' i*86:AIX:*:*) echo i386-ibm-aix exit ;; ia64:AIX:*:*) if [ -x /usr/bin/oslevel ] ; then IBM_REV=`/usr/bin/oslevel` else IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} fi echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} exit ;; *:AIX:2:3) if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include main() { if (!__power_pc()) exit(1); puts("powerpc-ibm-aix3.2.5"); exit(0); } EOF if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` then echo "$SYSTEM_NAME" else echo rs6000-ibm-aix3.2.5 fi elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then echo rs6000-ibm-aix3.2.4 else echo rs6000-ibm-aix3.2 fi exit ;; *:AIX:*:[4567]) IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then IBM_ARCH=rs6000 else IBM_ARCH=powerpc fi if [ -x /usr/bin/oslevel ] ; then IBM_REV=`/usr/bin/oslevel` else IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} fi echo ${IBM_ARCH}-ibm-aix${IBM_REV} exit ;; *:AIX:*:*) echo rs6000-ibm-aix exit ;; ibmrt:4.4BSD:*|romp-ibm:BSD:*) echo romp-ibm-bsd4.4 exit ;; ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to exit ;; # report: romp-ibm BSD 4.3 *:BOSX:*:*) echo rs6000-bull-bosx exit ;; DPX/2?00:B.O.S.:*:*) echo m68k-bull-sysv3 exit ;; 9000/[34]??:4.3bsd:1.*:*) echo m68k-hp-bsd exit ;; hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) echo m68k-hp-bsd4.4 exit ;; 9000/[34678]??:HP-UX:*:*) HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` case "${UNAME_MACHINE}" in 9000/31? ) HP_ARCH=m68000 ;; 9000/[34]?? ) HP_ARCH=m68k ;; 9000/[678][0-9][0-9]) if [ -x /usr/bin/getconf ]; then sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` case "${sc_cpu_version}" in 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 532) # CPU_PA_RISC2_0 case "${sc_kernel_bits}" in 32) HP_ARCH="hppa2.0n" ;; 64) HP_ARCH="hppa2.0w" ;; '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20 esac ;; esac fi if [ "${HP_ARCH}" = "" ]; then eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #define _HPUX_SOURCE #include #include int main () { #if defined(_SC_KERNEL_BITS) long bits = sysconf(_SC_KERNEL_BITS); #endif long cpu = sysconf (_SC_CPU_VERSION); switch (cpu) { case CPU_PA_RISC1_0: puts ("hppa1.0"); break; case CPU_PA_RISC1_1: puts ("hppa1.1"); break; case CPU_PA_RISC2_0: #if defined(_SC_KERNEL_BITS) switch (bits) { case 64: puts ("hppa2.0w"); break; case 32: puts ("hppa2.0n"); break; default: puts ("hppa2.0"); break; } break; #else /* !defined(_SC_KERNEL_BITS) */ puts ("hppa2.0"); break; #endif default: puts ("hppa1.0"); break; } exit (0); } EOF (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` test -z "$HP_ARCH" && HP_ARCH=hppa fi ;; esac if [ ${HP_ARCH} = "hppa2.0w" ] then eval $set_cc_for_build # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler # generating 64-bit code. GNU and HP use different nomenclature: # # $ CC_FOR_BUILD=cc ./config.guess # => hppa2.0w-hp-hpux11.23 # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess # => hppa64-hp-hpux11.23 if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | grep -q __LP64__ then HP_ARCH="hppa2.0w" else HP_ARCH="hppa64" fi fi echo ${HP_ARCH}-hp-hpux${HPUX_REV} exit ;; ia64:HP-UX:*:*) HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` echo ia64-hp-hpux${HPUX_REV} exit ;; 3050*:HI-UX:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include int main () { long cpu = sysconf (_SC_CPU_VERSION); /* The order matters, because CPU_IS_HP_MC68K erroneously returns true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct results, however. */ if (CPU_IS_PA_RISC (cpu)) { switch (cpu) { case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break; case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break; case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break; default: puts ("hppa-hitachi-hiuxwe2"); break; } } else if (CPU_IS_HP_MC68K (cpu)) puts ("m68k-hitachi-hiuxwe2"); else puts ("unknown-hitachi-hiuxwe2"); exit (0); } EOF $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` && { echo "$SYSTEM_NAME"; exit; } echo unknown-hitachi-hiuxwe2 exit ;; 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) echo hppa1.1-hp-bsd exit ;; 9000/8??:4.3bsd:*:*) echo hppa1.0-hp-bsd exit ;; *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) echo hppa1.0-hp-mpeix exit ;; hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) echo hppa1.1-hp-osf exit ;; hp8??:OSF1:*:*) echo hppa1.0-hp-osf exit ;; i*86:OSF1:*:*) if [ -x /usr/sbin/sysversion ] ; then echo ${UNAME_MACHINE}-unknown-osf1mk else echo ${UNAME_MACHINE}-unknown-osf1 fi exit ;; parisc*:Lites*:*:*) echo hppa1.1-hp-lites exit ;; C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) echo c1-convex-bsd exit ;; C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) if getsysinfo -f scalar_acc then echo c32-convex-bsd else echo c2-convex-bsd fi exit ;; C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) echo c34-convex-bsd exit ;; C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) echo c38-convex-bsd exit ;; C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) echo c4-convex-bsd exit ;; CRAY*Y-MP:*:*:*) echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*[A-Z]90:*:*:*) echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ -e 's/\.[^.]*$/.X/' exit ;; CRAY*TS:*:*:*) echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*T3E:*:*:*) echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*SV1:*:*:*) echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; *:UNICOS/mp:*:*) echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit ;; 5000:UNIX_System_V:4.*:*) FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit ;; i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} exit ;; sparc*:BSD/OS:*:*) echo sparc-unknown-bsdi${UNAME_RELEASE} exit ;; *:BSD/OS:*:*) echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} exit ;; *:FreeBSD:*:*) UNAME_PROCESSOR=`/usr/bin/uname -p` case ${UNAME_PROCESSOR} in amd64) echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; *) echo ${UNAME_PROCESSOR}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; esac exit ;; i*:CYGWIN*:*) echo ${UNAME_MACHINE}-pc-cygwin exit ;; *:MINGW64*:*) echo ${UNAME_MACHINE}-pc-mingw64 exit ;; *:MINGW*:*) echo ${UNAME_MACHINE}-pc-mingw32 exit ;; i*:MSYS*:*) echo ${UNAME_MACHINE}-pc-msys exit ;; i*:windows32*:*) # uname -m includes "-pc" on this system. echo ${UNAME_MACHINE}-mingw32 exit ;; i*:PW*:*) echo ${UNAME_MACHINE}-pc-pw32 exit ;; *:Interix*:*) case ${UNAME_MACHINE} in x86) echo i586-pc-interix${UNAME_RELEASE} exit ;; authenticamd | genuineintel | EM64T) echo x86_64-unknown-interix${UNAME_RELEASE} exit ;; IA64) echo ia64-unknown-interix${UNAME_RELEASE} exit ;; esac ;; [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) echo i${UNAME_MACHINE}-pc-mks exit ;; 8664:Windows_NT:*) echo x86_64-pc-mks exit ;; i*:Windows_NT*:* | Pentium*:Windows_NT*:*) # How do we know it's Interix rather than the generic POSIX subsystem? # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we # UNAME_MACHINE based on the output of uname instead of i386? echo i586-pc-interix exit ;; i*:UWIN*:*) echo ${UNAME_MACHINE}-pc-uwin exit ;; amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) echo x86_64-unknown-cygwin exit ;; p*:CYGWIN*:*) echo powerpcle-unknown-cygwin exit ;; prep*:SunOS:5.*:*) echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; *:GNU:*:*) # the GNU system echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-${LIBC}`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` exit ;; *:GNU/*:*:*) # other systems with GNU libc and userland echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-${LIBC} exit ;; i*86:Minix:*:*) echo ${UNAME_MACHINE}-pc-minix exit ;; aarch64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; aarch64_be:Linux:*:*) UNAME_MACHINE=aarch64_be echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; alpha:Linux:*:*) case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in EV5) UNAME_MACHINE=alphaev5 ;; EV56) UNAME_MACHINE=alphaev56 ;; PCA56) UNAME_MACHINE=alphapca56 ;; PCA57) UNAME_MACHINE=alphapca56 ;; EV6) UNAME_MACHINE=alphaev6 ;; EV67) UNAME_MACHINE=alphaev67 ;; EV68*) UNAME_MACHINE=alphaev68 ;; esac objdump --private-headers /bin/sh | grep -q ld.so.1 if test "$?" = 0 ; then LIBC="gnulibc1" ; fi echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; arc:Linux:*:* | arceb:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; arm*:Linux:*:*) eval $set_cc_for_build if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ARM_EABI__ then echo ${UNAME_MACHINE}-unknown-linux-${LIBC} else if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ARM_PCS_VFP then echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabi else echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabihf fi fi exit ;; avr32*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; cris:Linux:*:*) echo ${UNAME_MACHINE}-axis-linux-${LIBC} exit ;; crisv32:Linux:*:*) echo ${UNAME_MACHINE}-axis-linux-${LIBC} exit ;; frv:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; hexagon:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; i*86:Linux:*:*) echo ${UNAME_MACHINE}-pc-linux-${LIBC} exit ;; ia64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; m32r*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; m68*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; mips:Linux:*:* | mips64:Linux:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #undef CPU #undef ${UNAME_MACHINE} #undef ${UNAME_MACHINE}el #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) CPU=${UNAME_MACHINE}el #else #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) CPU=${UNAME_MACHINE} #else CPU= #endif #endif EOF eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'` test x"${CPU}" != x && { echo "${CPU}-unknown-linux-${LIBC}"; exit; } ;; or1k:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; or32:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; padre:Linux:*:*) echo sparc-unknown-linux-${LIBC} exit ;; parisc64:Linux:*:* | hppa64:Linux:*:*) echo hppa64-unknown-linux-${LIBC} exit ;; parisc:Linux:*:* | hppa:Linux:*:*) # Look for CPU level case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in PA7*) echo hppa1.1-unknown-linux-${LIBC} ;; PA8*) echo hppa2.0-unknown-linux-${LIBC} ;; *) echo hppa-unknown-linux-${LIBC} ;; esac exit ;; ppc64:Linux:*:*) echo powerpc64-unknown-linux-${LIBC} exit ;; ppc:Linux:*:*) echo powerpc-unknown-linux-${LIBC} exit ;; ppc64le:Linux:*:*) echo powerpc64le-unknown-linux-${LIBC} exit ;; ppcle:Linux:*:*) echo powerpcle-unknown-linux-${LIBC} exit ;; s390:Linux:*:* | s390x:Linux:*:*) echo ${UNAME_MACHINE}-ibm-linux-${LIBC} exit ;; sh64*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; sh*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; sparc:Linux:*:* | sparc64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; tile*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; vax:Linux:*:*) echo ${UNAME_MACHINE}-dec-linux-${LIBC} exit ;; x86_64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; xtensa*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; i*86:DYNIX/ptx:4*:*) # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. # earlier versions are messed up and put the nodename in both # sysname and nodename. echo i386-sequent-sysv4 exit ;; i*86:UNIX_SV:4.2MP:2.*) # Unixware is an offshoot of SVR4, but it has its own version # number series starting with 2... # I am not positive that other SVR4 systems won't match this, # I just have to hope. -- rms. # Use sysv4.2uw... so that sysv4* matches it. echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} exit ;; i*86:OS/2:*:*) # If we were able to find `uname', then EMX Unix compatibility # is probably installed. echo ${UNAME_MACHINE}-pc-os2-emx exit ;; i*86:XTS-300:*:STOP) echo ${UNAME_MACHINE}-unknown-stop exit ;; i*86:atheos:*:*) echo ${UNAME_MACHINE}-unknown-atheos exit ;; i*86:syllable:*:*) echo ${UNAME_MACHINE}-pc-syllable exit ;; i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*) echo i386-unknown-lynxos${UNAME_RELEASE} exit ;; i*86:*DOS:*:*) echo ${UNAME_MACHINE}-pc-msdosdjgpp exit ;; i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*) UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL} else echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} fi exit ;; i*86:*:5:[678]*) # UnixWare 7.x, OpenUNIX and OpenServer 6. case `/bin/uname -X | grep "^Machine"` in *486*) UNAME_MACHINE=i486 ;; *Pentium) UNAME_MACHINE=i586 ;; *Pent*|*Celeron) UNAME_MACHINE=i686 ;; esac echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} exit ;; i*86:*:3.2:*) if test -f /usr/options/cb.name; then UNAME_REL=`sed -n 's/.*Version //p' /dev/null >/dev/null ; then UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')` (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \ && UNAME_MACHINE=i586 (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \ && UNAME_MACHINE=i686 (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ && UNAME_MACHINE=i686 echo ${UNAME_MACHINE}-pc-sco$UNAME_REL else echo ${UNAME_MACHINE}-pc-sysv32 fi exit ;; pc:*:*:*) # Left here for compatibility: # uname -m prints for DJGPP always 'pc', but it prints nothing about # the processor, so we play safe by assuming i586. # Note: whatever this is, it MUST be the same as what config.sub # prints for the "djgpp" host, or else GDB configury will decide that # this is a cross-build. echo i586-pc-msdosdjgpp exit ;; Intel:Mach:3*:*) echo i386-pc-mach3 exit ;; paragon:*:*:*) echo i860-intel-osf1 exit ;; i860:*:4.*:*) # i860-SVR4 if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 else # Add other i860-SVR4 vendors below as they are discovered. echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4 fi exit ;; mini*:CTIX:SYS*5:*) # "miniframe" echo m68010-convergent-sysv exit ;; mc68k:UNIX:SYSTEM5:3.51m) echo m68k-convergent-sysv exit ;; M680?0:D-NIX:5.3:*) echo m68k-diab-dnix exit ;; M68*:*:R3V[5678]*:*) test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;; 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0) OS_REL='' test -r /etc/.relid \ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4.3${OS_REL}; exit; } /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4; exit; } ;; NCR*:*:4.2:* | MPRAS*:*:4.2:*) OS_REL='.3' test -r /etc/.relid \ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4.3${OS_REL}; exit; } /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) echo m68k-unknown-lynxos${UNAME_RELEASE} exit ;; mc68030:UNIX_System_V:4.*:*) echo m68k-atari-sysv4 exit ;; TSUNAMI:LynxOS:2.*:*) echo sparc-unknown-lynxos${UNAME_RELEASE} exit ;; rs6000:LynxOS:2.*:*) echo rs6000-unknown-lynxos${UNAME_RELEASE} exit ;; PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*) echo powerpc-unknown-lynxos${UNAME_RELEASE} exit ;; SM[BE]S:UNIX_SV:*:*) echo mips-dde-sysv${UNAME_RELEASE} exit ;; RM*:ReliantUNIX-*:*:*) echo mips-sni-sysv4 exit ;; RM*:SINIX-*:*:*) echo mips-sni-sysv4 exit ;; *:SINIX-*:*:*) if uname -p 2>/dev/null >/dev/null ; then UNAME_MACHINE=`(uname -p) 2>/dev/null` echo ${UNAME_MACHINE}-sni-sysv4 else echo ns32k-sni-sysv fi exit ;; PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort # says echo i586-unisys-sysv4 exit ;; *:UNIX_System_V:4*:FTX*) # From Gerald Hewes . # How about differentiating between stratus architectures? -djm echo hppa1.1-stratus-sysv4 exit ;; *:*:*:FTX*) # From seanf@swdc.stratus.com. echo i860-stratus-sysv4 exit ;; i*86:VOS:*:*) # From Paul.Green@stratus.com. echo ${UNAME_MACHINE}-stratus-vos exit ;; *:VOS:*:*) # From Paul.Green@stratus.com. echo hppa1.1-stratus-vos exit ;; mc68*:A/UX:*:*) echo m68k-apple-aux${UNAME_RELEASE} exit ;; news*:NEWS-OS:6*:*) echo mips-sony-newsos6 exit ;; R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) if [ -d /usr/nec ]; then echo mips-nec-sysv${UNAME_RELEASE} else echo mips-unknown-sysv${UNAME_RELEASE} fi exit ;; BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. echo powerpc-be-beos exit ;; BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. echo powerpc-apple-beos exit ;; BePC:BeOS:*:*) # BeOS running on Intel PC compatible. echo i586-pc-beos exit ;; BePC:Haiku:*:*) # Haiku running on Intel PC compatible. echo i586-pc-haiku exit ;; x86_64:Haiku:*:*) echo x86_64-unknown-haiku exit ;; SX-4:SUPER-UX:*:*) echo sx4-nec-superux${UNAME_RELEASE} exit ;; SX-5:SUPER-UX:*:*) echo sx5-nec-superux${UNAME_RELEASE} exit ;; SX-6:SUPER-UX:*:*) echo sx6-nec-superux${UNAME_RELEASE} exit ;; SX-7:SUPER-UX:*:*) echo sx7-nec-superux${UNAME_RELEASE} exit ;; SX-8:SUPER-UX:*:*) echo sx8-nec-superux${UNAME_RELEASE} exit ;; SX-8R:SUPER-UX:*:*) echo sx8r-nec-superux${UNAME_RELEASE} exit ;; Power*:Rhapsody:*:*) echo powerpc-apple-rhapsody${UNAME_RELEASE} exit ;; *:Rhapsody:*:*) echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} exit ;; *:Darwin:*:*) UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown eval $set_cc_for_build if test "$UNAME_PROCESSOR" = unknown ; then UNAME_PROCESSOR=powerpc fi if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ grep IS_64BIT_ARCH >/dev/null then case $UNAME_PROCESSOR in i386) UNAME_PROCESSOR=x86_64 ;; powerpc) UNAME_PROCESSOR=powerpc64 ;; esac fi fi echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} exit ;; *:procnto*:*:* | *:QNX:[0123456789]*:*) UNAME_PROCESSOR=`uname -p` if test "$UNAME_PROCESSOR" = "x86"; then UNAME_PROCESSOR=i386 UNAME_MACHINE=pc fi echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE} exit ;; *:QNX:*:4*) echo i386-pc-qnx exit ;; NEO-?:NONSTOP_KERNEL:*:*) echo neo-tandem-nsk${UNAME_RELEASE} exit ;; NSE-*:NONSTOP_KERNEL:*:*) echo nse-tandem-nsk${UNAME_RELEASE} exit ;; NSR-?:NONSTOP_KERNEL:*:*) echo nsr-tandem-nsk${UNAME_RELEASE} exit ;; *:NonStop-UX:*:*) echo mips-compaq-nonstopux exit ;; BS2000:POSIX*:*:*) echo bs2000-siemens-sysv exit ;; DS/*:UNIX_System_V:*:*) echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} exit ;; *:Plan9:*:*) # "uname -m" is not consistent, so use $cputype instead. 386 # is converted to i386 for consistency with other x86 # operating systems. if test "$cputype" = "386"; then UNAME_MACHINE=i386 else UNAME_MACHINE="$cputype" fi echo ${UNAME_MACHINE}-unknown-plan9 exit ;; *:TOPS-10:*:*) echo pdp10-unknown-tops10 exit ;; *:TENEX:*:*) echo pdp10-unknown-tenex exit ;; KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) echo pdp10-dec-tops20 exit ;; XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) echo pdp10-xkl-tops20 exit ;; *:TOPS-20:*:*) echo pdp10-unknown-tops20 exit ;; *:ITS:*:*) echo pdp10-unknown-its exit ;; SEI:*:*:SEIUX) echo mips-sei-seiux${UNAME_RELEASE} exit ;; *:DragonFly:*:*) echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` exit ;; *:*VMS:*:*) UNAME_MACHINE=`(uname -p) 2>/dev/null` case "${UNAME_MACHINE}" in A*) echo alpha-dec-vms ; exit ;; I*) echo ia64-dec-vms ; exit ;; V*) echo vax-dec-vms ; exit ;; esac ;; *:XENIX:*:SysV) echo i386-pc-xenix exit ;; i*86:skyos:*:*) echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//' exit ;; i*86:rdos:*:*) echo ${UNAME_MACHINE}-pc-rdos exit ;; i*86:AROS:*:*) echo ${UNAME_MACHINE}-pc-aros exit ;; x86_64:VMkernel:*:*) echo ${UNAME_MACHINE}-unknown-esx exit ;; esac eval $set_cc_for_build cat >$dummy.c < # include #endif main () { #if defined (sony) #if defined (MIPSEB) /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed, I don't know.... */ printf ("mips-sony-bsd\n"); exit (0); #else #include printf ("m68k-sony-newsos%s\n", #ifdef NEWSOS4 "4" #else "" #endif ); exit (0); #endif #endif #if defined (__arm) && defined (__acorn) && defined (__unix) printf ("arm-acorn-riscix\n"); exit (0); #endif #if defined (hp300) && !defined (hpux) printf ("m68k-hp-bsd\n"); exit (0); #endif #if defined (NeXT) #if !defined (__ARCHITECTURE__) #define __ARCHITECTURE__ "m68k" #endif int version; version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`; if (version < 4) printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version); else printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version); exit (0); #endif #if defined (MULTIMAX) || defined (n16) #if defined (UMAXV) printf ("ns32k-encore-sysv\n"); exit (0); #else #if defined (CMU) printf ("ns32k-encore-mach\n"); exit (0); #else printf ("ns32k-encore-bsd\n"); exit (0); #endif #endif #endif #if defined (__386BSD__) printf ("i386-pc-bsd\n"); exit (0); #endif #if defined (sequent) #if defined (i386) printf ("i386-sequent-dynix\n"); exit (0); #endif #if defined (ns32000) printf ("ns32k-sequent-dynix\n"); exit (0); #endif #endif #if defined (_SEQUENT_) struct utsname un; uname(&un); if (strncmp(un.version, "V2", 2) == 0) { printf ("i386-sequent-ptx2\n"); exit (0); } if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */ printf ("i386-sequent-ptx1\n"); exit (0); } printf ("i386-sequent-ptx\n"); exit (0); #endif #if defined (vax) # if !defined (ultrix) # include # if defined (BSD) # if BSD == 43 printf ("vax-dec-bsd4.3\n"); exit (0); # else # if BSD == 199006 printf ("vax-dec-bsd4.3reno\n"); exit (0); # else printf ("vax-dec-bsd\n"); exit (0); # endif # endif # else printf ("vax-dec-bsd\n"); exit (0); # endif # else printf ("vax-dec-ultrix\n"); exit (0); # endif #endif #if defined (alliant) && defined (i860) printf ("i860-alliant-bsd\n"); exit (0); #endif exit (1); } EOF $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` && { echo "$SYSTEM_NAME"; exit; } # Apollos put the system type in the environment. test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; } # Convex versions that predate uname can use getsysinfo(1) if [ -x /usr/convex/getsysinfo ] then case `getsysinfo -f cpu_type` in c1*) echo c1-convex-bsd exit ;; c2*) if getsysinfo -f scalar_acc then echo c32-convex-bsd else echo c2-convex-bsd fi exit ;; c34*) echo c34-convex-bsd exit ;; c38*) echo c38-convex-bsd exit ;; c4*) echo c4-convex-bsd exit ;; esac fi cat >&2 < in order to provide the needed information to handle your system. config.guess timestamp = $timestamp 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` /bin/uname -X = `(/bin/uname -X) 2>/dev/null` hostinfo = `(hostinfo) 2>/dev/null` /bin/universe = `(/bin/universe) 2>/dev/null` /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null` /bin/arch = `(/bin/arch) 2>/dev/null` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null` UNAME_MACHINE = ${UNAME_MACHINE} UNAME_RELEASE = ${UNAME_RELEASE} UNAME_SYSTEM = ${UNAME_SYSTEM} UNAME_VERSION = ${UNAME_VERSION} EOF exit 1 # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" # End: poedit-2.0.6/admin/ax_boost_base.m40000664000372000037200000002576713230131546014105 00000000000000# =========================================================================== # http://www.gnu.org/software/autoconf-archive/ax_boost_base.html # =========================================================================== # # SYNOPSIS # # AX_BOOST_BASE([MINIMUM-VERSION], [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) # # DESCRIPTION # # Test for the Boost C++ libraries of a particular version (or newer) # # If no path to the installed boost library is given the macro searchs # under /usr, /usr/local, /opt and /opt/local and evaluates the # $BOOST_ROOT environment variable. Further documentation is available at # . # # This macro calls: # # AC_SUBST(BOOST_CPPFLAGS) / AC_SUBST(BOOST_LDFLAGS) # # And sets: # # HAVE_BOOST # # LICENSE # # Copyright (c) 2008 Thomas Porschberg # Copyright (c) 2009 Peter Adolphs # # Copying and distribution of this file, with or without modification, are # permitted in any medium without royalty provided the copyright notice # and this notice are preserved. This file is offered as-is, without any # warranty. #serial 26 AC_DEFUN([AX_BOOST_BASE], [ AC_ARG_WITH([boost], [AS_HELP_STRING([--with-boost@<:@=ARG@:>@], [use Boost library from a standard location (ARG=yes), from the specified location (ARG=), or disable it (ARG=no) @<:@ARG=yes@:>@ ])], [ if test "$withval" = "no"; then want_boost="no" elif test "$withval" = "yes"; then want_boost="yes" ac_boost_path="" else want_boost="yes" ac_boost_path="$withval" fi ], [want_boost="yes"]) AC_ARG_WITH([boost-libdir], AS_HELP_STRING([--with-boost-libdir=LIB_DIR], [Force given directory for boost libraries. Note that this will override library path detection, so use this parameter only if default library detection fails and you know exactly where your boost libraries are located.]), [ if test -d "$withval" then ac_boost_lib_path="$withval" else AC_MSG_ERROR(--with-boost-libdir expected directory name) fi ], [ac_boost_lib_path=""] ) if test "x$want_boost" = "xyes"; then boost_lib_version_req=ifelse([$1], ,1.20.0,$1) boost_lib_version_req_shorten=`expr $boost_lib_version_req : '\([[0-9]]*\.[[0-9]]*\)'` boost_lib_version_req_major=`expr $boost_lib_version_req : '\([[0-9]]*\)'` boost_lib_version_req_minor=`expr $boost_lib_version_req : '[[0-9]]*\.\([[0-9]]*\)'` boost_lib_version_req_sub_minor=`expr $boost_lib_version_req : '[[0-9]]*\.[[0-9]]*\.\([[0-9]]*\)'` if test "x$boost_lib_version_req_sub_minor" = "x" ; then boost_lib_version_req_sub_minor="0" fi WANT_BOOST_VERSION=`expr $boost_lib_version_req_major \* 100000 \+ $boost_lib_version_req_minor \* 100 \+ $boost_lib_version_req_sub_minor` AC_MSG_CHECKING(for boostlib >= $boost_lib_version_req) succeeded=no dnl On 64-bit systems check for system libraries in both lib64 and lib. dnl The former is specified by FHS, but e.g. Debian does not adhere to dnl this (as it rises problems for generic multi-arch support). dnl The last entry in the list is chosen by default when no libraries dnl are found, e.g. when only header-only libraries are installed! libsubdirs="lib" ax_arch=`uname -m` case $ax_arch in x86_64) libsubdirs="lib64 libx32 lib lib64" ;; ppc64|s390x|sparc64|aarch64|ppc64le) libsubdirs="lib64 lib lib64 ppc64le" ;; esac dnl allow for real multi-arch paths e.g. /usr/lib/x86_64-linux-gnu. Give dnl them priority over the other paths since, if libs are found there, they dnl are almost assuredly the ones desired. AC_REQUIRE([AC_CANONICAL_HOST]) libsubdirs="lib/${host_cpu}-${host_os} $libsubdirs" case ${host_cpu} in i?86) libsubdirs="lib/i386-${host_os} $libsubdirs" ;; esac dnl first we check the system location for boost libraries dnl this location ist chosen if boost libraries are installed with the --layout=system option dnl or if you install boost with RPM if test "$ac_boost_path" != ""; then BOOST_CPPFLAGS="-I$ac_boost_path/include" for ac_boost_path_tmp in $libsubdirs; do if test -d "$ac_boost_path"/"$ac_boost_path_tmp" ; then BOOST_LDFLAGS="-L$ac_boost_path/$ac_boost_path_tmp" break fi done elif test "$cross_compiling" != yes; then for ac_boost_path_tmp in /usr /usr/local /opt /opt/local ; do if test -d "$ac_boost_path_tmp/include/boost" && test -r "$ac_boost_path_tmp/include/boost"; then for libsubdir in $libsubdirs ; do if ls "$ac_boost_path_tmp/$libsubdir/libboost_"* >/dev/null 2>&1 ; then break; fi done BOOST_LDFLAGS="-L$ac_boost_path_tmp/$libsubdir" BOOST_CPPFLAGS="-I$ac_boost_path_tmp/include" break; fi done fi dnl overwrite ld flags if we have required special directory with dnl --with-boost-libdir parameter if test "$ac_boost_lib_path" != ""; then BOOST_LDFLAGS="-L$ac_boost_lib_path" fi CPPFLAGS_SAVED="$CPPFLAGS" CPPFLAGS="$CPPFLAGS $BOOST_CPPFLAGS" export CPPFLAGS LDFLAGS_SAVED="$LDFLAGS" LDFLAGS="$LDFLAGS $BOOST_LDFLAGS" export LDFLAGS AC_REQUIRE([AC_PROG_CXX]) AC_LANG_PUSH(C++) AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ @%:@include ]], [[ #if BOOST_VERSION >= $WANT_BOOST_VERSION // Everything is okay #else # error Boost version is too old #endif ]])],[ AC_MSG_RESULT(yes) succeeded=yes found_system=yes ],[ ]) AC_LANG_POP([C++]) dnl if we found no boost with system layout we search for boost libraries dnl built and installed without the --layout=system option or for a staged(not installed) version if test "x$succeeded" != "xyes"; then CPPFLAGS="$CPPFLAGS_SAVED" LDFLAGS="$LDFLAGS_SAVED" BOOST_CPPFLAGS= BOOST_LDFLAGS= _version=0 if test "$ac_boost_path" != ""; then if test -d "$ac_boost_path" && test -r "$ac_boost_path"; then for i in `ls -d $ac_boost_path/include/boost-* 2>/dev/null`; do _version_tmp=`echo $i | sed "s#$ac_boost_path##" | sed 's/\/include\/boost-//' | sed 's/_/./'` V_CHECK=`expr $_version_tmp \> $_version` if test "$V_CHECK" = "1" ; then _version=$_version_tmp fi VERSION_UNDERSCORE=`echo $_version | sed 's/\./_/'` BOOST_CPPFLAGS="-I$ac_boost_path/include/boost-$VERSION_UNDERSCORE" done dnl if nothing found search for layout used in Windows distributions if test -z "$BOOST_CPPFLAGS"; then if test -d "$ac_boost_path/boost" && test -r "$ac_boost_path/boost"; then BOOST_CPPFLAGS="-I$ac_boost_path" fi fi fi else if test "$cross_compiling" != yes; then for ac_boost_path in /usr /usr/local /opt /opt/local ; do if test -d "$ac_boost_path" && test -r "$ac_boost_path"; then for i in `ls -d $ac_boost_path/include/boost-* 2>/dev/null`; do _version_tmp=`echo $i | sed "s#$ac_boost_path##" | sed 's/\/include\/boost-//' | sed 's/_/./'` V_CHECK=`expr $_version_tmp \> $_version` if test "$V_CHECK" = "1" ; then _version=$_version_tmp best_path=$ac_boost_path fi done fi done VERSION_UNDERSCORE=`echo $_version | sed 's/\./_/'` BOOST_CPPFLAGS="-I$best_path/include/boost-$VERSION_UNDERSCORE" if test "$ac_boost_lib_path" = ""; then for libsubdir in $libsubdirs ; do if ls "$best_path/$libsubdir/libboost_"* >/dev/null 2>&1 ; then break; fi done BOOST_LDFLAGS="-L$best_path/$libsubdir" fi fi if test "x$BOOST_ROOT" != "x"; then for libsubdir in $libsubdirs ; do if ls "$BOOST_ROOT/stage/$libsubdir/libboost_"* >/dev/null 2>&1 ; then break; fi done if test -d "$BOOST_ROOT" && test -r "$BOOST_ROOT" && test -d "$BOOST_ROOT/stage/$libsubdir" && test -r "$BOOST_ROOT/stage/$libsubdir"; then version_dir=`expr //$BOOST_ROOT : '.*/\(.*\)'` stage_version=`echo $version_dir | sed 's/boost_//' | sed 's/_/./g'` stage_version_shorten=`expr $stage_version : '\([[0-9]]*\.[[0-9]]*\)'` V_CHECK=`expr $stage_version_shorten \>\= $_version` if test "$V_CHECK" = "1" -a "$ac_boost_lib_path" = "" ; then AC_MSG_NOTICE(We will use a staged boost library from $BOOST_ROOT) BOOST_CPPFLAGS="-I$BOOST_ROOT" BOOST_LDFLAGS="-L$BOOST_ROOT/stage/$libsubdir" fi fi fi fi CPPFLAGS="$CPPFLAGS $BOOST_CPPFLAGS" export CPPFLAGS LDFLAGS="$LDFLAGS $BOOST_LDFLAGS" export LDFLAGS AC_LANG_PUSH(C++) AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ @%:@include ]], [[ #if BOOST_VERSION >= $WANT_BOOST_VERSION // Everything is okay #else # error Boost version is too old #endif ]])],[ AC_MSG_RESULT(yes) succeeded=yes found_system=yes ],[ ]) AC_LANG_POP([C++]) fi if test "$succeeded" != "yes" ; then if test "$_version" = "0" ; then AC_MSG_NOTICE([[We could not detect the boost libraries (version $boost_lib_version_req_shorten or higher). If you have a staged boost library (still not installed) please specify \$BOOST_ROOT in your environment and do not give a PATH to --with-boost option. If you are sure you have boost installed, then check your version number looking in . See http://randspringer.de/boost for more documentation.]]) else AC_MSG_NOTICE([Your boost libraries seems to old (version $_version).]) fi # execute ACTION-IF-NOT-FOUND (if present): ifelse([$3], , :, [$3]) else AC_SUBST(BOOST_CPPFLAGS) AC_SUBST(BOOST_LDFLAGS) AC_DEFINE(HAVE_BOOST,,[define if the Boost library is available]) # execute ACTION-IF-FOUND (if present): ifelse([$2], , :, [$2]) fi CPPFLAGS="$CPPFLAGS_SAVED" LDFLAGS="$LDFLAGS_SAVED" fi ]) poedit-2.0.6/admin/ax_boost_thread.m40000664000372000037200000001177513230131546014434 00000000000000# =========================================================================== # http://www.gnu.org/software/autoconf-archive/ax_boost_thread.html # =========================================================================== # # SYNOPSIS # # AX_BOOST_THREAD # # DESCRIPTION # # Test for Thread library from the Boost C++ libraries. The macro requires # a preceding call to AX_BOOST_BASE. Further documentation is available at # . # # This macro calls: # # AC_SUBST(BOOST_THREAD_LIB) # # And sets: # # HAVE_BOOST_THREAD # # LICENSE # # Copyright (c) 2009 Thomas Porschberg # Copyright (c) 2009 Michael Tindal # # Copying and distribution of this file, with or without modification, are # permitted in any medium without royalty provided the copyright notice # and this notice are preserved. This file is offered as-is, without any # warranty. #serial 27 AC_DEFUN([AX_BOOST_THREAD], [ AC_ARG_WITH([boost-thread], AS_HELP_STRING([--with-boost-thread@<:@=special-lib@:>@], [use the Thread library from boost - it is possible to specify a certain library for the linker e.g. --with-boost-thread=boost_thread-gcc-mt ]), [ if test "$withval" = "no"; then want_boost="no" elif test "$withval" = "yes"; then want_boost="yes" ax_boost_user_thread_lib="" else want_boost="yes" ax_boost_user_thread_lib="$withval" fi ], [want_boost="yes"] ) if test "x$want_boost" = "xyes"; then AC_REQUIRE([AC_PROG_CC]) AC_REQUIRE([AC_CANONICAL_BUILD]) CPPFLAGS_SAVED="$CPPFLAGS" CPPFLAGS="$CPPFLAGS $BOOST_CPPFLAGS" export CPPFLAGS LDFLAGS_SAVED="$LDFLAGS" LDFLAGS="$LDFLAGS $BOOST_LDFLAGS" export LDFLAGS AC_CACHE_CHECK(whether the Boost::Thread library is available, ax_cv_boost_thread, [AC_LANG_PUSH([C++]) CXXFLAGS_SAVE=$CXXFLAGS if test "x$host_os" = "xsolaris" ; then CXXFLAGS="-pthreads $CXXFLAGS" elif test "x$host_os" = "xmingw32" ; then CXXFLAGS="-mthreads $CXXFLAGS" else CXXFLAGS="-pthread $CXXFLAGS" fi AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[@%:@include ]], [[boost::thread_group thrds; return 0;]])], ax_cv_boost_thread=yes, ax_cv_boost_thread=no) CXXFLAGS=$CXXFLAGS_SAVE AC_LANG_POP([C++]) ]) if test "x$ax_cv_boost_thread" = "xyes"; then if test "x$host_os" = "xsolaris" ; then BOOST_CPPFLAGS="-pthreads $BOOST_CPPFLAGS" elif test "x$host_os" = "xmingw32" ; then BOOST_CPPFLAGS="-mthreads $BOOST_CPPFLAGS" else BOOST_CPPFLAGS="-pthread $BOOST_CPPFLAGS" fi AC_SUBST(BOOST_CPPFLAGS) AC_DEFINE(HAVE_BOOST_THREAD,,[define if the Boost::Thread library is available]) BOOSTLIBDIR=`echo $BOOST_LDFLAGS | sed -e 's/@<:@^\/@:>@*//'` LDFLAGS_SAVE=$LDFLAGS case "x$host_os" in *bsd* ) LDFLAGS="-pthread $LDFLAGS" break; ;; esac if test "x$ax_boost_user_thread_lib" = "x"; then for libextension in `ls -r $BOOSTLIBDIR/libboost_thread* 2>/dev/null | sed 's,.*/lib,,' | sed 's,\..*,,'`; do ax_lib=${libextension} AC_CHECK_LIB($ax_lib, exit, [BOOST_THREAD_LIB="-l$ax_lib"; AC_SUBST(BOOST_THREAD_LIB) link_thread="yes"; break], [link_thread="no"]) done if test "x$link_thread" != "xyes"; then for libextension in `ls -r $BOOSTLIBDIR/boost_thread* 2>/dev/null | sed 's,.*/,,' | sed 's,\..*,,'`; do ax_lib=${libextension} AC_CHECK_LIB($ax_lib, exit, [BOOST_THREAD_LIB="-l$ax_lib"; AC_SUBST(BOOST_THREAD_LIB) link_thread="yes"; break], [link_thread="no"]) done fi else for ax_lib in $ax_boost_user_thread_lib boost_thread-$ax_boost_user_thread_lib; do AC_CHECK_LIB($ax_lib, exit, [BOOST_THREAD_LIB="-l$ax_lib"; AC_SUBST(BOOST_THREAD_LIB) link_thread="yes"; break], [link_thread="no"]) done fi if test "x$ax_lib" = "x"; then AC_MSG_ERROR(Could not find a version of the library!) fi if test "x$link_thread" = "xno"; then AC_MSG_ERROR(Could not link against $ax_lib !) else case "x$host_os" in *bsd* ) BOOST_LDFLAGS="-pthread $BOOST_LDFLAGS" break; ;; esac fi fi CPPFLAGS="$CPPFLAGS_SAVED" LDFLAGS="$LDFLAGS_SAVED" fi ]) poedit-2.0.6/admin/config.sub0000755000372000037200000010535413230132040012771 00000000000000#! /bin/sh # Configuration validation subroutine script. # Copyright 1992-2013 Free Software Foundation, Inc. timestamp='2013-08-10' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, see . # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that # program. This Exception is an additional permission under section 7 # of the GNU General Public License, version 3 ("GPLv3"). # Please send patches with a ChangeLog entry to config-patches@gnu.org. # # Configuration subroutine to validate and canonicalize a configuration type. # Supply the specified configuration type as an argument. # If it is invalid, we print an error message on stderr and exit with code 1. # Otherwise, we print the canonical config type on stdout and succeed. # You can get the latest version of this script from: # http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD # This file is supposed to be the same for all GNU packages # and recognize all the CPU types, system types and aliases # that are meaningful with *any* GNU software. # Each package is responsible for reporting which valid configurations # it does not support. The user should be able to distinguish # a failure to support a valid configuration from a meaningless # configuration. # The goal of this file is to map all the various variations of a given # machine specification into a single specification in the form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM # or in some cases, the newer four-part form: # CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM # It is wrong to echo any other type of specification. me=`echo "$0" | sed -e 's,.*/,,'` usage="\ Usage: $0 [OPTION] CPU-MFR-OPSYS $0 [OPTION] ALIAS Canonicalize a configuration name. Operation modes: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit Report bugs and patches to ." version="\ GNU config.sub ($timestamp) Copyright 1992-2013 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." help=" Try \`$me --help' for more information." # Parse command line while test $# -gt 0 ; do case $1 in --time-stamp | --time* | -t ) echo "$timestamp" ; exit ;; --version | -v ) echo "$version" ; exit ;; --help | --h* | -h ) echo "$usage"; exit ;; -- ) # Stop option processing shift; break ;; - ) # Use stdin as input. break ;; -* ) echo "$me: invalid option $1$help" exit 1 ;; *local*) # First pass through any local machine types. echo $1 exit ;; * ) break ;; esac done case $# in 0) echo "$me: missing argument$help" >&2 exit 1;; 1) ;; *) echo "$me: too many arguments$help" >&2 exit 1;; esac # Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). # Here we must recognize all the valid KERNEL-OS combinations. maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` case $maybe_os in nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \ linux-musl* | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \ knetbsd*-gnu* | netbsd*-gnu* | \ kopensolaris*-gnu* | \ storm-chaos* | os2-emx* | rtmk-nova*) os=-$maybe_os basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` ;; android-linux) os=-linux-android basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-unknown ;; *) basic_machine=`echo $1 | sed 's/-[^-]*$//'` if [ $basic_machine != $1 ] then os=`echo $1 | sed 's/.*-/-/'` else os=; fi ;; esac ### Let's recognize common machines as not being operating systems so ### that things like config.sub decstation-3100 work. We also ### recognize some manufacturers as not being operating systems, so we ### can provide default operating systems below. case $os in -sun*os*) # Prevent following clause from handling this invalid input. ;; -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \ -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \ -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \ -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ -apple | -axis | -knuth | -cray | -microblaze*) os= basic_machine=$1 ;; -bluegene*) os=-cnk ;; -sim | -cisco | -oki | -wec | -winbond) os= basic_machine=$1 ;; -scout) ;; -wrs) os=-vxworks basic_machine=$1 ;; -chorusos*) os=-chorusos basic_machine=$1 ;; -chorusrdb) os=-chorusrdb basic_machine=$1 ;; -hiux*) os=-hiuxwe2 ;; -sco6) os=-sco5v6 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco5) os=-sco3.2v5 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco4) os=-sco3.2v4 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco3.2.[4-9]*) os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco3.2v[4-9]*) # Don't forget version if it is 3.2v4 or newer. basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco5v6*) # Don't forget version if it is 3.2v4 or newer. basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco*) os=-sco3.2v2 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -udk*) basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -isc) os=-isc2.2 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -clix*) basic_machine=clipper-intergraph ;; -isc*) basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -lynx*178) os=-lynxos178 ;; -lynx*5) os=-lynxos5 ;; -lynx*) os=-lynxos ;; -ptx*) basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'` ;; -windowsnt*) os=`echo $os | sed -e 's/windowsnt/winnt/'` ;; -psos*) os=-psos ;; -mint | -mint[0-9]*) basic_machine=m68k-atari os=-mint ;; esac # Decode aliases for certain CPU-COMPANY combinations. case $basic_machine in # Recognize the basic CPU types without company name. # Some are omitted here because they have special meanings below. 1750a | 580 \ | a29k \ | aarch64 | aarch64_be \ | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ | am33_2.0 \ | arc | arceb \ | arm | arm[bl]e | arme[lb] | armv[2-8] | armv[3-8][lb] | armv7[arm] \ | avr | avr32 \ | be32 | be64 \ | bfin \ | c4x | c8051 | clipper \ | d10v | d30v | dlx | dsp16xx \ | epiphany \ | fido | fr30 | frv \ | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ | hexagon \ | i370 | i860 | i960 | ia64 \ | ip2k | iq2000 \ | le32 | le64 \ | lm32 \ | m32c | m32r | m32rle | m68000 | m68k | m88k \ | maxq | mb | microblaze | microblazeel | mcore | mep | metag \ | mips | mipsbe | mipseb | mipsel | mipsle \ | mips16 \ | mips64 | mips64el \ | mips64octeon | mips64octeonel \ | mips64orion | mips64orionel \ | mips64r5900 | mips64r5900el \ | mips64vr | mips64vrel \ | mips64vr4100 | mips64vr4100el \ | mips64vr4300 | mips64vr4300el \ | mips64vr5000 | mips64vr5000el \ | mips64vr5900 | mips64vr5900el \ | mipsisa32 | mipsisa32el \ | mipsisa32r2 | mipsisa32r2el \ | mipsisa64 | mipsisa64el \ | mipsisa64r2 | mipsisa64r2el \ | mipsisa64sb1 | mipsisa64sb1el \ | mipsisa64sr71k | mipsisa64sr71kel \ | mipsr5900 | mipsr5900el \ | mipstx39 | mipstx39el \ | mn10200 | mn10300 \ | moxie \ | mt \ | msp430 \ | nds32 | nds32le | nds32be \ | nios | nios2 | nios2eb | nios2el \ | ns16k | ns32k \ | open8 \ | or1k | or32 \ | pdp10 | pdp11 | pj | pjl \ | powerpc | powerpc64 | powerpc64le | powerpcle \ | pyramid \ | rl78 | rx \ | score \ | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ | sh64 | sh64le \ | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ | spu \ | tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \ | ubicom32 \ | v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \ | we32k \ | x86 | xc16x | xstormy16 | xtensa \ | z8k | z80) basic_machine=$basic_machine-unknown ;; c54x) basic_machine=tic54x-unknown ;; c55x) basic_machine=tic55x-unknown ;; c6x) basic_machine=tic6x-unknown ;; m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | picochip) basic_machine=$basic_machine-unknown os=-none ;; m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) ;; ms1) basic_machine=mt-unknown ;; strongarm | thumb | xscale) basic_machine=arm-unknown ;; xgate) basic_machine=$basic_machine-unknown os=-none ;; xscaleeb) basic_machine=armeb-unknown ;; xscaleel) basic_machine=armel-unknown ;; # We use `pc' rather than `unknown' # because (1) that's what they normally are, and # (2) the word "unknown" tends to confuse beginning users. i*86 | x86_64) basic_machine=$basic_machine-pc ;; # Object if more than one company name word. *-*-*) echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 exit 1 ;; # Recognize the basic CPU types with company name. 580-* \ | a29k-* \ | aarch64-* | aarch64_be-* \ | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ | alphapca5[67]-* | alpha64pca5[67]-* | arc-* | arceb-* \ | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ | avr-* | avr32-* \ | be32-* | be64-* \ | bfin-* | bs2000-* \ | c[123]* | c30-* | [cjt]90-* | c4x-* \ | c8051-* | clipper-* | craynv-* | cydra-* \ | d10v-* | d30v-* | dlx-* \ | elxsi-* \ | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ | h8300-* | h8500-* \ | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ | hexagon-* \ | i*86-* | i860-* | i960-* | ia64-* \ | ip2k-* | iq2000-* \ | le32-* | le64-* \ | lm32-* \ | m32c-* | m32r-* | m32rle-* \ | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ | m88110-* | m88k-* | maxq-* | mcore-* | metag-* \ | microblaze-* | microblazeel-* \ | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ | mips16-* \ | mips64-* | mips64el-* \ | mips64octeon-* | mips64octeonel-* \ | mips64orion-* | mips64orionel-* \ | mips64r5900-* | mips64r5900el-* \ | mips64vr-* | mips64vrel-* \ | mips64vr4100-* | mips64vr4100el-* \ | mips64vr4300-* | mips64vr4300el-* \ | mips64vr5000-* | mips64vr5000el-* \ | mips64vr5900-* | mips64vr5900el-* \ | mipsisa32-* | mipsisa32el-* \ | mipsisa32r2-* | mipsisa32r2el-* \ | mipsisa64-* | mipsisa64el-* \ | mipsisa64r2-* | mipsisa64r2el-* \ | mipsisa64sb1-* | mipsisa64sb1el-* \ | mipsisa64sr71k-* | mipsisa64sr71kel-* \ | mipsr5900-* | mipsr5900el-* \ | mipstx39-* | mipstx39el-* \ | mmix-* \ | mt-* \ | msp430-* \ | nds32-* | nds32le-* | nds32be-* \ | nios-* | nios2-* | nios2eb-* | nios2el-* \ | none-* | np1-* | ns16k-* | ns32k-* \ | open8-* \ | orion-* \ | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \ | pyramid-* \ | rl78-* | romp-* | rs6000-* | rx-* \ | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ | sparclite-* \ | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx?-* \ | tahoe-* \ | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ | tile*-* \ | tron-* \ | ubicom32-* \ | v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \ | vax-* \ | we32k-* \ | x86-* | x86_64-* | xc16x-* | xps100-* \ | xstormy16-* | xtensa*-* \ | ymp-* \ | z8k-* | z80-*) ;; # Recognize the basic CPU types without company name, with glob match. xtensa*) basic_machine=$basic_machine-unknown ;; # Recognize the various machine names and aliases which stand # for a CPU type and a company and sometimes even an OS. 386bsd) basic_machine=i386-unknown os=-bsd ;; 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) basic_machine=m68000-att ;; 3b*) basic_machine=we32k-att ;; a29khif) basic_machine=a29k-amd os=-udi ;; abacus) basic_machine=abacus-unknown ;; adobe68k) basic_machine=m68010-adobe os=-scout ;; alliant | fx80) basic_machine=fx80-alliant ;; altos | altos3068) basic_machine=m68k-altos ;; am29k) basic_machine=a29k-none os=-bsd ;; amd64) basic_machine=x86_64-pc ;; amd64-*) basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'` ;; amdahl) basic_machine=580-amdahl os=-sysv ;; amiga | amiga-*) basic_machine=m68k-unknown ;; amigaos | amigados) basic_machine=m68k-unknown os=-amigaos ;; amigaunix | amix) basic_machine=m68k-unknown os=-sysv4 ;; apollo68) basic_machine=m68k-apollo os=-sysv ;; apollo68bsd) basic_machine=m68k-apollo os=-bsd ;; aros) basic_machine=i386-pc os=-aros ;; aux) basic_machine=m68k-apple os=-aux ;; balance) basic_machine=ns32k-sequent os=-dynix ;; blackfin) basic_machine=bfin-unknown os=-linux ;; blackfin-*) basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'` os=-linux ;; bluegene*) basic_machine=powerpc-ibm os=-cnk ;; c54x-*) basic_machine=tic54x-`echo $basic_machine | sed 's/^[^-]*-//'` ;; c55x-*) basic_machine=tic55x-`echo $basic_machine | sed 's/^[^-]*-//'` ;; c6x-*) basic_machine=tic6x-`echo $basic_machine | sed 's/^[^-]*-//'` ;; c90) basic_machine=c90-cray os=-unicos ;; cegcc) basic_machine=arm-unknown os=-cegcc ;; convex-c1) basic_machine=c1-convex os=-bsd ;; convex-c2) basic_machine=c2-convex os=-bsd ;; convex-c32) basic_machine=c32-convex os=-bsd ;; convex-c34) basic_machine=c34-convex os=-bsd ;; convex-c38) basic_machine=c38-convex os=-bsd ;; cray | j90) basic_machine=j90-cray os=-unicos ;; craynv) basic_machine=craynv-cray os=-unicosmp ;; cr16 | cr16-*) basic_machine=cr16-unknown os=-elf ;; crds | unos) basic_machine=m68k-crds ;; crisv32 | crisv32-* | etraxfs*) basic_machine=crisv32-axis ;; cris | cris-* | etrax*) basic_machine=cris-axis ;; crx) basic_machine=crx-unknown os=-elf ;; da30 | da30-*) basic_machine=m68k-da30 ;; decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) basic_machine=mips-dec ;; decsystem10* | dec10*) basic_machine=pdp10-dec os=-tops10 ;; decsystem20* | dec20*) basic_machine=pdp10-dec os=-tops20 ;; delta | 3300 | motorola-3300 | motorola-delta \ | 3300-motorola | delta-motorola) basic_machine=m68k-motorola ;; delta88) basic_machine=m88k-motorola os=-sysv3 ;; dicos) basic_machine=i686-pc os=-dicos ;; djgpp) basic_machine=i586-pc os=-msdosdjgpp ;; dpx20 | dpx20-*) basic_machine=rs6000-bull os=-bosx ;; dpx2* | dpx2*-bull) basic_machine=m68k-bull os=-sysv3 ;; ebmon29k) basic_machine=a29k-amd os=-ebmon ;; elxsi) basic_machine=elxsi-elxsi os=-bsd ;; encore | umax | mmax) basic_machine=ns32k-encore ;; es1800 | OSE68k | ose68k | ose | OSE) basic_machine=m68k-ericsson os=-ose ;; fx2800) basic_machine=i860-alliant ;; genix) basic_machine=ns32k-ns ;; gmicro) basic_machine=tron-gmicro os=-sysv ;; go32) basic_machine=i386-pc os=-go32 ;; h3050r* | hiux*) basic_machine=hppa1.1-hitachi os=-hiuxwe2 ;; h8300hms) basic_machine=h8300-hitachi os=-hms ;; h8300xray) basic_machine=h8300-hitachi os=-xray ;; h8500hms) basic_machine=h8500-hitachi os=-hms ;; harris) basic_machine=m88k-harris os=-sysv3 ;; hp300-*) basic_machine=m68k-hp ;; hp300bsd) basic_machine=m68k-hp os=-bsd ;; hp300hpux) basic_machine=m68k-hp os=-hpux ;; hp3k9[0-9][0-9] | hp9[0-9][0-9]) basic_machine=hppa1.0-hp ;; hp9k2[0-9][0-9] | hp9k31[0-9]) basic_machine=m68000-hp ;; hp9k3[2-9][0-9]) basic_machine=m68k-hp ;; hp9k6[0-9][0-9] | hp6[0-9][0-9]) basic_machine=hppa1.0-hp ;; hp9k7[0-79][0-9] | hp7[0-79][0-9]) basic_machine=hppa1.1-hp ;; hp9k78[0-9] | hp78[0-9]) # FIXME: really hppa2.0-hp basic_machine=hppa1.1-hp ;; hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) # FIXME: really hppa2.0-hp basic_machine=hppa1.1-hp ;; hp9k8[0-9][13679] | hp8[0-9][13679]) basic_machine=hppa1.1-hp ;; hp9k8[0-9][0-9] | hp8[0-9][0-9]) basic_machine=hppa1.0-hp ;; hppa-next) os=-nextstep3 ;; hppaosf) basic_machine=hppa1.1-hp os=-osf ;; hppro) basic_machine=hppa1.1-hp os=-proelf ;; i370-ibm* | ibm*) basic_machine=i370-ibm ;; i*86v32) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv32 ;; i*86v4*) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv4 ;; i*86v) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv ;; i*86sol2) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-solaris2 ;; i386mach) basic_machine=i386-mach os=-mach ;; i386-vsta | vsta) basic_machine=i386-unknown os=-vsta ;; iris | iris4d) basic_machine=mips-sgi case $os in -irix*) ;; *) os=-irix4 ;; esac ;; isi68 | isi) basic_machine=m68k-isi os=-sysv ;; m68knommu) basic_machine=m68k-unknown os=-linux ;; m68knommu-*) basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'` os=-linux ;; m88k-omron*) basic_machine=m88k-omron ;; magnum | m3230) basic_machine=mips-mips os=-sysv ;; merlin) basic_machine=ns32k-utek os=-sysv ;; microblaze*) basic_machine=microblaze-xilinx ;; mingw64) basic_machine=x86_64-pc os=-mingw64 ;; mingw32) basic_machine=i686-pc os=-mingw32 ;; mingw32ce) basic_machine=arm-unknown os=-mingw32ce ;; miniframe) basic_machine=m68000-convergent ;; *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*) basic_machine=m68k-atari os=-mint ;; mips3*-*) basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` ;; mips3*) basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown ;; monitor) basic_machine=m68k-rom68k os=-coff ;; morphos) basic_machine=powerpc-unknown os=-morphos ;; msdos) basic_machine=i386-pc os=-msdos ;; ms1-*) basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` ;; msys) basic_machine=i686-pc os=-msys ;; mvs) basic_machine=i370-ibm os=-mvs ;; nacl) basic_machine=le32-unknown os=-nacl ;; ncr3000) basic_machine=i486-ncr os=-sysv4 ;; netbsd386) basic_machine=i386-unknown os=-netbsd ;; netwinder) basic_machine=armv4l-rebel os=-linux ;; news | news700 | news800 | news900) basic_machine=m68k-sony os=-newsos ;; news1000) basic_machine=m68030-sony os=-newsos ;; news-3600 | risc-news) basic_machine=mips-sony os=-newsos ;; necv70) basic_machine=v70-nec os=-sysv ;; next | m*-next ) basic_machine=m68k-next case $os in -nextstep* ) ;; -ns2*) os=-nextstep2 ;; *) os=-nextstep3 ;; esac ;; nh3000) basic_machine=m68k-harris os=-cxux ;; nh[45]000) basic_machine=m88k-harris os=-cxux ;; nindy960) basic_machine=i960-intel os=-nindy ;; mon960) basic_machine=i960-intel os=-mon960 ;; nonstopux) basic_machine=mips-compaq os=-nonstopux ;; np1) basic_machine=np1-gould ;; neo-tandem) basic_machine=neo-tandem ;; nse-tandem) basic_machine=nse-tandem ;; nsr-tandem) basic_machine=nsr-tandem ;; op50n-* | op60c-*) basic_machine=hppa1.1-oki os=-proelf ;; openrisc | openrisc-*) basic_machine=or32-unknown ;; os400) basic_machine=powerpc-ibm os=-os400 ;; OSE68000 | ose68000) basic_machine=m68000-ericsson os=-ose ;; os68k) basic_machine=m68k-none os=-os68k ;; pa-hitachi) basic_machine=hppa1.1-hitachi os=-hiuxwe2 ;; paragon) basic_machine=i860-intel os=-osf ;; parisc) basic_machine=hppa-unknown os=-linux ;; parisc-*) basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'` os=-linux ;; pbd) basic_machine=sparc-tti ;; pbb) basic_machine=m68k-tti ;; pc532 | pc532-*) basic_machine=ns32k-pc532 ;; pc98) basic_machine=i386-pc ;; pc98-*) basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentium | p5 | k5 | k6 | nexgen | viac3) basic_machine=i586-pc ;; pentiumpro | p6 | 6x86 | athlon | athlon_*) basic_machine=i686-pc ;; pentiumii | pentium2 | pentiumiii | pentium3) basic_machine=i686-pc ;; pentium4) basic_machine=i786-pc ;; pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentiumpro-* | p6-* | 6x86-* | athlon-*) basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentium4-*) basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pn) basic_machine=pn-gould ;; power) basic_machine=power-ibm ;; ppc | ppcbe) basic_machine=powerpc-unknown ;; ppc-* | ppcbe-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppcle | powerpclittle | ppc-le | powerpc-little) basic_machine=powerpcle-unknown ;; ppcle-* | powerpclittle-*) basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppc64) basic_machine=powerpc64-unknown ;; ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppc64le | powerpc64little | ppc64-le | powerpc64-little) basic_machine=powerpc64le-unknown ;; ppc64le-* | powerpc64little-*) basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ps2) basic_machine=i386-ibm ;; pw32) basic_machine=i586-unknown os=-pw32 ;; rdos | rdos64) basic_machine=x86_64-pc os=-rdos ;; rdos32) basic_machine=i386-pc os=-rdos ;; rom68k) basic_machine=m68k-rom68k os=-coff ;; rm[46]00) basic_machine=mips-siemens ;; rtpc | rtpc-*) basic_machine=romp-ibm ;; s390 | s390-*) basic_machine=s390-ibm ;; s390x | s390x-*) basic_machine=s390x-ibm ;; sa29200) basic_machine=a29k-amd os=-udi ;; sb1) basic_machine=mipsisa64sb1-unknown ;; sb1el) basic_machine=mipsisa64sb1el-unknown ;; sde) basic_machine=mipsisa32-sde os=-elf ;; sei) basic_machine=mips-sei os=-seiux ;; sequent) basic_machine=i386-sequent ;; sh) basic_machine=sh-hitachi os=-hms ;; sh5el) basic_machine=sh5le-unknown ;; sh64) basic_machine=sh64-unknown ;; sparclite-wrs | simso-wrs) basic_machine=sparclite-wrs os=-vxworks ;; sps7) basic_machine=m68k-bull os=-sysv2 ;; spur) basic_machine=spur-unknown ;; st2000) basic_machine=m68k-tandem ;; stratus) basic_machine=i860-stratus os=-sysv4 ;; strongarm-* | thumb-*) basic_machine=arm-`echo $basic_machine | sed 's/^[^-]*-//'` ;; sun2) basic_machine=m68000-sun ;; sun2os3) basic_machine=m68000-sun os=-sunos3 ;; sun2os4) basic_machine=m68000-sun os=-sunos4 ;; sun3os3) basic_machine=m68k-sun os=-sunos3 ;; sun3os4) basic_machine=m68k-sun os=-sunos4 ;; sun4os3) basic_machine=sparc-sun os=-sunos3 ;; sun4os4) basic_machine=sparc-sun os=-sunos4 ;; sun4sol2) basic_machine=sparc-sun os=-solaris2 ;; sun3 | sun3-*) basic_machine=m68k-sun ;; sun4) basic_machine=sparc-sun ;; sun386 | sun386i | roadrunner) basic_machine=i386-sun ;; sv1) basic_machine=sv1-cray os=-unicos ;; symmetry) basic_machine=i386-sequent os=-dynix ;; t3e) basic_machine=alphaev5-cray os=-unicos ;; t90) basic_machine=t90-cray os=-unicos ;; tile*) basic_machine=$basic_machine-unknown os=-linux-gnu ;; tx39) basic_machine=mipstx39-unknown ;; tx39el) basic_machine=mipstx39el-unknown ;; toad1) basic_machine=pdp10-xkl os=-tops20 ;; tower | tower-32) basic_machine=m68k-ncr ;; tpf) basic_machine=s390x-ibm os=-tpf ;; udi29k) basic_machine=a29k-amd os=-udi ;; ultra3) basic_machine=a29k-nyu os=-sym1 ;; v810 | necv810) basic_machine=v810-nec os=-none ;; vaxv) basic_machine=vax-dec os=-sysv ;; vms) basic_machine=vax-dec os=-vms ;; vpp*|vx|vx-*) basic_machine=f301-fujitsu ;; vxworks960) basic_machine=i960-wrs os=-vxworks ;; vxworks68) basic_machine=m68k-wrs os=-vxworks ;; vxworks29k) basic_machine=a29k-wrs os=-vxworks ;; w65*) basic_machine=w65-wdc os=-none ;; w89k-*) basic_machine=hppa1.1-winbond os=-proelf ;; xbox) basic_machine=i686-pc os=-mingw32 ;; xps | xps100) basic_machine=xps100-honeywell ;; xscale-* | xscalee[bl]-*) basic_machine=`echo $basic_machine | sed 's/^xscale/arm/'` ;; ymp) basic_machine=ymp-cray os=-unicos ;; z8k-*-coff) basic_machine=z8k-unknown os=-sim ;; z80-*-coff) basic_machine=z80-unknown os=-sim ;; none) basic_machine=none-none os=-none ;; # Here we handle the default manufacturer of certain CPU types. It is in # some cases the only manufacturer, in others, it is the most popular. w89k) basic_machine=hppa1.1-winbond ;; op50n) basic_machine=hppa1.1-oki ;; op60c) basic_machine=hppa1.1-oki ;; romp) basic_machine=romp-ibm ;; mmix) basic_machine=mmix-knuth ;; rs6000) basic_machine=rs6000-ibm ;; vax) basic_machine=vax-dec ;; pdp10) # there are many clones, so DEC is not a safe bet basic_machine=pdp10-unknown ;; pdp11) basic_machine=pdp11-dec ;; we32k) basic_machine=we32k-att ;; sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele) basic_machine=sh-unknown ;; sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v) basic_machine=sparc-sun ;; cydra) basic_machine=cydra-cydrome ;; orion) basic_machine=orion-highlevel ;; orion105) basic_machine=clipper-highlevel ;; mac | mpw | mac-mpw) basic_machine=m68k-apple ;; pmac | pmac-mpw) basic_machine=powerpc-apple ;; *-unknown) # Make sure to match an already-canonicalized machine name. ;; *) echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 exit 1 ;; esac # Here we canonicalize certain aliases for manufacturers. case $basic_machine in *-digital*) basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'` ;; *-commodore*) basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'` ;; *) ;; esac # Decode manufacturer-specific aliases for certain operating systems. if [ x"$os" != x"" ] then case $os in # First match some system type aliases # that might get confused with valid system types. # -solaris* is a basic system type, with this one exception. -auroraux) os=-auroraux ;; -solaris1 | -solaris1.*) os=`echo $os | sed -e 's|solaris1|sunos4|'` ;; -solaris) os=-solaris2 ;; -svr4*) os=-sysv4 ;; -unixware*) os=-sysv4.2uw ;; -gnu/linux*) os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` ;; # First accept the basic system types. # The portable systems comes first. # Each alternative MUST END IN A *, to match a version number. # -sysv* is not here because it comes later, after sysvr4. -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\ | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \ | -sym* | -kopensolaris* | -plan9* \ | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ | -aos* | -aros* \ | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ | -bitrig* | -openbsd* | -solidbsd* \ | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ | -chorusos* | -chorusrdb* | -cegcc* \ | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \ | -linux-newlib* | -linux-musl* | -linux-uclibc* \ | -uxpv* | -beos* | -mpeix* | -udk* \ | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es*) # Remember, each alternative MUST END IN *, to match a version number. ;; -qnx*) case $basic_machine in x86-* | i*86-*) ;; *) os=-nto$os ;; esac ;; -nto-qnx*) ;; -nto*) os=`echo $os | sed -e 's|nto|nto-qnx|'` ;; -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \ | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) ;; -mac*) os=`echo $os | sed -e 's|mac|macos|'` ;; -linux-dietlibc) os=-linux-dietlibc ;; -linux*) os=`echo $os | sed -e 's|linux|linux-gnu|'` ;; -sunos5*) os=`echo $os | sed -e 's|sunos5|solaris2|'` ;; -sunos6*) os=`echo $os | sed -e 's|sunos6|solaris3|'` ;; -opened*) os=-openedition ;; -os400*) os=-os400 ;; -wince*) os=-wince ;; -osfrose*) os=-osfrose ;; -osf*) os=-osf ;; -utek*) os=-bsd ;; -dynix*) os=-bsd ;; -acis*) os=-aos ;; -atheos*) os=-atheos ;; -syllable*) os=-syllable ;; -386bsd) os=-bsd ;; -ctix* | -uts*) os=-sysv ;; -nova*) os=-rtmk-nova ;; -ns2 ) os=-nextstep2 ;; -nsk*) os=-nsk ;; # Preserve the version number of sinix5. -sinix5.*) os=`echo $os | sed -e 's|sinix|sysv|'` ;; -sinix*) os=-sysv4 ;; -tpf*) os=-tpf ;; -triton*) os=-sysv3 ;; -oss*) os=-sysv3 ;; -svr4) os=-sysv4 ;; -svr3) os=-sysv3 ;; -sysvr4) os=-sysv4 ;; # This must come after -sysvr4. -sysv*) ;; -ose*) os=-ose ;; -es1800*) os=-ose ;; -xenix) os=-xenix ;; -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) os=-mint ;; -aros*) os=-aros ;; -zvmoe) os=-zvmoe ;; -dicos*) os=-dicos ;; -nacl*) ;; -none) ;; *) # Get rid of the `-' at the beginning of $os. os=`echo $os | sed 's/[^-]*-//'` echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2 exit 1 ;; esac else # Here we handle the default operating systems that come with various machines. # The value should be what the vendor currently ships out the door with their # machine or put another way, the most popular os provided with the machine. # Note that if you're going to try to match "-MANUFACTURER" here (say, # "-sun"), then you have to tell the case statement up towards the top # that MANUFACTURER isn't an operating system. Otherwise, code above # will signal an error saying that MANUFACTURER isn't an operating # system, and we'll never get to this point. case $basic_machine in score-*) os=-elf ;; spu-*) os=-elf ;; *-acorn) os=-riscix1.2 ;; arm*-rebel) os=-linux ;; arm*-semi) os=-aout ;; c4x-* | tic4x-*) os=-coff ;; c8051-*) os=-elf ;; hexagon-*) os=-elf ;; tic54x-*) os=-coff ;; tic55x-*) os=-coff ;; tic6x-*) os=-coff ;; # This must come before the *-dec entry. pdp10-*) os=-tops20 ;; pdp11-*) os=-none ;; *-dec | vax-*) os=-ultrix4.2 ;; m68*-apollo) os=-domain ;; i386-sun) os=-sunos4.0.2 ;; m68000-sun) os=-sunos3 ;; m68*-cisco) os=-aout ;; mep-*) os=-elf ;; mips*-cisco) os=-elf ;; mips*-*) os=-elf ;; or1k-*) os=-elf ;; or32-*) os=-coff ;; *-tti) # must be before sparc entry or we get the wrong os. os=-sysv3 ;; sparc-* | *-sun) os=-sunos4.1.1 ;; *-be) os=-beos ;; *-haiku) os=-haiku ;; *-ibm) os=-aix ;; *-knuth) os=-mmixware ;; *-wec) os=-proelf ;; *-winbond) os=-proelf ;; *-oki) os=-proelf ;; *-hp) os=-hpux ;; *-hitachi) os=-hiux ;; i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) os=-sysv ;; *-cbm) os=-amigaos ;; *-dg) os=-dgux ;; *-dolphin) os=-sysv3 ;; m68k-ccur) os=-rtu ;; m88k-omron*) os=-luna ;; *-next ) os=-nextstep ;; *-sequent) os=-ptx ;; *-crds) os=-unos ;; *-ns) os=-genix ;; i370-*) os=-mvs ;; *-next) os=-nextstep3 ;; *-gould) os=-sysv ;; *-highlevel) os=-bsd ;; *-encore) os=-bsd ;; *-sgi) os=-irix ;; *-siemens) os=-sysv4 ;; *-masscomp) os=-rtu ;; f30[01]-fujitsu | f700-fujitsu) os=-uxpv ;; *-rom68k) os=-coff ;; *-*bug) os=-coff ;; *-apple) os=-macos ;; *-atari*) os=-mint ;; *) os=-none ;; esac fi # Here we handle the case where we know the os, and the CPU type, but not the # manufacturer. We pick the logical manufacturer. vendor=unknown case $basic_machine in *-unknown) case $os in -riscix*) vendor=acorn ;; -sunos*) vendor=sun ;; -cnk*|-aix*) vendor=ibm ;; -beos*) vendor=be ;; -hpux*) vendor=hp ;; -mpeix*) vendor=hp ;; -hiux*) vendor=hitachi ;; -unos*) vendor=crds ;; -dgux*) vendor=dg ;; -luna*) vendor=omron ;; -genix*) vendor=ns ;; -mvs* | -opened*) vendor=ibm ;; -os400*) vendor=ibm ;; -ptx*) vendor=sequent ;; -tpf*) vendor=ibm ;; -vxsim* | -vxworks* | -windiss*) vendor=wrs ;; -aux*) vendor=apple ;; -hms*) vendor=hitachi ;; -mpw* | -macos*) vendor=apple ;; -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) vendor=atari ;; -vos*) vendor=stratus ;; esac basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` ;; esac echo $basic_machine$os exit # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" # End: poedit-2.0.6/admin/install-sh0000755000372000037200000003325513230132040013012 00000000000000#!/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: poedit-2.0.6/bootstrap0000775000372000037200000000070313230131546011665 00000000000000#!/bin/sh set -e make_msgfmt() { for i in locales/*.po ; do msgfmt -c -o `echo $i | sed -e s/\.po/.mo/g` $i || exit 1 done } echo " - aclocal" && aclocal -I admin && \ echo " - automake" && automake --foreign -a -c -f && \ echo " - autoconf" && autoconf && \ \ echo " - generate-docs.make" && make -C docs -f generate-docs.make && \ \ echo " - msgfmt" && make_msgfmt && \ exit 0 echo "Automatic build files setup failed!" exit 1 poedit-2.0.6/AUTHORS0000664000372000037200000003501313230131546010774 00000000000000Maintainer: Vaclav Slavik The list of additional contributors below is outdated. To get accurate information, use git shortlog. For translations, see https://crowdin.com/project/poedit where individual translators are listed. --- historical contributors list: --- Patches: Olivier Sannier Stefan Kowski Christophe Hermier Frederic Giudicelli Tim Dijkstra Tim Kosse Sergio Talens-Oliag Guido Flohr Shane Harper David Fraser Vadim Berezniker Marcin Floryan Stanislav Petrakov Byrial Jensen Translations: Traditional Chinese: Leo Liaw Ying-Chieh Liao Jedi Xingyu Wang Jie Luo Cheng-Chia Tseng Simplified Chinese: 肖业平 Leo Liaw Han Guokai Luo Jie Wang Jian Guo Christopher Meng Alan Luo Croatian: Renato Pavicic Martin Bagić Czech: Vaclav Slavik Jindřich Šesták Dutch: Patrick Hubers Kristof Bal Pjotr Kan Thomas De Rocker Pjotr Vertaalt Estonian: Joosep-Georg Jarvemaa Marko Silluste Mattias Põldaru French: Lionel Allorge Guy Clotilde Nicolas Boos Jean-Michel Poure Jean-Christophe Gigogne Jonathan Ernst Maximilian Schleiss Daniel Thibault Philippe Villiers Alexandre Franke Jean Sanchez German: Bernd Böckmann Lübbe Onken Carsten Stupka René Linke Mark Ziegler Simon Stücher Patrik Kernstock Norwegian Nynorsk: Karl Ove Hufthammer Jon Stødle Eirik U. Birkeland Norwegian Bokmål: Hans Fr. Nordhaug Polish: Arkadiusz Lipiec Radoslaw Dlugosz Artur Marzec Mateusz Gola Leszek Życzkowski Turkish: Hakki Dogusan Roman Neumüller Kaya Zeren Burak Yavuz Latvian: Artis Trops Kristaps Kaupe Arvis Lācis Italian: Pino Toscano Mirko Tebaldi Renzo Campagna Giuseppe Pignataro Roberto Boriotti Vincenzo Reale Tamil: Prabu Anand Sri Ramadoss Mahalingam Bulgarian: Dimitar Boyn Pavel Constantinov Andrey Alexandrov Alexander Shopov Стоян Димитров Swedish: Simon Bohlin Stefan Pettersson Fredrik Wahlberg Andreas Pettersson Georgian: Aiet Kolkhi Romanian: Alexandru Bogdan Munteanu Ovidiu Constantin Sorin Sbarnea Manuel Ciosici Angelescu Catalan: Pau Bosch i Crespo David Planella Joan Coll i Teixidor Slovak: Pavol Cvengros Tibor Pittich Oto Brezina Ivan Masár Dušan Kazik Martin Kubanik Greek: Simos Xenitellis Velonis Petros Nikos Papadopoulos <231036448@freemail.gr> Japanese: Masapon Suzumizaki-Kimitaka Nobuhiro Iwamatsu Takeshi Hamasaki Naoko Takano Russian: Pavel Maryanov , Stanislav Petrakov Roman A. aka BasicXP Maxim Musatov Icelandic: Sveinn í Felli Spanish: Javier Bravo Alberto Fernández Pérez Lorenzo Luengo Sebastian Barrientos E. Festor Wailon Dacoba Sergi Medina Adolfo Jayme Barrientos Spanish (Puerto Rico): Fernando Ortiz Danish: Lars Dybdahl Anders Jenbo Byrial Jensen Jens Hyllegaard Serbian: Bojan Suzić Milorad Jovanović Ђорђе Васиљевић Portuguese: Lazarus Long Hugo Patrício Sérgio Marques Portuguese (Brazilian): Leonardo Peixoto Creso Moraes Cleber Tavano Jose Carlos Medeiros Igor Ruckert Hungarian: Szilard Vizi Márton Balázs Gábor Nagy Zoltán Faludi Horváth László Petrovics Sándor Lithuanian: Mantas Kriauciunas Liudas Dmitrijevas Kestutis Snieska Ramunas Lukasevicius Rokas Masiulis Gintautas Miliauskas Andrius Štikonas Algimantas Margevičius Farsi: Abbas Izad Hooman Mesgary Morteza Geransayeh Afrikaans: Petri Jooste Slovenian: Luka Marinko Martin Srebotnjak Matej Urbančič Mongolian: Mendbayar Bayar Khurelbaatar Lkhagvasuren Punjabi: Amanpreet Singh Alam Albanian: Besnik Bleta Amharic: Tegegne Tefera Hindi: Dhananjaya Sharma Priyank Bolia Esperanto: Tim Morley Cyril Castelbou Belarusian: Siarhei Belarusian (latin): Alaksandar Navicki Breton: Korvigellou an Drouizig Giulia Fraboulet Walloon: Pablo Saratxaga Bangla: Omi Azad Basque: 3ARRANO Euskalgintza Taldea <3arrano@euskalerria.org> Xabier Aramendi Korean: Hojin Choi Hebrew: Nir Lavi Shalom Craimer Yaron Shahrabani Kyrgyz: Ilyas Bakirov Chyngyz Dzhumaliev Ukrainian: Cawko Xakep Hriziv Roman Rax Garfield Asturian: Softastur Galician: Leandro Regueiro Indonesian: Bayu Artanto Andika Triwidada Friulian: Andrea Decorte Finnish: Elias Julkunen Heikki Suopanki Juhani Numminen Lauri Nurmi Kurdish: Erdal Ronahi Tatarish: Albert Fazli Macedonian: Jovan Kostovski Митко Крстев Arabic: Mohammed al zaid Ahmad Gharbeia Samkari Abdullah Abouzekry Awadh Al-Ghaamdi Thai: Pun Malay: Mahrazi Mohd Kamal Urdu: Muhammad Shakir Aziz Irish: Seanán Ó Coistín Uyghur: Abduqadir Abliz Valencian: Robert Millan David Planella Vietnamese: Trần Ngọc Quân Uzbek: Oybek Djuraev Bosnian: Kenan Dervišević English (British): Robert Readman Kazakh: Baurzhan Muftakhidinov Marathi: Abhijit Jathar Tajik: Victor Ibragimov Kurdish Sorani: Asos Ap Nepali: Him Prasad Gautam Corsican: Patrick Santa-Maria Aragonese: Jorge Pérez Pérez Azerbaijani: Mushviq Abdulla Icons: Tango Desktop Project [http://tango.freedesktop.org] Mark James, Silk icons [http://www.famfamfam.com/lab/icons/silk] poedit-2.0.6/src/0000775000372000037200000000000013230132101010555 500000000000000poedit-2.0.6/src/text_control.h0000664000372000037200000001213113230131554013403 00000000000000/* * This file is part of Poedit (https://poedit.net) * * Copyright (C) 1999-2018 Vaclav Slavik * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * DEALINGS IN THE SOFTWARE. * */ #ifndef Poedit_text_control_h #define Poedit_text_control_h #include #include #include #include "language.h" #include "syntaxhighlighter.h" /** Text control with some Poedit-specific customizations: - Allow setting text programatically, without user-input processing (macOS) - Disable user-usable rich text support - Stylistic tweaks (padding and such) - Generic undo/redo implementation for GTK - Search highlighting */ class CustomizedTextCtrl : public wxTextCtrl { public: static const int ALWAYS_USED_STYLE = wxTE_MULTILINE | wxTE_RICH2 | wxTE_NOHIDESEL; CustomizedTextCtrl(wxWindow *parent, wxWindowID winid, long style = 0); /// Show find result indicator at given part of the text void ShowFindIndicator(int from, int length); #ifdef __WXGTK__ // Undo/redo implementation: void BeginUndoGrouping(); void EndUndoGrouping(); void SaveSnapshot(); #endif #ifdef __WXMSW__ WXDWORD MSWGetStyle(long style, WXDWORD *exstyle) const override; #endif protected: #ifdef __WXOSX__ void DoSetValue(const wxString& value, int flags) override; wxString DoGetValue() const override; #endif bool DoCopy(); void OnCopy(wxClipboardTextEvent& event); void OnCut(wxClipboardTextEvent& event); void OnPaste(wxClipboardTextEvent& event); virtual wxString DoCopyText(long from, long to); virtual void DoPasteText(long from, long to, const wxString& s); #ifdef __WXGTK__ struct Snapshot { wxString text; long insertionPoint; }; void DoSetValue(const wxString& value, int flags) override; void OnText(wxCommandEvent& event); bool CanUndo() const override; bool CanRedo() const override; void Undo() override; void Redo() override; std::vector m_history; size_t m_historyIndex; // where in the vector to insert the next snapshot int m_historyLocks; #endif // __WXGTK__ }; class AnyTranslatableTextCtrl : public CustomizedTextCtrl { public: AnyTranslatableTextCtrl(wxWindow *parent, wxWindowID winid, int style = 0); ~AnyTranslatableTextCtrl(); void SetLanguage(const Language& lang); void SetSyntaxHighlighter(SyntaxHighlighterPtr syntax) { m_syntax = syntax; } // Set and get control's text as plain/raw text, with no escaping or formatting. // This is the "true" representation, with e.g newlines included. The version // displayed to the user includes syntax highlighting and escaping of some characters // (e.g. tabs shown as \t, newlines as \n followed by newline). void SetPlainText(const wxString& s); wxString GetPlainText() const; // Apply escaping as described in SetPlainText: static wxString EscapePlainText(const wxString& s); static wxString UnescapePlainText(const wxString& s); protected: wxString DoCopyText(long from, long to) override; void DoPasteText(long from, long to, const wxString& s) override; void DoSetValue(const wxString& value, int flags) override; #ifdef __WXMSW__ void UpdateRTLStyle(); #endif // __WXMSW__ protected: void HighlightText(); class Attributes; SyntaxHighlighterPtr m_syntax; std::unique_ptr m_attrs; Language m_language; }; class SourceTextCtrl : public AnyTranslatableTextCtrl { public: SourceTextCtrl(wxWindow *parent, wxWindowID winid); bool AcceptsFocus() const override { return false; } }; class TranslationTextCtrl : public AnyTranslatableTextCtrl { public: TranslationTextCtrl(wxWindow *parent, wxWindowID winid); /// Sets the value to something the user wrote void SetPlainTextUserWritten(const wxString& value); protected: void OnKeyDown(wxKeyEvent& e); void OnText(wxCommandEvent& e); #ifdef __WXOSX__ void DoSetValue(const wxString& value, int flags) override; #endif #ifdef __WXMSW__ void DoEnable(bool enable) override; #endif bool m_lastKeyWasReturn; }; #endif // Poedit_text_control_h poedit-2.0.6/src/http_client.h0000664000372000037200000001262313230131554013202 00000000000000/* * This file is part of Poedit (https://poedit.net) * * Copyright (C) 2014-2018 Vaclav Slavik * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * DEALINGS IN THE SOFTWARE. * */ #ifndef Poedit_http_client_h #define Poedit_http_client_h #ifdef HAVE_HTTP_CLIENT #include "concurrency.h" #include "json.h" #include #include #include #include class http_client; /// Abstract base class for encoded body data class http_body_data { public: http_body_data() {} virtual ~http_body_data() {} /// Content-Type header to use with the data. virtual std::string content_type() const = 0; /// Returns generated body of the request. virtual std::string body() const = 0; }; /// Stores POSTed data (RFC 1867) class multipart_form_data : public http_body_data { public: multipart_form_data(); /// Add a form value. void add_value(const std::string& name, const std::string& value); /// Add file upload. void add_file(const std::string& name, const std::string& filename, const std::string& file_content); std::string content_type() const override; std::string body() const override; private: std::string m_boundary; std::string m_body; }; /// Stores application/x-www-form-urlencoded data class urlencoded_data : public http_body_data { public: /// Add a form value. void add_value(const std::string& name, const std::string& value); std::string content_type() const override { return "application/x-www-form-urlencoded"; } std::string body() const override { return m_body; } private: std::string m_body; }; /// Stores application/json data class json_data : public http_body_data { public: json_data(const json& data); std::string content_type() const override { return "application/json"; } std::string body() const override { return m_body; } private: std::string m_body; }; /** Client for accessing HTTP REST APIs. */ class http_client { public: /// Connection flags for the client. enum flags { // currently no flags are used default_flags = 0 }; /** Creates an instance of the client object. The client is good for accessing URLs with the provided prefix (which may be any prefix, not just the hostname). @param flags OR-combination of http_client::flags values. */ http_client(const std::string& url_prefix, int flags = default_flags); virtual ~http_client(); #ifndef __DARWIN__ /// Sets Accept-Language to use (language tag; managed automatically on macOS) static void set_ui_language(const std::string& lang); #endif /// Return true if the server is reachable, i.e. client is online bool is_reachable() const; /// Sets Authorization header to be used in all requests void set_authorization(const std::string& auth); /// Perform a GET request at the given URL dispatch::future get(const std::string& url); /** Perform a GET request and store the body in a file. Returned response's body won't be accessible in any way from @a handler. */ dispatch::future download(const std::string& url, const std::wstring& output_file); /** Perform a POST request with multipart/form-data formatted @a params. */ dispatch::future post(const std::string& url, const http_body_data& data); // Helper for encoding text as URL-encoded UTF-8 enum encode_flags { encode_no_plus = 1 // don't encode spaces as + }; static std::string url_encode(const std::string& s, int flags = 0); static std::string url_encode(const std::wstring& s, int flags = 0); protected: /** Extract more detailed, client specific error response from the JSON body of error response, if available. Does nothing by default, but can be overridden in derived class. */ virtual std::string parse_json_error(const json& /*response*/) const { return std::string(); } /** Called when an error response is returned, before calling error handler. Can be used to react to specific errors, e.g. invalidate expired OAuth tokens, or to modify the response. */ virtual void on_error_response(int& /*statusCode*/, std::string& /*message*/) {}; private: class impl; std::unique_ptr m_impl; }; #endif // HAVE_HTTP_CLIENT #endif // Poedit_http_client_h poedit-2.0.6/src/syntaxhighlighter.cpp0000664000372000037200000001460613230131554014770 00000000000000/* * This file is part of Poedit (https://poedit.net) * * Copyright (C) 2014-2018 Vaclav Slavik * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * DEALINGS IN THE SOFTWARE. * */ #include "syntaxhighlighter.h" #include "catalog.h" #include #include namespace { class BasicSyntaxHighlighter : public SyntaxHighlighter { public: void Highlight(const std::wstring& s, const CallbackType& highlight) override { if (s.empty()) return; const int length = int(s.length()); for (auto i = s.begin(); i != s.end(); ++i) { if (!u_isblank(*i)) { int wlen = int(i - s.begin()); if (wlen) highlight(0, wlen, LeadingWhitespace); break; } } for (auto i = s.rbegin(); i != s.rend(); ++i) { if (!u_isblank(*i)) { int wlen = int(i - s.rbegin()); if (wlen) highlight(length - wlen, length, LeadingWhitespace); break; } } int blank_block_pos = -1; for (auto i = s.begin(); i != s.end(); ++i) { if (u_isblank(*i)) { if (blank_block_pos == -1) blank_block_pos = int(i - s.begin()); } else if (blank_block_pos != -1) { int endpos = int(i - s.begin()); if (endpos - blank_block_pos >= 2) highlight(blank_block_pos, endpos, LeadingWhitespace); blank_block_pos = -1; } if (*i == '\\') { int pos = int(i - s.begin()); if (++i == s.end()) break; // Note: this must match AnyTranslatableTextCtrl::EscapePlainText() switch (*i) { case '0': case 'n': case 'r': case 't': case '\\': highlight(pos, pos + 2, Escape); break; default: break; } } } } }; /// Highlighter that runs multiple sub-highlighters class CompositeSyntaxHighlighter : public SyntaxHighlighter { public: void Add(std::shared_ptr h) { m_sub.push_back(h); } void Highlight(const std::wstring& s, const CallbackType& highlight) override { for (auto h : m_sub) h->Highlight(s, highlight); } private: std::vector> m_sub; }; /// Match regular expressions for highlighting class RegexSyntaxHighlighter : public SyntaxHighlighter { public: /// Ctor. Notice that @a re is a reference and must outlive the highlighter! RegexSyntaxHighlighter(std::wregex& re, TextKind kind) : m_re(re), m_kind(kind) {} void Highlight(const std::wstring& s, const CallbackType& highlight) override { std::wsregex_iterator next(s.begin(), s.end(), m_re); std::wsregex_iterator end; while (next != end) { auto match = *next++; if (match.empty()) continue; int pos = static_cast(match.position()); highlight(pos, pos + static_cast(match.length()), m_kind); } } private: std::wregex& m_re; TextKind m_kind; }; std::wregex RE_HTML_MARKUP(LR"(<\/?[a-zA-Z]+(\s+\w+(=(\w+|"[^"]*"|'[^']*'))?)*\s*\/?>)", std::regex_constants::ECMAScript | std::regex_constants::optimize); // php-format per http://php.net/manual/en/function.sprintf.php plus positionals std::wregex RE_PHP_FORMAT(LR"(%(\d+\$)?[-+]{0,2}([ 0]|'.)?-?\d*(\..?\d+)?[%bcdeEfFgGosuxX])", std::regex_constants::ECMAScript | std::regex_constants::optimize); // c-format per http://en.cppreference.com/w/cpp/io/c/fprintf, // http://pubs.opengroup.org/onlinepubs/9699919799/functions/fprintf.html std::wregex RE_C_FORMAT(LR"(%(\d+\$)?[-+ #0]{0,5}(\d+|\*)?(\.(\d+|\*))?(hh|ll|[hljztL])?[%csdioxXufFeEaAgGnp])", std::regex_constants::ECMAScript | std::regex_constants::optimize); } // anonymous namespace SyntaxHighlighterPtr SyntaxHighlighter::ForItem(const CatalogItem& item) { auto formatFlag = item.GetFormatFlag(); bool needsHTML = item.GetString().Contains('<'); static auto basic = std::make_shared(); if (!needsHTML && formatFlag.empty()) return basic; auto all = std::make_shared(); // HTML goes first, has lowest priority than special-purpose stuff like format strings: if (needsHTML) { static auto html = std::make_shared(RE_HTML_MARKUP, TextKind::Markup); all->Add(html); } // TODO: more/all languages if (formatFlag == "php") { static auto php_format = std::make_shared(RE_PHP_FORMAT, TextKind::Format); all->Add(php_format); } else if (formatFlag == "c") { static auto c_format = std::make_shared(RE_C_FORMAT, TextKind::Format); all->Add(c_format); } // basic higlighting has highest priority, so should come last in the order: all->Add(basic); return all; } poedit-2.0.6/src/unicode_helpers.h0000664000372000037200000000775713230131554014051 00000000000000/* * This file is part of Poedit (https://poedit.net) * * Copyright (C) 2016-2018 Vaclav Slavik * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * DEALINGS IN THE SOFTWARE. * */ #ifndef Poedit_unicode_helpers_h #define Poedit_unicode_helpers_h #include "language.h" #include #ifdef __WXMSW__ #define BIDI_NEEDS_DIRECTION_ON_EACH_LINE #define BIDI_PLATFORM_DOESNT_DETECT_DIRECTION #endif namespace bidi { /// Bidi control characters static const wchar_t LRE = L'\u202a'; // LEFT-TO-RIGHT EMBEDDING static const wchar_t RLE = L'\u202b'; // RIGHT-TO-LEFT EMBEDDING static const wchar_t PDF = L'\u202c'; // POP DIRECTIONAL FORMATTING static const wchar_t LRO = L'\u202d'; // LEFT-TO-RIGHT OVERRIDE static const wchar_t RLO = L'\u202e'; // RIGHT-TO-LEFT OVERRIDE static const wchar_t LRI = L'\u2066'; // LEFT‑TO‑RIGHT ISOLATE static const wchar_t RLI = L'\u2067'; // RIGHT‑TO‑LEFT ISOLATE static const wchar_t FSI = L'\u2068'; // FIRST STRONG ISOLATE static const wchar_t PDI = L'\u2069'; // POP DIRECTIONAL ISOLATE static const wchar_t LRM = L'\u200e'; // LEFT-TO-RIGHT MARK static const wchar_t RLM = L'\u200f'; // RIGHT-TO-LEFT MARK static const wchar_t ALM = L'\u061c'; // ARABIC LETTER MARK /// Is the character a directional control character? inline bool is_direction_mark(wchar_t c) { return (c >= LRE && c <= RLO) || (c >= LRI && c <= PDI) || (c >= LRM && c <= RLM) || (c == ALM); } /** Determine base direction of the text provided according to the Unicode Bidirectional Algorithm. */ TextDirection get_base_direction(const wxString& text); /** Removes leading directional control characters that don't make sense for text in given language. For example, prefixing RTL text with RLE is redundant; prefixing with LRE is not. This function exists primarily to solve issues with text controls when editing text in language different from the UI's language. */ wxString strip_pointless_control_chars(const wxString& text, TextDirection dir); /** Remove leading directional control characters. For use if the text has known direction or can't have control characters. */ wxString strip_control_chars(const wxString& text); /** Prepend directional mark to text, for display purposes on platforms that don't detect text's directionality on their own or when showing text in different directionality. */ wxString mark_direction(const wxString& text, TextDirection dir); inline wxString mark_direction(const wxString& text, const Language& lang) { return mark_direction(text, lang.Direction()); } inline wxString mark_direction(const wxString& text) { return mark_direction(text, get_base_direction(text)); } #ifdef BIDI_PLATFORM_DOESNT_DETECT_DIRECTION inline wxString platform_mark_direction(const wxString& text) { return mark_direction(text); } #else inline wxString platform_mark_direction(const wxString& text) { return text; } #endif } // namespace bidi #endif // Poedit_unicode_helpers_h poedit-2.0.6/src/Makefile.am0000664000372000037200000000750713230131554012555 00000000000000 LUCENE_LIBS = @LUCENE_LIBS@ WX_LIBS = @WX_LIBS@ bin_PROGRAMS = poedit WX_BACKPORT_SRC = wx_backports/wx_gtk_activityindicator.cpp \ wx_backports/activityindicator.h \ wx_backports/gtk_activityindicator.h \ wx_backports/nativewin.h \ wx_backports/wx_gtk_nativewin.cpp if HAVE_CPPREST CROWDIN_SUPPORT_SRC = \ http_client.h http_client.cpp http_client_casablanca.cpp \ crowdin_client.h crowdin_client.cpp \ crowdin_gui.h crowdin_gui.cpp \ keychain/keytar_posix.cc keychain/keytar.h \ json.h json/src/json.hpp CROWDIN_SUPPORT_LIBS = $(CPPREST_LIBS) $(LIBSECRET_LIBS) endif poedit_SOURCES = \ attentionbar.cpp attentionbar.h \ cat_update.h cat_update.cpp \ cat_sorting.cpp cat_sorting.h \ catalog.cpp catalog.h \ chooselang.cpp chooselang.h \ cloud_sync.h \ colorscheme.h colorscheme.cpp \ commentdlg.h commentdlg.cpp \ concurrency.cpp concurrency.h \ configuration.cpp configuration.h \ custom_buttons.cpp custom_buttons.h \ customcontrols.cpp customcontrols.h \ edapp.cpp edapp.h \ edframe.cpp edframe.h \ editing_area.cpp editing_area.h \ edlistctrl.cpp edlistctrl.h \ errors.h \ export_html.cpp \ extractors/extractor.cpp extractors/extractor.h \ extractors/extractor_gettext.cpp \ extractors/extractor_legacy.cpp extractors/extractor_legacy.h \ fileviewer.cpp fileviewer.h \ findframe.cpp findframe.h \ gexecute.h gexecute.cpp \ hidpi.cpp hidpi.h \ icons.h icons.cpp \ language.cpp language.h \ language_impl_legacy.h language_impl_plurals.h \ languagectrl.cpp languagectrl.h \ logcapture.h \ main_toolbar.h wx/main_toolbar.cpp \ manager.h manager.cpp \ pluralforms/pl_evaluate.cpp pluralforms/pl_evaluate.h \ prefsdlg.cpp prefsdlg.h \ pretranslate.cpp pretranslate.h \ progressinfo.h progressinfo.cpp \ propertiesdlg.cpp propertiesdlg.h \ qa_checks.cpp qa_checks.h \ sidebar.cpp sidebar.h \ spellchecking.h spellchecking.cpp \ str_helpers.h \ syntaxhighlighter.cpp syntaxhighlighter.h \ text_control.h text_control.cpp \ tm/suggestions.cpp tm/suggestions.h \ tm/transmem.cpp tm/transmem.h \ unicode_helpers.h unicode_helpers.cpp \ utility.cpp utility.h \ version.h \ welcomescreen.cpp welcomescreen.h \ $(CROWDIN_SUPPORT_SRC) \ $(WX_BACKPORT_SRC) nodist_poedit_SOURCES = compiled_xrc.cpp poedit_LDADD = $(WX_LIBS) $(LUCENE_LIBS) $(CLD2_LIBS) $(CROWDIN_SUPPORT_LIBS) \ $(BOOST_LDFLAGS) $(BOOST_THREAD_LIB) $(BOOST_REGEX_LIB) $(BOOST_SYSTEM_LIB) XRC_RESOURCES = \ $(srcdir)/resources/comment.xrc \ $(srcdir)/resources/manager.xrc \ $(srcdir)/resources/menus.xrc \ $(srcdir)/resources/prefs.xrc \ $(srcdir)/resources/progress.xrc \ $(srcdir)/resources/properties.xrc \ $(srcdir)/resources/summary.xrc \ $(srcdir)/resources/toolbar.xrc compiled_xrc.cpp: $(XRC_RESOURCES) $(WXRC) -v -c -o $@ $(XRC_RESOURCES) DISTCLEANFILES = $(nodist_poedit_SOURCES) EXTRA_DIST = $(XRC_RESOURCES) pluralforms/COPYING poedit-2.0.6/src/welcomescreen.h0000664000372000037200000000350313230131554013515 00000000000000/* * This file is part of Poedit (https://poedit.net) * * Copyright (C) 2013-2018 Vaclav Slavik * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * DEALINGS IN THE SOFTWARE. * */ #ifndef Poedit_welcomescreen_h #define Poedit_welcomescreen_h #include class PoeditFrame; class WelcomeScreenBase : public wxPanel { protected: WelcomeScreenBase(wxWindow *parent); wxFont m_fntHeader, m_fntNorm, m_fntSub; wxColour m_clrHeader, m_clrNorm, m_clrSub; }; /// Content view for initially opened Poedit, without a file class WelcomeScreenPanel : public WelcomeScreenBase { public: WelcomeScreenPanel(wxWindow *parent); }; /// Content view for an empty file (File->New) class EmptyPOScreenPanel : public WelcomeScreenBase { public: EmptyPOScreenPanel(PoeditFrame *parent); }; #endif // Poedit_welcomescreen_h poedit-2.0.6/src/prefsdlg.cpp0000664000372000037200000012322413230131554013026 00000000000000/* * This file is part of Poedit (https://poedit.net) * * Copyright (C) 2000-2018 Vaclav Slavik * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * DEALINGS IN THE SOFTWARE. * */ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #if !wxCHECK_VERSION(3,1,0) #define CenterVertical() Center() #endif #include "prefsdlg.h" #include "edapp.h" #include "edframe.h" #include "catalog.h" #include "configuration.h" #include "crowdin_gui.h" #include "hidpi.h" #include "tm/transmem.h" #include "chooselang.h" #include "errors.h" #include "extractors/extractor_legacy.h" #include "spellchecking.h" #include "utility.h" #include "customcontrols.h" #include "unicode_helpers.h" #ifdef __WXMSW__ #include #endif #ifdef USE_SPARKLE #include "macos_helpers.h" #endif // USE_SPARKLE #if defined(USE_SPARKLE) || defined(__WXMSW__) #define HAS_UPDATES_CHECK #endif namespace { class PrefsPanel : public wxPanel { public: PrefsPanel(wxWindow *parent) : wxPanel(parent), m_suppressDataTransfer(0) { #ifdef __WXOSX__ // Refresh the content of prefs panels when re-opening it. // TODO: Use proper config settings notifications or user defaults bindings instead parent->Bind(wxEVT_ACTIVATE, [=](wxActivateEvent& e){ e.Skip(); if (e.GetActive()) TransferDataToWindow(); }); Bind(wxEVT_SHOW, [=](wxShowEvent& e){ e.Skip(); if (e.IsShown()) TransferDataToWindow(); }); #endif // __WXOSX__ } bool TransferDataToWindow() override { if (m_suppressDataTransfer) return false; m_suppressDataTransfer++; InitValues(*wxConfig::Get()); m_suppressDataTransfer--; // This is a "bit" of a hack: we take advantage of being in the last point before // showing the window and re-layout it on the off chance that some data transferred // into the window affected its size. And, currently more importantly, to reflect // ExplanationLabel instances' rewrapping. Fit(); #ifndef __WXOSX__ GetParent()->GetParent()->Fit(); #endif return true; } bool TransferDataFromWindow() override { if (m_suppressDataTransfer) return false; m_suppressDataTransfer++; SaveValues(*wxConfig::Get()); m_suppressDataTransfer--; return true; } protected: void TransferDataFromWindowAndUpdateUI(wxCommandEvent&) { TransferDataFromWindow(); PoeditFrame::UpdateAllAfterPreferencesChange(); } virtual void InitValues(const wxConfigBase& cfg) = 0; virtual void SaveValues(wxConfigBase& cfg) = 0; int m_suppressDataTransfer; }; class GeneralPageWindow : public PrefsPanel { public: GeneralPageWindow(wxWindow *parent) : PrefsPanel(parent) { wxSizer *topsizer = new wxBoxSizer(wxVERTICAL); topsizer->SetMinSize(PX(400), -1); wxSizer *sizer = new wxBoxSizer(wxVERTICAL); topsizer->Add(sizer, wxSizerFlags(1).Expand().PXDoubleBorderAll()); SetSizer(topsizer); sizer->Add(new HeadingLabel(this, _("Information about the translator"))); sizer->AddSpacer(PX(10)); auto translator = new wxFlexGridSizer(2, wxSize(5,6)); translator->AddGrowableCol(1); sizer->Add(translator, wxSizerFlags().Expand()); auto nameLabel = new wxStaticText(this, wxID_ANY, _("Name:")); translator->Add(nameLabel, wxSizerFlags().CenterVertical().Right().BORDER_MACOS(wxTOP, 1)); m_userName = new wxTextCtrl(this, wxID_ANY); m_userName->SetHint(_("Your Name")); translator->Add(m_userName, wxSizerFlags(1).Expand().CenterVertical()); auto emailLabel = new wxStaticText(this, wxID_ANY, _("Email:")); translator->Add(emailLabel, wxSizerFlags().CenterVertical().Right().BORDER_MACOS(wxTOP, 1)); m_userEmail = new wxTextCtrl(this, wxID_ANY); m_userEmail->SetHint(_("your_email@example.com")); translator->Add(m_userEmail, wxSizerFlags(1).Expand().CenterVertical()); translator->AddSpacer(PX(1)); translator->Add(new ExplanationLabel(this, _("Your name and email address are only used to set the Last-Translator header of GNU gettext files.")), wxSizerFlags(1).Expand().PXBorder(wxRIGHT)); #ifdef __WXOSX__ nameLabel->SetWindowVariant(wxWINDOW_VARIANT_SMALL); emailLabel->SetWindowVariant(wxWINDOW_VARIANT_SMALL); m_userName->SetWindowVariant(wxWINDOW_VARIANT_SMALL); m_userEmail->SetWindowVariant(wxWINDOW_VARIANT_SMALL); #endif sizer->AddSpacer(PX(10)); sizer->Add(new HeadingLabel(this, _("Editing"))); sizer->AddSpacer(PX(10)); m_compileMo = new wxCheckBox(this, wxID_ANY, _("Automatically compile MO file when saving")); sizer->Add(m_compileMo); m_showSummary = new wxCheckBox(this, wxID_ANY, _("Show summary after catalog update")); sizer->Add(m_showSummary, wxSizerFlags().PXBorder(wxTOP)); sizer->AddSpacer(PX(10)); m_spellchecking = new wxCheckBox(this, wxID_ANY, _("Check spelling")); sizer->Add(m_spellchecking, wxSizerFlags().PXBorder(wxTOP)); m_focusToText = new wxCheckBox(this, wxID_ANY, _("Always change focus to text input field")); sizer->Add(m_focusToText, wxSizerFlags().PXBorder(wxTOP)); wxString explainFocus(_("Never let the list of strings take focus. If enabled, you must use Ctrl-arrows for keyboard navigation but you can also type text immediately, without having to press Tab to change focus.")); #ifdef __WXOSX__ explainFocus.Replace("Ctrl", "Cmd"); #endif sizer->AddSpacer(PX(5)); sizer->Add(new ExplanationLabel(this, explainFocus), wxSizerFlags().Expand().Border(wxLEFT, PX(ExplanationLabel::CHECKBOX_INDENT))); sizer->AddSpacer(PX(10)); sizer->Add(new HeadingLabel(this, _("Appearance"))); sizer->AddSpacer(PX(4)); auto appearance = new wxFlexGridSizer(2, wxSize(5,1)); appearance->AddGrowableCol(1); sizer->Add(appearance, wxSizerFlags().Expand()); m_useFontList = new wxCheckBox(this, wxID_ANY, _("Use custom list font:")); m_fontList = new wxFontPickerCtrl(this, wxID_ANY); m_fontList->SetMinSize(wxSize(PX(120), -1)); m_useFontText = new wxCheckBox(this, wxID_ANY, _("Use custom text fields font:")); m_fontText = new wxFontPickerCtrl(this, wxID_ANY); m_fontText->SetMinSize(wxSize(PX(120), -1)); appearance->Add(m_useFontList, wxSizerFlags().CenterVertical().Left()); appearance->Add(m_fontList, wxSizerFlags().CenterVertical().Expand()); appearance->Add(m_useFontText, wxSizerFlags().CenterVertical().Left()); appearance->Add(m_fontText, wxSizerFlags().CenterVertical().Expand()); #if NEED_CHOOSELANG_UI m_uiLanguage = new wxButton(this, wxID_ANY, _("Change UI language")); sizer->Add(m_uiLanguage, wxSizerFlags().PXBorder(wxTOP)); #endif #ifdef __WXMSW__ if (!IsSpellcheckingAvailable()) { m_spellchecking->Disable(); m_spellchecking->SetValue(false); // TRANSLATORS: This is a note appended to "Check spelling" when running on older Windows versions m_spellchecking->SetLabel(m_spellchecking->GetLabel() + " " + _("(requires Windows 8 or newer)")); } #endif Fit(); if (wxPreferencesEditor::ShouldApplyChangesImmediately()) { Bind(wxEVT_CHECKBOX, [=](wxCommandEvent&){ TransferDataFromWindow(); }); Bind(wxEVT_TEXT, [=](wxCommandEvent&){ TransferDataFromWindow(); }); // Some settings directly affect the UI, so need a more expensive handler: m_useFontList->Bind(wxEVT_CHECKBOX, &GeneralPageWindow::TransferDataFromWindowAndUpdateUI, this); m_useFontText->Bind(wxEVT_CHECKBOX, &GeneralPageWindow::TransferDataFromWindowAndUpdateUI, this); Bind(wxEVT_FONTPICKER_CHANGED, &GeneralPageWindow::TransferDataFromWindowAndUpdateUI, this); m_focusToText->Bind(wxEVT_CHECKBOX, &GeneralPageWindow::TransferDataFromWindowAndUpdateUI, this); m_spellchecking->Bind(wxEVT_CHECKBOX, &GeneralPageWindow::TransferDataFromWindowAndUpdateUI, this); } // handle UI updates: m_fontList->Bind(wxEVT_UPDATE_UI, [=](wxUpdateUIEvent& e){ e.Enable(m_useFontList->GetValue()); }); m_fontText->Bind(wxEVT_UPDATE_UI, [=](wxUpdateUIEvent& e){ e.Enable(m_useFontText->GetValue()); }); #if NEED_CHOOSELANG_UI m_uiLanguage->Bind(wxEVT_BUTTON, [=](wxCommandEvent&){ ChangeUILanguage(); }); #endif } void InitValues(const wxConfigBase& cfg) override { m_userName->SetValue(cfg.Read("translator_name", wxEmptyString)); m_userEmail->SetValue(cfg.Read("translator_email", wxEmptyString)); m_compileMo->SetValue(cfg.ReadBool("compile_mo", true)); m_showSummary->SetValue(cfg.ReadBool("show_summary", false)); m_focusToText->SetValue(cfg.ReadBool("focus_to_text", false)); if (IsSpellcheckingAvailable()) { m_spellchecking->SetValue(cfg.ReadBool("enable_spellchecking", true)); } m_useFontList->SetValue(cfg.ReadBool("custom_font_list_use", false)); m_useFontText->SetValue(cfg.ReadBool("custom_font_text_use", false)); #if defined(__WXOSX__) #define DEFAULT_FONT "Helvetica Neue" #elif defined(__WXMSW__) #define DEFAULT_FONT "Arial" #elif defined(__WXGTK__) #define DEFAULT_FONT "sans serif" #endif auto listFont = wxFont(cfg.Read("custom_font_list_name", "")); if (!listFont.IsOk()) listFont = wxFont(11, wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_NORMAL, false, DEFAULT_FONT); auto textFont = wxFont(cfg.Read("custom_font_text_name", "")); if (!textFont.IsOk()) textFont = wxFont(11, wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_NORMAL, false, DEFAULT_FONT); m_fontList->SetSelectedFont(listFont); m_fontText->SetSelectedFont(textFont); } void SaveValues(wxConfigBase& cfg) override { cfg.Write("translator_name", m_userName->GetValue()); cfg.Write("translator_email", m_userEmail->GetValue()); cfg.Write("compile_mo", m_compileMo->GetValue()); cfg.Write("show_summary", m_showSummary->GetValue()); cfg.Write("focus_to_text", m_focusToText->GetValue()); if (IsSpellcheckingAvailable()) { cfg.Write("enable_spellchecking", m_spellchecking->GetValue()); } wxFont listFont = m_fontList->GetSelectedFont(); wxFont textFont = m_fontText->GetSelectedFont(); cfg.Write("custom_font_list_use", m_useFontList->GetValue()); cfg.Write("custom_font_text_use", m_useFontText->GetValue()); if ( listFont.IsOk() ) cfg.Write("custom_font_list_name", listFont.GetNativeFontInfoDesc()); if ( textFont.IsOk() ) cfg.Write("custom_font_text_name", textFont.GetNativeFontInfoDesc()); // On Windows, we must update the UI here; on other platforms, it was done // via TransferDataFromWindowAndUpdateUI immediately: if (!wxPreferencesEditor::ShouldApplyChangesImmediately()) { PoeditFrame::UpdateAllAfterPreferencesChange(); } } private: wxTextCtrl *m_userName, *m_userEmail; wxCheckBox *m_compileMo, *m_showSummary, *m_focusToText, *m_spellchecking; wxCheckBox *m_useFontList, *m_useFontText; wxFontPickerCtrl *m_fontList, *m_fontText; #if NEED_CHOOSELANG_UI wxButton *m_uiLanguage; #endif }; class GeneralPage : public wxPreferencesPage { public: wxString GetName() const override { return _("General"); } wxBitmap GetLargeIcon() const override { return wxArtProvider::GetBitmap("Prefs-General"); } wxWindow *CreateWindow(wxWindow *parent) override { return new GeneralPageWindow(parent); } }; class TMPageWindow : public PrefsPanel { public: TMPageWindow(wxWindow *parent) : PrefsPanel(parent) { wxSizer *topsizer = new wxBoxSizer(wxVERTICAL); #ifdef __WXOSX__ topsizer->SetMinSize(PX(430), -1); // for macOS look #endif wxSizer *sizer = new wxBoxSizer(wxVERTICAL); topsizer->Add(sizer, wxSizerFlags(1).Expand().PXDoubleBorderAll()); SetSizer(topsizer); sizer->AddSpacer(PX(5)); m_useTM = new wxCheckBox(this, wxID_ANY, _("Use translation memory")); sizer->Add(m_useTM, wxSizerFlags().Expand()); m_stats = new wxStaticText(this, wxID_ANY, "--\n--", wxDefaultPosition, wxDefaultSize, wxST_NO_AUTORESIZE); sizer->AddSpacer(PX(10)); sizer->Add(m_stats, wxSizerFlags().Expand().Border(wxLEFT|wxRIGHT, PX(30))); sizer->AddSpacer(PX(10)); auto buttonsSizer = new wxBoxSizer(wxHORIZONTAL); auto import = new wxButton(this, wxID_ANY, MSW_OR_OTHER(_(L"Learn from files…"), _(L"Learn From Files…"))); buttonsSizer->Add(import, wxSizerFlags()); // TRANSLATORS: This is a button that deletes everything in the translation memory (i.e. clears/resets it). auto clear = new wxButton(this, wxID_ANY, _("Reset")); buttonsSizer->Add(clear, wxSizerFlags().Border(wxLEFT, 5)); sizer->Add(buttonsSizer, wxSizerFlags().Expand().Border(wxLEFT|wxRIGHT, PX(30))); sizer->AddSpacer(PX(10)); // TRANSLATORS: Followed by "match translations within the file" or "pre-translate from TM" m_mergeUse = new wxCheckBox(this, wxID_ANY, _("When updating from sources")); wxString mergeValues[] = { // TRANSLATORS: Preceded by "When updating from sources" _("fuzzy match within the file"), // TRANSLATORS: Preceded by "When updating from sources" _("pre-translate from TM") }; m_mergeBehavior = new wxChoice(this, wxID_ANY, wxDefaultPosition, wxDefaultSize, WXSIZEOF(mergeValues), mergeValues); auto mergeSizer = new wxBoxSizer(wxHORIZONTAL); mergeSizer->Add(m_mergeUse, wxSizerFlags().Center()); mergeSizer->AddSpacer(PX(5)); mergeSizer->Add(m_mergeBehavior, wxSizerFlags().Center().BORDER_MACOS(wxTOP, PX(1)).BORDER_WIN(wxBOTTOM, 1)); sizer->Add(mergeSizer, wxSizerFlags().PXBorder(wxTOP|wxBOTTOM)); auto explainTxt = _(L"Poedit can attempt to fill in new entries from only previous translations in " L"the file or from your entire translation memory. Using the TM won’t be very effective if " L"it’s near-empty, but it will get better as you add more translations to it."); auto explain = new ExplanationLabel(this, explainTxt); sizer->Add(explain, wxSizerFlags().Expand().Border(wxLEFT, PX(ExplanationLabel::CHECKBOX_INDENT))); auto learnMore = new LearnMoreLink(this, "https://poedit.net/trac/wiki/Doc/TranslationMemory"); sizer->AddSpacer(PX(3)); sizer->Add(learnMore, wxSizerFlags().Border(wxLEFT, PX(ExplanationLabel::CHECKBOX_INDENT + LearnMoreLink::EXTRA_INDENT))); sizer->AddSpacer(PX(10)); #ifdef __WXOSX__ m_stats->SetWindowVariant(wxWINDOW_VARIANT_SMALL); import->SetWindowVariant(wxWINDOW_VARIANT_SMALL); clear->SetWindowVariant(wxWINDOW_VARIANT_SMALL); #endif m_mergeBehavior->Bind(wxEVT_UPDATE_UI, [=](wxUpdateUIEvent& e){ e.Enable(m_mergeUse->GetValue() == true); }); m_stats->Bind(wxEVT_UPDATE_UI, &TMPageWindow::OnUpdateUI, this); import->Bind(wxEVT_UPDATE_UI, &TMPageWindow::OnUpdateUI, this); clear->Bind(wxEVT_UPDATE_UI, &TMPageWindow::OnUpdateUI, this); import->Bind(wxEVT_BUTTON, &TMPageWindow::OnImportIntoTM, this); clear->Bind(wxEVT_BUTTON, &TMPageWindow::OnResetTM, this); UpdateStats(); if (wxPreferencesEditor::ShouldApplyChangesImmediately()) { m_mergeUse->Bind(wxEVT_CHECKBOX, [=](wxCommandEvent&){ TransferDataFromWindow(); }); m_mergeBehavior->Bind(wxEVT_CHOICE, [=](wxCommandEvent&){ TransferDataFromWindow(); }); // Some settings directly affect the UI, so need a more expensive handler: m_useTM->Bind(wxEVT_CHECKBOX, &TMPageWindow::TransferDataFromWindowAndUpdateUI, this); } } void InitValues(const wxConfigBase&) override { m_useTM->SetValue(Config::UseTM()); auto merge = Config::MergeBehavior(); m_mergeUse->SetValue(merge != Merge_None); m_mergeBehavior->SetSelection(merge == Merge_UseTM ? 1 : 0); } void SaveValues(wxConfigBase&) override { Config::UseTM(m_useTM->GetValue()); if (m_mergeUse->GetValue() == true) { Config::MergeBehavior(m_mergeBehavior->GetSelection() == 1 ? Merge_UseTM : Merge_FuzzyMatch); } else { Config::MergeBehavior(Merge_None); } } private: void UpdateStats() { wxString sDocs("--"); wxString sFileSize("--"); if (Config::UseTM()) { try { long docs, fileSize; TranslationMemory::Get().GetStats(docs, fileSize); sDocs.Printf("%s", wxNumberFormatter::ToString(docs)); sFileSize.Printf("%s", wxFileName::GetHumanReadableSize(fileSize, "--", 1, wxSIZE_CONV_SI)); } catch (Exception&) { // ignore Lucene errors -- if the index doesn't exist yet, just show -- } } m_stats->SetLabelMarkup(wxString::Format( "%s %s\n%s %s", _("Stored translations:"), sDocs, _("Database size on disk:"), sFileSize )); } void OnImportIntoTM(wxCommandEvent&) { wxWindowPtr dlg(new wxFileDialog( this, _("Select translation files to import"), wxEmptyString, wxEmptyString, Catalog::GetTypesFileMask({Catalog::Type::PO}), wxFD_OPEN | wxFD_FILE_MUST_EXIST | wxFD_MULTIPLE)); dlg->ShowWindowModalThenDo([=](int retcode){ if (retcode != wxID_OK) return; wxArrayString paths; dlg->GetPaths(paths); wxProgressDialog progress(_("Translation Memory"), _(L"Importing translations…"), (int)paths.size() * 2 + 1, this, wxPD_APP_MODAL|wxPD_AUTO_HIDE|wxPD_CAN_ABORT); auto tm = TranslationMemory::Get().GetWriter(); int step = 0; for (size_t i = 0; i < paths.size(); i++) { CatalogPtr cat = std::make_shared(paths[i]); if (!progress.Update(++step)) break; if (cat->IsOk()) tm->Insert(cat); if (!progress.Update(++step)) break; } progress.Pulse(_(L"Finalizing…")); tm->Commit(); UpdateStats(); }); } void OnResetTM(wxCommandEvent&) { auto title = _("Reset translation memory"); auto main = _("Are you sure you want to reset the translation memory?"); auto details = _(L"Resetting the translation memory will irrevocably delete all stored translations from it. You can’t undo this operation."); wxWindowPtr dlg(new wxMessageDialog(this, main, title, wxYES_NO | wxNO_DEFAULT | wxICON_WARNING)); dlg->SetExtendedMessage(details); dlg->SetYesNoLabels(_("Reset"), _("Cancel")); dlg->ShowWindowModalThenDo([this,dlg](int retcode){ if (retcode == wxID_YES) { wxBusyCursor bcur; auto tm = TranslationMemory::Get().GetWriter(); tm->DeleteAll(); tm->Commit(); UpdateStats(); } }); } void OnUpdateUI(wxUpdateUIEvent& e) { e.Enable(m_useTM->GetValue()); } wxCheckBox *m_useTM; wxCheckBox *m_mergeUse; wxChoice *m_mergeBehavior; wxStaticText *m_stats; }; class TMPage : public wxPreferencesPage { public: wxString GetName() const override { #if defined(__WXOSX__) || defined(__WXGTK__) // TRANSLATORS: This is abbreviation of "Translation Memory" used in Preferences on macOS. // Long text looks weird there, too short (like TM) too, but less so. "General" is about ideal // length there. return _("TM"); #else return _("Translation Memory"); #endif } wxBitmap GetLargeIcon() const override { return wxArtProvider::GetBitmap("Prefs-TM"); } wxWindow *CreateWindow(wxWindow *parent) override { return new TMPageWindow(parent); } }; class ExtractorsPageWindow : public PrefsPanel { public: ExtractorsPageWindow(wxWindow *parent) : PrefsPanel(parent) { wxSizer *topsizer = new wxBoxSizer(wxVERTICAL); wxSizer *sizer = new wxBoxSizer(wxVERTICAL); topsizer->Add(sizer, wxSizerFlags(1).Expand().PXDoubleBorderAll()); SetSizer(topsizer); sizer->Add(new ExplanationLabel(this, _("Source code extractors are used to find translatable strings in the source code files and extract them so that they can be translated.")), wxSizerFlags().Expand().PXDoubleBorder(wxBOTTOM)); // FIXME: Neither wxBORDER_ flag produces correct results on macOS or Windows, would need to paint manually auto listPanel = new wxPanel(this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL | MSW_OR_OTHER(wxBORDER_SIMPLE, wxBORDER_SUNKEN)); listPanel->SetBackgroundColour(wxSystemSettings::GetColour(wxSYS_COLOUR_LISTBOX)); auto listSizer = new wxBoxSizer(wxVERTICAL); listPanel->SetSizer(listSizer); CreateBuiltinExtractorsUI(listPanel, listSizer); auto customExLabel = new wxStaticText(listPanel, wxID_ANY, MSW_OR_OTHER(_("Custom extractors:"), _("Custom Extractors:"))); customExLabel->SetForegroundColour(ExplanationLabel::GetTextColor()); #ifdef __WXOSX__ customExLabel->SetWindowVariant(wxWINDOW_VARIANT_SMALL); #endif customExLabel->SetFont(customExLabel->GetFont().Bold()); listSizer->AddSpacer(PX(5)); listSizer->Add(customExLabel, wxSizerFlags().ReserveSpaceEvenIfHidden().Border(wxLEFT|wxRIGHT, PX(5))); listSizer->AddSpacer(PX(5)); m_list = new wxCheckListBox(listPanel, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0, nullptr, wxBORDER_NONE); m_list->SetMinSize(wxSize(PX(400),PX(200))); #ifdef __WXOSX__ m_list->SetWindowVariant(wxWINDOW_VARIANT_SMALL); #endif listSizer->Add(m_list, wxSizerFlags(1).Expand().Border(wxLEFT|wxRIGHT, PX(5))); sizer->Add(listPanel, wxSizerFlags(1).Expand().BORDER_WIN(wxLEFT, 1)); #if defined(__WXOSX__) m_new = new wxBitmapButton(this, wxID_ANY, wxArtProvider::GetBitmap("NSAddTemplate"), wxDefaultPosition, wxSize(18, 18), wxBORDER_SUNKEN); m_delete = new wxBitmapButton(this, wxID_ANY, wxArtProvider::GetBitmap("NSRemoveTemplate"), wxDefaultPosition, wxSize(18,18), wxBORDER_SUNKEN); int editButtonStyle = wxBU_EXACTFIT | wxBORDER_SIMPLE; #elif defined(__WXMSW__) m_new = new wxBitmapButton(this, wxID_ANY, wxArtProvider::GetBitmap("list-add"), wxDefaultPosition, wxSize(PX(19),PX(19))); m_delete = new wxBitmapButton(this, wxID_ANY, wxArtProvider::GetBitmap("list-remove"), wxDefaultPosition, wxSize(PX(19),PX(19))); int editButtonStyle = wxBU_EXACTFIT; #elif defined(__WXGTK__) m_new = new wxBitmapButton(this, wxID_ANY, wxArtProvider::GetBitmap("list-add"), wxDefaultPosition, wxDefaultSize, wxNO_BORDER); m_delete = new wxBitmapButton(this, wxID_ANY, wxArtProvider::GetBitmap("list-remove"), wxDefaultPosition, wxDefaultSize, wxNO_BORDER); int editButtonStyle = wxBU_EXACTFIT | wxBORDER_NONE; #endif m_edit = new wxButton(this, wxID_ANY, _(L"Edit…"), wxDefaultPosition, wxSize(-1, MSW_OR_OTHER(PX(19), -1)), editButtonStyle); #ifndef __WXGTK__ m_edit->SetWindowVariant(wxWINDOW_VARIANT_SMALL); #endif auto buttonSizer = new wxBoxSizer(wxHORIZONTAL); buttonSizer->Add(m_new); #ifdef __WXOSX__ buttonSizer->AddSpacer(PX(1)); #endif buttonSizer->Add(m_delete); #ifdef __WXOSX__ buttonSizer->AddSpacer(PX(1)); #endif buttonSizer->Add(m_edit); sizer->AddSpacer(PX(1)); sizer->Add(buttonSizer, wxSizerFlags().BORDER_MACOS(wxLEFT, PX(1))); m_new->Bind(wxEVT_BUTTON, &ExtractorsPageWindow::OnNewExtractor, this); m_edit->Bind(wxEVT_BUTTON, &ExtractorsPageWindow::OnEditExtractor, this); m_delete->Bind(wxEVT_BUTTON, &ExtractorsPageWindow::OnDeleteExtractor, this); m_list->Bind(wxEVT_CHECKLISTBOX, &ExtractorsPageWindow::OnEnableExtractor, this); m_edit->Bind(wxEVT_UPDATE_UI, [=](wxUpdateUIEvent& e) { e.Enable(m_list->GetSelection() != wxNOT_FOUND); }); m_delete->Bind(wxEVT_UPDATE_UI, [=](wxUpdateUIEvent& e) { e.Enable(m_list->GetSelection() != wxNOT_FOUND); }); customExLabel->Bind(wxEVT_UPDATE_UI, [=](wxUpdateUIEvent& e) { e.Show(m_list->GetCount() > 0); }); } void CreateBuiltinExtractorsUI(wxWindow *panel, wxSizer *topsizer) { auto sizer = new wxBoxSizer(wxHORIZONTAL); topsizer->Add(sizer, wxSizerFlags().Expand().Border(wxALL, PX(5))); sizer->Add(new wxStaticBitmap(panel, wxID_ANY, wxArtProvider::GetBitmap("ExtractorsGNUgettext")), wxSizerFlags().Top().Border(wxRIGHT, PX(5))); auto textSizer = new wxBoxSizer(wxVERTICAL); sizer->Add(textSizer, wxSizerFlags(1).Top()); auto heading = new wxStaticText(panel, wxID_ANY, _("GNU gettext")); #ifdef __WXOSX__ heading->SetWindowVariant(wxWINDOW_VARIANT_SMALL); #endif heading->SetFont(heading->GetFont().Bold()); textSizer->Add(heading, wxSizerFlags().Border(wxBOTTOM, PX(2))); auto desc = new ExplanationLabel(panel, _("Supports all programming languages recognized by GNU gettext tools (PHP, C/C++, C#, Perl, Python, Java, JavaScript and others).")); textSizer->Add(desc, wxSizerFlags(1).Expand()); textSizer->Layout(); } void InitValues(const wxConfigBase& cfg) override { m_extractors.Read(const_cast(&cfg)); m_list->Clear(); for (const auto& item: m_extractors.Data) { auto index = m_list->Append(bidi::platform_mark_direction(item.Name)); m_list->Check(index, item.Enabled); } if (!m_extractors.Data.empty()) { m_list->SetSelection(0); m_list->EnsureVisible(0); } } void SaveValues(wxConfigBase& cfg) override { m_extractors.Write(&cfg); } private: /// Called to launch dialog for editing parser properties. template void EditExtractor(int num, TFunctor completionHandler) { wxWindowPtr dlg(wxXmlResource::Get()->LoadDialog(this, "edit_extractor")); dlg->Centre(); auto extractor_language = XRCCTRL(*dlg, "extractor_language", wxTextCtrl); auto extractor_extensions = XRCCTRL(*dlg, "extractor_extensions", wxTextCtrl); auto extractor_command = XRCCTRL(*dlg, "extractor_command", wxTextCtrl); auto extractor_keywords = XRCCTRL(*dlg, "extractor_keywords", wxTextCtrl); auto extractor_files = XRCCTRL(*dlg, "extractor_files", wxTextCtrl); auto extractor_charset = XRCCTRL(*dlg, "extractor_charset", wxTextCtrl); { const LegacyExtractorSpec& nfo = m_extractors.Data[num]; extractor_language->SetValue(bidi::platform_mark_direction(nfo.Name)); extractor_extensions->SetValue(bidi::mark_direction(nfo.Extensions, TextDirection::LTR)); extractor_command->SetValue(bidi::mark_direction(nfo.Command, TextDirection::LTR)); extractor_keywords->SetValue(bidi::mark_direction(nfo.KeywordItem, TextDirection::LTR)); extractor_files->SetValue(bidi::mark_direction(nfo.FileItem, TextDirection::LTR)); extractor_charset->SetValue(bidi::mark_direction(nfo.CharsetItem, TextDirection::LTR)); } dlg->Bind ( wxEVT_UPDATE_UI, [=](wxUpdateUIEvent& e){ e.Enable(!extractor_language->IsEmpty() && !extractor_extensions->IsEmpty() && !extractor_command->IsEmpty() && !extractor_files->IsEmpty()); // charset, keywords could in theory be empty if unsupported by the parser tool }, wxID_OK ); m_suppressDataTransfer++; dlg->ShowWindowModalThenDo([=](int retcode){ m_suppressDataTransfer--; (void)dlg; // force use if (retcode == wxID_OK) { LegacyExtractorSpec& nfo = m_extractors.Data[num]; nfo.Name = bidi::strip_control_chars(extractor_language->GetValue().Strip(wxString::both)); nfo.Extensions = bidi::strip_control_chars(extractor_extensions->GetValue().Strip(wxString::both)); nfo.Command = bidi::strip_control_chars(extractor_command->GetValue().Strip(wxString::both)); nfo.KeywordItem = bidi::strip_control_chars(extractor_keywords->GetValue().Strip(wxString::both)); nfo.FileItem = bidi::strip_control_chars(extractor_files->GetValue().Strip(wxString::both)); nfo.CharsetItem = bidi::strip_control_chars(extractor_charset->GetValue().Strip(wxString::both)); m_list->SetString(num, nfo.Name); } completionHandler(retcode == wxID_OK); }); } void OnNewExtractor(wxCommandEvent&) { m_suppressDataTransfer++; LegacyExtractorSpec info; m_extractors.Data.push_back(info); auto index = m_list->Append(wxEmptyString); m_list->Check(index); EditExtractor(index, [=](bool added){ if (added) { m_edit->Enable(true); m_delete->Enable(true); } else { m_list->Delete(index); m_extractors.Data.erase(m_extractors.Data.begin() + index); } m_suppressDataTransfer--; if (wxPreferencesEditor::ShouldApplyChangesImmediately()) TransferDataFromWindow(); }); } void OnEditExtractor(wxCommandEvent&) { EditExtractor(m_list->GetSelection(), [=](bool changed){ if (changed && wxPreferencesEditor::ShouldApplyChangesImmediately()) TransferDataFromWindow(); }); } void OnDeleteExtractor(wxCommandEvent&) { int index = m_list->GetSelection(); auto title = MSW_OR_OTHER(_("Delete extractor"), ""); auto main = wxString::Format(_(L"Are you sure you want to delete the “%s” extractor?"), m_extractors.Data[index].Name); wxWindowPtr dlg(new wxMessageDialog(this, main, title, wxYES_NO | wxNO_DEFAULT | wxICON_QUESTION)); #ifdef __WXOSX__ dlg->SetExtendedMessage(" "); // prevent wx from using the title stupidly #endif dlg->SetYesNoLabels(_("Delete"), _("Cancel")); dlg->ShowWindowModalThenDo([this,index,dlg](int retcode){ if (retcode == wxID_YES) { m_extractors.Data.erase(m_extractors.Data.begin() + index); m_list->Delete(index); if (wxPreferencesEditor::ShouldApplyChangesImmediately()) TransferDataFromWindow(); } }); } void OnEnableExtractor(wxCommandEvent& e) { int index = e.GetInt(); m_extractors.Data[index].Enabled = m_list->IsChecked(index); if (wxPreferencesEditor::ShouldApplyChangesImmediately()) TransferDataFromWindow(); } LegacyExtractorsDB m_extractors; wxCheckListBox *m_list; wxButton *m_new, *m_edit, *m_delete; }; class ExtractorsPage : public wxPreferencesPage { public: wxString GetName() const override { return _("Extractors"); } wxBitmap GetLargeIcon() const override { return wxArtProvider::GetBitmap("Prefs-Extractors"); } wxWindow *CreateWindow(wxWindow *parent) override { return new ExtractorsPageWindow(parent); } }; #ifdef HAVE_HTTP_CLIENT class AccountsPageWindow : public PrefsPanel { public: AccountsPageWindow(wxWindow *parent) : PrefsPanel(parent) { wxSizer *topsizer = new wxBoxSizer(wxVERTICAL); m_login = new CrowdinLoginPanel(this); topsizer->Add(m_login, wxSizerFlags(1).Expand().Border(wxALL, PX(15))); SetSizer(topsizer); #ifdef __WXOSX__ // This window was created on demand, init immediately: m_login->EnsureInitialized(); #else // On other platforms, notebook pages are all created at once. Don't do // the expensive initialization until shown for the first time. This code // is a hack that takes advantage of wxPreferencesEditor's implementation // detail, but oh well: auto notebook = dynamic_cast(parent); if (notebook) { notebook->Bind(wxEVT_NOTEBOOK_PAGE_CHANGED, [=](wxBookCtrlEvent& e){ e.Skip(); if (notebook->GetPage(e.GetSelection()) == this) m_login->EnsureInitialized(); }); } #endif } void InitValues(const wxConfigBase&) override { } void SaveValues(wxConfigBase&) override { } private: CrowdinLoginPanel *m_login; }; class AccountsPage : public wxPreferencesPage { public: wxString GetName() const override { return _("Accounts"); } wxBitmap GetLargeIcon() const override { return wxArtProvider::GetBitmap("Prefs-Accounts"); } wxWindow *CreateWindow(wxWindow *parent) override { return new AccountsPageWindow(parent); } }; #endif // HAVE_HTTP_CLIENT #ifdef HAS_UPDATES_CHECK class UpdatesPageWindow : public PrefsPanel { public: UpdatesPageWindow(wxWindow *parent) : PrefsPanel(parent) { wxSizer *topsizer = new wxBoxSizer(wxVERTICAL); topsizer->SetMinSize(PX(400), -1); // for macOS look, wouldn't fit the toolbar otherwise wxSizer *sizer = new wxBoxSizer(wxVERTICAL); topsizer->Add(sizer, wxSizerFlags().Expand().PXDoubleBorderAll()); SetSizer(topsizer); m_updates = new wxCheckBox(this, wxID_ANY, _("Automatically check for updates")); sizer->Add(m_updates, wxSizerFlags().Expand().PXBorder(wxTOP|wxBOTTOM)); m_beta = new wxCheckBox(this, wxID_ANY, _("Include beta versions")); sizer->Add(m_beta, wxSizerFlags().Expand().PXBorder(wxBOTTOM)); sizer->Add(new ExplanationLabel(this, _("Beta versions contain the latest new features and improvements, but may be a bit less stable.")), wxSizerFlags().Expand().Border(wxLEFT, PX(ExplanationLabel::CHECKBOX_INDENT))); sizer->AddSpacer(PX(5)); if (wxPreferencesEditor::ShouldApplyChangesImmediately()) Bind(wxEVT_CHECKBOX, [=](wxCommandEvent&){ TransferDataFromWindow(); }); } void InitValues(const wxConfigBase&) override { #ifdef USE_SPARKLE m_updates->SetValue((bool)UserDefaults_GetBoolValue("SUEnableAutomaticChecks")); #endif #ifdef __WXMSW__ m_updates->SetValue(win_sparkle_get_automatic_check_for_updates() != 0); #endif m_beta->SetValue(wxGetApp().CheckForBetaUpdates()); if (wxGetApp().IsBetaVersion()) m_beta->Disable(); } void SaveValues(wxConfigBase& cfg) override { #ifdef __WXMSW__ win_sparkle_set_automatic_check_for_updates(m_updates->GetValue()); #endif if (!wxGetApp().IsBetaVersion()) { cfg.Write("check_for_beta_updates", m_beta->GetValue()); } #ifdef USE_SPARKLE UserDefaults_SetBoolValue("SUEnableAutomaticChecks", m_updates->GetValue()); #endif } private: wxCheckBox *m_updates, *m_beta; }; class UpdatesPage : public wxPreferencesPage { public: wxString GetName() const override { return _("Updates"); } wxBitmap GetLargeIcon() const override { return wxArtProvider::GetBitmap("Prefs-Updates"); } wxWindow *CreateWindow(wxWindow *parent) override { return new UpdatesPageWindow(parent); } }; #endif // HAS_UPDATES_CHECK class AdvancedPageWindow : public PrefsPanel { public: AdvancedPageWindow(wxWindow *parent) : PrefsPanel(parent) { wxSizer *topsizer = new wxBoxSizer(wxVERTICAL); wxSizer *sizer = new wxBoxSizer(wxVERTICAL); topsizer->Add(sizer, wxSizerFlags(1).Expand().PXDoubleBorderAll()); SetSizer(topsizer); sizer->Add(new ExplanationLabel(this, _("These settings affect internal formatting of PO files. Adjust them if you have specific requirements e.g. because of version control.")), wxSizerFlags().Expand().PXBorder(wxBOTTOM)); auto crlfbox = new wxBoxSizer(wxHORIZONTAL); sizer->Add(crlfbox, wxSizerFlags().Expand().PXBorder(wxTOP)); crlfbox->Add(new wxStaticText(this, wxID_ANY, _("Line endings:")), wxSizerFlags().Center().BORDER_WIN(wxTOP, PX(1))); m_crlf = new wxChoice(this, wxID_ANY); m_crlf->Append(_("Unix (recommended)")); m_crlf->Append(_("Windows")); crlfbox->Add(m_crlf, wxSizerFlags(1).Center().BORDER_MACOS(wxLEFT, PX(3)).BORDER_WIN(wxLEFT, PX(5))); /// TRANSLATORS: Followed by text control for entering number; wraps text at given width m_wrap = new wxCheckBox(this, wxID_ANY, _("Wrap at:")); crlfbox->AddSpacer(PX(10)); crlfbox->Add(m_wrap, wxSizerFlags().Center().BORDER_WIN(wxTOP, PX(1))); #ifdef __WXGTK3__ m_wrapWidth = new wxSpinCtrl(this, wxID_ANY, "", wxDefaultPosition, wxSize(PX(110),-1)); #else m_wrapWidth = new wxSpinCtrl(this, wxID_ANY, "", wxDefaultPosition, wxSize(PX(50),-1)); #endif m_wrapWidth->SetRange(10, 999); crlfbox->Add(m_wrapWidth, wxSizerFlags().Center().BORDER_MACOS(wxLEFT, PX(3))); m_keepFmt = new wxCheckBox(this, wxID_ANY, _("Preserve formatting of existing files")); sizer->Add(m_keepFmt, wxSizerFlags().PXBorder(wxTOP)); Fit(); if (wxPreferencesEditor::ShouldApplyChangesImmediately()) { Bind(wxEVT_CHECKBOX, [=](wxCommandEvent&){ TransferDataFromWindow(); }); Bind(wxEVT_CHOICE, [=](wxCommandEvent&){ TransferDataFromWindow(); }); Bind(wxEVT_TEXT, [=](wxCommandEvent&){ TransferDataFromWindow(); }); } // handle UI updates: m_wrapWidth->Bind(wxEVT_UPDATE_UI, [=](wxUpdateUIEvent& e){ e.Enable(m_wrap->GetValue()); }); } void InitValues(const wxConfigBase& cfg) override { m_keepFmt->SetValue(cfg.ReadBool("keep_crlf", true)); wxString format = cfg.Read("crlf_format", "unix"); int sel; if (format == "win") sel = 1; else /* "unix" or obsolete settings */ sel = 0; m_crlf->SetSelection(sel); m_wrap->SetValue(cfg.ReadBool("wrap_po_files", true)); m_wrapWidth->SetValue((int)cfg.ReadLong("wrap_po_files_width", 79)); } void SaveValues(wxConfigBase& cfg) override { cfg.Write("keep_crlf", m_keepFmt->GetValue()); static const char *formats[] = { "unix", "win" }; cfg.Write("crlf_format", formats[m_crlf->GetSelection()]); cfg.Write("wrap_po_files", m_wrap->GetValue()); cfg.Write("wrap_po_files_width", m_wrapWidth->GetValue()); } private: wxChoice *m_crlf; wxCheckBox *m_wrap; wxSpinCtrl *m_wrapWidth; wxCheckBox *m_keepFmt; }; class AdvancedPage : public wxStockPreferencesPage { public: AdvancedPage() : wxStockPreferencesPage(Kind_Advanced) {} wxString GetName() const override { return _("Advanced"); } wxWindow *CreateWindow(wxWindow *parent) override { return new AdvancedPageWindow(parent); } }; } // anonymous namespace std::unique_ptr PoeditPreferencesEditor::Create() { std::unique_ptr p(new PoeditPreferencesEditor); p->AddPage(new GeneralPage); p->AddPage(new TMPage); p->AddPage(new ExtractorsPage); #ifdef HAVE_HTTP_CLIENT p->AddPage(new AccountsPage); #endif #ifdef HAS_UPDATES_CHECK p->AddPage(new UpdatesPage); #endif p->AddPage(new AdvancedPage); return p; } poedit-2.0.6/src/progressinfo.cpp0000664000372000037200000000717313230131554013744 00000000000000/* * This file is part of Poedit (https://poedit.net) * * Copyright (C) 2000-2018 Vaclav Slavik * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * DEALINGS IN THE SOFTWARE. * */ #include "progressinfo.h" #include #include #include #include #include #include #include #include #include #include class ProgressDlg : public wxDialog { public: ProgressDlg(bool *cancel) : wxDialog(), m_cancelFlag(cancel) {} private: bool *m_cancelFlag; DECLARE_EVENT_TABLE() void OnCancel(wxCommandEvent&) { ((wxButton*)FindWindow(wxID_CANCEL))->Enable(false); *m_cancelFlag = true; } }; BEGIN_EVENT_TABLE(ProgressDlg, wxDialog) EVT_BUTTON(wxID_CANCEL, ProgressDlg::OnCancel) END_EVENT_TABLE() ProgressInfo::ProgressInfo(wxWindow *parent, const wxString& title) { m_cancelled = false; m_dlg = new ProgressDlg(&m_cancelled); wxXmlResource::Get()->LoadDialog(m_dlg, parent, "extractor_progress"); m_dlg->SetTitle(title); m_dlg->Show(true); m_disabler = new wxWindowDisabler(m_dlg); } ProgressInfo::~ProgressInfo() { Done(); } void ProgressInfo::Hide() { m_dlg->Show(false); m_dlg->Refresh(); wxEventLoop::GetActive()->YieldFor(wxEVT_CATEGORY_UI); } void ProgressInfo::Show() { m_dlg->Show(true); m_dlg->Refresh(); wxEventLoop::GetActive()->YieldFor(wxEVT_CATEGORY_UI); } void ProgressInfo::Done() { if (m_disabler) { delete m_disabler; m_disabler = nullptr; } if (m_dlg) { m_dlg->Destroy(); m_dlg = nullptr; } } void ProgressInfo::SetGaugeMax(int limit) { XRCCTRL(*m_dlg, "progress", wxGauge)->SetRange(limit); } bool ProgressInfo::UpdateGauge(int increment) { wxGauge *g = XRCCTRL(*m_dlg, "progress", wxGauge); g->SetValue(g->GetValue() + increment); #ifdef __WXOSX__ // Set again the message to workaround a wxOSX bug wxStaticText *txt = XRCCTRL(*m_dlg, "info", wxStaticText); txt->SetLabel(txt->GetLabel()); txt->Update(); #endif return !m_cancelled; } void ProgressInfo::ResetGauge(int value) { XRCCTRL(*m_dlg, "progress", wxGauge)->SetValue(value); } void ProgressInfo::PulseGauge() { XRCCTRL(*m_dlg, "progress", wxGauge)->Pulse(); } void ProgressInfo::UpdateMessage(const wxString& text) { wxStaticText *txt = XRCCTRL(*m_dlg, "info", wxStaticText); txt->SetLabel(text); txt->Refresh(); txt->Update(); m_dlg->Refresh(); wxEventLoop::GetActive()->YieldFor(wxEVT_CATEGORY_UI); } poedit-2.0.6/src/main_toolbar.h0000664000372000037200000000320213230131554013324 00000000000000/* * This file is part of Poedit (https://poedit.net) * * Copyright (C) 2014-2018 Vaclav Slavik * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * DEALINGS IN THE SOFTWARE. * */ #ifndef Poedit_main_toolbar_h #define Poedit_main_toolbar_h #include #include /// Abstract interface to the app's main toolbar. class MainToolbar { public: virtual ~MainToolbar() {} virtual void EnableSyncWithCrowdin(bool on) = 0; static std::unique_ptr Create(wxFrame *parent); protected: static std::unique_ptr CreateWX(wxFrame *parent); MainToolbar() {} }; #endif // Poedit_main_toolbar_h poedit-2.0.6/src/editing_area.h0000664000372000037200000001067513230131554013305 00000000000000/* * This file is part of Poedit (https://poedit.net) * * Copyright (C) 1999-2018 Vaclav Slavik * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * DEALINGS IN THE SOFTWARE. * */ #ifndef Poedit_editing_area_h #define Poedit_editing_area_h #include "catalog.h" #include #include #include class PoeditListCtrl; class SourceTextCtrl; class TranslationTextCtrl; class SwitchButton; class WXDLLIMPEXP_FWD_CORE wxBoxSizer; class WXDLLIMPEXP_FWD_CORE wxNotebook; class WXDLLIMPEXP_FWD_CORE wxStaticText; /** Bottom area of the main screen where editing takes place. */ class EditingArea : public wxPanel { public: /// Control's operation mode enum Mode { Editing, POT }; /// Flags for UpdateToTextCtrl() enum UpdateToTextCtrlFlags { /// Change to textctrl should be undoable by the user UndoableEdit = 0x01, /// Change is due to item change, discard undo buffer ItemChanged = 0x02 }; /// Constructor EditingArea(wxWindow *parent, PoeditListCtrl *associatedList, Mode mode); ~EditingArea(); // Hooked-up signals: /// Called from UpdateFromTextCtrl() after filling item with data std::function OnUpdatedFromTextCtrl; void SetCustomFont(const wxFont& font); bool InitSpellchecker(bool enabled, Language lang); void SetLanguage(Language lang); void RecreatePluralTextCtrls(CatalogPtr catalog); void SetSingleSelectionMode(); void SetMultipleSelectionMode(); void SetTextFocus(); bool HasTextFocus(); bool HasTextFocusInPlurals(); bool IsShowingPlurals(); void CopyFromSingular(); /// Puts text from catalog & listctrl to textctrls. void UpdateToTextCtrl(CatalogItemPtr item, int flags); /// Puts text from textctrls to catalog & listctrl. void UpdateFromTextCtrl(); void DontAutoclearFuzzyStatus() { m_dontAutoclearFuzzyStatus = true; } bool ShouldNotAutoclearFuzzyStatus() { return m_dontAutoclearFuzzyStatus; } /// Move focused tab to prev(-1) or next(+1) void ChangeFocusedPluralTab(int offset); // Semi-private use (TODO: get rid of them) SourceTextCtrl *Ctrl_Original() const { return m_textOrig; } SourceTextCtrl *Ctrl_OriginalPlural() const { return m_textOrigPlural; } TranslationTextCtrl *Ctrl_Translation() const { return m_textTrans; } wxNotebook *Ctrl_PluralNotebook() const { return m_pluralNotebook; } TranslationTextCtrl *Ctrl_PluralTranslation(size_t index) const { return m_textTransPlural[index]; } private: void CreateEditControls(wxBoxSizer *sizer); void CreateTemplateControls(wxBoxSizer *sizer); void SetupTextCtrlSizes(); void ShowPluralFormUI(bool show); void ShowPart(wxWindow *part, bool show); void OnPaint(wxPaintEvent&); private: class TagLabel; class IssueLabel; PoeditListCtrl *m_associatedList; bool m_dontAutoclearFuzzyStatus; SourceTextCtrl *m_textOrig, *m_textOrigPlural; SwitchButton *m_fuzzy; TranslationTextCtrl *m_textTrans; std::vector m_textTransPlural; TranslationTextCtrl *m_textTransSingularForm; wxNotebook *m_pluralNotebook; wxStaticText *m_labelSingular, *m_labelPlural; wxStaticText *m_labelSource, *m_labelTrans; TagLabel *m_tagContext; TagLabel *m_tagFormat; TagLabel *m_tagPretranslated; IssueLabel *m_issueLine; }; #endif // Poedit_editing_area_h poedit-2.0.6/src/syntaxhighlighter.h0000664000372000037200000000461013230131554014427 00000000000000/* * This file is part of Poedit (https://poedit.net) * * Copyright (C) 2014-2018 Vaclav Slavik * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * DEALINGS IN THE SOFTWARE. * */ #ifndef Poedit_syntaxhighlighter_h #define Poedit_syntaxhighlighter_h #include #include #include class CatalogItem; class SyntaxHighlighter; typedef std::shared_ptr SyntaxHighlighterPtr; /** Highlights parts of translation (or source) text that have special meaning. Highlighted parts include e.g. C-style escape sequences (\n etc.), leading/trailing whitespace or format string parts. */ class SyntaxHighlighter { public: virtual ~SyntaxHighlighter() {} // Kind of the element to highlight enum TextKind { LeadingWhitespace, Escape, Markup, Format }; typedef std::function CallbackType; /** Perform highlighting in given text. The @a highlight function is called once for every range that should be highlighted, with the range boundaries and highlight kind as its arguments. */ virtual void Highlight(const std::wstring& s, const CallbackType& highlight) = 0; /// Return highlighter suitable for given translation item static SyntaxHighlighterPtr ForItem(const CatalogItem& item); }; #endif // Poedit_syntaxhighlighter_h poedit-2.0.6/src/spellchecking.cpp0000664000372000037200000001307013230131554014030 00000000000000/* * This file is part of Poedit (https://poedit.net) * * Copyright (C) 2014-2018 Vaclav Slavik * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * DEALINGS IN THE SOFTWARE. * */ #include "spellchecking.h" #include "str_helpers.h" #ifdef __WXGTK__ #include extern "C" { #include } #endif #ifdef __WXMSW__ #include #include #ifndef IMF_SPELLCHECKING #define IMF_SPELLCHECKING 0x0800 #endif #endif #include "edapp.h" #ifdef __WXGTK__ // helper functions that finds GtkTextView of wxTextCtrl: static GtkTextView *GetTextView(wxTextCtrl *ctrl) { GtkWidget *parent = ctrl->m_widget; GList *child = gtk_container_get_children(GTK_CONTAINER(parent)); while (child) { if (GTK_IS_TEXT_VIEW(child->data)) { return GTK_TEXT_VIEW(child->data); } child = child->next; } wxFAIL_MSG( "couldn't find GtkTextView for text control" ); return NULL; } #if GTK_CHECK_VERSION(3,0,0) bool InitTextCtrlSpellchecker(wxTextCtrl *text, bool enable, const Language& lang) { GtkTextView *textview = GetTextView(text); wxASSERT_MSG( textview, "wxTextCtrl is supposed to use GtkTextView" ); GtkSpellChecker *spell = gtk_spell_checker_get_from_text_view(textview); if (enable) { if (!spell) { spell = gtk_spell_checker_new(); gtk_spell_checker_attach(spell, textview); } return gtk_spell_checker_set_language(spell, lang.Code().c_str(), nullptr); } else { if (spell) gtk_spell_checker_detach(spell); return true; } } #else // GTK+ 2.x bool InitTextCtrlSpellchecker(wxTextCtrl *text, bool enable, const Language& lang) { GtkTextView *textview = GetTextView(text); wxASSERT_MSG( textview, "wxTextCtrl is supposed to use GtkTextView" ); GtkSpell *spell = gtkspell_get_from_text_view(textview); GError *err = NULL; if (enable) { if (spell) gtkspell_set_language(spell, lang.Code().c_str(), &err); else gtkspell_new_attach(textview, lang.Code().c_str(), &err); } else // !enable { // GtkSpell when used with Zemberek Enchant module doesn't work // correctly if you repeatedly attach and detach a speller to text // view. See https://poedit.net/trac/ticket/276 for details. // // To work around this, we set the language to a non-existent one // instead of detaching GtkSpell -- this has the same effect as // detaching the speller as far as the UI is concerned. if (spell) gtkspell_set_language(spell, "unknown_language", &err); } if (err) g_error_free(err); return err == NULL; } #endif // GTK+ 2.x #endif // __WXGTK__ #ifdef __WXOSX__ bool SetSpellcheckerLang(const wxString& lang) { NSString *nslang = str::to_NS(lang); NSSpellChecker *sc = [NSSpellChecker sharedSpellChecker]; [sc setAutomaticallyIdentifiesLanguages:NO]; return [sc setLanguage: nslang]; } bool InitTextCtrlSpellchecker(wxTextCtrl *text, bool enable, const Language& /*lang*/) { NSScrollView *scroll = (NSScrollView*)text->GetHandle(); NSTextView *view = [scroll documentView]; [view setContinuousSpellCheckingEnabled:enable]; [view setGrammarCheckingEnabled:enable]; return true; } #endif // __WXOSX__ #ifdef __WXMSW__ void PrepareTextCtrlForSpellchecker(wxTextCtrl *text) { // Set spellchecking-friendly style on the text control. Enabling spellchecking // itself is done with EM_SETLANGOPTIONS in InitTextCtrlSpellchecker() HWND hwnd = (HWND)text->GetHWND(); auto editStyle = SES_USECTF | SES_CTFALLOWEMBED | SES_CTFALLOWSMARTTAG | SES_CTFALLOWPROOFING; ::SendMessage(hwnd, EM_SETEDITSTYLE, editStyle, editStyle); } bool InitTextCtrlSpellchecker(wxTextCtrl *text, bool enable, const Language& /*lang*/) { HWND hwnd = (HWND) text->GetHWND(); auto langOptions = ::SendMessage(hwnd, EM_GETLANGOPTIONS, 0, 0); if (enable) langOptions |= IMF_SPELLCHECKING; else langOptions &= ~IMF_SPELLCHECKING; ::SendMessage(hwnd, EM_SETLANGOPTIONS, 0, langOptions); return true; } #endif // __WXMSW__ #ifndef __WXMSW__ void ShowSpellcheckerHelp() { #if defined(__WXOSX__) #define SPELL_HELP_PAGE "SpellcheckerMac" #elif defined(__UNIX__) #define SPELL_HELP_PAGE "SpellcheckerLinux" #else #error "missing spellchecker instructions for platform" #endif wxGetApp().OpenPoeditWeb("/trac/wiki/Doc/" SPELL_HELP_PAGE); } #endif // !__WXMSW__ poedit-2.0.6/src/crowdin_client.h0000664000372000037200000001024713230131554013670 00000000000000/* * This file is part of Poedit (https://poedit.net) * * Copyright (C) 2015-2018 Vaclav Slavik * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * DEALINGS IN THE SOFTWARE. * */ #ifndef Poedit_crowdin_client_h #define Poedit_crowdin_client_h #ifdef HAVE_HTTP_CLIENT #include #include "concurrency.h" #include "language.h" /** Client to the Crowdin platform. */ class CrowdinClient { public: /// Return singleton instance of the client. static CrowdinClient& Get(); /// Destroys the singleton, must be called (only) on app shutdown. static void CleanUp(); /// Is the user currently signed into Crowdin? bool IsSignedIn() const; /// Wrap relative Crowdin link to absolute URL static std::string WrapLink(const std::string& page); /** Authenticate with Crowdin. This opens the browser to authenticate the app. The app must handle poedit:// URL and call HandleOAuthCallback. @a callback will be called after receiving the OAuth token. */ dispatch::future Authenticate(); void HandleOAuthCallback(const std::string& uri); bool IsOAuthCallback(const std::string& uri); /// Sign out of Crowdin, forget the token void SignOut(); /// Information about logged-in user struct UserInfo { std::wstring name; std::wstring login; }; /// Retrieve information about the current user asynchronously dispatch::future GetUserInfo(); /// Project listing info struct ProjectListing { std::wstring name; std::string identifier; bool downloadable; }; /// Retrieve listing of projects accessible to the user dispatch::future> GetUserProjects(); /// Project detailed information struct ProjectInfo { std::wstring name; std::string identifier; std::vector languages; std::vector files; }; /// Retrieve listing of projects accessible to the user dispatch::future GetProjectInfo(const std::string& project_id); /// Asynchronously download specific Crowdin file into @a output_file. dispatch::future DownloadFile(const std::string& project_id, const std::wstring& file, const Language& lang, const std::wstring& output_file); /// Asynchronously upload specific Crowdin file data. dispatch::future UploadFile(const std::string& project_id, const std::wstring& file, const Language& lang, const std::string& file_content); private: CrowdinClient(); ~CrowdinClient(); void SignInIfAuthorized(); void SetToken(const std::string& token); void SaveAndSetToken(const std::string& token); class crowdin_http_client; std::unique_ptr m_api; std::shared_ptr> m_authCallback; static CrowdinClient *ms_instance; }; #endif // HAVE_HTTP_CLIENT #endif // Poedit_crowdin_client_h poedit-2.0.6/src/cat_update.h0000664000372000037200000000405213230131554012773 00000000000000/* * This file is part of Poedit (https://poedit.net) * * Copyright (C) 2000-2018 Vaclav Slavik * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * DEALINGS IN THE SOFTWARE. * */ #ifndef Poedit_cat_update_h #define Poedit_cat_update_h #include "catalog.h" class WXDLLIMPEXP_FWD_CORE wxWindow; /// Result of PerformUpdateFromSources() enum class UpdateResultReason { Unspecified, CancelledByUser, NoSourcesFound }; enum UpdateFlags { Update_DontShowSummary = 1 }; /** Update catalog from source code, if configured, and provide UI during the operation. */ bool PerformUpdateFromSources(wxWindow *parent, CatalogPtr catalog, UpdateResultReason& reason, int flags = 0); /** Similarly for updating from a POT file. */ bool PerformUpdateFromPOT(wxWindow *parent, CatalogPtr catalog, const wxString& pot_file, UpdateResultReason& reason); #endif // Poedit_cat_update_h poedit-2.0.6/src/unicode_helpers.cpp0000664000372000037200000000710313230131554014365 00000000000000/* * This file is part of Poedit (https://poedit.net) * * Copyright (C) 2016-2018 Vaclav Slavik * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * DEALINGS IN THE SOFTWARE. * */ #include "unicode_helpers.h" #include "str_helpers.h" #include namespace bidi { TextDirection get_base_direction(const wxString& text) { if (text.empty()) return TextDirection::LTR; auto s = str::to_icu_raw(text); switch (ubidi_getBaseDirection((const UChar*)s.data(), (int)s.length())) { case UBIDI_RTL: return TextDirection::RTL; case UBIDI_LTR: case UBIDI_NEUTRAL: return TextDirection::LTR; case UBIDI_MIXED: assert(false); // impossible value here return TextDirection::LTR; } return TextDirection::LTR; // VC++ is stupid } wxString strip_pointless_control_chars(const wxString& text, TextDirection dir) { if (text.empty()) return text; const wchar_t first = *text.begin(); const wchar_t last = *text.rbegin(); // POP DIRECTIONAL FORMATTING at the end is pointless (can happen on macOS // when editing RTL text under LTR locale: if (last == PDF) { return strip_pointless_control_chars(text.substr(0, text.size() - 1), dir); } if (dir == TextDirection::LTR) { switch (first) { case LRE: case LRO: case LRI: case LRM: return text.substr(1); default: return text; } } else if (dir == TextDirection::RTL) { switch (first) { case RLE: case RLO: case RLI: case RLM: return text.substr(1); default: return text; } } return text; } wxString strip_control_chars(const wxString& text) { if (text.empty()) return text; const wchar_t first = *text.begin(); switch (first) { case LRE: case LRO: case LRI: case LRM: case RLE: case RLO: case RLI: case RLM: return text.substr(1); default: break; } return text; } wxString mark_direction(const wxString& text, TextDirection dir) { wchar_t mark = (dir == TextDirection::LTR) ? LRE : RLE; auto out = mark + text; #ifdef BIDI_NEEDS_DIRECTION_ON_EACH_LINE wchar_t replacement[3] = {0}; replacement[0] = L'\n'; replacement[1] = mark; out.Replace("\n", replacement); #endif return out; } } // namespace bidi poedit-2.0.6/src/export_html.cpp0000664000372000037200000002703313230131554013566 00000000000000/* * This file is part of Poedit (https://poedit.net) * * Copyright (C) 2003 Christophe Hermier * Copyright (C) 2013-2018 Vaclav Slavik * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * DEALINGS IN THE SOFTWARE. * */ #include "catalog.h" #include "utility.h" #include "str_helpers.h" #include namespace { inline std::string fmt_trans(const wxString& s) { wxString out = EscapeMarkup(s); out.Replace("\n", "\n
"); return str::to_utf8(out); } template inline void TableRow(std::ostream& f, const T1& col1, const T2& col2) { f << "" << "" << str::to_utf8(col1) << "" << "" << str::to_utf8(col2) << "" << "\n"; } extern const char *CSS_STYLE; } // anonymous namespace void Catalog::ExportToHTML(std::ostream& f) { const bool translated = HasCapability(Catalog::Cap::Translations); f << "\n" "\n" "\n" " " << str::to_utf8(m_header.Project) << "\n" " \n" " \n" "\n" "\n" "
\n"; // Metadata section: f << "\n"; if (!m_header.Project.empty()) TableRow(f, _("Project:"), m_header.Project); if (translated && m_header.Lang.IsValid()) TableRow(f, _("Language:"), m_header.Lang.DisplayName()); f << "\n"; // Statistics: if (translated) { int all = 0; int fuzzy = 0; int untranslated = 0; int unfinished = 0; GetStatistics(&all, &fuzzy, nullptr, &untranslated, &unfinished); int percent = (all == 0 ) ? 0 : (100 * (all - unfinished) / all); f << "
\n" << "
\n"; if (all > unfinished) f << "
 
\n"; if (fuzzy > 0) f << "
 
\n"; if (untranslated > 0) f << "
 
\n"; f << "
\n" << "
"; f << str::to_utf8(wxString::Format(_("Translated: %d of %d (%d %%)"), all - unfinished, all, percent)); if (unfinished > 0) f << str::to_utf8(L" • ") << str::to_utf8(wxString::Format(_("Remaining: %d"), unfinished)); f << "
\n" << "
\n"; } else { int all = (int)items().size(); f << "
\n" << "
\n" << "
 
\n" << "
\n" << "
" << str::to_utf8(wxString::Format(wxPLURAL("%d entry", "%d entries", all), all)) << "
\n" << "
\n"; } // Translations: std::string lang_src, lang_tra; if (m_sourceLanguage.IsValid()) lang_src = " lang='" + m_sourceLanguage.LanguageTag() + "'"; if (m_header.Lang.IsValid()) { lang_tra = " lang='" + m_header.Lang.LanguageTag() + "'"; if (m_header.Lang.IsRTL()) lang_tra += " dir='rtl'"; } auto thead_src = m_sourceLanguage.IsValid() ? (wxString::Format(_(L"Source text — %s"), m_sourceLanguage.DisplayName())) : _("Source text"); auto thead_tra = wxString::Format(_(L"Translation — %s"), m_header.Lang.IsValid() ? m_header.Lang.DisplayName() : _("unknown language")); f << "\n" " \n" " \n" " \n"; if (translated) { f << " \n"; } f << " \n" " \n" " \n"; for (auto& item: items()) { bool hasComments = item->HasComment() || item->HasExtractedComments(); std::string klass("i"); if (!item->IsTranslated()) klass += " untrans"; if (item->IsFuzzy()) klass += " fuzzy"; if (hasComments) klass += " with-comments"; f << "\n"; // Source string: f << "\n"; // Translation: if (translated) { f << "\n"; } // Notes, if present: if (hasComments) { f << "\n" << "\n" << " \n"; } f << "\n"; } f << "\n" "
" << str::to_utf8(thead_src) << "" << str::to_utf8(thead_tra) << "
\n"; if (item->HasContext()) f << " " << fmt_trans(item->GetContext()) << ""; if (item->HasPlural()) { f << "
    \n" << "
  1. " << fmt_trans(item->GetString()) << "
  2. \n" << "
  3. " << fmt_trans(item->GetPluralString()) << "
  4. \n" << "
\n"; } else { f << fmt_trans(item->GetString()); } f << "
\n"; if (item->HasPlural()) { if (item->IsTranslated()) { f << "
    \n"; for (auto t: item->GetTranslations()) f << "
  1. " << fmt_trans(t) << "
  2. \n"; f << "
\n"; } } else { f << fmt_trans(item->GetTranslation()); } f << "
"; if (item->HasExtractedComments()) { f << "

\n"; for (auto& n: item->GetExtractedComments()) f << fmt_trans(n) << "
\n"; f << "

\n"; } if (item->HasComment()) { f << "

\n" << fmt_trans(item->GetComment()) << "

\n"; } f << "
\n" "
\n" "\n" "\n"; } namespace { const char *CSS_STYLE = R"( /* Based on Minimal CSS (minimalcss.com) under the MIT license. */ /* Reset */ * { margin: 0; padding: 0; -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; } /* Layout */ body { background-color: #fff; color: #333; font: 14px/20px "HelveticaNeue", "Helvetica Neue", Helvetica, Arial, sans-serif; } header { width: 100%; margin: 0 auto; position: relative; padding: 20px 0; margin-bottom: 20px; } nav ul { margin: 0; } nav ul li { display: inline; margin-right: 20px; font-size: 16px; line-height: 28px; color: #333; } nav ul li a { color: #333; } .container { position: relative; max-width: 90%; margin: 0 auto; } footer { border-top:1px solid #ccc; font-size:11px; line-height:26px; color:#999; } footer a { color:#999999; } footer a:hover { color:#105CB6; } footer ul li { display:inline; list-style:none; padding-left:20px; } /* Typography */ a { color: #105CB6; text-decoration: none; } a:hover, a:focus { color: #105CB6; text-decoration: underline; } a:active { color: #105CB6; } h1 { font-size: 24px; line-height: 20px; margin: 10px 0; } h2 { font-size: 20px; line-height: 20px; margin: 10px 0; } h3 { font-size: 16px; line-height: 20px; margin: 10px 0; } h4 { font-size: 14px; line-height: 20px; margin: 10px 0; } h5 { font-size: 12px; line-height: 20px; margin: 10px 0; } h5 { font-size: 10px; line-height: 20px; margin: 10px 0; } h1,h2,h3,h4,h5,h6 { color: #333; } p { margin-bottom: 10px; } .float-left { float: left; } .float-right { float: right; } img.float-left { float: left; margin: 0 20px 20px 0; } img.float-right { float: right; margin: 0 0 20px 20px; } img.center { margin: 0 auto; display: block; } .text-left { text-align: left; } .text-center { text-align: center; } .text-right { text-align: right; } .text-justify { text-align: justify; } /* Misc */ hr { background-color: #ccc; border: 0px; color: #ccc; height: 1px; margin: 8px 0 20px 0; } pre, code { background:#E0ECF6; display:block; margin-bottom: 20px; padding:10px; } blockquote { margin: 10px 10px 20px; padding: 9px; background-color: #f8f8f8; color: #666; border-left: 5px solid #ddd; font: 14px/20px Georgia, Times, serif; quotes: "\201C" "\201D"; } blockquote p { margin: 0; } blockquote:before { content: open-quote; font-weight: bold; } blockquote:after { content: close-quote; font-weight: bold; } /* List */ ul { list-style-position:inside; } ol { list-style-position:inside; } /* Table */ table { border-collapse: collapse; border-spacing: 0; } th { font-weight: bold; } tfoot { font-style: italic; } /* Metadata part */ .metadata { margin-top: 15px; margin-bottom: 10px; font-size: 90%; } table.metadata td { padding-right: 20px; } .stats { padding-top: 5px; padding-bottom: 20px; } .graph { width: 100%; } .graph div { float: left; } .graph div:first-child { border-top-left-radius: 3px; border-bottom-left-radius: 3px; } .graph div:last-child { border-top-right-radius: 3px; border-bottom-right-radius: 3px; } .percent-done { background-color: rgb(90, 228, 140); height: 10px; } .percent-fuzzy { background-color: rgb(255, 167, 52); height: 10px; } .percent-untrans { background-color: #F1F1F1; height: 10px; } .legend { font-size: smaller; color: #aaa; padding-top: 12px; text-align: center; } /* Translations */ table.translations { width: 100%; table-layout: fixed; } table.translations th, table.translations td { padding: 5px 10px; vertical-align: top; border-bottom: 1px solid #E1E1E1; } table.translations th { text-align: left; } table.translations th:first-child, table.translations td:first-child { padding-left: 0; } table.translations th:last-child, table.translations td:last-child { padding-right: 0; } .with-comments td { border-bottom: none !important; } tr.comments div { float: right; max-width: 75%; font-size: smaller; color: #aaa; } tr.comments div p:last-child { margin-bottom: 0; } .fuzzy .tra { color: rgb(218, 123, 0); } .msgctxt { color: rgb(70, 109, 137); font-size: smaller; background-color: rgb(217, 232, 242); padding: 1px 2px; margin-right: 4px; } )"; } // anonymous namespace poedit-2.0.6/src/utility.cpp0000664000372000037200000003113613230131554012723 00000000000000/* * This file is part of Poedit (https://poedit.net) * * Copyright (C) 2010-2018 Vaclav Slavik * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * DEALINGS IN THE SOFTWARE. * */ #include "utility.h" #include #include #include #include #if wxUSE_GUI #include #endif #ifdef __WXOSX__ #include #endif #ifdef __UNIX__ #include #include #include #endif #include "str_helpers.h" wxString EscapeMarkup(const wxString& str) { wxString s(str); s.Replace("&", "&"); s.Replace("<", "<"); s.Replace(">", ">"); return s; } wxFileName CommonDirectory(const wxFileName& a, const wxFileName& b) { if (!a.IsOk()) return wxFileName::DirName(b.GetPath());; if (!b.IsOk()) return wxFileName::DirName(a.GetPath());; const auto& dirs_a = a.GetDirs(); const auto& dirs_b = b.GetDirs(); wxFileName d = wxFileName::DirName(a.GetPath()); const auto count = std::min(dirs_a.size(), dirs_b.size()); size_t i = 0; for (i = 0; i < count; i++) { if (dirs_a[i] != dirs_b[i]) break; } while (d.GetDirCount() != i) d.RemoveLastDir(); return d; } wxFileName MakeFileName(const wxString& path) { wxFileName fn; if (path.empty()) return fn; if (wxFileName::DirExists(path) || path.Last() == wxFILE_SEP_PATH) fn.AssignDir(path); else fn.Assign(path); fn.Normalize(wxPATH_NORM_DOTS | wxPATH_NORM_ABSOLUTE); return fn; } // ---------------------------------------------------------------------- // TempDirectory // ---------------------------------------------------------------------- bool TempDirectory::ms_keepFiles = false; TempDirectory::TempDirectory() { #ifdef HAVE_MKDTEMP wxString path = wxFileName::GetTempDir(); path += "/poeditXXXXXX"; wxCharBuffer buf(path.fn_str()); if ( mkdtemp(buf.data()) == NULL ) { wxLogError(_("Cannot create temporary directory.")); return; } m_dir = wxConvFile.cMB2WX(buf.data()); #else for ( ;; ) { wxString name = wxFileName::CreateTempFileName("poedit"); if ( name.empty() ) { wxLogError(_("Cannot create temporary directory.")); return; } wxLogNull null; if ( wxRemoveFile(name) && wxMkdir(name, 0700) ) { #ifdef __WXMSW__ // prevent possible problems with Unicode filenames in launched // third party tools (e.g. gettext): m_dir = wxFileName(name).GetShortPath(); #else m_dir = name; #endif wxLogTrace("poedit.tmp", "created temp dir %s", name.c_str()); break; } // else: try again } #endif } TempDirectory::~TempDirectory() { Clear(); } void TempDirectory::Clear() { if ( m_dir.empty() ) return; if ( ms_keepFiles ) { wxLogTrace("poedit.tmp", "keeping temp files in %s", m_dir.c_str()); return; } wxLogTrace("poedit.tmp", "removing temp dir %s", m_dir.c_str()); wxFileName::Rmdir(m_dir, wxPATH_RMDIR_RECURSIVE); m_dir.clear(); } wxString TempDirectory::CreateFileName(const wxString& suffix) { wxASSERT( !m_dir.empty() ); int counter = m_counters[suffix]++; wxString s = wxString::Format("%s%c%s%s", m_dir.c_str(), wxFILE_SEP_PATH, counter > 0 ? wxString::Format("%d", counter) : wxString(), suffix.c_str()); wxLogTrace("poedit.tmp", "new temp file %s", s.c_str()); return s; } // ---------------------------------------------------------------------- // TempOutputFileFor // ---------------------------------------------------------------------- TempOutputFileFor::TempOutputFileFor(const wxString& filename) : m_filenameFinal(filename) { wxString path, name, ext; wxFileName::SplitPath(filename, &path, &name, &ext); if (path.empty()) path = "."; if (!ext.empty()) ext = "." + ext; #ifdef __WXOSX__ NSURL *fileUrl = [NSURL fileURLWithPath:str::to_NS(filename)]; NSURL *tempdirUrl = [[NSFileManager defaultManager] URLForDirectory:NSItemReplacementDirectory inDomain:NSUserDomainMask appropriateForURL:[fileUrl URLByDeletingLastPathComponent] create:YES error:nil]; if (tempdirUrl) m_tempDir = str::to_wx([tempdirUrl path]); #endif wxString counter; for (;;) { #ifdef __WXOSX__ if (!m_tempDir.empty()) { m_filenameTmp = m_tempDir + wxFILE_SEP_PATH + name + counter + ext; } else #endif // __WXOSX__ { // Temp filenames may be ugly, nobody cares. Make them safe for // Unicode-unfriendly uses on Windows, i.e. 8.3 without non-ASCII // characters: auto base = CliSafeFileName(path) + wxFILE_SEP_PATH; #ifdef __WXMSW__ // this is OK, ToAscii() replaces non-ASCII with '_': base += name.ToAscii(); #else base += name; #endif m_filenameTmp = base + ".temp" + counter + ext; } if (!wxFileExists(m_filenameTmp)) break; // good! counter += wchar_t('a' + rand() % 26); } } bool TempOutputFileFor::Commit() { return ReplaceFile(m_filenameTmp, m_filenameFinal); } bool TempOutputFileFor::ReplaceFile(const wxString& temp, const wxString& dest) { #ifdef __WXOSX__ NSURL *tempURL = [NSURL fileURLWithPath:str::to_NS(temp)]; NSURL *destURL = [NSURL fileURLWithPath:str::to_NS(dest)]; NSURL *resultingURL = nil; return [[NSFileManager defaultManager] replaceItemAtURL:destURL withItemAtURL:tempURL backupItemName:nil options:0 resultingItemURL:&resultingURL error:nil]; #else // !__WXOSX__ #ifdef __UNIX__ auto destPath = dest.fn_str(); bool overwrite = false; struct stat st; if ((overwrite = wxFileExists(dest)) == true) { if (stat(destPath, &st) != 0) overwrite = false; } #endif if (!wxRenameFile(temp, dest, /*overwrite=*/true)) return false; #ifdef __UNIX__ if (overwrite) { chown(destPath, st.st_uid, st.st_gid); chmod(destPath, st.st_mode); } #endif return true; #endif // !__WXOSX__ } TempOutputFileFor::~TempOutputFileFor() { #ifdef __WXOSX__ if (!m_tempDir.empty()) wxFileName::Rmdir(m_tempDir, wxPATH_RMDIR_RECURSIVE); #else if (wxFileExists(m_filenameTmp)) wxRemoveFile(m_filenameTmp); #endif } #ifdef __WXMSW__ wxString CliSafeFileName(const wxString& fn) { if (fn.IsAscii()) { return fn; } else if (wxFileExists(fn) || wxDirExists(fn)) { return wxFileName(fn).GetShortPath(); } else { wxString path, name, ext; wxFileName::SplitPath(fn, &path, &name, &ext); if (path.empty()) path = "."; if (wxDirExists(path)) { auto p = wxFileName(path).GetShortPath() + wxFILE_SEP_PATH + name; if (!ext.empty()) p += "." + ext; return p; } } return fn; } #endif // __WXMSW__ // ---------------------------------------------------------------------- // Helpers for persisting windows' state // ---------------------------------------------------------------------- #if wxUSE_GUI void SaveWindowState(const wxTopLevelWindow *win, int flags) { #ifdef __WXOSX__ // Don't remember dimensions of a fullscreen window: if ([[NSApplication sharedApplication] currentSystemPresentationOptions] & NSApplicationPresentationFullScreen) return; #endif wxConfigBase *cfg = wxConfig::Get(); const wxString path = WindowStatePath(win); if ( !win->IsIconized() ) { if ( !win->IsMaximized() ) { #if defined(__WXMSW__) || defined(__WXOSX__) if ( flags & WinState_Pos ) { const wxPoint pos = win->GetPosition(); cfg->Write(path + "x", (long)pos.x); cfg->Write(path + "y", (long)pos.y); } #endif // __WXMSW__/__WXOSX__ if ( flags & WinState_Size ) { const wxSize sz = win->GetClientSize(); cfg->Write(path + "w", (long)sz.x); cfg->Write(path + "h", (long)sz.y); } } if ( flags & WinState_Size ) cfg->Write(path + "maximized", (long)win->IsMaximized()); } } void RestoreWindowState(wxTopLevelWindow *win, const wxSize& defaultSize, int flags) { wxConfigBase *cfg = wxConfig::Get(); const wxString path = WindowStatePath(win); if ( flags & WinState_Size ) { int width = (int)cfg->Read(path + "w", defaultSize.x); int height = (int)cfg->Read(path + "h", defaultSize.y); if ( width != -1 || height != -1 ) { // filter out ridiculous sizes: if (width != -1 && width < 100) width = defaultSize.x; if (height != -1 && height < 100) height = defaultSize.y; win->SetClientSize(width, height); } } #if defined(__WXMSW__) || defined(__WXOSX__) if ( flags & WinState_Pos ) { wxPoint pos; pos.x = (int)cfg->Read(path + "x", -1); pos.y = (int)cfg->Read(path + "y", -1); if ( pos.x != -1 || pos.y != -1 ) { // NB: if this is the only Poedit frame opened, place it at remembered // position, but don't do that if there already are other frames, // because they would overlap and nobody could recognize that there are // many of them for (;;) { bool occupied = false; for (auto& w : wxTopLevelWindows) { if (w != win && w->GetPosition() == pos) { occupied = true; break; } } if (!occupied) break; pos += wxPoint(20,20); } win->Move(pos); } } // If the window is completely out of all screens (e.g. because // screens configuration changed), move it to primary screen: if ( wxDisplay::GetFromWindow(win) == wxNOT_FOUND ) win->Move(20, 40); #endif // __WXMSW__/__WXOSX__ // If the window is larger than current screen, resize it to fit: int display = wxDisplay::GetFromWindow(win); if ( display == wxNOT_FOUND ) return; wxRect screenRect = wxDisplay(display).GetClientArea(); wxRect winRect = win->GetRect(); if ( winRect.GetPosition() == wxDefaultPosition ) winRect.SetPosition(screenRect.GetPosition()); // not placed yet, fake it if ( !screenRect.Contains(winRect) ) { // Don't crop the window immediately, because it could become too small // due to it. Try to move it to the center of the screen first, then crop. winRect = winRect.CenterIn(screenRect); winRect.Intersect(screenRect); win->SetSize(winRect); } // Maximize if it should be if ( cfg->Read(path + "maximized", long(0)) ) { win->Maximize(); } } #endif // wxUSE_GUI poedit-2.0.6/src/catalog.cpp0000664000372000037200000022767213230131554012646 00000000000000/* * This file is part of Poedit (https://poedit.net) * * Copyright (C) 1999-2018 Vaclav Slavik * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * DEALINGS IN THE SOFTWARE. * */ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "catalog.h" #include "configuration.h" #include "extractors/extractor.h" #include "gexecute.h" #include "qa_checks.h" #include "str_helpers.h" #include "utility.h" #include "version.h" #include "language.h" #ifdef __WXOSX__ #import #endif // TODO: split into different file #if wxUSE_GUI #include "cloud_sync.h" // FIXME - gross, not GUI-related #include #endif // ---------------------------------------------------------------------- // Textfile processing utilities: // ---------------------------------------------------------------------- namespace { // If input begins with pattern, fill output with end of input (without // pattern; strips trailing spaces) and return true. Return false otherwise // and don't touch output. Is permissive about whitespace in the input: // a space (' ') in pattern will match any number of any whitespace characters // on that position in input. bool ReadParam(const wxString& input, const wxString& pattern, wxString& output) { if (input.size() < pattern.size()) return false; unsigned in_pos = 0; unsigned pat_pos = 0; while (pat_pos < pattern.size() && in_pos < input.size()) { const wxChar pat = pattern[pat_pos++]; if (pat == _T(' ')) { if (!wxIsspace(input[in_pos++])) return false; while (wxIsspace(input[in_pos])) { in_pos++; if (in_pos == input.size()) return false; } } else { if (input[in_pos++] != pat) return false; } } if (pat_pos < pattern.size()) // pattern not fully matched return false; output = input.Mid(in_pos); output.Trim(true); // trailing whitespace return true; } // Checks if the file was loaded correctly, i.e. that non-empty lines // ended up non-empty in memory, after doing charset conversion in // wxTextFile. This detects for example files that claim they are in UTF-8 // while in fact they are not. bool VerifyFileCharset(const wxTextFile& f, const wxString& filename, const wxString& charset) { wxTextFile f2; if (!f2.Open(filename, wxConvISO8859_1)) return false; if (f.GetLineCount() != f2.GetLineCount()) { int linesCount = (int)f2.GetLineCount() - (int)f.GetLineCount(); wxLogError(wxPLURAL(L"%i line of file “%s” was not loaded correctly.", L"%i lines of file “%s” were not loaded correctly.", linesCount), linesCount, filename.c_str()); return false; } bool ok = true; size_t cnt = f.GetLineCount(); for (size_t i = 0; i < cnt; i++) { if (f[i].empty() && !f2[i].empty()) // wxMBConv conversion failed { wxLogError( _(L"Line %d of file “%s” is corrupted (not valid %s data)."), int(i), filename.c_str(), charset.c_str()); ok = false; } } return ok; } wxTextFileType GetFileCRLFFormat(wxTextFile& po_file) { wxLogNull null; auto crlf = po_file.GuessType(); // Discard any unsupported setting. In particular, we ignore "Mac" // line endings, because the ancient OS 9 systems aren't used anymore, // OSX uses Unix ending *and* "Mac" endings break gettext tools. So if // we encounter a catalog with "Mac" line endings, we silently convert // it into Unix endings (i.e. the modern Mac). if (crlf == wxTextFileType_Mac) crlf = wxTextFileType_Unix; if (crlf != wxTextFileType_Dos && crlf != wxTextFileType_Unix) crlf = wxTextFileType_None; return crlf; } wxTextFileType GetDesiredCRLFFormat(wxTextFileType existingCRLF) { if (existingCRLF != wxTextFileType_None && wxConfigBase::Get()->ReadBool("keep_crlf", true)) { return existingCRLF; } else { wxString format = wxConfigBase::Get()->Read("crlf_format", "unix"); if (format == "win") return wxTextFileType_Dos; else /* "unix" or obsolete settings */ return wxTextFileType_Unix; } } // Fixup some common issues with filepaths in PO files, due to old Poedit versions, // user misunderstanding or Poedit bugs: wxString FixBrokenSearchPathValue(wxString p) { if (p.empty()) return p; // no DOS paths please: p.Replace("\\", "/"); if (p.Last() == '/') p.RemoveLast(); return p; } } // anonymous namespace // ---------------------------------------------------------------------- // Catalog::HeaderData // ---------------------------------------------------------------------- void Catalog::HeaderData::FromString(const wxString& str) { wxStringTokenizer tkn(str, "\n"); wxString ln; m_entries.clear(); while (tkn.HasMoreTokens()) { ln = tkn.GetNextToken(); size_t pos = ln.find(_T(':')); if (pos == wxString::npos) { wxLogError(_(L"Malformed header: “%s”"), ln.c_str()); } else { Entry en; en.Key = wxString(ln.substr(0, pos)).Strip(wxString::both); en.Value = wxString(ln.substr(pos + 1)).Strip(wxString::both); m_entries.push_back(en); wxLogTrace("poedit.header", "%s='%s'", en.Key.c_str(), en.Value.c_str()); } } ParseDict(); } wxString Catalog::HeaderData::ToString(const wxString& line_delim) { UpdateDict(); wxString hdr; for (auto& e: m_entries) { hdr << EscapeCString(e.Key) << ": " << EscapeCString(e.Value) << "\\n" << line_delim; } return hdr; } void Catalog::HeaderData::UpdateDict() { SetHeader("Project-Id-Version", Project); SetHeader("POT-Creation-Date", CreationDate); SetHeader("PO-Revision-Date", RevisionDate); if (TranslatorEmail.empty()) { if (!Translator.empty() || !HasHeader("Last-Translator")) SetHeader("Last-Translator", Translator); // else: don't modify the header, leave as-is } else { if (Translator.empty()) SetHeader("Last-Translator", TranslatorEmail); else SetHeader("Last-Translator", Translator + " <" + TranslatorEmail + ">"); } SetHeader("Language-Team", LanguageTeam); SetHeader("MIME-Version", "1.0"); SetHeader("Content-Type", "text/plain; charset=" + Charset); SetHeader("Content-Transfer-Encoding", "8bit"); SetHeaderNotEmpty("Language", Lang.Code()); SetHeader("X-Generator", wxString::FromAscii("Poedit " POEDIT_VERSION)); // Set extended information: SetHeaderNotEmpty("X-Poedit-SourceCharset", SourceCodeCharset); if (!Keywords.empty()) { wxString kw; for (size_t i = 0; i < Keywords.GetCount(); i++) kw += Keywords[i] + _T(';'); kw.RemoveLast(); SetHeader("X-Poedit-KeywordsList", kw); } unsigned i; bool noBookmarkSet = true; wxString bk; for (i = 0; i < BOOKMARK_LAST ; i++) { noBookmarkSet = noBookmarkSet && (Bookmarks[i] == NO_BOOKMARK); bk += wxString() << Bookmarks[i] << _T(','); } bk.RemoveLast(); if (noBookmarkSet) DeleteHeader("X-Poedit-Bookmarks"); else SetHeader("X-Poedit-Bookmarks", bk); SetHeaderNotEmpty("X-Poedit-Basepath", BasePath); i = 0; while (true) { wxString path; path.Printf("X-Poedit-SearchPath-%i", i); if (!HasHeader(path)) break; DeleteHeader(path); i++; } i = 0; while (true) { wxString path; path.Printf("X-Poedit-SearchPathExcluded-%i", i); if (!HasHeader(path)) break; DeleteHeader(path); i++; } for (i = 0; i < SearchPaths.size(); i++) { wxString path; path.Printf("X-Poedit-SearchPath-%i", i); SetHeader(path, SearchPaths[i]); } for (i = 0; i < SearchPathsExcluded.size(); i++) { wxString path; path.Printf("X-Poedit-SearchPathExcluded-%i", i); SetHeader(path, SearchPathsExcluded[i]); } } void Catalog::HeaderData::ParseDict() { wxString dummy; Project = GetHeader("Project-Id-Version"); CreationDate = GetHeader("POT-Creation-Date"); RevisionDate = GetHeader("PO-Revision-Date"); dummy = GetHeader("Last-Translator"); if (!dummy.empty()) { wxStringTokenizer tkn(dummy, "<>"); if (tkn.CountTokens() != 2) { Translator = dummy; TranslatorEmail = wxEmptyString; } else { Translator = tkn.GetNextToken().Strip(wxString::trailing); TranslatorEmail = tkn.GetNextToken(); } } LanguageTeam = GetHeader("Language-Team"); wxString ctype = GetHeader("Content-Type"); int charsetPos = ctype.Find("; charset="); if (charsetPos != -1) { Charset = ctype.Mid(charsetPos + strlen("; charset=")).Strip(wxString::both); } else { Charset = "ISO-8859-1"; } // Parse language information, with backwards compatibility with X-Poedit-*: Lang = Language(); wxString languageCode = GetHeader("Language"); if (!languageCode.empty()) { Lang = Language::TryParse(languageCode.ToStdWstring()); } if (!Lang.IsValid()) { // try looking for non-standard Qt extension languageCode = GetHeader("X-Language"); if (!languageCode.empty()) Lang = Language::TryParse(languageCode.ToStdWstring()); } if (!Lang.IsValid()) { wxString X_Language = GetHeader("X-Poedit-Language"); wxString X_Country = GetHeader("X-Poedit-Country"); if ( !X_Language.empty() ) Lang = Language::FromLegacyNames(X_Language.ToStdString(), X_Country.ToStdString()); } DeleteHeader("X-Poedit-Language"); DeleteHeader("X-Poedit-Country"); // Parse extended information: SourceCodeCharset = GetHeader("X-Poedit-SourceCharset"); BasePath = FixBrokenSearchPathValue(GetHeader("X-Poedit-Basepath")); Keywords.Clear(); wxString kwlist = GetHeader("X-Poedit-KeywordsList"); if (!kwlist.empty()) { wxStringTokenizer tkn(kwlist, ";"); while (tkn.HasMoreTokens()) Keywords.Add(tkn.GetNextToken()); } else { // try backward-compatibility version X-Poedit-Keywords. The difference // is the separator used, see // http://sourceforge.net/tracker/index.php?func=detail&aid=1206579&group_id=27043&atid=389153 wxString kw = GetHeader("X-Poedit-Keywords"); if (!kw.empty()) { wxStringTokenizer tkn(kw, ","); while (tkn.HasMoreTokens()) Keywords.Add(tkn.GetNextToken()); // and remove it, it's not for newer versions: DeleteHeader("X-Poedit-Keywords"); } } int i; for(i = 0; i < BOOKMARK_LAST; i++) { Bookmarks[i] = NO_BOOKMARK; } wxString bk = GetHeader("X-Poedit-Bookmarks"); if (!bk.empty()) { wxStringTokenizer tkn(bk, ","); i=0; long int val; while (tkn.HasMoreTokens() && iValue; else return wxEmptyString; } bool Catalog::HeaderData::HasHeader(const wxString& key) const { return Find(key) != NULL; } void Catalog::HeaderData::SetHeader(const wxString& key, const wxString& value) { Entry *e = (Entry*) Find(key); if (e) { e->Value = value; } else { Entry en; en.Key = key; en.Value = value; m_entries.push_back(en); } } void Catalog::HeaderData::SetHeaderNotEmpty(const wxString& key, const wxString& value) { if (value.empty()) DeleteHeader(key); else SetHeader(key, value); } void Catalog::HeaderData::DeleteHeader(const wxString& key) { if (HasHeader(key)) { Entries enew; for (Entries::const_iterator i = m_entries.begin(); i != m_entries.end(); i++) { if (i->Key != key) enew.push_back(*i); } m_entries = enew; } } const Catalog::HeaderData::Entry * Catalog::HeaderData::Find(const wxString& key) const { size_t size = m_entries.size(); for (size_t i = 0; i < size; i++) { if (m_entries[i].Key == key) return &(m_entries[i]); } return NULL; } // ---------------------------------------------------------------------- // Parsers // ---------------------------------------------------------------------- bool CatalogParser::Parse() { static const wxString prefix_flags(wxS("#, ")); static const wxString prefix_autocomments(wxS("#. ")); static const wxString prefix_autocomments2(wxS("#.")); // account for empty auto comments static const wxString prefix_references(wxS("#: ")); static const wxString prefix_prev_msgid(wxS("#| ")); static const wxString prefix_msgctxt(wxS("msgctxt \"")); static const wxString prefix_msgid(wxS("msgid \"")); static const wxString prefix_msgid_plural(wxS("msgid_plural \"")); static const wxString prefix_msgstr(wxS("msgstr \"")); static const wxString prefix_msgstr_plural(wxS("msgstr[")); static const wxString prefix_deleted(wxS("#~")); static const wxString prefix_deleted_msgid(wxS("#~ msgid")); if (m_textFile->GetLineCount() == 0) return false; wxString line, dummy; wxString mflags, mstr, msgid_plural, mcomment; wxArrayString mrefs, mextractedcomments, mtranslations; wxArrayString msgid_old; bool has_plural = false; bool has_context = false; wxString msgctxt; unsigned mlinenum = 0; line = m_textFile->GetFirstLine(); if (line.empty()) line = ReadTextLine(); while (!line.empty()) { // ignore empty special tags (except for extracted comments which we // DO want to preserve): while (line.length() == 2 && *line.begin() == '#' && (line[1] == ',' || line[1] == ':' || line[1] == '|')) line = ReadTextLine(); // flags: // Can't we have more than one flag, now only the last is kept ... if (ReadParam(line, prefix_flags, dummy)) { static wxString prefix_flags_partial(wxS(", ")); mflags = prefix_flags_partial + dummy; line = ReadTextLine(); } // auto comments: if (ReadParam(line, prefix_autocomments, dummy) || ReadParam(line, prefix_autocomments2, dummy)) { mextractedcomments.Add(dummy); line = ReadTextLine(); } // references: else if (ReadParam(line, prefix_references, dummy)) { // Just store the references unmodified, we don't modify this // data anywhere. mrefs.push_back(dummy); line = ReadTextLine(); } // previous msgid value: else if (ReadParam(line, prefix_prev_msgid, dummy)) { msgid_old.Add(dummy); line = ReadTextLine(); } // msgctxt: else if (ReadParam(line, prefix_msgctxt, dummy)) { has_context = true; msgctxt = UnescapeCString(dummy.RemoveLast()); while (!(line = ReadTextLine()).empty()) { if (line[0u] == _T('\t')) line.Remove(0, 1); if (line[0u] == _T('"') && line.Last() == _T('"')) { msgctxt += UnescapeCString(line.Mid(1, line.Length() - 2)); PossibleWrappedLine(); } else break; } } // msgid: else if (ReadParam(line, prefix_msgid, dummy)) { mstr = UnescapeCString(dummy.RemoveLast()); mlinenum = unsigned(m_textFile->GetCurrentLine() + 1); while (!(line = ReadTextLine()).empty()) { if (line[0u] == wxS('\t')) line.Remove(0, 1); if (line[0u] == wxS('"') && line.Last() == wxS('"')) { mstr += UnescapeCString(line.Mid(1, line.Length() - 2)); PossibleWrappedLine(); } else break; } } // msgid_plural: else if (ReadParam(line, prefix_msgid_plural, dummy)) { msgid_plural = UnescapeCString(dummy.RemoveLast()); has_plural = true; mlinenum = unsigned(m_textFile->GetCurrentLine() + 1); while (!(line = ReadTextLine()).empty()) { if (line[0u] == _T('\t')) line.Remove(0, 1); if (line[0u] == _T('"') && line.Last() == _T('"')) { msgid_plural += UnescapeCString(line.Mid(1, line.Length() - 2)); PossibleWrappedLine(); } else break; } } // msgstr: else if (ReadParam(line, prefix_msgstr, dummy)) { if (has_plural) { wxLogError(_("Broken catalog file: singular form msgstr used together with msgid_plural")); return false; } wxString str = UnescapeCString(dummy.RemoveLast()); while (!(line = ReadTextLine()).empty()) { if (line[0u] == _T('\t')) line.Remove(0, 1); if (line[0u] == _T('"') && line.Last() == _T('"')) { str += UnescapeCString(line.Mid(1, line.Length() - 2)); PossibleWrappedLine(); } else break; } mtranslations.Add(str); bool shouldIgnore = m_ignoreHeader && (mstr.empty() && !has_context); if ( shouldIgnore ) { OnIgnoredEntry(); } else { if (!mstr.empty() && m_ignoreTranslations) mtranslations.clear(); if (!OnEntry(mstr, wxEmptyString, false, has_context, msgctxt, mtranslations, mflags, mrefs, mcomment, mextractedcomments, msgid_old, mlinenum)) { return false; } } mcomment = mstr = msgid_plural = msgctxt = mflags = wxEmptyString; has_plural = has_context = false; mrefs.Clear(); mextractedcomments.Clear(); mtranslations.Clear(); msgid_old.Clear(); } // msgstr[i]: else if (ReadParam(line, prefix_msgstr_plural, dummy)) { if (!has_plural) { wxLogError(_("Broken catalog file: plural form msgstr used without msgid_plural")); return false; } wxString idx = dummy.BeforeFirst(wxS(']')); wxString label_prefix = prefix_msgstr_plural + idx + wxS("] \""); while (ReadParam(line, label_prefix, dummy)) { wxString str = UnescapeCString(dummy.RemoveLast()); while (!(line=ReadTextLine()).empty()) { line.Trim(/*fromRight=*/false); if (line[0u] == wxS('"') && line.Last() == wxS('"')) { str += UnescapeCString(line.Mid(1, line.Length() - 2)); PossibleWrappedLine(); } else { if (ReadParam(line, prefix_msgstr_plural, dummy)) { idx = dummy.BeforeFirst(wxS(']')); label_prefix = prefix_msgstr_plural + idx + wxS("] \""); } break; } } mtranslations.Add(str); } if (!OnEntry(mstr, msgid_plural, true, has_context, msgctxt, mtranslations, mflags, mrefs, mcomment, mextractedcomments, msgid_old, mlinenum)) { return false; } mcomment = mstr = msgid_plural = msgctxt = mflags = wxEmptyString; has_plural = has_context = false; mrefs.Clear(); mextractedcomments.Clear(); mtranslations.Clear(); msgid_old.Clear(); } // deleted lines: else if (ReadParam(line, prefix_deleted, dummy)) { wxArrayString deletedLines; deletedLines.Add(line); mlinenum = unsigned(m_textFile->GetCurrentLine() + 1); while (!(line = ReadTextLine()).empty()) { // if line does not start with "#~" anymore, stop reading if (!ReadParam(line, prefix_deleted, dummy)) break; // if the line starts with "#~ msgid", we skipped an empty line // and it's a new entry, so stop reading too (see bug #329) if (ReadParam(line, prefix_deleted_msgid, dummy)) break; deletedLines.Add(line); } if (!OnDeletedEntry(deletedLines, mflags, mrefs, mcomment, mextractedcomments, mlinenum)) { return false; } mcomment = mstr = msgid_plural = mflags = wxEmptyString; has_plural = false; mrefs.Clear(); mextractedcomments.Clear(); mtranslations.Clear(); msgid_old.Clear(); } // comment: else if (line[0u] == wxS('#')) { bool readNewLine = false; while (!line.empty() && line[0u] == wxS('#') && (line.Length() < 2 || (line[1u] != wxS(',') && line[1u] != wxS(':') && line[1u] != wxS('.') && line[1u] != wxS('~') ))) { mcomment << line << wxS('\n'); readNewLine = true; line = ReadTextLine(); } if (!readNewLine) line = ReadTextLine(); } else { line = ReadTextLine(); } } return true; } wxString CatalogParser::ReadTextLine() { m_previousLineHardWrapped = m_lastLineHardWrapped; m_lastLineHardWrapped = false; static const wxString msgid_alone(wxS("msgid \"\"")); static const wxString msgstr_alone(wxS("msgstr \"\"")); for (;;) { if (m_textFile->Eof()) return wxString(); // read next line and strip insignificant whitespace from it: const auto& ln = m_textFile->GetNextLine(); if (ln.empty()) continue; // gettext tools don't include (extracted) comments in wrapping, so they can't // be reliably used to detect file's wrapping either; just skip them. if (!ln.StartsWith(wxS("#. ")) && !ln.StartsWith(wxS("# "))) { if (ln.EndsWith(wxS("\\n\""))) { // Similarly, lines ending with \n are always wrapped, so skip that too. m_lastLineHardWrapped = true; } else if (ln == msgid_alone || ln == msgstr_alone) { // The header is always indented like this m_lastLineHardWrapped = true; } else { // Watch out for lines with too long words that couldn't be wrapped. // That "2" is to account for unwrappable comment lines: "#: somethinglong" // See https://github.com/vslavik/poedit/issues/135 auto space = ln.find_last_of(' '); if (space != wxString::npos && space > 2) { m_detectedLineWidth = std::max(m_detectedLineWidth, (int)ln.size()); } } } if (wxIsspace(ln[0]) || wxIsspace(ln.Last())) { auto s = ln.Strip(wxString::both); if (!s.empty()) return s; } else { return ln; } } return wxString(); } int CatalogParser::GetWrappingWidth() const { if (!m_detectedWrappedLines) return Catalog::NO_WRAPPING; return m_detectedLineWidth; } class CharsetInfoFinder : public CatalogParser { public: CharsetInfoFinder(wxTextFile *f) : CatalogParser(f), m_charset("ISO-8859-1") {} wxString GetCharset() const { return m_charset; } protected: wxString m_charset; virtual bool OnEntry(const wxString& msgid, const wxString& /*msgid_plural*/, bool /*has_plural*/, bool has_context, const wxString& /*context*/, const wxArrayString& mtranslations, const wxString& /*flags*/, const wxArrayString& /*references*/, const wxString& /*comment*/, const wxArrayString& /*extractedComments*/, const wxArrayString& /*msgid_old*/, unsigned /*lineNumber*/) { if (msgid.empty() && !has_context) { // gettext header: Catalog::HeaderData hdr; hdr.FromString(mtranslations[0]); m_charset = hdr.Charset; if (m_charset == "CHARSET") m_charset = "ISO-8859-1"; return false; // stop parsing } return true; } }; class LoadParser : public CatalogParser { public: LoadParser(Catalog& c, wxTextFile *f) : CatalogParser(f), FileIsValid(false), m_catalog(c), m_nextId(1), m_seenHeaderAlready(false), m_collectMsgidText(true) {} // true if the file is valid, i.e. has at least some data bool FileIsValid; Language GetMsgidLanguage() { auto lang = GetSpecifiedMsgidLanguage(); if (lang.IsValid()) return lang; auto utf8 = m_allMsgidText.utf8_str(); return Language::TryDetectFromText(utf8.data(), utf8.length(), Language::English()); } protected: Language GetSpecifiedMsgidLanguage() { auto x_srclang = m_catalog.m_header.GetHeader("X-Source-Language"); if (!x_srclang.empty()) { auto parsed = Language::TryParse(str::to_utf8(x_srclang)); if (parsed.IsValid()) return parsed; } return Language(); } Catalog& m_catalog; virtual bool OnEntry(const wxString& msgid, const wxString& msgid_plural, bool has_plural, bool has_context, const wxString& context, const wxArrayString& mtranslations, const wxString& flags, const wxArrayString& references, const wxString& comment, const wxArrayString& extractedComments, const wxArrayString& msgid_old, unsigned lineNumber); virtual bool OnDeletedEntry(const wxArrayString& deletedLines, const wxString& flags, const wxArrayString& references, const wxString& comment, const wxArrayString& extractedComments, unsigned lineNumber); virtual void OnIgnoredEntry() { FileIsValid = true; } private: int m_nextId; bool m_seenHeaderAlready; // collected text of msgids, with newlines, for language detection bool m_collectMsgidText; wxString m_allMsgidText; }; bool LoadParser::OnEntry(const wxString& msgid, const wxString& msgid_plural, bool has_plural, bool has_context, const wxString& context, const wxArrayString& mtranslations, const wxString& flags, const wxArrayString& references, const wxString& comment, const wxArrayString& extractedComments, const wxArrayString& msgid_old, unsigned lineNumber) { FileIsValid = true; static const wxString MSGCAT_CONFLICT_MARKER("#-#-#-#-#"); if (msgid.empty() && !has_context) { if (!m_seenHeaderAlready) { // gettext header: m_catalog.m_header.FromString(mtranslations[0]); m_catalog.m_header.Comment = comment; m_collectMsgidText = !GetSpecifiedMsgidLanguage().IsValid(); m_seenHeaderAlready = true; } // else: ignore duplicate header in malformed files } else { CatalogItemPtr d = std::make_shared(); d->SetId(m_nextId++); if (!flags.empty()) d->SetFlags(flags); d->SetString(msgid); if (has_plural) d->SetPluralString(msgid_plural); if (has_context) d->SetContext(context); d->SetTranslations(mtranslations); d->SetComment(comment); d->SetLineNumber(lineNumber); d->SetReferences(references); for (auto i: extractedComments) { // Sometimes, msgcat produces conflicts in extracted comments; see the gory details: // https://groups.google.com/d/topic/poedit/j41KuvXtVUU/discussion // As a workaround, just filter them out. // FIXME: Fix this properly... but not using msgcat in the first place if (i.StartsWith(MSGCAT_CONFLICT_MARKER) && i.EndsWith(MSGCAT_CONFLICT_MARKER)) continue; d->AddExtractedComments(i); } d->SetOldMsgid(msgid_old); m_catalog.AddItem(d); // collect text for language detection: if (m_collectMsgidText) { m_allMsgidText.append(msgid); m_allMsgidText.append('\n'); if (!msgid_plural.empty()) { m_allMsgidText.append(msgid_plural); m_allMsgidText.append('\n'); } } } return true; } bool LoadParser::OnDeletedEntry(const wxArrayString& deletedLines, const wxString& flags, const wxArrayString& /*references*/, const wxString& comment, const wxArrayString& extractedComments, unsigned lineNumber) { FileIsValid = true; CatalogDeletedData d; if (!flags.empty()) d.SetFlags(flags); d.SetDeletedLines(deletedLines); d.SetComment(comment); d.SetLineNumber(lineNumber); for (size_t i = 0; i < extractedComments.GetCount(); i++) d.AddExtractedComments(extractedComments[i]); m_catalog.AddDeletedItem(d); return true; } // ---------------------------------------------------------------------- // Catalog class // ---------------------------------------------------------------------- Catalog::Catalog(Type type) { m_sourceLanguage = Language::English(); m_fileType = type; m_fileCRLF = wxTextFileType_None; m_fileWrappingWidth = DEFAULT_WRAPPING; m_isOk = true; m_header.BasePath = wxEmptyString; for(int i = BOOKMARK_0; i < BOOKMARK_LAST; i++) { m_header.Bookmarks[i] = -1; } } Catalog::Catalog(const wxString& po_file, int flags) { m_sourceLanguage = Language::English(); m_fileType = Type::PO; m_fileCRLF = wxTextFileType_None; m_fileWrappingWidth = DEFAULT_WRAPPING; m_isOk = Load(po_file, flags); } Catalog::~Catalog() { Clear(); } bool Catalog::HasCapability(Catalog::Cap cap) const { switch (cap) { case Cap::Translations: case Cap::LanguageSetting: case Cap::UserComments: return m_fileType == Type::PO; } return false; // silence VC++ warning } static inline wxString GetCurrentTimeString() { return wxDateTime::Now().Format("%Y-%m-%d %H:%M%z"); } void Catalog::CreateNewHeader() { HeaderData &dt = Header(); dt.CreationDate = GetCurrentTimeString(); dt.RevisionDate = dt.CreationDate; dt.Lang = Language(); if (m_fileType == Type::POT) dt.SetHeader("Plural-Forms", "nplurals=INTEGER; plural=EXPRESSION;"); // default invalid value dt.Project = wxEmptyString; dt.LanguageTeam = wxEmptyString; dt.Charset = "UTF-8"; dt.Translator = wxConfig::Get()->Read("translator_name", wxEmptyString); dt.TranslatorEmail = wxConfig::Get()->Read("translator_email", wxEmptyString); dt.SourceCodeCharset = wxEmptyString; dt.BasePath = "."; dt.UpdateDict(); } void Catalog::CreateNewHeader(const Catalog::HeaderData& pot_header) { HeaderData &dt = Header(); dt = pot_header; // UTF-8 should be used by default no matter what the POT uses dt.Charset = "UTF-8"; // clear the fields that are translation-specific: dt.Lang = Language(); if (dt.LanguageTeam == "LANGUAGE ") dt.LanguageTeam.clear(); // translator should be pre-filled & not the default "FULL NAME " dt.DeleteHeader("Last-Translator"); dt.Translator = wxConfig::Get()->Read("translator_name", wxEmptyString); dt.TranslatorEmail = wxConfig::Get()->Read("translator_email", wxEmptyString); dt.UpdateDict(); } bool Catalog::Load(const wxString& po_file, int flags) { wxTextFile f; Clear(); m_isOk = false; m_fileName = po_file; m_header.BasePath = wxEmptyString; wxString ext; wxFileName::SplitPath(po_file, nullptr, nullptr, &ext); if (ext.CmpNoCase("pot") == 0) m_fileType = Type::POT; else m_fileType = Type::PO; /* Load the .po file: */ if (!f.Open(po_file, wxConvISO8859_1)) return false; { wxLogNull null; // don't report parsing errors from here, report them later CharsetInfoFinder charsetFinder(&f); charsetFinder.Parse(); m_header.Charset = charsetFinder.GetCharset(); } f.Close(); wxCSConv encConv(m_header.Charset); if (!f.Open(po_file, encConv)) return false; if (!VerifyFileCharset(f, po_file, m_header.Charset)) { wxLogError(_("There were errors when loading the catalog. Some data may be missing or corrupted as the result.")); } LoadParser parser(*this, &f); parser.IgnoreHeader(flags & CreationFlag_IgnoreHeader); parser.IgnoreTranslations(flags & CreationFlag_IgnoreTranslations); if (!parser.Parse()) { wxLogError( wxString::Format( _(L"Couldn’t load file %s, it is probably corrupted."), po_file.c_str())); return false; } m_sourceLanguage = parser.GetMsgidLanguage(); // now that the catalog is loaded, update its items with the bookmarks for (unsigned i = BOOKMARK_0; i < BOOKMARK_LAST; i++) { if (m_header.Bookmarks[i] != -1 && m_header.Bookmarks[i] < (int)m_items.size()) { m_items[m_header.Bookmarks[i]]->SetBookmark( static_cast(i)); } } m_fileCRLF = GetFileCRLFFormat(f); m_fileWrappingWidth = parser.GetWrappingWidth(); wxLogTrace("poedit", "detect line wrapping: %d", m_fileWrappingWidth); // If we didn't find any entries, the file must be invalid: if (!parser.FileIsValid) return false; m_isOk = true; f.Close(); FixupCommonIssues(); if ( flags & CreationFlag_IgnoreHeader ) CreateNewHeader(); return true; } void Catalog::FixupCommonIssues() { if (m_header.Project == "PACKAGE VERSION") m_header.Project.clear(); // All the following fixups are specific to POs and should *not* be done in POTs: if (m_fileType == Type::POT) return; if (!m_header.Lang.IsValid()) { if (!m_fileName.empty()) { m_header.Lang = Language::TryGuessFromFilename(m_fileName); wxLogTrace("poedit", "guessed language from filename '%s': %s", m_fileName, m_header.Lang.Code()); } if (!m_header.Lang.IsValid()) { // If all else fails, try to detect the language from content wxString allText; for (auto& i: items()) { for (auto& s: i->GetTranslations()) { if (s.empty()) continue; allText.append(s); allText.append('\n'); } } if (!allText.empty()) { auto utf8 = allText.utf8_str(); m_header.Lang = Language::TryDetectFromText(utf8.data(), utf8.length()); } } } wxLogTrace("poedit", "catalog lang is '%s'", GetLanguage().Code()); if (m_header.GetHeader("Language-Team") == "LANGUAGE ") { m_header.DeleteHeader("Language-Team"); m_header.LanguageTeam.clear(); } if (m_header.GetHeader("Last-Translator") == "FULL NAME ") { m_header.DeleteHeader("Last-Translator"); m_header.Translator.clear(); m_header.TranslatorEmail.clear(); } wxString pluralForms = m_header.GetHeader("Plural-Forms"); if (pluralForms == "nplurals=INTEGER; plural=EXPRESSION;") // default invalid value pluralForms = ""; if (!pluralForms.empty()) { if (!pluralForms.EndsWith(";")) { pluralForms += ";"; m_header.SetHeader("Plural-Forms", pluralForms); } } else { // Auto-fill default plural form if it is missing: if (m_header.Lang.IsValid() && HasPluralItems()) { pluralForms = m_header.Lang.DefaultPluralFormsExpr(); if (!pluralForms.empty()) m_header.SetHeader("Plural-Forms", pluralForms); } } // TODO: mark catalog as modified if any changes were made } void Catalog::AddItem(const CatalogItemPtr& data) { m_items.push_back(data); } void Catalog::AddDeletedItem(const CatalogDeletedData& data) { m_deletedItems.push_back(data); } bool Catalog::HasDeletedItems() { return !m_deletedItems.empty(); } void Catalog::RemoveDeletedItems() { m_deletedItems.clear(); } CatalogItemPtr Catalog::FindItemByLine(int lineno) { int i = FindItemIndexByLine(lineno); return i == -1 ? CatalogItemPtr() : m_items[i]; } int Catalog::FindItemIndexByLine(int lineno) { int last = -1; for (auto& i: m_items) { if (i->GetLineNumber() > lineno) return last; last++; } return last; } void Catalog::Clear() { m_items.clear(); m_deletedItems.clear(); m_isOk = true; for(int i = BOOKMARK_0; i < BOOKMARK_LAST; i++) { m_header.Bookmarks[i] = -1; } } int Catalog::SetBookmark(int id, Bookmark bookmark) { int result = (bookmark==NO_BOOKMARK)?-1:m_header.Bookmarks[bookmark]; // unset previous bookmarks, if any Bookmark bk = m_items[id]->GetBookmark(); if (bk != NO_BOOKMARK) m_header.Bookmarks[bk] = -1; if (result > -1) m_items[result]->SetBookmark(NO_BOOKMARK); // set new bookmark m_items[id]->SetBookmark(bookmark); if (bookmark != NO_BOOKMARK) m_header.Bookmarks[bookmark] = id; // return id of previous item for that bookmark return result; } // misc file-saving helpers namespace { inline bool CanEncodeStringToCharset(const wxString& s, wxMBConv& conv) { if (s.empty()) return true; const wxCharBuffer converted(s.mb_str(conv)); if ( converted.length() == 0 ) return false; return true; } bool CanEncodeToCharset(const wxTextBuffer& f, const wxString& charset) { if (charset.Lower() == "utf-8" || charset.Lower() == "utf8") return true; wxCSConv conv(charset); const size_t lines = f.GetLineCount(); for ( size_t i = 0; i < lines; i++ ) { if ( !CanEncodeStringToCharset(f.GetLine(i), conv) ) return false; } return true; } template inline void SplitIntoLines(const wxString& text, Func&& f) { if (text.empty()) return; wxString::const_iterator last = text.begin(); for (wxString::const_iterator i = text.begin(); i != text.end(); ++i) { if (*i == '\n') { f(wxString(last, i), false); last = i + 1; } } if (last != text.end()) f(wxString(last, text.end()), true); } void SaveMultiLines(wxTextBuffer &f, const wxString& text) { SplitIntoLines(text, [&f](wxString&& s, bool) { f.AddLine(s); }); } /** Adds \n characters as necessary for good-looking output */ wxString FormatStringForFile(const wxString& text) { wxString s; s.reserve(text.length() + 16); static wxString quoted_newline(wxS("\"\n\"")); SplitIntoLines(text, [&s](wxString&& piece, bool last) { if (!s.empty()) s += quoted_newline; if (!last) piece += '\n'; EscapeCStringInplace(piece); s += piece; }); return s; } } // anonymous namespace #ifdef __WXOSX__ @interface CompiledMOFilePresenter : NSObject @property (atomic, copy) NSURL *presentedItemURL; @property (atomic, copy) NSURL *primaryPresentedItemURL; @end @implementation CompiledMOFilePresenter - (NSOperationQueue *)presentedItemOperationQueue { return [NSOperationQueue mainQueue]; } @end #endif // __WXOSX__ bool Catalog::Save(const wxString& po_file, bool save_mo, ValidationResults& validation_results, CompilationStatus& mo_compilation_status) { mo_compilation_status = CompilationStatus::NotDone; if ( wxFileExists(po_file) && !wxFile::Access(po_file, wxFile::write) ) { wxLogError(_(L"File “%s” is read-only and cannot be saved.\nPlease save it under different name."), po_file.c_str()); return false; } // Update information about last modification time. But if the header // was empty previously, the author apparently doesn't want this header // set, so don't mess with it. See https://sourceforge.net/tracker/?func=detail&atid=389156&aid=1900298&group_id=27043 // for motivation: auto currentTime = GetCurrentTimeString(); switch (m_fileType) { case Type::PO: if ( !m_header.RevisionDate.empty() ) m_header.RevisionDate = currentTime; break; case Type::POT: if ( m_fileType == Type::POT && !m_header.CreationDate.empty() ) m_header.CreationDate = currentTime; break; } TempOutputFileFor po_file_temp_obj(po_file); const wxString po_file_temp = po_file_temp_obj.FileName(); wxTextFileType outputCrlf = GetDesiredCRLFFormat(m_fileCRLF); // Save into Unix line endings first and only if Windows is required, // reformat the file later. This is because msgcat cannot handle DOS // input particularly well. if ( !DoSaveOnly(po_file_temp, wxTextFileType_Unix) ) { wxLogError(_(L"Couldn’t save file %s."), po_file.c_str()); return false; } validation_results = DoValidate(po_file_temp); // Now that the file was written, run msgcat to re-format it according // to the usual format. This is a (barely) passable fix for #25 until // proper preservation of formatting is implemented. int msgcat_ok = false; { int wrapping = DEFAULT_WRAPPING; if (wxConfig::Get()->ReadBool("keep_crlf", true)) wrapping = m_fileWrappingWidth; wxString wrappingFlag; if (wrapping == DEFAULT_WRAPPING) { if (wxConfig::Get()->ReadBool("wrap_po_files", true)) { wrapping = (int)wxConfig::Get()->ReadLong("wrap_po_files_width", 79); } else { wrapping = NO_WRAPPING; } } if (wrapping == NO_WRAPPING) wrappingFlag = " --no-wrap"; else if (wrapping != DEFAULT_WRAPPING) wrappingFlag.Printf(" --width=%d", wrapping); TempOutputFileFor po_file_temp2_obj(po_file_temp); const wxString po_file_temp2 = po_file_temp2_obj.FileName(); auto msgcatCmd = wxString::Format("msgcat --force-po%s -o %s %s", wrappingFlag, QuoteCmdlineArg(po_file_temp2), QuoteCmdlineArg(po_file_temp)); wxLogTrace("poedit", "formatting file with %s", msgcatCmd); // Ignore msgcat errors output (but not exit code), because it // a) complains about things DoValidate() already complained above // b) issues warnings about source-extraction things (e.g. using non-ASCII // msgids) that, while correct, are not something a *translator* can // do anything about. wxLogNull null; msgcat_ok = ExecuteGettext(msgcatCmd) && wxFileExists(po_file_temp2); // msgcat always outputs Unix line endings, so we need to reformat the file if (msgcat_ok && outputCrlf == wxTextFileType_Dos) { wxCSConv conv(m_header.Charset); wxTextFile finalFile(po_file_temp2); if (finalFile.Open(conv)) finalFile.Write(outputCrlf, conv); } if (!TempOutputFileFor::ReplaceFile(po_file_temp2, po_file)) msgcat_ok = false; } if ( msgcat_ok ) { wxRemoveFile(po_file_temp); } else { if ( !po_file_temp_obj.Commit() ) { wxLogError(_(L"Couldn’t save file %s."), po_file.c_str()); } else { // Only shows msgcat's failure warning if we don't also get // validation errors, because if we do, the cause is likely the // same. if ( !validation_results.errors ) { wxLogWarning(_("There was a problem formatting the file nicely (but it was saved all right).")); } } } /* If the user wants it, compile .mo file right now: */ bool compileMO = save_mo; if (!wxConfig::Get()->Read("compile_mo", (long)true)) compileMO = false; if (m_fileType == Type::PO && compileMO) { const wxString mo_file = wxFileName::StripExtension(po_file) + ".mo"; TempOutputFileFor mo_file_temp_obj(mo_file); const wxString mo_file_temp = mo_file_temp_obj.FileName(); { // Ignore msgfmt errors output (but not exit code), because it // complains about things DoValidate() already complained above. wxLogNull null; if ( ExecuteGettext ( wxString::Format("msgfmt -o %s %s", QuoteCmdlineArg(mo_file_temp), QuoteCmdlineArg(CliSafeFileName(po_file))) ) ) { mo_compilation_status = CompilationStatus::Success; } else { // Don't report errors, they were reported as part of validation // step above. Notice that we run msgfmt *without* the -c flag // here to create the MO file in as many cases as possible, even if // it has some errors. // // Still, msgfmt has the ugly habit of sometimes returning non-zero // exit code, reporting "fatal errors" and *still* producing a usable // .mo file. If this happens, don't pretend the file wasn't created. if (wxFileName::FileExists(mo_file_temp)) mo_compilation_status = CompilationStatus::Success; else mo_compilation_status = CompilationStatus::Error; } } // Move the MO from temporary location to the final one, if it was created if (mo_compilation_status == CompilationStatus::Success) { #ifdef __WXOSX__ NSURL *mofileUrl = [NSURL fileURLWithPath:str::to_NS(mo_file)]; NSURL *mofiletempUrl = [NSURL fileURLWithPath:str::to_NS(mo_file_temp)]; bool sandboxed = (getenv("APP_SANDBOX_CONTAINER_ID") != NULL); CompiledMOFilePresenter *presenter = nil; if (sandboxed) { presenter = [CompiledMOFilePresenter new]; presenter.presentedItemURL = mofileUrl; presenter.primaryPresentedItemURL = [NSURL fileURLWithPath:str::to_NS(po_file)]; [NSFileCoordinator addFilePresenter:presenter]; [NSFileCoordinator filePresenters]; } NSFileCoordinator *coo = [[NSFileCoordinator alloc] initWithFilePresenter:presenter]; [coo coordinateWritingItemAtURL:mofileUrl options:NSFileCoordinatorWritingForReplacing error:nil byAccessor:^(NSURL *newURL) { NSURL *resultingUrl; BOOL ok = [[NSFileManager defaultManager] replaceItemAtURL:newURL withItemAtURL:mofiletempUrl backupItemName:nil options:0 resultingItemURL:&resultingUrl error:nil]; if (!ok) { wxLogError(_(L"Couldn’t save file %s."), mo_file.c_str()); mo_compilation_status = CompilationStatus::Error; } }]; if (sandboxed) { [NSFileCoordinator removeFilePresenter:presenter]; } #else // !__WXOSX__ if ( !mo_file_temp_obj.Commit() ) { wxLogError(_(L"Couldn’t save file %s."), mo_file.c_str()); mo_compilation_status = CompilationStatus::Error; } #endif // __WXOSX__/!__WXOSX__ } } m_fileName = po_file; return true; } std::string Catalog::SaveToBuffer() { class StringSerializer : public wxMemoryText { public: bool OnWrite(wxTextFileType typeNew, const wxMBConv& conv) override { size_t cnt = GetLineCount(); for (size_t n = 0; n < cnt; n++) { auto ln = GetLine(n) + GetEOL(typeNew == wxTextFileType_None ? GetLineType(n) : typeNew); auto buf = ln.mb_str(conv); buffer.append(buf.data(), buf.length()); } return true; } std::string buffer; }; StringSerializer f; if (!DoSaveOnly(f, wxTextFileType_Unix)) return std::string(); return f.buffer; } bool Catalog::CompileToMO(const wxString& mo_file, ValidationResults& validation_results, CompilationStatus& mo_compilation_status) { mo_compilation_status = CompilationStatus::NotDone; TempDirectory tmpdir; if ( !tmpdir.IsOk() ) return false; wxString po_file_temp = tmpdir.CreateFileName("output.po"); if ( !DoSaveOnly(po_file_temp, wxTextFileType_Unix) ) { wxLogError(_(L"Couldn’t save file %s."), po_file_temp.c_str()); return false; } validation_results = DoValidate(po_file_temp); TempOutputFileFor mo_file_temp_obj(mo_file); const wxString mo_file_temp = mo_file_temp_obj.FileName(); { // Ignore msgfmt errors output (but not exit code), because it // complains about things DoValidate() already complained above. wxLogNull null; ExecuteGettext(wxString::Format("msgfmt -o %s %s", QuoteCmdlineArg(mo_file_temp), QuoteCmdlineArg(po_file_temp))); } // Don't check return code: // msgfmt has the ugly habit of sometimes returning non-zero // exit code, reporting "fatal errors" and *still* producing a usable // .mo file. If this happens, don't pretend the file wasn't created. if (!wxFileName::FileExists(mo_file_temp)) { mo_compilation_status = CompilationStatus::Error; return false; } else { mo_compilation_status = CompilationStatus::Success; } if ( !mo_file_temp_obj.Commit() ) { wxLogError(_(L"Couldn’t save file %s."), mo_file.c_str()); return false; } return true; } bool Catalog::DoSaveOnly(const wxString& po_file, wxTextFileType crlf) { wxTextFile f; if (!f.Create(po_file)) return false; return DoSaveOnly(f, crlf); } bool Catalog::DoSaveOnly(wxTextBuffer& f, wxTextFileType crlf) { /* Save .po file: */ if (!m_header.Charset || m_header.Charset == "CHARSET") m_header.Charset = "UTF-8"; SaveMultiLines(f, m_header.Comment); if (m_fileType == Type::POT) f.AddLine(wxS("#, fuzzy")); f.AddLine(wxS("msgid \"\"")); f.AddLine(wxS("msgstr \"\"")); wxString pohdr = wxString(wxS("\"")) + m_header.ToString(wxS("\"\n\"")); pohdr.RemoveLast(); SaveMultiLines(f, pohdr); f.AddLine(wxEmptyString); auto pluralsCount = GetPluralFormsCount(); for (auto& data: m_items) { data->SetLineNumber(int(f.GetLineCount()+1)); SaveMultiLines(f, data->GetComment()); for (unsigned i = 0; i < data->GetExtractedComments().GetCount(); i++) { if (data->GetExtractedComments()[i].empty()) f.AddLine(wxS("#.")); else f.AddLine(wxS("#. ") + data->GetExtractedComments()[i]); } for (unsigned i = 0; i < data->GetRawReferences().GetCount(); i++) f.AddLine(wxS("#: ") + data->GetRawReferences()[i]); wxString dummy = data->GetFlags(); if (!dummy.empty()) f.AddLine(wxS("#") + dummy); for (unsigned i = 0; i < data->GetOldMsgidRaw().GetCount(); i++) f.AddLine(wxS("#| ") + data->GetOldMsgidRaw()[i]); if ( data->HasContext() ) { SaveMultiLines(f, wxS("msgctxt \"") + FormatStringForFile(data->GetContext()) + wxS("\"")); } dummy = FormatStringForFile(data->GetString()); SaveMultiLines(f, wxS("msgid \"") + dummy + wxS("\"")); if (data->HasPlural()) { dummy = FormatStringForFile(data->GetPluralString()); SaveMultiLines(f, wxS("msgid_plural \"") + dummy + wxS("\"")); for (unsigned i = 0; i < pluralsCount; i++) { dummy = FormatStringForFile(data->GetTranslation(i)); wxString hdr = wxString::Format(wxS("msgstr[%u] \""), i); SaveMultiLines(f, hdr + dummy + wxS("\"")); } } else { dummy = FormatStringForFile(data->GetTranslation()); SaveMultiLines(f, wxS("msgstr \"") + dummy + wxS("\"")); } f.AddLine(wxEmptyString); } // Write back deleted items in the file so that they're not lost for (unsigned itemIdx = 0; itemIdx < m_deletedItems.size(); itemIdx++) { if ( itemIdx != 0 ) f.AddLine(wxEmptyString); CatalogDeletedData& deletedItem = m_deletedItems[itemIdx]; deletedItem.SetLineNumber(int(f.GetLineCount()+1)); SaveMultiLines(f, deletedItem.GetComment()); for (unsigned i = 0; i < deletedItem.GetExtractedComments().GetCount(); i++) f.AddLine(wxS("#. ") + deletedItem.GetExtractedComments()[i]); for (unsigned i = 0; i < deletedItem.GetRawReferences().GetCount(); i++) f.AddLine(wxS("#: ") + deletedItem.GetRawReferences()[i]); wxString dummy = deletedItem.GetFlags(); if (!dummy.empty()) f.AddLine(wxS("#") + dummy); for (size_t j = 0; j < deletedItem.GetDeletedLines().GetCount(); j++) f.AddLine(deletedItem.GetDeletedLines()[j]); } if (!CanEncodeToCharset(f, m_header.Charset)) { #if wxUSE_GUI wxString msg; msg.Printf(_(L"The catalog couldn’t be saved in “%s” charset as specified in catalog settings.\n\nIt was saved in UTF-8 instead and the setting was modified accordingly."), m_header.Charset.c_str()); wxMessageBox(msg, _("Error saving catalog"), wxOK | wxICON_EXCLAMATION); #endif m_header.Charset = "UTF-8"; // Re-do the save again because we modified a header: f.Clear(); return DoSaveOnly(f, crlf); } // Otherwise everything can be safely saved: return f.Write(crlf, wxCSConv(m_header.Charset)); } bool Catalog::HasDuplicateItems() const { typedef std::pair MsgId; std::set ids; for (auto& item: m_items) { if (!ids.emplace(std::make_pair(item->GetContext(), item->GetString())).second) return true; } return false; } bool Catalog::FixDuplicateItems() { auto oldname = m_fileName; TempDirectory tmpdir; if ( !tmpdir.IsOk() ) return false; wxString ext; wxFileName::SplitPath(m_fileName, nullptr, nullptr, &ext); wxString po_file_temp = tmpdir.CreateFileName("catalog." + ext); wxString po_file_fixed = tmpdir.CreateFileName("fixed." + ext); if ( !DoSaveOnly(po_file_temp, wxTextFileType_Unix) ) { wxLogError(_(L"Couldn’t save file %s."), po_file_temp.c_str()); return false; } ExecuteGettext(wxString::Format("msguniq -o %s %s", QuoteCmdlineArg(po_file_fixed), QuoteCmdlineArg(po_file_temp))); if (!wxFileName::FileExists(po_file_fixed)) return false; bool ok = Load(po_file_fixed); m_fileName = oldname; return ok; } namespace { wxString MaskForType(const char *extensions, const wxString& description, bool showExt = true) { (void)showExt; #ifdef __WXMSW__ if (showExt) return wxString::Format("%s (%s)|%s", description, extensions, extensions); else #endif return wxString::Format("%s|%s", description, extensions); } wxString MaskForType(Catalog::Type t) { switch (t) { case Catalog::Type::PO: return MaskForType("*.po", _("PO Translation Files")); case Catalog::Type::POT: return MaskForType("*.pot", _("POT Translation Templates")); } return ""; // silence stupid warning } } // anonymous namespace wxString Catalog::GetTypesFileMask(std::initializer_list types) { if (types.size() == 0) return ""; wxString out; auto t = types.begin(); out += MaskForType(*t); for (++t; t != types.end(); ++t) { out += "|"; out += MaskForType(*t); } return out; } wxString Catalog::GetAllTypesFileMask() { return MaskForType("*.po;*.pot", _("All Translation Files"), /*showExt=*/false) + "|" + GetTypesFileMask({Type::PO, Type::POT}); } Catalog::ValidationResults Catalog::Validate() { TempDirectory tmpdir; if ( !tmpdir.IsOk() ) return ValidationResults(); wxString tmp_po = tmpdir.CreateFileName("validated.po"); if ( !DoSaveOnly(tmp_po, wxTextFileType_Unix) ) return ValidationResults(); return DoValidate(tmp_po); } Catalog::ValidationResults Catalog::DoValidate(const wxString& po_file) { ValidationResults res; GettextErrors err; ExecuteGettextAndParseOutput ( wxString::Format("msgfmt -o /dev/null -c %s", QuoteCmdlineArg(CliSafeFileName(po_file))), err ); for (auto& i: m_items) i->ClearIssue(); res.errors = (int)err.size(); res.warnings = QAChecker::GetFor(*this)->Check(*this); for ( GettextErrors::const_iterator i = err.begin(); i != err.end(); ++i ) { if ( i->line != -1 ) { auto item = FindItemByLine(i->line); if ( item ) { item->SetIssue(CatalogItem::Issue::Error, i->text); continue; } } // if not matched to an item: wxLogError(i->text); } return res; } void Catalog::SetFileName(const wxString& fn) { wxFileName f(fn); f.Normalize(wxPATH_NORM_DOTS | wxPATH_NORM_ABSOLUTE); m_fileName = f.GetFullPath(); } namespace { enum class SourcesPath { Base, Root }; wxString GetSourcesPath(const wxString& fileName, const Catalog::HeaderData& header, SourcesPath kind) { if (fileName.empty()) return wxString(); if (header.BasePath.empty()) return wxString(); wxString basepath; if (wxIsAbsolutePath(header.BasePath)) { basepath = header.BasePath; } else { wxString path = wxPathOnly(fileName); if (path.empty()) path = "."; basepath = path + wxFILE_SEP_PATH + header.BasePath + wxFILE_SEP_PATH; } wxFileName root = wxFileName::DirName(basepath); root.Normalize(wxPATH_NORM_DOTS | wxPATH_NORM_ABSOLUTE); if (kind == SourcesPath::Root) { // Deal with misconfigured catalogs where the basepath isn't the root. for (auto& p : header.SearchPaths) { wxString path = (p == ".") ? basepath : basepath + wxFILE_SEP_PATH + p; root = CommonDirectory(root, MakeFileName(path)); } } return root.GetFullPath(); } } // anonymous namespace wxString Catalog::GetSourcesBasePath() const { return GetSourcesPath(m_fileName, m_header, SourcesPath::Base); } wxString Catalog::GetSourcesRootPath() const { return GetSourcesPath(m_fileName, m_header, SourcesPath::Root); } bool Catalog::HasSourcesConfigured() const { return !m_fileName.empty() && !m_header.BasePath.empty() && !m_header.SearchPaths.empty(); } bool Catalog::HasSourcesAvailable() const { if (!HasSourcesConfigured()) return false; auto basepath = GetSourcesBasePath(); if (!wxFileName::DirExists(basepath)) return false; for (auto& p: m_header.SearchPaths) { auto fullp = wxIsAbsolutePath(p) ? p : basepath + p; if (!wxFileName::Exists(fullp)) return false; } auto wpfile = m_header.GetHeader("X-Poedit-WPHeader"); if (!wpfile.empty()) { // The following tests in this function are heuristics, so don't run // them in presence of X-Poedit-WPHeader and consider the existence // of that file a confirmation of correct setup (even though strictly // speaking only its absence proves anything). return wxFileName::FileExists(basepath + wpfile); } if (m_header.SearchPaths.size() == 1) { // A single path doesn't give us much in terms of detection. About the // only thing we can do is to check if it is is a well known directory // that is unlikely to be the root. auto root = GetSourcesRootPath(); if (root == wxGetUserHome() || root == wxStandardPaths::Get().GetDocumentsDir() || root.EndsWith(wxString(wxFILE_SEP_PATH) + "Desktop" + wxFILE_SEP_PATH)) { return false; } } return true; } std::shared_ptr Catalog::GetSourceCodeSpec() const { if (!m_isOk) return nullptr; auto path = GetSourcesBasePath(); if (!path.empty()) { if (!wxFileName::DirExists(path)) return nullptr; } auto spec = std::make_shared(); spec->BasePath = !path.empty() ? path : "."; spec->SearchPaths = m_header.SearchPaths; spec->ExcludedPaths = m_header.SearchPathsExcluded; spec->Charset = m_header.SourceCodeCharset; spec->Keywords = m_header.Keywords; for (auto& kv: m_header.GetAllHeaders()) spec->XHeaders[kv.Key] = kv.Value; return spec; } bool Catalog::UpdateFromPOT(const wxString& pot_file, bool replace_header) { CatalogPtr pot = std::make_shared(pot_file, CreationFlag_IgnoreTranslations); if (!pot->IsOk()) { wxLogError(_(L"“%s” is not a valid POT file."), pot_file.c_str()); return false; } return UpdateFromPOT(pot, replace_header); } bool Catalog::UpdateFromPOT(CatalogPtr pot, bool replace_header) { switch (m_fileType) { case Type::PO: { if (!Merge(pot)) return false; break; } case Type::POT: { m_items = pot->m_items; break; } } if (replace_header) CreateNewHeader(pot->Header()); return true; } CatalogPtr Catalog::CreateFromPOT(const wxString& pot_file) { CatalogPtr c = std::make_shared(); if (c->UpdateFromPOT(pot_file, /*replace_header=*/true)) return c; else return nullptr; } bool Catalog::Merge(const CatalogPtr& refcat) { wxString oldname = m_fileName; TempDirectory tmpdir; if ( !tmpdir.IsOk() ) return false; wxString tmp1 = tmpdir.CreateFileName("ref.pot"); wxString tmp2 = tmpdir.CreateFileName("input.po"); wxString tmp3 = tmpdir.CreateFileName("output.po"); refcat->DoSaveOnly(tmp1, wxTextFileType_Unix); DoSaveOnly(tmp2, wxTextFileType_Unix); wxString flags("-q --force-po --previous"); if (Config::MergeBehavior() == Merge_None) { flags += " --no-fuzzy-matching"; } bool succ = ExecuteGettext ( wxString::Format ( "msgmerge %s -o %s %s %s", flags, QuoteCmdlineArg(tmp3), QuoteCmdlineArg(tmp2), QuoteCmdlineArg(tmp1) ) ); if (succ) { const wxString charset = m_header.Charset; Load(tmp3); // msgmerge doesn't always preserve the charset, it tends to pick // the most generic one of the charsets used, so if we are merging with // UTF-8 catalog, it will become UTF-8. Some people hate this. m_header.Charset = charset; } m_fileName = oldname; return succ; } static unsigned GetCountFromPluralFormsHeader(const Catalog::HeaderData& header) { if ( header.HasHeader("Plural-Forms") ) { // e.g. "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" wxString form = header.GetHeader("Plural-Forms"); form = form.BeforeFirst(_T(';')); if (form.BeforeFirst(_T('=')) == "nplurals") { wxString vals = form.AfterFirst('='); if (vals == "INTEGER") // POT default return 2; long val; if (vals.ToLong(&val)) return (unsigned)val; } } // fallback value for plural forms count should be 2, as in English: return 2; } unsigned Catalog::GetPluralFormsCount() const { unsigned count = GetCountFromPluralFormsHeader(m_header); for (auto& i: m_items) { count = std::max(count, i->GetPluralFormsCount()); } return count; } bool Catalog::HasWrongPluralFormsCount() const { unsigned count = 0; for (auto& i: m_items) { count = std::max(count, i->GetPluralFormsCount()); } if ( count == 0 ) return false; // nothing translated, so we can't tell // if 'count' is less than the count from header, it may simply mean there // are untranslated strings if ( count > GetCountFromPluralFormsHeader(m_header) ) return true; return false; } bool Catalog::HasPluralItems() const { for (auto& i: m_items) { if ( i->HasPlural() ) return true; } return false; } void Catalog::SetLanguage(Language lang) { m_header.Lang = lang; m_header.SetHeaderNotEmpty("Plural-Forms", lang.DefaultPluralFormsExpr()); } void Catalog::GetStatistics(int *all, int *fuzzy, int *badtokens, int *untranslated, int *unfinished) { if (all) *all = 0; if (fuzzy) *fuzzy = 0; if (badtokens) *badtokens = 0; if (untranslated) *untranslated = 0; if (unfinished) *unfinished = 0; for (auto& i: m_items) { bool ok = true; if (all) (*all)++; if (i->IsFuzzy()) { if (fuzzy) (*fuzzy)++; ok = false; } if (i->HasError()) { if (badtokens) (*badtokens)++; ok = false; } if (!i->IsTranslated()) { if (untranslated) (*untranslated)++; ok = false; } if ( !ok && unfinished ) (*unfinished)++; } } void CatalogItem::SetFlags(const wxString& flags) { static const wxString flag_fuzzy(wxS(", fuzzy")); m_moreFlags = flags; if (flags.find(flag_fuzzy) != wxString::npos) { m_isFuzzy = true; m_moreFlags.Replace(flag_fuzzy, wxString()); } else { m_isFuzzy = false; } } wxString CatalogItem::GetFlags() const { if (m_isFuzzy) { static const wxString flag_fuzzy(wxS(", fuzzy")); if (m_moreFlags.empty()) return flag_fuzzy; else return flag_fuzzy + m_moreFlags; } else { return m_moreFlags; } } wxString CatalogItem::GetFormatFlag() const { auto pos = m_moreFlags.find(wxS("-format")); if (pos == wxString::npos) return wxString(); auto space = m_moreFlags.find_last_of(" \t", pos); if (space == wxString::npos) return m_moreFlags.substr(0, pos); else return m_moreFlags.substr(space+1, pos-space-1); } void CatalogItem::SetFuzzy(bool fuzzy) { if (!fuzzy && m_isFuzzy) m_oldMsgid.clear(); m_isFuzzy = fuzzy; } bool CatalogItem::IsInFormat(const wxString& format) { wxString lookingFor; lookingFor.Printf("%s-format", format.c_str()); wxStringTokenizer tkn(m_moreFlags, " ,", wxTOKEN_STRTOK); while (tkn.HasMoreTokens()) { if (tkn.GetNextToken() == lookingFor) return true; } return false; } wxString CatalogItem::GetTranslation(unsigned idx) const { if (idx >= GetNumberOfTranslations()) return wxEmptyString; else return m_translations[idx]; } void CatalogItem::SetTranslation(const wxString &t, unsigned idx) { while (idx >= m_translations.GetCount()) m_translations.Add(wxEmptyString); m_translations[idx] = t; ClearIssue(); m_isTranslated = true; for (size_t i = 0; i < m_translations.GetCount(); i++) { if (m_translations[i].empty()) { m_isTranslated = false; break; } } } void CatalogItem::SetTranslations(const wxArrayString &t) { m_translations = t; ClearIssue(); m_isTranslated = true; for (size_t i = 0; i < m_translations.GetCount(); i++) { if (m_translations[i].empty()) { m_isTranslated = false; break; } } } void CatalogItem::SetTranslationFromSource() { ClearIssue(); m_isFuzzy = false; m_isPreTranslated = false; m_isTranslated = true; auto iter = m_translations.begin(); if (*iter != m_string) { *iter = m_string; m_isModified = true; } if (m_hasPlural) { ++iter; for ( ; iter != m_translations.end(); ++iter ) { if (*iter != m_plural) { *iter = m_plural; m_isModified = true; } } } } void CatalogItem::ClearTranslation() { m_isFuzzy = false; m_isPreTranslated = false; m_isTranslated = false; for (auto& t: m_translations) { if (!t.empty()) m_isModified = true; t.clear(); } } unsigned CatalogItem::GetPluralFormsCount() const { unsigned trans = GetNumberOfTranslations(); if ( !HasPlural() || !trans ) return 0; return trans - 1; } wxArrayString CatalogItem::GetReferences() const { // A line may contain several references, separated by white-space. // Each reference is in the form "path_name:line_number" // (path_name may contain spaces) wxArrayString refs; for ( wxArrayString::const_iterator i = m_references.begin(); i != m_references.end(); ++i ) { wxString line = *i; line = line.Strip(wxString::both); while (!line.empty()) { size_t idx = 0; while (idx < line.length() && line[idx] != _T(':')) { idx++; } while (idx < line.length() && !wxIsspace(line[idx])) { idx++; } refs.push_back(line.Left(idx)); line = line.Mid(idx).Strip(wxString::both); } } return refs; } wxString CatalogItem::GetOldMsgid() const { wxString s; for (auto line: m_oldMsgid) { if (line.length() < 2) continue; if (line.Last() == '"') line.RemoveLast(); if (line[0] == '"') line.Remove(0, 1); if (line.StartsWith("msgid \"")) line.Remove(0, 7); else if (line.StartsWith("msgid_plural \"")) line.replace(0, 14, "\n"); s += UnescapeCString(line); } return s; } poedit-2.0.6/src/concurrency.cpp0000664000372000037200000001165313230131554013554 00000000000000/* * This file is part of Poedit (https://poedit.net) * * Copyright (C) 2010-2018 Vaclav Slavik * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * DEALINGS IN THE SOFTWARE. * */ #include "concurrency.h" #include "errors.h" #include // All this is for rethrow_for_boost: #if defined(HAVE_HTTP_CLIENT) && !defined(__WXOSX__) #include #endif using namespace dispatch; exception_ptr dispatch::current_exception() { // All this mess is necessary to convert std::exception_ptr to boost::exception_ptr // somewhat reasonably to correctly propagate exceptions through futures. // Unfortunately, boost::future has no support for std::exception_ptr and insists // on using boost::exception_ptr which requires manual support. // // See http://stackoverflow.com/questions/22010388/converting-stdexception-ptr-to-boostexception-ptr // for more in-depth examples of what this code does. #define CATCH_AND_WRAP(type) \ catch (type& e) \ { \ try \ { \ throw boost::enable_current_exception(e); \ } \ catch (...) \ { \ return boost::current_exception(); \ } \ } try { throw; } catch (boost::exception&) { return boost::current_exception(); } #if defined(HAVE_HTTP_CLIENT) && !defined(__WXOSX__) CATCH_AND_WRAP(web::http::http_exception) #endif CATCH_AND_WRAP(std::runtime_error) CATCH_AND_WRAP(std::logic_error) CATCH_AND_WRAP(std::exception) catch (...) { return boost::current_exception(); } } #if defined(HAVE_DISPATCH) #include void detail::dispatch_async_cxx(boost::executors::work&& f, detail::queue q) { dispatch_queue_t dq = 0; switch (q) { case detail::queue::main: dq = dispatch_get_main_queue(); break; case detail::queue::priority_default: dq = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0); break; } dispatch_async(dq, [f{std::move(f)}]() mutable { try { f(); } catch (...) { // FIXME: This is gross. Should be reported better and properly, but this // is consistent with pplx/ConcurrencyRT/futures, so do it for now. wxLogDebug("uncaught exception: %s", DescribeCurrentException()); } }); } #endif // HAVE_DISPATCH namespace { std::unique_ptr gs_background_executor; std::unique_ptr gs_main_thread_executor; static std::once_flag gs_background_executor_flag, gs_main_thread_executor_flag; } dispatch::detail::background_queue_executor& dispatch::detail::background_queue_executor::get() { std::call_once(gs_background_executor_flag, []{ gs_background_executor.reset(new background_queue_executor); }); return *gs_background_executor; } dispatch::detail::main_thread_executor& dispatch::detail::main_thread_executor::get() { std::call_once(gs_main_thread_executor_flag, []{ gs_main_thread_executor.reset(new main_thread_executor); }); return *gs_main_thread_executor; } void dispatch::cleanup() { if (gs_background_executor) gs_background_executor->close(); if (gs_main_thread_executor) gs_main_thread_executor->close(); gs_background_executor.reset(); gs_main_thread_executor.reset(); } poedit-2.0.6/src/cat_update.cpp0000664000372000037200000001713413230131554013333 00000000000000/* * This file is part of Poedit (https://poedit.net) * * Copyright (C) 2000-2018 Vaclav Slavik * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * DEALINGS IN THE SOFTWARE. * */ #include "cat_update.h" #include "extractors/extractor.h" #include "progressinfo.h" #include "utility.h" #include #include #include #include #include #include #include namespace { /** This class provides simple dialog that displays list * of changes made in the catalog. */ class MergeSummaryDialog : public wxDialog { public: MergeSummaryDialog(wxWindow *parent); ~MergeSummaryDialog(); /** Reads data from catalog and fill dialog's controls. \param snew list of strings that are new to the catalog \param sobsolete list of strings that no longer appear in the catalog (as compared to catalog's state before parsing sources). */ void TransferTo(const wxArrayString& snew, const wxArrayString& sobsolete); }; MergeSummaryDialog::MergeSummaryDialog(wxWindow *parent) { wxXmlResource::Get()->LoadDialog(this, parent, "summary"); RestoreWindowState(this, wxDefaultSize, WinState_Size); CentreOnParent(); } MergeSummaryDialog::~MergeSummaryDialog() { SaveWindowState(this, WinState_Size); } void MergeSummaryDialog::TransferTo(const wxArrayString& snew, const wxArrayString& sobsolete) { wxString sum; sum.Printf(_("(New: %i, obsolete: %i)"), (int)snew.GetCount(), (int)sobsolete.GetCount()); XRCCTRL(*this, "items_count", wxStaticText)->SetLabel(sum); wxListBox *listbox; size_t i; listbox = XRCCTRL(*this, "new_strings", wxListBox); for (i = 0; i < snew.GetCount(); i++) { listbox->Append(snew[i]); } listbox = XRCCTRL(*this, "obsolete_strings", wxListBox); for (i = 0; i < sobsolete.GetCount(); i++) { listbox->Append(sobsolete[i]); } } inline wxString ItemMergeSummary(const CatalogItemPtr& item) { wxString s = item->GetString(); if ( item->HasPlural() ) s += "|" + item->GetPluralString(); if ( item->HasContext() ) s += wxString::Format(" [%s]", item->GetContext()); return s; } /** Returns list of strings that are new in reference catalog (compared to this one) and that are not present in \a refcat (i.e. are obsoleted). \see ShowMergeSummary */ void GetMergeSummary(CatalogPtr po, CatalogPtr refcat, wxArrayString& snew, wxArrayString& sobsolete) { wxASSERT( snew.empty() ); wxASSERT( sobsolete.empty() ); std::set strsThis, strsRef; for (auto& i: po->items()) strsThis.insert(ItemMergeSummary(i)); for (auto& i: refcat->items()) strsRef.insert(ItemMergeSummary(i)); for (auto& i: strsThis) { if (strsRef.find(i) == strsRef.end()) sobsolete.Add(i); } for (auto& i: strsRef) { if (strsThis.find(i) == strsThis.end()) snew.Add(i); } } /** Shows a dialog with merge summary. \see GetMergeSummary, Merge \return true if the merge was OK'ed by the user, false otherwise */ bool ShowMergeSummary(wxWindow *parent, ProgressInfo *progress, CatalogPtr po, CatalogPtr refcat, bool *cancelledByUser) { if (cancelledByUser) *cancelledByUser = false; if (wxConfig::Get()->ReadBool("show_summary", false)) { wxArrayString snew, sobsolete; GetMergeSummary(po, refcat, snew, sobsolete); MergeSummaryDialog sdlg(parent); sdlg.TransferTo(snew, sobsolete); if (progress) progress->Hide(); bool ok = (sdlg.ShowModal() == wxID_OK); if (progress) progress->Show(); if (cancelledByUser) *cancelledByUser = !ok; return ok; } else return true; } } // anonymous namespace bool PerformUpdateFromSources(wxWindow *parent, CatalogPtr catalog, UpdateResultReason& reason, int flags) { const bool skipSummary = (flags & Update_DontShowSummary); ProgressInfo progress(parent, _("Updating catalog")); reason = UpdateResultReason::Unspecified; if (!catalog->IsOk()) return false; auto spec = catalog->GetSourceCodeSpec(); if (!spec) { reason = UpdateResultReason::NoSourcesFound; return false; } CatalogPtr pot = nullptr; progress.PulseGauge(); progress.UpdateMessage(_(L"Collecting source files…")); auto files = Extractor::CollectAllFiles(*spec); progress.PulseGauge(); progress.UpdateMessage(_(L"Extracting translatable strings…")); if (!files.empty()) { TempDirectory tmpdir; auto potFile = Extractor::ExtractWithAll(tmpdir, *spec, files); if (!potFile.empty()) { pot = std::make_shared(potFile, Catalog::CreationFlag_IgnoreHeader); if (!pot->IsOk()) { wxLogError(_("Failed to load extracted catalog.")); pot.reset(); } } } else { reason = UpdateResultReason::NoSourcesFound; } if (progress.Cancelled()) { reason = UpdateResultReason::CancelledByUser; return false; } if (!pot) return false; progress.UpdateMessage(_(L"Merging differences…")); bool succ = false; bool cancelledByUser = false; if (skipSummary || ShowMergeSummary(parent, &progress, catalog, pot, &cancelledByUser)) { succ = catalog->UpdateFromPOT(pot); } if (cancelledByUser) reason = UpdateResultReason::CancelledByUser; return succ; } bool PerformUpdateFromPOT(wxWindow *parent, CatalogPtr catalog, const wxString& pot_file, UpdateResultReason& reason) { reason = UpdateResultReason::Unspecified; if (!catalog->IsOk()) return false; CatalogPtr pot = std::make_shared(pot_file, Catalog::CreationFlag_IgnoreTranslations); if (!pot->IsOk()) { wxLogError(_(L"“%s” is not a valid POT file."), pot_file.c_str()); return false; } bool cancelledByUser = false; if (ShowMergeSummary(parent, nullptr, catalog, pot, &cancelledByUser)) { return catalog->UpdateFromPOT(pot); } else { if (cancelledByUser) reason = UpdateResultReason::CancelledByUser; return false; } } poedit-2.0.6/src/icons.cpp0000664000372000037200000001157713230131554012342 00000000000000/* * This file is part of Poedit (https://poedit.net) * * Copyright (C) 2004-2018 Vaclav Slavik * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * DEALINGS IN THE SOFTWARE. * */ #include #include #include #include #include "icons.h" #include "edapp.h" #include "hidpi.h" #include "utility.h" #ifndef __WXOSX__ namespace { #ifdef __WXGTK20__ // translates poedit item id or Tango stock item id to "legacy" GNOME id: wxString GetGnomeStockId(const wxString& id) { #define MAP(poedit, gnome) if ( id == _T(poedit) ) return _T(gnome) MAP("document-open", "gtk-open"); MAP("document-save", "gtk-save"); MAP("window-close", "gtk-close"); MAP("document-new", "gtk-new"); MAP("document-properties", "stock_edit"); MAP("edit-delete", "gtk-delete"); #undef MAP return wxEmptyString; // no match found } #endif // __WXGTK20__ // Check if a given icon needs mirroring in right-to-left locales: bool ShouldBeMirorredInRTL(const wxArtID& id, const wxArtClient& client) { // Silence warning about unused parameter in some of the builds (void)client; static std::set s_directional = { "ContributeOn", "poedit-status-comment", "follow-link", "sidebar", "Welcome_EditTranslation", "Welcome_CreateTranslation", "Welcome_WordPress", "Welcome_Collaborate" }; bool mirror = s_directional.find(id) != s_directional.end(); #ifdef __WXMSW__ // Toolbar is already mirrored if (client == wxART_TOOLBAR) mirror = !mirror; #endif return mirror; } } // anonymous namespace wxBitmap PoeditArtProvider::CreateBitmap(const wxArtID& id_, const wxArtClient& client, const wxSize& size) { wxLogTrace("poedit.icons", "getting icon '%s'", id_.c_str()); wxArtID id(id_); const bool disabledVariant = id.Contains("@disabled"); if (disabledVariant) id.Replace("@disabled", ""); // Silence warning about unused parameter in some of the builds (void)client; (void)size; // Note: On Unix, this code is only called as last resort, if standard // theme provider (that uses current icon theme and files from // /usr/share/icons/) didn't find any matching icon. #ifdef __WXGTK20__ // try legacy GNOME icons from standard theme: wxString gnomeId = GetGnomeStockId(id); if ( !gnomeId.empty() ) { wxLogTrace("poedit.icons", "-> legacy '%s'", gnomeId.c_str()); wxBitmap gbmp(wxArtProvider::GetBitmap(gnomeId, client, size)); if ( gbmp.Ok() ) return gbmp; } #endif // __WXGTK20__ wxString iconsdir = #if defined(__WXMSW__) wxStandardPaths::Get().GetResourcesDir() + "\\Resources"; #else wxStandardPaths::Get().GetInstallPrefix() + "/share/poedit/icons"; #endif if ( !wxDirExists(iconsdir) ) { wxLogTrace("poedit.icons", "icons dir %s not found", iconsdir.c_str()); return wxNullBitmap; } wxString icon; icon.Printf("%s/%s", iconsdir, id); wxLogTrace("poedit.icons", "loading from %s", icon); wxImage img = LoadScaledBitmap(icon); if (!img.IsOk()) { wxLogTrace("poedit.icons", "failed to load icon '%s'", id); return wxNullBitmap; } if (disabledVariant) img = img.ConvertToDisabled(); if (wxTheApp->GetLayoutDirection() == wxLayout_RightToLeft && ShouldBeMirorredInRTL(id, client)) { img = img.Mirror(); } #ifdef __WXMSW__ if (client == wxART_TOOLBAR && IsWindows10OrGreater()) { const int padding = PX(1); auto sz = img.GetSize(); sz.IncBy(padding * 2); img.Resize(sz, wxPoint(padding, padding)); } #endif // __WXMSW__ return wxBitmap(img); } #endif // !__WXOSX__ poedit-2.0.6/src/sidebar.cpp0000664000372000037200000006252613230131554012640 00000000000000/* * This file is part of Poedit (https://poedit.net) * * Copyright (C) 2014-2018 Vaclav Slavik * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * DEALINGS IN THE SOFTWARE. * */ #include "sidebar.h" #include "catalog.h" #include "customcontrols.h" #include "colorscheme.h" #include "commentdlg.h" #include "concurrency.h" #include "configuration.h" #include "errors.h" #include "hidpi.h" #include "utility.h" #include "unicode_helpers.h" #include "tm/suggestions.h" #include "tm/transmem.h" #include #include #include #include #include #include #include #include #include #include class SidebarSeparator : public wxWindow { public: SidebarSeparator(wxWindow *parent) : wxWindow(parent, wxID_ANY), m_sides(ColorScheme::Get(Color::SidebarBackground)), m_center(ColorScheme::Get(Color::EditingSubtleSeparator)) { Bind(wxEVT_PAINT, &SidebarSeparator::OnPaint, this); } wxSize DoGetBestSize() const override { return wxSize(-1, PX(1)); } bool AcceptsFocus() const override { return false; } private: void OnPaint(wxPaintEvent&) { wxPaintDC dc(this); auto w = dc.GetSize().x; dc.GradientFillLinear(wxRect(0,0,PX(20),PX(1)), m_sides, m_center); dc.GradientFillLinear(wxRect(PX(20),0,w,PX(1)), m_center, m_sides); } wxColour m_sides, m_center; }; SidebarBlock::SidebarBlock(Sidebar *parent, const wxString& label, int flags) { m_parent = parent; m_sizer = new wxBoxSizer(wxVERTICAL); if (!(flags & NoUpperMargin)) m_sizer->AddSpacer(PX(15)); if (!label.empty()) { if (!(flags & NoUpperMargin)) { m_sizer->Add(new SidebarSeparator(parent), wxSizerFlags().Expand().Border(wxBOTTOM|wxLEFT, PX(2))); } m_headerSizer = new wxBoxSizer(wxHORIZONTAL); m_headerSizer->Add(new HeadingLabel(parent, label), wxSizerFlags().Expand()); m_sizer->Add(m_headerSizer, wxSizerFlags().Expand().PXDoubleBorder(wxLEFT|wxRIGHT)); } m_innerSizer = new wxBoxSizer(wxVERTICAL); m_sizer->Add(m_innerSizer, wxSizerFlags(1).Expand().PXDoubleBorder(wxLEFT|wxRIGHT)); } void SidebarBlock::Show(bool show) { m_sizer->ShowItems(show); } void SidebarBlock::SetItem(const CatalogItemPtr& item) { if (!item) { Show(false); return; } bool use = ShouldShowForItem(item); if (use) Update(item); Show(use); } class OldMsgidSidebarBlock : public SidebarBlock { public: OldMsgidSidebarBlock(Sidebar *parent) /// TRANSLATORS: "Previous" as in used in the past, now replaced with newer. : SidebarBlock(parent, _("Previous source text:")) { m_innerSizer->AddSpacer(PX(2)); m_innerSizer->Add(new ExplanationLabel(parent, _("The old source text (before it changed during an update) that the now-inaccurate translation corresponds to.")), wxSizerFlags().Expand()); m_innerSizer->AddSpacer(PX(5)); m_text = new SelectableAutoWrappingText(parent, ""); m_innerSizer->Add(m_text, wxSizerFlags().Expand()); } bool ShouldShowForItem(const CatalogItemPtr& item) const override { return item->HasOldMsgid(); } void Update(const CatalogItemPtr& item) override { m_text->SetAndWrapLabel(item->GetOldMsgid()); } private: SelectableAutoWrappingText *m_text; }; class ExtractedCommentSidebarBlock : public SidebarBlock { public: ExtractedCommentSidebarBlock(Sidebar *parent) : SidebarBlock(parent, _("Notes for translators:")) { m_innerSizer->AddSpacer(PX(5)); m_comment = new SelectableAutoWrappingText(parent, ""); m_innerSizer->Add(m_comment, wxSizerFlags().Expand()); } bool ShouldShowForItem(const CatalogItemPtr& item) const override { return item->HasExtractedComments(); } void Update(const CatalogItemPtr& item) override { auto comment = wxJoin(item->GetExtractedComments(), '\n', '\0'); if (comment.StartsWith("TRANSLATORS:") || comment.StartsWith("translators:")) { comment.Remove(0, 12); if (!comment.empty() && comment[0] == ' ') comment.Remove(0, 1); } m_comment->SetAndWrapLabel(comment); } private: SelectableAutoWrappingText *m_comment; }; class CommentSidebarBlock : public SidebarBlock { public: CommentSidebarBlock(Sidebar *parent) : SidebarBlock(parent, _("Comment:")) { m_innerSizer->AddSpacer(PX(5)); m_comment = new SelectableAutoWrappingText(parent, ""); m_innerSizer->Add(m_comment, wxSizerFlags().Expand()); } bool ShouldShowForItem(const CatalogItemPtr& item) const override { return item->HasComment(); } void Update(const CatalogItemPtr& item) override { auto text = CommentDialog::RemoveStartHash(item->GetComment()); text.Trim(); m_comment->SetAndWrapLabel(text); } private: SelectableAutoWrappingText *m_comment; }; class AddCommentSidebarBlock : public SidebarBlock { public: AddCommentSidebarBlock(Sidebar *parent) : SidebarBlock(parent, "") { #ifdef __WXMSW__ auto label = _("Add comment"); #else auto label = _("Add Comment"); #endif m_btn = new wxButton(parent, XRCID("menu_comment"), _("Add Comment")); m_innerSizer->AddStretchSpacer(); m_innerSizer->Add(m_btn, wxSizerFlags().Right()); } bool IsGrowable() const override { return true; } bool ShouldShowForItem(const CatalogItemPtr&) const override { return m_parent->FileHasCapability(Catalog::Cap::UserComments); } void Update(const CatalogItemPtr& item) override { #ifdef __WXMSW__ auto add = _("Add comment"); auto edit = _("Edit comment"); #else auto add = _("Add Comment"); auto edit = _("Edit Comment"); #endif m_btn->SetLabel(item->HasComment() ? edit : add); } private: wxButton *m_btn; }; wxDEFINE_EVENT(EVT_SUGGESTION_SELECTED, wxCommandEvent); class SuggestionWidget : public wxWindow { public: SuggestionWidget(wxWindow *parent, bool isFirst) : wxWindow(parent, wxID_ANY) { m_icon = new wxStaticBitmap(this, wxID_ANY, wxNullBitmap); m_text = new AutoWrappingText(this, "TEXT"); m_info = new InfoStaticText(this); m_isPerfect = isFirst ? new wxStaticBitmap(this, wxID_ANY, wxArtProvider::GetBitmap("SuggestionPerfectMatch")) : nullptr; auto top = new wxBoxSizer(wxHORIZONTAL); auto right = new wxBoxSizer(wxVERTICAL); top->AddSpacer(PX(2)); top->Add(m_icon, wxSizerFlags().Top().Border(wxTOP|wxBOTTOM, PX(6))); top->Add(right, wxSizerFlags(1).Expand().PXBorder(wxLEFT)); right->Add(m_text, wxSizerFlags().Expand().Border(wxTOP, PX(4))); auto infoSizer = new wxBoxSizer(wxHORIZONTAL); infoSizer->Add(m_info); if (m_isPerfect) infoSizer->Add(m_isPerfect, wxSizerFlags().Center().Border(wxLEFT, PX(2))); right->Add(infoSizer, wxSizerFlags().Expand().Border(wxTOP|wxBOTTOM, PX(2))); SetSizerAndFit(top); // setup mouse hover highlighting: m_bg = parent->GetBackgroundColour(); m_bgHighlight = m_bg.ChangeLightness(160); wxWindow* parts [] = { this, m_icon, m_text, m_info }; for (auto w : parts) { w->Bind(wxEVT_MOTION, &SuggestionWidget::OnMouseMove, this); w->Bind(wxEVT_LEAVE_WINDOW, &SuggestionWidget::OnMouseMove, this); w->Bind(wxEVT_LEFT_UP, &SuggestionWidget::OnMouseClick, this); } } void SetValue(int index, const Suggestion& s, Language lang, const wxBitmap& icon, const wxString& tooltip) { m_value = s; int percent = int(100 * s.score); auto percentStr = wxString::Format("%d%%", percent); index++; if (index < 10) { #ifdef __WXOSX__ auto shortcut = wxString::Format(L"⌘%d", index); #else // TRANSLATORS: This is the key shortcut used in menus on Windows, some languages call them differently auto shortcut = wxString::Format("%s%d", _("Ctrl+"), index); #endif m_info->SetLabel(wxString::Format(L"%s • %s", shortcut, percentStr)); } else { m_info->SetLabel(percentStr); } m_icon->SetBitmap(icon); if (m_isPerfect) m_isPerfect->GetContainingSizer()->Show(m_isPerfect, percent == 100); auto text = wxControl::EscapeMnemonics(bidi::mark_direction(s.text, lang)); m_text->SetLanguage(lang); m_text->SetAndWrapLabel(text); #ifndef __WXOSX__ // FIXME: Causes weird issues on macOS: tooltips appearing on the main list control, // over toolbar, where the mouse just was etc. m_icon->SetToolTip(tooltip); m_text->SetToolTip(tooltip); #endif (void)tooltip; SetBackgroundColour(m_bg); InvalidateBestSize(); SetMinSize(wxDefaultSize); SetMinSize(GetBestSize()); } bool AcceptsFocus() const override { return false; } private: class InfoStaticText : public wxStaticText { public: InfoStaticText(wxWindow *parent) : wxStaticText(parent, wxID_ANY, "100%") { SetForegroundColour(ExplanationLabel::GetTextColor()); #ifdef __WXMSW__ SetFont(GetFont().Smaller()); #else SetWindowVariant(wxWINDOW_VARIANT_SMALL); #endif } void DoEnable(bool) override {} // wxOSX's disabling would break color }; void OnMouseMove(wxMouseEvent& e) { auto rectWin = GetClientRect(); rectWin.Deflate(1); // work around off-by-one issue on macOS auto evtWin = static_cast(e.GetEventObject()); auto mpos = e.GetPosition(); if (evtWin != this) mpos += evtWin->GetPosition(); bool highlighted = rectWin.Contains(mpos); SetBackgroundColour(highlighted ? m_bgHighlight : m_bg); Refresh(); } void OnMouseClick(wxMouseEvent&) { wxCommandEvent event(EVT_SUGGESTION_SELECTED); event.SetEventObject(this); event.SetString(m_value.text); ProcessWindowEvent(event); } Suggestion m_value; wxStaticBitmap *m_icon; AutoWrappingText *m_text; wxStaticText *m_info; wxStaticBitmap *m_isPerfect; wxColour m_bg, m_bgHighlight; }; SuggestionsSidebarBlock::SuggestionsSidebarBlock(Sidebar *parent, wxMenu *menu) : SidebarBlock(parent, _("Translation suggestions:"), NoUpperMargin), m_suggestionsMenu(menu), m_msgPresent(false), m_pendingQueries(0), m_latestQueryId(0), m_lastUpdateTime(0) { m_provider.reset(new SuggestionsProvider); m_msgSizer = new wxBoxSizer(wxHORIZONTAL); m_msgIcon = new wxStaticBitmap(parent, wxID_ANY, wxNullBitmap); m_msgText = new ExplanationLabel(parent, ""); m_msgSizer->Add(m_msgIcon, wxSizerFlags().Center().PXBorderAll()); m_msgSizer->Add(m_msgText, wxSizerFlags(1).Center().PXBorder(wxTOP|wxBOTTOM)); m_innerSizer->Add(m_msgSizer, wxSizerFlags().Expand()); m_innerSizer->AddSpacer(PX(10)); m_suggestionsSizer = new wxBoxSizer(wxVERTICAL); m_extrasSizer = new wxBoxSizer(wxVERTICAL); m_innerSizer->Add(m_suggestionsSizer, wxSizerFlags().Expand()); m_innerSizer->Add(m_extrasSizer, wxSizerFlags().Expand()); m_iGotNothing = new wxStaticText(parent, wxID_ANY, #ifdef __WXMSW__ // TRANSLATORS: This is shown when no translation suggestions can be found in the TM (Windows). _("No matches found") #else // TRANSLATORS: This is shown when no translation suggestions can be found in the TM (macOS, Linux). _("No Matches Found") #endif ); m_iGotNothing->SetForegroundColour(ExplanationLabel::GetTextColor().ChangeLightness(150)); m_iGotNothing->SetWindowVariant(wxWINDOW_VARIANT_NORMAL); #ifdef __WXMSW__ m_iGotNothing->SetFont(m_iGotNothing->GetFont().Larger()); #endif m_innerSizer->Add(m_iGotNothing, wxSizerFlags().Center().Border(wxTOP|wxBOTTOM, PX(100))); BuildSuggestionsMenu(); m_suggestionsTimer.SetOwner(parent); parent->Bind(wxEVT_TIMER, &SuggestionsSidebarBlock::OnDelayedShowSuggestionsForItem, this, m_suggestionsTimer.GetId()); } SuggestionsSidebarBlock::~SuggestionsSidebarBlock() { ClearSuggestionsMenu(); for (auto i : m_suggestionMenuItems) delete i; } wxBitmap SuggestionsSidebarBlock::GetIconForSuggestion(const Suggestion&) const { return wxArtProvider::GetBitmap("SuggestionTM"); } wxString SuggestionsSidebarBlock::GetTooltipForSuggestion(const Suggestion&) const { return _(L"This string was found in Poedit’s translation memory."); } void SuggestionsSidebarBlock::ClearMessage() { m_msgPresent = false; m_msgText->SetAndWrapLabel(""); UpdateVisibility(); m_parent->Layout(); } void SuggestionsSidebarBlock::SetMessage(const wxString& icon, const wxString& text) { m_msgPresent = true; m_msgIcon->SetBitmap(wxArtProvider::GetBitmap(icon)); m_msgText->SetAndWrapLabel(text); UpdateVisibility(); m_parent->Layout(); } void SuggestionsSidebarBlock::ReportError(SuggestionsBackend*, dispatch::exception_ptr e) { SetMessage("SuggestionError", DescribeException(e)); } void SuggestionsSidebarBlock::ClearSuggestions() { m_suggestions.clear(); UpdateSuggestionsMenu(); UpdateVisibility(); } void SuggestionsSidebarBlock::UpdateSuggestions(const SuggestionsList& hits) { wxWindowUpdateLocker lock(m_parent); for (auto& h: hits) { // empty entries screw up menus (treated as stock items), don't use them: if (!h.text.empty()) m_suggestions.push_back(h); } std::stable_sort(m_suggestions.begin(), m_suggestions.end()); // create any necessary controls: while (m_suggestions.size() > m_suggestionsWidgets.size()) { auto w = new SuggestionWidget(m_parent, /*isFirst=*/m_suggestionsWidgets.empty()); m_suggestionsSizer->Add(w, wxSizerFlags().Expand()); m_suggestionsWidgets.push_back(w); } m_innerSizer->Layout(); // update shown suggestions: auto lang = m_parent->GetCurrentLanguage(); for (size_t i = 0; i < m_suggestions.size(); ++i) { auto s = m_suggestions[i]; m_suggestionsWidgets[i]->SetValue((int)i, s, lang, GetIconForSuggestion(s), GetTooltipForSuggestion(s)); } m_innerSizer->Layout(); UpdateVisibility(); m_parent->Layout(); UpdateSuggestionsMenu(); } void SuggestionsSidebarBlock::BuildSuggestionsMenu(int count) { m_suggestionMenuItems.reserve(SUGGESTIONS_MENU_ENTRIES); auto menu = m_suggestionsMenu; for (int i = 0; i < count; i++) { auto text = wxString::Format("(empty)\t%s%d", _("Ctrl+"), i+1); auto item = new wxMenuItem(menu, wxID_ANY, text); item->SetBitmap(wxArtProvider::GetBitmap("SuggestionTM")); m_suggestionMenuItems.push_back(item); menu->Append(item); m_suggestionsMenu->Bind(wxEVT_MENU, [this,i,menu](wxCommandEvent&){ if (i >= (int)m_suggestions.size()) return; wxCommandEvent event(EVT_SUGGESTION_SELECTED); event.SetEventObject(menu); event.SetString(m_suggestions[i].text); menu->GetWindow()->ProcessWindowEvent(event); }, item->GetId()); } } void SuggestionsSidebarBlock::UpdateSuggestionsMenu() { ClearSuggestionsMenu(); bool isRTL = m_parent->GetCurrentLanguage().IsRTL(); wxString formatMask; if (isRTL) formatMask = L"\u202b%s\u202c\t" + _("Ctrl+") + "%d"; else formatMask = L"\u202a%s\u202c\t" + _("Ctrl+") + "%d"; int index = 0; for (auto s: m_suggestions) { if (index >= SUGGESTIONS_MENU_ENTRIES) break; wxString text = s.text; text.Replace("\t", " "); text.Replace("\n", " "); if (text.length() > 100) text = text.substr(0, 100) + L"…"; auto item = m_suggestionMenuItems[index]; m_suggestionsMenu->Append(item); auto label = wxControl::EscapeMnemonics(wxString::Format(formatMask, text, index+1)); item->SetItemLabel(label); item->SetBitmap(GetIconForSuggestion(s)); index++; } } void SuggestionsSidebarBlock::ClearSuggestionsMenu() { auto m = m_suggestionsMenu; auto menuItems = m->GetMenuItems(); for (auto i: menuItems) { if (std::find(m_suggestionMenuItems.begin(), m_suggestionMenuItems.end(), i) != m_suggestionMenuItems.end()) m->Remove(i); } } void SuggestionsSidebarBlock::OnQueriesFinished() { if (m_suggestions.empty()) { m_innerSizer->Show(m_iGotNothing); m_parent->Layout(); } } void SuggestionsSidebarBlock::UpdateVisibility() { m_msgSizer->ShowItems(m_msgPresent); m_innerSizer->Show(m_iGotNothing, m_suggestions.empty() && !m_pendingQueries); int heightRemaining = m_innerSizer->GetSize().y; size_t w = 0; for (w = 0; w < m_suggestions.size(); w++) { heightRemaining -= m_suggestionsWidgets[w]->GetSize().y; // don't show suggestions that don't fit in the space, but always try to show at least 2 if (heightRemaining < 20 && w > 2) break; m_suggestionsSizer->Show(m_suggestionsWidgets[w]); } for (; w < m_suggestionsWidgets.size(); w++) m_suggestionsSizer->Hide(m_suggestionsWidgets[w]); } void SuggestionsSidebarBlock::Show(bool show) { SidebarBlock::Show(show); if (show) { UpdateVisibility(); } else { ClearSuggestionsMenu(); } } bool SuggestionsSidebarBlock::ShouldShowForItem(const CatalogItemPtr&) const { return m_parent->FileHasCapability(Catalog::Cap::Translations) && Config::UseTM(); } void SuggestionsSidebarBlock::Update(const CatalogItemPtr& item) { ClearMessage(); ClearSuggestions(); UpdateSuggestionsForItem(item); } void SuggestionsSidebarBlock::UpdateSuggestionsForItem(CatalogItemPtr item) { if (!item) return; long long now = wxGetUTCTimeMillis().GetValue(); long long delta = now - m_lastUpdateTime; m_lastUpdateTime = now; if (delta < 100) { // User is probably holding arrow down and going through the list as crazy // and not really caring for the suggestions. Throttle them a bit and call // this code after a small delay. Notice that this may repeat itself several // times, only continuing through to show suggestions after the dust settled // and the user didn't change the selection for a few milliseconds. if (!m_suggestionsTimer.IsRunning()) m_suggestionsTimer.StartOnce(110); return; } m_pendingQueries = 0; auto srclang = m_parent->GetCurrentSourceLanguage(); auto lang = m_parent->GetCurrentLanguage(); if (!srclang.IsValid() || !lang.IsValid() || srclang == lang) { OnQueriesFinished(); return; } QueryAllProviders(item); } void SuggestionsSidebarBlock::OnDelayedShowSuggestionsForItem(wxTimerEvent&) { UpdateSuggestionsForItem(m_parent->GetSelectedItem()); } void SuggestionsSidebarBlock::QueryAllProviders(const CatalogItemPtr& item) { auto thisQueryId = ++m_latestQueryId; QueryProvider(TranslationMemory::Get(), item, thisQueryId); } void SuggestionsSidebarBlock::QueryProvider(SuggestionsBackend& backend, const CatalogItemPtr& item, uint64_t queryId) { m_pendingQueries++; // we need something to talk to GUI thread through that is guaranteed // to exist, and the app object is a good choice: auto backendPtr = &backend; std::weak_ptr weakSelf = std::dynamic_pointer_cast(shared_from_this()); m_provider->SuggestTranslation ( backend, m_parent->GetCurrentSourceLanguage(), m_parent->GetCurrentLanguage(), item->GetString().ToStdWstring() ) .then_on_main([weakSelf,queryId](SuggestionsList hits) { auto self = weakSelf.lock(); // maybe this call is already out of date: if (!self || self->m_latestQueryId != queryId) return; self->UpdateSuggestions(hits); if (--self->m_pendingQueries == 0) self->OnQueriesFinished(); }) .catch_all([weakSelf,queryId,backendPtr](dispatch::exception_ptr e) { auto self = weakSelf.lock(); // maybe this call is already out of date: if (!self || self->m_latestQueryId != queryId) return; self->ReportError(backendPtr, e); if (--self->m_pendingQueries == 0) self->OnQueriesFinished(); }); } Sidebar::Sidebar(wxWindow *parent, wxMenu *suggestionsMenu) : wxWindow(parent, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL | wxNO_BORDER | wxFULL_REPAINT_ON_RESIZE), m_catalog(nullptr), m_selectedItem(nullptr) { SetBackgroundColour(ColorScheme::Get(Color::SidebarBackground)); #ifdef __WXMSW__ SetDoubleBuffered(true); #endif Bind(wxEVT_PAINT, &Sidebar::OnPaint, this); #ifdef __WXOSX__ SetWindowVariant(wxWINDOW_VARIANT_SMALL); #endif auto *topSizer = new wxBoxSizer(wxVERTICAL); topSizer->SetMinSize(wxSize(PX(300), -1)); m_blocksSizer = new wxBoxSizer(wxVERTICAL); topSizer->Add(m_blocksSizer, wxSizerFlags(1).Expand().PXDoubleBorder(wxTOP|wxBOTTOM)); m_topBlocksSizer = new wxBoxSizer(wxVERTICAL); m_bottomBlocksSizer = new wxBoxSizer(wxVERTICAL); m_blocksSizer->Add(m_topBlocksSizer, wxSizerFlags(1).Expand().ReserveSpaceEvenIfHidden()); m_blocksSizer->Add(m_bottomBlocksSizer, wxSizerFlags().Expand()); AddBlock(new SuggestionsSidebarBlock(this, suggestionsMenu), Top); AddBlock(new OldMsgidSidebarBlock(this), Bottom); AddBlock(new ExtractedCommentSidebarBlock(this), Bottom); AddBlock(new CommentSidebarBlock(this), Bottom); AddBlock(new AddCommentSidebarBlock(this), Bottom); SetSizerAndFit(topSizer); SetSelectedItem(nullptr, nullptr); } void Sidebar::AddBlock(SidebarBlock *block, BlockPos pos) { m_blocks.emplace_back(block); auto sizer = (pos == Top) ? m_topBlocksSizer : m_bottomBlocksSizer; auto grow = (block->IsGrowable()) ? 1 : 0; sizer->Add(block->GetSizer(), wxSizerFlags(grow).Expand()); } Sidebar::~Sidebar() { } void Sidebar::SetSelectedItem(const CatalogPtr& catalog, const CatalogItemPtr& item) { m_catalog = catalog; m_selectedItem = item; RefreshContent(); } void Sidebar::SetMultipleSelection() { SetSelectedItem(nullptr, nullptr); } Language Sidebar::GetCurrentLanguage() const { if (!m_catalog) return Language(); return m_catalog->GetLanguage(); } Language Sidebar::GetCurrentSourceLanguage() const { if (!m_catalog) return Language::English(); return m_catalog->GetSourceLanguage(); } bool Sidebar::FileHasCapability(Catalog::Cap cap) const { return m_catalog && m_catalog->HasCapability(cap); } void Sidebar::RefreshContent() { if (!IsShown()) return; auto item = m_selectedItem; if (!IsThisEnabled()) item = nullptr; wxWindowUpdateLocker lock(this); for (auto& b: m_blocks) b->SetItem(item); Layout(); } void Sidebar::SetUpperHeight(int size) { wxWindowUpdateLocker lock(this); int pos = GetSize().y - size; if (size < PX(400) || pos > size) { // Too little space for suggestions (either absolute size small or // bottom area larger than top). If that happens, align the top/bottom // separator with the Translation: field in editing area instead of // with its top. pos = pos / 2 - PX(1); } pos += PX(5); m_bottomBlocksSizer->SetMinSize(wxSize(-1, pos)); Layout(); } void Sidebar::DoEnable(bool) { RefreshContent(); } void Sidebar::OnPaint(wxPaintEvent&) { wxPaintDC dc(this); #ifdef __WXOSX__ dc.SetPen(ColorScheme::Get(Color::ToolbarSeparator)); dc.DrawLine(0, 0, dc.GetSize().x - 1, 0); #endif } poedit-2.0.6/src/colorscheme.h0000664000372000037200000000644113230131554013171 00000000000000/* * This file is part of Poedit (https://poedit.net) * * Copyright (C) 2016-2018 Vaclav Slavik * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * DEALINGS IN THE SOFTWARE. * */ #ifndef Poedit_colorscheme_h #define Poedit_colorscheme_h #include #include #include /// Symbolic color names enum class Color : size_t { SecondaryLabel, ItemID, ItemFuzzy, ItemError, ItemContextFg, ItemContextBg, ItemContextBgHighlighted, TagContextFg, TagContextBg, TagSecondaryFg, TagSecondaryBg, TagErrorLineFg, TagErrorLineBg, TagWarningLineFg, TagWarningLineBg, ToolbarSeparator, SidebarSeparator, EditingSeparator, EditingSubtleSeparator, SidebarBackground, EditingBackground, FuzzySwitch, FuzzySwitchInactive, SyntaxLeadingWhitespaceBg, SyntaxEscapeFg, SyntaxEscapeBg, SyntaxMarkup, SyntaxFormat, AttentionWarningBackground, AttentionQuestionBackground, AttentionErrorBackground, TranslucentButton, Max }; /** Defines colors for various non-standard UI elements in one place. Includes platform-specific customizations as appropriate. */ class ColorScheme { public: /// Type of the scheme to use (not used a lot for now) enum Type { Light, Dark }; static const wxColour& Get(Color color, Type type = Light) { if (!s_data) s_data = std::make_unique(); auto& c = s_data->colors[static_cast(color)][type]; if (c.IsOk()) return c; else return c = DoGet(color, type); } static const wxColour& Get(Color color, wxWindow *win) { return Get(color, win->GetDefaultAttributes()); } static const wxColour& Get(Color color, const wxVisualAttributes& win) { return Get(color, GetSchemeTypeFromWindow(win)); } static wxColour GetBlendedOn(Color color, wxWindow *win); static void CleanUp(); private: struct Data { wxColour colors[static_cast(Color::Max)][2]; }; static wxColour DoGet(Color color, Type type); static Type GetSchemeTypeFromWindow(const wxVisualAttributes& win); static std::unique_ptr s_data; }; #endif // Poedit_colorscheme_h poedit-2.0.6/src/hidpi.cpp0000664000372000037200000001002013230131554012302 00000000000000/* * This file is part of Poedit (https://poedit.net) * * Copyright (C) 2015-2018 Vaclav Slavik * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * DEALINGS IN THE SOFTWARE. * */ #include "hidpi.h" #include #include #include #ifdef NEEDS_MANUAL_HIDPI double g_pxScalingFactor = 1.0; void InitHiDPIHandling() { wxSize dpi = wxScreenDC().GetPPI(); g_pxScalingFactor = dpi.y / 96.0; } #endif // NEEDS_MANUAL_HIDPI namespace { void LoadPNGImage(wxImage& img, const wxString& filename) { img.LoadFile(filename, wxBITMAP_TYPE_PNG); // wxImage doesn't load alpha from PNG if it could be expressed as a mask. // Too bad this breaks a) scaling and b) wxToolbar's disabled bitmaps. // Beat some sense into it: if (img.IsOk() && img.HasMask()) { img.InitAlpha(); } } } // anonymous namespace wxImage LoadScaledBitmap(const wxString& name) { const wxString filename(name + ".png"); if (!wxFileExists(filename)) return wxNullImage; wxImage img; #ifdef NEEDS_MANUAL_HIDPI // On Windows, arbitrary scaling factors are possible and "ugly" values like 125% // or 150% scaling are not only possible, but common. It is unrealistic to provide // custom-drawn bitmaps for all of them, so we make do with a basic set of 100%/@1x, // 200%/@2x (used on macOS too) and one more for 150%/@1.5x for Windows use. // To eliminate smudged scaling artifacts, we use these fixed sizes even for zoom // factors in-between (such as the very common 125% or less common 175%). This looks // better and the size difference is negligible. auto const screenScaling = HiDPIScalingFactor(); if (screenScaling > 1.25) { if (screenScaling <= 1.75) // @1.5x is reasonable { const wxString filename_15x(name + "@1.5x.png"); if (wxFileExists(filename_15x)) { LoadPNGImage(img, filename_15x); if (img.IsOk()) return img; } } double imgScale = screenScaling; const wxString filename_2x(name + "@2x.png"); if (wxFileExists(filename_2x)) { LoadPNGImage(img, filename_2x); if (screenScaling > 1.75 && screenScaling <= 2.50) // @2x is reasonable return img; else imgScale /= 2.0; } else // fall back to upscaled @1x { LoadPNGImage(img, filename); } if (!img.IsOk()) return wxNullImage; wxImageResizeQuality quality; if (imgScale == 2.0) quality = wxIMAGE_QUALITY_NEAREST; else if (imgScale == 1.5) quality = wxIMAGE_QUALITY_BILINEAR; else quality = wxIMAGE_QUALITY_BICUBIC; img.Rescale(img.GetWidth() * imgScale, img.GetHeight() * imgScale, quality); return img; } // else if screenScaling <= 1.25: @1x size is good enough, load normally #endif LoadPNGImage(img, filename); return img; } poedit-2.0.6/src/utility.h0000664000372000037200000001767413230131554012403 00000000000000/* * This file is part of Poedit (https://poedit.net) * * Copyright (C) 2010-2018 Vaclav Slavik * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * DEALINGS IN THE SOFTWARE. * */ #ifndef Poedit_utility_h #define Poedit_utility_h #ifndef HAVE_MKDTEMP #ifdef __WXOSX__ #define HAVE_MKDTEMP #endif #endif #include #include #include #include #if wxUSE_GUI #include #endif // ---------------------------------------------------------------------- // Misc platform differences // ---------------------------------------------------------------------- #ifdef __WXMSW__ #define MSW_OR_OTHER(msw, other) msw #else #define MSW_OR_OTHER(msw, other) other #endif #ifdef __WXOSX__ #define MACOS_OR_OTHER(mac, other) mac #else #define MACOS_OR_OTHER(mac, other) other #endif #ifdef __WXOSX__ #define BORDER_WIN(dir, n) Border(dir, 0) #define BORDER_MACOS(dir, n) Border(dir, n) #else #define BORDER_WIN(dir, n) Border(dir, n) #define BORDER_MACOS(dir, n) Border(dir, 0) #endif // ---------------------------------------------------------------------- // Platform version checks // ---------------------------------------------------------------------- #ifdef __WXMSW__ inline bool IsWindows10OrGreater() { int osmajor = 0; return wxGetOsVersion(&osmajor, nullptr) == wxOS_WINDOWS_NT && osmajor >= 10; } #endif // __WXMSW__ // ---------------------------------------------------------------------- // Misc helpers // ---------------------------------------------------------------------- wxString EscapeMarkup(const wxString& str); // Encoding and decoding a string with C escape sequences: template inline void EscapeCStringInplace(T& str) { for (typename T::iterator i = str.begin(); i != str.end(); ++i) { switch ((wchar_t)*i) { case '"' : i = ++str.insert(i, '\\'); break; case '\a': *i = 'a'; i = ++str.insert(i, '\\'); break; case '\b': *i = 'b'; i = ++str.insert(i, '\\'); break; case '\f': *i = 'f'; i = ++str.insert(i, '\\'); break; case '\n': *i = 'n'; i = ++str.insert(i, '\\'); break; case '\r': *i = 'r'; i = ++str.insert(i, '\\'); break; case '\t': *i = 't'; i = ++str.insert(i, '\\'); break; case '\v': *i = 'v'; i = ++str.insert(i, '\\'); break; case '\\': i = ++str.insert(i, '\\'); break; default: break; } } } template inline T EscapeCString(const T& str) { T out(str); EscapeCStringInplace(out); return out; } template inline T UnescapeCString(const T& str) { if (str.find('\\') == T::npos) return str; T out; out.reserve(str.length()); for (auto i = str.begin(); i != str.end(); ++i) { wchar_t c = *i; if (c == '\\') { if (++i != str.end()) { switch ((wchar_t)*i) { case 'a': out += '\a'; break; case 'b': out += '\b'; break; case 'f': out += '\f'; break; case 'n': out += '\n'; break; case 'r': out += '\r'; break; case 't': out += '\t'; break; case 'v': out += '\v'; break; case '\\': case '"': case '\'': case '?': out += *i; break; default: out += c; out += *i; break; } } else { out += c; break; } } else { out += c; } } return out; } wxFileName MakeFileName(const wxString& path); inline wxFileName MakeFileName(wxFileName fn) { fn.Normalize(wxPATH_NORM_DOTS | wxPATH_NORM_ABSOLUTE); return fn; } wxFileName CommonDirectory(const wxFileName& a, const wxFileName& b); template inline wxFileName CommonDirectory(const T& a) { wxFileName root; for (auto& i: a) root = CommonDirectory(root, MakeFileName(i)); return root; } // ---------------------------------------------------------------------- // TempDirectory // ---------------------------------------------------------------------- // Helper class for managing temporary directories. // Cleans the directory when destroyed. class TempDirectory { public: // creates randomly-named temp directory with "poedit" name prefix TempDirectory(); ~TempDirectory(); bool IsOk() const { return !m_dir.empty(); } // creates new file name in that directory wxString CreateFileName(const wxString& suffix); /// Clears the temp directory (only safe if none of the files are open). Called by dtor. void Clear(); // whether to keep temporary files static void KeepFiles(bool keep = true) { ms_keepFiles = keep; } private: std::map m_counters; wxString m_dir; static bool ms_keepFiles; }; /// Holder of temporary file for creating the output. /// Use Commit() to move the written file to its final location. /// Destructor deletes the temp file if it still exists. class TempOutputFileFor { public: explicit TempOutputFileFor(const wxString& filename); ~TempOutputFileFor(); /// Name of the temporary placeholder const wxString& FileName() const { return m_filenameTmp; } /// Renames temp file to the final one (passed to ctor). bool Commit(); /// Rename file to replace another *while preserving destination /// file's permissions*. /// Make this helper publicly accessible for code that can't /// use TempOutputFileFor directly. static bool ReplaceFile(const wxString& temp, const wxString& dest); #ifdef __WXOSX__ wxString m_tempDir; #endif wxString m_filenameTmp; wxString m_filenameFinal; }; #ifdef __WXMSW__ /// Return filename safe for passing to CLI tools (gettext). /// Uses 8.3 short names to avoid Unicode and codepage issues. wxString CliSafeFileName(const wxString& fn); #else inline wxString CliSafeFileName(const wxString& fn) { return fn; } #endif // ---------------------------------------------------------------------- // Helpers for persisting windows' state // ---------------------------------------------------------------------- #if wxUSE_GUI enum WinStateFlags { WinState_Pos = 1, WinState_Size = 2, WinState_All = WinState_Pos | WinState_Size }; void SaveWindowState(const wxTopLevelWindow *win, int flags = WinState_All); void RestoreWindowState(wxTopLevelWindow *win, const wxSize& defaultSize, int flags = WinState_All); inline wxString WindowStatePath(const wxWindow *win) { return wxString::Format("/windows/%s/", win->GetName().c_str()); } #endif // wxUSE_GUI #endif // Poedit_utility_h poedit-2.0.6/src/gexecute.h0000664000372000037200000000366413230131554012503 00000000000000/* * This file is part of Poedit (https://poedit.net) * * Copyright (C) 2000-2018 Vaclav Slavik * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * DEALINGS IN THE SOFTWARE. * */ #ifndef _GEXECUTE_H_ #define _GEXECUTE_H_ #include #include struct GettextError { int line; wxString text; }; typedef std::vector GettextErrors; /** Executes command. Writes stderr output to \a stderrOutput if not NULL, and logs it with wxLogError otherwise. \return true if program exited with exit code 0, false otherwise. */ extern bool ExecuteGettext(const wxString& cmdline); /// Like ExecuteGettext(), but stores error output parsed into per-item entries. extern bool ExecuteGettextAndParseOutput(const wxString& cmdline, GettextErrors& errors); extern wxString QuoteCmdlineArg(const wxString& s); extern wxString GetGettextPackagePath(); #endif // _GEXECUTE_H_ poedit-2.0.6/src/custom_buttons.cpp0000664000372000037200000002316313230131554014311 00000000000000/* * This file is part of Poedit (https://poedit.net) * * Copyright (C) 2016-2018 Vaclav Slavik * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * DEALINGS IN THE SOFTWARE. * */ #include "custom_buttons.h" #include "colorscheme.h" #include "hidpi.h" #include "str_helpers.h" #include "utility.h" #ifdef __WXMSW__ #include #include #include #include #include #endif #ifdef __WXOSX__ #import #include "StyleKit.h" // --------------------------------------------------------------------- // SwitchButton // --------------------------------------------------------------------- @interface POSwitchButton : NSButton @property NSColor* onColor; @property NSColor* labelOffColor; @property SwitchButton *parent; @property double animationPosition; @end @implementation POSwitchButton - (id)initWithLabel:(NSString*)label { self = [super init]; if (self) { self.title = label; self.bezelStyle = NSSmallSquareBezelStyle; self.buttonType = NSOnOffButton; self.font = [NSFont boldSystemFontOfSize:[NSFont smallSystemFontSize]]; self.animationPosition = 0.0; self.onColor = [NSColor colorWithCalibratedRed:0.302 green:0.847 blue:0.396 alpha:1.0]; self.labelOffColor = [NSColor colorWithCalibratedRed:0 green:0 blue:0 alpha:1.0]; } return self; } - (void)sizeToFit { [super sizeToFit]; NSSize size = self.frame.size; size.width += 32; [self setFrameSize:size]; } - (void)drawRect:(NSRect)dirtyRect { #pragma unused(dirtyRect) [StyleKit drawSwitchButtonWithFrame:self.bounds onColor:self.onColor labelOffColor:self.labelOffColor label:self.title togglePosition:self.animationPosition]; } - (void)setState:(NSInteger)state { [super setState:state]; self.animationPosition = (state == NSOnState) ? 1.0 : 0.0; } - (void)controlAction:(id)sender { #pragma unused(sender) self.animationPosition = (self.state == NSOnState) ? 1.0 : 0.0; _parent->SendToggleEvent(); } @end class SwitchButton::impl { public: impl(SwitchButton *parent, const wxString& label) { m_view = [[POSwitchButton alloc] initWithLabel:str::to_NS(label)]; m_view.parent = parent; } NSView *View() const { return m_view; } void SetColors(const wxColour& on, const wxColour& offLabel) { m_view.onColor = on.OSXGetNSColor(); m_view.labelOffColor = offLabel.OSXGetNSColor(); } void SetValue(bool value) { m_view.state = value ? NSOnState : NSOffState; } bool GetValue() const { return m_view.state == NSOnState; } private: POSwitchButton *m_view; }; SwitchButton::SwitchButton(wxWindow *parent, wxWindowID winid, const wxString& label) { m_impl.reset(new impl(this, label)); wxNativeWindow::Create(parent, winid, m_impl->View()); } SwitchButton::~SwitchButton() { } void SwitchButton::SetColors(const wxColour& on, const wxColour& offLabel) { m_impl->SetColors(on, offLabel); } void SwitchButton::SetValue(bool value) { m_impl->SetValue(value); } bool SwitchButton::GetValue() const { return m_impl->GetValue(); } void SwitchButton::SendToggleEvent() { wxCommandEvent event(wxEVT_TOGGLEBUTTON, m_windowId); event.SetInt(GetValue()); event.SetEventObject(this); ProcessWindowEvent(event); } #else // !__WXOSX__ SwitchButton::SwitchButton(wxWindow *parent, wxWindowID winid, const wxString& label) { long style = wxBU_EXACTFIT; #ifdef __WXMSW__ style |= wxNO_BORDER; #endif wxToggleButton::Create(parent, winid, label, wxDefaultPosition, wxDefaultSize, style); #ifdef __WXMSW__ SetFont(GetFont().Bold()); SetBackgroundColour(parent->GetBackgroundColour()); MakeOwnerDrawn(); Bind(wxEVT_LEFT_DOWN, &SwitchButton::OnMouseClick, this); #endif } void SwitchButton::SetColors(const wxColour& on, const wxColour& offLabel) { (void)on; (void)offLabel; #ifdef __WXMSW__ m_clrOn = on; m_clrOffLabel = offLabel; #endif } #ifdef __WXMSW__ void SwitchButton::OnMouseClick(wxMouseEvent& e) { // normal click handling moves focus to the switch (which is a button // underneath), which we'd rather not do SetValue(!GetValue()); // we need to send the event, because SetValue() doesn't wxCommandEvent event(wxEVT_TOGGLEBUTTON, GetId()); event.SetInt(GetValue()); event.SetEventObject(this); ProcessCommand(event); } wxSize SwitchButton::DoGetBestSize() const { auto size = wxToggleButton::DoGetBestSize(); size.x += PX(38); size.y = PX(20); return size; } bool SwitchButton::MSWOnDraw(WXDRAWITEMSTRUCT *wxdis) { LPDRAWITEMSTRUCT lpDIS = (LPDRAWITEMSTRUCT) wxdis; HDC hdc = lpDIS->hDC; UINT state = lpDIS->itemState; if (GetNormalState() == State_Pressed) state |= ODS_SELECTED; const bool toggled = state & ODS_SELECTED; wxRect rect(lpDIS->rcItem.left, lpDIS->rcItem.top, lpDIS->rcItem.right - lpDIS->rcItem.left, lpDIS->rcItem.bottom - lpDIS->rcItem.top); wxScopedPtr gc(wxGraphicsContext::CreateFromNativeHDC(hdc)); gc->EnableOffset(false); if (toggled) { gc->SetBrush(m_clrOn); gc->SetPen(wxPen(m_clrOn.ChangeLightness(95), PX(2))); } else { gc->SetBrush(GetBackgroundColour()); gc->SetPen(wxPen(m_clrOffLabel, PX(2))); } wxRect switchRect(rect.GetRight() - PX(44), 0, PX(44), wxMin(PX(20), rect.GetHeight())); switchRect.CenterIn(rect, wxVERTICAL); switchRect.Deflate(PX(2)); double radius = switchRect.height / 2.0; gc->DrawRoundedRectangle(switchRect.x, switchRect.y, switchRect.width, switchRect.height, radius); if (toggled) { gc->SetPen(GetBackgroundColour()); gc->SetBrush(GetBackgroundColour()); } else { gc->SetPen(wxPen(m_clrOffLabel, PX(1))); gc->SetBrush(m_clrOffLabel.ChangeLightness(105)); } double position = toggled ? 1.0 : 0.0; wxRect dotRect(switchRect); dotRect.Deflate(PX(4)); dotRect.SetLeft(dotRect.GetLeft() + position * (dotRect.GetWidth() - dotRect.GetHeight())); dotRect.SetWidth(dotRect.GetHeight()); gc->DrawEllipse(dotRect.x, dotRect.y, dotRect.width, dotRect.height); gc->SetFont(GetFont(), toggled ? m_clrOn : m_clrOffLabel); double textw, texth, descent; gc->GetTextExtent(GetLabel(), &textw, &texth, &descent); texth += descent; wxCoord textpos = switchRect.y + (switchRect.height - texth) / 2 + PX(0.5); gc->DrawText(GetLabel(), rect.x, textpos); // draw the focus rectangle if we need it if ((state & ODS_FOCUS) && !(state & ODS_NOFOCUSRECT)) { RECT r = {rect.x, textpos, rect.x + (int)textw, textpos + (int)texth}; DrawFocusRect(hdc, &r); } return true; } #endif // __WXMSW__ #endif // !__WXOSX__ // --------------------------------------------------------------------- // TranslucentButton // --------------------------------------------------------------------- #ifdef __WXOSX__ @interface POTranslucentButton : NSButton @property TranslucentButton *parent; @end @implementation POTranslucentButton - (id)initWithLabel:(NSString*)label { self = [super init]; if (self) { self.title = label; self.bezelStyle = NSSmallSquareBezelStyle; self.buttonType = NSMomentaryPushInButton; self.font = [NSFont systemFontOfSize:[NSFont smallSystemFontSize]]; } return self; } - (void)sizeToFit { NSSize size = self.attributedTitle.size; size.width += 28; size.height = 24; [self setFrameSize:size]; } - (void)drawRect:(NSRect)dirtyRect { #pragma unused(dirtyRect) [StyleKit drawTranslucentButtonWithFrame:self.bounds label:[self title] pressed:[self isHighlighted]]; } - (void)controlAction:(id)sender { #pragma unused(sender) wxCommandEvent event(wxEVT_BUTTON, _parent->GetId()); event.SetEventObject(_parent); _parent->ProcessWindowEvent(event); } @end TranslucentButton::TranslucentButton(wxWindow *parent, wxWindowID winid, const wxString& label) { POTranslucentButton *view = [[POTranslucentButton alloc] initWithLabel:str::to_NS(label)]; view.parent = this; wxNativeWindow::Create(parent, winid, view); } #else // !__WXOSX__ TranslucentButton::TranslucentButton(wxWindow *parent, wxWindowID winid, const wxString& label) { wxButton::Create(parent, winid, label); #ifdef __WXMSW__ if (IsWindows10OrGreater()) SetBackgroundColour(ColorScheme::GetBlendedOn(::Color::TranslucentButton, parent)); #endif } #endif // !__WXOSX__ poedit-2.0.6/src/findframe.h0000664000372000037200000000722613230131554012623 00000000000000/* * This file is part of Poedit (https://poedit.net) * * Copyright (C) 2001-2018 Vaclav Slavik * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * DEALINGS IN THE SOFTWARE. * */ #ifndef _FINDFRAME_H_ #define _FINDFRAME_H_ #include "edlistctrl.h" #include #include class WXDLLIMPEXP_FWD_CORE wxButton; class WXDLLIMPEXP_FWD_CORE wxCheckBox; class WXDLLIMPEXP_FWD_CORE wxChoice; class WXDLLIMPEXP_FWD_CORE wxTextCtrl; class Catalog; class EditingArea; class PoeditFrame; /** FindFrame is small dialog frame that contains controls for searching in content of EditorFrame's wxListCtrl object and associated Catalog instance. This class assumes that list control's user data contains index into the catalog. */ class FindFrame : public wxFrame { public: /** Ctor. \param owner Parent frame, FindFrame will float on it \param list List control to search in \param catalog Catalog to search in */ FindFrame(PoeditFrame *owner, PoeditListCtrl *list, EditingArea *editingArea, const CatalogPtr& c); ~FindFrame(); /** Resets the search to starting position and changes the catalog in use. Called by EditorFrame when the user reloads catalog. */ void Reset(const CatalogPtr& c); void FindPrev(); void FindNext(); void ShowForFind(); void ShowForReplace(); bool HasText() const { return !ms_text.empty(); } private: void UpdateButtons(); void DoShowFor(int mode); void OnClose(wxCommandEvent &event); void OnModeChanged(); void OnPrev(wxCommandEvent &event); void OnNext(wxCommandEvent &event); void OnTextChange(wxCommandEvent &event); void OnCheckbox(wxCommandEvent &event); void OnReplace(wxCommandEvent &event); void OnReplaceAll(wxCommandEvent &event); bool DoFind(int dir); bool DoReplaceInItem(CatalogItemPtr item); PoeditFrame *m_owner; wxChoice *m_mode; wxTextCtrl *m_searchField, *m_replaceField; wxCheckBox *m_ignoreCase, *m_wrapAround, *m_wholeWords, *m_findInOrig, *m_findInTrans, *m_findInComments; wxWeakRef m_listCtrl; wxWeakRef m_editingArea; CatalogPtr m_catalog; int m_position; CatalogItemPtr m_lastItem; wxButton *m_btnClose, *m_btnReplaceAll, *m_btnReplace, *m_btnPrev, *m_btnNext; // NB: this is static so that last search term is remembered static wxString ms_text; }; #endif // _FINDFRAME_H_ poedit-2.0.6/src/findframe.cpp0000664000372000037200000004750513230131554013162 00000000000000/* * This file is part of Poedit (https://poedit.net) * * Copyright (C) 2001-2018 Vaclav Slavik * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * DEALINGS IN THE SOFTWARE. * */ #include #include #include #include #include #include #include #include #include #include #ifdef __WXOSX__ #include #endif #ifdef __WXGTK__ #include #include #endif #include "catalog.h" #include "text_control.h" #include "edframe.h" #include "editing_area.h" #include "edlistctrl.h" #include "findframe.h" #include "hidpi.h" #include "utility.h" namespace { // The word separators used when doing a "Whole words only" search // FIXME-ICU: use ICU to separate words const wxString SEPARATORS = wxT(" \t\r\n\\/:;.,?!\"'_|-+=(){}[]<>&#@"); enum { Mode_Find, Mode_Replace }; const int FRAME_STYLE = (wxDEFAULT_FRAME_STYLE | wxFRAME_TOOL_WINDOW | wxTAB_TRAVERSAL | wxFRAME_FLOAT_ON_PARENT) & ~(wxRESIZE_BORDER | wxMAXIMIZE_BOX); } // anonymous namespace wxString FindFrame::ms_text; FindFrame::FindFrame(PoeditFrame *owner, PoeditListCtrl *list, EditingArea *editingArea, const CatalogPtr& c) : wxFrame(owner, wxID_ANY, _("Find"), wxDefaultPosition, wxDefaultSize, FRAME_STYLE), m_owner(owner), m_listCtrl(list), m_editingArea(editingArea), m_catalog(c), m_position(-1) { auto panel = new wxPanel(this, wxID_ANY); wxBoxSizer *panelsizer = new wxBoxSizer(wxVERTICAL); wxBoxSizer *sizer = new wxBoxSizer(wxVERTICAL); panelsizer->Add(sizer, wxSizerFlags(1).Expand().PXDoubleBorderAll()); auto entrySizer = new wxFlexGridSizer(2, wxSize(MSW_OR_OTHER(PX(5), PX(10)), PX(5))); m_mode = new wxChoice(panel, wxID_ANY); #ifdef __WXOSX__ [(NSPopUpButton*)m_mode->GetHandle() setBordered:NO]; #endif m_mode->Append(_("Find")); m_mode->Append(_("Replace")); m_mode->SetSelection(Mode_Find); m_searchField = new wxTextCtrl(panel, wxID_ANY, "", wxDefaultPosition, wxSize(PX(400), -1)); m_replaceField = new wxTextCtrl(panel, wxID_ANY); entrySizer->Add(m_mode); entrySizer->Add(m_searchField, wxSizerFlags(1).Expand()); entrySizer->AddSpacer(1); entrySizer->Add(m_replaceField, wxSizerFlags(1).Expand()); sizer->Add(entrySizer, wxSizerFlags().Expand().PXBorderAll()); #ifdef __WXMSW__ #define collPane panel #else // TRANSLATORS: Expander in Find window for additional options (case sensitive etc.) auto coll = new wxCollapsiblePane(panel, wxID_ANY, _("Options")); auto collPane = coll->GetPane(); #endif m_ignoreCase = new wxCheckBox(collPane, wxID_ANY, _("Ignore case")); m_wrapAround = new wxCheckBox(collPane, wxID_ANY, _("Wrap around")); m_wholeWords = new wxCheckBox(collPane, wxID_ANY, _("Whole words only")); m_findInOrig = new wxCheckBox(collPane, wxID_ANY, _("Find in source texts")); m_findInTrans = new wxCheckBox(collPane, wxID_ANY, _("Find in translations")); m_findInComments = new wxCheckBox(collPane, wxID_ANY, _("Find in comments")); wxBoxSizer *options = new wxBoxSizer(wxHORIZONTAL); wxBoxSizer *optionsL = new wxBoxSizer(wxVERTICAL); wxBoxSizer *optionsR = new wxBoxSizer(wxVERTICAL); options->Add(optionsL, wxSizerFlags(1).Expand().PXBorder(wxRIGHT)); options->Add(optionsR, wxSizerFlags(1).Expand()); optionsL->Add(m_ignoreCase, wxSizerFlags().Expand()); optionsL->Add(m_wrapAround, wxSizerFlags().Expand().Border(wxTOP, PX(2))); optionsL->Add(m_wholeWords, wxSizerFlags().Expand().Border(wxTOP, PX(2))); optionsR->Add(m_findInOrig, wxSizerFlags().Expand().Border(wxTOP, PX(2))); optionsR->Add(m_findInTrans, wxSizerFlags().Expand().Border(wxTOP, PX(2))); optionsR->Add(m_findInComments, wxSizerFlags().Expand().Border(wxTOP, PX(2))); #ifdef __WXMSW__ sizer->Add(options, wxSizerFlags().Expand().PXBorderAll()); #else collPane->SetSizer(options); sizer->Add(coll, wxSizerFlags().Expand().PXBorderAll()); #endif m_btnClose = new wxButton(panel, wxID_CLOSE, _("Close")); m_btnReplaceAll = new wxButton(panel, wxID_ANY, MSW_OR_OTHER(_("Replace &all"), _("Replace &All"))); m_btnReplace = new wxButton(panel, wxID_ANY, _("&Replace")); m_btnPrev = new wxButton(panel, wxID_ANY, _("< &Previous")); m_btnNext = new wxButton(panel, wxID_ANY, _("&Next >")); m_btnNext->SetDefault(); wxBoxSizer *buttons = new wxBoxSizer(wxHORIZONTAL); sizer->Add(buttons, wxSizerFlags().Expand().PXBorderAll()); buttons->Add(m_btnClose, wxSizerFlags().PXBorder(wxRIGHT)); buttons->AddStretchSpacer(); buttons->Add(m_btnReplaceAll, wxSizerFlags().PXBorder(wxRIGHT)); buttons->Add(m_btnReplace, wxSizerFlags().PXBorder(wxRIGHT)); buttons->Add(m_btnPrev, wxSizerFlags().PXBorder(wxRIGHT)); buttons->Add(m_btnNext, wxSizerFlags()); panel->SetSizer(panelsizer); auto topsizer = new wxBoxSizer(wxHORIZONTAL); topsizer->Add(panel, wxSizerFlags(1).Expand()); SetSizerAndFit(topsizer); RestoreWindowState(this, wxDefaultSize, WinState_Pos); if ( !ms_text.empty() ) { m_searchField->SetValue(ms_text); m_searchField->SelectAll(); } Reset(c); m_findInOrig->SetValue(wxConfig::Get()->ReadBool("find_in_orig", true)); m_findInTrans->SetValue(wxConfig::Get()->ReadBool("find_in_trans", true)); m_findInComments->SetValue(wxConfig::Get()->ReadBool("find_in_comments", true)); m_ignoreCase->SetValue(!wxConfig::Get()->ReadBool("find_case_sensitive", false)); m_wrapAround->SetValue(wxConfig::Get()->ReadBool("find_wrap_around", true)); m_wholeWords->SetValue(wxConfig::Get()->ReadBool("whole_words", false)); wxAcceleratorEntry entries[] = { #ifndef __WXGTK__ { wxACCEL_SHIFT, WXK_RETURN, m_btnPrev->GetId() }, #endif #ifdef __WXOSX__ { wxACCEL_NORMAL, WXK_RETURN, m_btnNext->GetId() }, { wxACCEL_CMD, 'W', wxID_CLOSE }, #endif { wxACCEL_NORMAL, WXK_ESCAPE, wxID_CLOSE } }; wxAcceleratorTable accel(WXSIZEOF(entries), entries); SetAcceleratorTable(accel); m_searchField->Bind(wxEVT_TEXT, &FindFrame::OnTextChange, this); m_btnPrev->Bind(wxEVT_BUTTON, &FindFrame::OnPrev, this); m_btnNext->Bind(wxEVT_BUTTON, &FindFrame::OnNext, this); Bind(wxEVT_BUTTON, &FindFrame::OnClose, this, wxID_CLOSE); Bind(wxEVT_MENU, &FindFrame::OnClose, this, wxID_CLOSE); Bind(wxEVT_CHECKBOX, &FindFrame::OnCheckbox, this); // Set Shift+Return accelerator natively so that the button is animated. // (Can't be done on Windows where wxAcceleratorEntry above is used.) #if defined(__WXGTK__) GtkAccelGroup *accelGroup = gtk_accel_group_new(); gtk_window_add_accel_group(GTK_WINDOW(GetHandle()), accelGroup); gtk_widget_add_accelerator(m_btnPrev->GetHandle(), "activate", accelGroup, GDK_KEY_Return, GDK_SHIFT_MASK, GTK_ACCEL_VISIBLE); #elif defined(__WXOSX__) // wx's code interferes with normal processing of Shift-Return and // setKeyEquivalent: @"\r" with setKeyEquivalentModifierMask: NSShiftKeyMask // wouldn't work. Emulate it in custom code instead, by handling the // event originating from the button and from the accelerator table above // differently. More than a bit of a hack, but it works. NSButton *macPrev = (NSButton*)m_btnPrev->GetHandle(); Bind(wxEVT_MENU, [=](wxCommandEvent&){ [macPrev performClick:nil]; }, m_btnPrev->GetId()); NSButton *macNext = (NSButton*)m_btnNext->GetHandle(); Bind(wxEVT_MENU, [=](wxCommandEvent&){ [macNext performClick:nil]; }, m_btnNext->GetId()); #endif OnModeChanged(); m_mode->Bind(wxEVT_CHOICE, [=](wxCommandEvent&){ OnModeChanged(); }); m_btnReplace->Bind(wxEVT_BUTTON, &FindFrame::OnReplace, this); m_btnReplaceAll->Bind(wxEVT_BUTTON, &FindFrame::OnReplaceAll, this); m_btnReplace->Bind(wxEVT_UPDATE_UI, [=](wxUpdateUIEvent& e){ e.Enable((bool)m_lastItem); }); m_btnReplaceAll->Bind(wxEVT_UPDATE_UI, [=](wxUpdateUIEvent& e){ e.Enable(!ms_text.empty()); }); // SetHint() needs to be called *after* binding any event handlers, for // compatibility with its generic implementation: m_searchField->SetHint(_("String to find")); m_replaceField->SetHint(_("Replacement string")); // Create hidden, will be shown after setting it up Show(false); } FindFrame::~FindFrame() { SaveWindowState(this, WinState_Pos); } void FindFrame::Reset(const CatalogPtr& c) { m_catalog = c; m_position = -1; m_lastItem.reset(); UpdateButtons(); } void FindFrame::UpdateButtons() { m_btnPrev->Enable(!ms_text.empty()); m_btnNext->Enable(!ms_text.empty()); } void FindFrame::ShowForFind() { DoShowFor(Mode_Find); } void FindFrame::ShowForReplace() { DoShowFor(Mode_Replace); } void FindFrame::DoShowFor(int mode) { m_position = m_listCtrl->GetCurrentItemListIndex(); m_mode->SetSelection(mode); OnModeChanged(); Show(true); Raise(); m_searchField->SetFocus(); m_searchField->SelectAll(); } void FindFrame::OnClose(wxCommandEvent&) { Destroy(); } void FindFrame::OnModeChanged() { bool isReplace = m_mode->GetSelection() == Mode_Replace; wxString title = isReplace ? _("Replace") : _("Find"); if (PoeditFrame::GetOpenWindowsCount() > 1) { auto filename = m_owner->GetFileNamePartOfTitle(); if (!filename.empty()) title += wxString::Format(L" — %s", filename); } SetTitle(title); m_btnReplace->Show(isReplace); m_btnReplaceAll->Show(isReplace); m_replaceField->GetContainingSizer()->Show(m_replaceField, isReplace); m_findInOrig->Enable(!isReplace); m_findInTrans->Enable(!isReplace); m_findInComments->Enable(!isReplace); m_ignoreCase->Enable(!isReplace); Layout(); GetSizer()->SetSizeHints(this); } void FindFrame::OnTextChange(wxCommandEvent& e) { ms_text = m_searchField->GetValue(); UpdateButtons(); e.Skip(); } void FindFrame::OnCheckbox(wxCommandEvent&) { Reset(m_catalog); wxConfig::Get()->Write("find_in_orig", m_findInOrig->GetValue()); wxConfig::Get()->Write("find_in_trans", m_findInTrans->GetValue()); wxConfig::Get()->Write("find_in_comments", m_findInComments->GetValue()); wxConfig::Get()->Write("find_case_sensitive", !m_ignoreCase->GetValue()); wxConfig::Get()->Write("find_wrap_around", m_wrapAround->GetValue()); wxConfig::Get()->Write("whole_words", m_wholeWords->GetValue()); } void FindFrame::OnPrev(wxCommandEvent&) { FindPrev(); } void FindFrame::FindPrev() { if (!DoFind(-1)) m_btnPrev->Enable(false); else m_btnNext->Enable(true); } void FindFrame::OnNext(wxCommandEvent&) { FindNext(); } void FindFrame::FindNext() { if (!DoFind(+1)) m_btnNext->Enable(false); else m_btnPrev->Enable(true); } namespace { template bool FindTextInStringAndDo(S& str, const wxString& text, bool wholeWords, F&& handler) { auto textLen = text.Length(); bool found = false; size_t start = 0; while (start != wxString::npos) { auto index = str.find(text, start); if (index == wxString::npos) break; if (wholeWords) { bool result = true; if (index >0) result = result && SEPARATORS.Contains(str[index-1]); if (index+textLen < str.Length()) result = result && SEPARATORS.Contains(str[index+textLen]); if (!result) { start = index + textLen; continue; } } found = true; start = handler(str, index, textLen); } return found; } bool IsTextInString(wxString str, const wxString& text, bool ignoreCase, bool wholeWords, bool ignoreAmp, bool ignoreUnderscore) { if (ignoreCase) str.MakeLower(); if (ignoreAmp) str.Replace("&", ""); if (ignoreUnderscore) str.Replace("_", ""); return FindTextInStringAndDo(str, text, wholeWords, [=](const wxString&,size_t,size_t){ return wxString::npos;/*just 1 hit*/ }); } size_t IsTextInStrings(const wxArrayString& strs, const wxString& text, bool ignoreCase, bool wholeWords, bool ignoreAmp, bool ignoreUnderscore) { // loop through all strings and search for the substring in them for (size_t i = 0; i < strs.GetCount(); i++) { if (IsTextInString(strs[i], text, ignoreCase, wholeWords, ignoreAmp, ignoreUnderscore)) return i; } return -1; } bool ReplaceTextInString(wxString& str, const wxString& text, bool wholeWords, const wxString& replacement) { return FindTextInStringAndDo(str, text, wholeWords, [=](wxString& s, size_t pos, size_t len){ s.replace(pos, len, replacement); return pos + replacement.length(); }); } enum FoundState { Found_Not = 0, Found_InOrig, Found_InOrigPlural, Found_InTrans, Found_InComments, Found_InExtractedComments }; } // anonymous space bool FindFrame::DoFind(int dir) { wxASSERT( dir == +1 || dir == -1 ); if (!m_listCtrl) return false; int mode = m_mode->GetSelection(); int cnt = m_listCtrl->GetItemCount(); bool inTrans = m_findInTrans->GetValue() && (m_catalog->HasCapability(Catalog::Cap::Translations)); bool inSource = (mode == Mode_Find) && m_findInOrig->GetValue(); bool inComments = (mode == Mode_Find) && m_findInComments->GetValue(); bool ignoreCase = (mode == Mode_Find) && m_ignoreCase->GetValue(); bool wholeWords = m_wholeWords->GetValue(); bool wrapAround = m_wrapAround->GetValue(); int posOrig = m_position; size_t trans; FoundState found = Found_Not; CatalogItemPtr lastItem; wxString textc; wxString text(ms_text); if (ignoreCase) text.MakeLower(); // Only ignore mnemonics when searching if the text being searched for // doesn't contain them. That's a reasonable heuristics: most of the time, // ignoring them is the right thing to do and provides better results. But // sometimes, people want to search for them. const bool ignoreAmp = (mode == Mode_Find) && (text.Find(_T('&')) == wxNOT_FOUND); const bool ignoreUnderscore = (mode == Mode_Find) && (text.Find(_T('_')) == wxNOT_FOUND); int oldPosition = m_position; m_position = oldPosition + dir; for (int tested = 0; tested < cnt; ++tested, m_position += dir) { if (m_position < 0) { if (wrapAround) m_position += cnt; else break; } else if (m_position >= cnt) { if (wrapAround) m_position -= cnt; else break; } auto dt = lastItem = (*m_catalog)[m_listCtrl->ListIndexToCatalog(m_position)]; if (inTrans) { trans = IsTextInStrings(dt->GetTranslations(), text, ignoreCase, wholeWords, ignoreAmp, ignoreUnderscore); if (trans != (size_t)-1) { found = Found_InTrans; break; } } if (inSource) { if (IsTextInString(dt->GetString(), text, ignoreCase, wholeWords, ignoreAmp, ignoreUnderscore)) { found = Found_InOrig; break; } if (dt->HasPlural() && IsTextInString(dt->GetPluralString(), text, ignoreCase, wholeWords, ignoreAmp, ignoreUnderscore)) { found = Found_InOrigPlural; break; } } if (inComments) { if (IsTextInString(dt->GetComment(), text, ignoreCase, wholeWords, false, false)) { found = Found_InComments; break; } if (IsTextInStrings(dt->GetExtractedComments(), text, ignoreCase, wholeWords, false, false) != (size_t)-1) { found = Found_InExtractedComments; break; } } } if (found != Found_Not) { m_lastItem = lastItem; m_listCtrl->EnsureVisible(m_listCtrl->ListIndexToListItem(m_position)); m_listCtrl->SelectAndFocus(m_position); // find the text on the control and select it: CustomizedTextCtrl* txt = nullptr; switch (found) { case Found_InOrig: txt = m_editingArea->Ctrl_Original(); break; case Found_InOrigPlural: txt = m_editingArea->Ctrl_OriginalPlural(); break; case Found_InTrans: if (lastItem->GetNumberOfTranslations() == 1) { txt = m_editingArea->Ctrl_Translation(); } else { m_editingArea->Ctrl_PluralNotebook()->SetSelection(trans); txt = m_editingArea->Ctrl_PluralTranslation(trans); } break; case Found_InComments: case Found_InExtractedComments: case Found_Not: break; } if (txt) { textc = txt->GetValue(); if (ignoreCase) textc.MakeLower(); FindTextInStringAndDo ( textc, text, wholeWords, [=](const wxString&,size_t pos, size_t len) { txt->ShowFindIndicator((int)pos, (int)len); return wxString::npos; } ); } return true; } m_position = posOrig; return false; } bool FindFrame::DoReplaceInItem(CatalogItemPtr item) { bool wholeWords = m_wholeWords->GetValue(); auto search = m_searchField->GetValue(); auto replace = m_replaceField->GetValue(); bool replaced = false; for (auto& t: item->GetTranslations()) { if (ReplaceTextInString(t, search, wholeWords, replace)) replaced = true; } if (replaced) { item->SetModified(true); m_owner->MarkAsModified(); if (item == m_owner->GetCurrentItem()) m_owner->UpdateToTextCtrl(EditingArea::UndoableEdit); } return replaced; } void FindFrame::OnReplace(wxCommandEvent&) { if (!m_lastItem) return; if (DoReplaceInItem(m_lastItem)) { // FIXME: Only refresh affected items m_listCtrl->RefreshAllItems(); } } void FindFrame::OnReplaceAll(wxCommandEvent&) { bool replaced = false; for (auto& item: m_catalog->items()) { if (DoReplaceInItem(item)) replaced = true; } if (replaced) { // FIXME: Only refresh affected items m_listCtrl->RefreshAllItems(); } } poedit-2.0.6/src/cat_sorting.h0000664000372000037200000000515413230131554013202 00000000000000/* * This file is part of Poedit (https://poedit.net) * * Copyright (C) 2010-2018 Vaclav Slavik * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * DEALINGS IN THE SOFTWARE. * */ #ifndef _CAT_SORTING_H_ #define _CAT_SORTING_H_ #include "catalog.h" #include #include /// Sort order information struct SortOrder { enum ByWhat { By_FileOrder, By_Source, By_Translation }; SortOrder() : by(By_FileOrder), groupByContext(false), untransFirst(false), errorsFirst(true) {} /// Loads default sort order from config settings static SortOrder Default(); /// Saves this sort order into config void Save(); /// What are we sorting by ByWhat by; /// Group items by context? bool groupByContext; /// Do untranslated entries go first? bool untransFirst; /// Do entries with errors go first? bool errorsFirst; }; /** Comparator for sorting catalog items by different criteria. */ class CatalogItemsComparator { public: /** Initializes comparator instance for given catalog. */ CatalogItemsComparator(const Catalog& catalog, const SortOrder& order); CatalogItemsComparator(const CatalogItemsComparator&) = delete; CatalogItemsComparator& operator=(const CatalogItemsComparator&) = delete; bool operator()(int i, int j) const; protected: const CatalogItem& Item(int i) const { return *m_catalog[i]; } int CompareStrings(wxString a, wxString b) const; private: const Catalog& m_catalog; SortOrder m_order; std::unique_ptr m_collator; }; #endif // _CAT_SORTING_H_ poedit-2.0.6/src/language_impl_plurals.h0000664000372000037200000002017513230131554015234 00000000000000// Code generated with scripts/extract-plural-forms.py begins here { "af" , "nplurals=2; plural=(n != 1);" }, { "ak" , "nplurals=2; plural=(n > 1);" }, { "aln" , "nplurals=2; plural=(n != 1);" }, { "am" , "nplurals=2; plural=(n > 1);" }, { "am_ET", "nplurals=2; plural=(n != 1);" }, { "an" , "nplurals=2; plural=(n != 1);" }, { "ar" , "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);" }, { "arn" , "nplurals=2; plural=(n > 1);" }, { "as" , "nplurals=2; plural=(n != 1);" }, { "ast" , "nplurals=2; plural=(n != 1);" }, { "az" , "nplurals=2; plural=(n != 1);" }, { "bal" , "nplurals=2; plural=(n != 1);" }, // There are 4 forms according to // http://www.unicode.org/cldr/charts/supplemental/language_plural_rules.html#be // but the 4th one is not used for natural numbers { "be" , "nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);" }, { "bg" , "nplurals=2; plural=(n != 1);" }, { "bn" , "nplurals=2; plural=(n != 1);" }, { "bo" , "nplurals=1; plural=0;" }, { "br" , "nplurals=2; plural=(n > 1);" }, { "brx" , "nplurals=2; plural=(n != 1);" }, { "bs" , "nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);" }, { "ca" , "nplurals=2; plural=(n != 1);" }, { "crh" , "nplurals=1; plural=0;" }, { "cs" , "nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;" }, { "csb" , "nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;" }, { "cy" , "nplurals=4; plural=(n==1) ? 0 : (n==2) ? 1 : (n != 8 && n != 11) ? 2 : 3;" }, { "da" , "nplurals=2; plural=(n != 1);" }, { "de" , "nplurals=2; plural=(n != 1);" }, { "dz" , "nplurals=1; plural=0;" }, { "el" , "nplurals=2; plural=(n != 1);" }, { "en" , "nplurals=2; plural=(n != 1);" }, { "eo" , "nplurals=2; plural=(n != 1);" }, { "es" , "nplurals=2; plural=(n != 1);" }, { "et" , "nplurals=2; plural=(n != 1);" }, { "eu" , "nplurals=2; plural=(n != 1);" }, { "fa" , "nplurals=1; plural=0;" }, { "fi" , "nplurals=2; plural=(n != 1);" }, { "fil" , "nplurals=2; plural=(n > 1);" }, { "fo" , "nplurals=2; plural=(n != 1);" }, { "fr" , "nplurals=2; plural=(n > 1);" }, { "frp" , "nplurals=2; plural=(n > 1);" }, { "fur" , "nplurals=2; plural=(n != 1);" }, { "fy" , "nplurals=2; plural=(n != 1);" }, { "ga" , "nplurals=5; plural=(n==1 ? 0 : n==2 ? 1 : n<7 ? 2 : n<11 ? 3 : 4);" }, // Don't change this blindly: this is verified correct form for Scottish Gaelic: { "gd" , "nplurals=4; plural=(n==1 || n==11) ? 0 : (n==2 || n==12) ? 1 : (n > 2 && n < 20) ? 2 : 3;" }, { "gl" , "nplurals=2; plural=(n != 1);" }, { "gu" , "nplurals=2; plural=(n != 1);" }, { "gun" , "nplurals=2; plural=(n > 1);" }, { "ha" , "nplurals=2; plural=(n != 1);" }, { "he" , "nplurals=2; plural=(n != 1);" }, { "hi" , "nplurals=2; plural=(n != 1);" }, { "hne" , "nplurals=2; plural=(n != 1);" }, { "hr" , "nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);" }, { "hsb" , "nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);" }, { "ht" , "nplurals=2; plural=(n != 1);" }, { "hu" , "nplurals=2; plural=(n != 1);" }, { "hy" , "nplurals=2; plural=(n != 1);" }, { "ia" , "nplurals=2; plural=(n != 1);" }, { "id" , "nplurals=1; plural=0;" }, { "ig" , "nplurals=2; plural=(n != 1);" }, { "ilo" , "nplurals=2; plural=(n != 1);" }, { "is" , "nplurals=2; plural=(n != 1);" }, { "it" , "nplurals=2; plural=(n != 1);" }, { "ja" , "nplurals=1; plural=0;" }, { "jv" , "nplurals=2; plural=(n != 1);" }, { "ka" , "nplurals=1; plural=0;" }, { "kk" , "nplurals=1; plural=0;" }, { "km" , "nplurals=1; plural=0;" }, { "kn" , "nplurals=1; plural=0;" }, { "ko" , "nplurals=1; plural=0;" }, { "ks" , "nplurals=2; plural=(n != 1);" }, { "ku" , "nplurals=2; plural=(n != 1);" }, { "kw" , "nplurals=4; plural=(n==1) ? 0 : (n==2) ? 1 : (n == 3) ? 2 : 3;" }, { "ky" , "nplurals=1; plural=0;" }, { "la" , "nplurals=2; plural=(n != 1);" }, { "lb" , "nplurals=2; plural=(n != 1);" }, { "li" , "nplurals=2; plural=(n != 1);" }, { "ln" , "nplurals=2; plural=(n > 1);" }, { "lo" , "nplurals=1; plural=0;" }, { "lt" , "nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%100<10 || n%100>=20) ? 1 : 2);" }, { "lv" , "nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2);" }, { "mai" , "nplurals=2; plural=(n != 1);" }, { "mg" , "nplurals=2; plural=(n > 1);" }, { "mi" , "nplurals=2; plural=(n > 1);" }, { "mk" , "nplurals=2; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : 1;" }, { "ml" , "nplurals=2; plural=(n != 1);" }, { "mn" , "nplurals=2; plural=(n != 1);" }, { "mr" , "nplurals=2; plural=(n != 1);" }, { "ms" , "nplurals=1; plural=0;" }, { "mt" , "nplurals=4; plural=(n==1 ? 0 : n==0 || ( n%100>1 && n%100<11) ? 1 : (n%100>10 && n%100<20 ) ? 2 : 3);" }, { "my" , "nplurals=1; plural=0;" }, { "nah" , "nplurals=2; plural=(n != 1);" }, { "nap" , "nplurals=2; plural=(n != 1);" }, { "nb" , "nplurals=2; plural=(n != 1);" }, { "nds" , "nplurals=2; plural=(n != 1);" }, { "ne" , "nplurals=2; plural=(n != 1);" }, { "nl" , "nplurals=2; plural=(n != 1);" }, { "nn" , "nplurals=2; plural=(n != 1);" }, { "no" , "nplurals=2; plural=(n != 1);" }, { "nr" , "nplurals=1; plural=0;" }, { "nso" , "nplurals=2; plural=(n > 1);" }, { "oc" , "nplurals=2; plural=(n > 1);" }, { "or" , "nplurals=2; plural=(n != 1);" }, { "pa" , "nplurals=2; plural=(n != 1);" }, { "pap" , "nplurals=2; plural=(n != 1);" }, { "pl" , "nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);" }, { "pms" , "nplurals=2; plural=(n != 1);" }, { "ps" , "nplurals=2; plural=(n != 1);" }, { "pt" , "nplurals=2; plural=(n != 1);" }, { "pt_BR", "nplurals=2; plural=(n > 1);" }, { "rm" , "nplurals=2; plural=(n != 1);" }, { "ro" , "nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));" }, { "ru" , "nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);" }, { "rw" , "nplurals=2; plural=(n != 1);" }, { "sc" , "nplurals=2; plural=(n != 1);" }, { "sco" , "nplurals=2; plural=(n != 1);" }, { "se" , "nplurals=2; plural=(n != 1);" }, { "si" , "nplurals=2; plural=(n != 1);" }, { "sk" , "nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;" }, { "sl" , "nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);" }, { "sm" , "nplurals=1; plural=0;" }, { "sn" , "nplurals=2; plural=(n != 1);" }, { "so" , "nplurals=2; plural=(n != 1);" }, { "son" , "nplurals=1; plural=0;" }, { "sq" , "nplurals=2; plural=(n != 1);" }, { "sr" , "nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);" }, { "st" , "nplurals=2; plural=(n != 1);" }, { "su" , "nplurals=1; plural=0;" }, { "sv" , "nplurals=2; plural=(n != 1);" }, { "sw" , "nplurals=2; plural=(n != 1);" }, { "ta" , "nplurals=2; plural=(n != 1);" }, { "te" , "nplurals=2; plural=(n != 1);" }, { "tg" , "nplurals=2; plural=(n != 1);" }, { "th" , "nplurals=1; plural=0;" }, { "ti" , "nplurals=2; plural=(n > 1);" }, { "tk" , "nplurals=2; plural=(n != 1);" }, { "tl" , "nplurals=2; plural=(n > 1);" }, { "tlh" , "nplurals=2; plural=(n > 1);" }, { "to" , "nplurals=1; plural=0;" }, { "tr" , "nplurals=2; plural=(n != 1);" }, { "tt" , "nplurals=1; plural=0;" }, { "udm" , "nplurals=1; plural=0;" }, { "ug" , "nplurals=1; plural=0;" }, { "uk" , "nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);" }, { "ur" , "nplurals=2; plural=(n != 1);" }, { "uz" , "nplurals=1; plural=0;" }, { "ve" , "nplurals=2; plural=(n != 1);" }, { "vi" , "nplurals=1; plural=0;" }, { "vls" , "nplurals=2; plural=(n != 1);" }, { "wa" , "nplurals=2; plural=(n > 1);" }, { "wo" , "nplurals=1; plural=0;" }, { "xh" , "nplurals=2; plural=(n != 1);" }, { "yi" , "nplurals=2; plural=(n != 1);" }, { "yo" , "nplurals=2; plural=(n != 1);" }, { "zh" , "nplurals=1; plural=0;" }, { "zu" , "nplurals=2; plural=(n != 1);" } // Code generated with scripts/extract-plural-forms.py ends herepoedit-2.0.6/src/prefsdlg.h0000664000372000037200000000274113230131554012473 00000000000000/* * This file is part of Poedit (https://poedit.net) * * Copyright (C) 2000-2018 Vaclav Slavik * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * DEALINGS IN THE SOFTWARE. * */ #ifndef Poedit_prefsdlg_h #define Poedit_prefsdlg_h #include #include class PoeditPreferencesEditor : public wxPreferencesEditor { public: static std::unique_ptr Create(); private: PoeditPreferencesEditor() {} }; #endif // Poedit_prefsdlg_hpoedit-2.0.6/src/propertiesdlg.h0000664000372000037200000000631713230131554013553 00000000000000/* * This file is part of Poedit (https://poedit.net) * * Copyright (C) 2000-2018 Vaclav Slavik * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * DEALINGS IN THE SOFTWARE. * */ #ifndef _PROPERTIESDLG_H_ #define _PROPERTIESDLG_H_ #include #include #include #include "catalog.h" #include "languagectrl.h" class WXDLLIMPEXP_FWD_ADV wxEditableListBox; class WXDLLIMPEXP_FWD_CORE wxTextCtrl; class WXDLLIMPEXP_FWD_CORE wxRadioButton; class WXDLLIMPEXP_FWD_CORE wxCheckBox; class WXDLLIMPEXP_FWD_CORE wxComboBox; /// Dialog setting various catalog parameters. class PropertiesDialog : public wxDialog { public: PropertiesDialog(wxWindow *parent, CatalogPtr cat, bool fileExistsOnDisk, int initialPage = 0); ~PropertiesDialog(); /// Reads data from the catalog and fill dialog's controls. void TransferTo(const CatalogPtr& cat); /// Saves data from the dialog to the catalog. void TransferFrom(const CatalogPtr& cat); virtual bool Validate(); private: void DisableSourcesControls(); void OnLanguageChanged(wxCommandEvent& event); void OnLanguageValueChanged(const wxString& langstr); void OnPluralFormsDefault(wxCommandEvent& event); void OnPluralFormsCustom(wxCommandEvent& event); void OnGettextSettings(wxCommandEvent& event); struct PathsData; class BasePathCtrl; class PathsList; class SourcePathsList; class ExcludedPathsList; struct GettextSettings; class GettextSettingsDialog; wxTextCtrl *m_team, *m_project; LanguageCtrl *m_language; wxComboBox *m_charset, *m_sourceCodeCharset; wxRadioButton *m_pluralFormsDefault, *m_pluralFormsCustom; wxTextCtrl *m_pluralFormsExpr; BasePathCtrl *m_basePath; std::shared_ptr m_pathsData; PathsList *m_paths, *m_excludedPaths; wxEditableListBox *m_keywords; wxCheckBox *m_defaultKeywords; wxString m_rememberedPluralForm; std::shared_ptr m_gettextSettings; bool m_hasLang; int m_validatedPlural, m_validatedLang; }; #endif // _PROPERTIESDLG_H_ poedit-2.0.6/src/edframe.h0000664000372000037200000003343413230131554012273 00000000000000/* * This file is part of Poedit (https://poedit.net) * * Copyright (C) 1999-2018 Vaclav Slavik * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * DEALINGS IN THE SOFTWARE. * */ #ifndef _EDFRAME_H_ #define _EDFRAME_H_ #include #include #include #include #include #include class WXDLLIMPEXP_FWD_CORE wxSplitterWindow; class WXDLLIMPEXP_FWD_CORE wxSplitterEvent; #include "catalog.h" #include "gexecute.h" #include "edlistctrl.h" #include "edapp.h" #ifdef __WXMSW__ #include "windows/win10_menubar.h" typedef wxFrameWithWindows10Menubar PoeditFrameBase; #else typedef wxFrame PoeditFrameBase; #endif class PoeditFrame; class AttentionBar; class FindFrame; class MainToolbar; class Sidebar; class EditingArea; /** This class provides main editing frame. It handles user's input and provides frontend to catalog editing engine. Nothing fancy. */ class PoeditFrame : public PoeditFrameBase { public: /** Public constructor functions. Creates and shows frame and opens \a catalog. If \a catalog is already opened in another Poedit frame, then this function won't create new frame but instead return pointer to existing one. \param catalog filename of catalog to open. */ static PoeditFrame *Create(const wxString& catalog, int lineno = 0); /** Public constructor functions. Creates and shows frame without catalog or other content. */ static PoeditFrame *CreateEmpty(); /** Public constructor functions. Creates and shows frame without catalog, just a welcome screen. */ static PoeditFrame *CreateWelcome(); /// Opens given file in this frame. Asks user for permission first /// if there's unsaved document. void OpenFile(const wxString& filename, int lineno = 0); /** Returns pointer to existing instance of PoeditFrame that currently exists and edits \a catalog. If no such frame exists, returns NULL. */ static PoeditFrame *Find(const wxString& catalog); /// Returns active PoeditFrame, if it is unused (i.e. not showing /// content, not having catalog loaded); NULL otherwise. static PoeditFrame *UnusedActiveWindow() { return UnusedWindow(true); } /// Ditto, but not required to be active static PoeditFrame *UnusedWindow(bool active); /// Returns true if at least one one window has unsaved changes static bool AnyWindowIsModified(); /// Returns true if any windows (with documents) are open static bool HasAnyWindow() { return !ms_instances.empty(); } static int GetOpenWindowsCount() { return (int)ms_instances.size(); } ~PoeditFrame(); /// Reads catalog, refreshes controls, takes ownership of catalog. void ReadCatalog(const wxString& catalog); /// Reads catalog, refreshes controls, takes ownership of catalog. void ReadCatalog(const CatalogPtr& cat); /// Writes catalog. void WriteCatalog(const wxString& catalog); template void WriteCatalog(const wxString& catalog, TFunctor completionHandler); void FixDuplicatesIfPresent(); void WarnAboutLanguageIssues(); /// Did the user modify the catalog? bool IsModified() const { return m_modified; } void MarkAsModified(); /** Updates catalog and sets m_modified flag. Updates from POT if \a pot_file is not empty and from sources otherwise. */ bool UpdateCatalog(const wxString& pot_file = wxEmptyString); void UpdateAfterPreferencesChange(); static void UpdateAllAfterPreferencesChange(); void EditCatalogProperties(); void EditCatalogPropertiesAndUpdateFromSources(); /// Returns currently selected (edited) item CatalogItemPtr GetCurrentItem() const; /// Puts text from catalog & listctrl to textctrls. void UpdateToTextCtrl(int flags); /// Puts text from textctrls to catalog & listctrl. void OnUpdatedFromTextCtrl(CatalogItemPtr item, bool statsChanged); wxString GetFileName() const { return m_catalog ? m_catalog->GetFileName() : wxString(); } wxString GetFileNamePartOfTitle() const { return m_fileNamePartOfTitle; } protected: // Don't show help in status bar, it's not common to do these days: void DoGiveHelp(const wxString& /*help*/, bool /*show*/) override {} private: /** Ctor. \param catalog filename of catalog to open. If empty, starts w/o opened file. */ PoeditFrame(); /// Current kind of content view enum class Content { Invalid, // no content whatsoever Welcome, PO, POT, Empty_PO }; Content m_contentType; /// parent of all content controls etc. wxWindow *m_contentView; wxSizer *m_contentWrappingSizer; /// Ensures creation of specified content view, destroying the /// current content if necessary void EnsureContentView(Content type); void EnsureAppropriateContentView(); wxWindow* CreateContentViewPO(Content type); wxWindow* CreateContentViewWelcome(); wxWindow* CreateContentViewEmptyPO(); void DestroyContentView(); void PlaceInitialFocus(int lineno = 0); typedef std::set PoeditFramesList; static PoeditFramesList ms_instances; private: /// Refreshes controls. enum { Refresh_NoCatalogChanged = 1 }; void RefreshControls(int flags = 0); void NotifyCatalogChanged(const CatalogPtr& cat); /// Sets controls custom fonts. void SetCustomFonts(); void SetAccelerators(); // if there's modified catalog, ask user to save it; return true // if it's save to discard m_catalog and load new data template void DoIfCanDiscardCurrentDoc(TFunctor completionHandler); bool NeedsToAskIfCanDiscardCurrentDoc() const; wxWindowPtr CreateAskAboutSavingDialog(); // implements opening of files, without asking user void DoOpenFile(const wxString& filename, int lineno = 0); /// Updates statistics in statusbar. void UpdateStatusBar(); /// Updates frame title. void UpdateTitle(); /// Updates menu -- disables and enables items. void UpdateMenu(); // Called when catalog's language possibly changed void UpdateTextLanguage(); /// Returns popup menu for given catalog entry. wxMenu *GetPopupMenu(int item); // (Re)initializes spellchecker, if needed void InitSpellchecker(); // navigation to another item in the list typedef bool (*NavigatePredicate)(const CatalogItemPtr& item); int NavigateGetNextItem(const int start, int step, NavigatePredicate predicate, bool wrap, CatalogItemPtr *out_item); void Navigate(int step, NavigatePredicate predicate, bool wrap); void OnDoneAndNext(wxCommandEvent&); void OnPrev(wxCommandEvent&); void OnNext(wxCommandEvent&); void OnPrevPage(wxCommandEvent&); void OnNextPage(wxCommandEvent&); void OnPrevUnfinished(wxCommandEvent&); void OnNextUnfinished(wxCommandEvent&); void OnPrevPluralForm(wxCommandEvent&); void OnNextPluralForm(wxCommandEvent&); // Message handlers: public: // for PoeditApp void OnNew(wxCommandEvent& event); void NewFromScratch(); void NewFromPOT(); void NewFromPOT(const wxString& pot_file, Language language = Language()); void OnOpen(wxCommandEvent& event); void OnOpenFromCrowdin(wxCommandEvent& event); #ifndef __WXOSX__ void OnOpenHist(wxCommandEvent& event); void OnCloseCmd(wxCommandEvent& event); #endif private: void OnSave(wxCommandEvent& event); void OnSaveAs(wxCommandEvent& event); template void GetSaveAsFilenameThenDo(const CatalogPtr& cat, F then); void DoSaveAs(const wxString& filename); void OnProperties(wxCommandEvent& event); void OnUpdateFromSources(wxCommandEvent& event); void OnUpdateFromSourcesUpdate(wxUpdateUIEvent& event); void OnUpdateFromPOT(wxCommandEvent& event); void OnUpdateFromPOTUpdate(wxUpdateUIEvent& event); void OnUpdateFromCrowdin(wxCommandEvent& event); void OnUpdateFromCrowdinUpdate(wxUpdateUIEvent& event); void OnUpdateSmart(wxCommandEvent& event); void OnUpdateSmartUpdate(wxUpdateUIEvent& event); void OnValidate(wxCommandEvent& event); void OnListSel(wxDataViewEvent& event); void OnListRightClick(wxDataViewEvent& event); void OnListFocus(wxFocusEvent& event); void OnSplitterSashMoving(wxSplitterEvent& event); void OnSidebarSplitterSashMoving(wxSplitterEvent& event); void OnCloseWindow(wxCloseEvent& event); void OnReference(wxCommandEvent& event); void OnReferencesMenu(wxCommandEvent& event); void OnReferencesMenuUpdate(wxUpdateUIEvent& event); void ShowReference(int num); void OnRightClick(wxCommandEvent& event); void OnFuzzyFlag(wxCommandEvent& event); void OnIDsFlag(wxCommandEvent& event); void OnCopyFromSource(wxCommandEvent& event); void OnCopyFromSingular(wxCommandEvent& event); void OnClearTranslation(wxCommandEvent& event); void OnFind(wxCommandEvent& event); void OnFindAndReplace(wxCommandEvent& event); void OnFindNext(wxCommandEvent& event); void OnFindPrev(wxCommandEvent& event); void OnUpdateFind(wxUpdateUIEvent& event); void OnEditComment(wxCommandEvent& event); void OnSortByFileOrder(wxCommandEvent&); void OnSortBySource(wxCommandEvent&); void OnSortByTranslation(wxCommandEvent&); void OnSortGroupByContext(wxCommandEvent&); void OnSortUntranslatedFirst(wxCommandEvent&); void OnSortErrorsFirst(wxCommandEvent&); void OnShowHideSidebar(wxCommandEvent& event); void OnUpdateShowHideSidebar(wxUpdateUIEvent& event); void OnShowHideStatusbar(wxCommandEvent& event); void OnUpdateShowHideStatusbar(wxUpdateUIEvent& event); void OnSelectionUpdate(wxUpdateUIEvent& event); void OnSelectionUpdateEditable(wxUpdateUIEvent& event); void OnSingleSelectionUpdate(wxUpdateUIEvent& event); void OnSingleSelectionWithPluralsUpdate(wxUpdateUIEvent& event); void OnHasCatalogUpdate(wxUpdateUIEvent& event); void OnIsEditableUpdate(wxUpdateUIEvent& event); void OnEditCommentUpdate(wxUpdateUIEvent& event); #if defined(__WXMSW__) || defined(__WXGTK__) void OnTextEditingCommand(wxCommandEvent& event); void OnTextEditingCommandUpdate(wxUpdateUIEvent& event); #endif void OnSuggestion(wxCommandEvent& event); void OnPreTranslateAll(wxCommandEvent& event); void OnPurgeDeleted(wxCommandEvent& event); void OnGoToBookmark(wxCommandEvent& event); void OnSetBookmark(wxCommandEvent& event); void AddBookmarksMenu(wxMenu *menu); void OnCompileMO(wxCommandEvent& event); void OnExport(wxCommandEvent& event); bool ExportCatalog(const wxString& filename); void OnSize(wxSizeEvent& event); void RecreatePluralTextCtrls(); template void ReportValidationErrors(Catalog::ValidationResults validation, Catalog::CompilationStatus mo_compilation_status, bool from_save, bool other_file_saved, TFunctor completionHandler); #ifndef __WXOSX__ wxFileHistory& FileHistory() { return wxGetApp().FileHistory(); } #endif void NoteAsRecentFile(); void OnNewTranslationEntered(const CatalogItemPtr& item); DECLARE_EVENT_TABLE() private: CatalogPtr m_catalog; bool m_fileExistsOnDisk; wxString m_fileNamePartOfTitle; std::unique_ptr m_toolbar; CatalogItemPtr m_pendingHumanEditedItem; EditingArea *m_editingArea; wxSplitterWindow *m_splitter; wxSplitterWindow *m_sidebarSplitter; PoeditListCtrl *m_list; #ifndef __WXOSX__ wxMenu *m_menuForHistory; #endif AttentionBar *m_attentionBar; Sidebar *m_sidebar; wxWeakRef m_findWindow; bool m_modified; bool m_hasObsoleteItems; bool m_displayIDs; bool m_setSashPositionsWhenMaximized; }; #endif // _EDFRAME_H_ poedit-2.0.6/src/Makefile.in0000664000372000037200000010426313230132040012552 00000000000000# 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 = : build_triplet = @build@ host_triplet = @host@ bin_PROGRAMS = poedit$(EXEEXT) subdir = src DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ $(top_srcdir)/admin/depcomp ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/admin/ax_boost_base.m4 \ $(top_srcdir)/admin/ax_boost_iostreams.m4 \ $(top_srcdir)/admin/ax_boost_regex.m4 \ $(top_srcdir)/admin/ax_boost_system.m4 \ $(top_srcdir)/admin/ax_boost_thread.m4 \ $(top_srcdir)/admin/ax_cxx_check_flag.m4 \ $(top_srcdir)/admin/ax_cxx_compile_stdcxx.m4 \ $(top_srcdir)/admin/wxwin.m4 $(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__installdirs = "$(DESTDIR)$(bindir)" PROGRAMS = $(bin_PROGRAMS) am__poedit_SOURCES_DIST = attentionbar.cpp attentionbar.h cat_update.h \ cat_update.cpp cat_sorting.cpp cat_sorting.h catalog.cpp \ catalog.h chooselang.cpp chooselang.h cloud_sync.h \ colorscheme.h colorscheme.cpp commentdlg.h commentdlg.cpp \ concurrency.cpp concurrency.h configuration.cpp \ configuration.h custom_buttons.cpp custom_buttons.h \ customcontrols.cpp customcontrols.h edapp.cpp edapp.h \ edframe.cpp edframe.h editing_area.cpp editing_area.h \ edlistctrl.cpp edlistctrl.h errors.h export_html.cpp \ extractors/extractor.cpp extractors/extractor.h \ extractors/extractor_gettext.cpp \ extractors/extractor_legacy.cpp extractors/extractor_legacy.h \ fileviewer.cpp fileviewer.h findframe.cpp findframe.h \ gexecute.h gexecute.cpp hidpi.cpp hidpi.h icons.h icons.cpp \ language.cpp language.h language_impl_legacy.h \ language_impl_plurals.h languagectrl.cpp languagectrl.h \ logcapture.h main_toolbar.h wx/main_toolbar.cpp manager.h \ manager.cpp pluralforms/pl_evaluate.cpp \ pluralforms/pl_evaluate.h prefsdlg.cpp prefsdlg.h \ pretranslate.cpp pretranslate.h progressinfo.h \ progressinfo.cpp propertiesdlg.cpp propertiesdlg.h \ qa_checks.cpp qa_checks.h sidebar.cpp sidebar.h \ spellchecking.h spellchecking.cpp str_helpers.h \ syntaxhighlighter.cpp syntaxhighlighter.h text_control.h \ text_control.cpp tm/suggestions.cpp tm/suggestions.h \ tm/transmem.cpp tm/transmem.h unicode_helpers.h \ unicode_helpers.cpp utility.cpp utility.h version.h \ welcomescreen.cpp welcomescreen.h http_client.h \ http_client.cpp http_client_casablanca.cpp crowdin_client.h \ crowdin_client.cpp crowdin_gui.h crowdin_gui.cpp \ keychain/keytar_posix.cc keychain/keytar.h json.h \ json/src/json.hpp wx_backports/wx_gtk_activityindicator.cpp \ wx_backports/activityindicator.h \ wx_backports/gtk_activityindicator.h wx_backports/nativewin.h \ wx_backports/wx_gtk_nativewin.cpp am__dirstamp = $(am__leading_dot)dirstamp @HAVE_CPPREST_TRUE@am__objects_1 = http_client.$(OBJEXT) \ @HAVE_CPPREST_TRUE@ http_client_casablanca.$(OBJEXT) \ @HAVE_CPPREST_TRUE@ crowdin_client.$(OBJEXT) \ @HAVE_CPPREST_TRUE@ crowdin_gui.$(OBJEXT) \ @HAVE_CPPREST_TRUE@ keychain/keytar_posix.$(OBJEXT) am__objects_2 = wx_backports/wx_gtk_activityindicator.$(OBJEXT) \ wx_backports/wx_gtk_nativewin.$(OBJEXT) am_poedit_OBJECTS = attentionbar.$(OBJEXT) cat_update.$(OBJEXT) \ cat_sorting.$(OBJEXT) catalog.$(OBJEXT) chooselang.$(OBJEXT) \ colorscheme.$(OBJEXT) commentdlg.$(OBJEXT) \ concurrency.$(OBJEXT) configuration.$(OBJEXT) \ custom_buttons.$(OBJEXT) customcontrols.$(OBJEXT) \ edapp.$(OBJEXT) edframe.$(OBJEXT) editing_area.$(OBJEXT) \ edlistctrl.$(OBJEXT) export_html.$(OBJEXT) \ extractors/extractor.$(OBJEXT) \ extractors/extractor_gettext.$(OBJEXT) \ extractors/extractor_legacy.$(OBJEXT) fileviewer.$(OBJEXT) \ findframe.$(OBJEXT) gexecute.$(OBJEXT) hidpi.$(OBJEXT) \ icons.$(OBJEXT) language.$(OBJEXT) languagectrl.$(OBJEXT) \ wx/main_toolbar.$(OBJEXT) manager.$(OBJEXT) \ pluralforms/pl_evaluate.$(OBJEXT) prefsdlg.$(OBJEXT) \ pretranslate.$(OBJEXT) progressinfo.$(OBJEXT) \ propertiesdlg.$(OBJEXT) qa_checks.$(OBJEXT) sidebar.$(OBJEXT) \ spellchecking.$(OBJEXT) syntaxhighlighter.$(OBJEXT) \ text_control.$(OBJEXT) tm/suggestions.$(OBJEXT) \ tm/transmem.$(OBJEXT) unicode_helpers.$(OBJEXT) \ utility.$(OBJEXT) welcomescreen.$(OBJEXT) $(am__objects_1) \ $(am__objects_2) nodist_poedit_OBJECTS = compiled_xrc.$(OBJEXT) poedit_OBJECTS = $(am_poedit_OBJECTS) $(nodist_poedit_OBJECTS) am__DEPENDENCIES_1 = @HAVE_CPPREST_TRUE@am__DEPENDENCIES_2 = $(am__DEPENDENCIES_1) \ @HAVE_CPPREST_TRUE@ $(am__DEPENDENCIES_1) poedit_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_2) \ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ depcomp = $(SHELL) $(top_srcdir)/admin/depcomp am__depfiles_maybe = depfiles am__mv = mv -f CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) AM_V_CXX = $(am__v_CXX_@AM_V@) am__v_CXX_ = $(am__v_CXX_@AM_DEFAULT_V@) am__v_CXX_0 = @echo " CXX " $@; am__v_CXX_1 = CXXLD = $(CXX) CXXLINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \ -o $@ AM_V_CXXLD = $(am__v_CXXLD_@AM_V@) am__v_CXXLD_ = $(am__v_CXXLD_@AM_DEFAULT_V@) am__v_CXXLD_0 = @echo " CXXLD " $@; am__v_CXXLD_1 = COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_@AM_V@) am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) am__v_CC_0 = @echo " CC " $@; am__v_CC_1 = CCLD = $(CC) LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; am__v_CCLD_1 = SOURCES = $(poedit_SOURCES) $(nodist_poedit_SOURCES) DIST_SOURCES = $(am__poedit_SOURCES_DIST) am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is # *not* preserved. am__uniquify_input = $(AWK) '\ BEGIN { nonempty = 0; } \ { items[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in items) print i; }; } \ ' # Make sure the list of sources is unique. This is necessary because, # e.g., the same source file might be shared among _SOURCES variables # for different programs/libraries. am__define_uniq_tagged_files = \ list='$(am__tagged_files)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BOOST_CPPFLAGS = @BOOST_CPPFLAGS@ BOOST_IOSTREAMS_LIB = @BOOST_IOSTREAMS_LIB@ BOOST_LDFLAGS = @BOOST_LDFLAGS@ BOOST_REGEX_LIB = @BOOST_REGEX_LIB@ BOOST_SYSTEM_LIB = @BOOST_SYSTEM_LIB@ BOOST_THREAD_LIB = @BOOST_THREAD_LIB@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CLD2_LIBS = @CLD2_LIBS@ CPPFLAGS = @CPPFLAGS@ CPPREST_LIBS = @CPPREST_LIBS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GREP = @GREP@ GTKSPELL_CFLAGS = @GTKSPELL_CFLAGS@ GTKSPELL_LIBS = @GTKSPELL_LIBS@ HAVE_CXX14 = @HAVE_CXX14@ ICU_CFLAGS = @ICU_CFLAGS@ ICU_LIBS = @ICU_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBSECRET_CFLAGS = @LIBSECRET_CFLAGS@ LIBSECRET_LIBS = @LIBSECRET_LIBS@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ LUCENE_CFLAGS = @LUCENE_CFLAGS@ LUCENE_LIBS = @LUCENE_LIBS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_SHORT_VERSION = @PACKAGE_SHORT_VERSION@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ WXRC = @WXRC@ WX_CFLAGS = @WX_CFLAGS@ WX_CFLAGS_ONLY = @WX_CFLAGS_ONLY@ WX_CONFIG_PATH = @WX_CONFIG_PATH@ WX_CONFIG_WITH_ARGS = @WX_CONFIG_WITH_ARGS@ WX_CPPFLAGS = @WX_CPPFLAGS@ WX_CXXFLAGS = @WX_CXXFLAGS@ WX_CXXFLAGS_ONLY = @WX_CXXFLAGS_ONLY@ WX_LIBS = @WX_LIBS@ WX_LIBS_STATIC = @WX_LIBS_STATIC@ WX_RESCOMP = @WX_RESCOMP@ WX_VERSION = @WX_VERSION@ WX_VERSION_MAJOR = @WX_VERSION_MAJOR@ WX_VERSION_MICRO = @WX_VERSION_MICRO@ WX_VERSION_MINOR = @WX_VERSION_MINOR@ 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@ ac_ct_CXX = @ac_ct_CXX@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ WX_BACKPORT_SRC = wx_backports/wx_gtk_activityindicator.cpp \ wx_backports/activityindicator.h \ wx_backports/gtk_activityindicator.h \ wx_backports/nativewin.h \ wx_backports/wx_gtk_nativewin.cpp @HAVE_CPPREST_TRUE@CROWDIN_SUPPORT_SRC = \ @HAVE_CPPREST_TRUE@ http_client.h http_client.cpp http_client_casablanca.cpp \ @HAVE_CPPREST_TRUE@ crowdin_client.h crowdin_client.cpp \ @HAVE_CPPREST_TRUE@ crowdin_gui.h crowdin_gui.cpp \ @HAVE_CPPREST_TRUE@ keychain/keytar_posix.cc keychain/keytar.h \ @HAVE_CPPREST_TRUE@ json.h json/src/json.hpp @HAVE_CPPREST_TRUE@CROWDIN_SUPPORT_LIBS = $(CPPREST_LIBS) $(LIBSECRET_LIBS) poedit_SOURCES = \ attentionbar.cpp attentionbar.h \ cat_update.h cat_update.cpp \ cat_sorting.cpp cat_sorting.h \ catalog.cpp catalog.h \ chooselang.cpp chooselang.h \ cloud_sync.h \ colorscheme.h colorscheme.cpp \ commentdlg.h commentdlg.cpp \ concurrency.cpp concurrency.h \ configuration.cpp configuration.h \ custom_buttons.cpp custom_buttons.h \ customcontrols.cpp customcontrols.h \ edapp.cpp edapp.h \ edframe.cpp edframe.h \ editing_area.cpp editing_area.h \ edlistctrl.cpp edlistctrl.h \ errors.h \ export_html.cpp \ extractors/extractor.cpp extractors/extractor.h \ extractors/extractor_gettext.cpp \ extractors/extractor_legacy.cpp extractors/extractor_legacy.h \ fileviewer.cpp fileviewer.h \ findframe.cpp findframe.h \ gexecute.h gexecute.cpp \ hidpi.cpp hidpi.h \ icons.h icons.cpp \ language.cpp language.h \ language_impl_legacy.h language_impl_plurals.h \ languagectrl.cpp languagectrl.h \ logcapture.h \ main_toolbar.h wx/main_toolbar.cpp \ manager.h manager.cpp \ pluralforms/pl_evaluate.cpp pluralforms/pl_evaluate.h \ prefsdlg.cpp prefsdlg.h \ pretranslate.cpp pretranslate.h \ progressinfo.h progressinfo.cpp \ propertiesdlg.cpp propertiesdlg.h \ qa_checks.cpp qa_checks.h \ sidebar.cpp sidebar.h \ spellchecking.h spellchecking.cpp \ str_helpers.h \ syntaxhighlighter.cpp syntaxhighlighter.h \ text_control.h text_control.cpp \ tm/suggestions.cpp tm/suggestions.h \ tm/transmem.cpp tm/transmem.h \ unicode_helpers.h unicode_helpers.cpp \ utility.cpp utility.h \ version.h \ welcomescreen.cpp welcomescreen.h \ $(CROWDIN_SUPPORT_SRC) \ $(WX_BACKPORT_SRC) nodist_poedit_SOURCES = compiled_xrc.cpp poedit_LDADD = $(WX_LIBS) $(LUCENE_LIBS) $(CLD2_LIBS) $(CROWDIN_SUPPORT_LIBS) \ $(BOOST_LDFLAGS) $(BOOST_THREAD_LIB) $(BOOST_REGEX_LIB) $(BOOST_SYSTEM_LIB) XRC_RESOURCES = \ $(srcdir)/resources/comment.xrc \ $(srcdir)/resources/manager.xrc \ $(srcdir)/resources/menus.xrc \ $(srcdir)/resources/prefs.xrc \ $(srcdir)/resources/progress.xrc \ $(srcdir)/resources/properties.xrc \ $(srcdir)/resources/summary.xrc \ $(srcdir)/resources/toolbar.xrc DISTCLEANFILES = $(nodist_poedit_SOURCES) EXTRA_DIST = $(XRC_RESOURCES) pluralforms/COPYING all: all-am .SUFFIXES: .SUFFIXES: .cc .cpp .o .obj $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign src/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: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-binPROGRAMS: $(bin_PROGRAMS) @$(NORMAL_INSTALL) @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(bindir)'"; \ $(MKDIR_P) "$(DESTDIR)$(bindir)" || exit 1; \ fi; \ for p in $$list; do echo "$$p $$p"; done | \ sed 's/$(EXEEXT)$$//' | \ while read p p1; do if test -f $$p \ ; then echo "$$p"; echo "$$p"; else :; fi; \ done | \ sed -e 'p;s,.*/,,;n;h' \ -e 's|.*|.|' \ -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \ sed 'N;N;N;s,\n, ,g' | \ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \ { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ if ($$2 == $$4) files[d] = files[d] " " $$1; \ else { print "f", $$3 "/" $$4, $$1; } } \ END { for (d in files) print "f", d, files[d] }' | \ while read type dir files; do \ if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ test -z "$$files" || { \ echo " $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \ $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \ } \ ; done uninstall-binPROGRAMS: @$(NORMAL_UNINSTALL) @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ files=`for p in $$list; do echo "$$p"; done | \ sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \ -e 's/$$/$(EXEEXT)/' \ `; \ test -n "$$list" || exit 0; \ echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(bindir)" && rm -f $$files clean-binPROGRAMS: -test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS) extractors/$(am__dirstamp): @$(MKDIR_P) extractors @: > extractors/$(am__dirstamp) extractors/$(DEPDIR)/$(am__dirstamp): @$(MKDIR_P) extractors/$(DEPDIR) @: > extractors/$(DEPDIR)/$(am__dirstamp) extractors/extractor.$(OBJEXT): extractors/$(am__dirstamp) \ extractors/$(DEPDIR)/$(am__dirstamp) extractors/extractor_gettext.$(OBJEXT): extractors/$(am__dirstamp) \ extractors/$(DEPDIR)/$(am__dirstamp) extractors/extractor_legacy.$(OBJEXT): extractors/$(am__dirstamp) \ extractors/$(DEPDIR)/$(am__dirstamp) wx/$(am__dirstamp): @$(MKDIR_P) wx @: > wx/$(am__dirstamp) wx/$(DEPDIR)/$(am__dirstamp): @$(MKDIR_P) wx/$(DEPDIR) @: > wx/$(DEPDIR)/$(am__dirstamp) wx/main_toolbar.$(OBJEXT): wx/$(am__dirstamp) \ wx/$(DEPDIR)/$(am__dirstamp) pluralforms/$(am__dirstamp): @$(MKDIR_P) pluralforms @: > pluralforms/$(am__dirstamp) pluralforms/$(DEPDIR)/$(am__dirstamp): @$(MKDIR_P) pluralforms/$(DEPDIR) @: > pluralforms/$(DEPDIR)/$(am__dirstamp) pluralforms/pl_evaluate.$(OBJEXT): pluralforms/$(am__dirstamp) \ pluralforms/$(DEPDIR)/$(am__dirstamp) tm/$(am__dirstamp): @$(MKDIR_P) tm @: > tm/$(am__dirstamp) tm/$(DEPDIR)/$(am__dirstamp): @$(MKDIR_P) tm/$(DEPDIR) @: > tm/$(DEPDIR)/$(am__dirstamp) tm/suggestions.$(OBJEXT): tm/$(am__dirstamp) \ tm/$(DEPDIR)/$(am__dirstamp) tm/transmem.$(OBJEXT): tm/$(am__dirstamp) tm/$(DEPDIR)/$(am__dirstamp) keychain/$(am__dirstamp): @$(MKDIR_P) keychain @: > keychain/$(am__dirstamp) keychain/$(DEPDIR)/$(am__dirstamp): @$(MKDIR_P) keychain/$(DEPDIR) @: > keychain/$(DEPDIR)/$(am__dirstamp) keychain/keytar_posix.$(OBJEXT): keychain/$(am__dirstamp) \ keychain/$(DEPDIR)/$(am__dirstamp) wx_backports/$(am__dirstamp): @$(MKDIR_P) wx_backports @: > wx_backports/$(am__dirstamp) wx_backports/$(DEPDIR)/$(am__dirstamp): @$(MKDIR_P) wx_backports/$(DEPDIR) @: > wx_backports/$(DEPDIR)/$(am__dirstamp) wx_backports/wx_gtk_activityindicator.$(OBJEXT): \ wx_backports/$(am__dirstamp) \ wx_backports/$(DEPDIR)/$(am__dirstamp) wx_backports/wx_gtk_nativewin.$(OBJEXT): wx_backports/$(am__dirstamp) \ wx_backports/$(DEPDIR)/$(am__dirstamp) poedit$(EXEEXT): $(poedit_OBJECTS) $(poedit_DEPENDENCIES) $(EXTRA_poedit_DEPENDENCIES) @rm -f poedit$(EXEEXT) $(AM_V_CXXLD)$(CXXLINK) $(poedit_OBJECTS) $(poedit_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) -rm -f extractors/*.$(OBJEXT) -rm -f keychain/*.$(OBJEXT) -rm -f pluralforms/*.$(OBJEXT) -rm -f tm/*.$(OBJEXT) -rm -f wx/*.$(OBJEXT) -rm -f wx_backports/*.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/attentionbar.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cat_sorting.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cat_update.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/catalog.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/chooselang.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/colorscheme.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/commentdlg.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/compiled_xrc.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/concurrency.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/configuration.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/crowdin_client.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/crowdin_gui.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/custom_buttons.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/customcontrols.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/edapp.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/edframe.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/editing_area.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/edlistctrl.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/export_html.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fileviewer.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/findframe.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gexecute.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hidpi.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/http_client.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/http_client_casablanca.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/icons.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/language.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/languagectrl.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/manager.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/prefsdlg.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pretranslate.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/progressinfo.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/propertiesdlg.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/qa_checks.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sidebar.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/spellchecking.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/syntaxhighlighter.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/text_control.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/unicode_helpers.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/utility.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/welcomescreen.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@extractors/$(DEPDIR)/extractor.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@extractors/$(DEPDIR)/extractor_gettext.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@extractors/$(DEPDIR)/extractor_legacy.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@keychain/$(DEPDIR)/keytar_posix.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@pluralforms/$(DEPDIR)/pl_evaluate.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@tm/$(DEPDIR)/suggestions.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@tm/$(DEPDIR)/transmem.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@wx/$(DEPDIR)/main_toolbar.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@wx_backports/$(DEPDIR)/wx_gtk_activityindicator.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@wx_backports/$(DEPDIR)/wx_gtk_nativewin.Po@am__quote@ .cc.o: @am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\ @am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ @am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ $< .cc.obj: @am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\ @am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\ @am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .cpp.o: @am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\ @am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ @am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ $< .cpp.obj: @am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\ @am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\ @am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` ID: $(am__tagged_files) $(am__define_uniq_tagged_files); mkid -fID $$unique tags: tags-am TAGS: tags tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: ctags-am CTAGS: ctags ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscopelist: cscopelist-am cscopelist-am: $(am__tagged_files) list='$(am__tagged_files)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(PROGRAMS) installdirs: for dir in "$(DESTDIR)$(bindir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) -rm -f extractors/$(DEPDIR)/$(am__dirstamp) -rm -f extractors/$(am__dirstamp) -rm -f keychain/$(DEPDIR)/$(am__dirstamp) -rm -f keychain/$(am__dirstamp) -rm -f pluralforms/$(DEPDIR)/$(am__dirstamp) -rm -f pluralforms/$(am__dirstamp) -rm -f tm/$(DEPDIR)/$(am__dirstamp) -rm -f tm/$(am__dirstamp) -rm -f wx/$(DEPDIR)/$(am__dirstamp) -rm -f wx/$(am__dirstamp) -rm -f wx_backports/$(DEPDIR)/$(am__dirstamp) -rm -f wx_backports/$(am__dirstamp) -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-binPROGRAMS clean-generic mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) extractors/$(DEPDIR) keychain/$(DEPDIR) pluralforms/$(DEPDIR) tm/$(DEPDIR) wx/$(DEPDIR) wx_backports/$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-binPROGRAMS install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) extractors/$(DEPDIR) keychain/$(DEPDIR) pluralforms/$(DEPDIR) tm/$(DEPDIR) wx/$(DEPDIR) wx_backports/$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-binPROGRAMS .MAKE: install-am install-strip .PHONY: CTAGS GTAGS TAGS all all-am check check-am clean \ clean-binPROGRAMS clean-generic cscopelist-am ctags ctags-am \ distclean distclean-compile distclean-generic distclean-tags \ distdir dvi dvi-am html html-am info info-am install \ install-am install-binPROGRAMS install-data install-data-am \ install-dvi install-dvi-am install-exec install-exec-am \ install-html install-html-am install-info install-info-am \ install-man install-pdf install-pdf-am install-ps \ install-ps-am install-strip installcheck installcheck-am \ installdirs maintainer-clean maintainer-clean-generic \ mostlyclean mostlyclean-compile mostlyclean-generic pdf pdf-am \ ps ps-am tags tags-am uninstall uninstall-am \ uninstall-binPROGRAMS compiled_xrc.cpp: $(XRC_RESOURCES) $(WXRC) -v -c -o $@ $(XRC_RESOURCES) # 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: poedit-2.0.6/src/custom_buttons.h0000664000372000037200000000545713230131554013764 00000000000000/* * This file is part of Poedit (https://poedit.net) * * Copyright (C) 2016-2018 Vaclav Slavik * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * DEALINGS IN THE SOFTWARE. * */ #ifndef Poedit_custom_buttons_h #define Poedit_custom_buttons_h #include #include #ifdef __WXOSX__ #include #if !wxCHECK_VERSION(3,1,0) #include "wx_backports/nativewin.h" #endif #endif #include #ifdef __WXOSX__ /** iOS/Windows10/GtkSwitch style button. Mimics wxToggleButton with API and sent events. */ class SwitchButton : public wxNativeWindow { public: SwitchButton(wxWindow *parent, wxWindowID winid, const wxString& label); ~SwitchButton(); void SetColors(const wxColour& on, const wxColour& offLabel); void SetValue(bool value); bool GetValue() const; void SendToggleEvent(); private: class impl; std::unique_ptr m_impl; }; /** A partially transparent button. */ class TranslucentButton : public wxNativeWindow { public: TranslucentButton(wxWindow *parent, wxWindowID winid, const wxString& label); }; #else // !__WXOSX__ class SwitchButton : public wxToggleButton { public: SwitchButton(wxWindow *parent, wxWindowID winid, const wxString& label); void SetColors(const wxColour& on, const wxColour& offLabel); #ifdef __WXMSW__ bool ShouldInheritColours() const override { return true; } void OnMouseClick(wxMouseEvent& e); bool MSWOnDraw(WXDRAWITEMSTRUCT *wxdis) override; wxSize DoGetBestSize() const override; private: wxColour m_clrOn, m_clrOffLabel; #endif // __WXMSW__ }; class TranslucentButton : public wxButton { public: TranslucentButton(wxWindow *parent, wxWindowID winid, const wxString& label); }; #endif // !__WXOSX__ #endif // Poedit_custom_buttons_h poedit-2.0.6/src/edlistctrl.h0000664000372000037200000002354213230131554013040 00000000000000/* * This file is part of Poedit (https://poedit.net) * * Copyright (C) 1999-2018 Vaclav Slavik * Copyright (C) 2005 Olivier Sannier * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * DEALINGS IN THE SOFTWARE. * */ #ifndef Poedit_edlistctrl_h #define Poedit_edlistctrl_h #include #include #include class WXDLLIMPEXP_FWD_CORE wxListCtrl; class WXDLLIMPEXP_FWD_CORE wxListEvent; #include "catalog.h" #include "cat_sorting.h" #include "language.h" // list control with both columns equally wide: class PoeditListCtrl : public wxDataViewCtrl { public: PoeditListCtrl(wxWindow *parent, wxWindowID id = -1, bool dispIDs = false); virtual ~PoeditListCtrl(); /// Re-sort the control according to user-specified criteria. void Sort(); void SizeColumns(); void SetDisplayLines(bool dl); void CatalogChanged(const CatalogPtr& catalog); int ListItemToListIndex(const wxDataViewItem& item) const { return item.IsOk() ? m_model->GetRow(item) : -1; } wxDataViewItem ListIndexToListItem(int index) const { return index != -1 ? m_model->GetItem(index) : wxDataViewItem(); } /// Returns the list item index for the given catalog index int CatalogIndexToList(int index) const { return m_model->RowFromCatalogIndex(index); } wxDataViewItem CatalogIndexToListItem(int index) const { return m_model->GetItem(m_model->RowFromCatalogIndex(index)); } /// Returns item's index in the catalog int ListIndexToCatalog(int index) const { return index != -1 ? m_model->CatalogIndex(index) : -1; } int ListItemToCatalogIndex(const wxDataViewItem& item) const { return item.IsOk() ? m_model->CatalogIndex(m_model->GetRow(item)) : -1; } CatalogItemPtr ListItemToCatalogItem(const wxDataViewItem& item) const { return item.IsOk() ? m_model->Item(m_model->GetRow(item)) : nullptr; } /// Returns item from the catalog based on list index CatalogItemPtr ListIndexToCatalogItem(int index) const { return index != -1 ? m_model->Item(index) : nullptr; } CatalogItemPtr GetCurrentCatalogItem() { return ListItemToCatalogItem(GetCurrentItem()); } std::vector GetSelectedCatalogItems() const { auto catalog = m_model->m_catalog; std::vector s; for (auto i: GetSelectedCatalogItemIndexes()) s.push_back((*catalog)[i]); return s; } std::vector GetSelectedCatalogItemIndexes() const { wxDataViewItemArray sel; int count = GetSelections(sel); std::vector s; s.reserve(count); for (auto i: sel) s.push_back(m_model->CatalogIndex(m_model->GetRow(i))); return s; } void SetSelectedCatalogItemIndexes(const std::vector& selection) { wxDataViewItemArray sel; for (auto i: selection) sel.push_back(CatalogIndexToListItem(i)); SetSelections(sel); } // Perform given function for all selected items. The function takes // reference to the item as its argument. Also refresh the items touched, // on the assumption that the operation modifies them. template void ForSelectedCatalogItemsDo(T func) { wxDataViewItemArray sel; GetSelections(sel); for (auto item: sel) func(*ListItemToCatalogItem(item)); m_model->ItemsChanged(sel); } void SelectOnly(const wxDataViewItem& item) { wxDataViewItemArray sel; sel.push_back(item); SetSelections(sel); EnsureVisible(item); #ifndef __WXOSX__ #if wxCHECK_VERSION(3,1,1) wxDataViewEvent event(wxEVT_DATAVIEW_SELECTION_CHANGED, this, item); #else wxDataViewEvent event(wxEVT_DATAVIEW_SELECTION_CHANGED, GetId()); event.SetEventObject(this); event.SetModel(GetModel()); event.SetItem(item); #endif ProcessWindowEvent(event); #endif } void SelectAndFocus(const wxDataViewItem& item) { #ifndef __WXOSX__ // implicit in selection on macOS SetCurrentItem(item); #endif SelectOnly(item); } void SelectOnly(int n) { // TODO: Remove this API SelectOnly(m_model->GetItem(n)); } void SelectAndFocus(int n) { // TODO: Remove this API #ifndef __WXOSX__ // implicit in selection on macOS SetCurrentItem(m_model->GetItem(n)); #endif SelectOnly(n); } /// Returns true if exactly one item is selected. bool HasSingleSelection() const { return GetSelectedItemsCount() == 1; } /// Returns true if more than one item are selected. bool HasMultipleSelection() const { return GetSelectedItemsCount() > 1; } void RefreshSelectedItems() { // TODO: Remove this API wxDataViewItemArray sel; GetSelections(sel); m_model->ItemsChanged(sel); } void RefreshAllItems(); void RefreshItem(const wxDataViewItem& item) { m_model->ItemChanged(item); } int GetCurrentItemListIndex() { return m_model->GetRow(GetCurrentItem()); } int GetItemCount() const { return m_model->GetCount(); } void SetCustomFont(wxFont font); // Order used for sorting SortOrder& sortOrder() { return m_model->sortOrder; } protected: void DoFreeze() override; void DoThaw() override; private: /// Model for the translation data class Model : public wxDataViewVirtualListModel { public: enum Column { Col_ID, Col_Icon, Col_Source, Col_Translation, Col_Max // invalid }; Model(TextDirection appTextDir, wxVisualAttributes visual); virtual ~Model() {} void SetCatalog(CatalogPtr catalog); void UpdateSort(); unsigned int GetColumnCount() const override { return Col_Max; } wxString GetColumnType( unsigned int col ) const override; void GetValueByRow(wxVariant& variant, unsigned row, unsigned col) const override; bool SetValueByRow(const wxVariant&, unsigned, unsigned) override; bool GetAttrByRow(unsigned row, unsigned col, wxDataViewItemAttr& attr) const override; CatalogItemPtr Item(int row) const { int index = CatalogIndex(row); return index != -1 ? (*m_catalog)[index] : nullptr; } /// Returns item's index in the catalog int CatalogIndex(int row) const { if ( row < 0 || row >= (int)m_mapListToCatalog.size() ) return -1; else return m_mapListToCatalog[row]; } int RowFromCatalogIndex(int index) const { if ( index < 0 || index >= (int)m_mapCatalogToList.size() ) return -1; else return m_mapCatalogToList[index]; } void CreateSortMap(); void Freeze() { m_frozen = true; } void Thaw() { m_frozen = false; } public: CatalogPtr m_catalog; SortOrder sortOrder; private: bool m_frozen; std::vector m_mapListToCatalog; std::vector m_mapCatalogToList; TextDirection m_sourceTextDir, m_transTextDir, m_appTextDir; wxColour m_clrID, m_clrInvalid, m_clrFuzzy; wxString m_clrContextFg, m_clrContextBg; wxBitmap m_iconComment, m_iconBookmark, m_iconError, m_iconWarning; #if defined(__WXGTK__) && !wxCHECK_VERSION(3,0,3) #define HAS_BROKEN_NULL_BITMAPS wxBitmap m_nullBitmap; #endif }; void UpdateHeaderAttrs(); void CreateColumns(); void UpdateColumns(); void OnSize(wxSizeEvent& event); bool m_displayIDs; TextDirection m_appTextDir; wxDataViewColumn *m_colID, *m_colIcon, *m_colSource, *m_colTrans; CatalogPtr m_catalog; wxObjectDataPtr m_model; }; #endif // Poedit_edlistctrl_h poedit-2.0.6/src/commentdlg.h0000664000372000037200000000444413230131554013020 00000000000000/* * This file is part of Poedit (https://poedit.net) * * Copyright (C) 2001-2018 Vaclav Slavik * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * DEALINGS IN THE SOFTWARE. * */ #ifndef _COMMENTDLG_H_ #define _COMMENTDLG_H_ #include class WXDLLIMPEXP_FWD_CORE wxTextCtrl; /** CommentDialog is a very simple dialog that lets the user edit catalog comments. Comment consists of one or more lines that begin with the '#' character. The user is presented with more user friendly representation with '#' removed. */ class CommentDialog : public wxDialog { public: /// Returns the given comment without the leading "# " static wxString RemoveStartHash(const wxString& comment); /// Returns the given comment with the leading "# " added static wxString AddStartHash(const wxString& comment); /** Ctor. \param parent Parent frame, FindFrame will float on it \param comment Initial value of comment */ CommentDialog(wxWindow *parent, const wxString& comment); /// Returns the content of comment edit field. wxString GetComment() const; private: wxTextCtrl *m_text; void OnClear(wxCommandEvent& event); DECLARE_EVENT_TABLE() }; #endif // _FINDFRAME_H_ poedit-2.0.6/src/language.h0000664000372000037200000001420413230131554012445 00000000000000/* * This file is part of Poedit (https://poedit.net) * * Copyright (C) 2013-2018 Vaclav Slavik * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * DEALINGS IN THE SOFTWARE. * */ #ifndef Poedit_language_h #define Poedit_language_h #include #include #include #include /// Language's text writing direction enum class TextDirection { LTR, RTL }; /// Representation of translation's language. class Language { public: Language() : m_direction(TextDirection::LTR) {} bool IsValid() const { return !m_code.empty(); } const std::string& Code() const { return m_code; } std::wstring WCode() const { return std::wstring(m_code.begin(), m_code.end()); } /// Returns language part (cs) std::string Lang() const; /// Returns country part (CZ, may be empty) std::string Country() const; /// Returns language+country parts, without the variant std::string LangAndCountry() const; /// Returns optional variant (after @, e.g. 'latin', typically empty) std::string Variant() const; /// Return language tag for the language, per BCP 47, e.g. en-US or sr-Latn std::string LanguageTag() const { return m_tag; } /// Returns name of the locale suitable for ICU std::string IcuLocaleName() const { return LanguageTag(); } /// Returns ICU equivalent of the language info icu::Locale ToIcu() const; /// Returns name of this language suitable for display to the user in current UI language wxString DisplayName() const; /// Like DisplayName(), but shorted (no country/variant). wxString LanguageDisplayName() const; /// Returns name of this language in itself wxString DisplayNameInItself() const; /** Human-readable (if possible) form usable for round-tripping, i.e. understood by TryParse(). Typically "language (country)" in UI language. @see AllFormattedNames() */ wxString FormatForRoundtrip() const; /** Return all formatted language names known, in sorted order. @see FormatForRoundtrip() */ static const std::vector& AllFormattedNames(); /** Return appropriate plural form for this language. @return Plural form expression suitable for directly using in the gettext header or empty string if no record was found. */ std::string DefaultPluralFormsExpr() const; /// Returns language's text writing direction TextDirection Direction() const { return m_direction; } /// Returns true if the language is written right-to-left. bool IsRTL() const { return m_direction == TextDirection::RTL; } /** Tries to parse the string as language identification. Accepts various forms: - standard code (cs, cs_CZ, cs_CZ@latin, ...) - ditto with nonstandard capitalization - language name in English or current UI language - ditto for "language (country)" Returned language instance is either invalid if the value couldn't be parsed or a language with normalized language code. @note This function does *not* validate language codes: if @a s has standard form, the codes are assumed to be valid. Use TryParseWithValidation() if you are not sure. */ static Language TryParse(const std::wstring& s); static Language TryParse(const std::string& s) { return TryParse(std::wstring(s.begin(), s.end())); } /** Like TryParse(), but only accepts language codes if they are known valid ISO 639/3166 codes. */ static Language TryParseWithValidation(const std::wstring& s); /** Tries to create the language from Poedit's legacy X-Poedit-Language and X-Poedit-Country headers. */ static Language FromLegacyNames(const std::string& lang, const std::string& country); /** Try to guess the language from filename, if the filename follows some commonly used naming pattern. */ static Language TryGuessFromFilename(const wxString& filename); /** Try to detect the language from UTF-8 text. Pass @a probableLanguage if the result is likely known, e.g. English for source texts. */ static Language TryDetectFromText(const char *buffer, size_t len, Language probableLanguage = Language()); /// Returns object for English language static Language English() { return Language("en"); } /** Checks if @a s has the form of language code. */ static bool IsValidCode(const std::wstring& s); bool operator==(const Language& other) const { return m_code == other.m_code; } bool operator!=(const Language& other) const { return m_code != other.m_code; } bool operator<(const Language& other) const { return m_code < other.m_code; } private: Language(const std::string& code) { Init(code); } Language(const std::wstring& code) { Init(std::string(code.begin(), code.end())); } void Init(const std::string& code); private: std::string m_code; std::string m_tag; TextDirection m_direction; }; #endif // Poedit_language_h poedit-2.0.6/src/languagectrl.cpp0000664000372000037200000001735713230131554013701 00000000000000/* * This file is part of Poedit (https://poedit.net) * * Copyright (C) 2013-2018 Vaclav Slavik * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * DEALINGS IN THE SOFTWARE. * */ #include "languagectrl.h" #include "str_helpers.h" #include "hidpi.h" #include #include #include #ifdef __WXOSX__ @interface LanguagesDataSource : NSObject @property const wxArrayString *data; @property NSArray* items; @end @implementation LanguagesDataSource - (id)initWithItems:(const wxArrayString*)items { self = [super init]; if (self) { self.data = items; NSMutableArray *a = [NSMutableArray arrayWithCapacity:items->size()]; for (auto i: *items) [a addObject:str::to_NS(i)]; self.items = a; } return self; } - (NSInteger)numberOfItemsInComboBox:(NSComboBox *)aComboBox; { #pragma unused(aComboBox) return [self.items count]; } - (id)comboBox:(NSComboBox *)aComboBox objectValueForItemAtIndex:(NSInteger)index; { #pragma unused(aComboBox) if (index >=0 && index < self.data->size()) return [self.items objectAtIndex:index]; else return @""; } - (NSUInteger)comboBox:(NSComboBox *)aComboBox indexOfItemWithStringValue:(NSString *)string; { #pragma unused(aComboBox) auto found = self.data->Index(str::to_wx(string), false/*case sensitive*/); return (found != wxNOT_FOUND) ? found : NSNotFound; } - (NSString *)comboBox:(NSComboBox *)aComboBox completedString:(NSString *)string; { #pragma unused(aComboBox) for (NSString *item in self.items) { if ([item compare:string options:NSCaseInsensitiveSearch|NSDiacriticInsensitiveSearch range:NSMakeRange(0, std::min([item length], [string length])) locale:[NSLocale currentLocale]] == NSOrderedSame) { return item; } } return nil; } @end struct LanguageCtrl::impl { impl(const wxArrayString& items_) { items = &items_; dataSource = [[LanguagesDataSource alloc] initWithItems:items]; } const wxArrayString *items; LanguagesDataSource *dataSource; }; int LanguageCtrl::FindString(const wxString& s, bool bCase) const { return m_impl->items->Index(s, bCase); } wxString LanguageCtrl::GetString(unsigned int n) const { return m_impl->items->Item(n); } #endif // __WXOSX__ IMPLEMENT_DYNAMIC_CLASS(LanguageCtrl, wxComboBox) LanguageCtrl::LanguageCtrl() : m_inited(false) { } LanguageCtrl::LanguageCtrl(wxWindow *parent, wxWindowID winid, Language lang) : wxComboBox(parent, winid) { Init(lang); } void LanguageCtrl::Init(Language lang) { SetHint(_("Language Code or Name (e.g. en_GB)")); // wxGTK must have the value set before autocompletion to avoid annoying // popups in some (hard to determine) cases. #ifdef __WXGTK__ if (lang.IsValid()) SetValue(lang.FormatForRoundtrip()); #endif static wxArrayString choices; if (choices.empty()) { for (auto x: Language::AllFormattedNames()) choices.push_back(x); } #ifdef __WXOSX__ m_impl.reset(new impl(choices)); NSComboBox *cb = (NSComboBox*) GetHandle(); cb.completes = YES; cb.usesDataSource = YES; cb.dataSource = m_impl->dataSource; #else Set(choices); AutoComplete(choices); #endif m_inited = true; // ...but wxMSW requires the opposite, otherwise the text wouldn't appear. #ifndef __WXGTK__ if (lang.IsValid()) SetValue(lang.FormatForRoundtrip()); #endif } void LanguageCtrl::SetLang(const Language& lang) { if (!m_inited) Init(lang); else SetValue(lang.FormatForRoundtrip()); } Language LanguageCtrl::GetLang() const { return Language::TryParse(GetValue().ToStdWstring()); } #ifdef __WXMSW__ wxSize LanguageCtrl::DoGetBestSize() const { // wxComboBox's implementation is insanely slow, at least on MSW. // Hardcode a value instead, it doesn't matter for Poedit's use anyway, // this control's best size is not the determining factor. return GetSizeFromTextSize(100); } #endif LanguageDialog::LanguageDialog(wxWindow *parent) : wxDialog(parent, wxID_ANY, _("Translation Language")), m_validatedLang(-1) { auto lang = GetLastChosen(); auto sizer = new wxBoxSizer(wxVERTICAL); auto label = new wxStaticText(this, wxID_ANY, _("Language of the translation:")); m_language = new LanguageCtrl(this, wxID_ANY, lang); m_language->SetMinSize(wxSize(PX(300),-1)); auto buttons = CreateButtonSizer(wxOK | wxCANCEL); #ifdef __WXOSX__ sizer->AddSpacer(PX(10)); sizer->Add(label, wxSizerFlags().PXBorderAll()); sizer->Add(m_language, wxSizerFlags().Expand().PXDoubleBorder(wxLEFT|wxRIGHT)); sizer->Add(buttons, wxSizerFlags().Expand()); #else sizer->AddSpacer(PX(10)); sizer->Add(label, wxSizerFlags().PXDoubleBorder(wxLEFT|wxRIGHT)); sizer->Add(m_language, wxSizerFlags().Expand().PXDoubleBorder(wxLEFT|wxRIGHT)); sizer->Add(buttons, wxSizerFlags().Expand().PXBorderAll()); #endif m_language->Bind(wxEVT_TEXT, [=](wxCommandEvent& e){ m_validatedLang = -1; e.Skip(); }); m_language->Bind(wxEVT_COMBOBOX, [=](wxCommandEvent& e){ m_validatedLang = -1; e.Skip(); }); Bind(wxEVT_UPDATE_UI, [=](wxUpdateUIEvent& e){ e.Enable(Validate()); }, wxID_OK); SetSizerAndFit(sizer); CenterOnParent(); m_language->SetFocus(); #ifdef __WXOSX__ // Workaround wx bug: http://trac.wxwidgets.org/ticket/9521 m_language->SelectAll(); // Workaround broken Enter handling: Bind(wxEVT_CHAR_HOOK, [=](wxKeyEvent& e){ if (e.GetKeyCode() == WXK_RETURN) { auto button = GetDefaultItem(); wxCommandEvent event(wxEVT_BUTTON, button->GetId()); event.SetEventObject(button); button->ProcessWindowEvent(event); } else { e.Skip(); } }); #endif // __WXOSX__ } bool LanguageDialog::Validate() { if (m_validatedLang == -1) { m_validatedLang = m_language->IsValid() ? 1 : 0; } return m_validatedLang == 1; } void LanguageDialog::EndModal(int retval) { if (retval == wxID_OK) { SetLastChosen(GetLang()); } wxDialog::EndModal(retval); } void LanguageDialog::SetLang(const Language& lang) { m_validatedLang = -1; m_language->SetLang(lang); } Language LanguageDialog::GetLastChosen() { wxString langcode = wxConfigBase::Get()->Read("/last_translation_lang", ""); Language lang; if (!langcode.empty()) lang = Language::TryParse(langcode.ToStdWstring()); return lang; } void LanguageDialog::SetLastChosen(Language lang) { wxConfigBase::Get()->Write("/last_translation_lang", lang.Code().c_str()); } poedit-2.0.6/src/concurrency.h0000664000372000037200000004044513230131554013222 00000000000000/* * This file is part of Poedit (https://poedit.net) * * Copyright (C) 2010-2018 Vaclav Slavik * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * DEALINGS IN THE SOFTWARE. * */ #ifndef Poedit_concurrency_h #define Poedit_concurrency_h #if defined(__WXOSX__) && defined(__clang__) #define HAVE_DISPATCH #endif #if defined(_MSC_VER) && (_MSC_VER >= 1800) #define HAVE_PPL #define USE_PPL_DISPATCH #endif #define BOOST_CHRONO_HEADER_ONLY #define BOOST_THREAD_VERSION 4 #define BOOST_THREAD_PROVIDES_EXECUTORS #include #include #include #include #if !defined(HAVE_DISPATCH) && !defined(USE_PPL_DISPATCH) #include #endif #if defined(HAVE_PPL) #if defined(_MSC_VER) #include #include namespace pplx = Concurrency; #else #include #endif #endif #include #include #include #include namespace dispatch { // forward declarations template class future; // implementation details namespace detail { class custom_executor : public boost::executors::executor { public: custom_executor() : m_closed(false) {} void close() override { std::lock_guard lock(m_mutex); m_closed = true; } bool closed() override { std::lock_guard lock(m_mutex); return m_closed; } bool try_executing_one() override { return false; } private: std::mutex m_mutex; bool m_closed; }; #if defined(HAVE_DISPATCH) enum class queue { main, priority_default }; extern void dispatch_async_cxx(boost::executors::work&& f, queue q = queue::priority_default); class background_queue_executor : public custom_executor { public: static background_queue_executor& get(); void submit(work&& closure) override { dispatch_async_cxx(std::forward(closure)); } }; #elif defined(USE_PPL_DISPATCH) class background_queue_executor : public custom_executor { public: static background_queue_executor& get(); void submit(work&& closure) { pplx::create_task([f{std::move(closure)}]() mutable { f(); }); } }; #else // !HAVE_DISPATCH && !USE_PPL_DISPATCH class background_queue_executor : public boost::basic_thread_pool { public: static background_queue_executor& get(); }; #endif // HAVE_DISPATCH etc. class main_thread_executor : public custom_executor { public: static main_thread_executor& get(); void submit(work&& closure) { #ifdef HAVE_DISPATCH dispatch_async_cxx(std::forward(closure), queue::main); #else wxTheApp->CallAfter(std::forward(closure)); #endif } }; // Helper exception for when then_on_window() isn't called because the wxWindow // was already dismissed by the user class window_dismissed : public std::exception { }; // Determines continuation's argument type // (with thanks to http://stackoverflow.com/a/21486468/237188) template struct argument_type : public argument_type { }; template struct argument_type { using arg0_type = void; }; template struct argument_type { using arg0_type = typename std::tuple_element<0, std::tuple>::type; }; // Helper for calling a continuation. Unpacks futures for continuations that // take the value as its argument and leaves it unmodified for those that take // a future argument. template struct continuation_calling_helper { static T unpack_arg(boost::future&& arg) { return arg.get(); } }; template struct continuation_calling_helper> { static boost::future unpack_arg(boost::future&& arg) { return std::move(arg); } }; template<> struct continuation_calling_helper { static void touch_arg(boost::future& arg) { arg.get(); } }; // Helper to unwrap dispatch::futures into boost::futures so that implicit // unwrapping of boost::future> into boost::future works template struct future_unwrapper { typedef T type; typedef T return_type; template static return_type call_and_unwrap(F&& f, Args&&... args) { return f(std::forward(args)...); } }; template<> struct future_unwrapper { typedef void type; typedef void return_type; template static void call_and_unwrap(F&& f, Args&&... args) { f(std::forward(args)...); } }; template struct future_unwrapper> { typedef T type; typedef boost::future return_type; template static return_type call_and_unwrap(F&& f, Args&&... args) { return f(std::forward(args)...).move_to_boost(); } }; template inline auto call_and_unwrap_if_future(F&& f, Args&&... args) -> typename future_unwrapper::type>::return_type { return future_unwrapper::type>::call_and_unwrap(std::forward(f), std::forward(args)...); } } // namespace detail // ---------------------------------------------------------------------- // Tasks (aka futures) // ---------------------------------------------------------------------- using boost::exception_ptr; using boost::future_status; template using promise = boost::promise; exception_ptr current_exception(); // Can't use std::current_exception with boost::promise, must use boost // version instead. This helper takes care of it. template void set_current_exception(boost::promise& pr) { pr.set_exception(current_exception()); } template void set_current_exception(std::shared_ptr> pr) { set_current_exception(*pr); } template class future_base { public: future_base() {} future_base(FutureType&& future) : f_(std::move(future.m_future)) {} future_base(boost::future&& future) : f_(std::move(future)) {} future_base(boost::future>&& future) : f_(future.unwrap()) {} FutureType& operator=(FutureType&& other) { f_ = std::move(other.f_); } FutureType& operator=(const FutureType& other) = delete; void wait() const { f_.wait(); } template future_status wait_for(const boost::chrono::duration& timeout_duration) const { return f_.wait_for(timeout_duration); } bool valid() const { return f_.valid(); } // Convenient async exception catching: template auto catch_ex(F&& continuation) -> future; template auto catch_all(F&& continuation) -> future; boost::future move_to_boost() { return std::move(f_); } protected: boost::future f_; }; /// More advanced wrapper around boost::future template class future : public future_base> { public: future() {} using future_base>::future_base; #ifdef HAVE_PPL future(pplx::task&& task) { auto pr = std::make_shared>(); this->f_ = pr->get_future(); task.then([pr](pplx::task x) { try { pr->set_value(x.get()); } catch (...) { set_current_exception(pr); } }); } #endif T get() { return this->f_.get(); } template auto then(F&& continuation) -> future::type>::type> { typedef detail::continuation_calling_helper::type>::arg0_type> cch; return this->f_.then(detail::background_queue_executor::get(), [f{std::move(continuation)}](boost::future x){ return detail::call_and_unwrap_if_future(f, cch::unpack_arg(std::move(x))); }); } template auto then_on_main(F&& continuation) -> future::type>::type> { typedef detail::continuation_calling_helper::type>::arg0_type> cch; return this->f_.then(detail::main_thread_executor::get(), [f{std::move(continuation)}](boost::future x) { return detail::call_and_unwrap_if_future(f, cch::unpack_arg(std::move(x))); }); } template auto then_on_window(Window *self, F&& continuation) -> future::type>::type> { typedef detail::continuation_calling_helper::type>::arg0_type> cch; wxWeakRef weak(self); return this->f_.then(detail::main_thread_executor::get(), [weak, f{std::move(continuation)}](boost::future x){ if (weak) return detail::call_and_unwrap_if_future(f, cch::unpack_arg(std::move(x))); else BOOST_THROW_EXCEPTION(detail::window_dismissed()); }); }; template auto then_on_window(Window *self, void (Window::*method)(T)) { return then_on_window(self, [self,method](T x) { ((*self).*method)(x); }); } }; template<> class future : public future_base> { public: future() {} using future_base>::future_base; #ifdef HAVE_PPL future(pplx::task&& task) { auto pr = std::make_shared>(); this->f_ = pr->get_future(); task.then([pr](pplx::task x) { try { x.get(); pr->set_value(); } catch (...) { set_current_exception(pr); } }); } #endif void get() { this->f_.get(); } template auto then(F&& continuation) -> future::type>::type> { typedef detail::continuation_calling_helper::type>::arg0_type> cch; return this->f_.then(detail::background_queue_executor::get(), [f{std::move(continuation)}](boost::future x){ cch::touch_arg(x); return detail::call_and_unwrap_if_future(f); }); } template auto then_on_main(F&& continuation) -> future::type>::type> { typedef detail::continuation_calling_helper::type>::arg0_type> cch; return this->f_.then(detail::main_thread_executor::get(), [f{std::move(continuation)}](boost::future x){ cch::touch_arg(x); detail::call_and_unwrap_if_future(f); }); } template auto then_on_window(Window *self, F&& continuation) -> future::type>::type> { typedef detail::continuation_calling_helper::type>::arg0_type> cch; wxWeakRef weak(self); return this->f_.then(detail::main_thread_executor::get(), [weak, f{std::move(continuation)}](boost::future x){ if (weak) { cch::touch_arg(x); detail::call_and_unwrap_if_future(f); } else BOOST_THROW_EXCEPTION(detail::window_dismissed()); }); }; template auto then_on_window(Window *self, void (Window::*method)()) { return then_on_window(self, [self,method]() { ((*self).*method)(); }); } private: boost::future m_future; }; template template auto future_base::catch_ex(F&& continuation) -> future { return f_.then(detail::main_thread_executor::get(), [f{std::forward(continuation)}](boost::future x) { try { x.get(); } catch (Ex& ex) { f(ex); } }); } template template auto future_base::catch_all(F&& continuation) -> future { return f_.then(detail::main_thread_executor::get(), [f{std::forward(continuation)}](boost::future x) { try { x.get(); } catch (detail::window_dismissed&) { // ignore this one, it's not an error } catch (...) { f(dispatch::current_exception()); } }); } /// Create ready future, i.e. with directly set value template auto make_ready_future(T&& value) -> future { return boost::make_ready_future(std::forward(value)); } inline future make_ready_future() { return boost::make_ready_future(); } template auto make_exceptional_future_from_current() -> future { promise p; set_current_exception(p); return p.get_future(); } template auto make_exceptional_future(exception_ptr ex) -> future { promise p; p.set_exception(ex); return p.get_future(); } /// Chaining of promises template void fulfill_promise_from_future(std::shared_ptr> p, future&& f) { f.then([p](future val) { try { p->set_value(val.get()); } catch (...) { set_current_exception(p); } }); } /// Enqueue an operation for background processing. template inline auto async(F&& f) -> future::type>::type> { return {boost::async(detail::background_queue_executor::get(), [f{std::forward(f)}]() { return detail::call_and_unwrap_if_future(f); })}; } /// Run an operation on the main thread. template inline auto on_main(F&& f) -> future::type>::type> { return {boost::async(detail::main_thread_executor::get(), [f{std::forward(f)}]() { return detail::call_and_unwrap_if_future(f); })}; } /// @internal Call on shutdown to terminate queues and close executors extern void cleanup(); } // namespace dispatch #endif // Poedit_concurrency_h poedit-2.0.6/src/json.h0000664000372000037200000000311713230131554011634 00000000000000/* * This file is part of Poedit (https://poedit.net) * * Copyright (C) 2016-2017 Vaclav Slavik * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * DEALINGS IN THE SOFTWARE. * */ #ifndef Poedit_json_h #define Poedit_json_h #include "str_helpers.h" #ifdef HAVE_JSON_HPP #include #else #include "json/src/json.hpp" #endif using json = nlohmann::json; namespace str { inline std::wstring to_wstring(const json& x) { return to_wstring(x.get()); } inline std::wstring to_wstring(json&& x) { return to_wstring(x.get()); } } #endif // Poedit_json_h poedit-2.0.6/src/wx/0000775000372000037200000000000013230132101011213 500000000000000poedit-2.0.6/src/wx/main_toolbar.cpp0000664000372000037200000000673413230131554014332 00000000000000/* * This file is part of Poedit (https://poedit.net) * * Copyright (C) 2014-2018 Vaclav Slavik * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * DEALINGS IN THE SOFTWARE. * */ #include "main_toolbar.h" #include "hidpi.h" #include "utility.h" #include "unicode_helpers.h" #include #include #include #include #ifdef __WXMSW__ #include #endif class WXMainToolbar : public MainToolbar { public: WXMainToolbar(wxFrame *parent) { m_tb = wxXmlResource::Get()->LoadToolBar(parent, "toolbar"); m_idUpdate = XRCID("toolbar_update"); #ifdef __WXMSW__ // De-uglify the toolbar a bit on Windows 10: if (IsWindows10OrGreater()) { const wxUxThemeEngine* theme = wxUxThemeEngine::GetIfActive(); if (theme) { wxUxThemeHandle hTheme(m_tb, L"ExplorerMenu::Toolbar"); m_tb->SetBackgroundColour(wxRGBToColour(theme->GetThemeSysColor(hTheme, COLOR_WINDOW))); } unsigned padding = PX(4); ::SendMessage((HWND) m_tb->GetHWND(), TB_SETPADDING, 0, MAKELPARAM(padding, padding)); } m_tb->SetDoubleBuffered(true); #endif } void EnableSyncWithCrowdin(bool on) override { auto tool = m_tb->FindById(m_idUpdate); if (on) { tool->SetLabel(_("Sync")); tool->SetShortHelp(_("Synchronize the translation with Crowdin")); m_tb->SetToolNormalBitmap(m_idUpdate, wxArtProvider::GetBitmap("poedit-sync", wxART_TOOLBAR)); #ifdef __WXMSW__ m_tb->SetToolDisabledBitmap(m_idUpdate, wxArtProvider::GetBitmap("poedit-sync@disabled", wxART_TOOLBAR)); #endif } else { tool->SetLabel(_("Update")); tool->SetShortHelp(_("Update catalog - synchronize it with sources")); m_tb->SetToolNormalBitmap(m_idUpdate, wxArtProvider::GetBitmap("poedit-update", wxART_TOOLBAR)); #ifdef __WXMSW__ m_tb->SetToolDisabledBitmap(m_idUpdate, wxArtProvider::GetBitmap("poedit-update@disabled", wxART_TOOLBAR)); #endif } } private: wxToolBar *m_tb; int m_idUpdate; }; std::unique_ptr MainToolbar::CreateWX(wxFrame *parent) { return std::unique_ptr(new WXMainToolbar(parent)); } std::unique_ptr MainToolbar::Create(wxFrame *parent) { return CreateWX(parent); } poedit-2.0.6/src/crowdin_client.cpp0000664000372000037200000002170413230131554014223 00000000000000/* * This file is part of Poedit (https://poedit.net) * * Copyright (C) 2015-2018 Vaclav Slavik * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * DEALINGS IN THE SOFTWARE. * */ #include "crowdin_client.h" #include "http_client.h" #include "keychain/keytar.h" #include "str_helpers.h" #include #include #include #include #include // GCC's libstdc++ didn't have functional std::regex implementation until 4.9 #if (defined(__GNUC__) && !defined(__clang__) && !wxCHECK_GCC_VERSION(4,9)) #include using boost::regex; using boost::regex_search; using boost::smatch; #else #include using std::regex; using std::regex_search; using std::smatch; #endif // ---------------------------------------------------------------- // Implementation // ---------------------------------------------------------------- namespace { #define OAUTH_CLIENT_ID "poedit-y1aBMmDbm3s164dtJ4Ur150e2" #define OAUTH_AUTHORIZE_URL "/oauth2/authorize?response_type=token&client_id=" OAUTH_CLIENT_ID #define OAUTH_URI_PREFIX "poedit://auth/crowdin/" // Recursive extract files from /api/project/*/info response void ExtractFilesFromInfo(std::vector& out, const json& r, const std::wstring& prefix) { for (auto i : r["files"]) { std::wstring name = prefix + str::to_wstring(i["name"]); std::string node_type = i["node_type"]; if (node_type == "file") { out.push_back(name); } else if (node_type == "directory" || node_type == "branch") { ExtractFilesFromInfo(out, i, name + L"/"); } } } } // anonymous namespace std::string CrowdinClient::WrapLink(const std::string& page) { std::string url("https://poedit.net/crowdin"); if (!page.empty() && page != "/") url += "?u=" + http_client::url_encode(page); return url; } class CrowdinClient::crowdin_http_client : public http_client { public: crowdin_http_client(CrowdinClient& owner) : http_client("https://api.crowdin.com"), m_owner(owner) {} protected: std::string parse_json_error(const json& response) const override { std::string msg = response["error"]["message"]; // Translate commonly encountered messages: if (msg == "Translations download is forbidden by project owner") msg = _("Downloading translations is disabled in this project.").utf8_str(); return msg; } void on_error_response(int& statusCode, std::string& message) override { if (statusCode == 401/*Unauthorized*/) { // message is e.g. "The access token provided is invalid" message = _("Not authorized, please sign in again.").utf8_str(); m_owner.SignOut(); } } CrowdinClient& m_owner; }; CrowdinClient::CrowdinClient() : m_api(new crowdin_http_client(*this)) { SignInIfAuthorized(); } CrowdinClient::~CrowdinClient() {} dispatch::future CrowdinClient::Authenticate() { auto url = WrapLink(OAUTH_AUTHORIZE_URL); m_authCallback.reset(new dispatch::promise); wxLaunchDefaultBrowser(url); return m_authCallback->get_future(); } void CrowdinClient::HandleOAuthCallback(const std::string& uri) { if (!m_authCallback) return; const regex re("access_token=([^&]+)&"); smatch m; if (!regex_search(uri, m, re)) return; SaveAndSetToken(m.str(1)); m_authCallback->set_value(); m_authCallback.reset(); } bool CrowdinClient::IsOAuthCallback(const std::string& uri) { return boost::starts_with(uri, OAUTH_URI_PREFIX); } dispatch::future CrowdinClient::GetUserInfo() { return m_api->get("/api/account/profile?json=") .then([](json r) { json profile = r["profile"]; UserInfo u; u.login = str::to_wstring(profile["login"]); u.name = !profile["name"].is_null() ? str::to_wstring(profile["name"]) : u.login; return u; }); } dispatch::future> CrowdinClient::GetUserProjects() { return m_api->get("/api/account/get-projects?json=&role=all") .then([](json r) { std::vector all; for (auto i : r["projects"]) { all.push_back({ str::to_wstring(i["name"]), i["identifier"], (bool)i["downloadable"].get() }); } return all; }); } dispatch::future CrowdinClient::GetProjectInfo(const std::string& project_id) { auto url = "/api/project/" + project_id + "/info?json=&project-identifier=" + project_id; return m_api->get(url) .then([](json r){ ProjectInfo prj; auto details = r["details"]; prj.name = str::to_wstring(details["name"]); prj.identifier = details["identifier"]; for (auto i : r["languages"]) { if (i["can_translate"].get() != 0) prj.languages.push_back(Language::TryParse(str::to_wstring(i["code"]))); } ExtractFilesFromInfo(prj.files, r, L"/"); return prj; }); } dispatch::future CrowdinClient::DownloadFile(const std::string& project_id, const std::wstring& file, const Language& lang, const std::wstring& output_file) { // NB: "export_translated_only" means the translation is not filled with the source string // if there's no translation, i.e. what Poedit wants. auto url = "/api/project/" + project_id + "/export-file" "?json=" "&export_translated_only=1" "&language=" + lang.LanguageTag() + "&file=" + http_client::url_encode(file); return m_api->download(url, output_file); } dispatch::future CrowdinClient::UploadFile(const std::string& project_id, const std::wstring& file, const Language& lang, const std::string& file_content) { auto url = "/api/project/" + project_id + "/upload-translation"; multipart_form_data data; data.add_value("json", ""); data.add_value("language", lang.LanguageTag()); data.add_value("import_duplicates", "0"); data.add_value("import_eq_suggestions", "0"); data.add_file("files[" + str::to_utf8(file) + "]", "upload.po", file_content); return m_api->post(url, data).then([](json){}); } bool CrowdinClient::IsSignedIn() const { std::string token; return keytar::GetPassword("Crowdin", "", &token); } void CrowdinClient::SignInIfAuthorized() { std::string token; if (keytar::GetPassword("Crowdin", "", &token)) SetToken(token); } void CrowdinClient::SetToken(const std::string& token) { m_api->set_authorization(!token.empty() ? "Bearer " + token : ""); } void CrowdinClient::SaveAndSetToken(const std::string& token) { SetToken(token); keytar::AddPassword("Crowdin", "", token); } void CrowdinClient::SignOut() { m_api->set_authorization(""); keytar::DeletePassword("Crowdin", ""); } // ---------------------------------------------------------------- // Singleton management // ---------------------------------------------------------------- static std::once_flag initializationFlag; CrowdinClient* CrowdinClient::ms_instance = nullptr; CrowdinClient& CrowdinClient::Get() { std::call_once(initializationFlag, []() { ms_instance = new CrowdinClient; }); return *ms_instance; } void CrowdinClient::CleanUp() { if (ms_instance) { delete ms_instance; ms_instance = nullptr; } } poedit-2.0.6/src/str_helpers.h0000664000372000037200000001274213230131554013221 00000000000000/* * This file is part of Poedit (https://poedit.net) * * Copyright (C) 2013-2018 Vaclav Slavik * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * DEALINGS IN THE SOFTWARE. * */ #ifndef Poedit_str_helpers_h #define Poedit_str_helpers_h #include #include #ifdef __OBJC__ #include #endif #include #include /** Defines conversions between various string types. Supported string classes are std::wstring, std::string (UTF-8 encoded), wxString and icu::UnicodeString. Usage: - to_wx(...) - to_icu(...) - to_wstring(...) - to_utf8(...) - to_NSString() */ namespace str { inline std::string to_utf8(const std::wstring& str) { return boost::locale::conv::utf_to_utf(str); } inline std::string to_utf8(const wchar_t *str) { return boost::locale::conv::utf_to_utf(str); } inline std::wstring to_wstring(const std::string& utf8str) { return boost::locale::conv::utf_to_utf(utf8str); } inline std::string to_utf8(const wxString& str) { return std::string(str.utf8_str()); } inline std::wstring to_wstring(const wxString& str) { return str.ToStdWstring(); } #if defined(__cplusplus) && defined(__OBJC__) inline NSString *to_NS(const wxString& str) { return [NSString stringWithUTF8String:str.utf8_str()]; } inline wxString to_wx(NSString *str) { return wxString::FromUTF8Unchecked([str UTF8String]); } inline NSString *to_NS(const std::string& utf8str) { return [NSString stringWithUTF8String:utf8str.c_str()]; } inline NSString *to_NS(const char *utf8str) { return [NSString stringWithUTF8String:utf8str]; } inline std::string to_utf8(NSString *str) { return std::string([str UTF8String]); } inline NSString *to_NS(const std::wstring& str) { return to_NS(to_utf8(str)); } inline std::wstring to_wstring(NSString *str) { return boost::locale::conv::utf_to_utf([str UTF8String]); } #endif // Objective-C++ // ICU conversions; only include them if ICU is included #ifdef UNISTR_H /** Create read-only icu::UnicodeString from wxString efficiently. Notice that the resulting string is only valid for the input wxString's lifetime duration, unless you make a copy. */ inline icu::UnicodeString to_icu(const wxString& str) { #if wxUSE_UNICODE_UTF8 return icu::UnicodeString::fromUTF8((const char*)str.utf8_str()); #elif SIZEOF_WCHAR_T == 4 return icu::UnicodeString::fromUTF32((const UChar32*)str.wx_str(), (int32_t)str.length()); #elif SIZEOF_WCHAR_T == 2 // read-only aliasing ctor, doesn't copy data return icu::UnicodeString(true, str.wx_str(), str.length()); #else #error "WTF?!" #endif } /** Create read-only icu::UnicodeString from std::wstring efficiently. Notice that the resulting string is only valid for the input std::wstring's lifetime duration, unless you make a copy. */ inline icu::UnicodeString to_icu(const std::wstring& str) { #if SIZEOF_WCHAR_T == 4 return icu::UnicodeString::fromUTF32((const UChar32*) str.c_str(), (int32_t) str.length()); #elif SIZEOF_WCHAR_T == 2 // read-only aliasing ctor, doesn't copy data return icu::UnicodeString(true, str.c_str(), str.length()); #else #error "WTF?!" #endif } /// Create wxString from icu::UnicodeString, making a copy. inline wxString to_wx(const icu::UnicodeString& str) { #if wxUSE_UNICODE_WCHAR && SIZEOF_WCHAR_T == 2 return wxString(str.getBuffer(), str.length()); #else return wxString((const char*)str.getBuffer(), wxMBConvUTF16(), str.length() * 2); #endif } /// Create std::wstring from icu::UnicodeString, making a copy. inline std::wstring to_wstring(const icu::UnicodeString& str) { return to_wx(str).ToStdWstring(); } #endif // UNISTR_H // Low-level ICU conversions: #ifdef U_SIZEOF_UCHAR /** Create buffer with raw UChar* string. Notice that the resulting string is only valid for the input's lifetime. */ inline wxScopedCharTypeBuffer to_icu_raw(const wxString& str) { static_assert(U_SIZEOF_UCHAR == 2, "unexpected UChar size"); #if SIZEOF_WCHAR_T == 2 // read-only aliasing ctor, doesn't copy data return wxScopedCharTypeBuffer::CreateNonOwned((const UChar*)str.wx_str(), str.length()); #else auto buf = wxMBConvUTF16().cWC2MB(str.wc_str()); auto len = buf.length(); return wxCharTypeBuffer::CreateOwned((wxChar16*)buf.release(), len); #endif } #endif // U_SIZEOF_UCHAR } // namespace str #endif // Poedit_str_helpers_h poedit-2.0.6/src/http_client_casablanca.cpp0000664000372000037200000002744413230131554015674 00000000000000/* * This file is part of Poedit (https://poedit.net) * * Copyright (C) 2014-2018 Vaclav Slavik * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * DEALINGS IN THE SOFTWARE. * */ #include "http_client.h" #include "version.h" #include "str_helpers.h" #include #include #include #include #include #include #include #include #include #include #include #ifdef _WIN32 #include #include #include #pragma comment(lib, "ole32.lib") // can't include both winhttp.h and wininet.h, so put a declaration here //#include EXTERN_C DECLSPEC_IMPORT BOOL STDAPICALLTYPE InternetGetConnectedState(__out LPDWORD lpdwFlags, __reserved DWORD dwReserved); #endif namespace { using namespace web; using utility::string_t; using utility::conversions::to_string_t; #ifndef _UTF16_STRINGS inline string_t to_string_t(const std::wstring& s) { return str::to_utf8(s); } #endif class gzip_compression_support : public http::http_pipeline_stage { public: pplx::task propagate(http::http_request request) override { request.headers().add(http::header_names::accept_encoding, L"gzip"); return next_stage()->propagate(request).then([](http::http_response response) -> pplx::task { string_t encoding; if (response.headers().match(http::header_names::content_encoding, encoding) && encoding == _XPLATSTR("gzip")) { return response.extract_vector().then([response](std::vector compressed) mutable -> http::http_response { namespace io = boost::iostreams; io::array_source source(reinterpret_cast(compressed.data()), compressed.size()); io::filtering_istream in; in.push(io::gzip_decompressor()); in.push(source); std::vector decompressed; io::back_insert_device> sink(decompressed); io::copy(in, sink); response.set_body(concurrency::streams::bytestream::open_istream(std::move(decompressed)), decompressed.size()); return response; }); } else { return pplx::task_from_result(response); } }); } }; } // anonymous namespace class http_client::impl { public: impl(http_client& owner, const std::string& url_prefix, int flags) : m_owner(owner), m_native ( sanitize_url(url_prefix, flags) #ifdef _WIN32 , get_client_config() #endif ) { #define make_wide_str(x) make_wide_str_(x) #define make_wide_str_(x) L ## x #if defined(_WIN32) #define USER_AGENT_PLATFORM L" (Windows NT " + windows_version() + L")" #elif defined(__unix__) #define USER_AGENT_PLATFORM L" (Unix)" #else #define USER_AGENT_PLATFORM #endif m_userAgent = L"Poedit/" make_wide_str(POEDIT_VERSION) USER_AGENT_PLATFORM; std::shared_ptr gzip_stage = std::make_shared(); m_native.add_handler(gzip_stage); #ifdef _WIN32 m_networkListManager = nullptr; CoCreateInstance(CLSID_NetworkListManager, NULL, CLSCTX_ALL, IID_INetworkListManager, (LPVOID *)&m_networkListManager); #endif } ~impl() { #ifdef _WIN32 if (m_networkListManager) m_networkListManager->Release(); #endif } static string_t ui_language; bool is_reachable() const { #ifdef _WIN32 if (m_networkListManager) { NLM_CONNECTIVITY result; HRESULT hr = m_networkListManager->GetConnectivity(&result); if (SUCCEEDED(hr)) return result & (NLM_CONNECTIVITY_IPV4_INTERNET|NLM_CONNECTIVITY_IPV6_INTERNET); } // manager fallback (IPv6 ignorant): DWORD flags; return ::InternetGetConnectedState(&flags, 0); #else return true; // TODO #endif } void set_authorization(const std::string& auth) { m_auth = std::wstring(auth.begin(), auth.end()); } dispatch::future<::json> get(const std::string& url) { http::http_request req(http::methods::GET); req.headers().add(http::header_names::accept, L"application/json"); req.headers().add(http::header_names::user_agent, m_userAgent); req.headers().add(http::header_names::accept_language, ui_language); if (!m_auth.empty()) req.headers().add(http::header_names::authorization, m_auth); req.set_request_uri(to_string_t(url)); return m_native.request(req) .then([=](http::http_response response) { handle_error(response); return ::json::parse(response.extract_utf8string().get()); }); } dispatch::future download(const std::string& url, const std::wstring& output_file) { using namespace concurrency::streams; auto fileStream = std::make_shared(); return fstream::open_ostream(to_string_t(output_file)).then([=](ostream outFile) { *fileStream = outFile; http::http_request req(http::methods::GET); req.headers().add(http::header_names::user_agent, m_userAgent); req.headers().add(http::header_names::accept_language, ui_language); if (!m_auth.empty()) req.headers().add(http::header_names::authorization, m_auth); req.set_request_uri(to_string_t(url)); return m_native.request(req); }) .then([=](http::http_response response) { handle_error(response); return response.body().read_to_end(fileStream->streambuf()); }) .then([=](size_t) { return fileStream->close(); }); } dispatch::future<::json> post(const std::string& url, const http_body_data& data) { http::http_request req(http::methods::POST); req.headers().add(http::header_names::accept, L"application/json"); req.headers().add(http::header_names::user_agent, m_userAgent); req.headers().add(http::header_names::accept_language, ui_language); if (!m_auth.empty()) req.headers().add(http::header_names::authorization, m_auth); req.set_request_uri(to_string_t(url)); auto body = data.body(); req.set_body(body, data.content_type()); req.headers().set_content_length(body.size()); return m_native.request(req) .then([=](http::http_response response) { handle_error(response); return ::json::parse(response.extract_utf8string().get()); }); } private: // handle non-OK responses: void handle_error(http::http_response r) { if (r.status_code() >= 200 && r.status_code() < 300) return; // not an error int status_code = r.status_code(); std::string msg; if (r.headers().content_type() == L"application/json") { try { auto json = ::json::parse(r.extract_utf8string().get()); msg = m_owner.parse_json_error(json); } catch (...) {} // report original error if parsing broken } if (msg.empty()) msg = str::to_utf8(r.reason_phrase()); m_owner.on_error_response(status_code, msg); BOOST_THROW_EXCEPTION(http::http_exception(status_code, msg)); } // convert to wstring static string_t sanitize_url(const std::string& url, int /*flags*/) { return to_string_t(url); } #ifdef _WIN32 // prepare WinHttp configuration static http::client::http_client_config get_client_config() { http::client::http_client_config c; // WinHttp doesn't share WinInet/MSIE's proxy settings and has its own, // but many users don't have properly configured both. Adopting proxy // settings like this in desktop software is recommended behavior, see // https ://blogs.msdn.microsoft.com/ieinternals/2013/10/11/understanding-web-proxy-configuration/ WINHTTP_CURRENT_USER_IE_PROXY_CONFIG ieConfig = { 0 }; if (WinHttpGetIEProxyConfigForCurrentUser(&ieConfig)) { if (ieConfig.fAutoDetect) { c.set_proxy(web_proxy::use_auto_discovery); } if (ieConfig.lpszProxy) { // Explicitly add // to the URL to work around a bug in C++ REST SDK's // parsing of proxies with port number in their address // (see https://github.com/Microsoft/cpprestsdk/issues/57) c.set_proxy(uri(L"//" + std::wstring(ieConfig.lpszProxy))); } } return c; } static std::wstring windows_version() { OSVERSIONINFOEX info = { 0 }; info.dwOSVersionInfoSize = sizeof(info); NTSTATUS(WINAPI *fRtlGetVersion)(LPOSVERSIONINFOEXW); fRtlGetVersion = reinterpret_cast(GetProcAddress(GetModuleHandleA("ntdll"), "RtlGetVersion")); if (fRtlGetVersion) fRtlGetVersion(&info); return std::to_wstring(info.dwMajorVersion) + L"." + std::to_wstring(info.dwMinorVersion); } INetworkListManager *m_networkListManager; #endif http_client& m_owner; http::client::http_client m_native; std::wstring m_userAgent; std::wstring m_auth; }; string_t http_client::impl::ui_language; http_client::http_client(const std::string& url_prefix, int flags) : m_impl(new impl(*this, url_prefix, flags)) { } http_client::~http_client() { } void http_client::set_ui_language(const std::string& lang) { impl::ui_language = to_string_t(lang); } bool http_client::is_reachable() const { return m_impl->is_reachable(); } void http_client::set_authorization(const std::string& auth) { m_impl->set_authorization(auth); } dispatch::future<::json> http_client::get(const std::string& url) { return m_impl->get(url); } dispatch::future http_client::download(const std::string& url, const std::wstring& output_file) { return m_impl->download(url, output_file); } dispatch::future<::json> http_client::post(const std::string& url, const http_body_data& data) { return m_impl->post(url, data); } poedit-2.0.6/src/chooselang.cpp0000664000372000037200000000534713230131554013347 00000000000000/* * This file is part of Poedit (https://poedit.net) * * Copyright (C) 2003-2018 Vaclav Slavik * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * DEALINGS IN THE SOFTWARE. * */ #include "chooselang.h" #if NEED_CHOOSELANG_UI #include "language.h" #include #include #include static void SaveUILanguage(const wxString& lang) { if (lang.empty()) wxConfig::Get()->Write("ui_language", "default"); else wxConfig::Get()->Write("ui_language", lang); } wxString GetUILanguage() { wxString lng = wxConfig::Get()->Read("ui_language"); if (!lng.empty() && lng != "default") return lng; else return ""; } static bool ChooseLanguage(wxString *value) { wxArrayString langs; wxArrayString arr; { wxBusyCursor bcur; langs = wxTranslations::Get()->GetAvailableTranslations("poedit"); arr.push_back(_("(Use default language)")); for (auto i : langs) { auto lang = Language::TryParse(i.ToStdWstring()); arr.push_back(lang.DisplayNameInItself() + L" — " + lang.DisplayName()); } } int choice = wxGetSingleChoiceIndex( _("Select your preferred language"), _("Language selection"), arr); if ( choice == -1 ) return false; if ( choice == 0 ) *value = ""; else *value = langs[choice-1]; return true; } void ChangeUILanguage() { wxString lang; if ( !ChooseLanguage(&lang) ) return; SaveUILanguage(lang); wxMessageBox(_("You must restart Poedit for this change to take effect."), "Poedit", wxOK | wxCENTRE | wxICON_INFORMATION); } #endif // NEED_CHOOSELANG_UI poedit-2.0.6/src/edapp.h0000664000372000037200000001161213230131554011753 00000000000000/* * This file is part of Poedit (https://poedit.net) * * Copyright (C) 1999-2018 Vaclav Slavik * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * DEALINGS IN THE SOFTWARE. * */ #ifndef _EDAPP_H_ #define _EDAPP_H_ #include #include #include #include #include "prefsdlg.h" class WXDLLIMPEXP_FWD_BASE wxConfigBase; class WXDLLIMPEXP_FWD_BASE wxSingleInstanceChecker; class WXDLLIMPEXP_FWD_CORE wxMenuBar; /// wxApp for use with class PoeditApp : public wxApp { public: PoeditApp(); ~PoeditApp(); /** wxWin initialization hook. Shows PoeditFrame and initializes configuration entries to default values if they were missing. */ virtual bool OnInit(); virtual int OnExit(); virtual wxLayoutDirection GetLayoutDirection() const; /// Returns Poedit version string. wxString GetAppVersion() const; wxString GetAppBuildNumber() const; bool IsBetaVersion() const; bool CheckForBetaUpdates() const; // opens files in new frame void OpenFiles(const wxArrayString& filenames, int lineno = 0); // opens empty frame or catalogs manager void OpenNewFile(); #ifndef __WXOSX__ wxFileHistory& FileHistory() { return m_history; } #endif #ifdef __WXOSX__ virtual void MacOpenFiles(const wxArrayString& names); virtual void MacNewFile() { OpenNewFile(); } virtual void MacOpenURL(const wxString &url) { HandleCustomURI(url); } #endif void EditPreferences(); virtual bool OnExceptionInMainLoop(); // Open page on poedit.net in the browser void OpenPoeditWeb(const wxString& path); #ifdef __WXOSX__ // Make OSX-specific modifications to the menus, e.g. adding items into // the apple menu etc. Call on every newly created menubar void TweakOSXMenuBar(wxMenuBar *bar); void CreateFakeOpenRecentMenu(); void FixupMenusForMac(wxMenuBar *bar); void OnIdleFixupMenusForMac(wxIdleEvent& event); virtual void OSXOnWillFinishLaunching(); void OnCloseWindowCommand(wxCommandEvent& event); #endif protected: /** Sets default values to configuration items that don't have anything set. (This may happen after fresh installation or upgrade to new version.) */ void SetDefaultCfg(wxConfigBase *cfg); void OnInitCmdLine(wxCmdLineParser& parser); bool OnCmdLineParsed(wxCmdLineParser& parser); private: void HandleCustomURI(const wxString& uri); void SetupLanguage(); // App-global menu commands: void OnNew(wxCommandEvent& event); void OnOpen(wxCommandEvent& event); void OnOpenFromCrowdin(wxCommandEvent& event); #ifndef __WXOSX__ void OnOpenHist(wxCommandEvent& event); #endif void OnAbout(wxCommandEvent& event); void OnManager(wxCommandEvent& event); void OnQuit(wxCommandEvent& event); void OnPreferences(wxCommandEvent& event); void OnHelp(wxCommandEvent& event); void OnGettextManual(wxCommandEvent& event); #ifdef __WXMSW__ void AssociateFileTypeIfNeeded(); void OnWinsparkleCheck(wxCommandEvent& event); static int WinSparkle_CanShutdown(); static void WinSparkle_Shutdown(); #endif DECLARE_EVENT_TABLE() #ifdef __WXOSX__ class NativeMacAppData; std::unique_ptr m_nativeMacAppData; #else wxFileHistory m_history; #endif std::unique_ptr m_preferences; std::unique_ptr m_locale; #ifndef __WXOSX__ class RemoteServer; class RemoteClient; std::unique_ptr m_remoteServer; std::unique_ptr m_instanceChecker; #endif }; DECLARE_APP(PoeditApp); #endif // _EDAPP_H_ poedit-2.0.6/src/hidpi.h0000664000372000037200000000572413230131554011766 00000000000000/* * This file is part of Poedit (https://poedit.net) * * Copyright (C) 2015-2018 Vaclav Slavik * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * DEALINGS IN THE SOFTWARE. * */ #ifndef Poedit_hidpi_h #define Poedit_hidpi_h #include class WXDLLIMPEXP_FWD_BASE wxString; class WXDLLIMPEXP_FWD_CORE wxImage; #ifdef __WXMSW__ #define NEEDS_MANUAL_HIDPI 1 #endif #ifdef NEEDS_MANUAL_HIDPI // Scaling factor against "normal" DPI (2.0 would be macOS's "Retina" scaling) extern double g_pxScalingFactor; /// Returns current scaling factor. inline double HiDPIScalingFactor() { return g_pxScalingFactor; } /// Is the current mode HiDPI? inline bool IsHiDPI() { return g_pxScalingFactor > 1.0; } /** Use this macro to wrap pixel dimensions to scale them accordingly to the current DPI setting. */ #define PX(x) (int(((x) * g_pxScalingFactor) + 0.5)) #if wxCHECK_VERSION(3,1,0) #define PXDefaultBorder wxSizerFlags::GetDefaultBorder() #else #define PXDefaultBorder PX(wxSizerFlags::GetDefaultBorder()) #endif #define PXBorder(dir) Border(dir, PXDefaultBorder) #define PXDoubleBorder(dir) Border(dir, 2 * PXDefaultBorder) /// Initializes HiDPI code, should be called early in OnInit. void InitHiDPIHandling(); #else // ! NEEDS_MANUAL_HIDPI #define PX(x) (x) #define PXDefaultBorder wxSizerFlags::GetDefaultBorder() #define PXBorder(dir) Border(dir) #define PXDoubleBorder(dir) DoubleBorder(dir) inline void InitHiDPIHandling() {} inline double HiDPIScalingFactor() { return 1.0; } #endif #define PXBorderAll() PXBorder(wxALL) #define PXDoubleBorderAll() PXDoubleBorder(wxALL) /** Load image from given PNG file. Depending on the current scaling factor, the file loaded may be a @2x variant (e.g. "foo@2x.png" instead of "foo.png" for "foo" argument). In any case, the bitmap will be scaled appropriately. Note that @a name is given *without* the ".png" extension. */ extern wxImage LoadScaledBitmap(const wxString& name); #endif // Poedit_hidpi_h poedit-2.0.6/src/catalog.h0000664000372000037200000007344613230131554012311 00000000000000/* * This file is part of Poedit (https://poedit.net) * * Copyright (C) 1999-2018 Vaclav Slavik * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * DEALINGS IN THE SOFTWARE. * */ #ifndef _CATALOG_H_ #define _CATALOG_H_ #include "language.h" #include #include #include #include #include #include #include #include class CloudSyncDestination; struct SourceCodeSpec; class Catalog; class CatalogItem; typedef std::shared_ptr CatalogItemPtr; typedef std::shared_ptr CatalogPtr; /// The possible bookmarks for a given item typedef enum { NO_BOOKMARK = -1, BOOKMARK_0, BOOKMARK_1, BOOKMARK_2, BOOKMARK_3, BOOKMARK_4, BOOKMARK_5, BOOKMARK_6, BOOKMARK_7, BOOKMARK_8, BOOKMARK_9, BOOKMARK_LAST } Bookmark; /** This class holds information about one particular string. This includes source string and its occurrences in source code (so-called references), translation and translation's status (fuzzy, non translated, translated) and optional comment. This class is mostly internal, used by Catalog to store data. */ class CatalogItem { public: /// Ctor. Initializes the object with source string and translation. CatalogItem() : m_id(0), m_hasPlural(false), m_hasContext(false), m_references(), m_isFuzzy(false), m_isTranslated(false), m_isModified(false), m_isPreTranslated(false), m_lineNum(0), m_bookmark(NO_BOOKMARK) {} CatalogItem(const CatalogItem& dt) : m_id(dt.m_id), m_string(dt.m_string), m_plural(dt.m_plural), m_hasPlural(dt.m_hasPlural), m_hasContext(dt.m_hasContext), m_context(dt.m_context), m_translations(dt.m_translations), m_references(dt.m_references), m_extractedComments(dt.m_extractedComments), m_oldMsgid(dt.m_oldMsgid), m_isFuzzy(dt.m_isFuzzy), m_isTranslated(dt.m_isTranslated), m_isModified(dt.m_isModified), m_isPreTranslated(dt.m_isPreTranslated), m_hasBadTokens(dt.m_hasBadTokens), m_moreFlags(dt.m_moreFlags), m_comment(dt.m_comment), m_lineNum(dt.m_lineNum), m_bookmark(dt.m_bookmark) {} /// Gets numeric, 1-based ID int GetId() const { return m_id; } /// Returns the source string. const wxString& GetString() const { return m_string; } /// Does this entry have a msgid_plural? bool HasPlural() const { return m_hasPlural; } /// Returns the plural string. const wxString& GetPluralString() const { return m_plural; } /// Does this entry have a msgctxt? bool HasContext() const { return m_hasContext; } /// Returns context string (can only be called if HasContext() returns /// true and empty string is accepted value). const wxString& GetContext() const { return m_context; } /// How many translations (plural forms) do we have? unsigned GetNumberOfTranslations() const { return (unsigned)m_translations.size(); } /// Returns number of plural forms in this translation; note that this /// may be less than what the header says, because some may be /// still untranslated unsigned GetPluralFormsCount() const; /// Returns the nth-translation. wxString GetTranslation(unsigned n = 0) const; /// Returns all translations. const wxArrayString& GetTranslations() const { return m_translations; } wxArrayString& GetTranslations() { return m_translations; } /// Returns references (#:) lines for the entry const wxArrayString& GetRawReferences() const { return m_references; } /// Returns array of all occurrences of this string in source code, /// parsed into individual references wxArrayString GetReferences() const; /// Returns comment added by the translator to this entry const wxString& GetComment() const { return m_comment; } /// Returns array of all auto comments. const wxArrayString& GetExtractedComments() const { return m_extractedComments; } /// Convenience function: does this entry has a comment? bool HasComment() const { return !m_comment.empty(); } /// Convenience function: does this entry has auto comments? bool HasExtractedComments() const { return !m_extractedComments.empty(); } /// Adds new reference to the entry (used by SourceDigger). void SetReferences(const wxArrayString& ref) { m_references = ref; } void SetId(int id) { m_id = id; } /// Sets the string. void SetString(const wxString& s) { m_string = s; ClearIssue(); } /// Sets the plural form (if applicable). void SetPluralString(const wxString& p) { m_plural = p; m_hasPlural = true; } /// Sets the context (msgctxt0 void SetContext(const wxString& context) { m_hasContext = true; m_context = context; } /** Sets the translation. Changes "translated" status to true if \a t is not empty. */ void SetTranslation(const wxString& t, unsigned index = 0); /// Sets all translations. void SetTranslations(const wxArrayString& t); /// Set translations to equal source text. void SetTranslationFromSource(); // Clears all translation content from the entry void ClearTranslation(); /// Sets the comment. void SetComment(const wxString& c) { m_comment = c; } /** Sets gettext flags directly in string format. It may be either empty string or ", fuzzy", ", c-format", ", fuzzy, c-format" or others (not understood by Poedit), i.e. the leading # is not included, but ", " is. */ void SetFlags(const wxString& flags); /// Gets gettext flags. \see SetFlags wxString GetFlags() const; /// Returns format flag ("php" for "php-format" etc.) if there's any, // empty string otherwise wxString GetFormatFlag() const; /// Sets fuzzy flag. void SetFuzzy(bool fuzzy); /// Gets value of fuzzy flag. bool IsFuzzy() const { return m_isFuzzy; } /// Sets translated flag. void SetTranslated(bool t) { m_isTranslated = t; } /// Gets value of translated flag. bool IsTranslated() const { return m_isTranslated; } /// Sets modified flag. void SetModified(bool modified) { m_isModified = modified; } /// Gets value of modified flag. bool IsModified() const { return m_isModified; } /// Sets pre-translated translation flag. void SetPreTranslated(bool pre) { m_isPreTranslated = pre; } /// Gets value of pre-translated translation flag. bool IsPreTranslated() const { return m_isPreTranslated; } /// Sets the number of the line this entry occurs on. void SetLineNumber(int line) { m_lineNum = line; } /// Get line number of this entry. int GetLineNumber() const { return m_lineNum; } /** Returns true if the gettext flags line contains "foo-format" flag when called with "foo" as argument. */ bool IsInFormat(const wxString& format); /// Adds new extracted comments (#. ) void AddExtractedComments(const wxString& com) { m_extractedComments.Add(com); } /// Clears extracted comments. void ClearExtractedComments() { m_extractedComments.Clear(); } void SetOldMsgid(const wxArrayString& data) { m_oldMsgid = data; } const wxArrayString& GetOldMsgidRaw() const { return m_oldMsgid; } wxString GetOldMsgid() const; bool HasOldMsgid() const { return !m_oldMsgid.empty(); } struct Issue { enum Severity { Warning, Error }; Severity severity; wxString message; Issue(Severity s, const wxString& m) : severity(s), message(m) {} }; bool HasIssue() const { return m_issue != nullptr; } bool HasError() const { return m_issue && m_issue->severity == Issue::Error; } const Issue& GetIssue() const { return *m_issue; } void ClearIssue() { m_issue.reset(); } void SetIssue(std::shared_ptr issue) { m_issue = issue; } void SetIssue(const Issue& issue) { m_issue = std::make_shared(issue); } void SetIssue(Issue::Severity severity, const wxString& message) { m_issue = std::make_shared(severity, message); } /// Returns the bookmark for the item Bookmark GetBookmark() const {return m_bookmark;} /// Returns true if the item has a bookmark bool HasBookmark() const {return (GetBookmark() != NO_BOOKMARK);} /// Sets the bookmark void SetBookmark(Bookmark bookmark) {m_bookmark = bookmark;} private: int m_id; wxString m_string, m_plural; bool m_hasPlural; bool m_hasContext; wxString m_context; wxArrayString m_translations; wxArrayString m_references, m_extractedComments; wxArrayString m_oldMsgid; bool m_isFuzzy, m_isTranslated, m_isModified, m_isPreTranslated; bool m_hasBadTokens; wxString m_moreFlags; wxString m_comment; int m_lineNum; Bookmark m_bookmark; std::shared_ptr m_issue; }; /** This class holds information about one particular deleted item. This includes deleted lines, references, translation's status (fuzzy, non translated, translated) and optional comment(s). This class is mostly internal, used by Catalog to store data. */ // FIXME: derive this from CatalogItem (or CatalogItemBase) class CatalogDeletedData { public: /// Ctor. CatalogDeletedData() : m_lineNum(0) {} CatalogDeletedData(const wxArrayString& deletedLines) : m_deletedLines(deletedLines), m_lineNum(0) {} CatalogDeletedData(const CatalogDeletedData& dt) : m_deletedLines(dt.m_deletedLines), m_references(dt.m_references), m_extractedComments(dt.m_extractedComments), m_flags(dt.m_flags), m_comment(dt.m_comment), m_lineNum(dt.m_lineNum) {} /// Returns the deleted lines. const wxArrayString& GetDeletedLines() const { return m_deletedLines; } /// Returns references (#:) lines for the entry const wxArrayString& GetRawReferences() const { return m_references; } /// Returns comment added by the translator to this entry const wxString& GetComment() const { return m_comment; } /// Returns array of all auto comments. const wxArrayString& GetExtractedComments() const { return m_extractedComments; } /// Convenience function: does this entry has a comment? bool HasComment() const { return !m_comment.empty(); } /// Adds new reference to the entry (used by SourceDigger). void AddReference(const wxString& ref) { if (m_references.Index(ref) == wxNOT_FOUND) m_references.Add(ref); } /// Sets the string. void SetDeletedLines(const wxArrayString& a) { m_deletedLines = a; } /// Sets the comment. void SetComment(const wxString& c) { m_comment = c; } /** Sets gettext flags directly in string format. It may be either empty string or "#, fuzzy", "#, c-format", "#, fuzzy, c-format" or others (not understood by Poedit). */ void SetFlags(const wxString& flags) {m_flags = flags;}; /// Gets gettext flags. \see SetFlags wxString GetFlags() const {return m_flags;}; /// Sets the number of the line this entry occurs on. void SetLineNumber(int line) { m_lineNum = line; } /// Get line number of this entry. int GetLineNumber() const { return m_lineNum; } /// Adds new extracted comments (#. ) void AddExtractedComments(const wxString& com) { m_extractedComments.Add(com); } /// Clears extracted comments. void ClearExtractedComments() { m_extractedComments.Clear(); } private: wxArrayString m_deletedLines; wxArrayString m_references, m_extractedComments; wxString m_flags; wxString m_comment; int m_lineNum; }; typedef std::vector CatalogItemArray; typedef std::vector CatalogDeletedDataArray; typedef std::map CatalogItemIndex; /** This class stores all translations, together with filelists, references and other additional information. It can read .po files and save both .mo and .po files. Furthermore, it provides facilities for updating the catalog from source files. */ class Catalog { public: /// Type of the file loaded enum class Type { PO, POT }; /// Capabilities of the file type enum class Cap { Translations, // Can translations be added (e.g. POTs can't)? LanguageSetting, // Is language code saved in the file? UserComments, // Can users add comments? }; /// Is this file capable of doing these things bool HasCapability(Cap cap) const; /// PO file header information. class HeaderData { public: HeaderData() {} /** Initializes the headers from string that is in msgid "" format (i.e. list of key:value\n entries). */ void FromString(const wxString& str); /** Converts the header into string representation that can be directly written to .po file as msgid "". */ wxString ToString(const wxString& line_delim = wxEmptyString); /// Updates headers list from parsed values entries below void UpdateDict(); /// Reverse operation to UpdateDict void ParseDict(); /// Returns value of header or empty string if missing. wxString GetHeader(const wxString& key) const; /// Returns true if given key is present in the header. bool HasHeader(const wxString& key) const; /** Sets header to given value. Overwrites old value if present, appends to the end of header values otherwise. */ void SetHeader(const wxString& key, const wxString& value); /// Like SetHeader, but deletes the header if value is empty void SetHeaderNotEmpty(const wxString& key, const wxString& value); /// Removes given header entry void DeleteHeader(const wxString& key); struct Entry { wxString Key, Value; }; typedef std::vector Entries; const Entries& GetAllHeaders() const { return m_entries; } // Parsed values: wxString Project, CreationDate, RevisionDate, Translator, TranslatorEmail, LanguageTeam, Charset, SourceCodeCharset; Language Lang; wxArrayString SearchPaths, SearchPathsExcluded, Keywords; int Bookmarks[BOOKMARK_LAST]; wxString BasePath; wxString Comment; protected: Entries m_entries; const Entry *Find(const wxString& key) const; }; enum CreationFlags { CreationFlag_IgnoreHeader = 1, CreationFlag_IgnoreTranslations = 2 }; enum class CompilationStatus { NotDone, Success, Error }; struct ValidationResults { ValidationResults() : errors(0), warnings(0) {} int errors; int warnings; }; // Common wrapping values static const int NO_WRAPPING = -1; static const int DEFAULT_WRAPPING = -2; /// Default ctor. Creates empty catalog, you have to call Load. Catalog(Type type = Type::PO); /// Ctor that loads the catalog from \a po_file with Load. /// \a flags is CreationFlags combination. explicit Catalog(const wxString& po_file, int flags = 0); ~Catalog(); /** Creates new, empty header. Sets Charset to something meaningful ("UTF-8", currently). */ void CreateNewHeader(); /** Creates new header initialized based on a POT file's header. */ void CreateNewHeader(const HeaderData& pot_header); /// Clears the catalog, removes all entries from it. void Clear(); /** Loads catalog from .po file. If file named po_file ".poedit" (e.g. "cs.po.poedit") exists, this function loads additional information from it. .po.poedit file contains parts of catalog header data that are not part of standard .po format, namely SearchPaths, Keywords, BasePath and Language. @param flags CreationFlags combination. */ bool Load(const wxString& po_file, int flags = 0); /** Saves catalog to file. Creates both .po (text) and .mo (binary) version of the catalog (unless the latter was disabled in preferences). Calls external xmsgfmt program to generate the .mo file. Note that \a po_file refers to .po file, .mo file will have same name & location as .po file except for different extension. */ bool Save(const wxString& po_file, bool save_mo, ValidationResults& validation_results, CompilationStatus& mo_compilation_status); /** "Saves" the PO file into a memory buffer with content identical to what Save() would save into a file. Returns empty string in case of failure. */ std::string SaveToBuffer(); /// File mask for opening/saving this catalog's file type wxString GetFileMask() const { return GetTypesFileMask({m_fileType}); } /// File mask for opening/saving any supported file type static wxString GetTypesFileMask(std::initializer_list types); static wxString GetAllTypesFileMask(); /// Compiles the catalog into binary MO file. bool CompileToMO(const wxString& mo_file, ValidationResults& validation_results, CompilationStatus& mo_compilation_status); /// Exports the catalog to HTML format void ExportToHTML(std::ostream& output); /// Detect a particular common breakage of catalogs. bool HasDuplicateItems() const; /// Fixes a common invalid kind of entries, when msgids aren't unique. bool FixDuplicateItems(); Type GetFileType() const { return m_fileType; } wxString GetFileName() const { return m_fileName; } void SetFileName(const wxString& fn); /** Return base path to source code for extraction, or empty string if not configured. This is the path that file references are relative to. It should be, but may not be, the root of the source tree. */ wxString GetSourcesBasePath() const; /** Returns top-most directory of the configured source tree. Returns empty string if not configured. */ wxString GetSourcesRootPath() const; /** Returns true if the source code to update the PO from is available. */ bool HasSourcesConfigured() const; /** Returns true if the source code to update the PO from is available. */ bool HasSourcesAvailable() const; std::shared_ptr GetSourceCodeSpec() const; /// Updates the catalog from POT file. bool UpdateFromPOT(const wxString& pot_file, bool replace_header = false); bool UpdateFromPOT(CatalogPtr pot, bool replace_header = false); static CatalogPtr CreateFromPOT(const wxString& pot_file); /// Returns the number of strings/translations in the catalog. unsigned GetCount() const { return (unsigned)m_items.size(); } const CatalogItemArray& items() const { return m_items; } /// Is the catalog empty? bool empty() const { return m_items.empty(); } /** Returns number of all, fuzzy, badtokens and untranslated items. Any argument may be NULL if the caller is not interested in given statistic value. @note "untranslated" are entries without translation; "unfinished" are entries with any problems */ void GetStatistics(int *all, int *fuzzy, int *badtokens, int *untranslated, int *unfinished); /// Gets n-th item in the catalog (read-write access). CatalogItemPtr operator[](unsigned n) { return m_items[n]; } /// Gets n-th item in the catalog (read-only access). const CatalogItemPtr operator[](unsigned n) const { return m_items[n]; } /// Gets catalog header (read-write access). HeaderData& Header() { return m_header; } /// Returns plural forms count: taken from Plural-Forms header if /// present, 0 otherwise (unless there are existing plural forms /// translations in the file) unsigned GetPluralFormsCount() const; /// Returns true if Plural-Forms header doesn't match plural forms /// usage in catalog items bool HasWrongPluralFormsCount() const; /// Does this catalog have any items with plural forms? bool HasPluralItems() const; /** Returns status of catalog object: true if ok, false if damaged (i.e. constructor or Load failed). */ bool IsOk() const { return m_isOk; } /// Returns catalog's source language (may be invalid, but usually English). Language GetSourceLanguage() const { return m_sourceLanguage; } /// Returns catalog's language (may be invalid). Language GetLanguage() const { return m_header.Lang; } /// Change the catalog's language and update headers accordingly void SetLanguage(Language lang); /// Is the PO file from Crowdin, i.e. sync-able? bool IsFromCrowdin() const { return m_header.HasHeader("X-Crowdin-Project") && m_header.HasHeader("X-Crowdin-File"); } /// Adds entry to the catalog (the catalog will take ownership of /// the object). void AddItem(const CatalogItemPtr& data); /// Adds entry to the catalog (the catalog will take ownership of /// the object). void AddDeletedItem(const CatalogDeletedData& data); /// Returns true if the catalog contains obsolete entries (~.*) bool HasDeletedItems(); /// Removes all obsolete translations from the catalog void RemoveDeletedItems(); /// Finds item by line number CatalogItemPtr FindItemByLine(int lineno); /// Finds catalog index by line number int FindItemIndexByLine(int lineno); /// Sets the given item to have the given bookmark and returns the index /// of the item that previously had this bookmark (or -1) int SetBookmark(int id, Bookmark bookmark); /// Returns the index of the item that has the given bookmark or -1 int GetBookmarkIndex(Bookmark bookmark) const { return m_header.Bookmarks[bookmark]; } /// Validates correctness of the translation by running msgfmt /// Returns number of errors (i.e. 0 if no errors). ValidationResults Validate(); void AttachCloudSync(std::shared_ptr c) { m_cloudSync = c; } std::shared_ptr GetCloudSync() const { return m_cloudSync; } protected: /// Fix commonly encountered fixable problems with loaded files void FixupCommonIssues(); ValidationResults DoValidate(const wxString& po_file); bool DoSaveOnly(const wxString& po_file, wxTextFileType crlf); bool DoSaveOnly(wxTextBuffer& f, wxTextFileType crlf); /** Merges the catalog with reference catalog (in the sense of msgmerge -- this catalog is old one with translations, \a refcat is reference catalog created by Update().) \return true if the merge was successful, false otherwise. Note that if it returns false, the catalog was \em not modified! */ bool Merge(const CatalogPtr& refcat); private: CatalogItemArray m_items; CatalogDeletedDataArray m_deletedItems; bool m_isOk; Type m_fileType; wxString m_fileName; HeaderData m_header; Language m_sourceLanguage; wxTextFileType m_fileCRLF; int m_fileWrappingWidth; std::shared_ptr m_cloudSync; friend class LoadParser; }; /// Internal class - used for parsing of po files. class CatalogParser { public: CatalogParser(wxTextFile *f) : m_textFile(f), m_detectedLineWidth(0), m_detectedWrappedLines(false), m_lastLineHardWrapped(true), m_previousLineHardWrapped(true), m_ignoreHeader(false), m_ignoreTranslations(false) {} virtual ~CatalogParser() {} /// Tell the parser to ignore header entries when processing void IgnoreHeader(bool ignore) { m_ignoreHeader = ignore; } /// Tell the parser to treat input as POT and ignore translations void IgnoreTranslations(bool ignore) { m_ignoreTranslations = ignore; } /** Parses the entire file, calls OnEntry each time new msgid/msgstr pair is found. @return false if parsing failed, true otherwise */ bool Parse(); int GetWrappingWidth() const; protected: // Read one line from file, remove all \r and \n characters, ignore empty lines: wxString ReadTextLine(); void PossibleWrappedLine() { if (!m_previousLineHardWrapped) m_detectedWrappedLines = true; } /** Called when new entry was parsed. Parsing continues if returned value is true and is cancelled if it is false. */ virtual bool OnEntry(const wxString& msgid, const wxString& msgid_plural, bool has_plural, bool has_context, const wxString& context, const wxArrayString& mtranslations, const wxString& flags, const wxArrayString& references, const wxString& comment, const wxArrayString& extractedComments, const wxArrayString& msgid_old, unsigned lineNumber) = 0; /** Called when new deleted entry was parsed. Parsing continues if returned value is true and is cancelled if it is false. Defaults to an empty implementation. */ virtual bool OnDeletedEntry(const wxArrayString& /*deletedLines*/, const wxString& /*flags*/, const wxArrayString& /*references*/, const wxString& /*comment*/, const wxArrayString& /*extractedComments*/, unsigned /*lineNumber*/) { return true; } virtual void OnIgnoredEntry() {} /// Textfile being parsed. wxTextFile *m_textFile; int m_detectedLineWidth; bool m_detectedWrappedLines; bool m_lastLineHardWrapped, m_previousLineHardWrapped; /// Whether the header should be parsed or not bool m_ignoreHeader; /// Whether the translations should be ignored (as if it was a POT) bool m_ignoreTranslations; }; #endif // _CATALOG_H_ poedit-2.0.6/src/qa_checks.h0000664000372000037200000000523613230131554012610 00000000000000/* * This file is part of Poedit (https://poedit.net) * * Copyright (C) 2017-2018 Vaclav Slavik * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * DEALINGS IN THE SOFTWARE. * */ #ifndef Poedit_qa_checks_h #define Poedit_qa_checks_h #include "catalog.h" #include #include /// Interface for implementing quality checks class QACheck { public: virtual ~QACheck() {} // Implementation has to implement one of the CheckXXX() methods, // it doesn't have to implement all of them. /** Checks given item for issues, possibly calling CatalogItem::SetIssue() to flag it as broken. Returns true if an issue was found, false otherwise. */ virtual bool CheckItem(CatalogItemPtr item); /// A more convenient API, checking only strings virtual bool CheckString(CatalogItemPtr item, const wxString& source, const wxString& translation); }; /// This class performs actual checking class QAChecker { public: /// Returns checker suitable for given file static std::shared_ptr GetFor(Catalog& catalog); /// Checks all items. Returns # of issues found. int Check(Catalog& catalog); /// Check a single item. Returns # of issues found. int Check(CatalogItemPtr item); // Low-level creation and setup: QAChecker() {} template void AddCheck() { AddCheck(std::make_shared()); } template void AddCheck(const Language& lang) { AddCheck(std::make_shared(lang)); } void AddCheck(std::shared_ptr c) { m_checks.push_back(c); } protected: std::vector> m_checks; }; #endif // Poedit_qa_checks_h poedit-2.0.6/src/resources/0000775000372000037200000000000013230132101012567 500000000000000poedit-2.0.6/src/resources/toolbar.xrc0000664000372000037200000000443413230131554014707 00000000000000 3,3d Open catalog Open catalog Save catalog Save catalog Check for errors in the translation Update catalog - synchronize it with sources Show or hide the sidebar poedit-2.0.6/src/resources/progress.xrc0000664000372000037200000000240513230131554015105 00000000000000 1 wxHORIZONTAL wxVERTICAL small 5d wxTOP 160,-1d 2d wxTOP 6d wxLEFT|wxTOP|wxBOTTOM|wxALIGN_RIGHT 6d wxLEFT|wxRIGHT poedit-2.0.6/src/resources/properties.xrc0000664000372000037200000003155213230131554015442 00000000000000 Catalog properties 1 wxVERTICAL 1 2 wxALL|wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL 5d 100,-1d 1 5d wxEXPAND|wxRIGHT|wxTOP|wxBOTTOM wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL 5d 100,-1d 5d wxEXPAND|wxRIGHT|wxBOTTOM 8,8d 8,8d wxLEFT|wxRIGHT|wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL 5d 5d wxEXPAND|wxRIGHT wxLEFT|wxRIGHT|wxBOTTOM|wxTOP|wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL 5d 5d wxEXPAND|wxRIGHT 5d wxEXPAND|wxRIGHT 3d wxEXPAND|wxRIGHT|wxTOP|wxBOTTOM 10,20 https://poedit.net/trac/wiki/Doc/PluralForms wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL 5d 8,8d 8,8d wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL 5d 5d wxEXPAND|wxRIGHT|wxBOTTOM wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL 5d 5d wxEXPAND|wxRIGHT|wxBOTTOM small wxALIGN_RIGHT|wxRIGHT|wxBOTTOM 13 5d 8,8d 8,8d wxVERTICAL wxLEFT|wxRIGHT|wxTOP 5d small 5d wxLEFT|wxTOP|wxALIGN_CENTER_VERTICAL wxLEFT|wxTOP|wxALIGN_CENTER_VERTICAL 5d 3,-1d small #ffffff wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL 5d 1,1d wxEXPAND wxEXPAND|wxALL 5d wxEXPAND|wxALL 5d wxVERTICAL wxLEFT|wxRIGHT|wxTOP 5d wxLEFT|wxRIGHT|wxTOP|wxEXPAND 5d 0,4 wxLEFT|wxRIGHT|wxBOTTOM|wxEXPAND 5d https://poedit.net/trac/wiki/Doc/Keywords wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_LEFT 6d 5d 5d wxEXPAND|wxTOP|wxLEFT|wxRIGHT 5d normal 1 normal wxALIGN_RIGHT wxALIGN_RIGHT|wxALL wxALIGN_RIGHT|wxTOP|wxBOTTOM 5d poedit-2.0.6/src/resources/manager.xrc0000664000372000037200000000766113230131554014664 00000000000000 wxHORIZONTAL 100 vertical small wxEXPAND|wxALL 2d 200,200d 4,4 32,32 Create new translations project Edit the project Delete the project Update all catalogs in the project Edit project wxVERTICAL 5d wxLEFT|wxRIGHT|wxTOP 1 wxEXPAND|wxLEFT|wxRIGHT 5d wxEXPAND|wxALL 5d 140,100d Add directory to the list wxRIGHT|wxBOTTOM|wxALIGN_RIGHT 5d wxEXPAND|wxLEFT|wxRIGHT|wxBOTTOM 5d 1 5d wxLEFT|wxRIGHT|wxBOTTOM wxRIGHT|wxBOTTOM 5d wxALIGN_RIGHT poedit-2.0.6/src/resources/summary.xrc0000664000372000037200000000661013230131554014740 00000000000000 Update summary 300,200d wxVERTICAL small wxVERTICAL 5d wxALL 5d wxEXPAND|wxLEFT|wxRIGHT|wxBOTTOM wxVERTICAL 5d wxALL 5d wxEXPAND|wxLEFT|wxRIGHT|wxBOTTOM wxEXPAND|wxLEFT|wxRIGHT|wxTOP 5d wxHORIZONTAL small wxALL 5d 1 5d wxTOP|wxLEFT|wxBOTTOM 5d wxALL wxEXPAND poedit-2.0.6/src/resources/prefs.xrc0000664000372000037200000001402113230131554014355 00000000000000 Extractor setup small 300,-1d wxVERTICAL wxVERTICAL wxEXPAND|wxLEFT|wxRIGHT|wxTOP 5d wxEXPAND|wxLEFT|wxRIGHT 5d 5d wxLEFT|wxRIGHT|wxTOP wxEXPAND|wxLEFT|wxRIGHT|wxBOTTOM 5d 5d wxEXPAND|wxLEFT|wxRIGHT|wxTOP wxVERTICAL wxEXPAND|wxLEFT|wxRIGHT|wxTOP 5d wxEXPAND|wxLEFT|wxRIGHT|wxBOTTOM 5d small #777777 wxLEFT|wxRIGHT 5d 5d wxLEFT|wxRIGHT|wxTOP wxEXPAND|wxLEFT|wxRIGHT|wxBOTTOM 5d small #777777 wxLEFT|wxRIGHT 5d 5d wxLEFT|wxRIGHT|wxTOP wxEXPAND|wxLEFT|wxRIGHT|wxBOTTOM 5d small #777777 wxLEFT|wxRIGHT 5d 5d wxLEFT|wxRIGHT|wxTOP wxEXPAND|wxLEFT|wxRIGHT|wxBOTTOM 5d small #777777 wxLEFT|wxRIGHT 5d 5d wxEXPAND|wxLEFT|wxRIGHT|wxTOP normal 1 normal wxALIGN_RIGHT wxALIGN_RIGHT|wxALL wxALIGN_RIGHT|wxTOP|wxBOTTOM 5d poedit-2.0.6/src/resources/comment.xrc0000664000372000037200000000367413230131554014714 00000000000000 Edit comment wxVERTICAL 5d wxLEFT|wxTOP|wxRIGHT 2d 100,-1d 1 wxEXPAND|wxLEFT|wxRIGHT|wxBOTTOM 5d 150,80d 1 5d wxLEFT|wxRIGHT|wxBOTTOM wxRIGHT|wxBOTTOM 5d Clear the comment wxRIGHT|wxBOTTOM 5d wxTOP|wxALIGN_RIGHT 5d poedit-2.0.6/src/resources/menus.xrc0000664000372000037200000004047113230131554014375 00000000000000 Ctrl+N Ctrl+O Ctrl+W Ctrl+S Shift+Ctrl+S Shift+Ctrl+E Ctrl+, Ctrl+A Ctrl+K Ctrl+B Ctrl+Shift+B Ctrl+U 1 Ctrl+M Ctrl+F Ctrl+H Ctrl+G Ctrl+Shift+G Ctrl+F Ctrl+Alt+F Ctrl+G Ctrl+Shift+G 1 1 1 1 1 1 1 1 Ctrl+Alt+S 1 Ctrl+/ Alt+Return Alt+Enter Alt+Ctrl+P Ctrl+Return Ctrl+Enter Ctrl+Up Ctrl+Down Ctrl+Shift+Up Ctrl+Shift+Down Ctrl+Alt+Left Ctrl+Alt+Right F1 F1 Ctrl+? Ctrl+N Ctrl+O Ctrl+W Ctrl+, Ctrl+A F1 F1 Ctrl+? poedit-2.0.6/src/icons.h0000664000372000037200000000310313230131554011771 00000000000000/* * This file is part of Poedit (https://poedit.net) * * Copyright (C) 2004-2018 Vaclav Slavik * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * DEALINGS IN THE SOFTWARE. * */ #ifndef _ICONS_H_ #define _ICONS_H_ #include #if defined(__WXGTK20__) #define HAS_THEMES_SUPPORT #endif #ifndef __WXOSX__ class PoeditArtProvider : public wxArtProvider { protected: virtual wxBitmap CreateBitmap(const wxArtID& id, const wxArtClient& client, const wxSize& size); }; #endif #endif // _ICONS_H_ poedit-2.0.6/src/customcontrols.cpp0000664000372000037200000002605413230131554014321 00000000000000/* * This file is part of Poedit (https://poedit.net) * * Copyright (C) 2015-2018 Vaclav Slavik * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * DEALINGS IN THE SOFTWARE. * */ #include "customcontrols.h" #include "concurrency.h" #include "errors.h" #include "hidpi.h" #include "utility.h" #include #include #include #include #include #include #include #if wxCHECK_VERSION(3,1,0) #include #else #include "wx_backports/activityindicator.h" #endif #include #ifdef __WXGTK__ #include #endif #include "str_helpers.h" #include "unicode_helpers.h" #include #include namespace { wxString WrapTextAtWidth(const wxString& text_, int width, Language lang, wxWindow *wnd) { if (text_.empty()) return text_; #ifdef BIDI_NEEDS_DIRECTION_ON_EACH_LINE wchar_t directionMark = 0; if (bidi::is_direction_mark(*text_.begin())) directionMark = *text_.begin(); #endif auto text = str::to_icu(text_); static std::map> lang_iters; std::shared_ptr iter; auto lang_name = lang.IcuLocaleName(); auto li = lang_iters.find(lang_name); if (li == lang_iters.end()) { UErrorCode err = U_ZERO_ERROR; iter.reset(icu::BreakIterator::createLineInstance(lang.IsValid() ? lang.ToIcu() : icu::Locale(), err)); if (!iter) iter.reset(icu::BreakIterator::createLineInstance(icu::Locale::getEnglish(), err)); lang_iters[lang_name] = iter; } else { iter = li->second; } iter->setText(text); wxString out; out.reserve(text_.length() + 10); int32_t lineStart = 0; wxString previousSubstr; for (int32_t pos = iter->next(); pos != icu::BreakIterator::DONE; pos = iter->next()) { auto substr = str::to_wx(text.tempSubStringBetween(lineStart, pos)); if (wnd->GetTextExtent(substr).x > width) { auto previousPos = iter->previous(); if (previousPos == lineStart || previousPos == icu::BreakIterator::DONE) { // line is too large but we can't break it, so have no choice but not to wrap out += substr; lineStart = pos; } else { // need to wrap at previous linebreak position out += previousSubstr; lineStart = previousPos; } out += '\n'; #ifdef BIDI_NEEDS_DIRECTION_ON_EACH_LINE if (directionMark) out += directionMark; #endif previousSubstr.clear(); } else if (pos > 0 && text[pos-1] == '\n') // forced line feed { out += substr; lineStart = pos; previousSubstr.clear(); } else { previousSubstr = substr; } } if (!previousSubstr.empty()) { out += previousSubstr; } if (out.Last() == '\n') out.RemoveLast(); return out; } } // anonymous namespace HeadingLabel::HeadingLabel(wxWindow *parent, const wxString& label) : wxStaticText(parent, wxID_ANY, label) { #ifdef __WXGTK3__ // This is needed to avoid missizing text with bold font. See // https://github.com/vslavik/poedit/pull/411 and https://trac.wxwidgets.org/ticket/16088 SetLabelMarkup("" + EscapeMarkup(label) + ""); #else SetFont(GetFont().Bold()); #endif } AutoWrappingText::AutoWrappingText(wxWindow *parent, const wxString& label) : wxStaticText(parent, wxID_ANY, "", wxDefaultPosition, wxDefaultSize, wxST_NO_AUTORESIZE), m_text(label), m_wrapWidth(-1) { m_text.Replace("\n", " "); SetInitialSize(wxSize(10,10)); Bind(wxEVT_SIZE, &AutoWrappingText::OnSize, this); } void AutoWrappingText::SetLanguage(Language lang) { m_language = lang; SetAlignment(m_language.Direction()); } void AutoWrappingText::SetAlignment(TextDirection dir) { // a quirk of wx API: if the current locale is RTL, the meaning of L and R is reversed // for alignments bool isRTL = (dir == TextDirection::RTL); if (GetLayoutDirection() == wxLayout_RightToLeft) isRTL = !isRTL; const int align = isRTL ? wxALIGN_RIGHT : wxALIGN_LEFT; if (HasFlag(align)) return; SetWindowStyleFlag(wxST_NO_AUTORESIZE | align); } void AutoWrappingText::SetAndWrapLabel(const wxString& label) { m_text = bidi::platform_mark_direction(label); if (!m_language.IsValid()) SetAlignment(bidi::get_base_direction(m_text)); wxWindowUpdateLocker lock(this); m_wrapWidth = GetSize().x; SetLabelText(WrapTextAtWidth(label, m_wrapWidth, m_language, this)); InvalidateBestSize(); SetMinSize(wxDefaultSize); SetMinSize(GetBestSize()); } void AutoWrappingText::OnSize(wxSizeEvent& e) { e.Skip(); int w = wxMax(0, e.GetSize().x - PX(4)); if (w == m_wrapWidth) return; // refuse to participate in crazy-small sizes sizing (will be undone anyway): if (w < 50) return; wxWindowUpdateLocker lock(this); m_wrapWidth = w; SetLabel(WrapTextAtWidth(m_text, w, m_language, this)); InvalidateBestSize(); SetMinSize(wxDefaultSize); SetMinSize(GetBestSize()); } SelectableAutoWrappingText::SelectableAutoWrappingText(wxWindow *parent, const wxString& label) : AutoWrappingText(parent, label) { #if defined(__WXOSX__) NSTextField *view = (NSTextField*)GetHandle(); [view setSelectable:YES]; #elif defined(__WXGTK__) GtkLabel *view = GTK_LABEL(GetHandle()); gtk_label_set_selectable(view, TRUE); #else // at least allow copying static wxWindowID idCopy = wxNewId(); Bind(wxEVT_CONTEXT_MENU, [=](wxContextMenuEvent&){ wxMenu *menu = new wxMenu(); menu->Append(idCopy, _("&Copy")); PopupMenu(menu); }); Bind(wxEVT_MENU, [=](wxCommandEvent&){ wxClipboardLocker lock; wxClipboard::Get()->SetData(new wxTextDataObject(m_text)); }, idCopy); #endif } ExplanationLabel::ExplanationLabel(wxWindow *parent, const wxString& label) : AutoWrappingText(parent, label) { #if defined(__WXOSX__) SetWindowVariant(wxWINDOW_VARIANT_SMALL); #elif defined(__WXGTK__) #if wxCHECK_VERSION(3,1,0) SetWindowVariant(wxWINDOW_VARIANT_SMALL); #else SetFont(GetFont().Smaller()); #endif #endif #ifndef __WXGTK__ SetForegroundColour(GetTextColor()); #endif } wxColour ExplanationLabel::GetTextColor() { #if defined(__WXOSX__) return wxColour("#777777"); #elif defined(__WXGTK__) return wxSystemSettings::GetColour(wxSYS_COLOUR_WINDOWTEXT); #else return wxSystemSettings::GetColour(wxSYS_COLOUR_GRAYTEXT); #endif } SecondaryLabel::SecondaryLabel(wxWindow *parent, const wxString& label) : wxStaticText(parent, wxID_ANY, label) { #if defined(__WXOSX__) SetWindowVariant(wxWINDOW_VARIANT_SMALL); #elif defined(__WXGTK__) #if wxCHECK_VERSION(3,1,0) SetWindowVariant(wxWINDOW_VARIANT_SMALL); #else SetFont(GetFont().Smaller()); #endif #endif #ifndef __WXGTK__ SetForegroundColour(GetTextColor()); #endif } LearnMoreLink::LearnMoreLink(wxWindow *parent, const wxString& url, wxString label, wxWindowID winid) { if (label.empty()) { #ifdef __WXMSW__ label = _("Learn more"); #else label = _("Learn More"); #endif } wxHyperlinkCtrl::Create(parent, winid, label, url); SetNormalColour("#2F79BE"); SetVisitedColour("#2F79BE"); SetHoverColour("#3D8DD5"); #ifdef __WXOSX__ SetWindowVariant(wxWINDOW_VARIANT_SMALL); SetFont(GetFont().Underlined()); #endif } wxObject *LearnMoreLinkXmlHandler::DoCreateResource() { auto w = new LearnMoreLink(m_parentAsWindow, GetText("url"), GetText("label"), GetID()); w->SetName(GetName()); SetupWindow(w); return w; } bool LearnMoreLinkXmlHandler::CanHandle(wxXmlNode *node) { return IsOfClass(node, "LearnMoreLink"); } ActivityIndicator::ActivityIndicator(wxWindow *parent, int flags) : wxWindow(parent, wxID_ANY), m_running(false) { auto sizer = new wxBoxSizer(wxHORIZONTAL); SetSizer(sizer); m_spinner = new wxActivityIndicator(this, wxID_ANY); m_spinner->SetWindowVariant(wxWINDOW_VARIANT_SMALL); m_label = new wxStaticText(this, wxID_ANY, ""); #ifdef __WXOSX__ m_label->SetWindowVariant(wxWINDOW_VARIANT_SMALL); #endif if (flags & Centered) sizer->AddStretchSpacer(); sizer->Add(m_spinner, wxSizerFlags().Center().Border(wxRIGHT, PX(4))); sizer->Add(m_label, wxSizerFlags(1).Center()); if (flags & Centered) sizer->AddStretchSpacer(); wxWeakRef self(this); HandleError = [self](dispatch::exception_ptr e){ dispatch::on_main([self,e]{ if (self) self->StopWithError(DescribeException(e)); }); }; } void ActivityIndicator::UpdateLayoutAfterTextChange() { m_label->Wrap(GetSize().x); Layout(); if (GetSizer()->IsShown(m_label)) { InvalidateBestSize(); SetMinSize(wxDefaultSize); SetMinSize(GetBestSize()); GetParent()->Layout(); } } void ActivityIndicator::Start(const wxString& msg) { m_running = true; m_label->SetForegroundColour(wxSystemSettings::GetColour(wxSYS_COLOUR_WINDOWTEXT)); m_label->SetLabel(msg); auto sizer = GetSizer(); sizer->Show(m_spinner); sizer->Show(m_label, !msg.empty()); UpdateLayoutAfterTextChange(); m_spinner->Start(); } void ActivityIndicator::Stop() { m_running = false; m_spinner->Stop(); m_label->SetLabel(""); auto sizer = GetSizer(); sizer->Hide(m_spinner); sizer->Hide(m_label); UpdateLayoutAfterTextChange(); } void ActivityIndicator::StopWithError(const wxString& msg) { m_running = false; m_spinner->Stop(); m_label->SetForegroundColour(*wxRED); m_label->SetLabel(msg); m_label->SetToolTip(msg); auto sizer = GetSizer(); sizer->Hide(m_spinner); sizer->Show(m_label); UpdateLayoutAfterTextChange(); } poedit-2.0.6/src/logcapture.h0000664000372000037200000000402013230131554013022 00000000000000/* * This file is part of Poedit (https://poedit.net) * * Copyright (C) 2013-2018 Vaclav Slavik * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * DEALINGS IN THE SOFTWARE. * */ #ifndef Poedit_logcapture_h #define Poedit_logcapture_h #include #include // Capture all wx log output into a text buffer and suppress normal output: class LogCapture : public wxLogInterposer { public: LogCapture(wxLogLevel level = wxLOG_Info) { PassMessages(false); m_oldLevel = wxLog::GetLogLevel(); m_verbose = wxLog::GetVerbose(); wxLog::SetLogLevel(level); wxLog::SetVerbose(); } ~LogCapture() { wxLog::SetLogLevel(m_oldLevel); wxLog::SetVerbose(m_verbose); } virtual void DoLogTextAtLevel(wxLogLevel, const wxString& msg) { Append(msg); } void Append(const wxString& msg) { text << msg << "\n"; } wxString text; private: wxLogLevel m_oldLevel; bool m_verbose; }; #endif // Poedit_logcapture_h poedit-2.0.6/src/keychain/0000775000372000037200000000000013230132101012350 500000000000000poedit-2.0.6/src/keychain/keytar.h0000664000372000037200000000304013230131554013750 00000000000000/* * Copyright (c) 2013 GitHub Inc. * Copyright (c) 2015-2018 Vaclav Slavik * * Permission is hereby granted, free of charge, to any person obtaining * a copy of this software and associated documentation files (the * "Software"), to deal in the Software without restriction, including * without limitation the rights to use, copy, modify, merge, publish, * distribute, sublicense, and/or sell copies of the Software, and to * permit persons to whom the Software is furnished to do so, subject to * the following conditions: * * The above copyright notice and this permission notice shall be * included in all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * */ #ifndef SRC_KEYTAR_H_ #define SRC_KEYTAR_H_ #include namespace keytar { bool AddPassword(const std::string& service, const std::string& user, const std::string& password); bool GetPassword(const std::string& service, const std::string& user, std::string* password); bool DeletePassword(const std::string& service, const std::string& user); } // namespace keytar #endif // SRC_KEYTAR_H_ poedit-2.0.6/src/keychain/keytar_posix.cc0000664000372000037200000000626413230131554015343 00000000000000/* * Copyright (c) 2013 GitHub Inc. * Copyright (c) 2015-2018 Vaclav Slavik * * Permission is hereby granted, free of charge, to any person obtaining * a copy of this software and associated documentation files (the * "Software"), to deal in the Software without restriction, including * without limitation the rights to use, copy, modify, merge, publish, * distribute, sublicense, and/or sell copies of the Software, and to * permit persons to whom the Software is furnished to do so, subject to * the following conditions: * * The above copyright notice and this permission notice shall be * included in all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * */ #include "keytar.h" #include #include #include namespace keytar { namespace { #ifdef __GNUC__ #pragma GCC diagnostic ignored "-Wmissing-field-initializers" #endif const SecretSchema kSchema = { "net.poedit.Credentials", SECRET_SCHEMA_NONE, { { "service", SECRET_SCHEMA_ATTRIBUTE_STRING }, { "user", SECRET_SCHEMA_ATTRIBUTE_STRING }, { NULL, SecretSchemaAttributeType(0) }, } }; } // namespace bool AddPassword(const std::string& service, const std::string& user, const std::string& password) { std::string label = "Poedit: " + service; if (!user.empty()) label += " (" + user + ")"; GError *error = NULL; gboolean result = secret_password_store_sync( &kSchema, SECRET_COLLECTION_DEFAULT, label.c_str(), password.c_str(), NULL, // not cancellable &error, "service", service.c_str(), "user", user.c_str(), NULL); if (error != NULL) { fprintf(stderr, "%s\n", error->message); g_error_free(error); } return result; } bool GetPassword(const std::string& service, const std::string& user, std::string* password) { GError *error = NULL; gchar* raw_passwords; raw_passwords = secret_password_lookup_sync( &kSchema, NULL, // not cancellable &error, "service", service.c_str(), "user", user.c_str(), NULL); if (error != NULL) { fprintf(stderr, "%s\n", error->message); g_error_free(error); return false; } else if (raw_passwords == NULL) { return false; } else { *password = raw_passwords; } secret_password_free(raw_passwords); return true; } bool DeletePassword(const std::string& service, const std::string& user) { GError *error = NULL; gboolean result = secret_password_clear_sync( &kSchema, NULL, // not cancellable &error, "service", service.c_str(), "user", user.c_str(), NULL); if (error != NULL) { fprintf(stderr, "%s\n", error->message); g_error_free(error); } return result; } } // namespace keytar poedit-2.0.6/src/qa_checks.cpp0000664000372000037200000002524013230131554013140 00000000000000/* * This file is part of Poedit (https://poedit.net) * * Copyright (C) 2017-2018 Vaclav Slavik * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * DEALINGS IN THE SOFTWARE. * */ #include "qa_checks.h" #include #include // ------------------------------------------------------------- // QACheck implementations // ------------------------------------------------------------- namespace QA { class NotAllPlurals : public QACheck { public: bool CheckItem(CatalogItemPtr item) override { if (!item->HasPlural()) return false; bool foundTranslated = false; bool foundEmpty = false; for (auto& s: item->GetTranslations()) { if (s.empty()) foundEmpty = true; else foundTranslated = true; } if (foundEmpty && foundTranslated) { item->SetIssue(CatalogItem::Issue::Warning, _("Not all plural forms are translated.")); return true; } return false; } }; class CaseMismatch : public QACheck { public: CaseMismatch(Language lang) : m_lang(lang.Lang()) { } bool CheckString(CatalogItemPtr item, const wxString& source, const wxString& translation) override { if (u_isupper(source[0]) && u_islower(translation[0])) { item->SetIssue(CatalogItem::Issue::Warning, _("The translation should start as a sentence.")); return true; } if (u_islower(source[0]) && u_isupper(translation[0])) { if (m_lang != "de") { item->SetIssue(CatalogItem::Issue::Warning, _("The translation should start with a lowercase character.")); return true; } // else: German nouns start uppercased, this would cause too many false positives } return false; } private: std::string m_lang; }; class WhitespaceMismatch : public QACheck { public: bool CheckString(CatalogItemPtr item, const wxString& source, const wxString& translation) override { if (u_isspace(source[0]) && !u_isspace(translation[0])) { item->SetIssue(CatalogItem::Issue::Warning, _(L"The translation doesn’t start with a space.")); return true; } if (!u_isspace(source[0]) && u_isspace(translation[0])) { item->SetIssue(CatalogItem::Issue::Warning, _(L"The translation starts with a space, but the source text doesn’t.")); return true; } if (source.Last() == '\n' && translation.Last() != '\n') { item->SetIssue(CatalogItem::Issue::Warning, _(L"The translation is missing a newline at the end.")); return true; } if (source.Last() != '\n' && translation.Last() == '\n') { item->SetIssue(CatalogItem::Issue::Warning, _(L"The translation ends with a newline, but the source text doesn’t.")); return true; } if (u_isspace(source.Last()) && !u_isspace(translation.Last())) { item->SetIssue(CatalogItem::Issue::Warning, _(L"The translation is missing a space at the end.")); return true; } if (!u_isspace(source.Last()) && u_isspace(translation.Last())) { item->SetIssue(CatalogItem::Issue::Warning, _(L"The translation ends with a space, but the source text doesn’t.")); return true; } return false; } }; class PunctuationMismatch : public QACheck { public: PunctuationMismatch(Language lang) : m_lang(lang.Lang()) { } bool CheckString(CatalogItemPtr item, const wxString& source, const wxString& translation) override { const UChar32 s_last = source.Last(); const UChar32 t_last = translation.Last(); const bool s_punct = u_ispunct(s_last); const bool t_punct = u_ispunct(t_last); if (u_getIntPropertyValue(s_last, UCHAR_BIDI_PAIRED_BRACKET_TYPE) == U_BPT_CLOSE || u_getIntPropertyValue(t_last, UCHAR_BIDI_PAIRED_BRACKET_TYPE) == U_BPT_CLOSE) { // too many reordering related false positives for brackets // e.g. "your {site} account" -> "váš účet na {site}" if ((wchar_t)u_getBidiPairedBracket(s_last) != (wchar_t)source[0]) { return false; } else { // OTOH, it's desirable to check strings fully enclosed in brackets like "(unsaved)" if (source.find_first_of((wchar_t)s_last, 1) != source.size() - 1) { // it's more complicated, possibly something like "your {foo} on {bar}" return false; } } } if (s_punct && !t_punct) { item->SetIssue(CatalogItem::Issue::Warning, wxString::Format(_(L"The translation should end with “%s”."), wxString(wxUniChar(s_last)))); return true; } else if (!s_punct && t_punct) { item->SetIssue(CatalogItem::Issue::Warning, wxString::Format(_(L"The translation should not end with “%s”."), wxString(wxUniChar(t_last)))); return true; } else if (s_punct && t_punct && s_last != t_last) { if (t_last == L'…' && source.EndsWith("...")) { // as a special case, allow translating ... (3 dots) as … (ellipsis) } else if (u_hasBinaryProperty(s_last, UCHAR_QUOTATION_MARK) && u_hasBinaryProperty(t_last, UCHAR_QUOTATION_MARK)) { // don't check for correct quotes for now, accept any quotations marks as equal } else if (IsEquivalent(s_last, t_last)) { // some characters are mostly equivalent and we shouldn't warn about them } else { item->SetIssue(CatalogItem::Issue::Warning, wxString::Format(_(L"The translation ends with “%s”, but the source text ends with “%s”."), wxString(wxUniChar(t_last)), wxString(wxUniChar(s_last)))); return true; } } return false; } private: bool IsEquivalent(UChar32 src, UChar32 trans) const { if (src == trans) return true; if (m_lang == "zh" || m_lang == "ja") { // Chinese uses full-width punctuation. // See https://en.wikipedia.org/wiki/Chinese_punctuation switch (src) { case '.': return trans == L'。'; case ',': return trans == L'、'; case '!': return trans == L'!'; case '?': return trans == L'?'; case ':': return trans == L':'; case '(': return trans == L'('; case ')': return trans == L')'; default: break; } } else if (m_lang == "ar" || m_lang == "fa") { // In Arabic (but not other RTL languages), some punctuation is mirrored. switch (src) { case ';': return trans == L'؛'; case '?': return trans == L'؟'; case ',': return trans == L'،'; default: break; } } return false; } std::string m_lang; }; } // namespace QA // ------------------------------------------------------------- // QACheck support code // ------------------------------------------------------------- bool QACheck::CheckItem(CatalogItemPtr item) { if (!item->GetTranslation().empty() && CheckString(item, item->GetString(), item->GetTranslation())) return true; if (item->HasPlural()) { unsigned count = item->GetNumberOfTranslations(); for (unsigned i = 1; i < count; i++) { auto t = item->GetTranslation(i); if (!t.empty() && CheckString(item, item->GetPluralString(), t)) return true; } } return false; } bool QACheck::CheckString(CatalogItemPtr /*item*/, const wxString& /*source*/, const wxString& /*translation*/) { wxFAIL_MSG("not implemented - must override CheckString OR CheckItem"); return false; } // ------------------------------------------------------------- // QAChecker // ------------------------------------------------------------- int QAChecker::Check(Catalog& catalog) { // TODO: parallelize this (make async tasks for chunks of the catalog) // doing it per-checker is MT-unsafe with API that calls SetIssue()! int issues = 0; for (auto& i: catalog.items()) issues += Check(i); return issues; } int QAChecker::Check(CatalogItemPtr item) { int issues = 0; for (auto& c: m_checks) { if (item->GetString().empty() || (item->HasPlural() && item->GetPluralString().empty())) continue; if (c->CheckItem(item)) issues++; } return issues; } std::shared_ptr QAChecker::GetFor(Catalog& catalog) { auto lang = catalog.GetLanguage(); auto c = std::make_shared(); c->AddCheck(); c->AddCheck(lang); c->AddCheck(); c->AddCheck(lang); return c; } poedit-2.0.6/src/crowdin_gui.cpp0000664000372000037200000005171213230131554013533 00000000000000/* * This file is part of Poedit (https://poedit.net) * * Copyright (C) 2015-2018 Vaclav Slavik * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * DEALINGS IN THE SOFTWARE. * */ #include "crowdin_gui.h" #include "crowdin_client.h" #include "catalog.h" #include "cloud_sync.h" #include "concurrency.h" #include "customcontrols.h" #include "errors.h" #include "hidpi.h" #include "languagectrl.h" #include "str_helpers.h" #include "utility.h" #include #include #include #include #include #include #include #include #include #include #include #include #if !wxCHECK_VERSION(3,1,0) #define CenterVertical() Center() #endif #include CrowdinLoginPanel::CrowdinLoginPanel(wxWindow *parent, int flags) : wxPanel(parent, wxID_ANY), m_state(State::Uninitialized) { wxBoxSizer *sizer = new wxBoxSizer(wxVERTICAL); sizer->SetMinSize(PX(400), -1); SetSizer(sizer); sizer->AddSpacer(PX(10)); auto logo = new wxStaticBitmap(this, wxID_ANY, wxArtProvider::GetBitmap("CrowdinLogo")); logo->SetCursor(wxCURSOR_HAND); logo->Bind(wxEVT_LEFT_UP, [](wxMouseEvent&){ wxLaunchDefaultBrowser(CrowdinClient::WrapLink("/")); }); sizer->Add(logo, wxSizerFlags().PXDoubleBorder(wxBOTTOM)); auto explain = new ExplanationLabel(this, _("Crowdin is an online localization management platform and collaborative translation tool. Poedit can seamlessly sync PO files managed at Crowdin.")); sizer->Add(explain, wxSizerFlags().Expand()); m_loginInfo = new wxBoxSizer(wxHORIZONTAL); auto loginInfoContainer = new wxBoxSizer(wxVERTICAL); loginInfoContainer->SetMinSize(-1, PX(50)); loginInfoContainer->AddStretchSpacer(); loginInfoContainer->Add(m_loginInfo, wxSizerFlags().Center()); loginInfoContainer->AddStretchSpacer(); sizer->Add(loginInfoContainer, wxSizerFlags().Expand().ReserveSpaceEvenIfHidden().Border(wxTOP|wxBOTTOM, PX(10))); m_signIn = new wxButton(this, wxID_ANY, MSW_OR_OTHER(_("Sign in"), _("Sign In"))); m_signIn->Bind(wxEVT_BUTTON, &CrowdinLoginPanel::OnSignIn, this); m_signOut= new wxButton(this, wxID_ANY, MSW_OR_OTHER(_("Sign out"), _("Sign Out"))); m_signOut->Bind(wxEVT_BUTTON, &CrowdinLoginPanel::OnSignOut, this); auto learnMore = new LearnAboutCrowdinLink(this); auto buttons = new wxBoxSizer(wxHORIZONTAL); sizer->Add(buttons, wxSizerFlags().Expand().Border(wxBOTTOM, 1)); buttons->Add(learnMore, wxSizerFlags().Center().Border(wxLEFT, PX(LearnMoreLink::EXTRA_INDENT))); buttons->AddStretchSpacer(); buttons->Add(m_signIn, wxSizerFlags()); buttons->Add(m_signOut, wxSizerFlags()); if (flags & DialogButtons) { auto cancel = new wxButton(this, wxID_CANCEL); #ifdef __WXMSW__ buttons->Add(cancel, wxSizerFlags().Border(wxLEFT, PX(3))); #else buttons->Insert(2, cancel, wxSizerFlags().Border(wxRIGHT, PX(6))); #endif m_signIn->SetDefault(); m_signIn->SetFocus(); } ChangeState(State::Uninitialized); } void CrowdinLoginPanel::EnsureInitialized() { if (m_state != State::Uninitialized) return; if (CrowdinClient::Get().IsSignedIn()) UpdateUserInfo(); else ChangeState(State::SignedOut); } void CrowdinLoginPanel::ChangeState(State state) { m_state = state; bool canSignIn = (state == State::SignedOut || state == State::Authenticating); auto sizer = m_signIn->GetContainingSizer(); m_signIn->GetContainingSizer()->Show(m_signIn, canSignIn); if (m_signOut) m_signOut->GetContainingSizer()->Show(m_signOut, !canSignIn); sizer->Layout(); CreateLoginInfoControls(state); } void CrowdinLoginPanel::CreateLoginInfoControls(State state) { auto sizer = m_loginInfo; sizer->Clear(/*delete_windows=*/true); switch (state) { case State::Authenticating: case State::UpdatingInfo: { auto text = (state == State::Authenticating) ? _(L"Waiting for authentication…") : _(L"Updating user information…"); auto waitingLabel = new ActivityIndicator(this); sizer->Add(waitingLabel, wxSizerFlags().Center()); waitingLabel->Start(text); break; } case State::Uninitialized: case State::SignedOut: { // nothing to show in the UI except for "sign in" button break; }; case State::SignedIn: { auto account = new wxStaticText(this, wxID_ANY, _("Signed in as:")); account->SetForegroundColour(SecondaryLabel::GetTextColor()); auto name = new wxStaticText(this, wxID_ANY, m_userName); #ifdef __WXGTK3__ // This is needed to avoid missizing text with bold font. See // https://github.com/vslavik/poedit/pull/411 and https://trac.wxwidgets.org/ticket/16088 name->SetLabelMarkup("" + EscapeMarkup(m_userName) + ""); #else name->SetFont(name->GetFont().Bold()); #endif auto username = new SecondaryLabel(this, m_userLogin); sizer->Add(account, wxSizerFlags().BORDER_MACOS(wxTOP, PX(3))); sizer->AddSpacer(PX(2)); auto box = new wxBoxSizer(wxVERTICAL); box->Add(name, wxSizerFlags().Left()); box->Add(username, wxSizerFlags().Left()); sizer->Add(box); break; } } Layout(); } void CrowdinLoginPanel::UpdateUserInfo() { ChangeState(State::UpdatingInfo); CrowdinClient::Get().GetUserInfo() .then_on_window(this, [=](CrowdinClient::UserInfo u) { m_userName = u.name; m_userLogin = u.login; ChangeState(State::SignedIn); }) .catch_all([](dispatch::exception_ptr){}); } void CrowdinLoginPanel::OnSignIn(wxCommandEvent&) { ChangeState(State::Authenticating); CrowdinClient::Get().Authenticate() .then_on_window(this, &CrowdinLoginPanel::OnUserSignedIn); } void CrowdinLoginPanel::OnUserSignedIn() { UpdateUserInfo(); Raise(); } void CrowdinLoginPanel::OnSignOut(wxCommandEvent&) { CrowdinClient::Get().SignOut(); ChangeState(State::SignedOut); } LearnAboutCrowdinLink::LearnAboutCrowdinLink(wxWindow *parent, const wxString& text) : LearnMoreLink(parent, CrowdinClient::WrapLink("/"), text.empty() ? (MSW_OR_OTHER(_("Learn more about Crowdin"), _("Learn More About Crowdin"))) : text) { } namespace { class CrowdinLoginDialog : public wxDialog { public: CrowdinLoginDialog(wxWindow *parent) : wxDialog(parent, wxID_ANY, _("Sign in to Crowdin")) { auto topsizer = new wxBoxSizer(wxHORIZONTAL); auto panel = new Panel(this); panel->SetClientSize(panel->GetBestSize()); topsizer->Add(panel, wxSizerFlags(1).Expand().Border(wxALL, PX(15))); SetSizerAndFit(topsizer); CenterOnParent(); } private: class Panel : public CrowdinLoginPanel { public: Panel(CrowdinLoginDialog *parent) : CrowdinLoginPanel(parent, DialogButtons), m_owner(parent) { EnsureInitialized(); } protected: void OnUserSignedIn() override { m_owner->Raise(); m_owner->EndModal(wxID_OK); } CrowdinLoginDialog *m_owner; }; }; class CrowdinOpenDialog : public wxDialog { public: CrowdinOpenDialog(wxWindow *parent) : wxDialog(parent, wxID_ANY, _("Open Crowdin translation")) { auto topsizer = new wxBoxSizer(wxVERTICAL); topsizer->SetMinSize(PX(400), -1); topsizer->AddSpacer(PX(10)); auto pickers = new wxFlexGridSizer(2, wxSize(PX(5),PX(6))); pickers->AddGrowableCol(1); topsizer->Add(pickers, wxSizerFlags().Expand().PXDoubleBorderAll()); pickers->Add(new wxStaticText(this, wxID_ANY, _("Project:")), wxSizerFlags().CenterVertical().Right().BORDER_MACOS(wxTOP, 1)); m_project = new wxChoice(this, wxID_ANY); pickers->Add(m_project, wxSizerFlags().Expand().CenterVertical()); pickers->Add(new wxStaticText(this, wxID_ANY, _("Language:")), wxSizerFlags().CenterVertical().Right().BORDER_MACOS(wxTOP, 1)); m_language = new wxChoice(this, wxID_ANY); pickers->Add(m_language, wxSizerFlags().Expand().CenterVertical()); pickers->AddSpacer(PX(5)); pickers->AddSpacer(PX(5)); pickers->Add(new wxStaticText(this, wxID_ANY, _("File:")), wxSizerFlags().CenterVertical().Right().BORDER_MACOS(wxTOP, 1)); m_file = new wxChoice(this, wxID_ANY); pickers->Add(m_file, wxSizerFlags().Expand().CenterVertical()); m_activity = new ActivityIndicator(this); topsizer->AddSpacer(PX(5)); topsizer->Add(m_activity, wxSizerFlags().Expand().PXDoubleBorder(wxLEFT|wxRIGHT)); topsizer->AddSpacer(PX(5)); auto buttons = CreateButtonSizer(wxOK | wxCANCEL); auto ok = static_cast(FindWindow(wxID_OK)); ok->SetDefault(); #ifdef __WXOSX__ topsizer->Add(buttons, wxSizerFlags().Expand()); #else topsizer->Add(buttons, wxSizerFlags().Expand().PXBorderAll()); topsizer->AddSpacer(PX(5)); #endif SetSizerAndFit(topsizer); CenterOnParent(); m_project->Bind(wxEVT_CHOICE, [=](wxCommandEvent&){ OnProjectSelected(); }); m_file->Bind(wxEVT_CHOICE, [=](wxCommandEvent&){ OnFileSelected(); }); ok->Bind(wxEVT_UPDATE_UI, &CrowdinOpenDialog::OnUpdateOK, this); ok->Bind(wxEVT_BUTTON, &CrowdinOpenDialog::OnOK, this); ok->Disable(); EnableAllChoices(false); FetchProjects(); } wxString OutLocalFilename; private: void EnableAllChoices(bool enable = true) { m_project->Enable(enable); m_file->Enable(enable); m_language->Enable(enable); } void FetchProjects() { m_activity->Start(); CrowdinClient::Get().GetUserProjects() .then_on_window(this, &CrowdinOpenDialog::OnFetchedProjects) .catch_all(m_activity->HandleError); } void OnFetchedProjects(std::vector prjs) { m_projects = prjs; m_project->Append(""); for (auto& p: prjs) m_project->Append(p.name); m_project->Enable(!prjs.empty()); if (prjs.empty()) m_activity->StopWithError(_("No translation projects listed in your Crowdin account.")); else m_activity->Stop(); if (prjs.size() == 1) { m_project->SetSelection(1); OnProjectSelected(); } } void OnProjectSelected() { auto sel = m_project->GetSelection(); if (sel > 0) { m_activity->Start(); EnableAllChoices(false); CrowdinClient::Get().GetProjectInfo(m_projects[sel-1].identifier) .then_on_window(this, &CrowdinOpenDialog::OnFetchedProjectInfo) .catch_all(m_activity->HandleError); } } void OnFetchedProjectInfo(CrowdinClient::ProjectInfo prj) { m_info = prj; // Put supported files first in the list: std::vector f_unsup; m_info.files.clear(); m_supportedFilesCount = 0; for (auto& i: prj.files) { if (IsFileSupported(i)) { m_info.files.push_back(i); m_supportedFilesCount++; } else { f_unsup.push_back(i); } } std::move(f_unsup.begin(), f_unsup.end(), std::inserter(m_info.files, m_info.files.end())); m_language->Clear(); m_language->Append(""); for (auto& i: m_info.languages) m_language->Append(i.DisplayName()); m_file->Clear(); m_file->Append(""); for (auto& i: m_info.files) { if (IsFileSupported(i)) { m_file->Append(i); } else { /// TRANSLATORS: This is a file selector list, %s is filename, and it is shown for Crowdin files not editable in Poedit m_file->Append(wxString::Format(L"%s — not supported", i)); } } EnableAllChoices(); m_activity->Stop(); if (m_info.languages.size() == 1) { m_language->SetSelection(1); } else { auto preferred = LanguageDialog::GetLastChosen(); if (preferred.IsValid()) { for (size_t i = 0; i < m_info.languages.size(); i++) { if (m_info.languages[i] == preferred) { m_language->SetSelection(1 + int(i)); break; } } } } if (m_supportedFilesCount == 1) m_file->SetSelection(1); if (m_supportedFilesCount == 0) { m_activity->StopWithError(_("This project has no files that can be translated in Poedit.")); m_file->Disable(); m_language->Disable(); } } void OnFileSelected() { auto filesel = m_file->GetSelection(); if (filesel - 1 < m_supportedFilesCount) m_activity->Stop(); else m_activity->StopWithError(_(L"This file can only be edited in Crowdin’s web interface.")); } void OnUpdateOK(wxUpdateUIEvent& e) { auto filesel = m_file->GetSelection(); e.Enable(!m_activity->IsRunning() && m_project->GetSelection() > 0 && m_language->GetSelection() > 0 && filesel > 0 && filesel - 1 < m_supportedFilesCount); } void OnOK(wxCommandEvent&) { auto crowdin_prj = m_info.identifier; auto crowdin_file = m_info.files[m_file->GetSelection() - 1]; auto crowdin_lang = m_info.languages[m_language->GetSelection() - 1]; LanguageDialog::SetLastChosen(crowdin_lang); OutLocalFilename = CreateLocalFilename(crowdin_file, crowdin_lang); m_activity->Start(_(L"Downloading latest translations…")); auto outfile = std::make_shared(OutLocalFilename); CrowdinClient::Get().DownloadFile( crowdin_prj, crowdin_file, crowdin_lang, outfile->FileName().ToStdWstring() ) .then_on_window(this, [=]{ outfile->Commit(); AcceptAndClose(); }) .catch_all(m_activity->HandleError); } bool IsFileSupported(const wxString& name) const { return boost::ends_with(name, ".po") || boost::ends_with(name, ".pot"); } wxString CreateLocalFilename(const wxString& name, const Language& lang) { wxString cache; #if defined(__WXOSX__) cache = wxGetHomeDir() + "/Library/Caches/net.poedit.Poedit"; #elif defined(__UNIX__) if (!wxGetEnv("XDG_CACHE_HOME", &cache)) cache = wxGetHomeDir() + "/.cache"; cache += "/poedit"; #else cache = wxStandardPaths::Get().GetUserDataDir() + wxFILE_SEP_PATH + "Cache"; #endif cache += wxFILE_SEP_PATH; cache += "Crowdin"; if (!wxFileName::DirExists(cache)) wxFileName::Mkdir(cache, wxS_DIR_DEFAULT, wxPATH_MKDIR_FULL); auto basename = name.AfterLast('/').BeforeLast('.'); return wxString::Format("%s%c%s_%s_%s.po", cache, wxFILE_SEP_PATH, m_info.name, basename, lang.Code()); } private: wxButton *m_ok; wxChoice *m_project, *m_file, *m_language; ActivityIndicator *m_activity; std::vector m_projects; CrowdinClient::ProjectInfo m_info; int m_supportedFilesCount; }; } // anonymous namespace void CrowdinOpenFile(wxWindow *parent, std::function onLoaded) { if (!CrowdinClient::Get().IsSignedIn()) { wxWindowPtr login(new CrowdinLoginDialog(parent)); login->ShowWindowModalThenDo([login,parent,onLoaded](int retval){ if (retval == wxID_OK) CrowdinOpenFile(parent, onLoaded); }); return; } wxWindowPtr dlg(new CrowdinOpenDialog(parent)); dlg->ShowWindowModalThenDo([dlg,onLoaded](int retval) { dlg->Hide(); if (retval == wxID_OK) onLoaded(dlg->OutLocalFilename); }); } void CrowdinSyncFile(wxWindow *parent, std::shared_ptr catalog, std::function)> onDone) { if (!CrowdinClient::Get().IsSignedIn()) { wxWindowPtr login(new CrowdinLoginDialog(parent)); login->ShowWindowModalThenDo([login,parent,catalog,onDone](int retval){ if (retval == wxID_OK) CrowdinSyncFile(parent, catalog, onDone); }); return; } const auto& header = catalog->Header(); auto crowdin_prj = header.GetHeader("X-Crowdin-Project"); auto crowdin_file = header.GetHeader("X-Crowdin-File"); auto crowdin_lang = header.HasHeader("X-Crowdin-Language") ? Language::TryParse(header.GetHeader("X-Crowdin-Language").ToStdWstring()) : catalog->GetLanguage(); wxWindowPtr dlg(new CloudSyncProgressWindow(parent)); auto handle_error = [=](dispatch::exception_ptr e){ dispatch::on_main([=]{ dlg->EndModal(wxID_CANCEL); wxWindowPtr err(new wxMessageDialog ( parent, _("Syncing with Crowdin failed."), _("Crowdin error"), wxOK | wxICON_ERROR )); err->SetExtendedMessage(DescribeException(e)); err->ShowWindowModalThenDo([err](int){}); }); }; dlg->Activity->Start(_(L"Uploading translations…")); // TODO: nicer API for this. // This must be done right after entering the modal loop (on non-OSX) dlg->CallAfter([=]{ CrowdinClient::Get().UploadFile( str::to_utf8(crowdin_prj), str::to_wstring(crowdin_file), crowdin_lang, catalog->SaveToBuffer() ) .then([=]{ auto tmpdir = std::make_shared(); auto outfile = tmpdir->CreateFileName("crowdin.po"); dispatch::on_main([=]{ dlg->Activity->Start(_(L"Downloading latest translations…")); }); return CrowdinClient::Get().DownloadFile( str::to_utf8(crowdin_prj), str::to_wstring(crowdin_file), crowdin_lang, outfile.ToStdWstring() ) .then_on_main([=] { CatalogPtr newcat = std::make_shared(outfile); newcat->SetFileName(catalog->GetFileName()); tmpdir->Clear(); dlg->EndModal(wxID_OK); onDone(newcat); }) .catch_all(handle_error); }) .catch_all(handle_error); }); dlg->ShowWindowModal(); } dispatch::future CrowdinSyncDestination::Upload(CatalogPtr file) { const auto& header = file->Header(); auto crowdin_prj = header.GetHeader("X-Crowdin-Project"); auto crowdin_file = header.GetHeader("X-Crowdin-File"); auto crowdin_lang = header.HasHeader("X-Crowdin-Language") ? Language::TryParse(header.GetHeader("X-Crowdin-Language").ToStdWstring()) : file->GetLanguage(); return CrowdinClient::Get().UploadFile( str::to_utf8(crowdin_prj), str::to_wstring(crowdin_file), crowdin_lang, file->SaveToBuffer() ); } poedit-2.0.6/src/attentionbar.h0000664000372000037200000001154313230131554013357 00000000000000/* * This file is part of Poedit (https://poedit.net) * * Copyright (C) 2008-2018 Vaclav Slavik * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * DEALINGS IN THE SOFTWARE. * */ #ifndef _ATTENTIONBAR_H_ #define _ATTENTIONBAR_H_ #include #include #include #include class WXDLLIMPEXP_FWD_CORE wxCheckBox; class WXDLLIMPEXP_FWD_CORE wxStaticText; class WXDLLIMPEXP_FWD_CORE wxStaticBitmap; class WXDLLIMPEXP_FWD_CORE wxSizer; class AutoWrappingText; /// Message to be displayed in AttentionBar class AttentionMessage { public: /// Kind of the message enum Kind { Warning, Question, Error }; /// Information passed to the action callback struct ActionInfo { /// State of the (optional) checkbox bool checkbox; }; /** Ctor. @param id ID of the message. This ID must be globally unique within the application. It is used to record this message's status, i.e. if the user marked it as "don't show again" etc. @param kind Kind of the message. @param text Text of the message; this should be kept reasonably short. @see AddToBlacklist */ AttentionMessage(const wxString& id, Kind kind, const wxString& text) : m_id(id), m_kind(kind), m_text(text), m_explanation("") {} typedef std::function Callback; typedef std::function CallbackNoArgs; /** Adds an action button to the bar. By default, a close button is shown, this makes it possible to add custom buttons. @param label Short label for the action. @param callback Function to call when the button is clicked. */ void AddAction(const wxString& label, CallbackNoArgs callback) { AddActionWithInfo(label, [=](ActionInfo){ callback(); }); } /// Similarly to AddAction(), but uses callback that is passed ActionInfo void AddActionWithInfo(const wxString& label, Callback callback) { m_actions.push_back(std::make_pair(label, callback)); } /// Adds "Don't show again" action. void AddDontShowAgain(); /// Set additional explanatory text void SetExplanation(const wxString& txt) { m_explanation = txt; } /// Add checkbox to the message void AddCheckbox(const wxString& label) { m_checkbox = label; } wxString m_id; Kind m_kind; wxString m_text; wxString m_explanation; wxString m_checkbox; typedef std::pair Action; typedef std::vector Actions; Actions m_actions; /** Adds message with given ID to blacklist, i.e. it won't be shown ever again. */ static void AddToBlacklist(const wxString& id); /// Returns true if @a id is on the blacklist static bool IsBlacklisted(const wxString& id); /// Returns true if this message is on the blacklist bool IsBlacklisted() const { return IsBlacklisted(m_id); } }; /** Attention bar is a tooltip-colored bar displayed on top of the main window (a la Firefox or other browsers). */ class AttentionBar : public wxPanel { public: AttentionBar(wxWindow *parent); /** Shows the message (unless the user disallowed showing this particular message. */ void ShowMessage(const AttentionMessage& msg); /// Hides currently shown message void HideMessage(); private: void OnClose(wxCommandEvent& event); void OnAction(wxCommandEvent& event); void OnPaint(wxPaintEvent& event); private: #ifndef __WXGTK__ wxStaticBitmap *m_icon; #endif AutoWrappingText *m_label; AutoWrappingText *m_explanation; wxCheckBox *m_checkbox; wxSizer *m_buttons; typedef std::map ActionsMap; ActionsMap m_actions; DECLARE_EVENT_TABLE() }; #endif // _ATTENTIONBAR_H_ poedit-2.0.6/src/version.h0000664000372000037200000000255113230131554012351 00000000000000/* * This file is part of Poedit (https://poedit.net) * * Copyright (C) 2010-2018 Vaclav Slavik * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * DEALINGS IN THE SOFTWARE. * */ #ifndef _VERSION_H_ #define _VERSION_H_ #define POEDIT_VERSION "2.0.6" #define POEDIT_VERSION_SHORT "2.0.6" #define POEDIT_VERSION_WIN 2,0,6 #endif // _VERSION_H_ poedit-2.0.6/src/http_client.cpp0000664000372000037200000000671113230131554013536 00000000000000/* * This file is part of Poedit (https://poedit.net) * * Copyright (C) 2015-2018 Vaclav Slavik * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * DEALINGS IN THE SOFTWARE. * */ #include "http_client.h" #include "str_helpers.h" #include #include #include #include #include multipart_form_data::multipart_form_data() { boost::uuids::random_generator gen; m_boundary = boost::uuids::to_string(gen()); } void multipart_form_data::add_value(const std::string& name, const std::string& value) { m_body += "--" + m_boundary + "\r\n"; m_body += "Content-Disposition: form-data; name=\"" + name + "\"\r\n\r\n"; m_body += value; m_body += "\r\n"; } void multipart_form_data::add_file(const std::string& name, const std::string& filename, const std::string& file_content) { m_body += "--" + m_boundary + "\r\n"; m_body += "Content-Disposition: form-data; name=\"" + name + "\"; filename=\"" + filename + "\"\r\n"; m_body += "Content-Type: application/octet-stream\r\n"; m_body += "Content-Transfer-Encoding: binary\r\n"; m_body += "\r\n"; m_body += file_content; m_body += "\r\n"; } std::string multipart_form_data::content_type() const { return "multipart/form-data; boundary=" + m_boundary; } std::string multipart_form_data::body() const { return m_body + "--" + m_boundary + "--\r\n\r\n"; } void urlencoded_data::add_value(const std::string& name, const std::string& value) { if (!m_body.empty()) m_body += '&'; m_body += name; m_body += '='; m_body += http_client::url_encode(value); } json_data::json_data(const json& data) { m_body = data.dump(); } std::string http_client::url_encode(const std::string& s, int flags) { std::ostringstream escaped; escaped.fill('0'); escaped << std::hex; for (auto c: s) { if (c == '-' || c == '_' || c == '.' || c == '~' || (c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z') || (c >= '0' && c <= '9')) { escaped << c; } else if (c == ' ' && !(flags & encode_no_plus)) { escaped << '+'; } else { escaped << '%' << std::setw(2) << int((unsigned char)c); } } return escaped.str(); } std::string http_client::url_encode(const std::wstring& s, int flags) { return url_encode(str::to_utf8(s), flags); } poedit-2.0.6/src/language.cpp0000664000372000037200000003625213230131554013007 00000000000000/* * This file is part of Poedit (https://poedit.net) * * Copyright (C) 2013-2018 Vaclav Slavik * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * DEALINGS IN THE SOFTWARE. * */ #include "language.h" #include #include #include #include #include #include #include #include #include #include #include "str_helpers.h" #ifdef HAVE_CLD2 #ifdef HAVE_CLD2_PUBLIC_COMPACT_LANG_DET_H #include #include #else #include "public/compact_lang_det.h" #include "public/encodings.h" #endif #endif // GCC's libstdc++ didn't have functional std::regex implementation until 4.9 #if (defined(__GNUC__) && !defined(__clang__) && !wxCHECK_GCC_VERSION(4,9)) #include using boost::wregex; using boost::regex_match; #else #include using std::wregex; using std::regex_match; #endif namespace { // see http://www.gnu.org/software/gettext/manual/html_node/Header-Entry.html // for description of permitted formats const wregex RE_LANG_CODE(L"([a-z]){2,3}(_([A-Z]{2}|[0-9]{3}))?(@[a-z]+)?"); // a more permissive variant of the same that TryNormalize() would fix const wregex RE_LANG_CODE_PERMISSIVE(L"([a-zA-Z]){2,3}([_-]([a-zA-Z]{2}|[0-9]{3}))?(@[a-zA-Z]+)?"); // try some normalizations: s/-/_/, case adjustments void TryNormalize(std::wstring& s) { auto begin = s.begin(); auto end = s.end(); size_t pos = s.rfind('@'); if (pos != std::wstring::npos) { for (auto x = begin + pos; x != end; ++x) *x = std::tolower(*x); end = begin + pos; } bool upper = false; for (auto x = begin; x != end; ++x) { if (*x == '-') *x = '_'; if (*x == '_') upper = true; else if (std::isupper(*x) && !upper) *x = std::tolower(*x); else if (std::islower(*x) && upper) *x = std::toupper(*x); } } bool IsISOLanguage(const std::string& s) { const char *test = s.c_str(); for (const char * const* i = icu::Locale::getISOLanguages(); *i != nullptr; ++i) { if (strcmp(test, *i) == 0) return true; } return false; } bool IsISOCountry(const std::string& s) { const char *test = s.c_str(); for (const char * const* i = icu::Locale::getISOCountries(); *i != nullptr; ++i) { if (strcmp(test, *i) == 0) return true; } return false; } // Mapping of names to their respective ISO codes. struct DisplayNamesData { typedef std::unordered_map Map; Map names, namesEng; std::vector sortedNames; }; std::once_flag of_namesList; const DisplayNamesData& GetDisplayNamesData() { static DisplayNamesData data; std::call_once(of_namesList, [=]{ auto locEng = icu::Locale::getEnglish(); std::vector names; int32_t count; const icu::Locale *loc = icu::Locale::getAvailableLocales(count); names.reserve(count); for (int i = 0; i < count; i++, loc++) { auto language = loc->getLanguage(); auto script = loc->getScript(); auto country = loc->getCountry(); auto variant = loc->getVariant(); // TODO: for now, ignore variants here and in FormatForRoundtrip(), // because translating them between gettext and ICU is nontrivial if (variant != nullptr && *variant != '\0') continue; icu::UnicodeString s; loc->getDisplayName(s); names.push_back(s); if (strcmp(language, "zh") == 0 && *country == '\0') { if (strcmp(script, "Hans") == 0) country = "CN"; else if (strcmp(script, "Hant") == 0) country = "TW"; } std::string code(language); if (*country != '\0') { code += '_'; code += country; } if (*script != '\0') { if (strcmp(script, "Latn") == 0) { code += "@latin"; } else if (strcmp(script, "Cyrl") == 0) { // add @cyrillic only if it's not the default already if (strcmp(language, "sr") != 0) code += "@cyrillic"; } } s.foldCase(); data.names[str::to_wstring(s)] = code; loc->getDisplayName(locEng, s); s.foldCase(); data.namesEng[str::to_wstring(s)] = code; } // sort the names alphabetically for data.sortedNames: UErrorCode err = U_ZERO_ERROR; std::unique_ptr coll(icu::Collator::createInstance(err)); if (coll) { coll->setStrength(icu::Collator::SECONDARY); // case insensitive std::sort(names.begin(), names.end(), [&coll](const icu::UnicodeString& a, const icu::UnicodeString& b){ UErrorCode e = U_ZERO_ERROR; return coll->compare(a, b, e) == UCOL_LESS; }); } else { std::sort(names.begin(), names.end()); } // convert into std::wstring data.sortedNames.reserve(names.size()); for (auto s: names) data.sortedNames.push_back(str::to_wstring(s)); }); return data; } std::string DoGetLanguageTag(const Language& lang) { auto l = lang.Lang(); auto c = lang.Country(); auto v = lang.Variant(); auto tag = l; if (v == "latin") tag += "-Latn"; else if (v == "cyrillic") tag += "-Cyrl"; if (!c.empty()) tag += "-" + c; return tag; } bool DoIsRTL(const Language& lang) { #if U_ICU_VERSION_MAJOR_NUM >= 51 auto locale = lang.IcuLocaleName(); UErrorCode err = U_ZERO_ERROR; UScriptCode codes[10]= {USCRIPT_INVALID_CODE}; if (uscript_getCode(locale.c_str(), codes, 10, &err) == 0 || err != U_ZERO_ERROR) return false; // fallback return uscript_isRightToLeft(codes[0]); #else return false; // fallback #endif } } // anonymous namespace void Language::Init(const std::string& code) { m_code = code; if (IsValid()) { m_tag = DoGetLanguageTag(*this); m_direction = DoIsRTL(*this) ? TextDirection::RTL : TextDirection::LTR; } else { m_tag.clear(); m_direction = TextDirection::LTR; } } bool Language::IsValidCode(const std::wstring& s) { return regex_match(s, RE_LANG_CODE); } std::string Language::Lang() const { return m_code.substr(0, m_code.find_first_of("_@")); } std::string Language::Country() const { const size_t pos = m_code.find('_'); if (pos == std::string::npos) return std::string(); const size_t endpos = m_code.rfind('@'); if (endpos == std::string::npos) return m_code.substr(pos+1); else return m_code.substr(pos+1, endpos - (pos+1)); } std::string Language::LangAndCountry() const { return m_code.substr(0, m_code.rfind('@')); } std::string Language::Variant() const { const size_t pos = m_code.rfind('@'); if (pos == std::string::npos) return std::string(); else return m_code.substr(pos + 1); } Language Language::TryParse(const std::wstring& s) { if (IsValidCode(s)) return Language(s); if (s == "zh-Hans") return Language("zh_CN"); else if (s == "zh-Hant") return Language("zh_TW"); // Is it a standard language code? if (regex_match(s, RE_LANG_CODE_PERMISSIVE)) { std::wstring s2(s); TryNormalize(s2); if (IsValidCode(s2)) return Language(s2); } // If not, perhaps it's a human-readable name (perhaps coming from the language control)? auto names = GetDisplayNamesData(); icu::UnicodeString s_icu = str::to_icu(s); s_icu.foldCase(); std::wstring folded = str::to_wstring(s_icu); auto i = names.names.find(folded); if (i != names.names.end()) return Language(i->second); // Maybe it was in English? i = names.namesEng.find(folded); if (i != names.namesEng.end()) return Language(i->second); return Language(); // invalid } Language Language::TryParseWithValidation(const std::wstring& s) { Language lang = Language::TryParse(s); if (!lang.IsValid()) return Language(); // invalid if (!IsISOLanguage(lang.Lang())) return Language(); // invalid auto country = lang.Country(); if (!country.empty() && !IsISOCountry(country)) return Language(); // invalid return lang; } Language Language::FromLegacyNames(const std::string& lang, const std::string& country) { if (lang.empty()) return Language(); // invalid #include "language_impl_legacy.h" std::string code; auto i = isoLanguages.find(lang); if ( i != isoLanguages.end() ) code = i->second; else return Language(); // invalid if (!country.empty()) { auto iC = isoCountries.find(country); if ( iC != isoCountries.end() ) code += "_" + iC->second; } return Language(code); } std::string Language::DefaultPluralFormsExpr() const { if (!IsValid()) return std::string(); static const std::unordered_map forms = { #include "language_impl_plurals.h" }; auto i = forms.find(m_code); if ( i != forms.end() ) return i->second; i = forms.find(LangAndCountry()); if ( i != forms.end() ) return i->second; i = forms.find(Lang()); if ( i != forms.end() ) return i->second; return std::string(); } icu::Locale Language::ToIcu() const { if (!IsValid()) return icu::Locale::getEnglish(); return icu::Locale(IcuLocaleName().c_str()); } wxString Language::DisplayName() const { icu::UnicodeString s; ToIcu().getDisplayName(s); return str::to_wx(s); } wxString Language::LanguageDisplayName() const { icu::UnicodeString s; ToIcu().getDisplayLanguage(s); return str::to_wx(s); } wxString Language::DisplayNameInItself() const { auto loc = ToIcu(); icu::UnicodeString s; loc.getDisplayName(loc, s); return str::to_wx(s); } wxString Language::FormatForRoundtrip() const { // Can't show all variants nicely, but some common one can be auto v = Variant(); if (!v.empty() && v != "latin" && v != "cyrillic") return m_code; wxString disp = DisplayName(); // ICU isn't 100% reliable, some of the display names it produces // (e.g. "Chinese (China)" aren't in the list of known locale names // (here because zh-Trans is preferred to zh_CN). So make sure it can // be parsed back first. if (TryParse(disp.ToStdWstring()).IsValid()) return disp; else return m_code; } const std::vector& Language::AllFormattedNames() { return GetDisplayNamesData().sortedNames; } Language Language::TryGuessFromFilename(const wxString& filename) { wxFileName fn(filename); fn.MakeAbsolute(); // Try matching the filename first: // - entire name // - suffix (foo.cs_CZ.po, wordpressTheme-cs_CZ.po) // - directory name (cs_CZ, cs.lproj, cs/LC_MESSAGES) std::wstring name = fn.GetName().ToStdWstring(); Language lang = Language::TryParseWithValidation(name); if (lang.IsValid()) return lang; size_t pos = name.find_first_of(L".-_"); while (pos != wxString::npos) { auto part = name.substr(pos+1); lang = Language::TryParseWithValidation(part); if (lang.IsValid()) return lang; pos = name.find_first_of(L".-_", pos+1); } auto dirs = fn.GetDirs(); if (!dirs.empty()) { auto d = dirs.rbegin(); if (d->IsSameAs("LC_MESSAGES", /*caseSensitive=*/false)) { if (++d == dirs.rend()) return Language(); // failed to match } wxString rest; if (d->EndsWith(".lproj", &rest)) return Language::TryParseWithValidation(rest.ToStdWstring()); else return Language::TryParseWithValidation(d->ToStdWstring()); } return Language(); // failed to match } Language Language::TryDetectFromText(const char *buffer, size_t len, Language probableLanguage) { #ifdef HAVE_CLD2 using namespace CLD2; CLDHints hints = {NULL, NULL, UNKNOWN_ENCODING, UNKNOWN_LANGUAGE}; if (probableLanguage.IsValid()) { if (probableLanguage.Lang() == "en") hints.language_hint = ENGLISH; else hints.language_hint = GetLanguageFromName(probableLanguage.LanguageTag().c_str()); } // three best guesses; we don't care, but they must be passed in CLD2::Language language3[3]; int percent3[3]; double normalized_score3[3]; // more result info: int text_bytes; bool is_reliable; auto lang = CLD2::ExtDetectLanguageSummary( buffer, (int)len, /*is_plain_text=*/true, // any embedded HTML markup should be insignificant &hints, /*flags=*/0, language3, percent3, normalized_score3, /*resultchunkvector=*/nullptr, &text_bytes, &is_reliable); if (lang == UNKNOWN_LANGUAGE || !is_reliable) return Language(); // CLD2 penalizes English in bilingual content in some cases as "boilerplate" // because it is tailored for the web. So e.g. 66% English, 33% Italian is // tagged as Italian. // // Poedit's bias is the opposite: English is almost always the correct answer // for PO source language. Fix this up manually. if (lang != language3[0] && language3[0] == CLD2::ENGLISH && language3[1] == lang) lang = language3[0]; return Language::TryParse(LanguageCode(lang)); #else (void)buffer; (void)len; return probableLanguage; #endif } poedit-2.0.6/src/extractors/0000775000372000037200000000000013230132101012753 500000000000000poedit-2.0.6/src/extractors/extractor.cpp0000664000372000037200000002063513230131554015433 00000000000000/* * This file is part of Poedit (https://poedit.net) * * Copyright (C) 2000-2018 Vaclav Slavik * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * DEALINGS IN THE SOFTWARE. * */ #include "extractor.h" #include "extractor_legacy.h" #include "gexecute.h" #include #include #include namespace { // Path matching with support for wildcards struct PathToMatch { wxString path; bool isWildcard; bool MatchesFile(const wxString& fn) const { if (isWildcard) return wxMatchWild(path, fn); else return fn == path || fn.StartsWith(path + "/"); } }; class PathsToMatch { public: PathsToMatch() {} explicit PathsToMatch(const wxArrayString& a) { paths.reserve(a.size()); for (auto& p: a) paths.push_back({p, wxIsWild(p)}); } bool MatchesFile(const wxString& fn) const { for (auto& p: paths) { if (p.MatchesFile(fn)) return true; } return false; } private: std::vector paths; }; int FindInDir(const wxString& basepath, const wxString& dirname, const PathsToMatch& excludedPaths, Extractor::FilesList& output) { if (dirname.empty()) return 0; wxDir dir(basepath + dirname); if (!dir.IsOpened()) return 0; bool cont; wxString filename; int found = 0; cont = dir.GetFirst(&filename, wxEmptyString, wxDIR_FILES); while (cont) { const wxString f = (dirname == ".") ? filename : dirname + "/" + filename; cont = dir.GetNext(&filename); if (excludedPaths.MatchesFile(f)) continue; wxLogTrace("poedit.extractor", " - %s", f); output.push_back(f); found++; } cont = dir.GetFirst(&filename, wxEmptyString, wxDIR_DIRS); while (cont) { const wxString f = (dirname == ".") ? filename : dirname + "/" + filename; cont = dir.GetNext(&filename); if (excludedPaths.MatchesFile(f)) continue; found += FindInDir(basepath, f, excludedPaths, output); } return found; } } // anonymous namespace Extractor::FilesList Extractor::CollectAllFiles(const SourceCodeSpec& sources) { // TODO: Only collect files with recognized extensions wxLogTrace("poedit.extractor", "collecting files:"); const auto basepath = sources.BasePath; const auto excludedPaths = PathsToMatch(sources.ExcludedPaths); FilesList output; for (auto& path: sources.SearchPaths) { if (wxFileName::FileExists(basepath + path)) { if (excludedPaths.MatchesFile(path)) { wxLogTrace("poedit.extractor", "no files found in '%s'", path); continue; } wxLogTrace("poedit.extractor", " - %s", path); output.push_back(path); } else if (!FindInDir(basepath, path, excludedPaths, output)) { wxLogTrace("poedit.extractor", "no files found in '%s'", path); } } // Sort the filenames in some well-defined order. This is because directory // traversal has, generally speaking, undefined order, and the order differs // between filesystems. Finally, the order is reflected in the created PO // files and it is much better for diffs if it remains consistent. std::sort(output.begin(), output.end()); wxLogTrace("poedit.extractor", "finished collecting %d files", (int)output.size()); return output; } wxString Extractor::ExtractWithAll(TempDirectory& tmpdir, const SourceCodeSpec& sourceSpec, const std::vector& files_) { auto files = files_; wxLogTrace("poedit.extractor", "extracting from %d files", (int)files.size()); std::vector subPots; for (auto ex: CreateAllExtractors()) { const auto ex_files = ex->FilterFiles(files); if (ex_files.empty()) continue; wxLogTrace("poedit.extractor", " .. using extractor '%s' for %d files", ex->GetId(), (int)ex_files.size()); auto subPot = ex->Extract(tmpdir, sourceSpec, ex_files); if (!subPot.empty()) subPots.push_back(subPot); if (files.size() > ex_files.size()) { FilesList remaining; remaining.reserve(files.size() - ex_files.size()); // Note that this only works because the lists are sorted: std::set_difference(files.begin(), files.end(), ex_files.begin(), ex_files.end(), std::inserter(remaining, remaining.begin())); std::swap(files, remaining); } else { files.clear(); break; // no more work to do } } wxLogTrace("poedit.extractor", "extraction finished with %d unrecognized files and %d sub-POTs", (int)files.size(), (int)subPots.size()); if (subPots.empty()) { return ""; } else if (subPots.size() == 1) { return subPots.front(); } else { wxLogTrace("poedit.extractor", "merging %d subPOTs", (int)subPots.size()); return ConcatCatalogs(tmpdir, subPots); } } Extractor::FilesList Extractor::FilterFiles(const FilesList& files) const { FilesList out; for (auto& f: files) { if (IsFileSupported(f)) out.push_back(f); } return out; } bool Extractor::IsFileSupported(const wxString& file) const { #ifdef __WXMSW__ auto f = file.Lower(); #else auto& f = file; #endif auto ext = f.AfterLast('.'); if (ext != f && m_extensions.find(ext) != m_extensions.end()) return true; for (auto& w: m_wildcards) { if (f.Matches(w)) return true; } return false; } void Extractor::RegisterExtension(const wxString& ext) { if (ext.Contains(".")) { RegisterWildcard("*." + ext); return; } #ifdef __WXMSW__ m_extensions.insert(ext.Lower()); #else m_extensions.insert(ext); #endif wxLogTrace("poedit.extractor", "%s handles extension %s", GetId(), ext); } void Extractor::RegisterWildcard(const wxString& wildcard) { #ifdef __WXMSW__ m_wildcards.push_back(wildcard.Lower()); #else m_wildcards.push_back(wildcard); #endif wxLogTrace("poedit.extractor", "%s handles %s", GetId(), wildcard); } wxString Extractor::ConcatCatalogs(TempDirectory& tmpdir, const std::vector& files) { if (files.empty()) { return ""; } else if (files.size() == 1) { return files.front(); } auto outfile = tmpdir.CreateFileName("concatenated.pot"); wxString list; for (auto& f: files) list += wxString::Format(" %s", QuoteCmdlineArg(f)); auto cmd = wxString::Format("msgcat --force-po -o %s %s", QuoteCmdlineArg(outfile), list); bool succ = ExecuteGettext(cmd); if (!succ) { wxLogError(_("Failed command: %s"), cmd.c_str()); wxLogError(_("Failed to merge gettext catalogs.")); return ""; } return outfile; } Extractor::ExtractorsList Extractor::CreateAllExtractors() { ExtractorsList all; // User-defined "legacy" extractors take precedence over anything else, // to allow customization of the behavior: CreateAllLegacyExtractors(all); // Standard builtin extractors follow CreateGettextExtractors(all); return all; } poedit-2.0.6/src/extractors/extractor_legacy.cpp0000664000372000037200000002477113230131554016764 00000000000000/* * This file is part of Poedit (https://poedit.net) * * Copyright (C) 2000-2018 Vaclav Slavik * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * DEALINGS IN THE SOFTWARE. * */ #include "extractor_legacy.h" #include "gexecute.h" #include #include #include #include namespace { inline LegacyExtractorSpec LoadExtractorSpec(const wxString& name, wxConfigBase *cfg) { LegacyExtractorSpec info; info.Name = name; info.Enabled = cfg->ReadBool("Enabled", true); info.Extensions = cfg->Read("Extensions", wxEmptyString); info.Command = cfg->Read("Command", wxEmptyString); info.KeywordItem = cfg->Read("KeywordItem", wxEmptyString); info.FileItem = cfg->Read("FileItem", wxEmptyString); info.CharsetItem = cfg->Read("CharsetItem", wxEmptyString); return info; } template inline void DoReadLegacyExtractors(wxConfigBase *cfg, F&& action) { cfg->SetExpandEnvVars(false); wxString list = cfg->Read("/Parsers/CustomExtractorsList", ""); if (list.empty()) list = cfg->Read("/Parsers/List", ""); wxString oldpath = cfg->GetPath(); wxStringTokenizer tkn(list, ";"); while (tkn.HasMoreTokens()) { wxString name = tkn.GetNextToken(); wxString key = name; key.Replace("/", "_"); cfg->SetPath("/Parsers/" + key); action(cfg, name); } cfg->SetPath(oldpath); } // FIXME: Do this in subprocess, avoid changing CWD altogether in main process class CurrentWorkingDirectoryChanger { public: CurrentWorkingDirectoryChanger(const wxString& path) { if (!path.empty() && path != ".") { m_old = wxGetCwd(); wxSetWorkingDirectory(path); } } ~CurrentWorkingDirectoryChanger() { if (!m_old.empty()) wxSetWorkingDirectory(m_old); } private: wxString m_old; }; } // anonymous namespace void LegacyExtractorsDB::Read(wxConfigBase *cfg) { Data.clear(); DoReadLegacyExtractors(cfg, [=](wxConfigBase *c, wxString name) { if (!c->ReadBool("DontUseIn20", false)) Data.push_back(LoadExtractorSpec(name, c)); }); } void LegacyExtractorsDB::Write(wxConfigBase *cfg) { #if 0 // asserts on wxGTK, some bug in wx if (cfg->HasGroup("/Parsers")) cfg->DeleteGroup("/Parsers"); #endif cfg->SetExpandEnvVars(false); size_t i; wxString list; if (!Data.empty()) { list << Data[0].Name; for (i = 1; i < Data.size(); i++) list << ";" << Data[i].Name; } cfg->Write("/Parsers/CustomExtractorsList", list); wxString oldpath = cfg->GetPath(); wxString key; for (const auto& item: Data) { key = item.Name; key.Replace("/", "_"); cfg->SetPath("/Parsers/" + key); cfg->Write("Enabled", item.Enabled); cfg->Write("Extensions", item.Extensions); cfg->Write("Command", item.Command); cfg->Write("KeywordItem", item.KeywordItem); cfg->Write("FileItem", item.FileItem); cfg->Write("CharsetItem", item.CharsetItem); cfg->SetPath(oldpath); } } void LegacyExtractorsDB::RemoveObsoleteExtractors(wxConfigBase *cfg) { // only run the migration once if (cfg->ReadBool("/Parsers/MigratedTo20", false)) return; // Legacy extractor definitions. Now replaced with GettextExtractor. static struct { char enableByDefault; const char *name; const char *exts; } s_gettextLangs[] = { { 1, "C/C++", "*.c;*.cpp;*.cc;*.C;*.c++;*.cxx;*.h;*.hpp;*.hxx;*.hh" }, { 1, "C#", "*.cs" }, { 1, "EmacsLisp", "*.el" }, { 1, "GSettings", "*.gschema.xml" }, { 1, "Glade", "*.glade;*.glade2;*.ui" }, { 1, "AppData", "*.appdata.xml" }, { 1, "Java", "*.java" }, { 1, "JavaScript", "*.js" }, { 1, "Lisp", "*.lisp" }, { 1, "Lua", "*.lua" }, { 1, "ObjectiveC", "*.m" }, { 1, "PHP", "*.php;*.php3;*.php4;*.phtml" }, { 1, "Perl", "*.pl;*.PL;*.pm;*.perl" }, { 1, "Python", "*.py" }, { 0, "RST", "*.rst" }, { 1, "Scheme", "*.scm" }, { 0, "Shell", "*.sh;*.bash" }, { 1, "Smalltalk", "*.st" }, { 1, "TCL", "*.tcl" }, { 1, "Vala", "*.vala" }, { 1, "YCP", "*.ycp" }, { 1, "awk", "*.awk" }, { 1, "librep", "*.jl" }, { 0, NULL, NULL } }; DoReadLegacyExtractors(cfg, [=](wxConfigBase *c, wxString name) { // check if it is a known default extractor; if not, keep it for (size_t i = 0; s_gettextLangs[i].name != NULL; i++) { if (name == s_gettextLangs[i].name) { // build previously used default extractor definition: wxString langflag; if ( wxStrcmp(s_gettextLangs[i].name, "C/C++") == 0 ) langflag = " --language=C++"; else langflag = wxString(" --language=") + s_gettextLangs[i].name; LegacyExtractorSpec ex; ex.Name = s_gettextLangs[i].name; ex.Enabled = (bool)s_gettextLangs[i].enableByDefault; ex.Extensions = s_gettextLangs[i].exts; ex.Command = wxString("xgettext") + langflag + " --add-comments=TRANSLATORS: --force-po -o %o %C %K %F"; ex.KeywordItem = "-k%k"; ex.FileItem = "%f"; ex.CharsetItem = "--from-code=%c"; // load what is stored in the settings: LegacyExtractorSpec loaded = LoadExtractorSpec(name, c); loaded.Enabled = ex.Enabled; if (loaded != ex) { // this bad, but mostly harmless, config was used for ~2 years, so check for it too ex.Command.Replace(" --add-comments=TRANSLATORS: ", " --add-comments=TRANSLATORS: --add-comments=translators: "); } if (loaded == ex) { // mark the extractor as not to be used, but keep it around // to make it possible to downgrade to Poedit 1.8: c->Write("DontUseIn20", true); } // else: keep customized extractor break; } } }); cfg->Write("/Parsers/MigratedTo20", true); } wxString LegacyExtractorSpec::BuildCommand(const std::vector& files, const wxArrayString& keywords, const wxString& output, const wxString& charset) const { wxString cmdline, kline, fline; cmdline = Command; cmdline.Replace("%o", QuoteCmdlineArg(output)); for (auto&kw: keywords) { wxString dummy = KeywordItem; dummy.Replace("%k", kw); kline << " " << dummy; } for (auto fn: files) { #ifdef __WXMSW__ // Gettext tools can't handle Unicode filenames well (due to using // char* arguments), so work around this by using the short names. if (!fn.IsAscii()) { fn = CliSafeFileName(fn); fn.Replace("\\", "/"); } #endif wxString dummy = FileItem; dummy.Replace("%f", QuoteCmdlineArg(fn)); fline << " " << dummy; } wxString charsetline; if (!charset.empty()) { charsetline = CharsetItem; charsetline.Replace("%c", charset); } cmdline.Replace("%C", charsetline); cmdline.Replace("%K", kline); cmdline.Replace("%F", fline); return cmdline; } LegacyExtractor::LegacyExtractor(const LegacyExtractorSpec& spec) : m_spec(spec) { m_id = "legacy_"; for (auto c: spec.Name) { if ((c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z') || (c >= '0' && c <= '9')) m_id << c; else m_id << '_'; } wxStringTokenizer tkn(spec.Extensions, ";, \t", wxTOKEN_STRTOK); while (tkn.HasMoreTokens()) { RegisterWildcard(tkn.GetNextToken()); } } wxString LegacyExtractor::Extract(TempDirectory& tmpdir, const SourceCodeSpec& sourceSpec, const std::vector& files) const { // cmdline's length is limited by OS/shell, this is maximal number // of files we'll pass to the parser at one run: const int BATCH_SIZE = 16; std::vector batchfiles, tempfiles; size_t i, last = 0; while (last < files.size()) { batchfiles.clear(); for (i = last; i < last + BATCH_SIZE && i < files.size(); i++) batchfiles.push_back(files[i]); last = i; wxString tempfile = tmpdir.CreateFileName(GetId() + "_extracted.pot"); CurrentWorkingDirectoryChanger cwd(sourceSpec.BasePath); if (!ExecuteGettext(m_spec.BuildCommand(batchfiles, sourceSpec.Keywords, tempfile, sourceSpec.Charset))) { return ""; } tempfiles.push_back(tempfile); } return ConcatCatalogs(tmpdir, tempfiles); } void Extractor::CreateAllLegacyExtractors(Extractor::ExtractorsList& into) { // Extractors must be created anew to pick up any changes in definitions // FIXME: Make this MT-safe LegacyExtractorsDB db; db.Read(wxConfig::Get()); for (auto& ex: db.Data) { if (ex.Enabled) into.push_back(std::make_shared(ex)); } } poedit-2.0.6/src/extractors/extractor_legacy.h0000664000372000037200000001201213230131554016412 00000000000000/* * This file is part of Poedit (https://poedit.net) * * Copyright (C) 1999-2018 Vaclav Slavik * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * DEALINGS IN THE SOFTWARE. * */ #ifndef Poedit_extractor_legacy_h #define Poedit_extractor_legacy_h #include "extractor.h" #include #include #include class WXDLLIMPEXP_FWD_BASE wxConfigBase; /** This class holds information about an external extractor. It does \b not do any extraction. The only functionality it provides is the metadata to invoke extractors. */ class LegacyExtractorSpec { public: LegacyExtractorSpec() : Enabled(true) {} /// User-oriented name of the extractor (e.g. "C/C++"). wxString Name; /// Whether the extractor is currently enabled. bool Enabled; /** Semicolon-separated list of wildcards. The extractor is capable of parsing files matching these wildcards. Example: "*.cpp;*.h" */ wxString Extensions; /** Command used to execute the extractor. %o expands to output file, %K to list of keywords and %F to list of files. */ wxString Command; /** Expansion string for single keyword. %k expands to keyword. %K in Command is replaced by n expansions of KeywordItem where n is the number of keywords. */ wxString KeywordItem; /** Expansion string for single filename. %f expands to filename. %F in Command is replaced by n expansions of FileItem where n is the number of filenames. */ wxString FileItem; /** Expansion string for single charset setting. %c expands to charset name. %C in command is replaced with this. */ wxString CharsetItem; bool operator==(const LegacyExtractorSpec& other) const { return Name == other.Name && Enabled == other.Enabled && Extensions == other.Extensions && Command == other.Command && KeywordItem == other.KeywordItem && FileItem == other.FileItem && CharsetItem == other.CharsetItem; } bool operator!=(const LegacyExtractorSpec& other) const { return !(*this == other); } /** Returns command line used to launch the extractor with specified input. This expands all variables in Command property of the parser and returns string that be directly passed to wxExecute. \param files list of files to parse \param keywords list of recognized keywords \param output name of temporary output file \param charset source code charset (may be empty) */ wxString BuildCommand(const std::vector& files, const wxArrayString& keywords, const wxString& output, const wxString& charset) const; }; /** Database of all available extractors. This class is regular pseudo-template dynamic wxArray with additional methods for storing its content to wxConfig object and retrieving it. */ class LegacyExtractorsDB { public: /// Reads DB from registry/dotfile. void Read(wxConfigBase *cfg); /// Write DB to registry/dotfile. void Write(wxConfigBase *cfg); /// Remove definitions superseded by GettextExtractor static void RemoveObsoleteExtractors(wxConfigBase *cfg); std::vector Data; }; /// Extractor implementation for legacy definitions class LegacyExtractor : public Extractor { public: LegacyExtractor(const LegacyExtractorSpec& spec); wxString GetId() const override { return m_id; } wxString Extract(TempDirectory& tmpdir, const SourceCodeSpec& sourceSpec, const std::vector& files) const override; private: wxString m_id; LegacyExtractorSpec m_spec; }; #endif // Poedit_extractor_legacy_h poedit-2.0.6/src/extractors/extractor.h0000664000372000037200000001121213230131554015067 00000000000000/* * This file is part of Poedit (https://poedit.net) * * Copyright (C) 2017-2018 Vaclav Slavik * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * DEALINGS IN THE SOFTWARE. * */ #ifndef Poedit_extractor_h #define Poedit_extractor_h #include #include #include #include #include #include "utility.h" /// Specification of the source code to search. struct SourceCodeSpec { wxString BasePath; wxArrayString SearchPaths; wxArrayString ExcludedPaths; wxArrayString Keywords; wxString Charset; // additional keys from the headers std::map XHeaders; }; /** Base class for extractors -- implementations of extracting translations from source code. */ class Extractor { public: typedef std::vector> ExtractorsList; typedef std::vector FilesList; // Static helper methods: /** Returns all available extractor implementations. Extractors are listed in their priority and should be used in this order, i.e. subsequent extractors should only be used to process files not yet handled by previous extractors. */ static ExtractorsList CreateAllExtractors(); /** Collects all files from source code, possibly including files that don't contain translations. The returned list is guaranteed to be sorted by operator< */ static FilesList CollectAllFiles(const SourceCodeSpec& sources); /** Extracts translations from given source files using all available extractors. Returns filename of the created POT file, which is stored in @a tmpdir or empty string on failure. */ static wxString ExtractWithAll(TempDirectory& tmpdir, const SourceCodeSpec& sourceSpec, const std::vector& files); // Extractor helpers: /// Returns only those files from @a files that are supported by this extractor. FilesList FilterFiles(const FilesList& files) const; // Extractor API for derived classes: /// Returns extractor's symbolic name virtual wxString GetId() const = 0; /** Returns whether the file is recognized. Default implementation uses extension and wildcard matching, see RegisterExtension() and RegisterWildcard(). */ virtual bool IsFileSupported(const wxString& file) const; /** Extracts translations from given source files using all available extractors. Returns filename of the created POT file, which is stored in @a tmpdir or empty string on failure. */ virtual wxString Extract(TempDirectory& tmpdir, const SourceCodeSpec& sourceSpec, const std::vector& files) const = 0; protected: Extractor() {} virtual ~Extractor() {} /// Check if file is supported based on its extension bool HasKnownExtension(const wxString& file) const; /// Add a known extension or wildcard to be used by default IsFileSupported /// (called from ctors) void RegisterExtension(const wxString& ext); void RegisterWildcard(const wxString& wildcard); /// Concatenates catalogs using msgcat static wxString ConcatCatalogs(TempDirectory& tmpdir, const std::vector& files); private: std::set m_extensions; std::vector m_wildcards; protected: // private factories: static void CreateAllLegacyExtractors(ExtractorsList& into); static void CreateGettextExtractors(ExtractorsList& into); }; #endif // Poedit_extractor_h poedit-2.0.6/src/extractors/extractor_gettext.cpp0000664000372000037200000001474513230131554017204 00000000000000/* * This file is part of Poedit (https://poedit.net) * * Copyright (C) 2017-2018 Vaclav Slavik * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * DEALINGS IN THE SOFTWARE. * */ #include "extractor.h" #include "gexecute.h" #include namespace { // This list is synced with EXTENSIONS_* macros in deps/gettext/gettext-tools/src/x-*.h files: const char * const GETTEXT_EXTENSIONS[] = { "appdata.xml", // appdata - ITS "awk", "gawk", "twjr", // awk "c", "h", // C "C", "c++", "cc", "cxx", "cpp", "hh", "hxx", "hpp", // C++ "m", // ObjectiveC // FIXME: handling of .h files as C++? (req. separate pass) // FIXME: .mm files for Objective-C++ (add gettext-tools support first) "cs", // C# "desktop", // Desktop "el", // EmacsLisp "glade", "glade2", "ui", // glade - ITS "gschema.xml", // GSettings - ITS "java", // Java "js", // JavaScript "jl", // librep "lisp", // Lisp "lua", // Lua "pl", "PL", "pm", "perl", /*"cgi" - too generic,*/ // perl "php", "php3", "php4", // PHP "py", // Python // "rst", // RST // NOTE: conflicts with restructured text, dangerous "scm", // Scheme // "sh", "bash", // Shell // NOTE: disabled in Poedit, rarely if ever used "st", // Smalltalk "tcl", // Tcl "vala", // Vala "ycp", // YCP nullptr }; } // anonymous namespace /// Extractor implementation for standard GNU gettext class GettextExtractorBase : public Extractor { public: wxString Extract(TempDirectory& tmpdir, const SourceCodeSpec& sourceSpec, const std::vector& files) const override { auto basepath = sourceSpec.BasePath; #ifdef __WXMSW__ basepath = CliSafeFileName(basepath); basepath.Replace("\\", "/"); #endif wxTextFile filelist; filelist.Create(tmpdir.CreateFileName("gettext_filelist.txt")); for (auto fn: files) { #ifdef __WXMSW__ // Gettext tools can't handle Unicode filenames well (due to using // char* arguments), so work around this by using the short names. if (!fn.IsAscii()) { fn = CliSafeFileName(fn); fn.Replace("\\", "/"); } #endif filelist.AddLine(fn); } filelist.Write(wxTextFileType_Unix, wxConvFile); auto outfile = tmpdir.CreateFileName("gettext.pot"); wxString cmdline; cmdline.Printf ( "xgettext --force-po -o %s --directory=%s --files-from=%s --from-code=%s", QuoteCmdlineArg(outfile), QuoteCmdlineArg(basepath), QuoteCmdlineArg(filelist.GetName()), QuoteCmdlineArg(!sourceSpec.Charset.empty() ? sourceSpec.Charset : "UTF-8") ); auto additional = GetAdditionalFlags(); if (!additional.empty()) cmdline += " " + additional; for (auto& kw: sourceSpec.Keywords) { cmdline += wxString::Format(" -k%s", QuoteCmdlineArg(kw)); } wxString extraFlags; try { extraFlags = sourceSpec.XHeaders.at("X-Poedit-Flags-xgettext"); } catch (std::out_of_range) {} if (!extraFlags.Contains("--add-comments")) cmdline += " --add-comments=TRANSLATORS:"; if (!extraFlags.empty()) cmdline += " " + extraFlags; if (!ExecuteGettext(cmdline)) return ""; return outfile; } protected: virtual wxString GetAdditionalFlags() const = 0; }; /// Extractor implementation for standard GNU gettext class GettextExtractor : public GettextExtractorBase { public: GettextExtractor() { for (const char * const *e = GETTEXT_EXTENSIONS; *e != nullptr; e++) RegisterExtension(*e); } wxString GetId() const override { return "gettext"; } protected: wxString GetAdditionalFlags() const override { return ""; } }; /// Dedicated extractor for .phtml files - PHP, used by Zend Framework class PHTMLGettextExtractor : public GettextExtractorBase { public: PHTMLGettextExtractor() { RegisterExtension("phtml"); } wxString GetId() const override { return "gettext-phtml"; } protected: wxString GetAdditionalFlags() const override { return "-L php"; } }; void Extractor::CreateGettextExtractors(Extractor::ExtractorsList& into) { into.push_back(std::make_shared()); into.push_back(std::make_shared()); } poedit-2.0.6/src/manager.h0000664000372000037200000000654513230131554012305 00000000000000/* * This file is part of Poedit (https://poedit.net) * * Copyright (C) 2001-2018 Vaclav Slavik * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * DEALINGS IN THE SOFTWARE. * */ #ifndef _MANAGER_H_ #define _MANAGER_H_ #include #include class WXDLLIMPEXP_FWD_CORE wxListCtrl; class WXDLLIMPEXP_FWD_CORE wxListBox; class WXDLLIMPEXP_FWD_CORE wxSplitterWindow; class Catalog; /** ManagerFrame provides a convenient way to manage PO catalogs. The frame contains two lists: a list of projects and list of catalogs in active project, together with their statistics. */ class ManagerFrame : public wxFrame { public: /// Creates instance of manager or returns pointer to existing one. static ManagerFrame* Create(); /** Returns pointer to existing instance or NULL if there's no one. (I.e. unlike Create, this one doesn't create a new instance.) */ static ManagerFrame* Get() { return ms_instance; } /** Used to notify the manager that one of files changed and it has to update the list control. */ void NotifyFileChanged(const wxString& catalog); private: ManagerFrame(); ~ManagerFrame(); /** Pops up project settings dialog for project #id. \return false if user pressed Cancel, true otherwise */ template void EditProject(int id, TFunctor completionHandler); /// Deletes project void DeleteProject(int id); /** Updates projects list \param select id of project to be selected */ void UpdateListPrj(int select = 0); /// Updates catalogs list for given project void UpdateListCat(int id = -1); DECLARE_EVENT_TABLE() void OnNewProject(wxCommandEvent& event); void OnEditProject(wxCommandEvent& event); void OnDeleteProject(wxCommandEvent& event); void OnUpdateProject(wxCommandEvent& event); void OnSelectProject(wxCommandEvent& event); void OnOpenCatalog(wxListEvent& event); void OnCloseCmd(wxCommandEvent& event); wxListCtrl *m_listCat; wxListBox *m_listPrj; wxSplitterWindow *m_splitter; wxArrayString m_catalogs; int m_curPrj; static ManagerFrame *ms_instance; }; #endif // _EDFRAME_H_ poedit-2.0.6/src/propertiesdlg.cpp0000664000372000037200000007231613230131554014110 00000000000000/* * This file is part of Poedit (https://poedit.net) * * Copyright (C) 2000-2018 Vaclav Slavik * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * DEALINGS IN THE SOFTWARE. * */ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #if !wxCHECK_VERSION(3,1,0) #include "wx_backports/nativewin.h" #endif #include #include #include #include "propertiesdlg.h" #include "hidpi.h" #include "language.h" #include "str_helpers.h" #include "unicode_helpers.h" #include "pluralforms/pl_evaluate.h" #include "utility.h" namespace { inline wxString NormalizedPath(const wxString& fn, wxPathFormat format) { auto f = MakeFileName(fn); f.Normalize(wxPATH_NORM_DOTS | wxPATH_NORM_ABSOLUTE); return f.GetFullPath(format); } inline wxString RelativePath(const wxString& fn, const wxString& to, wxPathFormat format) { if (fn == to || fn + wxFILE_SEP_PATH == to) return "."; auto f = MakeFileName(fn); if (!f.MakeRelativeTo(to)) { #ifdef __WXMSW__ if (format == wxPATH_UNIX) { // Paths on different volumes, which are ignored in UNIX path formatting. // The best we can do is to use Windows path with / instead of \ ... wxString dos = f.GetFullPath(wxPATH_DOS); dos.Replace("\\", "/"); return dos; } #endif } return f.GetFullPath(format); } inline wxString RelativePathForPO(const wxString& fn, const wxString& to) { auto rel = RelativePath(fn, to, wxPATH_UNIX); if (rel.Last() == '/') rel.RemoveLast(); return rel; } } // anonymous namespace struct PropertiesDialog::PathsData { PathsData() : Changed(false) {} std::function RefreshView; // Did the data change in any way? bool Changed; // all paths here are absolute, normalized paths // directory where the PO(T) file is wxString filedir; // catalog settings wxString basepath; wxArrayString paths; wxArrayString excluded; void GetFromCatalog(CatalogPtr cat) { Changed = false; auto& hdr = cat->Header(); filedir = wxFileName(cat->GetFileName()).GetPathWithSep(); basepath = cat->GetSourcesBasePath(); if (basepath.empty()) basepath = filedir; paths.clear(); excluded.clear(); for (auto& p: hdr.SearchPaths) { if (p.empty()) continue; paths.push_back(NormalizedPath(basepath + p, wxPATH_NATIVE)); } for (auto& p: hdr.SearchPathsExcluded) { if (p.empty()) continue; if (wxIsWild(p)) excluded.push_back(p); else excluded.push_back(NormalizedPath(basepath + p, wxPATH_NATIVE)); } } void SetToCatalog(CatalogPtr cat) const { auto& hdr = cat->Header(); hdr.BasePath = RelativePathForPO(basepath, filedir); hdr.SearchPaths.clear(); hdr.SearchPathsExcluded.clear(); for (auto& p: paths) { auto rel = RelativePathForPO(p, basepath); hdr.SearchPaths.push_back(rel); } for (auto& p: excluded) { if (wxIsWild(p)) { hdr.SearchPathsExcluded.push_back(p); } else { auto rel = RelativePathForPO(p, basepath); hdr.SearchPathsExcluded.push_back(rel); } } } void UpdateBasePath() { if (!paths.empty()) basepath = CommonDirectory(paths).GetFullPath(); else basepath = filedir; } }; #ifdef __WXOSX__ @interface BasePathCtrlController : NSObject @end @implementation BasePathCtrlController - (void)pathClicked:(NSPathControl*)sender { NSPathComponentCell *cell = [[sender cell] clickedPathComponentCell]; if (cell) [[NSWorkspace sharedWorkspace] openURL:[cell URL]]; } @end class PropertiesDialog::BasePathCtrl : public wxNativeWindow { public: BasePathCtrl(wxWindow *parent) : wxNativeWindow() { m_path = [NSPathControl new]; m_ctrl = [BasePathCtrlController new]; Create(parent, wxID_ANY, m_path); SetWindowVariant(wxWINDOW_VARIANT_SMALL); // Do native configuration *after* Create() to undo some of what it did: if ([m_path respondsToSelector:@selector(setEditable:)]) [m_path setEditable:NO]; [m_path setTarget:m_ctrl]; [m_path setAction:@selector(pathClicked:)]; [m_path setDoubleAction:@selector(pathClicked:)]; } void SetPath(const wxString& path) { m_path.URL = [[NSURL alloc] initFileURLWithPath:str::to_NS(path)]; } private: NSPathControl *m_path; BasePathCtrlController *m_ctrl; }; #else // Win/GTK+ class PropertiesDialog::BasePathCtrl : public wxStaticText { public: BasePathCtrl(wxWindow *parent) : wxStaticText(parent, wxID_ANY, "", wxDefaultPosition, wxDefaultSize, wxST_ELLIPSIZE_MIDDLE | wxST_NO_AUTORESIZE) { #ifdef __WXMSW__ SetBackgroundColour(*wxWHITE); SetForegroundColour(wxColour("#58595C")); #endif } void SetPath(const wxString& path) { SetLabel(bidi::platform_mark_direction(path)); } }; #endif class PropertiesDialog::PathsList : public wxPanel { public: PathsList(wxWindow *parent, const wxString& label, std::shared_ptr data) : wxPanel(parent, wxID_ANY), m_data(data) { #if defined(__WXOSX__) SetWindowVariant(wxWINDOW_VARIANT_SMALL); // FIXME: gross hack to make inside-notebook color to match SetBackgroundColour(parent->GetBackgroundColour().ChangeLightness(93)); #elif defined(__WXMSW__) SetBackgroundColour(*wxWHITE); #endif auto sizer = new wxBoxSizer(wxVERTICAL); SetSizer(sizer); auto lbl = new wxStaticText(this, wxID_ANY, label); sizer->Add(lbl, wxSizerFlags().Expand()); m_list = new wxListBox(this, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0, nullptr, wxLB_EXTENDED); sizer->Add(m_list, wxSizerFlags(1).Expand().BORDER_WIN(wxLEFT, 1)); #if defined(__WXOSX__) auto add = new wxBitmapButton(this, wxID_ANY, wxArtProvider::GetBitmap("NSAddTemplate"), wxDefaultPosition, wxSize(18, 18), wxBORDER_SUNKEN); auto remove = new wxBitmapButton(this, wxID_ANY, wxArtProvider::GetBitmap("NSRemoveTemplate"), wxDefaultPosition, wxSize(18,18), wxBORDER_SUNKEN); #elif defined(__WXMSW__) auto add = new wxBitmapButton(this, wxID_ANY, wxArtProvider::GetBitmap("list-add"), wxDefaultPosition, wxSize(PX(19),PX(19))); auto remove = new wxBitmapButton(this, wxID_ANY, wxArtProvider::GetBitmap("list-remove"), wxDefaultPosition, wxSize(PX(19),PX(19))); #elif defined(__WXGTK__) auto add = new wxBitmapButton(this, wxID_ANY, wxArtProvider::GetBitmap("list-add"), wxDefaultPosition, wxDefaultSize, wxNO_BORDER); auto remove = new wxBitmapButton(this, wxID_ANY, wxArtProvider::GetBitmap("list-remove"), wxDefaultPosition, wxDefaultSize, wxNO_BORDER); #endif auto buttonSizer = new wxBoxSizer(wxHORIZONTAL); buttonSizer->Add(add); #ifdef __WXOSX__ buttonSizer->AddSpacer(PX(1)); #endif buttonSizer->Add(remove); sizer->AddSpacer(PX(1)); sizer->Add(buttonSizer, wxSizerFlags().BORDER_MACOS(wxLEFT, PX(1))); SetDropTarget(new DropTarget(this)); add->Bind(wxEVT_BUTTON, &PathsList::OnAddMenu, this); remove->Bind(wxEVT_UPDATE_UI, [=](wxUpdateUIEvent& e){ wxArrayInt dummy; e.Enable(m_list->GetSelections(dummy) > 0); }); remove->Bind(wxEVT_BUTTON, [=](wxCommandEvent&){ wxArrayInt s; m_list->GetSelections(s); Remove(s); }); #if 0 // TODO: Add background overlay with instructions: _("Drag and Drop Folders Here\n\nor use the + button") _("Drag and drop folders here\n\nor use the + button") #endif } void UpdateFromData() { m_list->Clear(); for (auto& p: Array()) { wxString s; if (wxIsWild(p)) s = p; else s = RelativePath(p, m_data->basepath, wxPATH_NATIVE); m_list->Append(bidi::platform_mark_direction(s)); } } void Add(const wxArrayString& files) { auto& a = Array(); for (auto& f: files) { if (wxIsWild(f)) a.push_back(f); else a.push_back(NormalizedPath(f, wxPATH_NATIVE)); } m_data->Changed = true; m_data->UpdateBasePath(); m_data->RefreshView(); } void Add(const wxString& f) { Add(wxArrayString(1, &f)); } void Remove(wxArrayInt selection) { auto& a = Array(); std::sort(selection.begin(), selection.end()); for (auto i = selection.rbegin(); i != selection.rend(); ++i) a.RemoveAt(*i); m_data->Changed = true; m_data->UpdateBasePath(); m_data->RefreshView(); } protected: virtual wxArrayString& Array() = 0; virtual bool AllowWildcards() const = 0; class DropTarget : public wxFileDropTarget { public: DropTarget(PathsList *parent) : m_parent(parent) {} bool OnDropFiles(wxCoord, wxCoord, const wxArrayString& files) override { m_parent->Add(files); return true; } wxDragResult OnDragOver(wxCoord, wxCoord, wxDragResult) override { return wxDragCopy; } PathsList *m_parent; }; void OnAddMenu(wxCommandEvent& e) { static const auto idFolder = wxNewId(); static const auto idFile = wxNewId(); static const auto idWild = wxNewId(); wxMenu *menu = new wxMenu(); menu->Append(idFolder, MSW_OR_OTHER(_(L"Add folders…"), _(L"Add Folders…"))); menu->Append(idFile, MSW_OR_OTHER(_(L"Add files…"), _(L"Add Files…"))); if (AllowWildcards()) menu->Append(idWild, MSW_OR_OTHER(_(L"Add wildcard…"), _(L"Add Wildcard…"))); menu->Bind(wxEVT_MENU, [=](wxCommandEvent&){ wxDirDialog dlg(this, MACOS_OR_OTHER("", _("Select directory")), m_data->basepath, wxDD_DEFAULT_STYLE | wxDD_DIR_MUST_EXIST); if (dlg.ShowModal() == wxID_OK) Add(dlg.GetPath()); }, idFolder); menu->Bind(wxEVT_MENU, [=](wxCommandEvent&){ wxFileDialog dlg(this, "", m_data->basepath, "", wxFileSelectorDefaultWildcardStr, wxFD_OPEN | wxFD_FILE_MUST_EXIST | wxFD_MULTIPLE); if (dlg.ShowModal() != wxID_OK) return; wxArrayString files; dlg.GetPaths(files); Add(files); }, idFile); menu->Bind(wxEVT_MENU, [=](wxCommandEvent&){ wxTextEntryDialog dlg(this, "", ""); if (dlg.ShowModal() != wxID_OK) return; Add(dlg.GetValue()); }, idWild); auto win = dynamic_cast(e.GetEventObject()); #ifdef __WXOSX__ win->PopupMenu(menu, 9, 29); #else win->PopupMenu(menu, 0, win->GetSize().y); #endif } std::shared_ptr m_data; wxListBox *m_list; }; class PropertiesDialog::SourcePathsList : public PropertiesDialog::PathsList { public: SourcePathsList(wxWindow *parent, std::shared_ptr data) : PathsList(parent, _("Paths"), data) {} protected: wxArrayString& Array() override { return m_data->paths; } bool AllowWildcards() const override { return false; } }; class PropertiesDialog::ExcludedPathsList : public PropertiesDialog::PathsList { public: ExcludedPathsList(wxWindow *parent, std::shared_ptr data) : PathsList(parent, _("Excluded paths"), data) {} protected: wxArrayString& Array() override { return m_data->excluded; } bool AllowWildcards() const override { return true; } }; struct PropertiesDialog::GettextSettings { wxString CommentTag; wxString XgettextFlags; }; class PropertiesDialog::GettextSettingsDialog : public wxDialog { public: GettextSettingsDialog(wxWindow *parent) : wxDialog(parent, wxID_ANY, _("Advanced extraction settings")) { auto outer = new wxBoxSizer(wxVERTICAL); auto sizer = new wxBoxSizer(wxVERTICAL); outer->Add(sizer, wxSizerFlags(1).Expand().Border(wxALL, PX(15))); sizer->Add(new wxStaticText(this, wxID_ANY, _("Extract notes for translators from:"))); sizer->AddSpacer(PX(4)); m_commentsPrefixed = new wxRadioButton(this, wxID_ANY, _("Comments prefixed with:")); m_commentsPrefix = new wxTextCtrl(this, wxID_ANY, ""); m_commentsPrefix->SetHint("TRANSLATORS:"); auto prefixSizer = new wxBoxSizer(wxHORIZONTAL); sizer->Add(prefixSizer, wxSizerFlags().Expand().Border(wxLEFT, PX(10))); prefixSizer->Add(m_commentsPrefixed, wxSizerFlags().Center().BORDER_MACOS(wxTOP, PX(3)).BORDER_WIN(wxBOTTOM, PX(1))); prefixSizer->Add(m_commentsPrefix, wxSizerFlags(1).Center().Border(wxLEFT, PX(5))); sizer->AddSpacer(PX(2)); m_commentsAll = new wxRadioButton(this, wxID_ANY, _("All comments")); sizer->Add(m_commentsAll, wxSizerFlags().Border(wxLEFT, PX(10))); sizer->Add(new wxStaticText(this, wxID_ANY, _("Additional xgettext flags:")), wxSizerFlags().Border(wxTOP, PX(15))); m_flags = new wxTextCtrl(this, wxID_ANY, "", wxDefaultPosition, wxSize(PX(450), -1)); #ifdef __WXOSX__ m_flags->OSXDisableAllSmartSubstitutions(); #endif sizer->Add(m_flags, wxSizerFlags().Expand().Border(wxTOP, PX(5))); auto buttons = CreateButtonSizer(wxOK | wxCANCEL); #ifdef __WXOSX__ outer->Add(buttons, wxSizerFlags().Expand()); #else outer->Add(buttons, wxSizerFlags().Expand().PXDoubleBorder(wxLEFT|wxRIGHT|wxBOTTOM)); #endif m_commentsPrefix->Bind( wxEVT_UPDATE_UI, [=](wxUpdateUIEvent& e){ e.Enable(m_commentsPrefixed->GetValue()); }); SetSizerAndFit(outer); CenterOnParent(); } void TransferTo(const PropertiesDialog::GettextSettings& data) { auto flags = data.XgettextFlags; auto pos = flags.Find("--add-comments"); if (pos != wxNOT_FOUND) { auto posStart = pos; pos += 14; if (pos < (int)flags.size() && flags[pos] == '=') { wxString prefix; pos++; char lookFor = (flags[pos] == '"') ? '"' : ' '; if (lookFor == '"') pos++; while (pos < (int)flags.size() && flags[pos] != lookFor) prefix += flags[pos++]; if (lookFor == '"') pos++; m_commentsPrefix->SetValue(prefix); m_commentsPrefixed->SetValue(true); } else { m_commentsAll->SetValue(true); } if (pos < (int)flags.size() && flags[pos] == ' ') pos++; flags = flags.replace(posStart, pos - posStart, ""); } else { m_commentsPrefixed->SetValue(true); m_commentsPrefix->SetValue("TRANSLATORS:"); } m_flags->SetValue(flags.Strip()); } void TransferFrom(PropertiesDialog::GettextSettings& data) const { wxString flags; if (m_commentsAll->GetValue()) { flags = "--add-comments"; } else { auto prefix = m_commentsPrefix->GetValue(); if (!prefix.empty() && prefix != "TRANSLATORS:") { if (prefix.Contains(" ") && prefix[0] != '"') prefix = '"' + prefix + '"'; flags.Printf("--add-comments=%s", prefix); } } if (!m_flags->GetValue().empty()) { if (!flags.empty()) flags += " "; flags += m_flags->GetValue(); } data.XgettextFlags = flags; } private: wxRadioButton *m_commentsAll, *m_commentsPrefixed; wxTextCtrl *m_commentsPrefix; wxTextCtrl *m_flags; }; PropertiesDialog::PropertiesDialog(wxWindow *parent, CatalogPtr cat, bool fileExistsOnDisk, int initialPage) : m_validatedPlural(-1), m_validatedLang(-1) { m_hasLang = cat->HasCapability(Catalog::Cap::LanguageSetting); wxXmlResource::Get()->LoadDialog(this, parent, "properties"); m_gettextSettings.reset(new GettextSettings); m_team = XRCCTRL(*this, "team", wxTextCtrl); m_project = XRCCTRL(*this, "prj_name", wxTextCtrl); m_language = XRCCTRL(*this, "language", LanguageCtrl); m_charset = XRCCTRL(*this, "charset", wxComboBox); m_sourceCodeCharset = XRCCTRL(*this, "source_code_charset", wxComboBox); m_pluralFormsDefault = XRCCTRL(*this, "plural_forms_default", wxRadioButton); m_pluralFormsCustom = XRCCTRL(*this, "plural_forms_custom", wxRadioButton); m_pluralFormsExpr = XRCCTRL(*this, "plural_forms_expr", wxTextCtrl); #if defined(__WXMSW__) && !wxCHECK_VERSION(3,1,0) m_pluralFormsExpr->SetFont(m_pluralFormsExpr->GetFont().Smaller()); #else m_pluralFormsExpr->SetWindowVariant(wxWINDOW_VARIANT_SMALL); #endif if (!m_hasLang) { for (auto w: { (wxWindow*)m_language, (wxWindow*)m_pluralFormsDefault, (wxWindow*)m_pluralFormsCustom, (wxWindow*)m_pluralFormsExpr, XRCCTRL(*this, "language_label", wxWindow), XRCCTRL(*this, "plural_forms_label", wxWindow), XRCCTRL(*this, "plural_forms_help", wxWindow) }) { w->GetContainingSizer()->Hide(w); } } // my custom controls: auto page_paths = XRCCTRL(*this, "page_paths", wxWindow); auto page_keywords = XRCCTRL(*this, "page_keywords", wxWindow); m_keywords = new wxEditableListBox(page_keywords, -1, _("Additional keywords")); m_defaultKeywords = XRCCTRL(*this, "default_keywords", wxCheckBox); m_pathsData.reset(new PathsData); m_basePath = new BasePathCtrl(page_paths); m_paths = new SourcePathsList(page_paths, m_pathsData); m_excludedPaths = new ExcludedPathsList(page_paths, m_pathsData); m_pathsData->RefreshView = [=]{ m_basePath->SetPath(m_pathsData->basepath); m_paths->UpdateFromData(); m_excludedPaths->UpdateFromData(); }; m_paths->SetMinSize(wxSize(PX(450), PX(90))); m_excludedPaths->SetMinSize(wxSize(-1, PX(90))); #ifdef __WXOSX__ for (auto c: m_keywords->GetChildren()) { c->SetWindowVariant(wxWINDOW_VARIANT_SMALL); for (auto c2: c->GetChildren()) c2->SetWindowVariant(wxWINDOW_VARIANT_SMALL); } #endif // __WXOSX__ wxXmlResource::Get()->AttachUnknownControl("basepath", m_basePath); wxXmlResource::Get()->AttachUnknownControl("keywords", m_keywords); wxXmlResource::Get()->AttachUnknownControl("paths", m_paths); wxXmlResource::Get()->AttachUnknownControl("excluded_paths", m_excludedPaths); // Controls setup: m_project->SetHint(_("Name of the project the translation is for")); m_team->SetHint(_("Team name and email address or URL")); m_pluralFormsExpr->SetHint(_("e.g. nplurals=2; plural=(n > 1);")); Layout(); GetSizer()->SetSizeHints(this); if (!fileExistsOnDisk) DisableSourcesControls(); auto nb = XRCCTRL(*this, "properties_notebook", wxNotebook); nb->SetSelection(initialPage); m_language->Bind(wxEVT_TEXT, &PropertiesDialog::OnLanguageChanged, this); m_language->Bind(wxEVT_COMBOBOX, &PropertiesDialog::OnLanguageChanged, this); m_pluralFormsDefault->Bind(wxEVT_RADIOBUTTON, &PropertiesDialog::OnPluralFormsDefault, this); m_pluralFormsCustom->Bind(wxEVT_RADIOBUTTON, &PropertiesDialog::OnPluralFormsCustom, this); m_pluralFormsExpr->Bind( wxEVT_UPDATE_UI, [=](wxUpdateUIEvent& e){ e.Enable(m_pluralFormsCustom->GetValue()); }); m_pluralFormsExpr->Bind( wxEVT_TEXT, [=](wxCommandEvent& e){ m_validatedPlural = -1; e.Skip(); }); Bind(wxEVT_UPDATE_UI, [=](wxUpdateUIEvent& e){ e.Enable(Validate()); }, wxID_OK); CallAfter([=]{ m_project->SetFocus(); }); auto openBasepath = XRCCTRL(*this, "open_basepath", wxBitmapButton); openBasepath->Bind(wxEVT_BUTTON, [=](wxCommandEvent&){ wxLaunchDefaultApplication(m_pathsData->basepath); }); XRCCTRL(*this, "gettext_settings", wxButton)->Bind(wxEVT_BUTTON, &PropertiesDialog::OnGettextSettings, this); } PropertiesDialog::~PropertiesDialog() { } namespace { #define UTF_8_CHARSET _("UTF-8 (recommended)") void SetCharsetToCombobox(wxComboBox *ctrl, const wxString& value) { static const wxString all_charsets[] = { UTF_8_CHARSET, // and legacy ones "ISO-8859-1", "ISO-8859-2", "ISO-8859-3", "ISO-8859-4", "ISO-8859-5", "ISO-8859-6", "ISO-8859-7", "ISO-8859-8", "ISO-8859-9", "ISO-8859-10", "ISO-8859-11", "ISO-8859-12", "ISO-8859-13", "ISO-8859-14", "ISO-8859-15", "KOI8-R", "CP1250", "CP1251", "CP1252", "CP1253", "CP1254", "CP1255", "CP1256", "CP1257" }; ctrl->Clear(); for ( int i = 0; i < (int)WXSIZEOF(all_charsets); i++ ) ctrl->Append(all_charsets[i]); const wxString low = value.Lower(); if ( low == "utf-8" || low == "utf8" ) ctrl->SetValue(UTF_8_CHARSET); else ctrl->SetValue(value); } wxString GetCharsetFromCombobox(wxComboBox *ctrl) { wxString c = ctrl->GetValue(); if ( c == UTF_8_CHARSET ) c = "UTF-8"; return c; } void GetKeywordsFromControl(wxEditableListBox *box, wxCheckBox *defaultKeywords, wxArrayString& output) { wxArrayString arr; box->GetStrings(arr); output.clear(); if (!defaultKeywords->GetValue()) output.push_back(""); for (auto x: arr) { if (x.empty()) continue; wxString rest; if (x.EndsWith(" ()", &rest) || x.EndsWith("()", &rest)) x = rest; output.push_back(x); } } } // anonymous namespace void PropertiesDialog::TransferTo(const CatalogPtr& cat) { SetCharsetToCombobox(m_charset, cat->Header().Charset); SetCharsetToCombobox(m_sourceCodeCharset, cat->Header().SourceCodeCharset); #define SET_VAL(what,what2) m_##what2->SetValue(cat->Header().what) SET_VAL(LanguageTeam, team); SET_VAL(Project, project); #undef SET_VAL if (m_hasLang) { m_language->SetLang(cat->Header().Lang); OnLanguageValueChanged(m_language->GetValue()); wxString pf_def = cat->Header().Lang.DefaultPluralFormsExpr(); wxString pf_cat = cat->Header().GetHeader("Plural-Forms"); if (pf_cat == "nplurals=INTEGER; plural=EXPRESSION;") pf_cat = pf_def; m_pluralFormsExpr->SetValue(bidi::mark_direction(pf_cat, TextDirection::LTR)); if (!pf_cat.empty() && pf_cat == pf_def) m_pluralFormsDefault->SetValue(true); else m_pluralFormsCustom->SetValue(true); } auto kw = cat->Header().Keywords; auto empty_kw = kw.Index(""); m_defaultKeywords->SetValue(empty_kw == wxNOT_FOUND); if (empty_kw != wxNOT_FOUND) kw.RemoveAt(empty_kw); m_keywords->SetStrings(kw); m_pathsData->GetFromCatalog(cat); m_pathsData->RefreshView(); m_gettextSettings->XgettextFlags = cat->Header().GetHeader("X-Poedit-Flags-xgettext"); } void PropertiesDialog::TransferFrom(const CatalogPtr& cat) { cat->Header().Charset = GetCharsetFromCombobox(m_charset); cat->Header().SourceCodeCharset = GetCharsetFromCombobox(m_sourceCodeCharset); #define GET_VAL(what,what2) cat->Header().what = m_##what2->GetValue() GET_VAL(LanguageTeam, team); GET_VAL(Project, project); #undef GET_VAL if (m_hasLang) { Language lang = m_language->GetLang(); if (lang.IsValid()) cat->Header().Lang = lang; wxString pluralForms; if (m_pluralFormsDefault->GetValue() && cat->Header().Lang.IsValid()) { pluralForms = cat->Header().Lang.DefaultPluralFormsExpr(); } if (pluralForms.empty()) { pluralForms = bidi::strip_control_chars(m_pluralFormsExpr->GetValue().Strip(wxString::both)); if ( !pluralForms.empty() && !pluralForms.EndsWith(";") ) pluralForms += ";"; } cat->Header().SetHeaderNotEmpty("Plural-Forms", pluralForms); } GetKeywordsFromControl(m_keywords, m_defaultKeywords, cat->Header().Keywords); if (m_pathsData->Changed) m_pathsData->SetToCatalog(cat); cat->Header().SetHeaderNotEmpty("X-Poedit-Flags-xgettext", m_gettextSettings->XgettextFlags); } void PropertiesDialog::DisableSourcesControls() { m_basePath->Disable(); for (auto p: {m_paths, m_excludedPaths}) { p->Disable(); for (auto c: p->GetChildren()) c->Disable(); } auto label = XRCCTRL(*this, "sources_path_label", wxStaticText); label->SetLabel(_("Please save the file first. This section cannot be edited until then.")); label->SetForegroundColour(*wxRED); } void PropertiesDialog::OnLanguageChanged(wxCommandEvent& event) { m_validatedLang = -1; OnLanguageValueChanged(event.GetString()); event.Skip(); } void PropertiesDialog::OnLanguageValueChanged(const wxString& langstr) { Language lang = Language::TryParse(langstr.ToStdWstring()); wxString pluralForm = lang.DefaultPluralFormsExpr(); if (pluralForm.empty()) { m_pluralFormsDefault->Disable(); m_pluralFormsCustom->SetValue(true); } else { m_pluralFormsDefault->Enable(); if (m_pluralFormsExpr->GetValue().empty() || m_pluralFormsExpr->GetValue() == pluralForm) { m_pluralFormsDefault->SetValue(true); } } } void PropertiesDialog::OnPluralFormsDefault(wxCommandEvent& event) { m_rememberedPluralForm = m_pluralFormsExpr->GetValue(); Language lang = m_language->GetLang(); if (lang.IsValid()) { wxString defaultForm = lang.DefaultPluralFormsExpr(); if (!defaultForm.empty()) m_pluralFormsExpr->SetValue(bidi::mark_direction(defaultForm, TextDirection::LTR)); } event.Skip(); } void PropertiesDialog::OnPluralFormsCustom(wxCommandEvent& event) { if (!m_rememberedPluralForm.empty()) m_pluralFormsExpr->SetValue(m_rememberedPluralForm); event.Skip(); } void PropertiesDialog::OnGettextSettings(wxCommandEvent&) { wxWindowPtr dlg(new GettextSettingsDialog(this)); dlg->TransferTo(*m_gettextSettings); dlg->ShowWindowModalThenDo([this,dlg](int retval){ if (retval == wxID_OK) dlg->TransferFrom(*m_gettextSettings); }); } bool PropertiesDialog::Validate() { if (!m_hasLang) return true; if (m_validatedPlural == -1) { m_validatedPlural = 1; if (m_pluralFormsCustom->GetValue()) { wxString form = bidi::strip_control_chars(m_pluralFormsExpr->GetValue()); if (!form.empty()) { std::unique_ptr calc(PluralFormsCalculator::make(form.ToAscii())); if (!calc) m_validatedPlural = 0; } } } if (m_validatedLang == -1) { m_validatedLang = m_language->IsValid() ? 1 : 0; } return m_validatedLang == 1 && m_validatedPlural == 1; } poedit-2.0.6/src/gexecute.cpp0000664000372000037200000001522013230131554013025 00000000000000/* * This file is part of Poedit (https://poedit.net) * * Copyright (C) 2000-2018 Vaclav Slavik * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * DEALINGS IN THE SOFTWARE. * */ #include #include #include #include #include #include #include #include #include #include #include "gexecute.h" #include "errors.h" // GCC's libstdc++ didn't have functional std::regex implementation until 4.9 #if (defined(__GNUC__) && !defined(__clang__) && !wxCHECK_GCC_VERSION(4,9)) #include using boost::wregex; using boost::wsmatch; using boost::regex_match; #else #include using std::wregex; using std::wsmatch; using std::regex_match; #endif namespace { #ifdef __WXOSX__ wxString GetGettextPluginPath() { return wxStandardPaths::Get().GetPluginsDir() + "/GettextTools.bundle"; } #endif // __WXOSX__ #if defined(__WXOSX__) || defined(__WXMSW__) inline wxString GetAuxBinariesDir() { return GetGettextPackagePath() + "/bin"; } wxString GetPathToAuxBinary(const wxString& program) { wxFileName path; path.SetPath(GetAuxBinariesDir()); path.SetName(program); #ifdef __WXMSW__ path.SetExt("exe"); #endif if ( path.IsFileExecutable() ) { return wxString::Format(_T("\"%s\""), path.GetFullPath().c_str()); } else { wxLogTrace("poedit.execute", L"%s doesn’t exist, falling back to %s", path.GetFullPath().c_str(), program.c_str()); return program; } } #endif // __WXOSX__ || __WXMSW__ bool ReadOutput(wxInputStream& s, wxArrayString& out) { // the stream could be already at EOF or in wxSTREAM_BROKEN_PIPE state s.Reset(); wxTextInputStream tis(s, " ", wxConvAuto() /* UTF-8, fallback if impossible */); while (true) { wxString line = tis.ReadLine(); if ( !line.empty() ) out.push_back(line); if (s.Eof()) break; if ( !s ) return false; } return true; } long DoExecuteGettext(const wxString& cmdline_, wxArrayString& gstderr) { wxExecuteEnv env; wxString cmdline(cmdline_); #if defined(__WXOSX__) || defined(__WXMSW__) wxString binary = cmdline.BeforeFirst(_T(' ')); cmdline = GetPathToAuxBinary(binary) + cmdline.Mid(binary.length()); wxGetEnvMap(&env.env); env.env["GETTEXTIOENCODING"] = "UTF-8"; wxString lang = wxTranslations::Get()->GetBestTranslation("gettext-tools"); if ( !lang.empty() ) env.env["LANG"] = lang; #endif // __WXOSX__ || __WXMSW__ #ifdef __WXOSX__ // Hack alert! On Windows, relocation works, but building with it is too // messy/broken on macOS, so just use some custom hacks instead: auto sharedir = GetGettextPackagePath() + "/share"; env.env["POEDIT_LOCALEDIR"] = sharedir + "/locale"; env.env["GETTEXTDATADIR"] = sharedir + "/gettext"; #endif wxLogTrace("poedit.execute", "executing: %s", cmdline.c_str()); wxScopedPtr process(new wxProcess); process->Redirect(); long retcode = wxExecute(cmdline, wxEXEC_BLOCK | wxEXEC_NODISABLE | wxEXEC_NOEVENTS, process.get(), &env); wxInputStream *std_err = process->GetErrorStream(); if ( std_err && !ReadOutput(*std_err, gstderr) ) retcode = -1; if ( retcode == -1 ) { BOOST_THROW_EXCEPTION(Exception(wxString::Format(_("Cannot execute program: %s"), cmdline.c_str()))); } return retcode; } } // anonymous namespace bool ExecuteGettext(const wxString& cmdline) { wxArrayString gstderr; long retcode = DoExecuteGettext(cmdline, gstderr); wxString pending; for (auto& ln: gstderr) { if (ln.empty()) continue; // special handling of multiline errors if (ln[0] == ' ' || ln[0] == '\t') { pending += "\n\t" + ln.Strip(wxString::both); } else { if (!pending.empty()) wxLogError("%s", pending); pending = ln; } } if (!pending.empty()) wxLogError("%s", pending); return retcode == 0; } bool ExecuteGettextAndParseOutput(const wxString& cmdline, GettextErrors& errors) { wxArrayString gstderr; long retcode = DoExecuteGettext(cmdline, gstderr); static const wregex RE_ERROR(L".*\\.po:([0-9]+)(:[0-9]+)?: (.*)"); for (const auto& ewx: gstderr) { const auto e = ewx.ToStdWstring(); wxLogTrace("poedit", " stderr: %s", e.c_str()); if ( e.empty() ) continue; GettextError rec; wsmatch match; if (regex_match(e, match, RE_ERROR)) { rec.line = std::stoi(match.str(1)); rec.text = match.str(3); errors.push_back(rec); wxLogTrace("poedit.execute", _T(" => parsed error = \"%s\" at %d"), rec.text.c_str(), rec.line); } else { wxLogTrace("poedit.execute", " (unrecognized line!)"); // FIXME: handle the rest of output gracefully too } } return retcode == 0; } wxString QuoteCmdlineArg(const wxString& s) { wxString s2(s); #ifdef __UNIX__ s2.Replace("\"", "\\\""); #endif return "\"" + s2 + "\""; } #if defined(__WXOSX__) || defined(__WXMSW__) wxString GetGettextPackagePath() { #if defined(__WXOSX__) return GetGettextPluginPath() + "/Contents/MacOS"; #elif defined(__WXMSW__) return wxStandardPaths::Get().GetDataDir() + wxFILE_SEP_PATH + "GettextTools"; #endif } #endif // __WXOSX__ || __WXMSW__ poedit-2.0.6/src/spellchecking.h0000664000372000037200000000412213230131554013473 00000000000000/* * This file is part of Poedit (https://poedit.net) * * Copyright (C) 2014-2018 Vaclav Slavik * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * DEALINGS IN THE SOFTWARE. * */ #ifndef Poedit_spellchecking_h #define Poedit_spellchecking_h #include #ifdef __WXMSW__ #include #endif #include #include "language.h" inline bool IsSpellcheckingAvailable() { #ifdef __WXMSW__ return wxPlatformInfo::Get().CheckOSVersion(6,2); #else return true; #endif } #ifdef __WXOSX__ // Set the global spellchecking language bool SetSpellcheckerLang(const wxString& lang); #endif // Does any initialization needed to be able to use spellchecker with the control later. #ifdef __WXMSW__ void PrepareTextCtrlForSpellchecker(wxTextCtrl *text); #endif // Init given text control to do (or not) spellchecking for given language bool InitTextCtrlSpellchecker(wxTextCtrl *text, bool enable, const Language& lang); #ifndef __WXMSW__ // Show help about how to add more dictionaries for spellchecking. void ShowSpellcheckerHelp(); #endif #endif // Poedit_spellchecking_h poedit-2.0.6/src/fileviewer.h0000664000372000037200000000472413230131554013031 00000000000000/* * This file is part of Poedit (https://poedit.net) * * Copyright (C) 1999-2018 Vaclav Slavik * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * DEALINGS IN THE SOFTWARE. * */ #ifndef _FILEVIEWER_H_ #define _FILEVIEWER_H_ #include "catalog.h" #include class WXDLLIMPEXP_FWD_CORE wxButton; class WXDLLIMPEXP_FWD_CORE wxChoice; class WXDLLIMPEXP_FWD_CORE wxStaticText; class WXDLLIMPEXP_FWD_CORE wxFileName; class WXDLLIMPEXP_FWD_STC wxStyledTextCtrl; /** This class implements frame that shows part of file surrounding specified line (40 lines in both directions). */ class FileViewer : public wxFrame { protected: FileViewer(wxWindow *parent); ~FileViewer(); public: static FileViewer *GetAndActivate(); static FileViewer *GetIfExists() { return ms_instance; } /// Shows given reference, i.e. loads the file void ShowReferences(CatalogPtr catalog, CatalogItemPtr item, int defaultReference = 0); private: void SetupTextCtrl(); int GetLexer(const wxString& extension); wxFileName GetFilename(wxString ref) const; void SelectReference(const wxString& ref); void ShowError(const wxString& msg); private: wxString m_basePath; wxArrayString m_references; wxChoice *m_file; wxButton *m_openInEditor; wxStyledTextCtrl *m_text; wxStaticText *m_error; void OnChoice(wxCommandEvent &event); void OnEditFile(wxCommandEvent &event); static FileViewer *ms_instance; }; #endif // _FILEVIEWER_H_ poedit-2.0.6/src/cat_sorting.cpp0000664000372000037200000001363313230131554013536 00000000000000/* * This file is part of Poedit (https://poedit.net) * * Copyright (C) 1999-2018 Vaclav Slavik * Copyright (C) 2005 Olivier Sannier * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * DEALINGS IN THE SOFTWARE. * */ #include "cat_sorting.h" #include #include "str_helpers.h" #include #include /*static*/ SortOrder SortOrder::Default() { SortOrder order; wxString by = wxConfig::Get()->Read("/sort_by", "file-order"); long ctxt = wxConfig::Get()->Read("/sort_group_by_context", 0L); long untrans = wxConfig::Get()->Read("/sort_untrans_first", 0L); long errors = wxConfig::Get()->Read("/sort_errors_first", 1L); if ( by == "source" ) order.by = By_Source; else if ( by == "translation" ) order.by = By_Translation; else order.by = By_FileOrder; order.groupByContext = (ctxt != 0); order.untransFirst = (untrans != 0); order.errorsFirst = (errors != 0); return order; } void SortOrder::Save() { wxString bystr; switch ( by ) { case By_FileOrder: bystr = "file-order"; break; case By_Source: bystr = "source"; break; case By_Translation: bystr = "translation"; break; } wxConfig::Get()->Write("/sort_by", bystr); wxConfig::Get()->Write("/sort_group_by_context", groupByContext); wxConfig::Get()->Write("/sort_untrans_first", untransFirst); wxConfig::Get()->Write("/sort_errors_first", errorsFirst); } CatalogItemsComparator::CatalogItemsComparator(const Catalog& catalog, const SortOrder& order) : m_catalog(catalog), m_order(order) { UErrorCode err = U_ZERO_ERROR; switch (m_order.by) { case SortOrder::By_Source: m_collator.reset(icu::Collator::createInstance(catalog.GetSourceLanguage().ToIcu(), err)); break; case SortOrder::By_Translation: m_collator.reset(icu::Collator::createInstance(catalog.GetLanguage().ToIcu(), err)); break; case SortOrder::By_FileOrder: break; } if (!U_SUCCESS(err) || err == U_USING_FALLBACK_WARNING) { wxLogTrace("poedit", "warning: not using collation for %s (%s)", catalog.GetLanguage().Code(), u_errorName(err)); } if (m_collator) { // Case-insensitive comparison: m_collator->setStrength(icu::Collator::SECONDARY); } } bool CatalogItemsComparator::operator()(int i, int j) const { const CatalogItem& a = Item(i); const CatalogItem& b = Item(j); if ( m_order.errorsFirst ) { if ( a.HasIssue() && !b.HasIssue() ) return true; else if ( !a.HasIssue() && b.HasIssue() ) return false; if ( a.HasError() && !b.HasError() ) return true; else if ( !a.HasError() && b.HasError() ) return false; } if ( m_order.untransFirst ) { if ( !a.IsTranslated() && b.IsTranslated() ) return true; else if ( a.IsTranslated() && !b.IsTranslated() ) return false; if ( a.IsFuzzy() && !b.IsFuzzy() ) return true; else if ( !a.IsFuzzy() && b.IsFuzzy() ) return false; } if ( m_order.groupByContext ) { if ( a.HasContext() && !b.HasContext() ) return true; else if ( !a.HasContext() && b.HasContext() ) return false; else if ( a.HasContext() && b.HasContext() ) { int r = CompareStrings(a.GetContext(), b.GetContext()); if ( r != 0 ) return r < 0; } } switch ( m_order.by ) { case SortOrder::By_FileOrder: { return i < j; } case SortOrder::By_Source: { int r = CompareStrings(a.GetString(), b.GetString()); if ( r != 0 ) return r < 0; break; } case SortOrder::By_Translation: { int r = CompareStrings(a.GetTranslation(), b.GetTranslation()); if ( r != 0 ) return r < 0; break; } } // As last resort, sort by position in file. Note that this means that // no two items are considered equal w.r.t. sort order; this ensures stable // ordering. return i < j; } int CatalogItemsComparator::CompareStrings(wxString a, wxString b) const { a.Replace("&", ""); a.Replace("_", ""); b.Replace("&", ""); b.Replace("_", ""); if (m_collator) { UErrorCode err = U_ZERO_ERROR; #if wxUSE_UNICODE_UTF8 return m_collator->compareUTF8(a.wx_str(), b.wx_str(), err); #elif SIZEOF_WCHAR_T == 2 return m_collator->compare(a.wx_str(), a.length(), b.wx_str(), b.length(), err); #else return m_collator->compare(str::to_icu(a), str::to_icu(b), err); #endif } else { return a.CmpNoCase(b); } } poedit-2.0.6/src/fileviewer.cpp0000664000372000037200000003030113230131554013352 00000000000000/* * This file is part of Poedit (https://poedit.net) * * Copyright (C) 1999-2018 Vaclav Slavik * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * DEALINGS IN THE SOFTWARE. * */ #include "fileviewer.h" #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "customcontrols.h" #include "hidpi.h" #include "utility.h" #include "unicode_helpers.h" namespace { #ifdef __WXOSX__ const int FRAME_STYLE = wxDEFAULT_FRAME_STYLE | wxFRAME_TOOL_WINDOW; #else const int FRAME_STYLE = wxDEFAULT_FRAME_STYLE; #endif } // anonymous namespace FileViewer *FileViewer::ms_instance = nullptr; FileViewer *FileViewer::GetAndActivate() { if (!ms_instance) ms_instance = new FileViewer(nullptr); ms_instance->Show(); ms_instance->Raise(); return ms_instance; } FileViewer::FileViewer(wxWindow*) : wxFrame(nullptr, wxID_ANY, _("Source file"), wxDefaultPosition, wxDefaultSize, FRAME_STYLE) { SetName("fileviewer"); wxPanel *panel = new wxPanel(this, -1); wxSizer *sizer = new wxBoxSizer(wxVERTICAL); panel->SetSizer(sizer); #ifdef __WXOSX__ panel->SetWindowVariant(wxWINDOW_VARIANT_SMALL); #endif wxSizer *barsizer = new wxBoxSizer(wxHORIZONTAL); sizer->Add(barsizer, wxSizerFlags().Expand().PXBorderAll()); barsizer->Add(new wxStaticText(panel, wxID_ANY, _("Source file occurrence:")), wxSizerFlags().Center().PXBorder(wxRIGHT)); m_file = new wxChoice(panel, wxID_ANY); barsizer->Add(m_file, wxSizerFlags(1).Center()); m_openInEditor = new wxButton(panel, wxID_ANY, MSW_OR_OTHER(_("Open in editor"), _("Open in Editor"))); barsizer->Add(m_openInEditor, wxSizerFlags().Center().Border(wxLEFT, PX(10))); m_text = new wxStyledTextCtrl(panel, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxBORDER_THEME); SetupTextCtrl(); sizer->Add(m_text, 1, wxEXPAND); m_error = new wxStaticText(panel, wxID_ANY, ""); m_error->SetForegroundColour(ExplanationLabel::GetTextColor()); m_error->SetFont(m_error->GetFont().Larger().Larger()); sizer->Add(m_error, wxSizerFlags(1).Center().Border(wxTOP|wxBOTTOM, PX(80))); RestoreWindowState(this, wxSize(PX(600), PX(400))); wxSizer *topsizer = new wxBoxSizer(wxVERTICAL); topsizer->Add(panel, wxSizerFlags(1).Expand()); SetSizer(topsizer); // avoid flicker with these initial settings: m_file->Disable(); sizer->Hide(m_error); sizer->Hide(m_text); Layout(); m_file->Bind(wxEVT_CHOICE, &FileViewer::OnChoice, this); m_openInEditor->Bind(wxEVT_BUTTON, &FileViewer::OnEditFile, this); #ifdef __WXOSX__ wxAcceleratorEntry entries[] = { { wxACCEL_CMD, 'W', wxID_CLOSE } }; wxAcceleratorTable accel(WXSIZEOF(entries), entries); SetAcceleratorTable(accel); Bind(wxEVT_MENU, [=](wxCommandEvent&){ Destroy(); }, wxID_CLOSE); #endif } FileViewer::~FileViewer() { ms_instance = nullptr; SaveWindowState(this); } void FileViewer::SetupTextCtrl() { wxStyledTextCtrl& t = *m_text; wxFont font = wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT); #ifdef __WXGTK__ font.SetFaceName("monospace"); #else static const char *s_monospaced_fonts[] = { #ifdef __WXMSW__ "Consolas", "Lucida Console", #endif #ifdef __WXOSX__ "Menlo", "Monaco", #endif NULL }; for ( const char **f = s_monospaced_fonts; *f; ++f ) { if ( wxFontEnumerator::IsValidFacename(*f) ) { font.SetFaceName(*f); break; } } #endif // style used: wxString fontspec = wxString::Format("face:%s,size:%d", font.GetFaceName().c_str(), #ifdef __WXOSX__ font.GetPointSize() - 1 #else font.GetPointSize() #endif ); const wxString DEFAULT = fontspec + ",fore:black,back:white"; const wxString STRING = fontspec + ",bold,fore:#882d21"; const wxString COMMENT = fontspec + ",fore:#487e18"; const wxString KEYWORD = fontspec + ",fore:#2f00f9"; const wxString LINENUMBERS = fontspec + ",fore:#5d8bab"; // current line marker t.MarkerDefine(1, wxSTC_MARK_BACKGROUND, wxNullColour, wxColour(255,255,0)); // set fonts t.StyleSetSpec(wxSTC_STYLE_DEFAULT, DEFAULT); t.StyleSetSpec(wxSTC_STYLE_LINENUMBER, LINENUMBERS); // line numbers margin size: t.SetMarginType(0, wxSTC_MARGIN_NUMBER); t.SetMarginWidth(0, t.TextWidth(wxSTC_STYLE_LINENUMBER, "9999 ")); t.SetMarginWidth(1, 0); t.SetMarginWidth(2, 3); // set syntax highlighting styling t.StyleSetSpec(wxSTC_C_STRING, STRING); t.StyleSetSpec(wxSTC_C_COMMENT, COMMENT); t.StyleSetSpec(wxSTC_C_COMMENTLINE, COMMENT); t.StyleSetSpec(wxSTC_P_STRING, STRING); t.StyleSetSpec(wxSTC_P_COMMENTLINE, COMMENT); t.StyleSetSpec(wxSTC_P_COMMENTBLOCK, COMMENT); t.StyleSetSpec(wxSTC_LUA_STRING, STRING); t.StyleSetSpec(wxSTC_LUA_LITERALSTRING, STRING); t.StyleSetSpec(wxSTC_LUA_COMMENT, COMMENT); t.StyleSetSpec(wxSTC_LUA_COMMENTLINE, COMMENT); t.StyleSetSpec(wxSTC_HPHP_HSTRING, STRING); t.StyleSetSpec(wxSTC_HPHP_SIMPLESTRING, STRING); t.StyleSetSpec(wxSTC_HPHP_COMMENT, COMMENT); t.StyleSetSpec(wxSTC_HPHP_COMMENTLINE, COMMENT); t.StyleSetSpec(wxSTC_TCL_COMMENT, COMMENT); t.StyleSetSpec(wxSTC_TCL_COMMENTLINE, COMMENT); t.StyleSetSpec(wxSTC_TCL_BLOCK_COMMENT, COMMENT); t.StyleSetSpec(wxSTC_PAS_STRING, STRING); t.StyleSetSpec(wxSTC_PAS_COMMENT, COMMENT); t.StyleSetSpec(wxSTC_PAS_COMMENT2, COMMENT); t.StyleSetSpec(wxSTC_PAS_COMMENTLINE, COMMENT); } int FileViewer::GetLexer(const wxString& ext) { struct LexerInfo { const char *ext; int lexer; }; static const LexerInfo s_lexer[] = { { "c", wxSTC_LEX_CPP }, { "cpp", wxSTC_LEX_CPP }, { "cc", wxSTC_LEX_CPP }, { "cxx", wxSTC_LEX_CPP }, { "h", wxSTC_LEX_CPP }, { "hxx", wxSTC_LEX_CPP }, { "hpp", wxSTC_LEX_CPP }, { "py", wxSTC_LEX_PYTHON }, { "htm", wxSTC_LEX_HTML }, { "html", wxSTC_LEX_HTML }, { "php", wxSTC_LEX_PHPSCRIPT }, { "xml", wxSTC_LEX_XML }, { "pas", wxSTC_LEX_PASCAL }, { NULL, -1 } }; wxString e = ext.Lower(); for ( const LexerInfo *i = s_lexer; i->ext; ++i ) { if ( e == wxString::FromAscii(i->ext) ) return i->lexer; } return wxSTC_LEX_NULL; } wxFileName FileViewer::GetFilename(wxString ref) const { if ( ref.length() >= 3 && ref[1] == _T(':') && (ref[2] == _T('\\') || ref[2] == _T('/')) ) { // This is an absolute Windows path (c:\foo... or c:/foo...); fix // the latter case. ref.Replace("/", "\\"); } wxPathFormat pathfmt = ref.Contains(_T('\\')) ? wxPATH_WIN : wxPATH_UNIX; wxFileName filename(ref.BeforeLast(_T(':')), pathfmt); if ( filename.IsRelative() ) { wxFileName relative(filename); wxString basePath(m_basePath); // Sometimes, the path in source reference is not relative to the PO // file's location, but is relative to e.g. the root directory. See // https://code.djangoproject.com/ticket/13936 for exhaustive // discussion with plenty of examples. // // Deal with this by trying parent directories of m_basePath too. So if // a file named project/locales/cs/foo.po has a reference to src/main.c, // try not only project/locales/cs/src/main.c, but also // project/locales/src/main.c and project/src/main.c etc. while ( !basePath.empty() ) { filename = relative; filename.MakeAbsolute(basePath); if ( filename.FileExists() ) { return filename; // good, found the file } else { // remove the last path component size_t last = basePath.find_last_of("\\/"); if ( last == wxString::npos ) break; else basePath.erase(last); } } } return wxFileName(); // invalid } void FileViewer::ShowReferences(CatalogPtr catalog, CatalogItemPtr item, int defaultReference) { m_basePath = catalog->GetSourcesBasePath(); if (m_basePath.empty()) m_basePath = wxPathOnly(catalog->GetFileName()); if (item) m_references = item->GetReferences(); m_file->Clear(); m_file->Enable(m_references.size() > 1); if (m_references.empty()) { ShowError(_("No references for the selected item.")); } else { for (auto& r: m_references) m_file->Append(bidi::platform_mark_direction(r)); m_file->SetSelection(defaultReference); SelectReference(m_references[defaultReference]); } } void FileViewer::SelectReference(const wxString& ref) { const wxFileName filename = GetFilename(ref); if (!filename.IsOk()) { ShowError(wxString::Format(_("Error opening file %s!"), filename.GetFullPath())); m_openInEditor->Disable(); return; } wxFFile file; wxString data; if ( !filename.IsFileReadable() || !file.Open(filename.GetFullPath()) || !file.ReadAll(&data, wxConvAuto()) ) { ShowError(wxString::Format(_("Error opening file %s!"), filename.GetFullPath())); m_openInEditor->Disable(); return; } m_openInEditor->Enable(); m_error->GetContainingSizer()->Hide(m_error); m_text->GetContainingSizer()->Show(m_text); Layout(); // support GNOME's xml2po's extension to references in the form of // filename:line(xml_node): wxString linenumStr = ref.AfterLast(_T(':')).BeforeFirst(_T('(')); long linenum; if (!linenumStr.ToLong(&linenum)) linenum = 0; m_text->SetReadOnly(false); m_text->SetValue(data); m_text->SetReadOnly(true); m_text->MarkerDeleteAll(1); m_text->MarkerAdd((int)linenum - 1, 1); // Center the highlighted line: int lineHeight = m_text->TextHeight((int)linenum); int linesInWnd = m_text->GetSize().y / lineHeight; m_text->ScrollToLine(wxMax(0, (int)linenum - linesInWnd/2)); } void FileViewer::ShowError(const wxString& msg) { m_error->SetLabel(msg); m_error->GetContainingSizer()->Show(m_error); m_text->GetContainingSizer()->Hide(m_text); Layout(); } void FileViewer::OnChoice(wxCommandEvent &event) { SelectReference(m_references[event.GetSelection()]); } void FileViewer::OnEditFile(wxCommandEvent&) { wxFileName filename = GetFilename(bidi::strip_control_chars(m_file->GetStringSelection())); if (filename.IsOk()) wxLaunchDefaultApplication(filename.GetFullPath()); } poedit-2.0.6/src/text_control.cpp0000664000372000037200000005635713230131554013760 00000000000000/* * This file is part of Poedit (https://poedit.net) * * Copyright (C) 1999-2018 Vaclav Slavik * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * DEALINGS IN THE SOFTWARE. * */ #include "text_control.h" #include #include #ifdef __WXOSX__ #import #import #endif #ifdef __WXMSW__ #include #include #ifndef BOE_UNICODEBIDI #define BOE_UNICODEBIDI 0x0080 #endif #ifndef BOM_UNICODEBIDI #define BOM_UNICODEBIDI 0x0080 #endif #include #include _COM_SMARTPTR_TYPEDEF(ITextDocument, __uuidof(ITextDocument)); #endif #include "colorscheme.h" #include "spellchecking.h" #include "str_helpers.h" #include "unicode_helpers.h" namespace { #ifdef __WXOSX__ inline NSTextView *TextView(const wxTextCtrl *ctrl) { NSScrollView *scroll = (NSScrollView*)ctrl->GetHandle(); return [scroll documentView]; } class DisableAutomaticSubstitutions { public: DisableAutomaticSubstitutions(wxTextCtrl *ctrl) : m_view(TextView(ctrl)) { m_dash = m_view.automaticDashSubstitutionEnabled; m_quote = m_view.automaticQuoteSubstitutionEnabled; m_text = m_view.automaticTextReplacementEnabled; m_spelling = m_view.automaticSpellingCorrectionEnabled; m_view.automaticDashSubstitutionEnabled = NO; m_view.automaticQuoteSubstitutionEnabled = NO; m_view.automaticTextReplacementEnabled = NO; m_view.automaticSpellingCorrectionEnabled = NO; } ~DisableAutomaticSubstitutions() { m_view.automaticDashSubstitutionEnabled = m_dash; m_view.automaticQuoteSubstitutionEnabled = m_quote; m_view.automaticTextReplacementEnabled = m_text; m_view.automaticSpellingCorrectionEnabled = m_spelling; } private: NSTextView *m_view; BOOL m_quote, m_dash, m_text, m_spelling; }; #endif // __WXOSX__ #ifdef __WXMSW__ inline ITextDocumentPtr TextDocument(wxTextCtrl *ctrl) { IUnknown *ole_raw; ::SendMessage((HWND) ctrl->GetHWND(), EM_GETOLEINTERFACE, 0, (LPARAM) &ole_raw); IUnknownPtr ole(ole_raw, /*addRef=*/false); ITextDocumentPtr doc; if (ole) ole->QueryInterface(&doc); return doc; } // Temporarily suppresses recording of changes for Undo/Redo functionality // See http://stackoverflow.com/questions/4138981/temporaily-disabling-the-c-sharp-rich-edit-undo-buffer-while-performing-syntax-h // and http://forums.codeguru.com/showthread.php?325068-Realizing-Undo-Redo-functionality-for-RichEdit-Syntax-Highlighter class UndoSuppressor { public: UndoSuppressor(CustomizedTextCtrl *ctrl) : m_doc(TextDocument(ctrl)) { if (m_doc) m_doc->Undo(tomSuspend, NULL); } ~UndoSuppressor() { if (m_doc) m_doc->Undo(tomResume, NULL); } private: ITextDocumentPtr m_doc; }; #endif #if defined(__WXOSX__) // Group undo operations into a single group class UndoGroup { public: UndoGroup(TranslationTextCtrl *ctrl) { m_undo = [TextView(ctrl) undoManager]; [m_undo beginUndoGrouping]; } ~UndoGroup() { [m_undo endUndoGrouping]; } private: NSUndoManager *m_undo; }; #elif defined(__WXMSW__) class UndoGroup { public: UndoGroup(TranslationTextCtrl *ctrl) : m_doc(TextDocument(ctrl)) { if (m_doc) m_doc->BeginEditCollection(); } ~UndoGroup() { if (m_doc) m_doc->EndEditCollection(); } private: ITextDocumentPtr m_doc; }; #elif defined(__WXGTK__) class UndoGroup { public: UndoGroup(TranslationTextCtrl *ctrl) : m_ctrl(ctrl) { m_ctrl->BeginUndoGrouping(); } ~UndoGroup() { m_ctrl->EndUndoGrouping(); } private: TranslationTextCtrl *m_ctrl; }; #endif } // anonymous namespace #ifdef __WXOSX__ // wxTextCtrl implementation on macOS uses insertText:, which is intended for // user input and performs some user input processing, such as autocorrections. // We need to avoid this, because Poedit's text control is filled with data // when moving in the list control: https://github.com/vslavik/poedit/issues/81 // Solve this by using a customized control with overridden DoSetValue(). CustomizedTextCtrl::CustomizedTextCtrl(wxWindow *parent, wxWindowID winid, long style) : wxTextCtrl(parent, winid, "", wxDefaultPosition, wxDefaultSize, style | ALWAYS_USED_STYLE) { auto text = TextView(this); [text setTextContainerInset:NSMakeSize(0,3)]; [text setRichText:NO]; Bind(wxEVT_TEXT_COPY, &CustomizedTextCtrl::OnCopy, this); Bind(wxEVT_TEXT_CUT, &CustomizedTextCtrl::OnCut, this); Bind(wxEVT_TEXT_PASTE, &CustomizedTextCtrl::OnPaste, this); } void CustomizedTextCtrl::DoSetValue(const wxString& value, int flags) { wxEventBlocker block(this, (flags & SetValue_SendEvent) ? 0 : wxEVT_ANY); [TextView(this) setString:str::to_NS(value)]; SendTextUpdatedEventIfAllowed(); } wxString CustomizedTextCtrl::DoGetValue() const { // wx's implementation is not sufficient and neither is [NSTextView string] // (which wx uses): they ignore formatting, which would be desirable, but // they also include embedded Unicode marks such as U+202A (Left-to-Right Embedding) // or U+202C (Pop Directional Format) that are essential for correct // handling of BiDi text. // // Instead, export the internal storage into plain-text, UTF-8 data and // load that into wxString. That shouldn't be too inefficient (wx does // UTF-8 roundtrip anyway) and preserves the marks; it is what TextEdit.app // does when saving text files. auto ctrl = TextView(this); NSTextStorage *text = [ctrl textStorage]; NSDictionary *attrs = @{ NSDocumentTypeDocumentAttribute: NSPlainTextDocumentType, NSCharacterEncodingDocumentAttribute: @(NSUTF8StringEncoding) }; NSData *data = [text dataFromRange:NSMakeRange(0, [text length]) documentAttributes:attrs error:nil]; if (data && [data length] > 0) return wxString::FromUTF8((const char*)[data bytes], [data length]); else return wxTextCtrl::DoGetValue(); } #else // !__WXOSX__ CustomizedTextCtrl::CustomizedTextCtrl(wxWindow *parent, wxWindowID winid, long style) { wxTextCtrl::Create(parent, winid, "", wxDefaultPosition, wxDefaultSize, style | ALWAYS_USED_STYLE); wxTextAttr padding; padding.SetLeftIndent(5); padding.SetRightIndent(5); SetDefaultStyle(padding); Bind(wxEVT_TEXT_COPY, &CustomizedTextCtrl::OnCopy, this); Bind(wxEVT_TEXT_CUT, &CustomizedTextCtrl::OnCut, this); Bind(wxEVT_TEXT_PASTE, &CustomizedTextCtrl::OnPaste, this); #ifdef __WXGTK__ m_historyLocks = 0; if (!(style & wxTE_READONLY)) Bind(wxEVT_TEXT, &CustomizedTextCtrl::OnText, this); #endif } #endif // !__WXOSX__ #ifdef __WXMSW__ WXDWORD CustomizedTextCtrl::MSWGetStyle(long style, WXDWORD *exstyle) const { auto msStyle = wxTextCtrl::MSWGetStyle(style, exstyle); // Disable always-shown scrollbars. The reason wx does this doesn't seem to // affect Poedit, so it should be safe: msStyle &= ~ES_DISABLENOSCROLL; return msStyle; } #endif // __WXMSW__ // We use wxTE_RICH2 style, which allows for pasting rich-formatted // text into the control. We want to allow only plain text (all the // formatting done is Poedit's syntax highlighting), so we need to // override copy/cut/paste commands. Plus, the richedit control // (or wx's use of it) has a bug in it that causes it to copy wrong // data when copying from the same text control to itself after its // content was programatically changed: // https://sourceforge.net/tracker/index.php?func=detail&aid=1910234&group_id=27043&atid=389153 // Note that GTK has a very similar problem with pasting rich text, // which is why this code is enabled for GTK too. bool CustomizedTextCtrl::DoCopy() { long from, to; GetSelection(&from, &to); if ( from == to ) return false; wxClipboardLocker lock; wxCHECK_MSG( !!lock, false, "failed to lock clipboard" ); auto text = DoCopyText(from, to); wxClipboard::Get()->SetData(new wxTextDataObject(text)); return true; } void CustomizedTextCtrl::OnCopy(wxClipboardTextEvent&) { if (!CanCopy()) return; DoCopy(); } void CustomizedTextCtrl::OnCut(wxClipboardTextEvent&) { if (!CanCut()) return; if (!DoCopy()) return; long from, to; GetSelection(&from, &to); Remove(from, to); } void CustomizedTextCtrl::OnPaste(wxClipboardTextEvent&) { if (!CanPaste()) return; wxClipboardLocker lock; wxCHECK_RET( !!lock, "failed to lock clipboard" ); wxTextDataObject d; wxClipboard::Get()->GetData(d); long from, to; GetSelection(&from, &to); DoPasteText(from, to, d.GetText()); } wxString CustomizedTextCtrl::DoCopyText(long from, long to) { return GetRange(from, to); } void CustomizedTextCtrl::DoPasteText(long from, long to, const wxString& s) { Replace(from, to, s); } #ifdef __WXGTK__ void CustomizedTextCtrl::BeginUndoGrouping() { m_historyLocks++; } void CustomizedTextCtrl::EndUndoGrouping() { if (--m_historyLocks == 0) SaveSnapshot(); } void CustomizedTextCtrl::SaveSnapshot() { // if we saved the snapshot in DoSetValue, OnText might still call this function again // therefore, we make sure to filter out duplicate entries if (m_historyIndex && m_history[m_historyIndex - 1].text == GetValue()) return; m_history.resize(m_historyIndex); // truncate the list m_history.push_back({GetValue(), GetInsertionPoint()}); m_historyIndex++; } void CustomizedTextCtrl::DoSetValue(const wxString& value, int flags) { // SetValue_SendEvent is set if this function was called from SetValue // SetValue_SendEvent is NOT set if this function was called from ChangeValue if (flags & SetValue_SendEvent) { // clear the history // m_history itself will be cleared when SaveSnapshot is called m_historyIndex = 0; // set the new value wxTextCtrl::DoSetValue(value, flags); // make sure to save a snapshot even if EVT_TEXT is blocked SaveSnapshot(); } else { // just set the new value, don't save a snapshot // this is what happens when you click Undo or Redo wxTextCtrl::DoSetValue(value, flags); } } void CustomizedTextCtrl::OnText(wxCommandEvent& event) { SaveSnapshot(); event.Skip(); } bool CustomizedTextCtrl::CanUndo() const { return (m_historyIndex > 1); } bool CustomizedTextCtrl::CanRedo() const { return (m_historyIndex < m_history.size()); } void CustomizedTextCtrl::Undo() { // ChangeValue calls AnyTranslatableTextCtrl::DoSetValue, which calls CustomizedTextCtrl::DoSetValue ChangeValue(m_history[m_historyIndex - 2].text); SetInsertionPoint(m_history[m_historyIndex - 2].insertionPoint); m_historyIndex--; } void CustomizedTextCtrl::Redo() { // ChangeValue calls AnyTranslatableTextCtrl::DoSetValue, which calls CustomizedTextCtrl::DoSetValue ChangeValue(m_history[m_historyIndex].text); SetInsertionPoint(m_history[m_historyIndex].insertionPoint); m_historyIndex++; } #endif // __WXGTK__ void CustomizedTextCtrl::ShowFindIndicator(int from, int length) { ShowPosition(from); #ifdef __WXOSX__ [TextView(this) showFindIndicatorForRange:NSMakeRange(from, length)]; #else SetSelection(from, from + length); #endif } class AnyTranslatableTextCtrl::Attributes { public: #ifdef __WXOSX__ NSDictionary *m_attrSpace, *m_attrEscape, *m_attrMarkup, *m_attrFormat; typedef NSDictionary* AttrType; Attributes() { m_attrSpace = @{NSBackgroundColorAttributeName: ColorScheme::Get(Color::SyntaxLeadingWhitespaceBg).OSXGetNSColor()}; m_attrEscape = @{NSBackgroundColorAttributeName: ColorScheme::Get(Color::SyntaxEscapeBg).OSXGetNSColor(), NSForegroundColorAttributeName: ColorScheme::Get(Color::SyntaxEscapeFg).OSXGetNSColor()}; m_attrMarkup = @{NSForegroundColorAttributeName: ColorScheme::Get(Color::SyntaxMarkup).OSXGetNSColor()}; m_attrFormat = @{NSForegroundColorAttributeName: ColorScheme::Get(Color::SyntaxFormat).OSXGetNSColor()}; } #else // !__WXOSX__ wxTextAttr m_attrDefault, m_attrSpace, m_attrEscape, m_attrMarkup, m_attrFormat; typedef wxTextAttr AttrType; Attributes() { m_attrDefault.SetBackgroundColour(*wxWHITE); m_attrDefault.SetTextColour(*wxBLACK); m_attrSpace.SetBackgroundColour(ColorScheme::Get(Color::SyntaxLeadingWhitespaceBg)); m_attrEscape.SetBackgroundColour(ColorScheme::Get(Color::SyntaxEscapeBg)); m_attrEscape.SetTextColour(ColorScheme::Get(Color::SyntaxEscapeFg)); m_attrMarkup.SetTextColour(ColorScheme::Get(Color::SyntaxMarkup)); m_attrFormat.SetTextColour(ColorScheme::Get(Color::SyntaxFormat)); } const AttrType& Default() const { return m_attrDefault; } #endif const AttrType& For(SyntaxHighlighter::TextKind kind) const { switch (kind) { case SyntaxHighlighter::LeadingWhitespace: return m_attrSpace; case SyntaxHighlighter::Escape: return m_attrEscape; case SyntaxHighlighter::Markup: return m_attrMarkup; case SyntaxHighlighter::Format: return m_attrFormat; } return m_attrSpace; // silence bogus warning } }; AnyTranslatableTextCtrl::AnyTranslatableTextCtrl(wxWindow *parent, wxWindowID winid, int style) : CustomizedTextCtrl(parent, winid, style), m_attrs(new Attributes) { Bind(wxEVT_TEXT, [=](wxCommandEvent& e){ e.Skip(); HighlightText(); }); m_language = Language::English(); } AnyTranslatableTextCtrl::~AnyTranslatableTextCtrl() { } void AnyTranslatableTextCtrl::SetLanguage(const Language& lang) { m_language = lang; wxEventBlocker block(this, wxEVT_TEXT); #ifdef __WXOSX__ NSTextView *text = TextView(this); if (lang.IsRTL()) { [text setBaseWritingDirection:NSWritingDirectionRightToLeft]; if ([NSApp userInterfaceLayoutDirection] == NSUserInterfaceLayoutDirectionLeftToRight) { // extra nudge to make typing behave as expected: [text makeTextWritingDirectionRightToLeft:nil]; } } else { [text setBaseWritingDirection:NSWritingDirectionLeftToRight]; } #endif #ifdef __WXMSW__ BIDIOPTIONS bidi; ::ZeroMemory(&bidi, sizeof(bidi)); bidi.cbSize = sizeof(bidi); bidi.wMask = BOM_UNICODEBIDI; bidi.wEffects = lang.IsRTL() ? BOE_UNICODEBIDI : 0; ::SendMessage((HWND)GetHWND(), EM_SETBIDIOPTIONS, 0, (LPARAM) &bidi); ::SendMessage((HWND)GetHWND(), EM_SETEDITSTYLE, lang.IsRTL() ? SES_BIDI : 0, SES_BIDI); UpdateRTLStyle(); #endif } void AnyTranslatableTextCtrl::SetPlainText(const wxString& s) { SetValue(EscapePlainText(s)); } wxString AnyTranslatableTextCtrl::GetPlainText() const { return UnescapePlainText(bidi::strip_pointless_control_chars(GetValue(), m_language.Direction())); } wxString AnyTranslatableTextCtrl::EscapePlainText(const wxString& s) { // Note: the escapes used here should match with // BasicSyntaxHighlighter::Highlight() ones wxString s2; s2.reserve(s.length()); for (auto i = s.begin(); i != s.end(); ++i) { wchar_t c = *i; switch (c) { case '\n': s2 += "\\n\n"; break; case '\r': s2 += "\\r"; break; case '\t': s2 += "\\t"; break; case '\a': s2 += "\\a"; break; case '\0': s2 += "\\0"; break; case '\\': { s2 += c; auto peek = i + 1; if ( peek != s.end() ) { switch ((wchar_t)*peek) { case 'n': case '\n': case 'r': case '\r': case 't': case '\t': case '0': case '\0': case '\\': s2 += c; // escape problematic backslash break; } } break; } default: s2 += c; break; } } return s2; } wxString AnyTranslatableTextCtrl::UnescapePlainText(const wxString& s) { wxString s2; s2.reserve(s.length()); for (auto i = s.begin(); i != s.end(); ++i) { wchar_t c0 = *i; if (c0 == '\\') { if ( ++i == s.end() ) { s2 += '\\'; return s2; } wchar_t c = *i; switch (c) { case 'r': s2 += '\r'; break; case 't': s2 += '\t'; break; case 'a': s2 += '\a'; break; case '0': s2 += '\0'; break; case 'n': { s2 += '\n'; auto peek = i + 1; if ( peek != s.end() && *peek == '\n' ) { // "\\n\n" should be treated as single newline i = peek; } break; } case '\\': s2 += '\\'; break; default: s2 += '\\'; s2 += c; break; } } else { s2 += c0; } } return s2; } wxString AnyTranslatableTextCtrl::DoCopyText(long from, long to) { return UnescapePlainText(GetRange(from, to)); } void AnyTranslatableTextCtrl::DoPasteText(long from, long to, const wxString& s) { Replace(from, to, EscapePlainText(s)); } void AnyTranslatableTextCtrl::DoSetValue(const wxString& value, int flags) { #ifdef __WXMSW__ wxWindowUpdateLocker dis(this); #endif CustomizedTextCtrl::DoSetValue(value, flags); #ifdef __WXMSW__ UpdateRTLStyle(); #endif HighlightText(); } #ifdef __WXMSW__ void AnyTranslatableTextCtrl::UpdateRTLStyle() { wxEventBlocker block(this, wxEVT_TEXT); UndoSuppressor blockUndo(this); PARAFORMAT2 pf; ::ZeroMemory(&pf, sizeof(pf)); pf.cbSize = sizeof(pf); pf.dwMask |= PFM_RTLPARA; if (m_language.IsRTL()) pf.wEffects |= PFE_RTLPARA; long start, end; GetSelection(&start, &end); SetSelection(-1, -1); ::SendMessage((HWND) GetHWND(), EM_SETPARAFORMAT, 0, (LPARAM) &pf); SetSelection(start, end); } #endif // !__WXMSW__ void AnyTranslatableTextCtrl::HighlightText() { auto text = GetValue().ToStdWstring(); #ifdef __WXOSX__ NSRange fullRange = NSMakeRange(0, text.length()); NSLayoutManager *layout = [TextView(this) layoutManager]; [layout removeTemporaryAttribute:NSForegroundColorAttributeName forCharacterRange:fullRange]; [layout removeTemporaryAttribute:NSBackgroundColorAttributeName forCharacterRange:fullRange]; if (m_syntax) { m_syntax->Highlight(text, [=](int a, int b, SyntaxHighlighter::TextKind kind){ [layout addTemporaryAttributes:m_attrs->For(kind) forCharacterRange:NSMakeRange(a, b-a)]; }); } #else // !__WXOSX__ #ifndef __WXGTK__ // Freezing (and more to the point, thawing) the window from inside wxEVT_TEXT // handler breaks pasting under GTK+ (selection is not replaced). // See https://github.com/vslavik/poedit/issues/139 wxWindowUpdateLocker noupd(this); #endif wxEventBlocker block(this, wxEVT_TEXT); #ifdef __WXMSW__ UndoSuppressor blockUndo(this); #endif auto deflt = m_attrs->Default(); deflt.SetFont(GetFont()); SetStyle(0, text.length(), deflt); if (m_syntax) { m_syntax->Highlight(text, [=](int a, int b, SyntaxHighlighter::TextKind kind){ SetStyle(a, b, m_attrs->For(kind)); }); } #endif // __WXOSX__/!__WXOSX__ } SourceTextCtrl::SourceTextCtrl(wxWindow *parent, wxWindowID winid) : AnyTranslatableTextCtrl(parent, winid, wxTE_READONLY | wxNO_BORDER) { SetLanguage(Language::English()); } TranslationTextCtrl::TranslationTextCtrl(wxWindow *parent, wxWindowID winid) : AnyTranslatableTextCtrl(parent, winid, wxNO_BORDER), m_lastKeyWasReturn(false) { #ifdef __WXMSW__ PrepareTextCtrlForSpellchecker(this); #endif #ifdef __WXOSX__ [TextView(this) setAllowsUndo:YES]; #endif Bind(wxEVT_KEY_DOWN, &TranslationTextCtrl::OnKeyDown, this); Bind(wxEVT_TEXT, &TranslationTextCtrl::OnText, this); } void TranslationTextCtrl::OnKeyDown(wxKeyEvent& e) { m_lastKeyWasReturn = (e.GetUnicodeKey() == WXK_RETURN); e.Skip(); } void TranslationTextCtrl::OnText(wxCommandEvent& e) { if (m_lastKeyWasReturn) { // Insert \n markup in front of newlines: m_lastKeyWasReturn = false; long pos = GetInsertionPoint(); auto range = GetRange(std::max(0l, pos - 3), pos); if (range.empty() || (range.Last() == '\n' && range != "\\n\n")) { #ifdef __WXGTK__ // GTK+ doesn't like modifying the content in the "changed" signal: CallAfter([=]{ Replace(pos - 1, pos, "\\n\n"); HighlightText(); }); #else Replace(pos - 1, pos, "\\n\n"); #endif } } e.Skip(); } #ifdef __WXOSX__ void TranslationTextCtrl::DoSetValue(const wxString& value, int flags) { AnyTranslatableTextCtrl::DoSetValue(value, flags); NSUndoManager *undo = [TextView(this) undoManager]; [undo removeAllActions]; } #endif #ifdef __WXMSW__ void TranslationTextCtrl::DoEnable(bool enable) { wxEventBlocker block(this, wxEVT_TEXT); AnyTranslatableTextCtrl::DoEnable(enable); } #endif void TranslationTextCtrl::SetPlainTextUserWritten(const wxString& value) { UndoGroup undo(this); #ifdef __WXOSX__ DisableAutomaticSubstitutions disableAuto(this); #endif SelectAll(); WriteText(EscapePlainText(value)); SetInsertionPointEnd(); HighlightText(); } poedit-2.0.6/src/edapp.cpp0000664000372000037200000011363413230131554012315 00000000000000/* * This file is part of Poedit (https://poedit.net) * * Copyright (C) 1999-2018 Vaclav Slavik * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * DEALINGS IN THE SOFTWARE. * */ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #ifdef __WXOSX__ #include "macos_helpers.h" #endif #ifdef __WXMSW__ #include #include #include #include #endif #include #include #if !wxUSE_UNICODE #error "Unicode build of wxWidgets is required by Poedit" #endif #include "colorscheme.h" #include "concurrency.h" #include "configuration.h" #include "edapp.h" #include "edframe.h" #include "extractors/extractor_legacy.h" #include "manager.h" #include "prefsdlg.h" #include "chooselang.h" #include "customcontrols.h" #include "gexecute.h" #include "hidpi.h" #include "http_client.h" #include "icons.h" #include "version.h" #include "str_helpers.h" #include "tm/transmem.h" #include "utility.h" #include "prefsdlg.h" #include "errors.h" #include "language.h" #include "crowdin_client.h" #ifdef __WXOSX__ struct PoeditApp::NativeMacAppData { NSMenu *recentMenu = nullptr; NSMenuItem *recentMenuItem = nullptr; NSMenu *windowMenu = nullptr; NSMenuItem *windowMenuItem = nullptr; wxMenuBar *menuBar = nullptr; #ifdef USE_SPARKLE NSObject *sparkleDelegate = nullptr; #endif }; #endif #ifndef __WXOSX__ // IPC for ensuring that only one instance of Poedit runs at a time. This is // handled native on macOS and GtkApplication could do it under GTK+3, but wx // doesn't support that and we have to implement everything manually for both // Windows and GTK+ ports. namespace { #ifdef __UNIX__ wxString GetRuntimeDir() { wxString dir; if (!wxGetEnv("XDG_RUNTIME_DIR", &dir)) dir = wxGetHomeDir(); if (dir.Last() != '/') dir += '/'; return dir; } wxString RemoteService() { return GetRuntimeDir() + "poedit.ipc"; } #else wxString RemoteService() { return "Poedit"; } #endif const char *IPC_TOPIC = "cmdline"; } // anonymous namespace class PoeditApp::RemoteServer { public: RemoteServer(PoeditApp *app) : m_server(app) { m_server.Create(RemoteService()); } private: class Connection : public wxConnection { public: Connection(PoeditApp *app) : m_app(app) {} bool OnExec(const wxString& topic, const wxString& data) override { if (topic != IPC_TOPIC) return false; wxString payload; if (data == "Activate") { dispatch::on_main([=] { m_app->OpenNewFile(); }); return true; } if (data.StartsWith("OpenURI:", &payload)) { dispatch::on_main([=] { m_app->HandleCustomURI(payload); }); return true; } if (data.StartsWith("OpenFile:", &payload)) { long lineno = 0; payload.BeforeFirst(':').ToLong(&lineno); wxArrayString a; a.push_back(payload.AfterFirst(':')); dispatch::on_main([=] { m_app->OpenFiles(a, lineno); }); return true; } return false; } private: PoeditApp *m_app; }; class Server : public wxServer { public: Server(PoeditApp *app) : m_app(app) {} wxConnectionBase *OnAcceptConnection(const wxString& topic) override { if (topic != IPC_TOPIC) return nullptr; return new Connection(m_app); } private: PoeditApp *m_app; }; Server m_server; }; class PoeditApp::RemoteClient { public: RemoteClient(wxSingleInstanceChecker *instCheck) : m_instCheck(instCheck), m_client() { } enum ConnectionStatus { NoOtherInstance, Connected, Failure }; ConnectionStatus ConnectIfNeeded() { // Try several times in case of a race condition where one instance // is exiting and not communicating, while another one is just starting. for (int attempt = 0; attempt < 3; attempt++) { if (!m_instCheck->IsAnotherRunning()) return NoOtherInstance; m_conn.reset(m_client.MakeConnection("localhost", RemoteService(), IPC_TOPIC)); if (m_conn) return Connected; // else: Something went wrong, no connection despite other instance existing. // Try again in a little while. wxMilliSleep(100); } return Failure; } void Activate() { Command("Activate"); } void HandleCustomURI(const wxString& uri) { Command("OpenURI:" + uri); } void OpenFile(const wxString& filename, int lineno = 0) { wxFileName fn(filename); fn.MakeAbsolute(); Command(wxString::Format("OpenFile:%d:%s", lineno, fn.GetFullPath())); } private: void Command(const wxString cmd) { m_conn->Execute(cmd); } wxSingleInstanceChecker *m_instCheck; wxClient m_client; std::unique_ptr m_conn; }; #endif // __WXOSX__ IMPLEMENT_APP(PoeditApp); PoeditApp::PoeditApp() { #ifdef __WXOSX__ m_nativeMacAppData.reset(new NativeMacAppData); wxMenuBar::SetAutoWindowMenu(false); #endif } PoeditApp::~PoeditApp() { } wxString PoeditApp::GetAppVersion() const { return wxString::FromAscii(POEDIT_VERSION); } wxString PoeditApp::GetAppBuildNumber() const { #if defined(__WXOSX__) NSDictionary *infoDict = [[NSBundle mainBundle] infoDictionary]; NSString *ver = [infoDict objectForKey:@"CFBundleVersion"]; return str::to_wx(ver); #elif defined(__WXMSW__) auto exe = wxStandardPaths::Get().GetExecutablePath(); DWORD unusedHandle; DWORD fiSize = GetFileVersionInfoSize(exe.wx_str(), &unusedHandle); if (fiSize == 0) return ""; wxCharBuffer fi(fiSize); if (!GetFileVersionInfo(exe.wx_str(), unusedHandle, fiSize, fi.data())) return ""; void *ver; UINT sizeInfo; if (!VerQueryValue(fi.data(), L"\\", &ver, &sizeInfo)) return ""; VS_FIXEDFILEINFO *info = (VS_FIXEDFILEINFO*)ver; return wxString::Format("%d", LOWORD(info->dwFileVersionLS)); #else return ""; #endif } bool PoeditApp::IsBetaVersion() const { wxString v = GetAppVersion(); return v.Contains("beta") || v.Contains("rc"); } bool PoeditApp::CheckForBetaUpdates() const { return IsBetaVersion() || wxConfigBase::Get()->ReadBool("check_for_beta_updates", false); } #ifndef __WXOSX__ static wxArrayString gs_filesToOpen; #endif static int gs_lineToOpen = 0; extern void InitXmlResource(); bool PoeditApp::OnInit() { #ifdef __WXMSW__ // remove the current directory from the default DLL search order SetDllDirectory(L""); #endif SetVendorName("Vaclav Slavik"); SetAppName("Poedit"); #ifndef __WXOSX__ // create early for use in cmd line parsing m_instanceChecker.reset(new wxSingleInstanceChecker); #ifdef __UNIX__ m_instanceChecker->Create("poedit.lock", GetRuntimeDir()); #else m_instanceChecker->CreateDefault(); #endif #endif if (!wxApp::OnInit()) return false; #ifndef __WXOSX__ m_remoteServer.reset(new RemoteServer(this)); #endif InitHiDPIHandling(); #ifdef __WXOSX__ MoveToApplicationsFolderIfNecessary(); wxSystemOptions::SetOption(wxMAC_TEXTCONTROL_USE_SPELL_CHECKER, 1); SetExitOnFrameDelete(false); #endif // timestamps on the logs are of not use for Poedit: wxLog::DisableTimestamp(); #if defined(__UNIX__) && !defined(__WXOSX__) wxString installPrefix = POEDIT_PREFIX; #ifdef __linux__ wxFileName::SplitPath(wxStandardPaths::Get().GetExecutablePath(), &installPrefix, nullptr, nullptr); wxFileName fn = wxFileName::DirName(installPrefix); fn.RemoveLastDir(); installPrefix = fn.GetFullPath(); #endif wxStandardPaths::Get().SetInstallPrefix(installPrefix); wxString xdgConfigHome; if (!wxGetEnv("XDG_CONFIG_HOME", &xdgConfigHome)) xdgConfigHome = wxGetHomeDir() + "/.config"; wxString configDir = xdgConfigHome + "/poedit"; if (!wxFileName::DirExists(configDir)) wxFileName::Mkdir(configDir, wxS_DIR_DEFAULT, wxPATH_MKDIR_FULL); wxString configFile = configDir + "/config"; #endif // __UNIX__ #if defined(__WXOSX__) #define CFG_FILE (wxStandardPaths::Get().GetUserConfigDir() + "/net.poedit.Poedit.cfg") #elif defined(__UNIX__) #define CFG_FILE configFile #else #define CFG_FILE wxString() #endif #ifdef __WXOSX__ // Remove legacy Sparkle updates folder that used to accumulate broken download // files for some users and eat up disk space: auto oldsparkle = wxStandardPaths::Get().GetUserDataDir() + "/.Sparkle"; if (wxFileName::DirExists(oldsparkle)) wxFileName::Rmdir(oldsparkle, wxPATH_RMDIR_RECURSIVE); #endif Config::Initialize(CFG_FILE.ToStdWstring()); #ifndef __WXOSX__ wxImage::AddHandler(new wxPNGHandler); #endif #ifdef __WXMSW__ wxImage::AddHandler(new wxICOHandler); #endif wxXmlResource::Get()->InitAllHandlers(); wxXmlResource::Get()->AddHandler(new LearnMoreLinkXmlHandler); #if defined(__WXOSX__) wxXmlResource::Get()->LoadAllFiles(wxStandardPaths::Get().GetResourcesDir()); #elif defined(__WXMSW__) wxStandardPaths::Get().DontIgnoreAppSubDir(); wxXmlResource::Get()->LoadAllFiles(wxStandardPaths::Get().GetResourcesDir() + "\\Resources"); #else InitXmlResource(); #endif SetDefaultCfg(wxConfig::Get()); #if defined(__WXOSX__) || defined(__WXMSW__) u_setDataDirectory(wxStandardPaths::Get().GetResourcesDir().mb_str()); #endif #ifndef __WXOSX__ wxArtProvider::PushBack(new PoeditArtProvider); #endif SetupLanguage(); #ifdef __WXOSX__ wxMenuBar *bar = wxXmlResource::Get()->LoadMenuBar("mainmenu_mac_global"); TweakOSXMenuBar(bar); wxMenuBar::MacSetCommonMenuBar(bar); // so that help menu is correctly merged with system-provided menu // (see http://sourceforge.net/tracker/index.php?func=detail&aid=1600747&group_id=9863&atid=309863) s_macHelpMenuTitleName = _("&Help"); #endif #ifndef __WXOSX__ FileHistory().Load(*wxConfig::Get()); #endif #ifdef __WXMSW__ AssociateFileTypeIfNeeded(); #endif #ifndef __WXOSX__ // NB: opening files or creating empty window is handled differently on // Macs, using MacOpenFiles() and MacNewFile(), so don't create empty // window if no files are given on command line; but still support // passing files on command line if (!gs_filesToOpen.empty()) { OpenFiles(gs_filesToOpen, gs_lineToOpen); gs_filesToOpen.clear(); gs_lineToOpen = 0; } else { OpenNewFile(); } #endif // !__WXOSX__ #ifdef USE_SPARKLE m_nativeMacAppData->sparkleDelegate = Sparkle_Initialize(); #endif // USE_SPARKLE #ifdef __WXMSW__ wxString appcast = "https://poedit.net/updates_v2/win/appcast"; if ( CheckForBetaUpdates() ) { // Beta versions use unstable feed. appcast = "https://poedit.net/updates_v2/win/appcast/beta"; } win_sparkle_set_appcast_url(appcast.utf8_str()); win_sparkle_set_can_shutdown_callback(&PoeditApp::WinSparkle_CanShutdown); win_sparkle_set_shutdown_request_callback(&PoeditApp::WinSparkle_Shutdown); auto buildnum = GetAppBuildNumber(); if (!buildnum.empty()) win_sparkle_set_app_build_version(buildnum.wc_str()); win_sparkle_init(); #endif #ifndef __WXOSX__ // If we failed to open any window during startup (e.g. because the user // attempted to open MO files), shut the app down. Don't do this on macOS // where a) the initialization is finished after OnInit() and b) apps // without windows are OK. if (!PoeditFrame::HasAnyWindow()) return false; #endif return true; } int PoeditApp::OnExit() { #ifndef __WXOSX__ m_instanceChecker.reset(); m_remoteServer.reset(); #endif // Keep any clipboard data available on Windows after the app terminates: wxTheClipboard->Flush(); // Make sure PoeditFrame instances schedules for deletion are deleted // early -- e.g. before wxConfig is destroyed, so they can save changes DeletePendingObjects(); ColorScheme::CleanUp(); TranslationMemory::CleanUp(); #ifdef HAVE_HTTP_CLIENT CrowdinClient::CleanUp(); #endif dispatch::cleanup(); #ifdef USE_SPARKLE Sparkle_Cleanup(); #endif // USE_SPARKLE #ifdef __WXMSW__ win_sparkle_cleanup(); #endif u_cleanup(); return wxApp::OnExit(); } static wxLayoutDirection g_layoutDirection = wxLayout_Default; void PoeditApp::SetupLanguage() { #if defined(__WXMSW__) wxFileTranslationsLoader::AddCatalogLookupPathPrefix(wxStandardPaths::Get().GetResourcesDir() + "\\Translations"); wxFileTranslationsLoader::AddCatalogLookupPathPrefix(GetGettextPackagePath() + "/share/locale"); #elif defined(__WXOSX__) wxFileTranslationsLoader::AddCatalogLookupPathPrefix(GetGettextPackagePath() + "/share/locale"); #else // UNIX wxFileTranslationsLoader::AddCatalogLookupPathPrefix(wxStandardPaths::Get().GetInstallPrefix() + "/share/locale"); #endif wxTranslations *trans = new wxTranslations(); wxTranslations::Set(trans); int language = wxLANGUAGE_DEFAULT; #if NEED_CHOOSELANG_UI auto uilang = GetUILanguage(); if (!uilang.empty()) { auto langinfo = wxLocale::FindLanguageInfo(uilang); if (langinfo) { language = langinfo->Language; uilang.clear(); // will go through locale } } #endif // Properly set locale is important for some aspects of GTK+ as well as // other things. It's also the common thing to do, so don't break // expectations needlessly: { // suppress error logging because setting locale may fail and we want to // handle that gracefully and invisibly: wxLogNull null; m_locale.reset(new wxLocale()); if (!m_locale->Init(language, wxLOCALE_DONT_LOAD_DEFAULT)) m_locale.reset(); #if NEED_CHOOSELANG_UI if (!uilang.empty()) trans->SetLanguage(uilang); #endif } trans->AddStdCatalog(); trans->AddCatalog("poedit"); wxString bestTrans = trans->GetBestTranslation("poedit"); Language uiLang = Language::TryParse(bestTrans.ToStdWstring()); UErrorCode err = U_ZERO_ERROR; icu::Locale::setDefault(uiLang.ToIcu(), err); #if defined(HAVE_HTTP_CLIENT) && !defined(__WXOSX__) http_client::set_ui_language(uiLang.LanguageTag()); #endif const wxLanguageInfo *info = wxLocale::FindLanguageInfo(bestTrans); g_layoutDirection = info ? info->LayoutDirection : wxLayout_Default; #ifdef __WXMSW__ win_sparkle_set_lang(bestTrans.utf8_str()); #endif } wxLayoutDirection PoeditApp::GetLayoutDirection() const { return g_layoutDirection; } void PoeditApp::OpenNewFile() { PoeditFrame *unused = PoeditFrame::UnusedWindow(/*active=*/false); if (unused) unused->Raise(); else PoeditFrame::CreateWelcome(); } void PoeditApp::OpenFiles(const wxArrayString& names, int lineno) { PoeditFrame *active = PoeditFrame::UnusedActiveWindow(); for ( auto name: names ) { // MO files cannot be opened directly in Poedit (yet), but they are // associated with it, so that the app can provide explanation to users // not familiar with the MO/PO distinction. auto n = name.Lower(); if (n.EndsWith(".mo") || n.EndsWith(".gmo")) { wxMessageDialog dlg(nullptr, _("MO files can’t be directly edited in Poedit."), _("Error opening file"), wxOK); dlg.SetExtendedMessage(_("Please open and edit the corresponding PO file instead. When you save it, the MO file will be updated as well.")); dlg.ShowModal(); continue; } if (active) { active->OpenFile(name, lineno); active = nullptr; } else { PoeditFrame::Create(name, lineno); } } } void PoeditApp::SetDefaultCfg(wxConfigBase *cfg) { LegacyExtractorsDB::RemoveObsoleteExtractors(cfg); if (cfg->Read("version", wxEmptyString) == GetAppVersion()) return; if (cfg->Read("TM/search_paths", wxEmptyString).empty()) { wxString paths; #if defined(__UNIX__) paths = wxGetHomeDir() + ":/usr/share/locale:/usr/local/share/locale"; #elif defined(__WXMSW__) paths = "C:"; #endif cfg->Write("TM/search_paths", paths); } cfg->Write("version", GetAppVersion()); } namespace { const char *CL_KEEP_TEMP_FILES = "keep-temp-files"; const char *CL_HANDLE_POEDIT_URI = "handle-poedit-uri"; const char *CL_LINE = "line"; } void PoeditApp::OnInitCmdLine(wxCmdLineParser& parser) { wxApp::OnInitCmdLine(parser); parser.AddSwitch("", CL_KEEP_TEMP_FILES, _(L"don’t delete temporary files (for debugging)")); parser.AddLongOption(CL_HANDLE_POEDIT_URI, _("handle a poedit:// URI"), wxCMD_LINE_VAL_STRING); parser.AddLongOption(CL_LINE, _("go to item at given line number"), wxCMD_LINE_VAL_NUMBER); parser.AddParam("catalog.po", wxCMD_LINE_VAL_STRING, wxCMD_LINE_PARAM_OPTIONAL | wxCMD_LINE_PARAM_MULTIPLE); } bool PoeditApp::OnCmdLineParsed(wxCmdLineParser& parser) { if (!wxApp::OnCmdLineParsed(parser)) return false; long lineno = 0; if (parser.Found(CL_LINE, &lineno)) gs_lineToOpen = (int)lineno; if ( parser.Found(CL_KEEP_TEMP_FILES) ) TempDirectory::KeepFiles(); #ifndef __WXOSX__ RemoteClient client(m_instanceChecker.get()); switch (client.ConnectIfNeeded()) { case RemoteClient::Failure: { wxLogError(_("Failed to communicate with Poedit process.")); wxLog::FlushActive(); return false; // terminate program } case RemoteClient::Connected: { wxString poeditURI; if (parser.Found(CL_HANDLE_POEDIT_URI, &poeditURI)) client.HandleCustomURI(poeditURI); if (parser.GetParamCount() == 0) { client.Activate(); } else { for (size_t i = 0; i < parser.GetParamCount(); i++) client.OpenFile(parser.GetParam(i), (int)lineno); } return false; // terminate program } case RemoteClient::NoOtherInstance: // fall through and handle normally break; } #endif wxString poeditURI; if (parser.Found(CL_HANDLE_POEDIT_URI, &poeditURI)) { // handling the URI shows UI, so do it after OnInit() initialization: CallAfter([=]{ HandleCustomURI(poeditURI); }); } #ifdef __WXOSX__ wxArrayString filesToOpen; for (size_t i = 0; i < parser.GetParamCount(); i++) filesToOpen.Add(parser.GetParam(i)); if (!filesToOpen.empty()) OSXStoreOpenFiles(filesToOpen); #else for (size_t i = 0; i < parser.GetParamCount(); i++) gs_filesToOpen.Add(parser.GetParam(i)); #endif return true; } void PoeditApp::HandleCustomURI(const wxString& uri) { if (!uri.StartsWith("poedit://")) return; #ifdef HAVE_HTTP_CLIENT if (CrowdinClient::Get().IsOAuthCallback(uri.ToStdString())) { wxConfig::Get()->Write("/6p/crowdin_logged_in", true); CrowdinClient::Get().HandleOAuthCallback(uri.ToStdString()); return; } #endif } // --------------------------------------------------------------------------- // exceptions handling // --------------------------------------------------------------------------- bool PoeditApp::OnExceptionInMainLoop() { try { throw; } #ifdef __WXOSX__ catch ( NSException *e ) { wxLogError(_("Unhandled exception occurred: %s"), str::to_wx([e reason])); } #endif catch ( ... ) { wxLogError(_("Unhandled exception occurred: %s"), DescribeCurrentException()); } return true; } // --------------------------------------------------------------------------- // event handlers for app-global menu actions // --------------------------------------------------------------------------- BEGIN_EVENT_TABLE(PoeditApp, wxApp) #ifndef __WXMSW__ EVT_MENU (wxID_NEW, PoeditApp::OnNew) EVT_MENU (XRCID("menu_new_from_pot"),PoeditApp::OnNew) EVT_MENU (wxID_OPEN, PoeditApp::OnOpen) #ifdef HAVE_HTTP_CLIENT EVT_MENU (XRCID("menu_open_crowdin"),PoeditApp::OnOpenFromCrowdin) #endif #ifndef __WXOSX__ EVT_MENU_RANGE (wxID_FILE1, wxID_FILE9, PoeditApp::OnOpenHist) #endif #endif // !__WXMSW__ EVT_MENU (wxID_ABOUT, PoeditApp::OnAbout) EVT_MENU (XRCID("menu_manager"), PoeditApp::OnManager) EVT_MENU (wxID_EXIT, PoeditApp::OnQuit) EVT_MENU (wxID_PREFERENCES, PoeditApp::OnPreferences) EVT_MENU (wxID_HELP, PoeditApp::OnHelp) EVT_MENU (XRCID("menu_gettext_manual"), PoeditApp::OnGettextManual) #ifdef __WXMSW__ EVT_MENU (XRCID("menu_check_for_updates"), PoeditApp::OnWinsparkleCheck) #endif #ifdef __WXOSX__ EVT_MENU (wxID_CLOSE, PoeditApp::OnCloseWindowCommand) EVT_IDLE (PoeditApp::OnIdleFixupMenusForMac) #endif END_EVENT_TABLE() // macOS and GNOME apps should open new documents in a new window. On Windows, // however, the usual thing to do is to open the new document in the already // open window and replace the current document. #ifndef __WXMSW__ #define TRY_FORWARD_TO_ACTIVE_WINDOW(funcCall) \ { \ PoeditFrame *active = PoeditFrame::UnusedActiveWindow(); \ if ( active ) \ { \ active->funcCall; \ return; \ } \ } void PoeditApp::OnNew(wxCommandEvent& event) { TRY_FORWARD_TO_ACTIVE_WINDOW( OnNew(event) ); PoeditFrame *f = PoeditFrame::CreateEmpty(); f->OnNew(event); } void PoeditApp::OnOpen(wxCommandEvent&) { PoeditFrame *active = PoeditFrame::UnusedActiveWindow(); wxString path = wxConfig::Get()->Read("last_file_path", wxEmptyString); wxFileDialog dlg(nullptr, MACOS_OR_OTHER("", _("Open catalog")), path, wxEmptyString, Catalog::GetAllTypesFileMask(), wxFD_OPEN | wxFD_FILE_MUST_EXIST | wxFD_MULTIPLE); if (dlg.ShowModal() == wxID_OK) { wxConfig::Get()->Write("last_file_path", dlg.GetDirectory()); wxArrayString paths; dlg.GetPaths(paths); if (paths.size() == 1 && active) { active->OpenFile(paths[0]); return; } OpenFiles(paths); } } #ifdef HAVE_HTTP_CLIENT void PoeditApp::OnOpenFromCrowdin(wxCommandEvent& event) { TRY_FORWARD_TO_ACTIVE_WINDOW( OnOpenFromCrowdin(event) ); PoeditFrame *f = PoeditFrame::CreateEmpty(); f->OnOpenFromCrowdin(event); } #endif #ifndef __WXOSX__ void PoeditApp::OnOpenHist(wxCommandEvent& event) { TRY_FORWARD_TO_ACTIVE_WINDOW( OnOpenHist(event) ); wxString f(FileHistory().GetHistoryFile(event.GetId() - wxID_FILE1)); if ( !wxFileExists(f) ) { wxLogError(_(L"File “%s” doesn’t exist."), f.c_str()); return; } OpenFiles(wxArrayString(1, &f)); } #endif // !__WXOSX__ #endif // !__WXMSW__ void PoeditApp::OnAbout(wxCommandEvent&) { wxAboutDialogInfo about; #ifndef __WXOSX__ about.SetName("Poedit"); about.SetVersion(wxGetApp().GetAppVersion()); about.SetDescription(_("Poedit is an easy to use translations editor.")); #endif about.SetCopyright(L"Copyright \u00a9 1999-2018 Václav Slavík"); #ifdef __WXGTK__ // other ports would show non-native about dlg about.SetWebSite("https://poedit.net"); #endif wxAboutBox(about); } void PoeditApp::OnManager(wxCommandEvent&) { wxFrame *f = ManagerFrame::Create(); f->Raise(); } void PoeditApp::OnQuit(wxCommandEvent&) { #ifdef __WXOSX__ // Native apps don't quit if there's any modal window or a sheet open; wx // only refuses to quit if a app-modal window is open: for (NSWindow *w in [NSApp windows]) { if (w.sheet && w.visible && w.preventsApplicationTerminationWhenModal) return; } // The Close() calls below may not terminate immediately, they may ask for // confirmation window-modally on macOS. So change the behavior to terminate // the app when the last window is closed now, instead of calling // ExitMainLoop(). This will terminate the app automagically when all the // windows are closed. bool delayed = false; for ( auto& i : wxTopLevelWindows ) { if (!i->Close()) delayed = true; } if (delayed) SetExitOnFrameDelete(true); else ExitMainLoop(); #else // !__WXOSX__ for ( auto& i : wxTopLevelWindows ) { if (!i->Close()) return; } ExitMainLoop(); #endif } void PoeditApp::EditPreferences() { if (!m_preferences) m_preferences = PoeditPreferencesEditor::Create(); m_preferences->Show(nullptr); } void PoeditApp::OnPreferences(wxCommandEvent&) { EditPreferences(); } void PoeditApp::OnHelp(wxCommandEvent&) { OpenPoeditWeb("/trac/wiki/Doc"); } void PoeditApp::OnGettextManual(wxCommandEvent&) { wxLaunchDefaultBrowser("http://www.gnu.org/software/gettext/manual/html_node/"); } void PoeditApp::OpenPoeditWeb(const wxString& path) { wxLaunchDefaultBrowser ( wxString::Format("https://poedit.net%s?fromVersion=%s", path, GetAppVersion()) ); } #ifdef __WXOSX__ void PoeditApp::MacOpenFiles(const wxArrayString& names) { OpenFiles(names, gs_lineToOpen); gs_lineToOpen = 0; } static NSMenuItem *AddNativeItem(NSMenu *menu, int pos, const wxString& text, SEL ac, NSString *key) { NSString *str = str::to_NS(text); if (pos == -1) return [menu addItemWithTitle:str action:ac keyEquivalent:key]; else return [menu insertItemWithTitle:str action:ac keyEquivalent:key atIndex:pos]; } void PoeditApp::TweakOSXMenuBar(wxMenuBar *bar) { wxMenu *apple = bar->OSXGetAppleMenu(); if (!apple) return; // huh apple->Insert(3, XRCID("menu_manager"), _("Catalogs Manager")); apple->InsertSeparator(3); #if USE_SPARKLE Sparkle_AddMenuItem(apple->GetHMenu(), _(L"Check for Updates…").utf8_str()); #endif wxMenu *fileMenu = nullptr; wxMenuItem *fileCloseItem = bar->FindItem(wxID_CLOSE, &fileMenu); if (fileMenu && fileCloseItem) { NSMenuItem *nativeCloseItem = [fileMenu->GetHMenu() itemWithTitle:str::to_NS(fileCloseItem->GetItemLabelText())]; if (nativeCloseItem) { nativeCloseItem.target = nil; nativeCloseItem.action = @selector(performClose:); } } int editMenuPos = bar->FindMenu(_("&Edit")); if (editMenuPos == wxNOT_FOUND) editMenuPos = 1; wxMenu *edit = bar->GetMenu(editMenuPos); int pasteItem = -1; int findItem = -1; int pos = 0; for (auto& i : edit->GetMenuItems()) { if (i->GetId() == wxID_PASTE) pasteItem = pos; else if (i->GetId() == XRCID("menu_sub_find")) findItem = pos; pos++; } NSMenu *editNS = edit->GetHMenu(); #pragma clang diagnostic push #pragma clang diagnostic ignored "-Wundeclared-selector" AddNativeItem(editNS, 0, _("Undo"), @selector(undo:), @"z"); AddNativeItem(editNS, 1, _("Redo"), @selector(redo:), @"Z"); #pragma clang diagnostic pop [editNS insertItem:[NSMenuItem separatorItem] atIndex:2]; if (pasteItem != -1) pasteItem += 3; if (findItem != -1) findItem += 3; NSMenuItem *item; if (pasteItem != -1) { item = AddNativeItem(editNS, pasteItem+1, _("Paste and Match Style"), @selector(pasteAsPlainText:), @"V"); [item setKeyEquivalentModifierMask:NSCommandKeyMask | NSAlternateKeyMask]; item = AddNativeItem(editNS, pasteItem+2, _("Delete"), @selector(delete:), @""); [item setKeyEquivalentModifierMask:NSCommandKeyMask]; if (findItem != -1) findItem += 2; } #define FIND_PLUS(ofset) ((findItem != -1) ? (findItem+ofset) : -1) if (findItem == -1) [editNS addItem:[NSMenuItem separatorItem]]; item = AddNativeItem(editNS, FIND_PLUS(1), _("Spelling and Grammar"), NULL, @""); NSMenu *spelling = [[NSMenu alloc] initWithTitle:@"Spelling and Grammar"]; AddNativeItem(spelling, -1, _("Show Spelling and Grammar"), @selector(showGuessPanel:), @":"); AddNativeItem(spelling, -1, _("Check Document Now"), @selector(checkSpelling:), @";"); [spelling addItem:[NSMenuItem separatorItem]]; AddNativeItem(spelling, -1, _("Check Spelling While Typing"), @selector(toggleContinuousSpellChecking:), @""); AddNativeItem(spelling, -1, _("Check Grammar With Spelling"), @selector(toggleGrammarChecking:), @""); AddNativeItem(spelling, -1, _("Correct Spelling Automatically"), @selector(toggleAutomaticSpellingCorrection:), @""); [editNS setSubmenu:spelling forItem:item]; item = AddNativeItem(editNS, FIND_PLUS(2), _("Substitutions"), NULL, @""); NSMenu *subst = [[NSMenu alloc] initWithTitle:@"Substitutions"]; AddNativeItem(subst, -1, _("Show Substitutions"), @selector(orderFrontSubstitutionsPanel:), @""); [subst addItem:[NSMenuItem separatorItem]]; AddNativeItem(subst, -1, _("Smart Copy/Paste"), @selector(toggleSmartInsertDelete:), @""); AddNativeItem(subst, -1, _("Smart Quotes"), @selector(toggleAutomaticQuoteSubstitution:), @""); AddNativeItem(subst, -1, _("Smart Dashes"), @selector(toggleAutomaticDashSubstitution:), @""); AddNativeItem(subst, -1, _("Smart Links"), @selector(toggleAutomaticLinkDetection:), @""); AddNativeItem(subst, -1, _("Text Replacement"), @selector(toggleAutomaticTextReplacement:), @""); [editNS setSubmenu:subst forItem:item]; item = AddNativeItem(editNS, FIND_PLUS(3), _("Transformations"), NULL, @""); NSMenu *trans = [[NSMenu alloc] initWithTitle:@"Transformations"]; AddNativeItem(trans, -1, _("Make Upper Case"), @selector(uppercaseWord:), @""); AddNativeItem(trans, -1, _("Make Lower Case"), @selector(lowercaseWord:), @""); AddNativeItem(trans, -1, _("Capitalize"), @selector(capitalizeWord:), @""); [editNS setSubmenu:trans forItem:item]; item = AddNativeItem(editNS, FIND_PLUS(4), _("Speech"), NULL, @""); NSMenu *speech = [[NSMenu alloc] initWithTitle:@"Speech"]; AddNativeItem(speech, -1, _("Start Speaking"), @selector(startSpeaking:), @""); AddNativeItem(speech, -1, _("Stop Speaking"), @selector(stopSpeaking:), @""); [editNS setSubmenu:speech forItem:item]; int viewMenuPos = bar->FindMenu(_("&View")); if (viewMenuPos != wxNOT_FOUND) { NSMenu *viewNS = bar->GetMenu(viewMenuPos)->GetHMenu(); [viewNS addItem:[NSMenuItem separatorItem]]; item = AddNativeItem(viewNS, -1, _("Enter Full Screen"), @selector(toggleFullScreen:), @"f"); [item setKeyEquivalentModifierMask:NSCommandKeyMask | NSControlKeyMask]; } if (!m_nativeMacAppData->windowMenu) { NSMenu *windowMenu = [[NSMenu alloc] initWithTitle:str::to_NS(_("Window"))]; AddNativeItem(windowMenu, -1, _("Minimize"), @selector(performMiniaturize:), @"m"); AddNativeItem(windowMenu, -1, _("Zoom"), @selector(performZoom:), @""); [windowMenu addItem:[NSMenuItem separatorItem]]; AddNativeItem(windowMenu, -1, _("Bring All to Front"), @selector(arrangeInFront:), @""); [NSApp setWindowsMenu:windowMenu]; m_nativeMacAppData->windowMenu = windowMenu; } } void PoeditApp::CreateFakeOpenRecentMenu() { // Populate the menu with a hack that will be replaced. NSMenu *mainMenu = [NSApp mainMenu]; NSMenuItem *item = [mainMenu addItemWithTitle:@"File" action:NULL keyEquivalent:@""]; NSMenu *menu = [[NSMenu alloc] initWithTitle:NSLocalizedString(@"File", nil)]; item = [menu addItemWithTitle:NSLocalizedString(@"Open Recent", nil) action:NULL keyEquivalent:@""]; NSMenu *openRecentMenu = [[NSMenu alloc] initWithTitle:@"Open Recent"]; #pragma clang diagnostic push #pragma clang diagnostic ignored "-Wundeclared-selector" [openRecentMenu performSelector:@selector(_setMenuName:) withObject:@"NSRecentDocumentsMenu"]; #pragma clang diagnostic pop [menu setSubmenu:openRecentMenu forItem:item]; m_nativeMacAppData->recentMenuItem = item; m_nativeMacAppData->recentMenu = openRecentMenu; item = [openRecentMenu addItemWithTitle:NSLocalizedString(@"Clear Menu", nil) action:@selector(clearRecentDocuments:) keyEquivalent:@""]; } void PoeditApp::FixupMenusForMac(wxMenuBar *bar) { m_nativeMacAppData->menuBar = nullptr; if (m_nativeMacAppData->recentMenuItem) [m_nativeMacAppData->recentMenuItem setSubmenu:nil]; if (m_nativeMacAppData->windowMenuItem) [m_nativeMacAppData->windowMenuItem setSubmenu:nil]; if (!bar) return; wxMenu *fileMenu; wxMenuItem *item = bar->FindItem(XRCID("open_recent"), &fileMenu); if (item) { NSMenu *native = fileMenu->GetHMenu(); NSMenuItem *nativeItem = [native itemWithTitle:str::to_NS(item->GetItemLabelText())]; if (nativeItem) { [nativeItem setSubmenu:m_nativeMacAppData->recentMenu]; m_nativeMacAppData->recentMenuItem = nativeItem; } } NSMenuItem *windowItem = [[NSApp mainMenu] itemWithTitle:str::to_NS(_("Window"))]; if (windowItem) { [windowItem setSubmenu:m_nativeMacAppData->windowMenu]; m_nativeMacAppData->windowMenuItem = windowItem; } m_nativeMacAppData->menuBar = bar; } void PoeditApp::OnIdleFixupMenusForMac(wxIdleEvent& event) { event.Skip(); auto installed = wxMenuBar::MacGetInstalledMenuBar(); if (m_nativeMacAppData->menuBar != installed) FixupMenusForMac(installed); } void PoeditApp::OSXOnWillFinishLaunching() { wxApp::OSXOnWillFinishLaunching(); CreateFakeOpenRecentMenu(); // We already create the menu item, this would cause duplicates "thanks" to the weird // way wx's menubar works on macOS: [[NSUserDefaults standardUserDefaults] setBool:NO forKey:@"NSFullScreenMenuItemEverywhere"]; } // Handle Cmd+W closure of windows globally here void PoeditApp::OnCloseWindowCommand(wxCommandEvent&) { for (auto w: wxTopLevelWindows) { auto tlw = dynamic_cast(w); if (tlw && tlw->IsActive()) { tlw->Close(); break; } } } #endif // __WXOSX__ #ifdef __WXMSW__ void PoeditApp::AssociateFileTypeIfNeeded() { // If installed without admin privileges, the installer won't associate // Poedit with .po extension. Self-associate with it here in per-user // registry record in this case. wchar_t buf[1000]; DWORD bufSize = sizeof(buf); HRESULT hr = AssocQueryString(ASSOCF_INIT_IGNOREUNKNOWN, ASSOCSTR_EXECUTABLE, L".po", NULL, buf, &bufSize); if (SUCCEEDED(hr)) return; // already associated, nothing to do auto poCmd = wxString::Format("\"%s\" \"%%1\"", wxStandardPaths::Get().GetExecutablePath()); wxRegKey key1(wxRegKey::HKCU, "Software\\Classes\\.po"); key1.Create(); key1.SetValue("", "Poedit.PO"); wxRegKey key2(wxRegKey::HKCU, "Software\\Classes\\Poedit.PO"); key2.Create(); key2.SetValue("", /*TRANSLATORS:File kind displayed in Finder/Explorer*/_("PO Translation")); wxRegKey key3(wxRegKey::HKCU, "Software\\Classes\\Poedit.PO\\Shell\\Open\\Command"); key3.Create(); key3.SetValue("", poCmd); } void PoeditApp::OnWinsparkleCheck(wxCommandEvent& event) { win_sparkle_check_update_with_ui(); } // WinSparkle callbacks: int PoeditApp::WinSparkle_CanShutdown() { return !PoeditFrame::AnyWindowIsModified(); } void PoeditApp::WinSparkle_Shutdown() { wxGetApp().OnQuit(wxCommandEvent()); } #endif // __WXMSW__ poedit-2.0.6/src/manager.cpp0000664000372000037200000003631313230131554012634 00000000000000/* * This file is part of Poedit (https://poedit.net) * * Copyright (C) 2001-2018 Vaclav Slavik * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * DEALINGS IN THE SOFTWARE. * */ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #ifdef __WXMSW__ #include #endif #include "catalog.h" #include "cat_update.h" #include "edapp.h" #include "edframe.h" #include "hidpi.h" #include "manager.h" #include "progressinfo.h" #include "utility.h" ManagerFrame *ManagerFrame::ms_instance = NULL; /*static*/ ManagerFrame *ManagerFrame::Create() { if (!ms_instance) { ms_instance = new ManagerFrame; ms_instance->Show(true); } return ms_instance; } ManagerFrame::ManagerFrame() : wxFrame(NULL, -1, _("Poedit - Catalogs manager"), wxDefaultPosition, wxDefaultSize, wxDEFAULT_FRAME_STYLE | wxNO_FULL_REPAINT_ON_RESIZE, "manager") { #if defined(__WXGTK__) wxIconBundle appicons; appicons.AddIcon(wxArtProvider::GetIcon("poedit", wxART_FRAME_ICON, wxSize(16,16))); appicons.AddIcon(wxArtProvider::GetIcon("poedit", wxART_FRAME_ICON, wxSize(32,32))); appicons.AddIcon(wxArtProvider::GetIcon("poedit", wxART_FRAME_ICON, wxSize(48,48))); SetIcons(appicons); #elif defined(__WXMSW__) SetIcons(wxIconBundle(wxStandardPaths::Get().GetResourcesDir() + "\\Resources\\Poedit.ico")); #endif ms_instance = this; auto tb = wxXmlResource::Get()->LoadToolBar(this, "manager_toolbar"); (void)tb; #ifdef __WXMSW__ // De-uglify the toolbar a bit on Windows 10: if (IsWindows10OrGreater()) { const wxUxThemeEngine* theme = wxUxThemeEngine::GetIfActive(); if (theme) { wxUxThemeHandle hTheme(tb, L"ExplorerMenu::Toolbar"); tb->SetBackgroundColour(wxRGBToColour(theme->GetThemeSysColor(hTheme, COLOR_WINDOW))); } } #endif wxPanel *panel = wxXmlResource::Get()->LoadPanel(this, "manager_panel"); m_listPrj = XRCCTRL(*panel, "prj_list", wxListBox); m_listCat = XRCCTRL(*panel, "prj_files", wxListCtrl); m_splitter = XRCCTRL(*panel, "manager_splitter", wxSplitterWindow); wxImageList *list = new wxImageList(PX(16), PX(16)); list->Add(wxArtProvider::GetBitmap("poedit-status-cat-no")); list->Add(wxArtProvider::GetBitmap("poedit-status-cat-mid")); list->Add(wxArtProvider::GetBitmap("poedit-status-cat-ok")); m_listCat->AssignImageList(list, wxIMAGE_LIST_SMALL); m_curPrj = -1; int last = (int)wxConfig::Get()->Read("manager_last_selected", (long)0); // FIXME: do this in background (here and elsewhere) UpdateListPrj(last); if (m_listPrj->GetCount() > 0) UpdateListCat(last); RestoreWindowState(this, wxSize(PX(400), PX(300))); m_splitter->SetSashPosition((int)wxConfig::Get()->Read("manager_splitter", PX(200))); } ManagerFrame::~ManagerFrame() { SaveWindowState(this); wxConfigBase *cfg = wxConfig::Get(); int sel = m_listPrj->GetSelection(); if (sel != -1) { cfg->Write("manager_last_selected", (long)m_listPrj->GetClientData(sel)); } wxConfig::Get()->Write("manager_splitter", (long)m_splitter->GetSashPosition()); ms_instance = NULL; } void ManagerFrame::UpdateListPrj(int select) { wxConfigBase *cfg = wxConfig::Get(); long max = cfg->Read("Manager/max_project_num", (long)0) + 1; wxString key, name; m_listPrj->Clear(); int item = 0; for (int i = 0; i <= max; i++) { key.Printf("Manager/project_%i/Name", i); name = cfg->Read(key, wxEmptyString); if (!name.empty()) { m_listPrj->Append(name, (void*)(wxIntPtr)i); if (i == select) { m_listPrj->SetSelection(item); m_curPrj = select; UpdateListCat(m_curPrj); select = -1; } item++; } } } static void AddCatalogToList(wxListCtrl *list, int i, int id, const wxString& file) { wxConfigBase *cfg = wxConfig::Get(); int all = 0, fuzzy = 0, untranslated = 0, badtokens = 0; wxString lastmodified; time_t modtime; wxString key; wxString file2(file); file2.Replace("/", "_"); file2.Replace("\\", "_"); // FIXME: move cache to cache file and out of *config* file! key.Printf("Manager/project_%i/FilesCache/%s/", id, file2.c_str()); modtime = cfg->Read(key + "timestamp", (long)0); if (modtime == wxFileModificationTime(file)) { all = (int)cfg->Read(key + "all", (long)0); fuzzy = (int)cfg->Read(key + "fuzzy", (long)0); badtokens = (int)cfg->Read(key + "badtokens", (long)0); untranslated = (int)cfg->Read(key + "untranslated", (long)0); lastmodified = cfg->Read(key + "lastmodified", "?"); } else { // suppress error messages, we don't mind if the catalog is corrupted // FIXME: *do* indicate error somehow wxLogNull nullLog; // FIXME: don't re-load the catalog if it's already loaded in the // editor, reuse loaded instance Catalog cat(file); cat.GetStatistics(&all, &fuzzy, &badtokens, &untranslated, NULL); modtime = wxFileModificationTime(file); lastmodified = cat.Header().RevisionDate; cfg->Write(key + "timestamp", (long)modtime); cfg->Write(key + "all", (long)all); cfg->Write(key + "fuzzy", (long)fuzzy); cfg->Write(key + "badtokens", (long)badtokens); cfg->Write(key + "untranslated", (long)untranslated); cfg->Write(key + "lastmodified", lastmodified); } int icon; if (fuzzy+untranslated+badtokens == 0) icon = 2; else if ((double)all / (fuzzy+untranslated+badtokens) <= 3) icon = 0; else icon = 1; wxString tmp; // FIXME: don't put full filename there, remove common prefix (of all // directories in project's settings) list->InsertItem(i, file, icon); tmp.Printf("%i", all); list->SetItem(i, 1, tmp); tmp.Printf("%i", untranslated); list->SetItem(i, 2, tmp); tmp.Printf("%i", fuzzy); list->SetItem(i, 3, tmp); tmp.Printf("%i", badtokens); list->SetItem(i, 4, tmp); list->SetItem(i, 5, lastmodified); } void ManagerFrame::UpdateListCat(int id) { wxBusyCursor bcur; if (id == -1) id = m_curPrj; wxConfigBase *cfg = wxConfig::Get(); wxString key; key.Printf("Manager/project_%i/", id); wxString dirs = cfg->Read(key + "Dirs", wxEmptyString); wxStringTokenizer tkn(dirs, wxPATH_SEP); m_catalogs.Clear(); while (tkn.HasMoreTokens()) wxDir::GetAllFiles(tkn.GetNextToken(), &m_catalogs, "*.po", wxDIR_FILES | wxDIR_DIRS); m_catalogs.Sort(); m_listCat->Freeze(); m_listCat->ClearAll(); m_listCat->InsertColumn(0, _("Catalog")); m_listCat->InsertColumn(1, _("Total")); m_listCat->InsertColumn(2, _("Untrans")); m_listCat->InsertColumn(3, _("Needs Work")); m_listCat->InsertColumn(4, _("Errors")); m_listCat->InsertColumn(5, _("Last modified")); // FIXME: this is time-consuming, it should be done in parallel on // multi-core/SMP systems for (int i = 0; i < (int)m_catalogs.GetCount(); i++) AddCatalogToList(m_listCat, i, id, m_catalogs[i]); m_listCat->SetColumnWidth(0, wxLIST_AUTOSIZE); m_listCat->SetColumnWidth(1, wxLIST_AUTOSIZE_USEHEADER); m_listCat->SetColumnWidth(2, wxLIST_AUTOSIZE_USEHEADER); m_listCat->SetColumnWidth(3, wxLIST_AUTOSIZE_USEHEADER); m_listCat->SetColumnWidth(4, wxLIST_AUTOSIZE_USEHEADER); m_listCat->SetColumnWidth(5, wxLIST_AUTOSIZE); m_listCat->Thaw(); } class ProjectDlg : public wxDialog { protected: DECLARE_EVENT_TABLE() void OnBrowse(wxCommandEvent& event); }; BEGIN_EVENT_TABLE(ProjectDlg, wxDialog) EVT_BUTTON(XRCID("adddir"), ProjectDlg::OnBrowse) END_EVENT_TABLE() void ProjectDlg::OnBrowse(wxCommandEvent&) { wxDirDialog dlg(this, _("Select directory")); if (dlg.ShowModal() == wxID_OK) { wxArrayString a; wxEditableListBox *l = XRCCTRL(*this, "prj_dirs", wxEditableListBox); l->GetStrings(a); a.Add(dlg.GetPath()); l->SetStrings(a); } } template void ManagerFrame::EditProject(int id, TFunctor completionHandler) { wxConfigBase *cfg = wxConfig::Get(); wxString key; key.Printf("Manager/project_%i/", id); wxWindowPtr dlg(new ProjectDlg); wxXmlResource::Get()->LoadDialog(dlg.get(), this, "manager_prj_dlg"); wxEditableListBox *prj_dirs = new wxEditableListBox(dlg.get(), XRCID("prj_dirs"), _("Directories:")); wxXmlResource::Get()->AttachUnknownControl("prj_dirs", prj_dirs); XRCCTRL(*dlg, "prj_name", wxTextCtrl)->SetValue(cfg->Read(key + "Name")); { wxString dirs = cfg->Read(key + "Dirs"); wxArrayString adirs; wxStringTokenizer tkn(dirs, wxPATH_SEP); while (tkn.HasMoreTokens()) adirs.Add(tkn.GetNextToken()); prj_dirs->SetStrings(adirs); } dlg->ShowWindowModalThenDo([=](int retcode){ if (retcode == wxID_OK) { wxString dirs; wxArrayString adirs; cfg->Write(key + "Name", XRCCTRL(*dlg, "prj_name", wxTextCtrl)->GetValue()); prj_dirs->GetStrings(adirs); if (adirs.GetCount() > 0) dirs = adirs[0]; for (size_t i = 1; i < adirs.GetCount(); i++) dirs << wxPATH_SEP << adirs[i]; cfg->Write(key + "Dirs", dirs); UpdateListPrj(id); UpdateListCat(id); } completionHandler(retcode == wxID_OK); }); } void ManagerFrame::DeleteProject(int id) { wxString key; key.Printf("Manager/project_%i", id); wxConfig::Get()->DeleteGroup(key); UpdateListPrj(); if (id == m_curPrj) { m_listCat->ClearAll(); m_curPrj = -1; } } void ManagerFrame::NotifyFileChanged(const wxString& /*catalog*/) { // VS: We must do full update even if the file 'catalog' is not in // m_catalogs. The reason is simple: the user might use SaveAs // function and save new file in one of directories that // this project matches... UpdateListCat(); } BEGIN_EVENT_TABLE(ManagerFrame, wxFrame) EVT_MENU (XRCID("prj_new"), ManagerFrame::OnNewProject) EVT_MENU (XRCID("prj_edit"), ManagerFrame::OnEditProject) EVT_MENU (XRCID("prj_delete"), ManagerFrame::OnDeleteProject) EVT_MENU (XRCID("prj_update"), ManagerFrame::OnUpdateProject) EVT_LISTBOX (XRCID("prj_list"), ManagerFrame::OnSelectProject) EVT_LIST_ITEM_ACTIVATED (XRCID("prj_files"), ManagerFrame::OnOpenCatalog) EVT_MENU (wxID_CLOSE, ManagerFrame::OnCloseCmd) END_EVENT_TABLE() void ManagerFrame::OnNewProject(wxCommandEvent&) { wxConfigBase *cfg = wxConfig::Get(); long max = cfg->Read("Manager/max_project_num", (long)0) + 1; wxString key; for (int i = 0; i <= max; i++) { key.Printf("Manager/project_%i/Name", i); if (cfg->Read(key, wxEmptyString).empty()) { m_listPrj->Append(_(""), (void*)(wxIntPtr)i); m_curPrj = i; EditProject(i, [=](bool added){ if (added) { if (i == max) cfg->Write("Manager/max_project_num", (long)max); } else { DeleteProject(i); } }); return; } } } void ManagerFrame::OnEditProject(wxCommandEvent&) { int sel = m_listPrj->GetSelection(); if (sel == -1) return; EditProject((int)(wxIntPtr)m_listPrj->GetClientData(sel), [](bool){}); } void ManagerFrame::OnDeleteProject(wxCommandEvent&) { int sel = m_listPrj->GetSelection(); if (sel == -1) return; if (wxMessageBox(_("Do you want to delete the project?"), _("Confirmation"), wxYES_NO | wxICON_QUESTION, this) == wxYES) DeleteProject((int)(wxIntPtr)m_listPrj->GetClientData(sel)); } void ManagerFrame::OnSelectProject(wxCommandEvent&) { int sel = m_listPrj->GetSelection(); if (sel == -1) return; m_curPrj = (int)(wxIntPtr)m_listPrj->GetClientData(sel); UpdateListCat(m_curPrj); } void ManagerFrame::OnUpdateProject(wxCommandEvent&) { int sel = m_listPrj->GetSelection(); if (sel == -1) return; if (wxMessageBox(_("Do you really want to do mass update of\nall catalogs in this project?"), _("Confirmation"), wxYES_NO | wxICON_QUESTION, this) == wxYES) { wxBusyCursor bcur; for (size_t i = 0; i < m_catalogs.GetCount(); i++) { // FIXME: there should be only one progress bar for _all_ // catalogs, it shouldn't restart on next catalog //ProgressInfo pinfo(this, _("Updating catalog")); wxString f = m_catalogs[i]; PoeditFrame *fr = PoeditFrame::Find(f); if (fr) { fr->UpdateCatalog(); } else { auto cat = std::make_shared(f); UpdateResultReason reason; if (PerformUpdateFromSources(this, cat, reason, Update_DontShowSummary)) { Catalog::ValidationResults validation_results; Catalog::CompilationStatus mo_status; cat->Save(f, false, validation_results, mo_status); } } } UpdateListCat(); } } void ManagerFrame::OnOpenCatalog(wxListEvent& event) { PoeditFrame *f = PoeditFrame::Create(m_catalogs[event.GetIndex()]); if (f) f->Raise(); } void ManagerFrame::OnCloseCmd(wxCommandEvent&) { Close(); } poedit-2.0.6/src/errors.h0000664000372000037200000000616713230131554012207 00000000000000/* * This file is part of Poedit (https://poedit.net) * * Copyright (C) 2013-2018 Vaclav Slavik * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * DEALINGS IN THE SOFTWARE. * */ #ifndef _ERRORS_H_ #define _ERRORS_H_ #include #include #include #include /// Any exception error. /// Pretty much the same as std::runtime_error, except using Unicode strings. class Exception : public std::runtime_error { public: Exception(const wxString& what) : std::runtime_error(std::string(what.utf8_str())), m_what(what) {} const wxString& What() const { return m_what; } // prevent use of std::exception::what() on Exception-cast instances: private: #ifdef _MSC_VER const char* what() const override { return std::runtime_error::what(); } #else const char* what() const noexcept override { return std::runtime_error::what(); } #endif private: wxString m_what; }; /// Helper to convert an exception into a human-readable string template inline wxString DoDescribeException(Rethrow&& rethrow_exception) { try { rethrow_exception(); return "no error"; // silence stupid VC++ } catch (const Exception& e) { return e.What(); } catch (const std::exception& e) { const char *msg = e.what(); // try interpreting as UTF-8 first as the most likely one (from external sources) wxString s = wxString::FromUTF8(msg); if (s.empty()) { s = wxString(msg); if (s.empty()) // not in current locale either, fall back to Latin1 s = wxString(msg, wxConvISO8859_1); } return s; } catch (...) { return "unknown error"; } } inline wxString DescribeException(std::exception_ptr e) { return DoDescribeException([e]{ std::rethrow_exception(e); }); } inline wxString DescribeException(boost::exception_ptr e) { return DoDescribeException([e]{ boost::rethrow_exception(e); }); } inline wxString DescribeCurrentException() { return DescribeException(std::current_exception()); } #endif // _ERRORS_H_ poedit-2.0.6/src/language_impl_legacy.h0000664000372000037200000002616513230131554015023 00000000000000 // Legacy language names used by old versions of Poedit static const std::unordered_map isoLanguages = { { "Abkhazian", "ab" }, { "(Afan) Oromo", "om" }, { "Afar", "aa" }, { "Afrikaans", "af" }, { "Albanian", "sq" }, { "Amharic", "am" }, { "Arabic", "ar" }, { "Armenian", "hy" }, { "Assamese", "as" }, { "Avestan", "ae" }, { "Aymara", "ay" }, { "Azerbaijani", "az" }, { "Bashkir", "ba" }, { "Basque", "eu" }, { "Belarusian", "be" }, { "Bengali", "bn" }, { "Bihari", "bh" }, { "Bislama", "bi" }, { "Bosnian", "bs" }, { "Breton", "br" }, { "Bulgarian", "bg" }, { "Burmese", "my" }, { "Catalan", "ca" }, { "Chamorro", "ch" }, { "Chechen", "ce" }, { "Chichewa; Nyanja", "ny" }, { "Chinese", "zh" }, { "Church Slavic", "cu" }, { "Chuvash", "cv" }, { "Cornish", "kw" }, { "Corsican", "co" }, { "Croatian", "hr" }, { "Czech", "cs" }, { "Danish", "da" }, { "Dutch", "nl" }, { "Dzongkha", "dz" }, { "English", "en" }, { "Esperanto", "eo" }, { "Estonian", "et" }, { "Faroese", "fo" }, { "Fijian", "fj" }, { "Finnish", "fi" }, { "French", "fr" }, { "Frisian", "fy" }, { "Friulian", "fur" }, { "Gaelic", "gd" }, { "Galician", "gl" }, { "Georgian", "ka" }, { "German", "de" }, { "Greek", "el" }, { "Guarani", "gn" }, { "Gujarati", "gu" }, { "Hausa", "ha" }, { "Hebrew", "he" }, { "Herero", "hz" }, { "Hindi", "hi" }, { "Hiri Motu", "ho" }, { "Hungarian", "hu" }, { "Icelandic", "is" }, { "Indonesian", "id" }, { "Interlingua", "ia" }, { "Interlingue", "ie" }, { "Inuktitut", "iu" }, { "Inupiaq", "ik" }, { "Irish", "ga" }, { "Italian", "it" }, { "Japanese", "ja" }, { "Javanese", "jv" }, { "Kalaallisut", "kl" }, { "Kannada", "kn" }, { "Kashmiri", "ks" }, { "Kazakh", "kk" }, { "Khmer", "km" }, { "Kikuyu", "ki" }, { "Kinyarwanda", "rw" }, { "Komi", "kv" }, { "Korean", "ko" }, { "Kuanyama", "kj" }, { "Kurdish", "ku" }, { "Kyrgyz", "ky" }, { "Lao", "lo" }, { "Latin", "la" }, { "Latvian", "lv" }, { "Letzeburgesch", "lb" }, { "Lingala", "ln" }, { "Lithuanian", "lt" }, { "Macedonian", "mk" }, { "Malagasy", "mg" }, { "Malay", "ms" }, { "Malayalam", "ml" }, { "Maltese", "mt" }, { "Maori", "mi" }, { "Marathi", "mr" }, { "Marshall", "mh" }, { "Moldavian", "mo" }, { "Mongolian", "mn" }, { "Nauru", "na" }, { "Navajo", "nv" }, { "Ndebele, South", "nr" }, { "Ndonga", "ng" }, { "Nepali", "ne" }, { "Northern Sami", "se" }, { "Norwegian Bokmal", "nb" }, { "Norwegian Nynorsk", "nn" }, { "Occitan", "oc" }, { "Oriya", "or" }, { "Ossetian; Ossetic", "os" }, { "Pali", "pi" }, { "Panjabi", "pa" }, { "Pashto, Pushto", "ps" }, { "Persian", "fa" }, { "Polish", "pl" }, { "Portuguese", "pt" }, { "Quechua", "qu" }, { "Rhaeto-Romance", "rm" }, { "Romanian", "ro" }, { "Rundi", "rn" }, { "Russian", "ru" }, { "Samoan", "sm" }, { "Sangro", "sg" }, { "Sanskrit", "sa" }, { "Sardinian", "sc" }, { "Serbian", "sr" }, { "Serbian (Latin)", "sr_RS@latin" }, { "Serbo-Croatian", "sh" }, { "Sesotho", "st" }, { "Setswana", "tn" }, { "Shona", "sn" }, { "Sindhi", "sd" }, { "Sinhalese", "si" }, { "Siswati", "ss" }, { "Slovak", "sk" }, { "Slovenian", "sl" }, { "Somali", "so" }, { "Spanish", "es" }, { "Sundanese", "su" }, { "Swahili", "sw" }, { "Swedish", "sv" }, { "Tagalog", "tl" }, { "Tahitian", "ty" }, { "Tajik", "tg" }, { "Tamil", "ta" }, { "Tatar", "tt" }, { "Telugu", "te" }, { "Thai", "th" }, { "Tibetan", "bo" }, { "Tigrinya", "ti" }, { "Tonga", "to" }, { "Tsonga", "ts" }, { "Turkish", "tr" }, { "Turkmen", "tk" }, { "Twi", "tw" }, { "Ukrainian", "uk" }, { "Urdu", "ur" }, { "Uyghur", "ug" }, { "Uzbek", "uz" }, { "Vietnamese", "vi" }, { "Volapuk", "vo" }, { "Walloon", "wa" }, { "Welsh", "cy" }, { "Wolof", "wo" }, { "Xhosa", "xh" }, { "Yiddish", "yi" }, { "Yoruba", "yo" }, { "Zhuang", "za" }, { "Zulu", "zu" } }; static const std::unordered_map isoCountries = { { "AFGHANISTAN", "AF" }, { "ALBANIA", "AL" }, { "ALGERIA", "DZ" }, { "AMERICAN SAMOA", "AS" }, { "ANDORRA", "AD" }, { "ANGOLA", "AO" }, { "ANGUILLA", "AI" }, { "ANTARCTICA", "AQ" }, { "ANTIGUA AND BARBUDA", "AG" }, { "ARGENTINA", "AR" }, { "ARMENIA", "AM" }, { "ARUBA", "AW" }, { "AUSTRALIA", "AU" }, { "AUSTRIA", "AT" }, { "AZERBAIJAN", "AZ" }, { "BAHAMAS", "BS" }, { "BAHRAIN", "BH" }, { "BANGLADESH", "BD" }, { "BARBADOS", "BB" }, { "BELARUS", "BY" }, { "BELGIUM", "BE" }, { "BELIZE", "BZ" }, { "BENIN", "BJ" }, { "BERMUDA", "BM" }, { "BHUTAN", "BT" }, { "BOLIVIA", "BO" }, { "BOSNIA AND HERZEGOVINA", "BA" }, { "BOTSWANA", "BW" }, { "BOUVET ISLAND", "BV" }, { "BRAZIL", "BR" }, { "BRITISH INDIAN OCEAN TERRITORY", "IO" }, { "BRUNEI DARUSSALAM", "BN" }, { "BULGARIA", "BG" }, { "BURKINA FASO", "BF" }, { "BURUNDI", "BI" }, { "CAMBODIA", "KH" }, { "CAMEROON", "CM" }, { "CANADA", "CA" }, { "CAPE VERDE", "CV" }, { "CAYMAN ISLANDS", "KY" }, { "CENTRAL AFRICAN REPUBLIC", "CF" }, { "CHAD", "TD" }, { "CHILE", "CL" }, { "CHINA", "CN" }, { "CHRISTMAS ISLAND", "CX" }, { "COCOS (KEELING) ISLANDS", "CC" }, { "COLOMBIA", "CO" }, { "COMOROS", "KM" }, { "CONGO", "CG" }, { "CONGO, THE DEMOCRATIC REPUBLIC OF THE", "CD" }, { "COOK ISLANDS", "CK" }, { "COSTA RICA", "CR" }, { "COTE D'IVOIRE", "CI" }, { "CROATIA", "HR" }, { "CUBA", "CU" }, { "CYPRUS", "CY" }, { "CZECH REPUBLIC", "CZ" }, { "DENMARK", "DK" }, { "DJIBOUTI", "DJ" }, { "DOMINICA", "DM" }, { "DOMINICAN REPUBLIC", "DO" }, { "ECUADOR", "EC" }, { "EGYPT", "EG" }, { "EL SALVADOR", "SV" }, { "EQUATORIAL GUINEA", "GQ" }, { "ERITREA", "ER" }, { "ESTONIA", "EE" }, { "ETHIOPIA", "ET" }, { "FALKLAND ISLANDS (MALVINAS)", "FK" }, { "FAROE ISLANDS", "FO" }, { "FIJI", "FJ" }, { "FINLAND", "FI" }, { "FRANCE", "FR" }, { "FRENCH GUIANA", "GF" }, { "FRENCH POLYNESIA", "PF" }, { "FRENCH SOUTHERN TERRITORIES", "TF" }, { "GABON", "GA" }, { "GAMBIA", "GM" }, { "GEORGIA", "GE" }, { "GERMANY", "DE" }, { "GHANA", "GH" }, { "GIBRALTAR", "GI" }, { "GREECE", "GR" }, { "GREENLAND", "GL" }, { "GRENADA", "GD" }, { "GUADELOUPE", "GP" }, { "GUAM", "GU" }, { "GUATEMALA", "GT" }, { "GUINEA", "GN" }, { "GUINEA-BISSAU", "GW" }, { "GUYANA", "GY" }, { "HAITI", "HT" }, { "HEARD ISLAND AND MCDONALD ISLANDS", "HM" }, { "HOLY SEE (VATICAN CITY STATE)", "VA" }, { "HONDURAS", "HN" }, { "HONG KONG", "HK" }, { "HUNGARY", "HU" }, { "ICELAND", "IS" }, { "INDIA", "IN" }, { "INDONESIA", "ID" }, { "IRAN, ISLAMIC REPUBLIC OF", "IR" }, { "IRAQ", "IQ" }, { "IRELAND", "IE" }, { "ISRAEL", "IL" }, { "ITALY", "IT" }, { "JAMAICA", "JM" }, { "JAPAN", "JP" }, { "JORDAN", "JO" }, { "KAZAKHSTAN", "KZ" }, { "KENYA", "KE" }, { "KIRIBATI", "KI" }, { "KOREA, DEMOCRATIC PEOPLE'S REPUBLIC OF", "KP" }, { "KOREA, REPUBLIC OF", "KR" }, { "KUWAIT", "KW" }, { "KYRGYZSTAN", "KG" }, { "LAO PEOPLE'S DEMOCRATIC REPUBLIC", "LA" }, { "LATVIA", "LV" }, { "LEBANON", "LB" }, { "LESOTHO", "LS" }, { "LIBERIA", "LR" }, { "LIBYAN ARAB JAMAHIRIYA", "LY" }, { "LIECHTENSTEIN", "LI" }, { "LITHUANIA", "LT" }, { "LUXEMBOURG", "LU" }, { "MACAO", "MO" }, { "MACEDONIA, THE FORMER YUGOSLAV REPUBLIC OF", "MK" }, { "MADAGASCAR", "MG" }, { "MALAWI", "MW" }, { "MALAYSIA", "MY" }, { "MALDIVES", "MV" }, { "MALI", "ML" }, { "MALTA", "MT" }, { "MARSHALL ISLANDS", "MH" }, { "MARTINIQUE", "MQ" }, { "MAURITANIA", "MR" }, { "MAURITIUS", "MU" }, { "MAYOTTE", "YT" }, { "MEXICO", "MX" }, { "MICRONESIA, FEDERATED STATES OF", "FM" }, { "MOLDOVA, REPUBLIC OF", "MD" }, { "MONACO", "MC" }, { "MONGOLIA", "MN" }, { "MONTSERRAT", "MS" }, { "MOROCCO", "MA" }, { "MOZAMBIQUE", "MZ" }, { "MYANMAR", "MM" }, { "NAMIBIA", "NA" }, { "NAURU", "NR" }, { "NEPAL", "NP" }, { "NETHERLANDS", "NL" }, { "NETHERLANDS ANTILLES", "AN" }, { "NEW CALEDONIA", "NC" }, { "NEW ZEALAND", "NZ" }, { "NICARAGUA", "NI" }, { "NIGER", "NE" }, { "NIGERIA", "NG" }, { "NIUE", "NU" }, { "NORFOLK ISLAND", "NF" }, { "NORTHERN MARIANA ISLANDS", "MP" }, { "NORWAY", "NO" }, { "OMAN", "OM" }, { "PAKISTAN", "PK" }, { "PALAU", "PW" }, { "PALESTINIAN TERRITORY, OCCUPIED", "PS" }, { "PANAMA", "PA" }, { "PAPUA NEW GUINEA", "PG" }, { "PARAGUAY", "PY" }, { "PERU", "PE" }, { "PHILIPPINES", "PH" }, { "PITCAIRN", "PN" }, { "POLAND", "PL" }, { "PORTUGAL", "PT" }, { "PUERTO RICO", "PR" }, { "QATAR", "QA" }, { "REUNION", "RE" }, { "ROMANIA", "RO" }, { "RUSSIAN FEDERATION", "RU" }, { "RWANDA", "RW" }, { "SAINT HELENA", "SH" }, { "SAINT KITTS AND NEVIS", "KN" }, { "SAINT LUCIA", "LC" }, { "SAINT PIERRE AND MIQUELON", "PM" }, { "SAINT VINCENT AND THE GRENADINES", "VC" }, { "SAMOA", "WS" }, { "SAN MARINO", "SM" }, { "SAO TOME AND PRINCIPE", "ST" }, { "SAUDI ARABIA", "SA" }, { "SENEGAL", "SN" }, { "SEYCHELLES", "SC" }, { "SIERRA LEONE", "SL" }, { "SINGAPORE", "SG" }, { "SLOVAKIA", "SK" }, { "SLOVENIA", "SI" }, { "SOLOMON ISLANDS", "SB" }, { "SOMALIA", "SO" }, { "SOUTH AFRICA", "ZA" }, { "SOUTH GEORGIA AND THE SOUTH SANDWICH ISLANDS", "GS" }, { "SPAIN", "ES" }, { "SRI LANKA", "LK" }, { "SUDAN", "SD" }, { "SURINAME", "SR" }, { "SVALBARD AND JAN MAYEN", "SJ" }, { "SWAZILAND", "SZ" }, { "SWEDEN", "SE" }, { "SWITZERLAND", "CH" }, { "SYRIAN ARAB REPUBLIC", "SY" }, { "TAIWAN", "TW" }, { "TAJIKISTAN", "TJ" }, { "TANZANIA, UNITED REPUBLIC OF", "TZ" }, { "THAILAND", "TH" }, { "TIMOR-LESTE", "TL" }, { "TOGO", "TG" }, { "TOKELAU", "TK" }, { "TONGA", "TO" }, { "TRINIDAD AND TOBAGO", "TT" }, { "TUNISIA", "TN" }, { "TURKEY", "TR" }, { "TURKMENISTAN", "TM" }, { "TURKS AND CAICOS ISLANDS", "TC" }, { "TUVALU", "TV" }, { "UGANDA", "UG" }, { "UKRAINE", "UA" }, { "UNITED ARAB EMIRATES", "AE" }, { "UNITED KINGDOM", "GB" }, { "UNITED STATES", "US" }, { "UNITED STATES MINOR OUTLYING ISLANDS", "UM" }, { "URUGUAY", "UY" }, { "UZBEKISTAN", "UZ" }, { "VANUATU", "VU" }, { "VENEZUELA", "VE" }, { "VIET NAM", "VN" }, { "VIRGIN ISLANDS, BRITISH", "VG" }, { "VIRGIN ISLANDS, U.S.", "VI" }, { "WALLIS AND FUTUNA", "WF" }, { "WESTERN SAHARA", "EH" }, { "YEMEN", "YE" }, { "YUGOSLAVIA", "YU" }, { "ZAMBIA", "ZM" }, { "ZIMBABWE", "ZW" } }; poedit-2.0.6/src/progressinfo.h0000664000372000037200000000525113230131554013404 00000000000000/* * This file is part of Poedit (https://poedit.net) * * Copyright (C) 2000-2018 Vaclav Slavik * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * DEALINGS IN THE SOFTWARE. * */ #ifndef _PROGRESSINFO_H_ #define _PROGRESSINFO_H_ #include class WXDLLIMPEXP_FWD_CORE wxWindow; class WXDLLIMPEXP_FWD_CORE wxDialog; class WXDLLIMPEXP_FWD_CORE wxWindowDisabler; /// This class displays fancy progress dialog. class ProgressInfo { public: ProgressInfo(wxWindow *parent, const wxString& title); ~ProgressInfo(); /// Hides temporarily void Hide(); /// Shows again after having been hidden with Hide() void Show(); /// Hides for good, called when all is done void Done(); /// Sets gauge's values interval to <0..limit). void SetGaugeMax(int limit); /** Updates the gauge: increments it by specified delta. \param increment the delta \return false if user cancelled operation, true otherwise */ bool UpdateGauge(int increment = +1); /// Resets the gauge to given \a value. void ResetGauge(int value = 0); /// Indicate indeterminate progress void PulseGauge(); /// Updates informative message. void UpdateMessage(const wxString& text); /// Returns whether the user cancelled operation. bool Cancelled() const { return m_cancelled; } private: wxDialog *m_dlg; bool m_cancelled; wxWindowDisabler *m_disabler; }; #endif // _PROGRESSINFO_H_ poedit-2.0.6/src/pretranslate.h0000664000372000037200000000511213230131554013364 00000000000000/* * This file is part of Poedit (https://poedit.net) * * Copyright (C) 1999-2018 Vaclav Slavik * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * DEALINGS IN THE SOFTWARE. * */ #ifndef Poedit_pretranslate_h #define Poedit_pretranslate_h #include "catalog.h" #include "edlistctrl.h" #include #include /// Flags for pre-translation functions enum PreTranslateFlags { PreTranslate_OnlyExact = 0x01, PreTranslate_ExactNotFuzzy = 0x02, PreTranslate_OnlyGoodQuality = 0x04 }; /** Pre-translate a range of items. If not nullptr, report # of pre-translated items in @a matchesCount. Returns true if any changes were made. */ template bool PreTranslateCatalog(wxWindow *window, CatalogPtr catalog, const T& range, int flags, int *matchesCount); /** Pre-translate all items in the catalog. If not nullptr, report # of pre-translated items in @a matchesCount Returns true if any changes were made. */ bool PreTranslateCatalog(wxWindow *window, CatalogPtr catalog, int flags, int *matchesCount); /** Show UI for choosing pre-translation choices, then proceed with pre-translation unless cancelled (in which case false is returned). @param parent Parent window @param list List to take selection from @param catalog Catalog to translate Returns true if any changes were made. */ void PreTranslateWithUI(wxWindow *window, PoeditListCtrl *list, CatalogPtr catalog, std::function onChangesMade); #endif // Poedit_pretranslate_h poedit-2.0.6/src/configuration.cpp0000664000372000037200000001740113230131554014066 00000000000000/* * This file is part of Poedit (https://poedit.net) * * Copyright (C) 2016-2018 Vaclav Slavik * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * DEALINGS IN THE SOFTWARE. * */ #include "configuration.h" #include #include #include // This class ensures that wxConfig is only accessed MT-safely class MTSafeConfig : public wxConfig { public: typedef wxConfig Base; MTSafeConfig(const std::wstring& configFile) : wxConfig("", "", configFile, "", wxCONFIG_USE_GLOBAL_FILE | wxCONFIG_USE_LOCAL_FILE) { } struct Lock { Lock(const MTSafeConfig *self_) : self(self_) { self->m_cs.Enter(); } ~Lock() { self->m_cs.Leave(); } const MTSafeConfig *self; }; const wxString& GetPath() const override { Lock l(this); return Base::GetPath(); } bool GetFirstGroup(wxString& str, long& index) const override { Lock l(this); return Base::GetFirstGroup(str, index); } bool GetNextGroup(wxString& str, long& index) const override { Lock l(this); return Base::GetNextGroup(str, index); } bool GetFirstEntry(wxString& str, long& index) const override { Lock l(this); return Base::GetFirstEntry(str, index); } bool GetNextEntry(wxString& str, long& index) const override { Lock l(this); return Base::GetNextEntry(str, index); } size_t GetNumberOfEntries(bool recursive = false) const override { Lock l(this); return Base::GetNumberOfEntries(recursive); } size_t GetNumberOfGroups(bool recursive = false) const override { Lock l(this); return Base::GetNumberOfGroups(recursive); } bool HasGroup(const wxString& name) const override { Lock l(this); return Base::HasGroup(name); } bool HasEntry(const wxString& name) const override { Lock l(this); return Base::HasEntry(name); } bool Flush(bool currentOnly = false) override { Lock l(this); return Base::Flush(currentOnly); } bool RenameEntry(const wxString& oldName, const wxString& newName) override { Lock l(this); return Base::RenameEntry(oldName, newName); } bool RenameGroup(const wxString& oldName, const wxString& newName) override { Lock l(this); return Base::RenameGroup(oldName, newName); } bool DeleteEntry(const wxString& key, bool bDeleteGroupIfEmpty = true) override { Lock l(this); return Base::DeleteEntry(key, bDeleteGroupIfEmpty); } bool DeleteGroup(const wxString& key) override { Lock l(this); return Base::DeleteGroup(key); } bool DeleteAll() override { Lock l(this); return Base::DeleteAll(); } bool DoReadString(const wxString& key, wxString *pStr) const override { Lock l(this); return Base::DoReadString(key, pStr); } bool DoReadLong(const wxString& key, long *pl) const override { Lock l(this); return Base::DoReadLong(key, pl); } #if wxUSE_BASE64 bool DoReadBinary(const wxString& key, wxMemoryBuffer* buf) const override { Lock l(this); return Base::DoReadBinary(key, buf); } #endif // wxUSE_BASE64 bool DoWriteString(const wxString& key, const wxString& value) override { Lock l(this); return Base::DoWriteString(key, value); } bool DoWriteLong(const wxString& key, long value) override { Lock l(this); return Base::DoWriteLong(key, value); } #if wxUSE_BASE64 bool DoWriteBinary(const wxString& key, const wxMemoryBuffer& buf) override { Lock l(this); return Base::DoWriteBinary(key, buf); } #endif // wxUSE_BASE64 private: wxConfigBase *m_real; mutable wxCriticalSection m_cs; }; namespace { // wxConfig isn't thread safe because it's implemented using SetPath. // Make sure it's only accessed from a single location at a time. std::mutex g_configAccess; struct CfgLock { CfgLock() : m_guard(g_configAccess), m_wxLock(dynamic_cast(wxConfigBase::Get())) {} std::lock_guard m_guard; MTSafeConfig::Lock m_wxLock; }; } // anonymous namespace void Config::Initialize(const std::wstring& configFile) { // Because wxConfig is accessed directly elsewhere, both in Poedit (still) // and in wx itself, we must use a n MT-safe implementation. wxConfigBase::Set(new MTSafeConfig(configFile)); wxConfigBase::Get()->SetExpandEnvVars(false); } bool Config::Read(const std::string& key, std::string *out) { CfgLock lock; wxString s; if (!wxConfig::Get()->Read(key, &s)) return false; *out = s.ToStdString(); return true; } void Config::Write(const std::string& key, const std::string& value) { CfgLock lock; wxConfig::Get()->Write(key, wxString(value)); } bool Config::Read(const std::string& key, std::wstring *out) { CfgLock lock; wxString s; if (!wxConfig::Get()->Read(key, &s)) return false; *out = s.ToStdWstring(); return true; } void Config::Write(const std::string& key, const std::wstring& value) { CfgLock lock; wxConfig::Get()->Write(key, wxString(value)); } bool Config::Read(const std::string& key, bool *out) { CfgLock lock; return wxConfig::Get()->Read(key, out); } void Config::Write(const std::string& key, bool value) { CfgLock lock; wxConfig::Get()->Write(key, value); } ::PretranslateSettings Config::PretranslateSettings() { ::PretranslateSettings s; s.onlyExact = Read("/pretranslate/only_exact", false); s.exactNotFuzzy = Read("/pretranslate/exact_not_fuzzy", true); return s; } void Config::PretranslateSettings(::PretranslateSettings s) { Write("/pretranslate/only_exact", s.onlyExact); Write("/pretranslate/exact_not_fuzzy", s.exactNotFuzzy); } MergeBehavior Config::MergeBehavior() { ::MergeBehavior value = Merge_FuzzyMatch; std::string stored; if (Read("/merge_behavior", &stored)) { if (stored == "fuzzy_match") value = Merge_FuzzyMatch; else if (stored == "use_tm") value = Merge_UseTM; else value = Merge_None; } else { bool use_tm; if (Read("/use_tm_when_updating", &use_tm)) value = use_tm ? Merge_UseTM : Merge_None; } return value; } void Config::MergeBehavior(::MergeBehavior b) { std::string value; switch (b) { case Merge_None: value = "none"; break; case Merge_FuzzyMatch: value = "fuzzy_match"; break; case Merge_UseTM: value = "use_tm"; break; } Write("/merge_behavior", value); } poedit-2.0.6/src/edframe.cpp0000664000372000037200000030117513230131554012626 00000000000000/* * This file is part of Poedit (https://poedit.net) * * Copyright (C) 1999-2018 Vaclav Slavik * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * DEALINGS IN THE SOFTWARE. * */ #include "edframe.h" #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #ifdef __WXOSX__ #import #include "macos_helpers.h" #endif #include #include #include #include "catalog.h" #include "cat_update.h" #include "cloud_sync.h" #include "colorscheme.h" #include "concurrency.h" #include "configuration.h" #include "crowdin_gui.h" #include "customcontrols.h" #include "edapp.h" #include "editing_area.h" #include "hidpi.h" #include "propertiesdlg.h" #include "prefsdlg.h" #include "fileviewer.h" #include "findframe.h" #include "tm/transmem.h" #include "language.h" #include "progressinfo.h" #include "commentdlg.h" #include "main_toolbar.h" #include "manager.h" #include "pluralforms/pl_evaluate.h" #include "pretranslate.h" #include "attentionbar.h" #include "utility.h" #include "languagectrl.h" #include "welcomescreen.h" #include "errors.h" #include "sidebar.h" #include "spellchecking.h" #include "str_helpers.h" namespace { // Splitters with customized appearance to blend with EditingArea: class ThinSplitter : public wxSplitterWindow { public: ThinSplitter(wxWindow *parent, const wxColour& color) : wxSplitterWindow(parent, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxSP_NOBORDER | wxSP_LIVE_UPDATE) { #ifdef __WXOSX__ SetBackgroundColour(color); #else m_color = color; #endif } #ifndef __WXOSX__ void DrawSash(wxDC& dc) override { if (m_sashPosition == 0 || !m_windowTwo || IsSashInvisible()) return; auto mode = GetSplitMode(); auto rect = (mode == wxSPLIT_HORIZONTAL) ? wxRect(0, m_sashPosition, GetClientSize().x, GetSashSize()) : wxRect(m_sashPosition, 0, GetSashSize(), GetClientSize().y); dc.SetPen(m_color); dc.SetBrush(m_color); if (mode == wxSPLIT_HORIZONTAL) dc.DrawRectangle(rect.x, rect.y, rect.width, PX(1)); else dc.DrawRectangle(rect.x, rect.y, PX(1), rect.height); if (GetSashSize() > PX(1)) { if (mode == wxSPLIT_HORIZONTAL) { rect.y += PX(1); rect.height -= PX(1); } else { rect.x += PX(1); rect.width -= PX(1); } auto bg = GetWindow2()->GetBackgroundColour(); dc.SetPen(bg); dc.SetBrush(bg); dc.DrawRectangle(rect); } } private: wxColour m_color; #endif // !__WXOSX__ }; } // anonymous namespace // this should be high enough to not conflict with any wxNewId-allocated value, PoeditFrame::PoeditFramesList PoeditFrame::ms_instances; // but there's a check for this in the PoeditFrame ctor, too const wxWindowID ID_POEDIT_FIRST = wxID_HIGHEST + 10000; const unsigned ID_POEDIT_STEP = 1000; const wxWindowID ID_POPUP_REFS = ID_POEDIT_FIRST + 1*ID_POEDIT_STEP; const wxWindowID ID_POPUP_DUMMY = ID_POEDIT_FIRST + 3*ID_POEDIT_STEP; const wxWindowID ID_BOOKMARK_GO = ID_POEDIT_FIRST + 4*ID_POEDIT_STEP; const wxWindowID ID_BOOKMARK_SET = ID_POEDIT_FIRST + 5*ID_POEDIT_STEP; const wxWindowID ID_POEDIT_LAST = ID_POEDIT_FIRST + 6*ID_POEDIT_STEP; #ifdef __VISUALC__ // Disabling the useless and annoying MSVC++'s // warning C4800: 'long' : forcing value to bool 'true' or 'false' // (performance warning): #pragma warning ( disable : 4800 ) #endif // I don't like this global flag, but all PoeditFrame instances must share it bool g_focusToText = false; /*static*/ PoeditFrame *PoeditFrame::Find(const wxString& filename) { wxFileName fn(filename); for (auto n: ms_instances) { if (wxFileName(n->GetFileName()) == fn) return n; } return NULL; } /*static*/ PoeditFrame *PoeditFrame::UnusedWindow(bool active) { for (auto win: ms_instances) { if ((!active || win->IsActive()) && win->m_catalog == nullptr) return win; } return nullptr; } /*static*/ bool PoeditFrame::AnyWindowIsModified() { for (PoeditFramesList::const_iterator n = ms_instances.begin(); n != ms_instances.end(); ++n) { if ((*n)->IsModified()) return true; } return false; } /*static*/ PoeditFrame *PoeditFrame::Create(const wxString& filename, int lineno) { PoeditFrame *f = PoeditFrame::Find(filename); if (f) { f->Raise(); } else { // NB: duplicated in ReadCatalog() CatalogPtr cat = std::make_shared(filename); if (!cat->IsOk()) { wxMessageDialog dlg ( nullptr, _("The file cannot be opened."), _("Invalid file"), wxOK | wxICON_ERROR ); dlg.SetExtendedMessage( _("The file may be either corrupted or in a format not recognized by Poedit.") ); dlg.ShowModal(); return nullptr; } f = new PoeditFrame(); f->Show(true); f->ReadCatalog(cat); } f->Show(true); // HACK: make sure this is called *after* the delayed call in PoeditListCtrl::CatalogChanged if (f->m_list) f->m_list->CallAfter([=]{ f->PlaceInitialFocus(lineno); }); return f; } /*static*/ PoeditFrame *PoeditFrame::CreateEmpty() { PoeditFrame *f = new PoeditFrame; f->Show(true); return f; } /*static*/ PoeditFrame *PoeditFrame::CreateWelcome() { PoeditFrame *f = new PoeditFrame; f->EnsureContentView(Content::Welcome); f->Show(true); return f; } BEGIN_EVENT_TABLE(PoeditFrame, wxFrame) // macOS and GNOME apps should open new documents in a new window. On Windows, // however, the usual thing to do is to open the new document in the already // open window and replace the current document. EVT_BUTTON (XRCID("button_new_from_this_pot"),PoeditFrame::OnNew) #ifdef __WXMSW__ EVT_MENU (wxID_NEW, PoeditFrame::OnNew) EVT_MENU (XRCID("menu_new_from_pot"),PoeditFrame::OnNew) EVT_MENU (wxID_OPEN, PoeditFrame::OnOpen) #ifdef HAVE_HTTP_CLIENT EVT_MENU (XRCID("menu_open_crowdin"),PoeditFrame::OnOpenFromCrowdin) #endif #endif // __WXMSW__ #ifndef __WXOSX__ EVT_MENU_RANGE (wxID_FILE1, wxID_FILE9, PoeditFrame::OnOpenHist) EVT_MENU (wxID_CLOSE, PoeditFrame::OnCloseCmd) #endif EVT_MENU (wxID_SAVE, PoeditFrame::OnSave) EVT_MENU (wxID_SAVEAS, PoeditFrame::OnSaveAs) EVT_MENU (XRCID("menu_compile_mo"), PoeditFrame::OnCompileMO) EVT_MENU (XRCID("menu_export"), PoeditFrame::OnExport) EVT_MENU (XRCID("menu_catproperties"), PoeditFrame::OnProperties) EVT_MENU (XRCID("menu_update_from_src"), PoeditFrame::OnUpdateFromSources) EVT_MENU (XRCID("menu_update_from_pot"),PoeditFrame::OnUpdateFromPOT) #ifdef HAVE_HTTP_CLIENT EVT_MENU (XRCID("menu_update_from_crowdin"),PoeditFrame::OnUpdateFromCrowdin) #endif EVT_MENU (XRCID("toolbar_update"),PoeditFrame::OnUpdateSmart) EVT_MENU (XRCID("menu_validate"), PoeditFrame::OnValidate) EVT_MENU (XRCID("menu_purge_deleted"), PoeditFrame::OnPurgeDeleted) EVT_MENU (XRCID("menu_fuzzy"), PoeditFrame::OnFuzzyFlag) EVT_MENU (XRCID("menu_ids"), PoeditFrame::OnIDsFlag) EVT_MENU (XRCID("sort_by_order"), PoeditFrame::OnSortByFileOrder) EVT_MENU (XRCID("sort_by_source"), PoeditFrame::OnSortBySource) EVT_MENU (XRCID("sort_by_translation"), PoeditFrame::OnSortByTranslation) EVT_MENU (XRCID("sort_group_by_context"), PoeditFrame::OnSortGroupByContext) EVT_MENU (XRCID("sort_untrans_first"), PoeditFrame::OnSortUntranslatedFirst) EVT_MENU (XRCID("sort_errors_first"), PoeditFrame::OnSortErrorsFirst) EVT_MENU (XRCID("show_sidebar"), PoeditFrame::OnShowHideSidebar) EVT_UPDATE_UI (XRCID("show_sidebar"), PoeditFrame::OnUpdateShowHideSidebar) EVT_MENU (XRCID("show_statusbar"), PoeditFrame::OnShowHideStatusbar) EVT_UPDATE_UI (XRCID("show_statusbar"), PoeditFrame::OnUpdateShowHideStatusbar) EVT_MENU (XRCID("menu_copy_from_src"), PoeditFrame::OnCopyFromSource) EVT_MENU (XRCID("menu_copy_from_singular"), PoeditFrame::OnCopyFromSingular) EVT_MENU (XRCID("menu_clear"), PoeditFrame::OnClearTranslation) EVT_MENU (XRCID("menu_references"), PoeditFrame::OnReferencesMenu) EVT_MENU (wxID_FIND, PoeditFrame::OnFind) EVT_MENU (wxID_REPLACE, PoeditFrame::OnFindAndReplace) EVT_MENU (XRCID("menu_find_next"), PoeditFrame::OnFindNext) EVT_MENU (XRCID("menu_find_prev"), PoeditFrame::OnFindPrev) EVT_MENU (XRCID("menu_comment"), PoeditFrame::OnEditComment) EVT_BUTTON (XRCID("menu_comment"), PoeditFrame::OnEditComment) EVT_MENU (XRCID("go_done_and_next"), PoeditFrame::OnDoneAndNext) EVT_MENU (XRCID("go_prev"), PoeditFrame::OnPrev) EVT_MENU (XRCID("go_next"), PoeditFrame::OnNext) EVT_MENU (XRCID("go_prev_page"), PoeditFrame::OnPrevPage) EVT_MENU (XRCID("go_next_page"), PoeditFrame::OnNextPage) EVT_MENU (XRCID("go_prev_unfinished"), PoeditFrame::OnPrevUnfinished) EVT_MENU (XRCID("go_next_unfinished"), PoeditFrame::OnNextUnfinished) EVT_MENU (XRCID("go_prev_pluralform"), PoeditFrame::OnPrevPluralForm) EVT_MENU (XRCID("go_next_pluralform"), PoeditFrame::OnNextPluralForm) EVT_MENU_RANGE (ID_POPUP_REFS, ID_POPUP_REFS + 999, PoeditFrame::OnReference) EVT_COMMAND (wxID_ANY, EVT_SUGGESTION_SELECTED, PoeditFrame::OnSuggestion) EVT_MENU (XRCID("menu_pretranslate"), PoeditFrame::OnPreTranslateAll) EVT_MENU_RANGE (ID_BOOKMARK_GO, ID_BOOKMARK_GO + 9, PoeditFrame::OnGoToBookmark) EVT_MENU_RANGE (ID_BOOKMARK_SET, ID_BOOKMARK_SET + 9, PoeditFrame::OnSetBookmark) EVT_CLOSE ( PoeditFrame::OnCloseWindow) EVT_SIZE (PoeditFrame::OnSize) // handling of selection: EVT_UPDATE_UI(XRCID("menu_references"), PoeditFrame::OnReferencesMenuUpdate) EVT_UPDATE_UI_RANGE(ID_BOOKMARK_SET, ID_BOOKMARK_SET + 9, PoeditFrame::OnSingleSelectionUpdate) EVT_UPDATE_UI(XRCID("go_done_and_next"), PoeditFrame::OnSingleSelectionUpdate) EVT_UPDATE_UI(XRCID("go_prev"), PoeditFrame::OnSingleSelectionUpdate) EVT_UPDATE_UI(XRCID("go_next"), PoeditFrame::OnSingleSelectionUpdate) EVT_UPDATE_UI(XRCID("go_prev_page"), PoeditFrame::OnSingleSelectionUpdate) EVT_UPDATE_UI(XRCID("go_next_page"), PoeditFrame::OnSingleSelectionUpdate) EVT_UPDATE_UI(XRCID("go_prev_unfinished"), PoeditFrame::OnSingleSelectionUpdate) EVT_UPDATE_UI(XRCID("go_next_unfinished"), PoeditFrame::OnSingleSelectionUpdate) EVT_UPDATE_UI(XRCID("go_prev_pluralform"), PoeditFrame::OnSingleSelectionWithPluralsUpdate) EVT_UPDATE_UI(XRCID("go_next_pluralform"), PoeditFrame::OnSingleSelectionWithPluralsUpdate) EVT_UPDATE_UI(XRCID("menu_fuzzy"), PoeditFrame::OnSelectionUpdateEditable) EVT_UPDATE_UI(XRCID("menu_clear"), PoeditFrame::OnSelectionUpdateEditable) EVT_UPDATE_UI(XRCID("menu_copy_from_src"), PoeditFrame::OnSelectionUpdateEditable) EVT_UPDATE_UI(XRCID("menu_copy_from_singular"), PoeditFrame::OnSingleSelectionWithPluralsUpdate) EVT_UPDATE_UI(XRCID("menu_comment"), PoeditFrame::OnEditCommentUpdate) // handling of open files: EVT_UPDATE_UI(wxID_SAVE, PoeditFrame::OnHasCatalogUpdate) EVT_UPDATE_UI(wxID_SAVEAS, PoeditFrame::OnHasCatalogUpdate) EVT_UPDATE_UI(XRCID("menu_statistics"), PoeditFrame::OnHasCatalogUpdate) EVT_UPDATE_UI(XRCID("menu_pretranslate"), PoeditFrame::OnIsEditableUpdate) EVT_UPDATE_UI(XRCID("menu_validate"), PoeditFrame::OnIsEditableUpdate) EVT_UPDATE_UI(XRCID("menu_update_from_src"), PoeditFrame::OnUpdateFromSourcesUpdate) #ifdef HAVE_HTTP_CLIENT EVT_UPDATE_UI(XRCID("menu_update_from_crowdin"), PoeditFrame::OnUpdateFromCrowdinUpdate) #endif EVT_UPDATE_UI(XRCID("menu_update_from_pot"), PoeditFrame::OnUpdateFromPOTUpdate) EVT_UPDATE_UI(XRCID("toolbar_update"), PoeditFrame::OnUpdateSmartUpdate) // handling of find/replace: EVT_UPDATE_UI(XRCID("menu_find_next"), PoeditFrame::OnUpdateFind) EVT_UPDATE_UI(XRCID("menu_find_prev"), PoeditFrame::OnUpdateFind) #if defined(__WXMSW__) || defined(__WXGTK__) EVT_MENU(wxID_UNDO, PoeditFrame::OnTextEditingCommand) EVT_MENU(wxID_REDO, PoeditFrame::OnTextEditingCommand) EVT_MENU(wxID_CUT, PoeditFrame::OnTextEditingCommand) EVT_MENU(wxID_COPY, PoeditFrame::OnTextEditingCommand) EVT_MENU(wxID_PASTE, PoeditFrame::OnTextEditingCommand) EVT_MENU(wxID_DELETE, PoeditFrame::OnTextEditingCommand) EVT_MENU(wxID_SELECTALL, PoeditFrame::OnTextEditingCommand) EVT_UPDATE_UI(wxID_UNDO, PoeditFrame::OnTextEditingCommandUpdate) EVT_UPDATE_UI(wxID_REDO, PoeditFrame::OnTextEditingCommandUpdate) EVT_UPDATE_UI(wxID_CUT, PoeditFrame::OnTextEditingCommandUpdate) EVT_UPDATE_UI(wxID_COPY, PoeditFrame::OnTextEditingCommandUpdate) EVT_UPDATE_UI(wxID_PASTE, PoeditFrame::OnTextEditingCommandUpdate) EVT_UPDATE_UI(wxID_DELETE, PoeditFrame::OnTextEditingCommandUpdate) EVT_UPDATE_UI(wxID_SELECTALL, PoeditFrame::OnTextEditingCommandUpdate) #endif END_EVENT_TABLE() class PoeditDropTarget : public wxFileDropTarget { public: PoeditDropTarget(PoeditFrame *win) : m_win(win) {} virtual bool OnDropFiles(wxCoord /*x*/, wxCoord /*y*/, const wxArrayString& files) { if ( files.size() != 1 ) { wxLogError(_(L"You can’t drop more than one file on Poedit window.")); return false; } wxFileName f(files[0]); auto ext = f.GetExt().Lower(); if ( ext != "po" && ext != "pot" ) { wxLogError(_(L"File “%s” is not a message catalog."), f.GetFullPath().c_str()); return false; } if ( !f.FileExists() ) { wxLogError(_(L"File “%s” doesn’t exist."), f.GetFullPath().c_str()); return false; } m_win->OpenFile(f.GetFullPath()); return true; } private: PoeditFrame *m_win; }; // Frame class: PoeditFrame::PoeditFrame() : PoeditFrameBase(NULL, -1, _("Poedit"), wxDefaultPosition, wxDefaultSize, wxDEFAULT_FRAME_STYLE | wxNO_FULL_REPAINT_ON_RESIZE, "mainwin"), m_contentType(Content::Invalid), m_contentView(nullptr), m_catalog(nullptr), m_fileExistsOnDisk(false), m_list(nullptr), m_modified(false), m_hasObsoleteItems(false), m_setSashPositionsWhenMaximized(false) { m_list = nullptr; m_editingArea = nullptr; m_splitter = nullptr; m_sidebarSplitter = nullptr; m_sidebar = nullptr; // make sure that the [ID_POEDIT_FIRST,ID_POEDIT_LAST] range of IDs is not // used for anything else: wxASSERT_MSG( wxGetCurrentId() < ID_POEDIT_FIRST || wxGetCurrentId() > ID_POEDIT_LAST, "detected ID values conflict!" ); wxRegisterId(ID_POEDIT_LAST); wxConfigBase *cfg = wxConfig::Get(); m_displayIDs = (bool)cfg->Read("display_lines", (long)false); g_focusToText = (bool)cfg->Read("focus_to_text", (long)false); #if defined(__WXGTK__) wxIconBundle appicons; appicons.AddIcon(wxArtProvider::GetIcon("poedit", wxART_FRAME_ICON, wxSize(16,16))); appicons.AddIcon(wxArtProvider::GetIcon("poedit", wxART_FRAME_ICON, wxSize(32,32))); appicons.AddIcon(wxArtProvider::GetIcon("poedit", wxART_FRAME_ICON, wxSize(48,48))); SetIcons(appicons); #elif defined(__WXMSW__) SetIcons(wxIconBundle(wxStandardPaths::Get().GetResourcesDir() + "\\Resources\\Poedit.ico")); #endif wxMenuBar *MenuBar = wxXmlResource::Get()->LoadMenuBar("mainmenu"); if (MenuBar) { #ifndef __WXOSX__ m_menuForHistory = MenuBar->GetMenu(MenuBar->FindMenu(_("&File"))); FileHistory().UseMenu(m_menuForHistory); FileHistory().AddFilesToMenu(m_menuForHistory); #endif AddBookmarksMenu(MenuBar->GetMenu(MenuBar->FindMenu(_("&Go")))); #ifdef __WXOSX__ wxGetApp().TweakOSXMenuBar(MenuBar); #endif #ifndef HAVE_HTTP_CLIENT wxMenu *menu; wxMenuItem *item; item = MenuBar->FindItem(XRCID("menu_update_from_crowdin"), &menu); menu->Destroy(item); item = MenuBar->FindItem(XRCID("menu_open_crowdin"), &menu); menu->Destroy(item); #endif SetMenuBar(MenuBar); } else { wxLogError("Cannot load main menu from resource, something must have went terribly wrong."); wxLog::FlushActive(); return; } m_toolbar = MainToolbar::Create(this); GetMenuBar()->Check(XRCID("menu_ids"), m_displayIDs); if (wxConfigBase::Get()->ReadBool("/statusbar_shown", true)) CreateStatusBar(1, wxST_SIZEGRIP); m_contentWrappingSizer = new wxBoxSizer(wxVERTICAL); SetSizer(m_contentWrappingSizer); #ifndef __WXOSX__ // render a separator between the toolbar and content SetBackgroundColour(ColorScheme::Get(Color::ToolbarSeparator)); m_contentWrappingSizer->AddSpacer(PX(1)); #endif // !__WXOSX__ m_attentionBar = new AttentionBar(this); m_contentWrappingSizer->Add(m_attentionBar, wxSizerFlags().Expand()); SetAccelerators(); auto defaultSize = wxGetDisplaySize(); defaultSize.x -= PX(400); defaultSize.y -= PX(400); if (defaultSize.x > PX(1400)) defaultSize.x = PX(1400); if (double(defaultSize.x) / double(defaultSize.y) > 1.6) defaultSize.x = defaultSize.y * 1.6; RestoreWindowState(this, defaultSize, WinState_Size | WinState_Pos); UpdateMenu(); ms_instances.insert(this); SetDropTarget(new PoeditDropTarget(this)); #ifdef __WXOSX__ NSWindow *wnd = (NSWindow*)GetWXWindow(); [wnd setCollectionBehavior:NSWindowCollectionBehaviorFullScreenPrimary]; #endif } void PoeditFrame::EnsureContentView(Content type) { if (m_contentType == type) return; #ifdef __WXMSW__ wxWindowUpdateLocker no_updates(this); #endif if (m_contentView) DestroyContentView(); switch (type) { case Content::Invalid: m_contentType = Content::Invalid; return; // nothing to do case Content::Welcome: m_contentView = CreateContentViewWelcome(); break; case Content::Empty_PO: m_contentView = CreateContentViewEmptyPO(); break; case Content::PO: case Content::POT: m_contentView = CreateContentViewPO(type); break; } m_contentType = type; m_contentWrappingSizer->Add(m_contentView, wxSizerFlags(1).Expand()); Layout(); #ifdef __WXMSW__ m_contentView->Show(); Layout(); #endif } void PoeditFrame::EnsureAppropriateContentView() { wxCHECK_RET( m_catalog, "must have catalog here" ); if (m_catalog->empty()) { EnsureContentView(Content::Empty_PO); } else { switch (m_catalog->GetFileType()) { case Catalog::Type::PO: EnsureContentView(Content::PO); break; case Catalog::Type::POT: EnsureContentView(Content::POT); break; } } } wxWindow* PoeditFrame::CreateContentViewPO(Content type) { auto main = new wxPanel(this, wxID_ANY); auto mainSizer = new wxBoxSizer(wxHORIZONTAL); main->SetSizer(mainSizer); #ifdef __WXMSW__ // don't create the window as shown, avoid flicker main->Hide(); #endif m_sidebarSplitter = new ThinSplitter(main, ColorScheme::Get(Color::SidebarSeparator)); m_sidebarSplitter->Bind(wxEVT_SPLITTER_SASH_POS_CHANGING, &PoeditFrame::OnSidebarSplitterSashMoving, this); mainSizer->Add(m_sidebarSplitter, wxSizerFlags(1).Expand()); m_splitter = new ThinSplitter(m_sidebarSplitter, ColorScheme::Get(Color::EditingSeparator)); m_splitter->Bind(wxEVT_SPLITTER_SASH_POS_CHANGING, &PoeditFrame::OnSplitterSashMoving, this); // make only the upper part grow when resizing m_splitter->SetSashGravity(1.0); m_list = new PoeditListCtrl(m_splitter, wxID_ANY, m_displayIDs); m_editingArea = new EditingArea ( m_splitter, m_list, type == Content::POT ? EditingArea::POT : EditingArea::Editing ); m_editingArea->OnUpdatedFromTextCtrl = [=](CatalogItemPtr item, bool statsChanged){ OnUpdatedFromTextCtrl(item, statsChanged); }; SetCustomFonts(); m_splitter->SetMinimumPaneSize(PX(200)); m_sidebarSplitter->SetMinimumPaneSize(PX(200)); m_list->Bind(wxEVT_DATAVIEW_SELECTION_CHANGED, &PoeditFrame::OnListSel, this); m_list->Bind(wxEVT_DATAVIEW_ITEM_CONTEXT_MENU, &PoeditFrame::OnListRightClick, this); #ifdef wxHAS_GENERIC_DATAVIEWCTRL m_list->GetChildren()[0]->Bind(wxEVT_SET_FOCUS, &PoeditFrame::OnListFocus, this); #else m_list->Bind(wxEVT_SET_FOCUS, &PoeditFrame::OnListFocus, this); #endif auto suggestionsMenu = GetMenuBar()->FindItem(XRCID("menu_suggestions"))->GetSubMenu(); m_sidebar = new Sidebar(m_sidebarSplitter, suggestionsMenu); m_sidebar->Bind(wxEVT_UPDATE_UI, &PoeditFrame::OnSingleSelectionUpdate, this); UpdateMenu(); switch ( m_list->sortOrder().by ) { case SortOrder::By_FileOrder: GetMenuBar()->Check(XRCID("sort_by_order"), true); break; case SortOrder::By_Source: GetMenuBar()->Check(XRCID("sort_by_source"), true); break; case SortOrder::By_Translation: GetMenuBar()->Check(XRCID("sort_by_translation"), true); break; } GetMenuBar()->Check(XRCID("sort_group_by_context"), m_list->sortOrder().groupByContext); GetMenuBar()->Check(XRCID("sort_untrans_first"), m_list->sortOrder().untransFirst); GetMenuBar()->Check(XRCID("sort_errors_first"), m_list->sortOrder().errorsFirst); // Call splitter splitting later, when the window is laid out, otherwise // the sizes would get truncated immediately: CallAfter([=]{ // This is a hack -- windows are not maximized immediately and so we can't // set correct sash position in ctor (unmaximized window may be too small // for sash position when maximized -- see bug #2120600) if ( wxConfigBase::Get()->Read(WindowStatePath(this) + "maximized", long(0)) ) m_setSashPositionsWhenMaximized = true; if (wxConfigBase::Get()->ReadBool("/sidebar_shown", true)) { auto split = GetSize().x * wxConfigBase::Get()->ReadDouble("/sidebar_splitter", 0.75); m_sidebarSplitter->SplitVertically(m_splitter, m_sidebar, split); } else { m_sidebar->Hide(); m_sidebarSplitter->Initialize(m_splitter); Layout(); } m_splitter->SplitHorizontally(m_list, m_editingArea, (int)wxConfigBase::Get()->ReadLong("/splitter", -PX(320))); if (m_sidebar) m_sidebar->SetUpperHeight(m_splitter->GetSashPosition()); }); return main; } wxWindow* PoeditFrame::CreateContentViewWelcome() { return new WelcomeScreenPanel(this); } wxWindow* PoeditFrame::CreateContentViewEmptyPO() { return new EmptyPOScreenPanel(this); } void PoeditFrame::DestroyContentView() { if (!m_contentView) return; NotifyCatalogChanged(nullptr); if (m_splitter) wxConfigBase::Get()->Write("/splitter", (long)m_splitter->GetSashPosition()); m_contentWrappingSizer->Detach(m_contentView); m_contentView->Destroy(); m_contentView = nullptr; m_list = nullptr; m_splitter = nullptr; m_sidebarSplitter = nullptr; m_sidebar = nullptr; m_editingArea = nullptr; if (m_findWindow) { m_findWindow->Destroy(); m_findWindow.Release(); } } PoeditFrame::~PoeditFrame() { ms_instances.erase(this); DestroyContentView(); wxConfigBase *cfg = wxConfig::Get(); cfg->SetPath("/"); cfg->Write("display_lines", m_displayIDs); SaveWindowState(this); #ifndef __WXOSX__ FileHistory().RemoveMenu(m_menuForHistory); FileHistory().Save(*cfg); #endif // write all changes: cfg->Flush(); m_catalog.reset(); m_pendingHumanEditedItem.reset(); // shutdown the spellchecker: InitSpellchecker(); } void PoeditFrame::PlaceInitialFocus(int lineno) { if (g_focusToText && m_editingArea) m_editingArea->SetTextFocus(); else if (m_list) m_list->SetFocus(); if (m_catalog && m_list && m_list->GetItemCount() > 0) { int item = 0; if (lineno > 0) { item = m_catalog->FindItemIndexByLine(lineno); item = (item == -1) ? 0 : m_list->CatalogIndexToList(item); } m_list->SelectAndFocus(item); } } void PoeditFrame::SetAccelerators() { wxAcceleratorEntry entries[] = { #ifdef __WXMSW__ { wxACCEL_CTRL, WXK_F3, XRCID("menu_find_next") }, { wxACCEL_CTRL | wxACCEL_SHIFT, WXK_F3, XRCID("menu_find_prev") }, #endif { wxACCEL_CTRL, WXK_PAGEUP, XRCID("go_prev_page") }, { wxACCEL_CTRL, WXK_NUMPAD_PAGEUP, XRCID("go_prev_page") }, { wxACCEL_CTRL, WXK_PAGEDOWN, XRCID("go_next_page") }, { wxACCEL_CTRL, WXK_NUMPAD_PAGEDOWN, XRCID("go_next_page") }, { wxACCEL_CTRL | wxACCEL_SHIFT, WXK_UP, XRCID("go_prev_unfinished") }, { wxACCEL_CTRL | wxACCEL_SHIFT, WXK_NUMPAD_UP, XRCID("go_prev_unfinished") }, { wxACCEL_CTRL | wxACCEL_SHIFT, WXK_DOWN, XRCID("go_next_unfinished") }, { wxACCEL_CTRL | wxACCEL_SHIFT, WXK_NUMPAD_DOWN, XRCID("go_next_unfinished") }, { wxACCEL_CTRL, WXK_UP, XRCID("go_prev") }, { wxACCEL_CTRL, WXK_NUMPAD_UP, XRCID("go_prev") }, { wxACCEL_CTRL, WXK_DOWN, XRCID("go_next") }, { wxACCEL_CTRL, WXK_NUMPAD_DOWN, XRCID("go_next") }, { wxACCEL_CTRL, WXK_RETURN, XRCID("go_done_and_next") }, { wxACCEL_CTRL, WXK_NUMPAD_ENTER, XRCID("go_done_and_next") } }; wxAcceleratorTable accel(WXSIZEOF(entries), entries); SetAcceleratorTable(accel); } void PoeditFrame::InitSpellchecker() { if (!IsSpellcheckingAvailable()) return; if (!m_catalog || !m_catalog->HasCapability(Catalog::Cap::Translations)) return; Language lang = m_catalog->GetLanguage(); bool report_problem = false; bool enabled = m_catalog && #ifndef __WXMSW__ // language choice is automatic, per-keyboard on Windows lang.IsValid() && #endif wxConfig::Get()->Read("enable_spellchecking", (long)true); const bool enabledInitially = enabled; #ifdef __WXOSX__ if (enabled) { if ( !SetSpellcheckerLang(lang.LangAndCountry()) ) { enabled = false; report_problem = true; } } #endif if (m_editingArea && !m_editingArea->InitSpellchecker(enabled, lang)) report_problem = true; #ifndef __WXMSW__ // language choice is automatic, per-keyboard on Windows, can't fail if ( enabledInitially && report_problem ) { // Some languages don't have a reasonable spellchecking method or hunspell support: const bool notCapable = lang.Lang() == "zh" || lang.Lang() == "ja"; if (!notCapable) { AttentionMessage msg ( "missing-spell-dict", AttentionMessage::Warning, wxString::Format ( // TRANSLATORS: %s is language name in its basic form (as you // would see e.g. in a list of supported languages). You may need // to rephrase it, e.g. to an equivalent of "for language %s". _(L"Spellchecking is disabled, because the dictionary for %s isn’t installed."), lang.LanguageDisplayName() ) ); msg.AddAction(_("Install"), []{ ShowSpellcheckerHelp(); }); msg.AddDontShowAgain(); m_attentionBar->ShowMessage(msg); } } #endif // !__WXMSW__ } void PoeditFrame::UpdateTextLanguage() { if (!m_catalog) return; if (m_editingArea) { InitSpellchecker(); m_editingArea->SetLanguage(m_catalog->GetLanguage()); } if (m_sidebar) m_sidebar->RefreshContent(); } #ifndef __WXOSX__ void PoeditFrame::OnCloseCmd(wxCommandEvent&) { Close(); } #endif void PoeditFrame::OpenFile(const wxString& filename, int lineno) { DoIfCanDiscardCurrentDoc([=]{ DoOpenFile(filename, lineno); }); } void PoeditFrame::DoOpenFile(const wxString& filename, int lineno) { ReadCatalog(filename); // HACK: make sure this is called *after* the delayed call in PoeditListCtrl::CatalogChanged if (m_list) m_list->CallAfter([=]{ PlaceInitialFocus(lineno); }); } bool PoeditFrame::NeedsToAskIfCanDiscardCurrentDoc() const { return m_catalog && m_modified; } template void PoeditFrame::DoIfCanDiscardCurrentDoc(TFunctor completionHandler) { if ( !NeedsToAskIfCanDiscardCurrentDoc() ) { completionHandler(); return; } wxWindowPtr dlg = CreateAskAboutSavingDialog(); dlg->ShowWindowModalThenDo([this,dlg,completionHandler](int retval) { // hide the dialog asap, WriteCatalog() may show another modal sheet dlg->Hide(); #ifdef __WXOSX__ // Hide() alone is not sufficient on macOS, we need to destroy dlg // shared_ptr and only then continue. Because this code is called // from event loop (and not this functions' caller) at an unspecified // time anyway, we can just as well defer it into the next idle time // iteration. CallAfter([this,retval,completionHandler]() { #endif if (retval == wxID_YES) { auto doSaveFile = [=](const wxString& fn){ WriteCatalog(fn, [=](bool saved){ if (saved) completionHandler(); }); }; if (!m_fileExistsOnDisk || GetFileName().empty()) GetSaveAsFilenameThenDo(m_catalog, doSaveFile); else doSaveFile(GetFileName()); } else if (retval == wxID_NO) { // call completion without saving the document completionHandler(); } else if (retval == wxID_CANCEL) { // do not call -- not OK } #ifdef __WXOSX__ }); #endif }); } wxWindowPtr PoeditFrame::CreateAskAboutSavingDialog() { wxWindowPtr dlg(new wxMessageDialog ( this, _("Catalog modified. Do you want to save changes?"), _("Save changes"), wxYES_NO | wxCANCEL | wxICON_QUESTION )); dlg->SetExtendedMessage(_(L"Your changes will be lost if you don’t save them.")); dlg->SetYesNoLabels ( _("Save"), #ifdef __WXMSW__ _(L"Don’t save") #else _(L"Don’t Save") #endif ); return dlg; } void PoeditFrame::OnCloseWindow(wxCloseEvent& event) { if (event.CanVeto() && NeedsToAskIfCanDiscardCurrentDoc()) { #ifdef __WXOSX__ // Veto the event by default, then window-modally ask for permission. // If it turns out that the window can be closed, the completion handler // will do it: event.Veto(); DoIfCanDiscardCurrentDoc([=]{ Destroy(); }); #else // !__WXOSX__ // DoIfCanDiscardCurentDoc() doesn't have on-failure callback and // so we instead veto preemtively and then un-veto it. Note that this // only works because on non-OSX platforms the question dialog is // modal and the code below called immediately. event.Veto(); DoIfCanDiscardCurrentDoc([=, &event]{ event.Veto(false); Destroy(); }); #endif } else // can't veto { Destroy(); } } void PoeditFrame::OnOpen(wxCommandEvent&) { DoIfCanDiscardCurrentDoc([=]{ wxString path = wxPathOnly(GetFileName()); if (path.empty()) path = wxConfig::Get()->Read("last_file_path", wxEmptyString); wxString name = wxFileSelector(MACOS_OR_OTHER("", _("Open catalog")), path, wxEmptyString, wxEmptyString, Catalog::GetAllTypesFileMask(), wxFD_OPEN | wxFD_FILE_MUST_EXIST, this); if (!name.empty()) { wxConfig::Get()->Write("last_file_path", wxPathOnly(name)); DoOpenFile(name); } }); } #ifdef HAVE_HTTP_CLIENT void PoeditFrame::OnOpenFromCrowdin(wxCommandEvent&) { DoIfCanDiscardCurrentDoc([=]{ CrowdinOpenFile(this, [=](wxString name){ DoOpenFile(name); if (m_catalog) m_catalog->AttachCloudSync(std::make_shared()); }); }); } #endif #ifndef __WXOSX__ void PoeditFrame::OnOpenHist(wxCommandEvent& event) { wxString f(FileHistory().GetHistoryFile(event.GetId() - wxID_FILE1)); if ( !wxFileExists(f) ) { wxLogError(_(L"File “%s” doesn’t exist."), f.c_str()); return; } OpenFile(f); } #endif // !__WXOSX__ void PoeditFrame::OnSave(wxCommandEvent& event) { try { if (!m_fileExistsOnDisk || GetFileName().empty()) OnSaveAs(event); else WriteCatalog(GetFileName()); } catch (Exception& e) { wxLogError("%s", e.What()); } } static wxString SuggestFileName(const CatalogPtr& catalog) { wxString name; if (catalog) name = catalog->GetLanguage().Code(); if (name.empty()) return "default"; else return name; } template void PoeditFrame::GetSaveAsFilenameThenDo(const CatalogPtr& cat, F then) { auto current = cat->GetFileName(); wxString name(wxFileNameFromPath(current)); wxString path(wxPathOnly(current)); if (name.empty()) { path = wxConfig::Get()->Read("last_file_path", wxEmptyString); name = SuggestFileName(cat) + ".po"; } wxWindowPtr dlg( new wxFileDialog(this, MACOS_OR_OTHER("", _(L"Save as…")), path, name, m_catalog->GetFileMask(), wxFD_SAVE | wxFD_OVERWRITE_PROMPT)); dlg->ShowWindowModalThenDo([=](int retcode){ if (retcode != wxID_OK) return; auto fn = dlg->GetPath(); wxConfig::Get()->Write("last_file_path", wxPathOnly(name)); then(fn); }); } void PoeditFrame::DoSaveAs(const wxString& filename) { if (filename.empty()) return; WriteCatalog(filename); } void PoeditFrame::OnSaveAs(wxCommandEvent&) { GetSaveAsFilenameThenDo(m_catalog, [=](const wxString& fn){ DoSaveAs(fn); }); } void PoeditFrame::OnCompileMO(wxCommandEvent&) { auto fileName = GetFileName(); wxString name; wxFileName::SplitPath(fileName, nullptr, &name, nullptr); if (name.empty()) { name = SuggestFileName(m_catalog) + ".mo"; } else name += ".mo"; wxWindowPtr dlg( new wxFileDialog(this, MACOS_OR_OTHER("", _(L"Compile to…")), wxPathOnly(fileName), name, wxString::Format("%s (*.mo)|*.mo", _("Compiled Translation Files")), wxFD_SAVE | wxFD_OVERWRITE_PROMPT)); dlg->ShowWindowModalThenDo([=](int retcode){ if (retcode != wxID_OK) return; wxBusyCursor bcur; auto fn = dlg->GetPath(); wxConfig::Get()->Write("last_file_path", wxPathOnly(fn)); Catalog::ValidationResults validation_results; Catalog::CompilationStatus compilation_status = Catalog::CompilationStatus::NotDone; m_catalog->CompileToMO(fn, validation_results, compilation_status); if (validation_results.errors) { // Note: this may show window-modal window and because we may // be called from such window too, run this in the next // event loop iteration. CallAfter([=]{ ReportValidationErrors(validation_results, compilation_status, /*from_save=*/true, /*other_file_saved=*/false, []{}); }); } }); } void PoeditFrame::OnExport(wxCommandEvent&) { auto fileName = GetFileName(); wxString name; wxFileName::SplitPath(fileName, nullptr, &name, nullptr); if (name.empty()) { name = SuggestFileName(m_catalog) + ".html"; } else name += ".html"; wxWindowPtr dlg( new wxFileDialog(this, MACOS_OR_OTHER("", _(L"Export as…")), wxPathOnly(fileName), name, wxString::Format("%s (*.html)|*.html", _("HTML Files")), wxFD_SAVE | wxFD_OVERWRITE_PROMPT)); dlg->ShowWindowModalThenDo([=](int retcode){ if (retcode != wxID_OK) return; auto fn = dlg->GetPath(); wxConfig::Get()->Write("last_file_path", wxPathOnly(fn)); ExportCatalog(fn); }); } bool PoeditFrame::ExportCatalog(const wxString& filename) { wxBusyCursor bcur; TempOutputFileFor tempfile(filename); std::ofstream f; f.open(tempfile.FileName().fn_str()); m_catalog->ExportToHTML(f); f.close(); if (!tempfile.Commit()) { wxLogError(_(L"Couldn’t save file %s."), filename); return false; } return true; } void PoeditFrame::OnNew(wxCommandEvent& event) { DoIfCanDiscardCurrentDoc([=]{ if (event.GetId() == XRCID("menu_new_from_pot")) { NewFromPOT(); } else if (event.GetId() == XRCID("button_new_from_this_pot")) { wxWindowPtr dlg(new LanguageDialog(this)); dlg->ShowWindowModalThenDo([=](int retcode){ if (retcode == wxID_OK) NewFromPOT(m_catalog->GetFileName(), dlg->GetLang()); }); } else { NewFromScratch(); } }); } void PoeditFrame::NewFromPOT() { wxString path = wxPathOnly(GetFileName()); if (path.empty()) path = wxConfig::Get()->Read("last_file_path", wxEmptyString); wxString pot_file = wxFileSelector(_("Open catalog template"), path, wxEmptyString, wxEmptyString, Catalog::GetTypesFileMask({Catalog::Type::POT, Catalog::Type::PO}), wxFD_OPEN | wxFD_FILE_MUST_EXIST, this); if (!pot_file.empty()) { wxConfig::Get()->Write("last_file_path", wxPathOnly(pot_file)); NewFromPOT(pot_file); } } void PoeditFrame::NewFromPOT(const wxString& pot_file, Language language) { auto catalog = Catalog::CreateFromPOT(pot_file); if (!catalog) { return; } m_catalog = catalog; m_pendingHumanEditedItem.reset(); m_fileExistsOnDisk = false; m_modified = true; EnsureAppropriateContentView(); NotifyCatalogChanged(m_catalog); UpdateTitle(); UpdateMenu(); UpdateStatusBar(); UpdateTextLanguage(); auto setLanguageFunc = [=](Language lang) { if (lang.IsValid()) { catalog->SetLanguage(lang); // Derive save location for the file from the location of the POT // file (same directory, language-based name). This doesn't always // work, e.g. WordPress plugins use different naming, so don't actually // save the file just yet and let the user confirm the location when saving. wxFileName pot_fn(pot_file); pot_fn.SetFullName(lang.Code() + ".po"); m_catalog->SetFileName(pot_fn.GetFullPath()); } else { // default to English style plural if (catalog->HasPluralItems()) catalog->Header().SetHeaderNotEmpty("Plural-Forms", "nplurals=2; plural=(n != 1);"); } RecreatePluralTextCtrls(); UpdateTitle(); UpdateMenu(); UpdateStatusBar(); UpdateTextLanguage(); NotifyCatalogChanged(m_catalog); // refresh language column }; if (language.IsValid()) { setLanguageFunc(language); PlaceInitialFocus(); } else { // Choose the language: wxWindowPtr dlg(new LanguageDialog(this)); dlg->ShowWindowModalThenDo([=](int retcode){ if (retcode == wxID_OK) setLanguageFunc(dlg->GetLang()); else setLanguageFunc(Language()); PlaceInitialFocus(); }); } } void PoeditFrame::NewFromScratch() { CatalogPtr catalog = std::make_shared(); catalog->CreateNewHeader(); m_catalog = catalog; m_pendingHumanEditedItem.reset(); m_fileExistsOnDisk = false; m_modified = true; EnsureContentView(Content::Empty_PO); UpdateTitle(); UpdateMenu(); UpdateStatusBar(); // Choose the language: wxWindowPtr dlg(new LanguageDialog(this)); dlg->ShowWindowModalThenDo([=](int retcode){ if (retcode == wxID_OK) { catalog->SetLanguage(dlg->GetLang()); } }); } void PoeditFrame::OnProperties(wxCommandEvent&) { EditCatalogProperties(); } void PoeditFrame::EditCatalogProperties() { wxWindowPtr dlg(new PropertiesDialog(this, m_catalog, m_fileExistsOnDisk)); const Language prevLang = m_catalog->GetLanguage(); dlg->TransferTo(m_catalog); dlg->ShowWindowModalThenDo([=](int retcode){ if (retcode == wxID_OK) { dlg->TransferFrom(m_catalog); m_modified = true; RecreatePluralTextCtrls(); UpdateTitle(); UpdateMenu(); if (prevLang != m_catalog->GetLanguage()) { UpdateTextLanguage(); // trigger resorting and language header update: NotifyCatalogChanged(m_catalog); } } }); } void PoeditFrame::EditCatalogPropertiesAndUpdateFromSources() { // TODO: share code with EditCatalogProperties() wxWindowPtr dlg(new PropertiesDialog(this, m_catalog, m_fileExistsOnDisk, 1)); const Language prevLang = m_catalog->GetLanguage(); dlg->TransferTo(m_catalog); dlg->ShowWindowModalThenDo([=](int retcode){ if (retcode == wxID_OK) { dlg->TransferFrom(m_catalog); m_modified = true; if (m_list) RecreatePluralTextCtrls(); UpdateTitle(); UpdateMenu(); if (prevLang != m_catalog->GetLanguage()) { UpdateTextLanguage(); // trigger resorting and language header update: NotifyCatalogChanged(m_catalog); } if (!m_catalog->Header().SearchPaths.empty()) { EnsureAppropriateContentView(); UpdateCatalog(); } } }); } void PoeditFrame::UpdateAfterPreferencesChange() { g_focusToText = (bool)wxConfig::Get()->Read("focus_to_text", (long)false); if (m_list) { SetCustomFonts(); m_list->Refresh(); // if font changed UpdateTextLanguage(); } } /*static*/ void PoeditFrame::UpdateAllAfterPreferencesChange() { for (PoeditFramesList::const_iterator n = ms_instances.begin(); n != ms_instances.end(); ++n) { (*n)->UpdateAfterPreferencesChange(); } } bool PoeditFrame::UpdateCatalog(const wxString& pot_file) { // This ensures that the list control won't be redrawn during Update() // call when a dialog box is hidden; another alternative would be to call // m_list->CatalogChanged(NULL) here std::unique_ptr locker; if (m_list) locker.reset(new wxWindowUpdateLocker(m_list)); UpdateResultReason reason = UpdateResultReason::Unspecified; bool succ; if (pot_file.empty()) { if (m_catalog->HasSourcesAvailable()) { succ = PerformUpdateFromSources(this, m_catalog, reason); locker.reset(); EnsureAppropriateContentView(); NotifyCatalogChanged(m_catalog); } else { reason = UpdateResultReason::NoSourcesFound; succ = false; } } else { succ = PerformUpdateFromPOT(this, m_catalog, pot_file, reason); locker.reset(); EnsureAppropriateContentView(); NotifyCatalogChanged(m_catalog); } m_modified = succ || m_modified; UpdateStatusBar(); if (!succ) { switch (reason) { case UpdateResultReason::NoSourcesFound: { wxWindowPtr dlg(new wxMessageDialog ( this, _("Source code not available."), MSW_OR_OTHER(_("Updating failed"), ""), wxOK | wxICON_ERROR )); dlg->SetExtendedMessage(_(L"Translations couldn’t be updated from the source code, because no code was found in the location specified in the catalog’s Properties.")); dlg->ShowWindowModalThenDo([dlg](int){}); break; } case UpdateResultReason::Unspecified: { wxLogWarning(_("Entries in the catalog are probably incorrect.")); wxLogError( _("Updating the catalog failed. Click on 'Details >>' for details.")); break; } case UpdateResultReason::CancelledByUser: break; } } return succ; } void PoeditFrame::OnUpdateFromSources(wxCommandEvent&) { DoIfCanDiscardCurrentDoc([=]{ try { if (UpdateCatalog()) { if (Config::UseTM() && Config::MergeBehavior() == Merge_UseTM) { if (PreTranslateCatalog(this, m_catalog, PreTranslate_OnlyGoodQuality, nullptr)) { if (!m_modified) { m_modified = true; UpdateTitle(); } RefreshControls(); } } } } catch (...) { wxLogError("%s", DescribeCurrentException()); } RefreshControls(); }); } void PoeditFrame::OnUpdateFromSourcesUpdate(wxUpdateUIEvent& event) { event.Enable(m_catalog && !m_catalog->IsFromCrowdin() && m_catalog->HasSourcesConfigured()); } void PoeditFrame::OnUpdateFromPOT(wxCommandEvent&) { DoIfCanDiscardCurrentDoc([=]{ wxString path = wxPathOnly(GetFileName()); if (path.empty()) path = wxConfig::Get()->Read("last_file_path", wxEmptyString); wxWindowPtr dlg( new wxFileDialog(this, _("Open catalog template"), path, wxEmptyString, Catalog::GetTypesFileMask({Catalog::Type::POT, Catalog::Type::PO}), wxFD_OPEN | wxFD_FILE_MUST_EXIST)); dlg->ShowWindowModalThenDo([=](int retcode){ if (retcode != wxID_OK) return; auto pot_file = dlg->GetPath(); wxConfig::Get()->Write("last_file_path", wxPathOnly(pot_file)); try { if (UpdateCatalog(pot_file)) { if (Config::UseTM() && Config::MergeBehavior() == Merge_UseTM) { if (PreTranslateCatalog(this, m_catalog, PreTranslate_OnlyGoodQuality, nullptr)) { if (!m_modified) { m_modified = true; UpdateTitle(); } RefreshControls(); } } } } catch (...) { wxLogError("%s", DescribeCurrentException()); } }); RefreshControls(); }); } void PoeditFrame::OnUpdateFromPOTUpdate(wxUpdateUIEvent& event) { if (!m_catalog || m_catalog->GetFileType() != Catalog::Type::PO) event.Enable(false); else OnHasCatalogUpdate(event); } #ifdef HAVE_HTTP_CLIENT void PoeditFrame::OnUpdateFromCrowdin(wxCommandEvent&) { DoIfCanDiscardCurrentDoc([=]{ CrowdinSyncFile(this, m_catalog, [=](std::shared_ptr cat){ m_catalog = cat; EnsureAppropriateContentView(); NotifyCatalogChanged(m_catalog); RefreshControls(); }); }); } void PoeditFrame::OnUpdateFromCrowdinUpdate(wxUpdateUIEvent& event) { event.Enable(m_catalog && m_catalog->IsFromCrowdin() && m_catalog->HasCapability(Catalog::Cap::Translations)); } #endif void PoeditFrame::OnUpdateSmart(wxCommandEvent& event) { if (!m_catalog) return; #ifdef HAVE_HTTP_CLIENT if (m_catalog->IsFromCrowdin()) OnUpdateFromCrowdin(event); else #endif OnUpdateFromSources(event); } void PoeditFrame::OnUpdateSmartUpdate(wxUpdateUIEvent& event) { event.Enable(false); if (m_catalog) { #ifdef HAVE_HTTP_CLIENT if (m_catalog->IsFromCrowdin()) OnUpdateFromCrowdinUpdate(event); else #endif OnUpdateFromSourcesUpdate(event); } } void PoeditFrame::OnValidate(wxCommandEvent&) { try { wxBusyCursor bcur; auto results = m_catalog->Validate(); if (m_list && m_list->sortOrder().errorsFirst) m_list->Sort(); ReportValidationErrors(results, /*mo_compilation_failed=*/Catalog::CompilationStatus::NotDone, /*from_save=*/false, /*other_file_saved=*/false, []{}); } catch (Exception& e) { wxLogError("%s", e.What()); } } template void PoeditFrame::ReportValidationErrors(Catalog::ValidationResults validation, Catalog::CompilationStatus mo_compilation_status, bool from_save, bool other_file_saved, TFunctor completionHandler) { wxWindowPtr dlg; // Refresh the list even without errors, because there may be new warnings if (m_list && m_catalog->GetCount()) m_list->RefreshAllItems(); if ( validation.errors ) { RefreshControls(); dlg.reset(new wxMessageDialog ( this, wxString::Format ( wxPLURAL("%d issue with the translation found.", "%d issues with the translation found.", validation.errors), validation.errors ), _("Validation results"), wxOK | wxICON_ERROR )); wxString details = _("Entries with errors were marked in red in the list. Details of the error will be shown when you select such an entry."); if ( from_save ) { details += "\n\n"; if (other_file_saved) { switch ( mo_compilation_status ) { case Catalog::CompilationStatus::NotDone: details += _("The file was saved safely."); break; case Catalog::CompilationStatus::Success: details += _("The file was saved safely and compiled into the MO format, but it will probably not work correctly."); break; case Catalog::CompilationStatus::Error: details += _("The file was saved safely, but it cannot be compiled into the MO format and used."); break; } } else // saving only the MO file { switch ( mo_compilation_status ) { case Catalog::CompilationStatus::Success: details += _("The file was compiled into the MO format, but it will probably not work correctly."); break; case Catalog::CompilationStatus::NotDone: case Catalog::CompilationStatus::Error: details += _("The file cannot be compiled into the MO format and used."); break; } } } dlg->SetExtendedMessage(details); } else { wxASSERT( !from_save ); dlg.reset(new wxMessageDialog ( this, _("No problems with the translation found."), _("Validation results"), wxOK | wxICON_INFORMATION )); wxString details; int unfinished = 0; m_catalog->GetStatistics(nullptr, nullptr, nullptr, nullptr, &unfinished); if (unfinished) { details = wxString::Format(wxPLURAL("The translation is ready for use, but %d entry is not translated yet.", "The translation is ready for use, but %d entries are not translated yet.", unfinished), unfinished); } else { details = _("The translation is ready for use."); } dlg->SetExtendedMessage(details); } dlg->ShowWindowModalThenDo([dlg,completionHandler](int){ completionHandler(); }); } void PoeditFrame::OnListSel(wxDataViewEvent& event) { bool multipleSel = m_list && m_list->HasMultipleSelection(); bool hasTextFocus = m_editingArea->HasTextFocus(); event.Skip(); if (m_pendingHumanEditedItem) { OnNewTranslationEntered(m_pendingHumanEditedItem); m_pendingHumanEditedItem.reset(); } if (multipleSel) { m_editingArea->SetMultipleSelectionMode(); } else { m_editingArea->SetSingleSelectionMode(); UpdateToTextCtrl(EditingArea::ItemChanged); } if (m_sidebar) { if (multipleSel) m_sidebar->SetMultipleSelection(); else m_sidebar->SetSelectedItem(m_catalog, GetCurrentItem()); // may be nullptr } if (hasTextFocus) m_editingArea->SetTextFocus(); auto references = FileViewer::GetIfExists(); if (references) references->ShowReferences(m_catalog, GetCurrentItem(), 0); } void PoeditFrame::OnReferencesMenu(wxCommandEvent&) { auto entry = GetCurrentItem(); if ( !entry ) return; ShowReference(0); } void PoeditFrame::OnReferencesMenuUpdate(wxUpdateUIEvent& event) { OnSingleSelectionUpdate(event); if (event.GetEnabled()) { auto item = GetCurrentItem(); event.Enable(item && !item->GetReferences().empty()); } } void PoeditFrame::OnReference(wxCommandEvent& event) { ShowReference(event.GetId() - ID_POPUP_REFS); } void PoeditFrame::ShowReference(int num) { auto entry = GetCurrentItem(); if (!entry) return; FileViewer::GetAndActivate()->ShowReferences(m_catalog, entry, num); } void PoeditFrame::OnFuzzyFlag(wxCommandEvent&) { bool setFuzzy = GetMenuBar()->IsChecked(XRCID("menu_fuzzy")); bool modified = false; m_list->ForSelectedCatalogItemsDo([=,&modified](CatalogItem& item){ if (item.IsFuzzy() != setFuzzy) { item.SetFuzzy(setFuzzy); item.SetModified(true); modified = true; } }); if (modified && !IsModified()) { m_modified = true; UpdateTitle(); } UpdateStatusBar(); UpdateToTextCtrl(EditingArea::UndoableEdit); if (m_list->HasSingleSelection()) { // The user explicitly changed fuzzy status (e.g. to on). Normally, if the // user edits an entry, it's fuzzy flag is cleared, but if the user sets // fuzzy on to indicate the translation is problematic and then continues // editing the entry, we do not want to annoy him by changing fuzzy back on // every keystroke. m_editingArea->DontAutoclearFuzzyStatus(); } } void PoeditFrame::OnIDsFlag(wxCommandEvent&) { m_displayIDs = GetMenuBar()->IsChecked(XRCID("menu_ids")); m_list->SetDisplayLines(m_displayIDs); } void PoeditFrame::OnCopyFromSingular(wxCommandEvent&) { m_editingArea->CopyFromSingular(); } void PoeditFrame::OnCopyFromSource(wxCommandEvent&) { bool modified = false; m_list->ForSelectedCatalogItemsDo([&modified](CatalogItem& item){ item.SetTranslationFromSource(); if (item.IsModified()) modified = true; }); if (modified && !IsModified()) { m_modified = true; UpdateTitle(); } UpdateStatusBar(); UpdateToTextCtrl(EditingArea::UndoableEdit); } void PoeditFrame::OnClearTranslation(wxCommandEvent&) { bool modified = false; m_list->ForSelectedCatalogItemsDo([&modified](CatalogItem& item){ item.ClearTranslation(); if (item.IsModified()) modified = true; }); if (modified && !IsModified()) { m_modified = true; UpdateTitle(); } UpdateStatusBar(); UpdateToTextCtrl(EditingArea::UndoableEdit); } void PoeditFrame::OnFind(wxCommandEvent&) { if (!m_findWindow) m_findWindow = new FindFrame(this, m_list, m_editingArea, m_catalog); m_findWindow->ShowForFind(); } void PoeditFrame::OnFindAndReplace(wxCommandEvent&) { if (!m_findWindow) m_findWindow = new FindFrame(this, m_list, m_editingArea, m_catalog); m_findWindow->ShowForReplace(); } void PoeditFrame::OnFindNext(wxCommandEvent&) { if (m_findWindow) m_findWindow->FindNext(); } void PoeditFrame::OnFindPrev(wxCommandEvent&) { if (m_findWindow) m_findWindow->FindPrev(); } void PoeditFrame::OnUpdateFind(wxUpdateUIEvent& e) { e.Enable(m_catalog && !m_catalog->empty() && m_findWindow && m_findWindow->HasText()); } CatalogItemPtr PoeditFrame::GetCurrentItem() const { if ( !m_catalog || !m_list ) return nullptr; return m_list->GetCurrentCatalogItem(); } void PoeditFrame::OnUpdatedFromTextCtrl(CatalogItemPtr item, bool statsChanged) { GetMenuBar()->Check(XRCID("menu_fuzzy"), item->IsFuzzy()); m_pendingHumanEditedItem = item; if (statsChanged) { UpdateStatusBar(); } // else: no point in recomputing stats if (!IsModified()) { m_modified = true; UpdateTitle(); } } void PoeditFrame::OnNewTranslationEntered(const CatalogItemPtr& item) { if (item->IsFuzzy() || !item->IsTranslated()) return; if (Config::UseTM()) { auto srclang = m_catalog->GetSourceLanguage(); auto lang = m_catalog->GetLanguage(); dispatch::async([=](){ try { auto tm = TranslationMemory::Get().GetWriter(); tm->Insert(srclang, lang, item); // Note: do *not* call tm->Commit() here, because Lucene commit is // expensive. Instead, wait until the file is saved with committing // the changes. This way TM updates are available immediately for use // in further translations within the file, but per-item updates // remain inexpensive. } catch (const Exception&) { // ignore failures here, they'll become apparent when saving the file } }); } } void PoeditFrame::UpdateToTextCtrl(int flags) { auto item = GetCurrentItem(); if (!item) return; m_pendingHumanEditedItem.reset(); m_editingArea->UpdateToTextCtrl(item, flags); GetMenuBar()->Check(XRCID("menu_fuzzy"), item->IsFuzzy()); } void PoeditFrame::ReadCatalog(const wxString& catalog) { wxBusyCursor bcur; // NB: duplicated in PoeditFrame::Create() CatalogPtr cat = std::make_shared(catalog); if (cat->IsOk()) { ReadCatalog(cat); } else { wxMessageDialog dlg ( this, _("The file cannot be opened."), _("Invalid file"), wxOK | wxICON_ERROR ); dlg.SetExtendedMessage( _("The file may be either corrupted or in a format not recognized by Poedit.") ); dlg.ShowModal(); } } void PoeditFrame::ReadCatalog(const CatalogPtr& cat) { wxASSERT( cat && cat->IsOk() ); { #ifdef __WXMSW__ wxWindowUpdateLocker no_updates(this); #endif m_catalog = cat; m_pendingHumanEditedItem.reset(); if (m_catalog->empty()) { EnsureContentView(Content::Empty_PO); } else { EnsureAppropriateContentView(); // This must be done as soon as possible, otherwise the list would be // confused. GetCurrentItem() could return nullptr or something invalid, // causing crash in UpdateToTextCtrl() called from // RecreatePluralTextCtrls() just few lines below. NotifyCatalogChanged(m_catalog); } m_fileExistsOnDisk = true; m_modified = false; RecreatePluralTextCtrls(); RefreshControls(Refresh_NoCatalogChanged /*done right above*/); UpdateTitle(); UpdateTextLanguage(); NoteAsRecentFile(); if (cat->HasCapability(Catalog::Cap::Translations)) WarnAboutLanguageIssues(); } // Can't do this with the window being frozen, because positioning the toolbar // in presence of mCtrl menubar would not size & repaint properly: #ifdef HAVE_HTTP_CLIENT m_toolbar->EnableSyncWithCrowdin(m_catalog->IsFromCrowdin()); #endif FixDuplicatesIfPresent(); } void PoeditFrame::FixDuplicatesIfPresent() { // Poedit always produces good files, so don't bother with it. Older // versions would preserve bad files, though. wxString generator = m_catalog->Header().GetHeader("X-Generator"); wxString gversion; if (generator.StartsWith("Poedit ", &gversion) && !gversion.StartsWith("1.7") && !gversion.StartsWith("1.6") && !gversion.StartsWith("1.5")) return; if (!m_catalog->HasDuplicateItems()) return; // good // Fix duplicates and explain the changes to the user: m_catalog->FixDuplicateItems(); NotifyCatalogChanged(m_catalog); wxWindowPtr dlg( new wxMessageDialog ( this, wxString::Format(_(L"Poedit automatically fixed invalid content in the file “%s”."), wxFileName(GetFileName()).GetFullName()), _("Invalid file"), wxOK | wxICON_INFORMATION ) ); dlg->SetExtendedMessage(_("The file contained duplicate items, which is not allowed in PO files and would prevent the file from being used. Poedit fixed the issue, but you should review translations of any items marked as needing work and correct them if necessary.")); dlg->ShowWindowModalThenDo([dlg](int){}); } void PoeditFrame::WarnAboutLanguageIssues() { Language srclang = m_catalog->GetSourceLanguage(); Language lang = m_catalog->GetLanguage(); if (!lang.IsValid()) { AttentionMessage msg ( "missing-language", AttentionMessage::Error, _(L"Language of the translation isn’t set.") ); msg.AddAction(MSW_OR_OTHER(_("Set language"), _("Set Language")), [=]{ EditCatalogProperties(); }); // TRANSLATORS: This is shown underneath "Language of the translation isn't set (or ...is the same as source language)." msg.SetExplanation(_("Suggestions are not available if the translation language is not set correctly. Other features, such as plural forms, may be affected as well.")); m_attentionBar->ShowMessage(msg); } // Check if the language is set wrongly. This is typically done in such a way that // both languages are English, so check explicitly for the common case of "translating" // from en to en_US too: if (lang.IsValid() && srclang.IsValid() && (lang == srclang || (srclang == Language::English() && lang.Code() == "en_US"))) { AttentionMessage msg ( "same-language-as-source", AttentionMessage::Warning, _("Language of the translation is the same as source language.") ); msg.SetExplanation(_("Suggestions are not available if the translation language is not set correctly. Other features, such as plural forms, may be affected as well.")); msg.AddAction(MSW_OR_OTHER(_("Fix language"), _("Fix Language")), [=]{ EditCatalogProperties(); }); if (lang != srclang) msg.AddDontShowAgain(); // possible that Poedit misjudged the intent m_attentionBar->ShowMessage(msg); } // check if plural forms header is correct (only if the language is set, // otherwise setting the language will fix this issue too): if ( lang.IsValid() && m_catalog->HasPluralItems() ) { wxString err; if ( m_catalog->Header().GetHeader("Plural-Forms").empty() ) { err = _(L"This catalog has entries with plural forms, but doesn’t have Plural-Forms header configured."); } else if ( m_catalog->HasWrongPluralFormsCount() ) { err = _(L"Entries in this catalog have different plural forms count from what catalog’s Plural-Forms header says"); } // FIXME: make this part of global error checking wxString plForms = m_catalog->Header().GetHeader("Plural-Forms"); auto plCalc = PluralFormsCalculator::make(plForms.ToAscii()); if ( !plCalc ) { if ( plForms.empty() ) { err = _("Required header Plural-Forms is missing."); } else { err = wxString::Format( _("Syntax error in Plural-Forms header (\"%s\")."), plForms.c_str()); } } if ( !err.empty() ) { AttentionMessage msg ( "malformed-plural-forms", AttentionMessage::Error, err ); msg.AddAction(MSW_OR_OTHER(_("Fix the header"), _("Fix the Header")), [=]{ EditCatalogProperties(); }); m_attentionBar->ShowMessage(msg); } else // no error, check for warning-worthy stuff { if ( lang.IsValid() ) { // Check for unusual plural forms. Do some normalization to avoid unnecessary // complains when the only differences are in whitespace for example. wxString pl1 = plForms; wxString pl2 = lang.DefaultPluralFormsExpr(); if (!pl2.empty()) { pl1.Replace(" ", ""); pl2.Replace(" ", ""); if ( pl1 != pl2 ) { if (pl1.Find(";plural=(") == wxNOT_FOUND && pl1.Last() == ';') { pl1.Replace(";plural=", ";plural=("); pl1.RemoveLast(); pl1 += ");"; } } if ( pl1 != pl2 ) { AttentionMessage msg ( "unusual-plural-forms", AttentionMessage::Warning, wxString::Format ( // TRANSLATORS: %s is language name in its basic form (as you // would see e.g. in a list of supported languages). You may need // to rephrase it, e.g. to an equivalent of "for language %s". _("Plural forms expression used by the catalog is unusual for %s."), lang.DisplayName() ) ); // TRANSLATORS: A verb, shown as action button with ""Plural forms expression used by the catalog is unusual for %s.")" msg.AddAction(_("Review"), [=]{ EditCatalogProperties(); }); msg.AddDontShowAgain(); m_attentionBar->ShowMessage(msg); } } } } } } void PoeditFrame::NoteAsRecentFile() { wxFileName fn(GetFileName()); fn.Normalize(wxPATH_NORM_DOTS | wxPATH_NORM_ABSOLUTE); #ifdef __WXOSX__ [[NSDocumentController sharedDocumentController] noteNewRecentDocumentURL:[NSURL fileURLWithPath:str::to_NS(fn.GetFullPath())]]; #else FileHistory().AddFileToHistory(fn.GetFullPath()); #endif } void PoeditFrame::MarkAsModified() { m_modified = true; UpdateTitle(); } void PoeditFrame::RefreshControls(int flags) { if (!m_catalog) return; m_hasObsoleteItems = false; if (!m_catalog->IsOk()) { wxLogError(_(L"Error loading message catalog file “%s”."), m_catalog->GetFileName()); m_fileExistsOnDisk = false; UpdateMenu(); UpdateTitle(); m_catalog.reset(); m_pendingHumanEditedItem.reset(); NotifyCatalogChanged(nullptr); return; } wxBusyCursor bcur; UpdateMenu(); if (m_list) { // update catalog view, this may involve reordering the items... if (!(flags & Refresh_NoCatalogChanged)) m_list->CatalogChanged(m_catalog); if (m_findWindow) m_findWindow->Reset(m_catalog); } UpdateTitle(); UpdateStatusBar(); Refresh(); } void PoeditFrame::NotifyCatalogChanged(const CatalogPtr& cat) { if (m_sidebar) m_sidebar->ResetCatalog(); if (m_list) m_list->CatalogChanged(cat); } void PoeditFrame::UpdateStatusBar() { auto bar = GetStatusBar(); if (m_catalog && bar) { int all, fuzzy, untranslated, errors, unfinished; m_catalog->GetStatistics(&all, &fuzzy, &errors, &untranslated, &unfinished); wxString text; if (m_catalog->HasCapability(Catalog::Cap::Translations)) { int percent = (all == 0) ? 0 : (100 * (all - unfinished) / all); text.Printf(_("Translated: %d of %d (%d %%)"), all - unfinished, all, percent); if (unfinished > 0) { text += L" • "; text += wxString::Format(_("Remaining: %d"), unfinished); } if (errors > 0) { text += L" • "; text += wxString::Format(wxPLURAL("%d error", "%d errors", errors), errors); } } else { text.Printf(wxPLURAL("%d entry", "%d entries", all), all); } bar->SetStatusText(text); } } void PoeditFrame::UpdateTitle() { #ifdef __WXOSX__ OSXSetModified(IsModified()); #endif m_fileNamePartOfTitle.clear(); wxString title; auto fileName = GetFileName(); if ( !fileName.empty() ) { wxFileName fn(GetFileName()); wxString fpath = fn.GetFullName(); if (m_fileExistsOnDisk) SetRepresentedFilename(fileName); else fpath += _(" (unsaved)"); if ( !m_catalog->Header().Project.empty() ) { title.Printf( #ifdef __WXOSX__ L"%s — %s", #else L"%s • %s", #endif fpath, m_catalog->Header().Project); } else { title = fn.GetFullName(); } m_fileNamePartOfTitle = title; #ifndef __WXOSX__ if ( IsModified() ) title += _(" (modified)"); title += " - Poedit"; #endif } else { title = "Poedit"; } SetTitle(title); } void PoeditFrame::UpdateMenu() { wxMenuBar *menubar = GetMenuBar(); const bool hasCatalog = m_catalog != nullptr; const bool nonEmpty = hasCatalog && !m_catalog->empty(); const bool editable = nonEmpty && m_catalog->HasCapability(Catalog::Cap::Translations); menubar->Enable(XRCID("menu_compile_mo"), hasCatalog && m_catalog->GetFileType() == Catalog::Type::PO); menubar->Enable(XRCID("menu_export"), hasCatalog); menubar->Enable(XRCID("menu_references"), nonEmpty); menubar->Enable(wxID_FIND, nonEmpty); menubar->Enable(wxID_REPLACE, nonEmpty); menubar->Enable(XRCID("menu_purge_deleted"), editable); menubar->Enable(XRCID("menu_validate"), editable); menubar->Enable(XRCID("menu_catproperties"), hasCatalog); menubar->Enable(XRCID("menu_ids"), nonEmpty); menubar->Enable(XRCID("sort_by_order"), nonEmpty); menubar->Enable(XRCID("sort_by_source"), nonEmpty); menubar->Enable(XRCID("sort_by_translation"), editable); menubar->Enable(XRCID("sort_group_by_context"), nonEmpty); menubar->Enable(XRCID("sort_untrans_first"), editable); menubar->Enable(XRCID("sort_errors_first"), editable); if (m_list) m_list->Enable(nonEmpty); menubar->Enable(XRCID("menu_purge_deleted"), editable && m_catalog->HasDeletedItems()); for (int i = 0; i < 10; i++) { menubar->Enable(ID_BOOKMARK_SET + i, editable); menubar->Enable(ID_BOOKMARK_GO + i, editable && m_catalog->GetBookmarkIndex(Bookmark(i)) != -1); } } void PoeditFrame::WriteCatalog(const wxString& catalog) { WriteCatalog(catalog, [](bool){}); } template void PoeditFrame::WriteCatalog(const wxString& catalog, TFunctor completionHandler) { wxBusyCursor bcur; dispatch::future tmUpdateThread; if (Config::UseTM() && m_catalog->HasCapability(Catalog::Cap::Translations)) { tmUpdateThread = dispatch::async([=]{ try { auto tm = TranslationMemory::Get().GetWriter(); tm->Insert(m_catalog); tm->Commit(); } catch ( const Exception& e ) { wxLogWarning(_("Failed to update translation memory: %s"), e.What()); } catch ( ... ) { wxLogWarning(_("Failed to update translation memory: %s"), "unknown error"); } }); } if (m_catalog->GetFileType() == Catalog::Type::PO) { Catalog::HeaderData& dt = m_catalog->Header(); dt.Translator = wxConfig::Get()->Read("translator_name", dt.Translator); dt.TranslatorEmail = wxConfig::Get()->Read("translator_email", dt.TranslatorEmail); } Catalog::ValidationResults validation_results; Catalog::CompilationStatus mo_compilation_status = Catalog::CompilationStatus::NotDone; if ( !m_catalog->Save(catalog, true, validation_results, mo_compilation_status) ) { if (tmUpdateThread.valid()) tmUpdateThread.wait(); completionHandler(false); return; } m_catalog->SetFileName(catalog); m_modified = false; m_fileExistsOnDisk = true; #ifndef __WXOSX__ FileHistory().AddFileToHistory(GetFileName()); #endif UpdateTitle(); RefreshControls(); NoteAsRecentFile(); if (ManagerFrame::Get()) ManagerFrame::Get()->NotifyFileChanged(GetFileName()); if (m_catalog->GetCloudSync()) { CloudSyncProgressWindow::RunSync(this, m_catalog->GetCloudSync(), m_catalog); } if (tmUpdateThread.valid()) tmUpdateThread.wait(); if (m_list && m_list->sortOrder().errorsFirst) m_list->Sort(); if (validation_results.errors) { // Note: this may show window-modal window and because we may // be called from such window too, run this in the next // event loop iteration. CallAfter([=]{ ReportValidationErrors(validation_results, mo_compilation_status, /*from_save=*/true, /*other_file_saved=*/true, [=]{ completionHandler(true); }); }); } else { completionHandler(true); } } void PoeditFrame::OnEditComment(wxCommandEvent& event) { auto firstItem = GetCurrentItem(); wxCHECK_RET( firstItem, "no entry selected" ); (void)event; wxWindow *parent = this; #ifndef __WXOSX__ // Find suitable parent window for the comment dialog (e.g. the button): parent = dynamic_cast(event.GetEventObject()); if (parent && dynamic_cast(parent) != nullptr) parent = nullptr; if (!parent) parent = this; #endif wxWindowPtr dlg(new CommentDialog(parent, firstItem->GetComment())); dlg->ShowWindowModalThenDo([=](int retcode){ if (retcode == wxID_OK) { m_modified = true; UpdateTitle(); wxString comment = dlg->GetComment(); bool modified = false; m_list->ForSelectedCatalogItemsDo([&modified,comment](CatalogItem& item){ if (item.GetComment() != comment) { item.SetComment(comment); item.SetModified(true); modified = true; } }); if (modified && !IsModified()) { m_modified = true; UpdateTitle(); } // update comment window if (m_sidebar) m_sidebar->RefreshContent(); } }); } void PoeditFrame::OnPurgeDeleted(wxCommandEvent& WXUNUSED(event)) { const wxString title = _("Purge deleted translations"); const wxString main = _("Do you want to remove all translations that are no longer used?"); const wxString details = _("If you continue with purging, all translations marked as deleted will be permanently removed. You will have to translate them again if they are added back in the future."); wxWindowPtr dlg(new wxMessageDialog(this, main, title, wxYES_NO | wxICON_QUESTION)); dlg->SetExtendedMessage(details); dlg->SetYesNoLabels(_("Purge"), _("Keep")); dlg->ShowWindowModalThenDo([this,dlg](int retcode){ if (retcode == wxID_YES) { m_catalog->RemoveDeletedItems(); m_modified = true; UpdateTitle(); UpdateMenu(); } }); } void PoeditFrame::OnSuggestion(wxCommandEvent& event) { auto entry = GetCurrentItem(); if (!entry) return; entry->SetTranslation(event.GetString()); entry->SetFuzzy(false); entry->SetModified(true); // FIXME: instead of this mess, use notifications of catalog change m_modified = true; UpdateTitle(); UpdateStatusBar(); UpdateToTextCtrl(EditingArea::UndoableEdit); m_list->RefreshSelectedItems(); } void PoeditFrame::OnPreTranslateAll(wxCommandEvent&) { PreTranslateWithUI(this, m_list, m_catalog,[=]{ if (!m_modified) { m_modified = true; UpdateTitle(); } RefreshControls(); }); } wxMenu *PoeditFrame::GetPopupMenu(int item) { if (!m_catalog) return NULL; if (item < 0 || item >= (int)m_list->GetItemCount()) return NULL; const wxArrayString& refs = (*m_catalog)[item]->GetReferences(); wxMenu *menu = new wxMenu; menu->Append(XRCID("menu_copy_from_src"), #ifdef __WXMSW__ wxString(_("Copy from source text")) #else wxString(_("Copy from Source Text")) #endif + "\t" + _("Ctrl+") + "B"); menu->Append(XRCID("menu_clear"), #ifdef __WXMSW__ wxString(_("Clear translation")) #else wxString(_("Clear Translation")) #endif + "\t" + _("Ctrl+") + "K"); menu->Append(XRCID("menu_comment"), #ifdef __WXMSW__ wxString(_("Edit comment")) #else wxString(_("Edit Comment")) #endif #ifndef __WXOSX__ + "\t" + _("Ctrl+") + "M" #endif ); if ( !refs.empty() ) { menu->AppendSeparator(); wxMenuItem *it1 = new wxMenuItem(menu, ID_POPUP_DUMMY+0, _("References:")); #ifdef __WXMSW__ it1->SetFont(it1->GetFont().Bold()); menu->Append(it1); #else menu->Append(it1); it1->Enable(false); #endif for (int i = 0; i < (int)refs.GetCount(); i++) menu->Append(ID_POPUP_REFS + i, " " + refs[i]); } return menu; } void PoeditFrame::SetCustomFonts() { if (!m_list) return; wxConfigBase *cfg = wxConfig::Get(); static bool prevUseFontText = false; bool useFontList = (bool)cfg->Read("custom_font_list_use", (long)false); bool useFontText = (bool)cfg->Read("custom_font_text_use", (long)false); if (useFontList) { wxString name = cfg->Read("custom_font_list_name", wxEmptyString); if (!name.empty()) { wxNativeFontInfo fi; fi.FromString(name); wxFont font; font.SetNativeFontInfo(fi); m_list->SetCustomFont(font); } } else { m_list->SetCustomFont(wxNullFont); } if (useFontText) { wxString name = cfg->Read("custom_font_text_name", wxEmptyString); if (!name.empty()) { wxNativeFontInfo fi; fi.FromString(name); wxFont font; font.SetNativeFontInfo(fi); m_editingArea->SetCustomFont(font); prevUseFontText = true; } } else if (prevUseFontText) { wxFont font(wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT)); m_editingArea->SetCustomFont(font); prevUseFontText = false; } } void PoeditFrame::OnSize(wxSizeEvent& event) { wxWindowUpdateLocker lock(this); event.Skip(); // see the comment in PoeditFrame ctor if ( m_setSashPositionsWhenMaximized && IsMaximized() ) { m_setSashPositionsWhenMaximized = false; // update sizes of child windows first: Layout(); // then set sash positions if (m_splitter) m_splitter->SetSashPosition((int)wxConfig::Get()->ReadLong("/splitter", PX(250))); } if (m_sidebarSplitter) { auto split = wxConfigBase::Get()->ReadDouble("/sidebar_splitter", 0.75); m_sidebarSplitter->SetSashPosition(split * event.GetSize().x); } if (m_sidebar && m_splitter) m_sidebar->SetUpperHeight(m_splitter->GetSashPosition()); } void PoeditFrame::RecreatePluralTextCtrls() { if (!m_catalog || !m_editingArea) return; m_editingArea->RecreatePluralTextCtrls(m_catalog); SetCustomFonts(); UpdateTextLanguage(); UpdateToTextCtrl(EditingArea::ItemChanged); } void PoeditFrame::OnListRightClick(wxDataViewEvent& event) { auto item = event.GetItem(); if (!item.IsOk()) { event.Skip(); return; } m_list->SelectAndFocus(item); wxMenu *menu = GetPopupMenu(m_list->ListItemToCatalogIndex(item)); if (menu) { m_list->PopupMenu(menu, event.GetPosition()); delete menu; } else { event.Skip(); } } void PoeditFrame::OnListFocus(wxFocusEvent& event) { if (g_focusToText && m_editingArea) m_editingArea->SetTextFocus(); else event.Skip(); } void PoeditFrame::OnSplitterSashMoving(wxSplitterEvent& event) { auto pos = event.GetSashPosition(); wxConfigBase::Get()->Write("/splitter", (long)pos); if (m_sidebar) m_sidebar->SetUpperHeight(pos); } void PoeditFrame::OnSidebarSplitterSashMoving(wxSplitterEvent& event) { auto split = (double)event.GetSashPosition() / (double)GetSize().x; wxConfigBase::Get()->Write("/sidebar_splitter", split); } void PoeditFrame::AddBookmarksMenu(wxMenu *parent) { wxMenu *menu = new wxMenu(); parent->AppendSeparator(); parent->AppendSubMenu(menu, _("&Bookmarks")); #ifdef __WXOSX__ // on Mac, Alt+something is used during normal typing, so we shouldn't // use it as shortcuts: #define BK_ACCEL_SET "Ctrl+rawctrl+%i" #define BK_ACCEL_GO "Ctrl+Alt+%i" #else // TRANSLATORS: This is the key shortcut used in menus on Windows, some languages call them differently #define BK_ACCEL_SET _("Alt+") + "%i" // TRANSLATORS: This is the key shortcut used in menus on Windows, some languages call them differently #define BK_ACCEL_GO _("Ctrl+") + _("Alt+") + "%i" #endif #ifdef __WXMSW__ #define BK_LABEL_SET _("Set bookmark %i") #define BK_LABEL_GO _("Go to bookmark %i") #else #define BK_LABEL_SET _("Set Bookmark %i") #define BK_LABEL_GO _("Go to Bookmark %i") #endif for (int i = 0; i < 10; i++) { auto label = BK_LABEL_SET + "\t" + BK_ACCEL_SET; menu->Append(ID_BOOKMARK_SET + i, wxString::Format(label, i, i)); } menu->AppendSeparator(); for (int i = 0; i < 10; i++) { auto label = BK_LABEL_GO + "\t" + BK_ACCEL_GO; menu->Append(ID_BOOKMARK_GO + i, wxString::Format(label, i, i)); } } void PoeditFrame::OnGoToBookmark(wxCommandEvent& event) { // Go to bookmark, if there is an item for it Bookmark bk = static_cast(event.GetId() - ID_BOOKMARK_GO); int bkIndex = m_catalog->GetBookmarkIndex(bk); if (bkIndex != -1) { int listIndex = m_list->CatalogIndexToList(bkIndex); if (listIndex >= 0 && listIndex < m_list->GetItemCount()) { m_list->SelectAndFocus(listIndex); } } } void PoeditFrame::OnSetBookmark(wxCommandEvent& event) { // Set bookmark if different from the current value for the item, // else unset it int bkIndex = -1; int selItemIndex = m_list->ListItemToCatalogIndex(m_list->GetCurrentItem()); if (selItemIndex == -1) return; Bookmark bk = static_cast(event.GetId() - ID_BOOKMARK_SET); if (m_catalog->GetBookmarkIndex(bk) == selItemIndex) { m_catalog->SetBookmark(selItemIndex, NO_BOOKMARK); } else { bkIndex = m_catalog->SetBookmark(selItemIndex, bk); } // Refresh items m_list->RefreshSelectedItems(); if (bkIndex != -1) m_list->RefreshItem(m_list->CatalogIndexToListItem(bkIndex)); // Catalog has been modified m_modified = true; UpdateTitle(); UpdateMenu(); } void PoeditFrame::OnSortByFileOrder(wxCommandEvent&) { m_list->sortOrder().by = SortOrder::By_FileOrder; m_list->Sort(); } void PoeditFrame::OnSortBySource(wxCommandEvent&) { m_list->sortOrder().by = SortOrder::By_Source; m_list->Sort(); } void PoeditFrame::OnSortByTranslation(wxCommandEvent&) { m_list->sortOrder().by = SortOrder::By_Translation; m_list->Sort(); } void PoeditFrame::OnSortGroupByContext(wxCommandEvent& event) { m_list->sortOrder().groupByContext = event.IsChecked(); m_list->Sort(); } void PoeditFrame::OnSortUntranslatedFirst(wxCommandEvent& event) { m_list->sortOrder().untransFirst = event.IsChecked(); m_list->Sort(); } void PoeditFrame::OnSortErrorsFirst(wxCommandEvent& event) { m_list->sortOrder().errorsFirst = event.IsChecked(); m_list->Sort(); } void PoeditFrame::OnShowHideSidebar(wxCommandEvent&) { bool toShow = !m_sidebarSplitter->IsSplit(); if (toShow) { auto split = GetSize().x * wxConfigBase::Get()->ReadDouble("/sidebar_splitter", 0.75); m_sidebarSplitter->SplitVertically(m_splitter, m_sidebar, split); m_sidebar->RefreshContent(); } else { m_sidebarSplitter->Unsplit(m_sidebar); } wxConfigBase::Get()->Write("/sidebar_shown", toShow); } void PoeditFrame::OnUpdateShowHideSidebar(wxUpdateUIEvent& event) { event.Enable(m_sidebar != nullptr); if (!m_sidebar) return; bool shown = m_sidebarSplitter->IsSplit(); #ifdef __WXOSX__ auto shortcut = "\tCtrl+Alt+S"; if (shown) event.SetText(_("Hide Sidebar") + shortcut); else event.SetText(_("Show Sidebar") + shortcut); #else event.Check(shown); #endif } void PoeditFrame::OnShowHideStatusbar(wxCommandEvent&) { auto bar = GetStatusBar(); bool toShow = (bar == nullptr); if (toShow) { CreateStatusBar(1, wxST_SIZEGRIP); UpdateStatusBar(); } else { SetStatusBar(nullptr); bar->Destroy(); } wxConfigBase::Get()->Write("/statusbar_shown", toShow); } void PoeditFrame::OnUpdateShowHideStatusbar(wxUpdateUIEvent& event) { bool shown = GetStatusBar() != nullptr; #ifdef __WXOSX__ auto shortcut = "\tCtrl+/"; if (shown) event.SetText(_("Hide Status Bar") + shortcut); else event.SetText(_("Show Status Bar") + shortcut); #else event.Check(shown); #endif } void PoeditFrame::OnSelectionUpdate(wxUpdateUIEvent& event) { event.Enable(m_catalog && m_list && m_list->HasSelection()); } void PoeditFrame::OnSelectionUpdateEditable(wxUpdateUIEvent& event) { event.Enable(m_catalog && m_list && m_list->HasSelection() && m_catalog->HasCapability(Catalog::Cap::Translations)); } void PoeditFrame::OnSingleSelectionUpdate(wxUpdateUIEvent& event) { event.Enable(m_catalog && m_list && m_list->HasSingleSelection()); } void PoeditFrame::OnSingleSelectionWithPluralsUpdate(wxUpdateUIEvent& event) { // Enable only if a single item with plural forms is selected event.Enable(m_catalog && m_list && m_list->HasSingleSelection() && m_editingArea->IsShowingPlurals()); } void PoeditFrame::OnHasCatalogUpdate(wxUpdateUIEvent& event) { event.Enable(m_catalog != nullptr); } void PoeditFrame::OnIsEditableUpdate(wxUpdateUIEvent& event) { event.Enable(m_catalog && !m_catalog->empty() && m_catalog->HasCapability(Catalog::Cap::Translations)); } void PoeditFrame::OnEditCommentUpdate(wxUpdateUIEvent& event) { event.Enable(m_catalog && m_list && m_list->HasSelection() && m_catalog->HasCapability(Catalog::Cap::UserComments)); } #if defined(__WXMSW__) || defined(__WXGTK__) // Emulate something like macOS's first responder: pass text editing commands to // the focused text control. void PoeditFrame::OnTextEditingCommand(wxCommandEvent& event) { #ifdef __WXGTK__ wxEventBlocker block(this, wxEVT_MENU); #endif wxWindow *w = wxWindow::FindFocus(); if (!w || w == this || !w->ProcessWindowEventLocally(event)) event.Skip(); } void PoeditFrame::OnTextEditingCommandUpdate(wxUpdateUIEvent& event) { #ifdef __WXGTK__ wxEventBlocker block(this, wxEVT_UPDATE_UI); #endif wxWindow *w = wxWindow::FindFocus(); if (!w || w == this || !w->ProcessWindowEventLocally(event)) event.Enable(false); } #endif // __WXMSW__ || __WXGTK__ // ------------------------------------------------------------------ // catalog navigation // ------------------------------------------------------------------ namespace { bool Pred_AnyItem(const CatalogItemPtr&) { return true; } bool Pred_UnfinishedItem(const CatalogItemPtr& item) { return !item->IsTranslated() || item->IsFuzzy() || item->HasIssue(); } } // anonymous namespace int PoeditFrame::NavigateGetNextItem(const int start, int step, PoeditFrame::NavigatePredicate predicate, bool wrap, CatalogItemPtr *out_item) { const int count = m_list ? m_list->GetItemCount() : 0; if ( !count ) return -1; int i = start; for ( ;; ) { i += step; if ( i < 0 ) { if ( wrap ) i += count; else return -1; // nowhere to go } else if ( i >= count ) { if ( wrap ) i -= count; else return -1; // nowhere to go } if ( i == start ) return -1; // nowhere to go auto item = m_list->ListIndexToCatalogItem(i); if ( predicate(item) ) { if (out_item) *out_item = item; return i; } } } void PoeditFrame::Navigate(int step, NavigatePredicate predicate, bool wrap) { if (!m_list) return; auto i = NavigateGetNextItem(m_list->GetCurrentItemListIndex(), step, predicate, wrap, nullptr); if (i == -1) return; m_list->SelectAndFocus(i); } void PoeditFrame::OnPrev(wxCommandEvent&) { Navigate(-1, Pred_AnyItem, /*wrap=*/false); } void PoeditFrame::OnNext(wxCommandEvent&) { Navigate(+1, Pred_AnyItem, /*wrap=*/false); } void PoeditFrame::OnPrevUnfinished(wxCommandEvent&) { Navigate(-1, Pred_UnfinishedItem, /*wrap=*/false); } void PoeditFrame::OnNextUnfinished(wxCommandEvent&) { Navigate(+1, Pred_UnfinishedItem, /*wrap=*/false); } void PoeditFrame::OnDoneAndNext(wxCommandEvent&) { auto item = GetCurrentItem(); if (!item) return; // If the user is "done" with an item, it should be in its final approved state // (unless they _just_ marked it as fuzzy now): if (item->IsFuzzy() && !m_editingArea->ShouldNotAutoclearFuzzyStatus()) { item->SetFuzzy(false); item->SetPreTranslated(false); item->SetModified(true); if (!IsModified()) { m_modified = true; UpdateTitle(); UpdateStatusBar(); } // do additional processing of finished translations, such as adding it to the TM: m_pendingHumanEditedItem = item; } // like "next unfinished", but wraps Navigate(+1, Pred_UnfinishedItem, /*wrap=*/true); } void PoeditFrame::OnPrevPage(wxCommandEvent&) { if (!m_list) return; auto pos = std::max(m_list->GetCurrentItemListIndex()-10, 0); m_list->SelectAndFocus(pos); } void PoeditFrame::OnNextPage(wxCommandEvent&) { if (!m_list) return; auto pos = std::min(m_list->GetCurrentItemListIndex()+10, (int)m_list->GetItemCount()-1); m_list->SelectAndFocus(pos); } void PoeditFrame::OnPrevPluralForm(wxCommandEvent&) { m_editingArea->ChangeFocusedPluralTab(-1); } void PoeditFrame::OnNextPluralForm(wxCommandEvent&) { m_editingArea->ChangeFocusedPluralTab(+1); } poedit-2.0.6/src/languagectrl.h0000664000372000037200000000501113230131554013326 00000000000000/* * This file is part of Poedit (https://poedit.net) * * Copyright (C) 2013-2018 Vaclav Slavik * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * DEALINGS IN THE SOFTWARE. * */ #ifndef Poedit_languagectrl_h #define Poedit_languagectrl_h #include #include #include "language.h" /// Control for editing languages nicely class LanguageCtrl : public wxComboBox { public: LanguageCtrl(); LanguageCtrl(wxWindow *parent, wxWindowID winid = wxID_ANY, Language lang = Language()); void SetLang(const Language& lang); Language GetLang() const; bool IsValid() const { return GetLang().IsValid(); } #ifdef __WXOSX__ int FindString(const wxString& s, bool bCase) const override; wxString GetString(unsigned int n) const override; #endif #ifdef __WXMSW__ wxSize DoGetBestSize() const; #endif private: void Init(Language lang); bool m_inited; #ifdef __WXOSX__ struct impl; std::unique_ptr m_impl; #endif DECLARE_DYNAMIC_CLASS(LanguageCtrl) }; /// A dialog for choosing language for a (new) catalog. class LanguageDialog : public wxDialog { public: LanguageDialog(wxWindow *parent); void SetLang(const Language& lang); Language GetLang() const { return m_language->GetLang(); } virtual bool Validate(); virtual void EndModal(int retval); static Language GetLastChosen(); static void SetLastChosen(Language lang); private: LanguageCtrl *m_language; int m_validatedLang; }; #endif // Poedit_languagectrl_h poedit-2.0.6/src/tm/0000775000372000037200000000000013230132101011175 500000000000000poedit-2.0.6/src/tm/transmem.cpp0000664000372000037200000005250013230131554013464 00000000000000/* * This file is part of Poedit (https://poedit.net) * * Copyright (C) 2013-2018 Vaclav Slavik * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * DEALINGS IN THE SOFTWARE. * */ #include "transmem.h" #include "catalog.h" #include "errors.h" #include "utility.h" #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace Lucene; namespace { #define CATCH_AND_RETHROW_EXCEPTION \ catch (LuceneException& e) \ { \ throw Exception(wxString::Format("%s (%d)", \ e.getError(), (int)e.getType())); \ } \ catch (std::exception& e) \ { \ throw Exception(e.what()); \ } // Manages IndexReader and Searcher instances in multi-threaded environment. // Curiously, Lucene uses shared_ptr-based refcounting *and* explicit one as // well, with a crucial part not well protected. // // See https://issues.apache.org/jira/browse/LUCENE-3567 for the exact issue // encountered by Poedit's use as well. For an explanation of the manager // class, see // http://blog.mikemccandless.com/2011/09/lucenes-searchermanager-simplifies.html // http://blog.mikemccandless.com/2011/11/near-real-time-readers-with-lucenes.html class SearcherManager { public: SearcherManager(IndexWriterPtr writer) { m_reader = writer->getReader(); m_searcher = newLucene(m_reader); } ~SearcherManager() { m_searcher.reset(); m_reader->decRef(); } // Safe, properly ref-counting (in Lucene way, not just shared_ptr) holder. template class SafeRef { public: typedef boost::shared_ptr TPtr; SafeRef(SafeRef&& other) : m_mng(other.m_mng) { std::swap(m_ptr, other.m_ptr); } ~SafeRef() { if (m_ptr) m_mng.DecRef(m_ptr); } TPtr ptr() { return m_ptr; } T* operator->() const { return m_ptr.get(); } SafeRef(const SafeRef&) = delete; SafeRef& operator=(const SafeRef&) = delete; private: friend class SearcherManager; explicit SafeRef(SearcherManager& m, TPtr ptr) : m_mng(m), m_ptr(ptr) {} SearcherManager& m_mng; boost::shared_ptr m_ptr; }; SafeRef Reader() { std::lock_guard guard(m_mutex); ReloadReaderIfNeeded(); m_reader->incRef(); return SafeRef(*this, m_reader); } SafeRef Searcher() { std::lock_guard guard(m_mutex); ReloadReaderIfNeeded(); m_searcher->getIndexReader()->incRef(); return SafeRef(*this, m_searcher); } private: void ReloadReaderIfNeeded() { // contract: m_mutex is locked when this function is called if (m_reader->isCurrent()) return; // nothing to do auto newReader = m_reader->reopen(); auto newSearcher = newLucene(newReader); m_reader->decRef(); m_reader = newReader; m_searcher = newSearcher; } void DecRef(IndexReaderPtr& r) { std::lock_guard guard(m_mutex); r->decRef(); } void DecRef(IndexSearcherPtr& s) { std::lock_guard guard(m_mutex); s->getIndexReader()->decRef(); } IndexReaderPtr m_reader; IndexSearcherPtr m_searcher; std::mutex m_mutex; }; } // anonymous namespace // ---------------------------------------------------------------- // TranslationMemoryImpl // ---------------------------------------------------------------- class TranslationMemoryImpl { public: #ifdef __WXMSW__ typedef SimpleFSDirectory DirectoryType; #else typedef MMapDirectory DirectoryType; #endif TranslationMemoryImpl() { Init(); } ~TranslationMemoryImpl() { m_mng.reset(); m_writer->close(); } SuggestionsList Search(const Language& srclang, const Language& lang, const std::wstring& source); std::shared_ptr GetWriter() { return m_writerAPI; } void GetStats(long& numDocs, long& fileSize); private: void Init(); static std::wstring GetDatabaseDir(); private: AnalyzerPtr m_analyzer; IndexWriterPtr m_writer; std::shared_ptr m_mng; std::shared_ptr m_writerAPI; }; std::wstring TranslationMemoryImpl::GetDatabaseDir() { wxString data; #if defined(__UNIX__) && !defined(__WXOSX__) if ( !wxGetEnv("XDG_DATA_HOME", &data) ) data = wxGetHomeDir() + "/.local/share"; data += "/poedit"; #else data = wxStandardPaths::Get().GetUserDataDir(); #endif // ensure the parent directory exists: wxFileName::Mkdir(data, wxS_DIR_DEFAULT, wxPATH_MKDIR_FULL); data += wxFILE_SEP_PATH; data += "TranslationMemory"; return data.ToStdWstring(); } namespace { static const int DEFAULT_MAXHITS = 10; // Normalized score that must be met for a suggestion to be shown. This is // an empirical guess of what constitues good matches. static const double QUALITY_THRESHOLD = 0.6; // Maximum allowed difference in phrase length, in #terms. static const int MAX_ALLOWED_LENGTH_DIFFERENCE = 2; bool ContainsResult(const SuggestionsList& all, const std::wstring& r) { auto found = std::find_if(all.begin(), all.end(), [&r](const Suggestion& x){ return x.text == r; }); return found != all.end(); } // Return translation (or source) text field. // // Older versions of Poedit used to store C-like escaped text (e.g. "\n" instead // of newline), but starting with 1.8, the "true" form of the text is stored. // To preserve compatibility with older data, a version field is stored with // TM documents and this function decides whether to decode escapes or not. // // TODO: remove this a few years down the road. std::wstring get_text_field(DocumentPtr doc, const std::wstring& field) { auto version = doc->get(L"v"); auto value = doc->get(field); if (version.empty()) // pre-1.8 data return UnescapeCString(value); else return value; } template void PerformSearchWithBlock(IndexSearcherPtr searcher, QueryPtr srclang, QueryPtr lang, const std::wstring& exactSourceText, QueryPtr query, double scoreThreshold, double scoreScaling, T callback) { auto fullQuery = newLucene(); fullQuery->add(srclang, BooleanClause::MUST); fullQuery->add(lang, BooleanClause::MUST); fullQuery->add(query, BooleanClause::MUST); auto hits = searcher->search(fullQuery, DEFAULT_MAXHITS); for (int i = 0; i < hits->scoreDocs.size(); i++) { const auto& scoreDoc = hits->scoreDocs[i]; auto score = scoreDoc->score / hits->maxScore; if (score < scoreThreshold) continue; auto doc = searcher->doc(scoreDoc->doc); auto src = get_text_field(doc, L"source"); if (src == exactSourceText) { score = 1.0; } else { if (score == 1.0) { score = 0.95; // can't score non-exact thing as 100%: // Check against too small queries having perfect hit in a large stored text. // Do this by penalizing too large difference in lengths of the source strings. double len1 = exactSourceText.size(); double len2 = src.size(); score *= 1.0 - 0.4 * (std::abs(len1 - len2) / std::max(len1, len2)); } score *= scoreScaling; } callback(doc, score); } } void PerformSearch(IndexSearcherPtr searcher, QueryPtr srclang, QueryPtr lang, const std::wstring& exactSourceText, QueryPtr query, SuggestionsList& results, double scoreThreshold, double scoreScaling) { PerformSearchWithBlock ( searcher, srclang, lang, exactSourceText, query, scoreThreshold, scoreScaling, [&results](DocumentPtr doc, double score) { auto t = get_text_field(doc, L"trans"); if (!ContainsResult(results, t)) { time_t ts = DateField::stringToTime(doc->get(L"created")); Suggestion r {t, score, ts}; results.push_back(r); } } ); std::stable_sort(results.begin(), results.end()); } } // anonymous namespace SuggestionsList TranslationMemoryImpl::Search(const Language& srclang, const Language& lang, const std::wstring& source) { try { // TODO: query by srclang too! auto srclangQ = newLucene(newLucene(L"srclang", srclang.WCode())); const Lucene::String fullLang = lang.WCode(); const Lucene::String shortLang = StringUtils::toUnicode(lang.Lang()); QueryPtr langPrimary = newLucene(newLucene(L"lang", fullLang)); QueryPtr langSecondary; if (fullLang == shortLang) { // for e.g. 'cs', search also 'cs_*' (e.g. 'cs_CZ') langSecondary = newLucene(newLucene(L"lang", shortLang + L"_")); } else { // search short variants of the language too langSecondary = newLucene(newLucene(L"lang", shortLang)); } langSecondary->setBoost(0.85); auto langQ = newLucene(); langQ->add(langPrimary, BooleanClause::SHOULD); langQ->add(langSecondary, BooleanClause::SHOULD); SuggestionsList results; const Lucene::String sourceField(L"source"); auto boolQ = newLucene(); auto phraseQ = newLucene(); auto stream = m_analyzer->tokenStream(sourceField, newLucene(source)); int sourceTokensCount = 0; int sourceTokenPosition = -1; while (stream->incrementToken()) { sourceTokensCount++; auto word = stream->getAttribute()->term(); sourceTokenPosition += stream->getAttribute()->getPositionIncrement(); auto term = newLucene(sourceField, word); boolQ->add(newLucene(term), BooleanClause::SHOULD); phraseQ->add(term, sourceTokenPosition); } auto searcher = m_mng->Searcher(); // Try exact phrase first: PerformSearch(searcher.ptr(), srclangQ, langQ, source, phraseQ, results, QUALITY_THRESHOLD, /*scoreScaling=*/1.0); if (!results.empty()) return results; // Then, if no matches were found, permit being a bit sloppy: phraseQ->setSlop(1); PerformSearch(searcher.ptr(), srclangQ, langQ, source, phraseQ, results, QUALITY_THRESHOLD, /*scoreScaling=*/0.9); if (!results.empty()) return results; // As the last resort, try terms search. This will almost certainly // produce low-quality results, but hopefully better than nothing. boolQ->setMinimumNumberShouldMatch(std::max(1, boolQ->getClauses().size() - MAX_ALLOWED_LENGTH_DIFFERENCE)); PerformSearchWithBlock ( searcher.ptr(), srclangQ, langQ, source, boolQ, QUALITY_THRESHOLD, /*scoreScaling=*/0.8, [=,&results](DocumentPtr doc, double score) { auto s = get_text_field(doc, sourceField); auto t = get_text_field(doc, L"trans"); auto stream2 = m_analyzer->tokenStream(sourceField, newLucene(s)); int tokensCount2 = 0; while (stream2->incrementToken()) tokensCount2++; if (std::abs(tokensCount2 - sourceTokensCount) <= MAX_ALLOWED_LENGTH_DIFFERENCE && !ContainsResult(results, t)) { time_t ts = DateField::stringToTime(doc->get(L"created")); Suggestion r {t, score, ts}; results.push_back(r); } } ); std::stable_sort(results.begin(), results.end()); return results; } catch (LuceneException&) { return SuggestionsList(); } } void TranslationMemoryImpl::GetStats(long& numDocs, long& fileSize) { try { auto reader = m_mng->Reader(); numDocs = reader->numDocs(); fileSize = wxDir::GetTotalSize(GetDatabaseDir()).GetValue(); } CATCH_AND_RETHROW_EXCEPTION } // ---------------------------------------------------------------- // TranslationMemoryWriterImpl // ---------------------------------------------------------------- class TranslationMemoryWriterImpl : public TranslationMemory::Writer { public: TranslationMemoryWriterImpl(IndexWriterPtr writer) : m_writer(writer) {} ~TranslationMemoryWriterImpl() {} void Commit() override { try { m_writer->commit(); } CATCH_AND_RETHROW_EXCEPTION } void Rollback() override { try { m_writer->rollback(); } CATCH_AND_RETHROW_EXCEPTION } void Insert(const Language& srclang, const Language& lang, const std::wstring& source, const std::wstring& trans) override { if (!lang.IsValid() || !srclang.IsValid() || lang == srclang) return; // Compute unique ID for the translation: static const boost::uuids::uuid s_namespace = boost::uuids::string_generator()("6e3f73c5-333f-4171-9d43-954c372a8a02"); boost::uuids::name_generator gen(s_namespace); std::wstring itemId(srclang.WCode()); itemId += lang.WCode(); itemId += source; itemId += trans; const std::wstring itemUUID = boost::uuids::to_wstring(gen(itemId)); try { // Then add a new document: auto doc = newLucene(); doc->add(newLucene(L"uuid", itemUUID, Field::STORE_YES, Field::INDEX_NOT_ANALYZED)); doc->add(newLucene(L"v", L"1", Field::STORE_YES, Field::INDEX_NO)); doc->add(newLucene(L"created", DateField::timeToString(time(NULL)), Field::STORE_YES, Field::INDEX_NO)); doc->add(newLucene(L"srclang", srclang.WCode(), Field::STORE_YES, Field::INDEX_NOT_ANALYZED)); doc->add(newLucene(L"lang", lang.WCode(), Field::STORE_YES, Field::INDEX_NOT_ANALYZED)); doc->add(newLucene(L"source", source, Field::STORE_YES, Field::INDEX_ANALYZED)); doc->add(newLucene(L"trans", trans, Field::STORE_YES, Field::INDEX_NOT_ANALYZED)); m_writer->updateDocument(newLucene(L"uuid", itemUUID), doc); } CATCH_AND_RETHROW_EXCEPTION } void Insert(const Language& srclang, const Language& lang, const CatalogItemPtr& item) override { if (!lang.IsValid() || !srclang.IsValid()) return; // ignore translations with errors in them if (item->HasError()) return; // can't handle plurals yet (TODO?) if (item->HasPlural()) return; // ignore untranslated or unfinished translations if (item->IsFuzzy() || !item->IsTranslated()) return; Insert(srclang, lang, item->GetString().ToStdWstring(), item->GetTranslation().ToStdWstring()); } void Insert(const CatalogPtr& cat) override { auto srclang = cat->GetSourceLanguage(); auto lang = cat->GetLanguage(); if (!lang.IsValid() || !srclang.IsValid()) return; for (auto& item: cat->items()) { // Note that dt.IsModified() is intentionally not checked - we // want to save old entries in the TM too, so that we harvest as // much useful translations as we can. Insert(srclang, lang, item); } } void DeleteAll() override { try { m_writer->deleteAll(); } CATCH_AND_RETHROW_EXCEPTION } private: IndexWriterPtr m_writer; }; void TranslationMemoryImpl::Init() { try { auto dir = newLucene(GetDatabaseDir()); m_analyzer = newLucene(LuceneVersion::LUCENE_CURRENT); m_writer = newLucene(dir, m_analyzer, IndexWriter::MaxFieldLengthLIMITED); m_writer->setMergeScheduler(newLucene()); // get the associated realtime reader & searcher: m_mng.reset(new SearcherManager(m_writer)); m_writerAPI = std::make_shared(m_writer); } CATCH_AND_RETHROW_EXCEPTION } // ---------------------------------------------------------------- // Singleton management // ---------------------------------------------------------------- static std::once_flag initializationFlag; TranslationMemory *TranslationMemory::ms_instance = nullptr; TranslationMemory& TranslationMemory::Get() { std::call_once(initializationFlag, []() { ms_instance = new TranslationMemory; }); return *ms_instance; } void TranslationMemory::CleanUp() { if (ms_instance) { delete ms_instance; ms_instance = nullptr; } } TranslationMemory::TranslationMemory() : m_impl(nullptr) { try { m_impl = new TranslationMemoryImpl; } catch (...) { m_error = std::current_exception(); } } TranslationMemory::~TranslationMemory() { delete m_impl; } // ---------------------------------------------------------------- // public API // ---------------------------------------------------------------- SuggestionsList TranslationMemory::Search(const Language& srclang, const Language& lang, const std::wstring& source) { if (!m_impl) std::rethrow_exception(m_error); return m_impl->Search(srclang, lang, source); } dispatch::future TranslationMemory::SuggestTranslation(const Language& srclang, const Language& lang, const std::wstring& source) { try { return dispatch::make_ready_future(Search(srclang, lang, source)); } catch (...) { return dispatch::make_exceptional_future_from_current(); } } std::shared_ptr TranslationMemory::GetWriter() { if (!m_impl) std::rethrow_exception(m_error); return m_impl->GetWriter(); } void TranslationMemory::GetStats(long& numDocs, long& fileSize) { if (!m_impl) std::rethrow_exception(m_error); m_impl->GetStats(numDocs, fileSize); } poedit-2.0.6/src/tm/suggestions.cpp0000664000372000037200000000526413230131554014215 00000000000000/* * This file is part of Poedit (https://poedit.net) * * Copyright (C) 2014-2018 Vaclav Slavik * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * DEALINGS IN THE SOFTWARE. * */ #include "suggestions.h" #include "concurrency.h" class SuggestionsProviderImpl { public: SuggestionsProviderImpl() {} dispatch::future SuggestTranslation(SuggestionsBackend& backend, const Language& srclang, const Language& lang, const std::wstring& source) { auto bck = &backend; return dispatch::async([=]{ // don't bother asking the backend if the language or query is invalid: if (!srclang.IsValid() || !lang.IsValid() || srclang == lang || source.empty()) { return dispatch::make_ready_future(SuggestionsList()); } // query the backend: return bck->SuggestTranslation(srclang, lang, source); }); } }; SuggestionsProvider::SuggestionsProvider() : m_impl(new SuggestionsProviderImpl) { } SuggestionsProvider::~SuggestionsProvider() { } dispatch::future SuggestionsProvider::SuggestTranslation(SuggestionsBackend& backend, const Language& srclang, const Language& lang, const std::wstring& source) { return m_impl->SuggestTranslation(backend, srclang, lang, source); } poedit-2.0.6/src/tm/suggestions.h0000664000372000037200000001256013230131554013657 00000000000000/* * This file is part of Poedit (https://poedit.net) * * Copyright (C) 2014-2018 Vaclav Slavik * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * DEALINGS IN THE SOFTWARE. * */ #ifndef Poedit_suggestions_h #define Poedit_suggestions_h #include #include #include #include #include #include "concurrency.h" #include "language.h" class SuggestionsBackend; class SuggestionsProviderImpl; /// A single translation suggestion struct Suggestion { /// Possible types of suggestion sources enum class Source { LocalTM }; /// Ctor Suggestion() : score(0.), timestamp(0), source(Source::LocalTM) {} Suggestion(const std::wstring& text_, double score_, time_t timestamp_ = 0, Source source_ = Source::LocalTM) : text(text_), score(score_), timestamp(timestamp_), source(source_) {} /// Text of the suggested translation std::wstring text; /// Quality score (1.0 = exact match, 0 = no score assigned) double score; /// Time when the suggestion was stored time_t timestamp; /// Source of the suggestion Source source; bool HasScore() const { return score != 0.0; } bool IsExactMatch() const { return score == 1.0; } }; inline bool operator<(const Suggestion& a, const Suggestion& b) { if (std::fabs(a.score - b.score) <= std::numeric_limits::epsilon()) return a.timestamp > b.timestamp; else return a.score > b.score; } typedef std::vector SuggestionsList; /** Provides suggestions for translations. Under the hood, the translation memory is used, but the API is more generic and allows for other implementations. This is a relatively lightweight object and shouldn't be shared between users (e.g. opened documents/windows) -- create one instance per user. */ class SuggestionsProvider { public: /// Initializes the provider. SuggestionsProvider(); ~SuggestionsProvider(); /** Query for suggested translations. This function asynchronously calls either @a onSuccess or @a onError callback, exactly once, from a worked thread. If no suggestions are found, @a onSuccess is called with an empty list as its argument. @param backend Suggestions backend to use, e.g. TranslationMemory::Get(). @param srclang Language of the source text. @param lang Language of the desired translation. @param source Source text. */ dispatch::future SuggestTranslation(SuggestionsBackend& backend, const Language& srclang, const Language& lang, const std::wstring& source); private: std::unique_ptr m_impl; }; /** Implements a source of suggestions for SuggestionsProvider. This class is abstraction that doesn't depend on a specific source (such as the translation memory DB). @note Implementations must be thread-safe! */ class SuggestionsBackend { public: virtual ~SuggestionsBackend() {} /** Query for suggested translations. This function asynchronously calls either @a onSuccess or @a onError callback, exactly once. @note No guarantees are made about the thread the callbacks are called from; they may be called immediately before SuggestTranslation() returns (even on the same thread) or at a later time. This is a difference from SuggestionsProvider, which guarantees that the callback is called asynchronously from another thread. If no suggestions are found, @a onSuccess is called with an empty list as its argument. @param srclang Language of the source text. @param lang Language of the desired translation. @param source Source text. */ virtual dispatch::future SuggestTranslation(const Language& srclang, const Language& lang, const std::wstring& source) = 0; }; #endif // Poedit_suggestions_h poedit-2.0.6/src/tm/transmem.h0000664000372000037200000001147713230131554013141 00000000000000/* * This file is part of Poedit (https://poedit.net) * * Copyright (C) 2013-2018 Vaclav Slavik * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * DEALINGS IN THE SOFTWARE. * */ #ifndef _TRANSMEM_H_ #define _TRANSMEM_H_ #include #include #include #include #include "catalog.h" #include "suggestions.h" class TranslationMemoryImpl; /** Lucene-based translation memory. All methods may throw Exception. */ class TranslationMemory : public SuggestionsBackend { public: /// Return singleton instance of the TM. static TranslationMemory& Get(); /// Destroys the singleton, must be called (omly) on app shutdown. static void CleanUp(); /** Search translation memory for similar strings. @param srclang Language of the source text. @param lang Language of the desired translation. @param source Source text. @return List of hits that were found, possibly empty. */ SuggestionsList Search(const Language& srclang, const Language& lang, const std::wstring& source); /// SuggestionsBackend API implementation: dispatch::future SuggestTranslation(const Language& srclang, const Language& lang, const std::wstring& source) override; /** Performs updates to the translation memory. Call Commit() to commit changes since the last commit to disk. Call Rollback() to undo all changes since the last commit. Committing shouldn't be done too often, as it is expensive. The writer is shared and can be used by multiple threads. Note that closing the writer on shutdown, if it has uncommitted changes, will result in them being committed. You must to explicitly Rollback() them if you don't want that behavior. All methods may throw Exception. */ class Writer { public: virtual ~Writer() {} /** Insert translation into the TM. @param srclang Source text language. @param lang Translation language. @param source Source text. @param trans Translation text. */ virtual void Insert(const Language& srclang, const Language& lang, const std::wstring& source, const std::wstring& trans) = 0; /** Inserts a single catalog item. @note Not everything is included: fuzzy or untranslated entries are skipped. */ virtual void Insert(const Language& srclang, const Language& lang, const CatalogItemPtr& item) = 0; /** Inserts entire content of the catalog. @note Not everything is included: fuzzy or untranslated entries are omitted. If the catalog doesn't have language header, it is not included either. */ virtual void Insert(const CatalogPtr& cat) = 0; /// Deletes everything from the TM. virtual void DeleteAll() = 0; /// Commits changes written so far. virtual void Commit() = 0; /// Rolls back changes written so far. virtual void Rollback() = 0; }; /// Returns the shared writer instance std::shared_ptr GetWriter(); /// Returns statistics about the TM void GetStats(long& numDocs, long& fileSize); private: TranslationMemory(); ~TranslationMemory(); TranslationMemoryImpl *m_impl; std::exception_ptr m_error; static TranslationMemory *ms_instance; }; #endif // _TRANSMEM_H_ poedit-2.0.6/src/edlistctrl.cpp0000664000372000037200000005167613230131554013404 00000000000000/* * This file is part of Poedit (https://poedit.net) * * Copyright (C) 1999-2018 Vaclav Slavik * Copyright (C) 2005 Olivier Sannier * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * DEALINGS IN THE SOFTWARE. * */ #include "edlistctrl.h" #include "hidpi.h" #include "language.h" #include "cat_sorting.h" #include "colorscheme.h" #include "unicode_helpers.h" #include "utility.h" #include #include #include #include #include #include #ifdef __WXMSW__ #include #include #include #include #endif #include namespace { class SelectionPreserver { public: SelectionPreserver(PoeditListCtrl *list_) : list(list_), focus(-1) { if (!list) return; selection = list->GetSelectedCatalogItemIndexes(); focus = list->ListItemToCatalogIndex(list->GetCurrentItem()); } ~SelectionPreserver() { if (!list) return; if (!selection.empty()) list->SetSelectedCatalogItemIndexes(selection); if (focus != -1) { auto item = list->CatalogIndexToListItem(focus); list->EnsureVisible(item); list->SetCurrentItem(item); } } private: PoeditListCtrl *list; std::vector selection; int focus; }; #if wxCHECK_VERSION(3,1,1) class DataViewMarkupRenderer : public wxDataViewTextRenderer { public: DataViewMarkupRenderer(const wxColour& bgHighlight) { EnableMarkup(); SetValueAdjuster(new Adjuster(bgHighlight)); } private: class Adjuster : public wxDataViewValueAdjuster { public: Adjuster(const wxColour& bgHighlight) { m_bgHighlight = bgHighlight.GetAsString(wxC2S_HTML_SYNTAX); } wxVariant MakeHighlighted(const wxVariant& value) const override { auto s = value.GetString(); bool changed = false; auto pos = s.find(" bgcolor=\""); if (pos != wxString::npos) { pos += 10; auto pos2 = s.find('"', pos); s.replace(pos, pos2 - pos, m_bgHighlight); changed = true; } #ifdef __WXGTK__ pos = s.find(" color=\""); if (pos != wxString::npos) { auto pos2 = s.find('"', pos + 8); s.erase(pos, pos2 - pos + 1); changed = true; } #endif return changed ? wxVariant(s) : value; } private: wxString m_bgHighlight; }; }; #else class DataViewMarkupRenderer : public wxDataViewTextRenderer { public: DataViewMarkupRenderer(const wxColour&) {} }; #endif #if wxCHECK_VERSION(3,1,1) && !defined(__WXMSW__) class DataViewIconsAdjuster : public wxDataViewValueAdjuster { public: DataViewIconsAdjuster() { m_comment = wxArtProvider::GetBitmap("poedit-status-comment"); m_commentSel = wxArtProvider::GetBitmap("poedit-status-comment-selected"); m_bookmark = wxArtProvider::GetBitmap("poedit-status-bookmark"); m_bookmarkSel = wxArtProvider::GetBitmap("poedit-status-bookmark-selected"); } wxVariant MakeHighlighted(const wxVariant& value) const override { if (value.IsNull()) return value; wxBitmap bitmap; bitmap << value; if (bitmap.IsSameAs(m_comment)) { wxVariant vout; vout << m_commentSel; return vout; } if (bitmap.IsSameAs(m_bookmark)) { wxVariant vout; vout << m_bookmarkSel; return vout; } return value; } private: wxBitmap m_comment, m_commentSel; wxBitmap m_bookmark, m_bookmarkSel; }; #endif // wxCHECK_VERSION(3,1,1) && !defined(__WXMSW__) } // anonymous namespace PoeditListCtrl::Model::Model(TextDirection appTextDir, wxVisualAttributes visual) : m_frozen(false), m_sourceTextDir(TextDirection::LTR), m_transTextDir(TextDirection::LTR), m_appTextDir(appTextDir) { sortOrder = SortOrder::Default(); // configure items colors & fonts: m_clrID = ColorScheme::Get(Color::ItemID, visual); m_clrFuzzy = ColorScheme::Get(Color::ItemFuzzy, visual); m_clrInvalid = ColorScheme::Get(Color::ItemError, visual); m_clrContextFg = ColorScheme::Get(Color::ItemContextFg, visual).GetAsString(wxC2S_HTML_SYNTAX); m_clrContextBg = ColorScheme::Get(Color::ItemContextBg, visual).GetAsString(wxC2S_HTML_SYNTAX); m_iconComment = wxArtProvider::GetBitmap("poedit-status-comment"); m_iconBookmark = wxArtProvider::GetBitmap("poedit-status-bookmark"); m_iconError = wxArtProvider::GetBitmap("poedit-status-error"); m_iconWarning = wxArtProvider::GetBitmap("poedit-status-warning"); #ifdef HAS_BROKEN_NULL_BITMAPS wxImage nullimg(m_iconError.GetSize().x, m_iconError.GetSize().y); nullimg.Clear(); nullimg.SetMaskColour(0, 0, 0); m_nullBitmap = wxBitmap(nullimg); #endif } void PoeditListCtrl::Model::SetCatalog(CatalogPtr catalog) { m_catalog = catalog; if (!catalog) { Reset(0); return; } auto srclang = catalog->GetSourceLanguage(); auto lang = catalog->GetLanguage(); m_sourceTextDir = srclang.Direction(); m_transTextDir = lang.Direction(); // sort catalog items, create indexes mapping CreateSortMap(); Reset(catalog->GetCount()); } void PoeditListCtrl::Model::UpdateSort() { if (!m_catalog) return; CreateSortMap(); Reset(m_catalog->GetCount()); } wxString PoeditListCtrl::Model::GetColumnType(unsigned int col) const { switch (col) { case Col_ID: return "string"; case Col_Icon: return "wxBitmap"; case Col_Source: case Col_Translation: return "string"; default: return "null"; } } void PoeditListCtrl::Model::GetValueByRow(wxVariant& variant, unsigned row, unsigned col) const { #if defined(HAS_BROKEN_NULL_BITMAPS) #define NULL_BITMAP(variant) variant << m_nullBitmap #elif defined(__WXGTK__) && !wxCHECK_VERSION(3,1,1) #define NULL_BITMAP(variant) variant << wxNullBitmap #else #define NULL_BITMAP(variant) variant = wxNullVariant #endif if (!m_catalog || m_frozen) { #if defined(__WXGTK__) && !wxCHECK_VERSION(3,1,1) auto type = GetColumnType(col); if (type == "string") variant = ""; else if (type == "wxBitmap") NULL_BITMAP(variant); else #else variant = wxNullVariant; #endif if (col == Col_ID) { // sequential ID better than nothing, but this is a hack to get sizing correctly variant = wxString::Format("%d", (int)row); } return; } auto d = Item(row); wxCHECK_RET(d, "invalid row"); switch (col) { case Col_ID: { variant = wxString::Format("%d", d->GetId()); break; } case Col_Icon: { if (d->HasIssue()) { switch (d->GetIssue().severity) { case CatalogItem::Issue::Error: variant << m_iconError; break; case CatalogItem::Issue::Warning: variant << m_iconWarning; break; } break; } else if (d->GetBookmark() != NO_BOOKMARK) variant << m_iconBookmark; else if (d->HasComment()) variant << m_iconComment; else NULL_BITMAP(variant); break; } case Col_Source: { wxString orig; #if wxCHECK_VERSION(3,1,1) if (d->HasContext()) { #ifdef __WXMSW__ if (m_appTextDir == TextDirection::RTL && m_sourceTextDir == TextDirection::LTR) { // Temporary workaround for https://github.com/vslavik/poedit/issues/343 - fall back to old style rendering: orig.Printf("[%s] %s", EscapeMarkup(d->GetContext()), EscapeMarkup(d->GetString())); } else #endif { // Work around a problem with GTK+'s coloring of markup that begins with colorizing : #ifdef __WXGTK__ #define MARKUP(x) L"\u200B" L##x #else #define MARKUP(x) x #endif orig.Printf(MARKUP(" %s %s"), m_clrContextBg, m_clrContextFg, EscapeMarkup(d->GetContext()), EscapeMarkup(d->GetString())); } } else { orig = EscapeMarkup(d->GetString()); } #else // wx 3.0 if (d->HasContext()) orig.Printf("[%s] %s", d->GetContext(), d->GetString()); else orig = d->GetString(); #endif // FIXME: use syntax highlighting or typographic marks orig.Replace("\n", " "); // Add RTL Unicode mark to render bidi texts correctly if (m_appTextDir != m_sourceTextDir) variant = bidi::mark_direction(orig, m_sourceTextDir); else variant = orig; break; } case Col_Translation: { auto trans = d->GetTranslation(); // FIXME: use syntax highlighting or typographic marks trans.Replace("\n", " "); // Add RTL Unicode mark to render bidi texts correctly if (m_appTextDir != m_transTextDir) variant = bidi::mark_direction(trans, m_transTextDir); else variant = trans; break; } default: variant.Clear(); break; }; } bool PoeditListCtrl::Model::SetValueByRow(const wxVariant&, unsigned, unsigned) { wxFAIL_MSG("setting values in dataview not implemented"); return false; } bool PoeditListCtrl::Model::GetAttrByRow(unsigned row, unsigned col, wxDataViewItemAttr& attr) const { if (!m_catalog || m_frozen) return false; switch (col) { case Col_ID: { attr.SetColour(m_clrID); return true; } case Col_Source: case Col_Translation: { auto d = Item(row); if (d->HasError()) { attr.SetColour(m_clrInvalid); return true; } else if (d->IsFuzzy()) { attr.SetColour(m_clrFuzzy); return true; } else { return false; } } default: return false; } } void PoeditListCtrl::Model::CreateSortMap() { // FIXME: Use native wxDataViewCtrl sorting instead int count = (int)m_catalog->GetCount(); m_mapListToCatalog.resize(count); m_mapCatalogToList.resize(count); // First create identity mapping for the sort order. for ( int i = 0; i < count; i++ ) m_mapListToCatalog[i] = i; // m_mapListToCatalog will hold our desired sort order. Sort it in place // now, using the desired sort criteria. CatalogItemsComparator comparator(*m_catalog, sortOrder); std::sort ( m_mapListToCatalog.begin(), m_mapListToCatalog.end(), std::ref(comparator) ); // Finally, construct m_mapCatalogToList to be the inverse mapping to // m_mapListToCatalog. for ( int i = 0; i < count; i++ ) m_mapCatalogToList[m_mapListToCatalog[i]] = i; } PoeditListCtrl::PoeditListCtrl(wxWindow *parent, wxWindowID id, bool dispIDs) : wxDataViewCtrl(parent, id, wxDefaultPosition, wxDefaultSize, wxDV_MULTIPLE | wxDV_ROW_LINES | wxNO_BORDER, wxDefaultValidator, "translations list") { m_displayIDs = dispIDs; m_appTextDir = (wxTheApp->GetLayoutDirection() == wxLayout_RightToLeft) ? TextDirection::RTL : TextDirection::LTR; m_model.reset(new Model(m_appTextDir, GetDefaultAttributes())); AssociateModel(m_model.get()); CreateColumns(); UpdateColumns(); UpdateHeaderAttrs(); Bind(wxEVT_SIZE, &PoeditListCtrl::OnSize, this); } PoeditListCtrl::~PoeditListCtrl() { sortOrder().Save(); } void PoeditListCtrl::UpdateHeaderAttrs() { #ifdef __WXMSW__ // Setup custom header font & color on Windows 10, where the default look is a bit odd if (IsWindows10OrGreater()) { // Use the same text color as Explorer's headers use const wxUxThemeEngine* theme = wxUxThemeEngine::GetIfActive(); if (theme) { wxUxThemeHandle hTheme(this->GetParent(), L"ItemsView::Header"); COLORREF clr; HRESULT hr = theme->GetThemeColor(hTheme, HP_HEADERITEM, 0, TMT_TEXTCOLOR, &clr); if (SUCCEEDED(hr)) { wxItemAttr headerAttr; headerAttr.SetTextColour(wxRGBToColour(clr)); SetHeaderAttr(headerAttr); } } // Standard header has smaller height than Explorer's and it isn't // separated from the content well -- especially in HiDPI modes. // Match Explorer's header size too: int headerHeight = HiDPIScalingFactor() > 1.0 ? PX(26) : PX(25); GenericGetHeader()->SetMinSize(wxSize(-1, headerHeight)); } #endif // __WXMSW__ } void PoeditListCtrl::SetCustomFont(wxFont font_) { wxFont font(font_); if ( !font.IsOk() ) font = GetDefaultAttributes().font; SetFont(font); #if defined(__WXOSX__) // Custom setup of NSLayoutManager is necessary to match NSTableView sizing. // See http://stackoverflow.com/questions/17095927/dynamically-changing-row-height-after-font-size-of-entire-nstableview-nsoutlin NSLayoutManager *lm = [[NSLayoutManager alloc] init]; [lm setTypesetterBehavior:NSTypesetterBehavior_10_2_WithCompatibility]; [lm setUsesScreenFonts:NO]; CGFloat height = [lm defaultLineHeightForFont:font.OSXGetNSFont()]; SetRowHeight(int(height) + PX(4)); #elif defined(__WXMSW__) SetRowHeight(GetCharHeight() + PX(4)); #endif UpdateHeaderAttrs(); UpdateColumns(); } void PoeditListCtrl::SetDisplayLines(bool dl) { m_displayIDs = dl; UpdateColumns(); } void PoeditListCtrl::CreateColumns() { wxASSERT( GetColumnCount() == 0 ); #ifdef __WXOSX__ NSTableView *tableView = (NSTableView*)[((NSScrollView*)GetHandle()) documentView]; [tableView setIntercellSpacing:NSMakeSize(3.0, 0.0)]; #endif m_colID = m_colIcon = m_colSource = m_colTrans = nullptr; #if defined(__WXMSW__) int iconWidth = wxArtProvider::GetBitmap("poedit-status-error").GetSize().x + 6 /*wxDVC internal padding*/; #else int iconWidth = PX(16); #endif m_colIcon = AppendBitmapColumn(L"∙", Model::Col_Icon, wxDATAVIEW_CELL_INERT, iconWidth, wxALIGN_CENTER, 0); #if wxCHECK_VERSION(3,1,1) && !defined(__WXMSW__) m_colIcon->GetRenderer()->SetValueAdjuster(new DataViewIconsAdjuster); #endif auto sourceRenderer = new DataViewMarkupRenderer(ColorScheme::Get(Color::ItemContextBgHighlighted, this)); sourceRenderer->EnableEllipsize(wxELLIPSIZE_END); m_colSource = new wxDataViewColumn(_("Source text"), sourceRenderer, Model::Col_Source, wxCOL_WIDTH_DEFAULT, wxALIGN_LEFT, 0); AppendColumn(m_colSource); auto transRenderer = new wxDataViewTextRenderer(); transRenderer->EnableEllipsize(wxELLIPSIZE_END); m_colTrans = new wxDataViewColumn(_(L"Translation — %s"), transRenderer, Model::Col_Translation, wxCOL_WIDTH_DEFAULT, wxALIGN_LEFT, 0); AppendColumn(m_colTrans); m_colID = AppendTextColumn(_("ID"), Model::Col_ID, wxDATAVIEW_CELL_INERT, wxCOL_WIDTH_AUTOSIZE, wxALIGN_RIGHT, 0); // wxDVC insists on having an expander column, but we really don't want one: auto fake = AppendTextColumn("", Model::Col_ID); fake->SetHidden(true); SetExpanderColumn(fake); #ifdef __WXMSW__ if (m_appTextDir == TextDirection::RTL) m_colSource->SetAlignment(wxALIGN_RIGHT); #endif } void PoeditListCtrl::UpdateColumns() { wxASSERT( GetColumnCount() > 0 ); if (!m_catalog) return; auto srclang = m_catalog->GetSourceLanguage(); auto lang = m_catalog->GetLanguage(); wxString sourceTitle = srclang.IsValid() ? wxString::Format(_(L"Source text — %s"), srclang.DisplayName()) : _("Source text"); m_colSource->SetTitle(sourceTitle); if (m_model->m_catalog && m_model->m_catalog->HasCapability(Catalog::Cap::Translations)) { wxString langname = lang.IsValid() ? lang.DisplayName() : _("unknown language");; wxString transTitle = wxString::Format(_(L"Translation — %s"), langname); auto isRTL = lang.IsRTL(); #ifdef __WXMSW__ // a quirk of wx API: if the current locale is RTL, the meaning of L and R is reversed if (m_appTextDir == TextDirection::RTL) isRTL = !isRTL; #endif m_colTrans->SetHidden(false); m_colTrans->SetTitle(transTitle); m_colTrans->SetAlignment(isRTL ? wxALIGN_RIGHT : wxALIGN_LEFT); } else { m_colTrans->SetHidden(true); } m_colID->SetHidden(!m_displayIDs); if (m_displayIDs) m_colID->SetWidth(wxCOL_WIDTH_AUTOSIZE); SizeColumns(); #ifdef __WXGTK__ // wxGTK has delayed sizing computation, apparently CallAfter([=]{ SizeColumns(); }); #endif } void PoeditListCtrl::SizeColumns() { int w = GetClientSize().x; #if defined(__WXOSX__) w -= (GetColumnCount() - 1) * 3; #elif defined(__WXGTK__) w -= 2; #endif if (m_colIcon) w -= m_colIcon->GetWidth(); if (m_colID && m_colID->IsShown()) { w -= m_colID->GetWidth(); #ifdef __WXGTK__ w += 2; #endif } if (m_colTrans && m_colTrans->IsShown()) { m_colSource->SetWidth(w / 2); m_colTrans->SetWidth(w - w / 2); } else { m_colSource->SetWidth(w); } } void PoeditListCtrl::CatalogChanged(const CatalogPtr& catalog) { wxWindowUpdateLocker no_updates(this); const int oldCount = m_model->GetCount(); const int newCount = catalog ? catalog->GetCount() : 0; const bool isSameCatalog = (catalog == m_catalog); const bool sizeOrCatalogChanged = !isSameCatalog || (oldCount != newCount); SelectionPreserver preserve(!sizeOrCatalogChanged ? this : nullptr); // now read the new catalog: m_catalog = catalog; m_model->SetCatalog(catalog); if (!m_catalog) return; UpdateColumns(); if (sizeOrCatalogChanged && GetItemCount() > 0) CallAfter([=]{ SelectAndFocus(0); }); } void PoeditListCtrl::RefreshAllItems() { // Can't use Cleared() here because it messes up selection and scroll position const int count = m_model->GetCount(); wxDataViewItemArray items; items.reserve(count); for (int i = 0; i < count; i++) items.push_back(m_model->GetItem(i)); m_model->ItemsChanged(items); } void PoeditListCtrl::Sort() { if (!m_catalog) return; SelectionPreserver preserve(this); m_model->UpdateSort(); } void PoeditListCtrl::OnSize(wxSizeEvent& event) { wxWindowUpdateLocker lock(this); SizeColumns(); event.Skip(); } void PoeditListCtrl::DoFreeze() { // FIXME: This is gross, but necessary if DVC is redrawn just between // changing m_catalog and calling on-changed notification, particularly when // updating from sources. // // Proper fix would be to either a) make a copy in cat_update.cpp instead of // updating a catalog in a way that may change its size or b) have // notifications integrated properly in Catalog and call them immediately // after a (size) change. m_model->Freeze(); wxDataViewCtrl::DoFreeze(); } void PoeditListCtrl::DoThaw() { m_model->Thaw(); wxDataViewCtrl::DoThaw(); } poedit-2.0.6/src/customcontrols.h0000664000372000037200000001116113230131554013757 00000000000000/* * This file is part of Poedit (https://poedit.net) * * Copyright (C) 2014-2018 Vaclav Slavik * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * DEALINGS IN THE SOFTWARE. * */ #ifndef Poedit_customcontrols_h #define Poedit_customcontrols_h #include "concurrency.h" #include "language.h" #include #include #include class WXDLLIMPEXP_ADV wxActivityIndicator; #include #include // Label marking a subsection of a dialog: class HeadingLabel : public wxStaticText { public: HeadingLabel(wxWindow *parent, const wxString& label); }; // Label that auto-wraps itself to fit surrounding control's width. class AutoWrappingText : public wxStaticText { public: AutoWrappingText(wxWindow *parent, const wxString& label); void SetLanguage(Language lang); void SetAlignment(TextDirection dir); void SetAndWrapLabel(const wxString& label); protected: void OnSize(wxSizeEvent& e); wxString m_text; int m_wrapWidth; Language m_language; }; /// Like AutoWrappingText, but allows selecting (macOS) or at least copying (Windows) /// the text too. class SelectableAutoWrappingText : public AutoWrappingText { public: SelectableAutoWrappingText(wxWindow *parent, const wxString& label); }; /** Longer, often multiline, explanation label used to provide more information about the effects of some less obvious settings. Typeset using smaller font on macOS and grey appearance. Auto-wraps itself to fit surrounding control's width. */ class ExplanationLabel : public AutoWrappingText { public: ExplanationLabel(wxWindow *parent, const wxString& label); #if defined(__WXOSX__) static const int CHECKBOX_INDENT = 19; #elif defined(__WXMSW__) static const int CHECKBOX_INDENT = 17; #elif defined(__WXGTK__) static const int CHECKBOX_INDENT = 25; #endif static wxColour GetTextColor(); }; /// Like ExplanationLabel, but nonwrapping class SecondaryLabel : public wxStaticText { public: SecondaryLabel(wxWindow *parent, const wxString& label); static wxColour GetTextColor() { return ExplanationLabel::GetTextColor(); } }; /// "Learn more" hyperlink for dialogs. class LearnMoreLink : public wxHyperlinkCtrl { public: LearnMoreLink(wxWindow *parent, const wxString& url, wxString label = wxString(), wxWindowID winid = wxID_ANY); #if defined(__WXOSX__) static const int EXTRA_INDENT = 2; #elif defined(__WXMSW__) || defined(__WXGTK__) static const int EXTRA_INDENT = 0; #endif }; class LearnMoreLinkXmlHandler : public wxXmlResourceHandler { public: LearnMoreLinkXmlHandler() {} wxObject *DoCreateResource() override; bool CanHandle(wxXmlNode *node) override; }; /// Indicator of background activity, using spinners where appropriate. class ActivityIndicator : public wxWindow { public: enum Flags { Centered = 1, }; ActivityIndicator(wxWindow *parent, int flags = 0); /// Start indicating, with optional progress label. void Start(const wxString& msg = ""); /// Stop the indicator. void Stop(); /// Stop the indicator and report error in its place. void StopWithError(const wxString& msg); /// Is between Start() and Stop() calls? bool IsRunning() const { return m_running; } /// Convenience function for showing error message in the indicator std::function HandleError; bool HasTransparentBackground() override { return true; } private: void UpdateLayoutAfterTextChange(); bool m_running; wxActivityIndicator *m_spinner; wxStaticText *m_label, *m_error; }; #endif // Poedit_customcontrols_h poedit-2.0.6/src/sidebar.h0000664000372000037200000001413013230131554012271 00000000000000/* * This file is part of Poedit (https://poedit.net) * * Copyright (C) 2014-2018 Vaclav Slavik * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * DEALINGS IN THE SOFTWARE. * */ #ifndef Poedit_sidebar_h #define Poedit_sidebar_h #include #include #include #include #include #include #include "catalog.h" #include "language.h" #include "tm/suggestions.h" class WXDLLIMPEXP_FWD_CORE wxMenu; class WXDLLIMPEXP_FWD_CORE wxMenuItem; class WXDLLIMPEXP_FWD_CORE wxSizer; class WXDLLIMPEXP_FWD_CORE wxStaticText; class WXDLLIMPEXP_FWD_CORE wxStaticBitmap; class ExplanationLabel; struct Suggestion; class SuggestionsProvider; class SuggestionWidget; class Sidebar; /// Implements part of the sidebar. class SidebarBlock : public std::enable_shared_from_this { public: virtual ~SidebarBlock() {} wxSizer *GetSizer() const { return m_sizer; } virtual void Show(bool show); void SetItem(const CatalogItemPtr& item); virtual bool ShouldShowForItem(const CatalogItemPtr& item) const = 0; virtual void Update(const CatalogItemPtr& item) = 0; virtual bool IsGrowable() const { return false; } protected: enum Flags { NoUpperMargin = 1 }; SidebarBlock(Sidebar *parent, const wxString& label, int flags = 0); Sidebar *m_parent; wxSizer *m_headerSizer; wxSizer *m_innerSizer; private: wxSizer *m_sizer; }; wxDECLARE_EVENT(EVT_SUGGESTION_SELECTED, wxCommandEvent); /// Sidebar block implementation translation suggestions class SuggestionsSidebarBlock : public SidebarBlock { public: SuggestionsSidebarBlock(Sidebar *parent, wxMenu *menu); ~SuggestionsSidebarBlock(); void Show(bool show) override; bool IsGrowable() const override { return true; } bool ShouldShowForItem(const CatalogItemPtr& item) const override; void Update(const CatalogItemPtr& item) override; protected: // How many entries can have shortcuts? static const int SUGGESTIONS_MENU_ENTRIES = 9; virtual void UpdateVisibility(); virtual wxBitmap GetIconForSuggestion(const Suggestion& s) const; virtual wxString GetTooltipForSuggestion(const Suggestion& s) const; void ClearMessage(); void SetMessage(const wxString& icon, const wxString& text); virtual void ReportError(SuggestionsBackend *backend, dispatch::exception_ptr e); virtual void ClearSuggestions(); virtual void UpdateSuggestions(const SuggestionsList& hits); virtual void OnQueriesFinished(); virtual void BuildSuggestionsMenu(int count = SUGGESTIONS_MENU_ENTRIES); virtual void UpdateSuggestionsMenu(); virtual void ClearSuggestionsMenu(); virtual void QueryAllProviders(const CatalogItemPtr& item); void QueryProvider(SuggestionsBackend& backend, const CatalogItemPtr& item, uint64_t queryId); // Handle showing of suggestions void UpdateSuggestionsForItem(CatalogItemPtr item); void OnDelayedShowSuggestionsForItem(wxTimerEvent& e); protected: std::unique_ptr m_provider; wxMenu *m_suggestionsMenu; wxSizer *m_msgSizer; bool m_msgPresent; wxStaticBitmap *m_msgIcon; ExplanationLabel *m_msgText; wxStaticText *m_iGotNothing; wxSizer *m_suggestionsSizer; // Additional sizer for derived classes, shown below suggestions wxSizer *m_extrasSizer; SuggestionsList m_suggestions; std::vector m_suggestionsWidgets; std::vector m_suggestionMenuItems; int m_pendingQueries; uint64_t m_latestQueryId; // delayed showing of suggestions: long long m_lastUpdateTime; wxTimer m_suggestionsTimer; }; /** Control showing Poedit's assistance sidebar. Contains TM suggestions, comments and possibly other auxiliary stuff. */ class Sidebar : public wxWindow { public: Sidebar(wxWindow *parent, wxMenu *suggestionsMenu); ~Sidebar(); /// Update selected item, if there's a single one. May be nullptr. void SetSelectedItem(const CatalogPtr& catalog, const CatalogItemPtr& item); /// Tell the sidebar there's multiple selection. void SetMultipleSelection(); /// Returns currently selected item CatalogItemPtr GetSelectedItem() const { return m_selectedItem; } Language GetCurrentSourceLanguage() const; Language GetCurrentLanguage() const; bool FileHasCapability(Catalog::Cap cap) const; /// Refreshes displayed content void RefreshContent(); /// Call when catalog changes/is invalidated void ResetCatalog() { SetSelectedItem(nullptr, nullptr); } /// Set max height of the upper (not input-aligned) part. void SetUpperHeight(int size); bool AcceptsFocus() const override { return false; } protected: void DoEnable(bool enable) override; private: enum BlockPos { Top, Bottom }; void AddBlock(SidebarBlock *block, BlockPos pos); void OnPaint(wxPaintEvent&); private: CatalogPtr m_catalog; CatalogItemPtr m_selectedItem; std::vector> m_blocks; wxSizer *m_blocksSizer; wxSizer *m_topBlocksSizer, *m_bottomBlocksSizer; }; #endif // Poedit_sidebar_h poedit-2.0.6/src/attentionbar.cpp0000664000372000037200000002020013230131554013700 00000000000000/* * This file is part of Poedit (https://poedit.net) * * Copyright (C) 2008-2018 Vaclav Slavik * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * DEALINGS IN THE SOFTWARE. * */ #include "attentionbar.h" #include "colorscheme.h" #include "custom_buttons.h" #include "customcontrols.h" #include "hidpi.h" #include "utility.h" #include #include #include #include #include #include #include #include #include #include #ifdef __WXOSX__ #include "macos_helpers.h" #endif #ifdef __WXOSX__ #define SMALL_BORDER PX(7) #define BUTTONS_SPACE PX(10) #else #define SMALL_BORDER PX(3) #define BUTTONS_SPACE PX(5) #endif BEGIN_EVENT_TABLE(AttentionBar, wxPanel) EVT_BUTTON(wxID_CLOSE, AttentionBar::OnClose) EVT_BUTTON(wxID_ANY, AttentionBar::OnAction) END_EVENT_TABLE() AttentionBar::AttentionBar(wxWindow *parent) : wxPanel(parent, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL | wxBORDER_NONE) { #ifdef __WXOSX__ SetWindowVariant(wxWINDOW_VARIANT_SMALL); #endif #ifndef __WXGTK__ m_icon = new wxStaticBitmap(this, wxID_ANY, wxNullBitmap); #endif m_label = new AutoWrappingText(this, ""); m_explanation = new AutoWrappingText(this, ""); m_explanation->SetForegroundColour(GetBackgroundColour().ChangeLightness(40)); m_buttons = new wxBoxSizer(wxHORIZONTAL); m_checkbox = new wxCheckBox(this, wxID_ANY, ""); auto btnClose = new wxBitmapButton ( this, wxID_CLOSE, wxArtProvider::GetBitmap("window-close", wxART_MENU), wxDefaultPosition, wxDefaultSize, wxNO_BORDER ); btnClose->SetToolTip(_("Hide this notification message")); #ifdef __WXMSW__ btnClose->SetBackgroundColour(GetBackgroundColour()); #endif #if defined(__WXOSX__) || defined(__WXMSW__) wxFont boldFont = wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT); boldFont.SetWeight(wxFONTWEIGHT_BOLD); m_label->SetFont(boldFont); #endif Bind(wxEVT_PAINT, &AttentionBar::OnPaint, this); wxSizer *sizer = new wxBoxSizer(wxHORIZONTAL); sizer->AddSpacer(PXDefaultBorder); #ifndef __WXGTK__ sizer->Add(m_icon, wxSizerFlags().Center().Border(wxALL, SMALL_BORDER)); #endif auto labelSizer = new wxBoxSizer(wxVERTICAL); labelSizer->Add(m_label, wxSizerFlags().Expand()); labelSizer->Add(m_explanation, wxSizerFlags().Expand().Border(wxTOP|wxRIGHT, PX(4))); sizer->Add(labelSizer, wxSizerFlags(1).Center().PXDoubleBorder(wxALL)); sizer->AddSpacer(PX(20)); auto allButtonsSizer = new wxBoxSizer(wxHORIZONTAL); auto buttonsAndCheckboxSizer = new wxBoxSizer(wxVERTICAL); sizer->Add(buttonsAndCheckboxSizer, wxSizerFlags().Center().Border(wxTOP, PX(1))); buttonsAndCheckboxSizer->Add(allButtonsSizer, wxSizerFlags().Expand()); buttonsAndCheckboxSizer->Add(m_checkbox, wxSizerFlags().Left().Border(wxTOP, MACOS_OR_OTHER(PX(2), PX(4)))); allButtonsSizer->Add(m_buttons); allButtonsSizer->AddStretchSpacer(); allButtonsSizer->AddSpacer(SMALL_BORDER); allButtonsSizer->Add(btnClose, wxSizerFlags().Center().Border(wxTOP, PX(1))); allButtonsSizer->AddSpacer(SMALL_BORDER); #ifdef __WXMSW__ sizer->AddSpacer(PX(4)); #endif SetSizer(sizer); // the bar should be initially hidden Show(false); } void AttentionBar::OnPaint(wxPaintEvent&) { wxPaintDC dc(this); auto bg = GetBackgroundColour().ChangeLightness(80); dc.SetBrush(bg); dc.SetPen(bg); wxRect rect(GetSize()); dc.DrawRectangle(0, rect.height - MACOS_OR_OTHER(0, PX(1)), rect.width, PX(1)); } void AttentionBar::ShowMessage(const AttentionMessage& msg) { if ( msg.IsBlacklisted() ) return; switch ( msg.m_kind ) { case AttentionMessage::Warning: SetBackgroundColour(ColorScheme::Get(Color::AttentionWarningBackground)); break; case AttentionMessage::Question: SetBackgroundColour(ColorScheme::Get(Color::AttentionQuestionBackground)); break; case AttentionMessage::Error: SetBackgroundColour(ColorScheme::Get(Color::AttentionErrorBackground)); break; } #ifdef __WXMSW__ auto bg = GetBackgroundColour(); for (auto w : GetChildren()) w->SetBackgroundColour(bg); #endif wxString iconName; switch ( msg.m_kind ) { case AttentionMessage::Warning: iconName = wxART_WARNING; break; case AttentionMessage::Question: iconName = wxART_QUESTION; break; case AttentionMessage::Error: iconName = wxART_ERROR; break; } #ifndef __WXGTK__ m_icon->SetBitmap(wxArtProvider::GetBitmap(iconName, wxART_MENU, wxSize(PX(16), PX(16)))); #endif m_label->SetAndWrapLabel(msg.m_text); m_explanation->SetAndWrapLabel(msg.m_explanation); m_explanation->GetContainingSizer()->Show(m_explanation, !msg.m_explanation.empty()); m_checkbox->SetLabel(msg.m_checkbox); m_checkbox->GetContainingSizer()->Show(m_checkbox, !msg.m_checkbox.empty()); m_buttons->Clear(true/*delete_windows*/); m_actions.clear(); for ( AttentionMessage::Actions::const_iterator i = msg.m_actions.begin(); i != msg.m_actions.end(); ++i ) { auto b = new TranslucentButton(this, wxID_ANY, i->first); #ifdef __WXOSX__ MakeButtonRounded(b->GetHandle()); #endif m_buttons->Add(b, wxSizerFlags().Center().Border(wxRIGHT, BUTTONS_SPACE)); m_actions[b] = i->second; } // we need to size the control correctly _and_ lay out the controls if this // is the first time it's being shown, otherwise we can get garbled look: wxWindowUpdateLocker lock(this); SetSize(GetParent()->GetClientSize().x, 1); Layout(); Refresh(); Show(); GetParent()->Layout(); } void AttentionBar::HideMessage() { Hide(); GetParent()->Layout(); } void AttentionBar::OnClose(wxCommandEvent& WXUNUSED(event)) { HideMessage(); } void AttentionBar::OnAction(wxCommandEvent& event) { ActionsMap::const_iterator i = m_actions.find(event.GetEventObject()); if ( i == m_actions.end() ) { event.Skip(); return; } // first perform the action... AttentionMessage::ActionInfo info; info.checkbox = m_checkbox->IsShown() && m_checkbox->IsChecked(); i->second(info); // ...then hide the message HideMessage(); } /* static */ void AttentionMessage::AddToBlacklist(const wxString& id) { wxConfig::Get()->Write ( wxString::Format("/messages/dont_show/%s", id.c_str()), (long)true ); } /* static */ bool AttentionMessage::IsBlacklisted(const wxString& id) { return wxConfig::Get()->ReadBool ( wxString::Format("/messages/dont_show/%s", id.c_str()), false ); } void AttentionMessage::AddDontShowAgain() { auto id = m_id; AddAction( MSW_OR_OTHER(_(L"Don’t show again"), _(L"Don’t Show Again")), [id]{ AddToBlacklist(id); }); } poedit-2.0.6/src/welcomescreen.cpp0000664000372000037200000002635113230131554014056 00000000000000/* * This file is part of Poedit (https://poedit.net) * * Copyright (C) 2013-2018 Vaclav Slavik * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * DEALINGS IN THE SOFTWARE. * */ #include "welcomescreen.h" #include "crowdin_gui.h" #include "edapp.h" #include "edframe.h" #include "hidpi.h" #include "str_helpers.h" #include "utility.h" #include #include #include #include #include #include #include #include #include #include #ifndef __WXOSX__ #include #endif namespace { #ifdef __WXOSX__ class ActionButton : public wxWindow { public: ActionButton(wxWindow *parent, wxWindowID winid, const wxString& label, const wxString& note) : wxWindow(parent, wxID_ANY) { SetMinSize(wxSize(500, 65)); m_button = new wxButton(this, winid, ""); auto sizer = new wxBoxSizer(wxHORIZONTAL); sizer->Add(m_button, wxSizerFlags(1).Expand()); SetSizer(sizer); NSButton *btn = (NSButton*)m_button->GetHandle(); NSString *str = str::to_NS(label + "\n" + note); NSRange topLine = NSMakeRange(0, label.length() + 1); NSRange bottomLine = NSMakeRange(label.length() + 1, note.length()); NSMutableAttributedString *s = [[NSMutableAttributedString alloc] initWithString:str]; [s addAttribute:NSFontAttributeName value:[NSFont systemFontOfSize:[NSFont systemFontSize]+1] range:topLine]; [s addAttribute:NSFontAttributeName value:[NSFont systemFontOfSize:[NSFont systemFontSizeForControlSize:NSSmallControlSize]] range:bottomLine]; [s addAttribute:NSForegroundColorAttributeName value:[NSColor grayColor] range:bottomLine]; NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc] init]; paragraphStyle.headIndent = 10.0; paragraphStyle.firstLineHeadIndent = 10.0; paragraphStyle.tailIndent = -10.0; paragraphStyle.lineSpacing = 2.0; [s addAttribute:NSParagraphStyleAttributeName value:paragraphStyle range:NSMakeRange(0, [s length])]; [btn setAttributedTitle:s]; [btn setShowsBorderOnlyWhileMouseInside:YES]; [btn setBezelStyle:NSSmallSquareBezelStyle]; [btn setButtonType:NSMomentaryPushInButton]; SetBackgroundColour(wxColour("#F2FCE2")); Bind(wxEVT_PAINT, &ActionButton::OnPaint, this); } private: void OnPaint(wxPaintEvent&) { wxPaintDC dc(this); wxRect rect(dc.GetSize()); auto bg = GetBackgroundColour(); dc.SetBrush(bg); dc.SetPen(bg.ChangeLightness(90)); dc.DrawRoundedRectangle(rect, 2); dc.DrawRectangle(rect.x+1, rect.y+rect.height-2, rect.width-2, 2); } wxButton *m_button; }; #elif defined(__WXGTK__) class ActionButton : public wxButton { public: ActionButton(wxWindow *parent, wxWindowID winid, const wxString& label, const wxString& note) : wxButton(parent, winid, label, wxDefaultPosition, wxSize(500, 50), wxBU_LEFT) { SetLabelMarkup(wxString::Format("%s\n%s", label, note)); } }; #else typedef wxCommandLinkButton ActionButton; #endif #ifdef __WXGTK__ // Workaround sizing bug of wxStaticText with custom font by using markup instead. // See http://trac.wxwidgets.org/ticket/14374 class HeaderStaticText : public wxStaticText { public: HeaderStaticText(wxWindow *parent, wxWindowID id, const wxString& text) : wxStaticText(parent, id, "") { SetLabelMarkup("" + text + ""); } virtual bool SetFont(const wxFont&) { return true; } }; #else typedef wxStaticText HeaderStaticText; #endif } // anonymous namespace WelcomeScreenBase::WelcomeScreenBase(wxWindow *parent) : wxPanel(parent, wxID_ANY), m_clrHeader("#555555"), m_clrNorm("#444444"), m_clrSub("#aaaaaa") { SetBackgroundColour(wxColour("#fffcf5")); #if defined(__WXOSX__) auto guiface = wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT).GetFaceName(); m_fntHeader = wxFont(wxFontInfo(30).FaceName(guiface).Light()); m_fntNorm = wxFont(wxFontInfo(13).FaceName(guiface).Light()); m_fntSub = wxFont(wxFontInfo(11).FaceName(guiface).Light()); #elif defined(__WXMSW__) #define HEADER_FACE "Segoe UI" m_fntHeader = wxFont(wxFontInfo(20).FaceName("Segoe UI Light").AntiAliased()); m_fntNorm = wxFont(wxFontInfo(10).FaceName(HEADER_FACE)); m_fntSub = wxFont(wxFontInfo(9).FaceName(HEADER_FACE)); #else #define HEADER_FACE "sans serif" m_fntHeader = wxFont(wxFontInfo(16).FaceName(HEADER_FACE).Light()); m_fntNorm = wxFont(wxFontInfo(10).FaceName(HEADER_FACE).Light()); m_fntSub = wxFont(wxFontInfo(9).FaceName(HEADER_FACE).Light()); #endif // Translate all button events to wxEVT_MENU and send them to the frame. Bind(wxEVT_BUTTON, [=](wxCommandEvent& e){ wxCommandEvent event(wxEVT_MENU, e.GetId()); event.SetEventObject(this); GetParent()->GetEventHandler()->AddPendingEvent(event); }); } WelcomeScreenPanel::WelcomeScreenPanel(wxWindow *parent) : WelcomeScreenBase(parent) { auto sizer = new wxBoxSizer(wxVERTICAL); auto uberSizer = new wxBoxSizer(wxHORIZONTAL); uberSizer->AddStretchSpacer(); uberSizer->Add(sizer, wxSizerFlags().Center().Border(wxALL, PX(50))); uberSizer->AddStretchSpacer(); SetSizer(uberSizer); auto headerSizer = new wxBoxSizer(wxVERTICAL); auto hdr = new wxStaticBitmap(this, wxID_ANY, wxArtProvider::GetBitmap("PoeditWelcome")); headerSizer->Add(hdr, wxSizerFlags().Center()); auto header = new HeaderStaticText(this, wxID_ANY, _("Welcome to Poedit")); header->SetFont(m_fntHeader); header->SetForegroundColour(m_clrHeader); headerSizer->Add(header, wxSizerFlags().Center().Border(wxTOP, PX(10))); auto version = new wxStaticText(this, wxID_ANY, wxString::Format(_("Version %s"), wxGetApp().GetAppVersion())); version->SetFont(m_fntSub); version->SetForegroundColour(m_clrSub); headerSizer->Add(version, wxSizerFlags().Center()); headerSizer->AddSpacer(PX(20)); sizer->Add(headerSizer, wxSizerFlags().Expand()); sizer->Add(new ActionButton( this, wxID_OPEN, MSW_OR_OTHER(_("Edit a translation"), _("Edit a Translation")), _("Open an existing PO file and edit the translation.")), wxSizerFlags().PXBorderAll().Expand()); sizer->Add(new ActionButton( this, XRCID("menu_new_from_pot"), MSW_OR_OTHER(_("Create new translation"), _("Create New Translation")), _("Take an existing PO file or POT template and create a new translation from it.")), wxSizerFlags().PXBorderAll().Expand()); #ifdef HAVE_HTTP_CLIENT sizer->Add(new ActionButton( this, XRCID("menu_open_crowdin"), MSW_OR_OTHER(_("Collaborate on a translation with others"), _("Collaborate on a Translation with Others")), _("Download a file from Crowdin project, translate and sync your changes back.")), wxSizerFlags().PXBorderAll().Expand()); sizer->Add(new LearnAboutCrowdinLink(this, _("What is Crowdin?")), wxSizerFlags().Right().Border(wxRIGHT, PX(8))); #endif // HAVE_HTTP_CLIENT sizer->AddSpacer(PX(50)); // Hide the cosmetic logo part if the screen is too small: auto minFullSize = sizer->GetMinSize().y + PX(50); Bind(wxEVT_SIZE, [=](wxSizeEvent& e){ sizer->Show((size_t)0, e.GetSize().y >= minFullSize); e.Skip(); }); } EmptyPOScreenPanel::EmptyPOScreenPanel(PoeditFrame *parent) : WelcomeScreenBase(parent) { auto sizer = new wxBoxSizer(wxVERTICAL); auto uberSizer = new wxBoxSizer(wxHORIZONTAL); uberSizer->AddStretchSpacer(); uberSizer->Add(sizer, wxSizerFlags().Center().Border(wxALL, PX(100))); uberSizer->AddStretchSpacer(); SetSizer(uberSizer); auto header = new HeaderStaticText(this, wxID_ANY, _(L"There are no translations. That’s unusual.")); header->SetFont(m_fntHeader); header->SetForegroundColour(m_clrHeader); sizer->Add(header, wxSizerFlags().Center().PXBorderAll()); auto explain = new wxStaticText(this, wxID_ANY, _(L"Translatable entries aren’t added manually in the Gettext system, but are automatically extracted\nfrom source code. This way, they stay up to date and accurate.\nTranslators typically use PO template files (POTs) prepared for them by the developer.")); explain->SetFont(m_fntNorm); explain->SetForegroundColour(m_clrNorm); sizer->Add(explain, wxSizerFlags()); auto learnMore = new wxHyperlinkCtrl(this, wxID_ANY, _("(Learn more about GNU gettext)"), "http://www.gnu.org/software/gettext/manual/html_node/"); learnMore->SetFont(m_fntNorm); sizer->Add(learnMore, wxSizerFlags().PXBorder(wxTOP|wxBOTTOM).Align(wxALIGN_RIGHT)); auto explain2 = new wxStaticText(this, wxID_ANY, _("The simplest way to fill this catalog is to update it from a POT:")); explain2->SetFont(m_fntNorm); explain2->SetForegroundColour(m_clrNorm); sizer->Add(explain2, wxSizerFlags().PXDoubleBorder(wxTOP)); sizer->Add(new ActionButton( this, XRCID("menu_update_from_pot"), _("Update from POT"), _("Take translatable strings from an existing POT template.")), wxSizerFlags().PXBorderAll().Expand()); auto explain3 = new wxStaticText(this, wxID_ANY, _("You can also extract translatable strings directly from the source code:")); explain3->SetFont(m_fntNorm); explain3->SetForegroundColour(m_clrNorm); sizer->Add(explain3, wxSizerFlags().PXDoubleBorder(wxTOP)); auto btnSources = new ActionButton( this, wxID_ANY, _("Extract from sources"), _("Configure source code extraction in Properties.")); sizer->Add(btnSources, wxSizerFlags().PXBorderAll().Expand()); btnSources->Bind(wxEVT_BUTTON, [=](wxCommandEvent&){ parent->EditCatalogPropertiesAndUpdateFromSources(); }); } poedit-2.0.6/src/editing_area.cpp0000664000372000037200000007022613230131554013636 00000000000000/* * This file is part of Poedit (https://poedit.net) * * Copyright (C) 1999-2018 Vaclav Slavik * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * DEALINGS IN THE SOFTWARE. * */ #include "editing_area.h" #include "colorscheme.h" #include "custom_buttons.h" #include "customcontrols.h" #include "edlistctrl.h" #include "hidpi.h" #include "pluralforms/pl_evaluate.h" #include "spellchecking.h" #include "text_control.h" #include "utility.h" #include #include #include #include #include #include #include #include namespace { struct EventHandlerDisabler { EventHandlerDisabler(wxEvtHandler *h) : m_hnd(h) { m_hnd->SetEvtHandlerEnabled(false); } ~EventHandlerDisabler() { m_hnd->SetEvtHandlerEnabled(true); } wxEvtHandler *m_hnd; }; void SetTranslationValue(TranslationTextCtrl *txt, const wxString& value, int flags) { // disable EVT_TEXT forwarding -- the event is generated by // programmatic changes to text controls' content and we *don't* // want UpdateFromTextCtrl() to be called from here EventHandlerDisabler disabler(txt->GetEventHandler()); if (flags & EditingArea::UndoableEdit) txt->SetPlainTextUserWritten(value); else txt->SetPlainText(value); } inline void SetCtrlFont(wxWindow *win, const wxFont& font) { if (!win) return; #ifdef __WXMSW__ // Native wxMSW text control sends EN_CHANGE when the font changes, // producing a wxEVT_TEXT event as if the user changed the value. // Unfortunately the event seems to be used internally for sizing, // so we can't just filter it out completely. What we can do, however, // is to disable *our* handling of the event. EventHandlerDisabler disabler(win->GetEventHandler()); #endif win->SetFont(font); } // does some basic processing of user input, e.g. to remove trailing \n wxString PreprocessEnteredTextForItem(CatalogItemPtr item, wxString t) { auto& orig = item->GetString(); if (!t.empty() && !orig.empty()) { if (orig.Last() == '\n' && t.Last() != '\n') t.append(1, '\n'); else if (orig.Last() != '\n' && t.Last() == '\n') t.RemoveLast(); } return t; } /// Box sizer that allows one element to shrink below min size, class ShrinkableBoxSizer : public wxBoxSizer { public: ShrinkableBoxSizer(int orient) : wxBoxSizer(orient) {} #if wxCHECK_VERSION(3,1,1) void SetShrinkableWindow(wxWindow *win) { m_shrinkable = win ? GetItem(win) : nullptr; } void RecalcSizes() override { if (m_shrinkable) { const wxCoord totalSize = GetSizeInMajorDir(m_size); const wxCoord minSize = GetSizeInMajorDir(m_calculatedMinSize); // If there's not enough space, make shrinkable item proportional, // it will be resized under its minimal size then. m_shrinkable->SetProportion(totalSize < minSize ? 10000 : 0); } wxBoxSizer::RecalcSizes(); } private: wxSizerItem *m_shrinkable; #else void SetShrinkableWindow(wxWindow *win) { auto item = win ? GetItem(win) : nullptr; if (item) item->SetProportion(10000); } #endif }; } // anonymous namespace /// Tag-like label, with background rounded rect class EditingArea::TagLabel : public wxWindow { public: enum Mode { Fixed, Ellipsize }; TagLabel(wxWindow *parent, Color fg, Color bg) : wxWindow(parent, wxID_ANY) { m_icon = nullptr; m_label = new wxStaticText(this, wxID_ANY, "", wxDefaultPosition, wxDefaultSize, wxST_ELLIPSIZE_END); #ifdef __WXOSX__ m_label->SetWindowVariant(wxWINDOW_VARIANT_SMALL); #endif #ifdef __WXMSW__ SetBackgroundColour(parent->GetBackgroundColour()); #endif SetColor(fg, bg); auto sizer = new wxBoxSizer(wxHORIZONTAL); sizer->Add(m_label, wxSizerFlags(1).Center().Border(wxALL, PX(2))); #ifdef __WXMSW__ sizer->InsertSpacer(0, PX(2)); sizer->AddSpacer(PX(2)); #endif SetSizer(sizer); Bind(wxEVT_PAINT, &TagLabel::OnPaint, this); } void SetLabel(const wxString& text) override { m_label->SetLabel(text); InvalidateBestSize(); } void SetColor(Color fg, Color bg) { m_fg = ColorScheme::GetBlendedOn(fg, this); m_bg = ColorScheme::GetBlendedOn(bg, this); m_label->SetForegroundColour(m_fg); #ifdef __WXMSW__ m_label->SetBackgroundColour(m_bg); if (m_icon) m_icon->SetBackgroundColour(m_bg); #endif } void SetIcon(const wxBitmap& icon) { auto sizer = GetSizer(); if (icon.IsOk()) { if (!m_icon) { m_icon = new wxStaticBitmap(this, wxID_ANY, icon); #ifdef __WXMSW__ m_icon->SetBackgroundColour(m_bg); #endif sizer->Insert(0, m_icon, wxSizerFlags().Center().Border(wxLEFT, PX(2))); } m_icon->SetBitmap(icon); sizer->Show(m_icon); } else { if (m_icon) sizer->Hide(m_icon); } } protected: #if wxCHECK_VERSION(3,1,1) void DoSetToolTipText(const wxString &tip) override { wxWindow::DoSetToolTipText(tip); m_label->SetToolTip(tip); } #endif #ifdef __WXOSX__ wxSize DoGetBestSize() const override { auto size = wxWindow::DoGetBestSize(); size.y = std::max(20, size.y); return size; } #endif private: void OnPaint(wxPaintEvent&) { wxPaintDC dc(this); std::unique_ptr gc(wxGraphicsContext::Create(dc)); gc->SetBrush(m_bg); gc->SetPen(*wxTRANSPARENT_PEN); auto rect = GetClientRect(); if (!rect.IsEmpty()) { #if wxCHECK_VERSION(3,1,1) gc->DrawRoundedRectangle(rect.x, rect.y, rect.width, rect.height, PX(2)); #else gc->DrawRectangle(rect.x, rect.y, rect.width, rect.height); #endif } } wxColour m_fg, m_bg; wxStaticText *m_label; wxStaticBitmap *m_icon; }; class EditingArea::IssueLabel : public EditingArea::TagLabel { public: IssueLabel(wxWindow *parent) : TagLabel(parent, Color::TagErrorLineFg, Color::TagErrorLineBg) { m_iconError = wxArtProvider::GetBitmap("poedit-status-error"); m_iconWarning = wxArtProvider::GetBitmap("poedit-status-warning"); SetIcon(m_iconError); } void SetIssue(const CatalogItem::Issue& issue) { switch (issue.severity) { case CatalogItem::Issue::Error: SetIcon(m_iconError); SetColor(Color::TagErrorLineFg, Color::TagErrorLineBg); break; case CatalogItem::Issue::Warning: SetIcon(m_iconWarning); SetColor(Color::TagWarningLineFg, Color::TagWarningLineBg); break; } SetLabel(issue.message); SetToolTip(issue.message); } private: wxBitmap m_iconError, m_iconWarning; }; EditingArea::EditingArea(wxWindow *parent, PoeditListCtrl *associatedList, Mode mode) : m_associatedList(associatedList), m_dontAutoclearFuzzyStatus(false), m_textOrig(nullptr), m_textOrigPlural(nullptr), m_fuzzy(nullptr), m_textTrans(nullptr), m_pluralNotebook(nullptr), m_labelSingular(nullptr), m_labelPlural(nullptr), m_labelSource(nullptr), m_labelTrans(nullptr), m_tagContext(nullptr), m_tagFormat(nullptr), m_tagPretranslated(nullptr), m_issueLine(nullptr) { wxPanel::Create(parent, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL | wxNO_BORDER | wxFULL_REPAINT_ON_RESIZE); #ifdef __WXMSW__ SetDoubleBuffered(true); #endif SetBackgroundColour(ColorScheme::Get(Color::EditingBackground)); Bind(wxEVT_PAINT, &EditingArea::OnPaint, this); m_labelSource = new wxStaticText(this, -1, _("Source text:")); #ifdef __WXOSX__ m_labelSource->SetWindowVariant(wxWINDOW_VARIANT_SMALL); #endif m_labelSource->SetFont(m_labelSource->GetFont().Bold()); m_tagContext = new TagLabel(this, Color::TagContextFg, Color::TagContextBg); m_tagFormat = new TagLabel(this, Color::TagSecondaryFg, Color::TagSecondaryBg); auto sourceLineSizer = new ShrinkableBoxSizer(wxHORIZONTAL); sourceLineSizer->Add(m_labelSource, wxSizerFlags().Center()); sourceLineSizer->AddSpacer(PX(4)); sourceLineSizer->Add(m_tagContext, wxSizerFlags().Center().Border(wxRIGHT, PX(4))); sourceLineSizer->Add(m_tagFormat, wxSizerFlags().Center().Border(wxRIGHT, PX(4))); sourceLineSizer->SetShrinkableWindow(m_tagContext); sourceLineSizer->SetMinSize(-1, m_tagContext->GetBestSize().y); m_labelSingular = new wxStaticText(this, -1, _("Singular:")); m_labelSingular->SetWindowVariant(wxWINDOW_VARIANT_SMALL); m_labelSingular->SetFont(m_labelSingular->GetFont().Bold()); m_labelSingular->SetForegroundColour(ColorScheme::Get(Color::SecondaryLabel)); m_textOrig = new SourceTextCtrl(this, wxID_ANY); m_labelPlural = new wxStaticText(this, -1, _("Plural:")); m_labelPlural->SetWindowVariant(wxWINDOW_VARIANT_SMALL); m_labelPlural->SetFont(m_labelPlural->GetFont().Bold()); m_labelPlural->SetForegroundColour(ColorScheme::Get(Color::SecondaryLabel)); m_textOrigPlural = new SourceTextCtrl(this, wxID_ANY); auto *sizer = new wxBoxSizer(wxVERTICAL); SetSizer(sizer); #if defined(__WXMSW__) sizer->AddSpacer(PX(4) - 4); // account for fixed 4px sash above #elif defined(__WXOSX__) sizer->AddSpacer(PX(2)); #endif sizer->Add(sourceLineSizer, wxSizerFlags().Expand().Border(wxLEFT, PX(6))); sizer->AddSpacer(PX(6)); auto origTextSizer = new wxBoxSizer(wxVERTICAL); origTextSizer->Add(m_labelSingular, wxSizerFlags().Border(wxLEFT|wxTOP, PX(6))); origTextSizer->Add(m_textOrig, wxSizerFlags(1).Expand().Border(wxLEFT|wxRIGHT, PX(4))); origTextSizer->Add(m_labelPlural, wxSizerFlags().Border(wxLEFT, PX(6))); origTextSizer->Add(m_textOrigPlural, wxSizerFlags(1).Expand().Border(wxLEFT|wxRIGHT, PX(4))); sizer->Add(origTextSizer, wxSizerFlags(1).Expand()); if (mode == POT) CreateTemplateControls(sizer); else CreateEditControls(sizer); SetupTextCtrlSizes(); } void EditingArea::CreateEditControls(wxBoxSizer *sizer) { m_labelTrans = new wxStaticText(this, -1, _("Translation:")); #ifdef __WXOSX__ m_labelTrans->SetWindowVariant(wxWINDOW_VARIANT_SMALL); #endif m_labelTrans->SetFont(m_labelTrans->GetFont().Bold()); m_issueLine = new IssueLabel(this); m_tagPretranslated = new TagLabel(this, Color::TagSecondaryFg, Color::TagSecondaryBg); m_tagPretranslated->SetLabel(_("Pre-translated")); auto transLineSizer = new ShrinkableBoxSizer(wxHORIZONTAL); transLineSizer->Add(m_labelTrans, wxSizerFlags().Center()); transLineSizer->AddSpacer(PX(4)); transLineSizer->Add(m_issueLine, wxSizerFlags().Center().Border(wxRIGHT, PX(4))); transLineSizer->SetShrinkableWindow(m_issueLine); transLineSizer->AddStretchSpacer(1); transLineSizer->Add(m_tagPretranslated, wxSizerFlags().Center().Border(wxRIGHT, 3*PX(4))); #ifndef __WXOSX__ transLineSizer->SetMinSize(-1, m_issueLine->GetBestSize().y); #endif // TRANSLATORS: This indicates that the string's translation isn't final // and has known problems. For example, it might be machine translated or // fuzzy matched from an older string. The translation should be short and // convey this. If it's problematic to translate it, "Needs review" is // acceptable substitute, but note that the meaning is subtly different: // "needs review" implies that somebody else should review the string after // I am done with it (i.e. consider it good), while "needs work" implies I // need to return to it and finish the translation. m_fuzzy = new SwitchButton(this, wxID_ANY, MSW_OR_OTHER(_("Needs work"), _("Needs Work"))); #ifdef __WXOSX__ m_fuzzy->SetWindowVariant(wxWINDOW_VARIANT_SMALL); #endif m_fuzzy->SetColors(ColorScheme::Get(Color::FuzzySwitch), ColorScheme::Get(Color::FuzzySwitchInactive)); transLineSizer->Add(m_fuzzy, wxSizerFlags().Expand().Border(wxTOP, MSW_OR_OTHER(IsHiDPI() ? PX(1) : 0, 0))); transLineSizer->AddSpacer(PX(4)); m_textTrans = new TranslationTextCtrl(this, wxID_ANY); // in case of plurals form, this is the control for n=1: m_textTransSingularForm = nullptr; m_pluralNotebook = new wxNotebook(this, -1, wxDefaultPosition, wxDefaultSize, wxNB_NOPAGETHEME); m_pluralNotebook->SetWindowVariant(wxWINDOW_VARIANT_SMALL); sizer->Add(transLineSizer, wxSizerFlags().Expand().Border(wxLEFT|wxTOP, PX(6))); sizer->AddSpacer(PX(6)); sizer->Add(m_textTrans, wxSizerFlags(1).Expand().Border(wxLEFT|wxRIGHT|wxBOTTOM, PX(4))); sizer->Add(m_pluralNotebook, wxSizerFlags(1).Expand().Border(wxTOP, PX(4))); ShowPluralFormUI(false); m_textTrans->Bind(wxEVT_TEXT, [=](wxCommandEvent& e){ e.Skip(); UpdateFromTextCtrl(); }); m_fuzzy->Bind(wxEVT_TOGGLEBUTTON, [=](wxCommandEvent& e){ // The user explicitly changed fuzzy status (e.g. to on). Normally, if the // user edits an entry, it's fuzzy flag is cleared, but if the user sets // fuzzy on to indicate the translation is problematic and then continues // editing the entry, we do not want to annoy him by changing fuzzy back on // every keystroke. DontAutoclearFuzzyStatus(); UpdateFromTextCtrl(); e.Skip(); }); #ifdef __WXMSW__ m_pluralNotebook->Bind(wxEVT_NOTEBOOK_PAGE_CHANGED, [=](wxBookCtrlEvent& e){ e.Skip(); auto focused = FindFocus(); if (focused && (focused == m_pluralNotebook || focused->GetParent() == m_pluralNotebook)) m_pluralNotebook->GetPage(e.GetSelection())->SetFocus(); }); #endif } void EditingArea::CreateTemplateControls(wxBoxSizer *panelSizer) { auto win = new wxPanel(this, wxID_ANY); auto sizer = new wxBoxSizer(wxVERTICAL); auto explain = new wxStaticText(win, wxID_ANY, _(L"POT files are only templates and don’t contain any translations themselves.\nTo make a translation, create a new PO file based on the template."), wxDefaultPosition, wxDefaultSize, wxALIGN_CENTRE_HORIZONTAL); #ifdef __WXOSX__ explain->SetWindowVariant(wxWINDOW_VARIANT_SMALL); #endif explain->SetForegroundColour(ExplanationLabel::GetTextColor()); auto button = new wxButton(win, XRCID("button_new_from_this_pot"), MSW_OR_OTHER(_("Create new translation"), _("Create New Translation"))); sizer->AddStretchSpacer(); sizer->Add(explain, wxSizerFlags().Center().Border(wxLEFT|wxRIGHT, PX(100))); sizer->Add(button, wxSizerFlags().Center().Border(wxTOP|wxBOTTOM, PX(10))); sizer->AddStretchSpacer(); win->SetSizerAndFit(sizer); panelSizer->Add(win, 1, wxEXPAND); win->Bind(wxEVT_PAINT, [win](wxPaintEvent&){ wxPaintDC dc(win); auto clr = ColorScheme::Get(Color::EditingSeparator); dc.SetPen(clr); dc.SetBrush(clr); dc.DrawRectangle(0, 1, win->GetClientSize().x, PX(1)); }); } void EditingArea::SetupTextCtrlSizes() { int minh = m_textOrig->GetCharHeight(); #ifdef __WXOSX__ minh += 2*3; // inset #endif m_textOrig->SetMinSize(wxSize(-1, minh)); m_textOrigPlural->SetMinSize(wxSize(-1, minh)); } EditingArea::~EditingArea() { // OnPaint may still be called as child windows are destroyed m_labelSource = m_labelTrans = nullptr; } void EditingArea::OnPaint(wxPaintEvent&) { wxPaintDC dc(this); auto width = GetClientSize().x; const int paddingTop = MACOS_OR_OTHER(dc.GetContentScaleFactor() > 1.0 ? PX(5) : PX(6), PX(6)); const int paddingBottom = PX(5); auto clr = ColorScheme::Get(Color::EditingSeparator); dc.SetPen(clr); dc.SetBrush(clr); if (m_labelTrans) { dc.DrawRectangle(0, m_labelTrans->GetPosition().y - paddingTop, width, PX(1)); } auto clrs = ColorScheme::Get(Color::EditingSubtleSeparator); dc.SetPen(clrs); dc.SetBrush(clrs); if (m_labelSource) { dc.DrawRectangle(0, m_labelSource->GetPosition().y + m_labelSource->GetSize().y + paddingBottom, width, PX(1)); } if (m_labelTrans) { dc.DrawRectangle(0, m_labelTrans->GetPosition().y + m_labelTrans->GetSize().y + paddingBottom, width, PX(1)); } } void EditingArea::SetCustomFont(const wxFont& font) { SetCtrlFont(m_textOrig, font); SetCtrlFont(m_textOrigPlural, font); SetCtrlFont(m_textTrans, font); for (auto tp : m_textTransPlural) SetCtrlFont(tp, font); SetupTextCtrlSizes(); } bool EditingArea::InitSpellchecker(bool enabled, Language lang) { bool rv = true; if (m_textTrans) { if (!InitTextCtrlSpellchecker(m_textTrans, enabled, lang)) rv = false; } for (auto tp : m_textTransPlural) { if (tp && !InitTextCtrlSpellchecker(tp, enabled, lang)) rv = false; } return rv; } void EditingArea::SetLanguage(Language lang) { if (m_textTrans) m_textTrans->SetLanguage(lang); for (auto tp : m_textTransPlural) { if (tp) tp->SetLanguage(lang); } } void EditingArea::RecreatePluralTextCtrls(CatalogPtr catalog) { if (!m_pluralNotebook) return; m_textTransPlural.clear(); m_pluralNotebook->DeleteAllPages(); m_textTransSingularForm = NULL; auto calc = PluralFormsCalculator::make(catalog->Header().GetHeader("Plural-Forms").ToAscii()); int formsCount = catalog->GetPluralFormsCount(); for (int form = 0; form < formsCount; form++) { // find example number that would use this plural form: static const int maxExamplesCnt = 5; wxString examples; int firstExample = -1; int examplesCnt = 0; if (calc && formsCount > 1) { for (int example = 0; example < 1000; example++) { if (calc->evaluate(example) == form) { if (++examplesCnt == 1) firstExample = example; if (examplesCnt == maxExamplesCnt) { examples += L'…'; break; } else if (examplesCnt == 1) examples += wxString::Format("%d", example); else examples += wxString::Format(", %d", example); } } } wxString desc; if (formsCount == 1) desc = _("Everything"); else if (examplesCnt == 0) desc.Printf(_("Form %i"), form); else if (examplesCnt == 1) { if (formsCount == 2 && firstExample == 1) // English-like { desc = _("Singular"); } else { if (firstExample == 0) desc = _("Zero"); else if (firstExample == 1) desc = _("One"); else if (firstExample == 2) desc = _("Two"); else desc.Printf(L"n = %s", examples); } } else if (formsCount == 2 && examplesCnt == 2 && firstExample == 0 && examples == "0, 1") { desc = _("Singular"); } else if (formsCount == 2 && firstExample != 1 && examplesCnt == maxExamplesCnt) { if (firstExample == 0 || firstExample == 2) desc = _("Plural"); else desc = _("Other"); } else desc.Printf(L"n → %s", examples); // create text control and notebook page for it: auto txt = new TranslationTextCtrl(m_pluralNotebook, wxID_ANY); txt->SetWindowVariant(wxWINDOW_VARIANT_NORMAL); #ifndef __WXOSX__ txt->SetFont(m_textTrans->GetFont()); #endif txt->Bind(wxEVT_TEXT, [=](wxCommandEvent& e){ e.Skip(); UpdateFromTextCtrl(); }); m_textTransPlural.push_back(txt); m_pluralNotebook->AddPage(txt, desc); if (examplesCnt == 1 && firstExample == 1) // == singular m_textTransSingularForm = txt; } // as a fallback, assume 1st form for plural entries is the singular // (like in English and most real-life uses): if (!m_textTransSingularForm && !m_textTransPlural.empty()) m_textTransSingularForm = m_textTransPlural[0]; } void EditingArea::ShowPluralFormUI(bool show) { wxSizer *origSizer = m_textOrig->GetContainingSizer(); origSizer->Show(m_labelSingular, show); origSizer->Show(m_labelPlural, show); origSizer->Show(m_textOrigPlural, show); origSizer->Layout(); if (m_textTrans && m_pluralNotebook) { wxSizer *textSizer = m_textTrans->GetContainingSizer(); textSizer->Show(m_textTrans, !show); textSizer->Show(m_pluralNotebook, show); textSizer->Layout(); } } void EditingArea::ShowPart(wxWindow *part, bool show) { part->GetContainingSizer()->Show(part, show); } void EditingArea::SetSingleSelectionMode() { if (!IsThisEnabled()) Enable(); // in case of previous multiple selection } void EditingArea::SetMultipleSelectionMode() { // TODO: Show better UI Disable(); } void EditingArea::SetTextFocus() { if (m_textTrans && m_textTrans->IsShown()) m_textTrans->SetFocus(); else if (!m_textTransPlural.empty()) { if (m_pluralNotebook && m_pluralNotebook->GetPageCount()) m_pluralNotebook->SetSelection(0); m_textTransPlural[0]->SetFocus(); } } bool EditingArea::HasTextFocus() { wxWindow *focus = wxWindow::FindFocus(); return (focus == m_textTrans) || (focus && focus->GetParent() == m_pluralNotebook); } bool EditingArea::HasTextFocusInPlurals() { if (!m_pluralNotebook || !m_pluralNotebook->IsShown()) return false; auto focused = dynamic_cast(FindFocus()); if (!focused) return false; return std::find(m_textTransPlural.begin(), m_textTransPlural.end(), focused) != m_textTransPlural.end(); } bool EditingArea::IsShowingPlurals() { return m_pluralNotebook && m_pluralNotebook->IsShown(); } void EditingArea::CopyFromSingular() { auto current = dynamic_cast(wxWindow::FindFocus()); if (!current || !m_textTransSingularForm) return; current->SetPlainTextUserWritten(m_textTransSingularForm->GetPlainText()); } void EditingArea::UpdateToTextCtrl(CatalogItemPtr item, int flags) { auto syntax = SyntaxHighlighter::ForItem(*item); m_textOrig->SetSyntaxHighlighter(syntax); if (m_textTrans) m_textTrans->SetSyntaxHighlighter(syntax); if (item->HasPlural()) { m_textOrigPlural->SetSyntaxHighlighter(syntax); for (auto p : m_textTransPlural) p->SetSyntaxHighlighter(syntax); } m_textOrig->SetPlainText(item->GetString()); if (item->HasPlural()) { m_textOrigPlural->SetPlainText(item->GetPluralString()); unsigned formsCnt = (unsigned)m_textTransPlural.size(); for (unsigned j = 0; j < formsCnt; j++) SetTranslationValue(m_textTransPlural[j], wxEmptyString, flags); unsigned i = 0; for (i = 0; i < std::min(formsCnt, item->GetNumberOfTranslations()); i++) { SetTranslationValue(m_textTransPlural[i], item->GetTranslation(i), flags); } if ((flags & EditingArea::ItemChanged) && m_pluralNotebook && m_pluralNotebook->GetPageCount()) m_pluralNotebook->SetSelection(0); } else { if (m_textTrans) SetTranslationValue(m_textTrans, item->GetTranslation(), flags); } ShowPart(m_tagContext, item->HasContext()); if (item->HasContext()) { m_tagContext->SetLabel(item->GetContext()); m_tagContext->SetToolTip(item->GetContext()); } auto format = item->GetFormatFlag(); ShowPart(m_tagFormat, !format.empty()); if (!format.empty()) { // TRANSLATORS: %s is replaced with language name, e.g. "PHP" or "C", so "PHP Format" etc." m_tagFormat->SetLabel(wxString::Format(MSW_OR_OTHER(_("%s format"), _("%s Format")), format.Upper())); } if (m_tagPretranslated) ShowPart(m_tagPretranslated, item->IsPreTranslated()); if (m_fuzzy) m_fuzzy->SetValue(item->IsFuzzy()); if (m_issueLine) { if (item->HasIssue()) { m_issueLine->SetIssue(item->GetIssue()); ShowPart(m_issueLine, true); } else { ShowPart(m_issueLine, false); } } ShowPluralFormUI(item->HasPlural()); Layout(); Refresh(); // by default, editing fuzzy item unfuzzies it m_dontAutoclearFuzzyStatus = false; } void EditingArea::UpdateFromTextCtrl() { auto item = m_associatedList->GetCurrentCatalogItem(); if (!item) return; wxString key = item->GetString(); bool newfuzzy = m_fuzzy->GetValue(); const bool oldIsTranslated = item->IsTranslated(); bool allTranslated = true; // will be updated later bool anyTransChanged = false; // ditto if (item->HasPlural()) { wxArrayString str; for (unsigned i = 0; i < m_textTransPlural.size(); i++) { auto val = PreprocessEnteredTextForItem(item, m_textTransPlural[i]->GetPlainText()); str.Add(val); if ( val.empty() ) allTranslated = false; } if ( str != item->GetTranslations() ) { anyTransChanged = true; item->SetTranslations(str); } } else { auto newval = PreprocessEnteredTextForItem(item, m_textTrans->GetPlainText()); if ( newval.empty() ) allTranslated = false; if ( newval != item->GetTranslation() ) { anyTransChanged = true; item->SetTranslation(newval); } } if (item->IsFuzzy() == newfuzzy && !anyTransChanged) { return; // not even fuzzy status changed, so return } // did something affecting statistics change? bool statisticsChanged = false; if (newfuzzy == item->IsFuzzy() && !m_dontAutoclearFuzzyStatus) newfuzzy = false; if ( item->IsFuzzy() != newfuzzy ) { item->SetFuzzy(newfuzzy); m_fuzzy->SetValue(newfuzzy); statisticsChanged = true; } if ( oldIsTranslated != allTranslated ) { item->SetTranslated(allTranslated); statisticsChanged = true; } item->SetModified(true); item->SetPreTranslated(false); m_associatedList->RefreshSelectedItems(); if (OnUpdatedFromTextCtrl) OnUpdatedFromTextCtrl(item, statisticsChanged); } void EditingArea::ChangeFocusedPluralTab(int offset) { wxCHECK_RET(offset == +1 || offset == -1, "invalid offset"); bool hasFocus = HasTextFocusInPlurals(); #ifdef __WXMSW__ wxWindow *prevFocus = hasFocus ? nullptr : FindFocus(); #endif m_pluralNotebook->AdvanceSelection(/*forward=*/offset == +1 ? true : false); if (hasFocus) m_textTransPlural[m_pluralNotebook->GetSelection()]->SetFocus(); #ifdef __WXMSW__ else if (prevFocus) prevFocus->SetFocus(); #endif } poedit-2.0.6/src/commentdlg.cpp0000664000372000037200000000515013230131554013346 00000000000000/* * This file is part of Poedit (https://poedit.net) * * Copyright (C) 2001-2018 Vaclav Slavik * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * DEALINGS IN THE SOFTWARE. * */ #include #include #include #include #include "catalog.h" #include "commentdlg.h" CommentDialog::CommentDialog(wxWindow *parent, const wxString& comment) : wxDialog() { wxXmlResource::Get()->LoadDialog(this, parent, "comment_dlg"); #ifndef __WXOSX__ CenterOnParent(); #endif m_text = XRCCTRL(*this, "comment", wxTextCtrl); m_text->SetValue(RemoveStartHash(comment)); wxAcceleratorEntry entries[] = { { wxACCEL_CMD, WXK_RETURN, wxID_OK } }; wxAcceleratorTable accel(WXSIZEOF(entries), entries); SetAcceleratorTable(accel); } wxString CommentDialog::GetComment() const { // Put the start hash back return AddStartHash(m_text->GetValue()); } BEGIN_EVENT_TABLE(CommentDialog, wxDialog) EVT_BUTTON(XRCID("clear"), CommentDialog::OnClear) END_EVENT_TABLE() void CommentDialog::OnClear(wxCommandEvent&) { m_text->Clear(); } /*static*/ wxString CommentDialog::RemoveStartHash(const wxString& comment) { wxString tmpComment; wxStringTokenizer tkn(comment, "\n\r"); while (tkn.HasMoreTokens()) tmpComment << tkn.GetNextToken().Mid(2) << "\n"; return tmpComment; } /*static*/ wxString CommentDialog::AddStartHash(const wxString& comment) { wxString tmpComment; wxStringTokenizer tkn(comment, "\n\r"); while (tkn.HasMoreTokens()) tmpComment << "# " << tkn.GetNextToken() << "\n"; return tmpComment; } poedit-2.0.6/src/json/0000775000372000037200000000000013230132100011525 500000000000000poedit-2.0.6/src/json/src/0000775000372000037200000000000013230132101012315 500000000000000poedit-2.0.6/src/json/src/json.hpp0000664000372000037200000153640713230132036013746 00000000000000/* __ _____ _____ _____ __| | __| | | | JSON for Modern C++ | | |__ | | | | | | version 2.1.0 |_____|_____|_____|_|___| https://github.com/nlohmann/json Licensed under the MIT License . Copyright (c) 2013-2017 Niels Lohmann . Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #ifndef NLOHMANN_JSON_HPP #define NLOHMANN_JSON_HPP #include // all_of, for_each, transform #include // array #include // assert #include // isdigit #include // and, not, or #include // isfinite, ldexp, signbit #include // nullptr_t, ptrdiff_t, size_t #include // int64_t, uint64_t #include // strtod, strtof, strtold, strtoul #include // strlen #include // forward_list #include // function, hash, less #include // initializer_list #include // setw #include // istream, ostream #include // advance, begin, bidirectional_iterator_tag, distance, end, inserter, iterator, iterator_traits, next, random_access_iterator_tag, reverse_iterator #include // numeric_limits #include // locale #include // map #include // addressof, allocator, allocator_traits, unique_ptr #include // accumulate #include // stringstream #include // domain_error, invalid_argument, out_of_range #include // getline, stoi, string, to_string #include // add_pointer, enable_if, is_arithmetic, is_base_of, is_const, is_constructible, is_convertible, is_floating_point, is_integral, is_nothrow_move_assignable, std::is_nothrow_move_constructible, std::is_pointer, std::is_reference, std::is_same, remove_const, remove_pointer, remove_reference #include // declval, forward, make_pair, move, pair, swap #include // vector // exclude unsupported compilers #if defined(__clang__) #if (__clang_major__ * 10000 + __clang_minor__ * 100 + __clang_patchlevel__) < 30400 #error "unsupported Clang version - see https://github.com/nlohmann/json#supported-compilers" #endif #elif defined(__GNUC__) #if (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__) < 40900 #error "unsupported GCC version - see https://github.com/nlohmann/json#supported-compilers" #endif #endif // disable float-equal warnings on GCC/clang #if defined(__clang__) || defined(__GNUC__) || defined(__GNUG__) #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wfloat-equal" #endif // disable documentation warnings on clang #if defined(__clang__) #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wdocumentation" #endif // allow for portable deprecation warnings #if defined(__clang__) || defined(__GNUC__) || defined(__GNUG__) #define JSON_DEPRECATED __attribute__((deprecated)) #elif defined(_MSC_VER) #define JSON_DEPRECATED __declspec(deprecated) #else #define JSON_DEPRECATED #endif // allow to disable exceptions #if not defined(JSON_NOEXCEPTION) || defined(__EXCEPTIONS) #define JSON_THROW(exception) throw exception #define JSON_TRY try #define JSON_CATCH(exception) catch(exception) #else #define JSON_THROW(exception) std::abort() #define JSON_TRY if(true) #define JSON_CATCH(exception) if(false) #endif /*! @brief namespace for Niels Lohmann @see https://github.com/nlohmann @since version 1.0.0 */ namespace nlohmann { /*! @brief unnamed namespace with internal helper functions This namespace collects some functions that could not be defined inside the @ref basic_json class. @since version 2.1.0 */ namespace detail { /////////////////////////// // JSON type enumeration // /////////////////////////// /*! @brief the JSON type enumeration This enumeration collects the different JSON types. It is internally used to distinguish the stored values, and the functions @ref basic_json::is_null(), @ref basic_json::is_object(), @ref basic_json::is_array(), @ref basic_json::is_string(), @ref basic_json::is_boolean(), @ref basic_json::is_number() (with @ref basic_json::is_number_integer(), @ref basic_json::is_number_unsigned(), and @ref basic_json::is_number_float()), @ref basic_json::is_discarded(), @ref basic_json::is_primitive(), and @ref basic_json::is_structured() rely on it. @note There are three enumeration entries (number_integer, number_unsigned, and number_float), because the library distinguishes these three types for numbers: @ref basic_json::number_unsigned_t is used for unsigned integers, @ref basic_json::number_integer_t is used for signed integers, and @ref basic_json::number_float_t is used for floating-point numbers or to approximate integers which do not fit in the limits of their respective type. @sa @ref basic_json::basic_json(const value_t value_type) -- create a JSON value with the default value for a given type @since version 1.0.0 */ enum class value_t : uint8_t { null, ///< null value object, ///< object (unordered set of name/value pairs) array, ///< array (ordered collection of values) string, ///< string value boolean, ///< boolean value number_integer, ///< number value (signed integer) number_unsigned, ///< number value (unsigned integer) number_float, ///< number value (floating-point) discarded ///< discarded by the the parser callback function }; /*! @brief comparison operator for JSON types Returns an ordering that is similar to Python: - order: null < boolean < number < object < array < string - furthermore, each type is not smaller than itself @since version 1.0.0 */ inline bool operator<(const value_t lhs, const value_t rhs) noexcept { static constexpr std::array order = {{ 0, // null 3, // object 4, // array 5, // string 1, // boolean 2, // integer 2, // unsigned 2, // float } }; // discarded values are not comparable if (lhs == value_t::discarded or rhs == value_t::discarded) { return false; } return order[static_cast(lhs)] < order[static_cast(rhs)]; } ///////////// // helpers // ///////////// // alias templates to reduce boilerplate template using enable_if_t = typename std::enable_if::type; template using uncvref_t = typename std::remove_cv::type>::type; // taken from http://stackoverflow.com/a/26936864/266378 template using is_unscoped_enum = std::integral_constant::value and std::is_enum::value>; /* Implementation of two C++17 constructs: conjunction, negation. This is needed to avoid evaluating all the traits in a condition For example: not std::is_same::value and has_value_type::value will not compile when T = void (on MSVC at least). Whereas conjunction>, has_value_type>::value will stop evaluating if negation<...>::value == false Please note that those constructs must be used with caution, since symbols can become very long quickly (which can slow down compilation and cause MSVC internal compiler errors). Only use it when you have to (see example ahead). */ template struct conjunction : std::true_type {}; template struct conjunction : B1 {}; template struct conjunction : std::conditional, B1>::type {}; template struct negation : std::integral_constant < bool, !B::value > {}; // dispatch utility (taken from ranges-v3) template struct priority_tag : priority_tag < N - 1 > {}; template<> struct priority_tag<0> {}; ////////////////// // constructors // ////////////////// template struct external_constructor; template<> struct external_constructor { template static void construct(BasicJsonType& j, typename BasicJsonType::boolean_t b) noexcept { j.m_type = value_t::boolean; j.m_value = b; j.assert_invariant(); } }; template<> struct external_constructor { template static void construct(BasicJsonType& j, const typename BasicJsonType::string_t& s) { j.m_type = value_t::string; j.m_value = s; j.assert_invariant(); } }; template<> struct external_constructor { template static void construct(BasicJsonType& j, typename BasicJsonType::number_float_t val) noexcept { // replace infinity and NAN by null if (not std::isfinite(val)) { j = BasicJsonType{}; } else { j.m_type = value_t::number_float; j.m_value = val; } j.assert_invariant(); } }; template<> struct external_constructor { template static void construct(BasicJsonType& j, typename BasicJsonType::number_unsigned_t val) noexcept { j.m_type = value_t::number_unsigned; j.m_value = val; j.assert_invariant(); } }; template<> struct external_constructor { template static void construct(BasicJsonType& j, typename BasicJsonType::number_integer_t val) noexcept { j.m_type = value_t::number_integer; j.m_value = val; j.assert_invariant(); } }; template<> struct external_constructor { template static void construct(BasicJsonType& j, const typename BasicJsonType::array_t& arr) { j.m_type = value_t::array; j.m_value = arr; j.assert_invariant(); } template::value, int> = 0> static void construct(BasicJsonType& j, const CompatibleArrayType& arr) { using std::begin; using std::end; j.m_type = value_t::array; j.m_value.array = j.template create(begin(arr), end(arr)); j.assert_invariant(); } }; template<> struct external_constructor { template static void construct(BasicJsonType& j, const typename BasicJsonType::object_t& obj) { j.m_type = value_t::object; j.m_value = obj; j.assert_invariant(); } template::value, int> = 0> static void construct(BasicJsonType& j, const CompatibleObjectType& obj) { using std::begin; using std::end; j.m_type = value_t::object; j.m_value.object = j.template create(begin(obj), end(obj)); j.assert_invariant(); } }; //////////////////////// // has_/is_ functions // //////////////////////// /*! @brief Helper to determine whether there's a key_type for T. This helper is used to tell associative containers apart from other containers such as sequence containers. For instance, `std::map` passes the test as it contains a `mapped_type`, whereas `std::vector` fails the test. @sa http://stackoverflow.com/a/7728728/266378 @since version 1.0.0, overworked in version 2.0.6 */ #define NLOHMANN_JSON_HAS_HELPER(type) \ template struct has_##type { \ private: \ template \ static int detect(U &&); \ static void detect(...); \ public: \ static constexpr bool value = \ std::is_integral()))>::value; \ } NLOHMANN_JSON_HAS_HELPER(mapped_type); NLOHMANN_JSON_HAS_HELPER(key_type); NLOHMANN_JSON_HAS_HELPER(value_type); NLOHMANN_JSON_HAS_HELPER(iterator); #undef NLOHMANN_JSON_HAS_HELPER template struct is_compatible_object_type_impl : std::false_type {}; template struct is_compatible_object_type_impl { static constexpr auto value = std::is_constructible::value and std::is_constructible::value; }; template struct is_compatible_object_type { static auto constexpr value = is_compatible_object_type_impl < conjunction>, has_mapped_type, has_key_type>::value, typename BasicJsonType::object_t, CompatibleObjectType >::value; }; template struct is_basic_json_nested_type { static auto constexpr value = std::is_same::value or std::is_same::value or std::is_same::value or std::is_same::value or std::is_same::value; }; template struct is_compatible_array_type { static auto constexpr value = conjunction>, negation>, negation>, negation>, has_value_type, has_iterator>::value; }; template struct is_compatible_integer_type_impl : std::false_type {}; template struct is_compatible_integer_type_impl { // is there an assert somewhere on overflows? using RealLimits = std::numeric_limits; using CompatibleLimits = std::numeric_limits; static constexpr auto value = std::is_constructible::value and CompatibleLimits::is_integer and RealLimits::is_signed == CompatibleLimits::is_signed; }; template struct is_compatible_integer_type { static constexpr auto value = is_compatible_integer_type_impl < std::is_integral::value and not std::is_same::value, RealIntegerType, CompatibleNumberIntegerType > ::value; }; // trait checking if JSONSerializer::from_json(json const&, udt&) exists template struct has_from_json { private: // also check the return type of from_json template::from_json( std::declval(), std::declval()))>::value>> static int detect(U&&); static void detect(...); public: static constexpr bool value = std::is_integral>()))>::value; }; // This trait checks if JSONSerializer::from_json(json const&) exists // this overload is used for non-default-constructible user-defined-types template struct has_non_default_from_json { private: template < typename U, typename = enable_if_t::from_json(std::declval()))>::value >> static int detect(U&&); static void detect(...); public: static constexpr bool value = std::is_integral>()))>::value; }; // This trait checks if BasicJsonType::json_serializer::to_json exists template struct has_to_json { private: template::to_json( std::declval(), std::declval()))> static int detect(U&&); static void detect(...); public: static constexpr bool value = std::is_integral>()))>::value; }; ///////////// // to_json // ///////////// template void to_json(BasicJsonType& j, typename BasicJsonType::boolean_t b) noexcept { external_constructor::construct(j, b); } template::value, int> = 0> void to_json(BasicJsonType& j, const CompatibleString& s) { external_constructor::construct(j, s); } template::value, int> = 0> void to_json(BasicJsonType& j, FloatType val) noexcept { external_constructor::construct(j, static_cast(val)); } template < typename BasicJsonType, typename CompatibleNumberUnsignedType, enable_if_t::value, int> = 0 > void to_json(BasicJsonType& j, CompatibleNumberUnsignedType val) noexcept { external_constructor::construct(j, static_cast(val)); } template < typename BasicJsonType, typename CompatibleNumberIntegerType, enable_if_t::value, int> = 0 > void to_json(BasicJsonType& j, CompatibleNumberIntegerType val) noexcept { external_constructor::construct(j, static_cast(val)); } template::value, int> = 0> void to_json(BasicJsonType& j, UnscopedEnumType e) noexcept { external_constructor::construct(j, e); } template < typename BasicJsonType, typename CompatibleArrayType, enable_if_t < is_compatible_array_type::value or std::is_same::value, int > = 0 > void to_json(BasicJsonType& j, const CompatibleArrayType& arr) { external_constructor::construct(j, arr); } template < typename BasicJsonType, typename CompatibleObjectType, enable_if_t::value, int> = 0 > void to_json(BasicJsonType& j, const CompatibleObjectType& arr) { external_constructor::construct(j, arr); } /////////////// // from_json // /////////////// // overloads for basic_json template parameters template::value and not std::is_same::value, int> = 0> void get_arithmetic_value(const BasicJsonType& j, ArithmeticType& val) { switch (static_cast(j)) { case value_t::number_unsigned: { val = static_cast( *j.template get_ptr()); break; } case value_t::number_integer: { val = static_cast( *j.template get_ptr()); break; } case value_t::number_float: { val = static_cast( *j.template get_ptr()); break; } default: { JSON_THROW( std::domain_error("type must be number, but is " + j.type_name())); } } } template void from_json(const BasicJsonType& j, typename BasicJsonType::boolean_t& b) { if (not j.is_boolean()) { JSON_THROW(std::domain_error("type must be boolean, but is " + j.type_name())); } b = *j.template get_ptr(); } template void from_json(const BasicJsonType& j, typename BasicJsonType::string_t& s) { if (not j.is_string()) { JSON_THROW(std::domain_error("type must be string, but is " + j.type_name())); } s = *j.template get_ptr(); } template void from_json(const BasicJsonType& j, typename BasicJsonType::number_float_t& val) { get_arithmetic_value(j, val); } template void from_json(const BasicJsonType& j, typename BasicJsonType::number_unsigned_t& val) { get_arithmetic_value(j, val); } template void from_json(const BasicJsonType& j, typename BasicJsonType::number_integer_t& val) { get_arithmetic_value(j, val); } template::value, int> = 0> void from_json(const BasicJsonType& j, UnscopedEnumType& e) { typename std::underlying_type::type val = e; get_arithmetic_value(j, val); e = static_cast(val); } template void from_json(const BasicJsonType& j, typename BasicJsonType::array_t& arr) { if (not j.is_array()) { JSON_THROW(std::domain_error("type must be array, but is " + j.type_name())); } arr = *j.template get_ptr(); } // forward_list doesn't have an insert method template void from_json(const BasicJsonType& j, std::forward_list& l) { // do not perform the check when user wants to retrieve jsons // (except when it's null.. ?) if (j.is_null()) { JSON_THROW(std::domain_error("type must be array, but is " + j.type_name())); } if (not std::is_same::value) { if (not j.is_array()) { JSON_THROW(std::domain_error("type must be array, but is " + j.type_name())); } } for (auto it = j.rbegin(), end = j.rend(); it != end; ++it) { l.push_front(it->template get()); } } template void from_json_array_impl(const BasicJsonType& j, CompatibleArrayType& arr, priority_tag<0>) { using std::begin; using std::end; std::transform(j.begin(), j.end(), std::inserter(arr, end(arr)), [](const BasicJsonType & i) { // get() returns *this, this won't call a from_json // method when value_type is BasicJsonType return i.template get(); }); } template auto from_json_array_impl(const BasicJsonType& j, CompatibleArrayType& arr, priority_tag<1>) -> decltype( arr.reserve(std::declval()), void()) { using std::begin; using std::end; arr.reserve(j.size()); std::transform( j.begin(), j.end(), std::inserter(arr, end(arr)), [](const BasicJsonType & i) { // get() returns *this, this won't call a from_json // method when value_type is BasicJsonType return i.template get(); }); } template::value and not std::is_same::value, int> = 0> void from_json(const BasicJsonType& j, CompatibleArrayType& arr) { if (j.is_null()) { JSON_THROW(std::domain_error("type must be array, but is " + j.type_name())); } // when T == BasicJsonType, do not check if value_t is correct if (not std::is_same::value) { if (not j.is_array()) { JSON_THROW(std::domain_error("type must be array, but is " + j.type_name())); } } from_json_array_impl(j, arr, priority_tag<1> {}); } template::value, int> = 0> void from_json(const BasicJsonType& j, CompatibleObjectType& obj) { if (not j.is_object()) { JSON_THROW(std::domain_error("type must be object, but is " + j.type_name())); } auto inner_object = j.template get_ptr(); using std::begin; using std::end; // we could avoid the assignment, but this might require a for loop, which // might be less efficient than the container constructor for some // containers (would it?) obj = CompatibleObjectType(begin(*inner_object), end(*inner_object)); } // overload for arithmetic types, not chosen for basic_json template arguments // (BooleanType, etc..); note: Is it really necessary to provide explicit // overloads for boolean_t etc. in case of a custom BooleanType which is not // an arithmetic type? template::value and not std::is_same::value and not std::is_same::value and not std::is_same::value and not std::is_same::value, int> = 0> void from_json(const BasicJsonType& j, ArithmeticType& val) { switch (static_cast(j)) { case value_t::number_unsigned: { val = static_cast(*j.template get_ptr()); break; } case value_t::number_integer: { val = static_cast(*j.template get_ptr()); break; } case value_t::number_float: { val = static_cast(*j.template get_ptr()); break; } case value_t::boolean: { val = static_cast(*j.template get_ptr()); break; } default: { JSON_THROW(std::domain_error("type must be number, but is " + j.type_name())); } } } struct to_json_fn { private: template auto call(BasicJsonType& j, T&& val, priority_tag<1>) const noexcept(noexcept(to_json(j, std::forward(val)))) -> decltype(to_json(j, std::forward(val)), void()) { return to_json(j, std::forward(val)); } template void call(BasicJsonType&, T&&, priority_tag<0>) const noexcept { static_assert(sizeof(BasicJsonType) == 0, "could not find to_json() method in T's namespace"); } public: template void operator()(BasicJsonType& j, T&& val) const noexcept(noexcept(std::declval().call(j, std::forward(val), priority_tag<1> {}))) { return call(j, std::forward(val), priority_tag<1> {}); } }; struct from_json_fn { private: template auto call(const BasicJsonType& j, T& val, priority_tag<1>) const noexcept(noexcept(from_json(j, val))) -> decltype(from_json(j, val), void()) { return from_json(j, val); } template void call(const BasicJsonType&, T&, priority_tag<0>) const noexcept { static_assert(sizeof(BasicJsonType) == 0, "could not find from_json() method in T's namespace"); } public: template void operator()(const BasicJsonType& j, T& val) const noexcept(noexcept(std::declval().call(j, val, priority_tag<1> {}))) { return call(j, val, priority_tag<1> {}); } }; // taken from ranges-v3 template struct static_const { static constexpr T value{}; }; template constexpr T static_const::value; } // namespace detail /// namespace to hold default `to_json` / `from_json` functions namespace { constexpr const auto& to_json = detail::static_const::value; constexpr const auto& from_json = detail::static_const::value; } /*! @brief default JSONSerializer template argument This serializer ignores the template arguments and uses ADL ([argument-dependent lookup](http://en.cppreference.com/w/cpp/language/adl)) for serialization. */ template struct adl_serializer { /*! @brief convert a JSON value to any value type This function is usually called by the `get()` function of the @ref basic_json class (either explicit or via conversion operators). @param[in] j JSON value to read from @param[in, out] val value to write to */ template static void from_json(BasicJsonType&& j, ValueType& val) noexcept( noexcept(::nlohmann::from_json(std::forward(j), val))) { ::nlohmann::from_json(std::forward(j), val); } /*! @brief convert any value type to a JSON value This function is usually called by the constructors of the @ref basic_json class. @param[in, out] j JSON value to write to @param[in] val value to read from */ template static void to_json(BasicJsonType& j, ValueType&& val) noexcept( noexcept(::nlohmann::to_json(j, std::forward(val)))) { ::nlohmann::to_json(j, std::forward(val)); } }; /*! @brief a class to store JSON values @tparam ObjectType type for JSON objects (`std::map` by default; will be used in @ref object_t) @tparam ArrayType type for JSON arrays (`std::vector` by default; will be used in @ref array_t) @tparam StringType type for JSON strings and object keys (`std::string` by default; will be used in @ref string_t) @tparam BooleanType type for JSON booleans (`bool` by default; will be used in @ref boolean_t) @tparam NumberIntegerType type for JSON integer numbers (`int64_t` by default; will be used in @ref number_integer_t) @tparam NumberUnsignedType type for JSON unsigned integer numbers (@c `uint64_t` by default; will be used in @ref number_unsigned_t) @tparam NumberFloatType type for JSON floating-point numbers (`double` by default; will be used in @ref number_float_t) @tparam AllocatorType type of the allocator to use (`std::allocator` by default) @tparam JSONSerializer the serializer to resolve internal calls to `to_json()` and `from_json()` (@ref adl_serializer by default) @requirement The class satisfies the following concept requirements: - Basic - [DefaultConstructible](http://en.cppreference.com/w/cpp/concept/DefaultConstructible): JSON values can be default constructed. The result will be a JSON null value. - [MoveConstructible](http://en.cppreference.com/w/cpp/concept/MoveConstructible): A JSON value can be constructed from an rvalue argument. - [CopyConstructible](http://en.cppreference.com/w/cpp/concept/CopyConstructible): A JSON value can be copy-constructed from an lvalue expression. - [MoveAssignable](http://en.cppreference.com/w/cpp/concept/MoveAssignable): A JSON value van be assigned from an rvalue argument. - [CopyAssignable](http://en.cppreference.com/w/cpp/concept/CopyAssignable): A JSON value can be copy-assigned from an lvalue expression. - [Destructible](http://en.cppreference.com/w/cpp/concept/Destructible): JSON values can be destructed. - Layout - [StandardLayoutType](http://en.cppreference.com/w/cpp/concept/StandardLayoutType): JSON values have [standard layout](http://en.cppreference.com/w/cpp/language/data_members#Standard_layout): All non-static data members are private and standard layout types, the class has no virtual functions or (virtual) base classes. - Library-wide - [EqualityComparable](http://en.cppreference.com/w/cpp/concept/EqualityComparable): JSON values can be compared with `==`, see @ref operator==(const_reference,const_reference). - [LessThanComparable](http://en.cppreference.com/w/cpp/concept/LessThanComparable): JSON values can be compared with `<`, see @ref operator<(const_reference,const_reference). - [Swappable](http://en.cppreference.com/w/cpp/concept/Swappable): Any JSON lvalue or rvalue of can be swapped with any lvalue or rvalue of other compatible types, using unqualified function call @ref swap(). - [NullablePointer](http://en.cppreference.com/w/cpp/concept/NullablePointer): JSON values can be compared against `std::nullptr_t` objects which are used to model the `null` value. - Container - [Container](http://en.cppreference.com/w/cpp/concept/Container): JSON values can be used like STL containers and provide iterator access. - [ReversibleContainer](http://en.cppreference.com/w/cpp/concept/ReversibleContainer); JSON values can be used like STL containers and provide reverse iterator access. @invariant The member variables @a m_value and @a m_type have the following relationship: - If `m_type == value_t::object`, then `m_value.object != nullptr`. - If `m_type == value_t::array`, then `m_value.array != nullptr`. - If `m_type == value_t::string`, then `m_value.string != nullptr`. The invariants are checked by member function assert_invariant(). @internal @note ObjectType trick from http://stackoverflow.com/a/9860911 @endinternal @see [RFC 7159: The JavaScript Object Notation (JSON) Data Interchange Format](http://rfc7159.net/rfc7159) @since version 1.0.0 @nosubgrouping */ template < template class ObjectType = std::map, template class ArrayType = std::vector, class StringType = std::string, class BooleanType = bool, class NumberIntegerType = std::int64_t, class NumberUnsignedType = std::uint64_t, class NumberFloatType = double, template class AllocatorType = std::allocator, template class JSONSerializer = adl_serializer > class basic_json { private: template friend struct detail::external_constructor; /// workaround type for MSVC using basic_json_t = basic_json; public: using value_t = detail::value_t; // forward declarations template class iter_impl; template class json_reverse_iterator; class json_pointer; template using json_serializer = JSONSerializer; ///////////////////// // container types // ///////////////////// /// @name container types /// The canonic container types to use @ref basic_json like any other STL /// container. /// @{ /// the type of elements in a basic_json container using value_type = basic_json; /// the type of an element reference using reference = value_type&; /// the type of an element const reference using const_reference = const value_type&; /// a type to represent differences between iterators using difference_type = std::ptrdiff_t; /// a type to represent container sizes using size_type = std::size_t; /// the allocator type using allocator_type = AllocatorType; /// the type of an element pointer using pointer = typename std::allocator_traits::pointer; /// the type of an element const pointer using const_pointer = typename std::allocator_traits::const_pointer; /// an iterator for a basic_json container using iterator = iter_impl; /// a const iterator for a basic_json container using const_iterator = iter_impl; /// a reverse iterator for a basic_json container using reverse_iterator = json_reverse_iterator; /// a const reverse iterator for a basic_json container using const_reverse_iterator = json_reverse_iterator; /// @} /*! @brief returns the allocator associated with the container */ static allocator_type get_allocator() { return allocator_type(); } /*! @brief returns version information on the library This function returns a JSON object with information about the library, including the version number and information on the platform and compiler. @return JSON object holding version information key | description ----------- | --------------- `compiler` | Information on the used compiler. It is an object with the following keys: `c++` (the used C++ standard), `family` (the compiler family; possible values are `clang`, `icc`, `gcc`, `ilecpp`, `msvc`, `pgcpp`, `sunpro`, and `unknown`), and `version` (the compiler version). `copyright` | The copyright line for the library as string. `name` | The name of the library as string. `platform` | The used platform as string. Possible values are `win32`, `linux`, `apple`, `unix`, and `unknown`. `url` | The URL of the project as string. `version` | The version of the library. It is an object with the following keys: `major`, `minor`, and `patch` as defined by [Semantic Versioning](http://semver.org), and `string` (the version string). @liveexample{The following code shows an example output of the `meta()` function.,meta} @complexity Constant. @since 2.1.0 */ static basic_json meta() { basic_json result; result["copyright"] = "(C) 2013-2017 Niels Lohmann"; result["name"] = "JSON for Modern C++"; result["url"] = "https://github.com/nlohmann/json"; result["version"] = { {"string", "2.1.0"}, {"major", 2}, {"minor", 1}, {"patch", 0}, }; #ifdef _WIN32 result["platform"] = "win32"; #elif defined __linux__ result["platform"] = "linux"; #elif defined __APPLE__ result["platform"] = "apple"; #elif defined __unix__ result["platform"] = "unix"; #else result["platform"] = "unknown"; #endif #if defined(__clang__) result["compiler"] = {{"family", "clang"}, {"version", __clang_version__}}; #elif defined(__ICC) || defined(__INTEL_COMPILER) result["compiler"] = {{"family", "icc"}, {"version", __INTEL_COMPILER}}; #elif defined(__GNUC__) || defined(__GNUG__) result["compiler"] = {{"family", "gcc"}, {"version", std::to_string(__GNUC__) + "." + std::to_string(__GNUC_MINOR__) + "." + std::to_string(__GNUC_PATCHLEVEL__)}}; #elif defined(__HP_cc) || defined(__HP_aCC) result["compiler"] = "hp" #elif defined(__IBMCPP__) result["compiler"] = {{"family", "ilecpp"}, {"version", __IBMCPP__}}; #elif defined(_MSC_VER) result["compiler"] = {{"family", "msvc"}, {"version", _MSC_VER}}; #elif defined(__PGI) result["compiler"] = {{"family", "pgcpp"}, {"version", __PGI}}; #elif defined(__SUNPRO_CC) result["compiler"] = {{"family", "sunpro"}, {"version", __SUNPRO_CC}}; #else result["compiler"] = {{"family", "unknown"}, {"version", "unknown"}}; #endif #ifdef __cplusplus result["compiler"]["c++"] = std::to_string(__cplusplus); #else result["compiler"]["c++"] = "unknown"; #endif return result; } /////////////////////////// // JSON value data types // /////////////////////////// /// @name JSON value data types /// The data types to store a JSON value. These types are derived from /// the template arguments passed to class @ref basic_json. /// @{ /*! @brief a type for an object [RFC 7159](http://rfc7159.net/rfc7159) describes JSON objects as follows: > An object is an unordered collection of zero or more name/value pairs, > where a name is a string and a value is a string, number, boolean, null, > object, or array. To store objects in C++, a type is defined by the template parameters described below. @tparam ObjectType the container to store objects (e.g., `std::map` or `std::unordered_map`) @tparam StringType the type of the keys or names (e.g., `std::string`). The comparison function `std::less` is used to order elements inside the container. @tparam AllocatorType the allocator to use for objects (e.g., `std::allocator`) #### Default type With the default values for @a ObjectType (`std::map`), @a StringType (`std::string`), and @a AllocatorType (`std::allocator`), the default value for @a object_t is: @code {.cpp} std::map< std::string, // key_type basic_json, // value_type std::less, // key_compare std::allocator> // allocator_type > @endcode #### Behavior The choice of @a object_t influences the behavior of the JSON class. With the default type, objects have the following behavior: - When all names are unique, objects will be interoperable in the sense that all software implementations receiving that object will agree on the name-value mappings. - When the names within an object are not unique, later stored name/value pairs overwrite previously stored name/value pairs, leaving the used names unique. For instance, `{"key": 1}` and `{"key": 2, "key": 1}` will be treated as equal and both stored as `{"key": 1}`. - Internally, name/value pairs are stored in lexicographical order of the names. Objects will also be serialized (see @ref dump) in this order. For instance, `{"b": 1, "a": 2}` and `{"a": 2, "b": 1}` will be stored and serialized as `{"a": 2, "b": 1}`. - When comparing objects, the order of the name/value pairs is irrelevant. This makes objects interoperable in the sense that they will not be affected by these differences. For instance, `{"b": 1, "a": 2}` and `{"a": 2, "b": 1}` will be treated as equal. #### Limits [RFC 7159](http://rfc7159.net/rfc7159) specifies: > An implementation may set limits on the maximum depth of nesting. In this class, the object's limit of nesting is not constraint explicitly. However, a maximum depth of nesting may be introduced by the compiler or runtime environment. A theoretical limit can be queried by calling the @ref max_size function of a JSON object. #### Storage Objects are stored as pointers in a @ref basic_json type. That is, for any access to object values, a pointer of type `object_t*` must be dereferenced. @sa @ref array_t -- type for an array value @since version 1.0.0 @note The order name/value pairs are added to the object is *not* preserved by the library. Therefore, iterating an object may return name/value pairs in a different order than they were originally stored. In fact, keys will be traversed in alphabetical order as `std::map` with `std::less` is used by default. Please note this behavior conforms to [RFC 7159](http://rfc7159.net/rfc7159), because any order implements the specified "unordered" nature of JSON objects. */ using object_t = ObjectType, AllocatorType>>; /*! @brief a type for an array [RFC 7159](http://rfc7159.net/rfc7159) describes JSON arrays as follows: > An array is an ordered sequence of zero or more values. To store objects in C++, a type is defined by the template parameters explained below. @tparam ArrayType container type to store arrays (e.g., `std::vector` or `std::list`) @tparam AllocatorType allocator to use for arrays (e.g., `std::allocator`) #### Default type With the default values for @a ArrayType (`std::vector`) and @a AllocatorType (`std::allocator`), the default value for @a array_t is: @code {.cpp} std::vector< basic_json, // value_type std::allocator // allocator_type > @endcode #### Limits [RFC 7159](http://rfc7159.net/rfc7159) specifies: > An implementation may set limits on the maximum depth of nesting. In this class, the array's limit of nesting is not constraint explicitly. However, a maximum depth of nesting may be introduced by the compiler or runtime environment. A theoretical limit can be queried by calling the @ref max_size function of a JSON array. #### Storage Arrays are stored as pointers in a @ref basic_json type. That is, for any access to array values, a pointer of type `array_t*` must be dereferenced. @sa @ref object_t -- type for an object value @since version 1.0.0 */ using array_t = ArrayType>; /*! @brief a type for a string [RFC 7159](http://rfc7159.net/rfc7159) describes JSON strings as follows: > A string is a sequence of zero or more Unicode characters. To store objects in C++, a type is defined by the template parameter described below. Unicode values are split by the JSON class into byte-sized characters during deserialization. @tparam StringType the container to store strings (e.g., `std::string`). Note this container is used for keys/names in objects, see @ref object_t. #### Default type With the default values for @a StringType (`std::string`), the default value for @a string_t is: @code {.cpp} std::string @endcode #### Encoding Strings are stored in UTF-8 encoding. Therefore, functions like `std::string::size()` or `std::string::length()` return the number of bytes in the string rather than the number of characters or glyphs. #### String comparison [RFC 7159](http://rfc7159.net/rfc7159) states: > Software implementations are typically required to test names of object > members for equality. Implementations that transform the textual > representation into sequences of Unicode code units and then perform the > comparison numerically, code unit by code unit, are interoperable in the > sense that implementations will agree in all cases on equality or > inequality of two strings. For example, implementations that compare > strings with escaped characters unconverted may incorrectly find that > `"a\\b"` and `"a\u005Cb"` are not equal. This implementation is interoperable as it does compare strings code unit by code unit. #### Storage String values are stored as pointers in a @ref basic_json type. That is, for any access to string values, a pointer of type `string_t*` must be dereferenced. @since version 1.0.0 */ using string_t = StringType; /*! @brief a type for a boolean [RFC 7159](http://rfc7159.net/rfc7159) implicitly describes a boolean as a type which differentiates the two literals `true` and `false`. To store objects in C++, a type is defined by the template parameter @a BooleanType which chooses the type to use. #### Default type With the default values for @a BooleanType (`bool`), the default value for @a boolean_t is: @code {.cpp} bool @endcode #### Storage Boolean values are stored directly inside a @ref basic_json type. @since version 1.0.0 */ using boolean_t = BooleanType; /*! @brief a type for a number (integer) [RFC 7159](http://rfc7159.net/rfc7159) describes numbers as follows: > The representation of numbers is similar to that used in most > programming languages. A number is represented in base 10 using decimal > digits. It contains an integer component that may be prefixed with an > optional minus sign, which may be followed by a fraction part and/or an > exponent part. Leading zeros are not allowed. (...) Numeric values that > cannot be represented in the grammar below (such as Infinity and NaN) > are not permitted. This description includes both integer and floating-point numbers. However, C++ allows more precise storage if it is known whether the number is a signed integer, an unsigned integer or a floating-point number. Therefore, three different types, @ref number_integer_t, @ref number_unsigned_t and @ref number_float_t are used. To store integer numbers in C++, a type is defined by the template parameter @a NumberIntegerType which chooses the type to use. #### Default type With the default values for @a NumberIntegerType (`int64_t`), the default value for @a number_integer_t is: @code {.cpp} int64_t @endcode #### Default behavior - The restrictions about leading zeros is not enforced in C++. Instead, leading zeros in integer literals lead to an interpretation as octal number. Internally, the value will be stored as decimal number. For instance, the C++ integer literal `010` will be serialized to `8`. During deserialization, leading zeros yield an error. - Not-a-number (NaN) values will be serialized to `null`. #### Limits [RFC 7159](http://rfc7159.net/rfc7159) specifies: > An implementation may set limits on the range and precision of numbers. When the default type is used, the maximal integer number that can be stored is `9223372036854775807` (INT64_MAX) and the minimal integer number that can be stored is `-9223372036854775808` (INT64_MIN). Integer numbers that are out of range will yield over/underflow when used in a constructor. During deserialization, too large or small integer numbers will be automatically be stored as @ref number_unsigned_t or @ref number_float_t. [RFC 7159](http://rfc7159.net/rfc7159) further states: > Note that when such software is used, numbers that are integers and are > in the range \f$[-2^{53}+1, 2^{53}-1]\f$ are interoperable in the sense > that implementations will agree exactly on their numeric values. As this range is a subrange of the exactly supported range [INT64_MIN, INT64_MAX], this class's integer type is interoperable. #### Storage Integer number values are stored directly inside a @ref basic_json type. @sa @ref number_float_t -- type for number values (floating-point) @sa @ref number_unsigned_t -- type for number values (unsigned integer) @since version 1.0.0 */ using number_integer_t = NumberIntegerType; /*! @brief a type for a number (unsigned) [RFC 7159](http://rfc7159.net/rfc7159) describes numbers as follows: > The representation of numbers is similar to that used in most > programming languages. A number is represented in base 10 using decimal > digits. It contains an integer component that may be prefixed with an > optional minus sign, which may be followed by a fraction part and/or an > exponent part. Leading zeros are not allowed. (...) Numeric values that > cannot be represented in the grammar below (such as Infinity and NaN) > are not permitted. This description includes both integer and floating-point numbers. However, C++ allows more precise storage if it is known whether the number is a signed integer, an unsigned integer or a floating-point number. Therefore, three different types, @ref number_integer_t, @ref number_unsigned_t and @ref number_float_t are used. To store unsigned integer numbers in C++, a type is defined by the template parameter @a NumberUnsignedType which chooses the type to use. #### Default type With the default values for @a NumberUnsignedType (`uint64_t`), the default value for @a number_unsigned_t is: @code {.cpp} uint64_t @endcode #### Default behavior - The restrictions about leading zeros is not enforced in C++. Instead, leading zeros in integer literals lead to an interpretation as octal number. Internally, the value will be stored as decimal number. For instance, the C++ integer literal `010` will be serialized to `8`. During deserialization, leading zeros yield an error. - Not-a-number (NaN) values will be serialized to `null`. #### Limits [RFC 7159](http://rfc7159.net/rfc7159) specifies: > An implementation may set limits on the range and precision of numbers. When the default type is used, the maximal integer number that can be stored is `18446744073709551615` (UINT64_MAX) and the minimal integer number that can be stored is `0`. Integer numbers that are out of range will yield over/underflow when used in a constructor. During deserialization, too large or small integer numbers will be automatically be stored as @ref number_integer_t or @ref number_float_t. [RFC 7159](http://rfc7159.net/rfc7159) further states: > Note that when such software is used, numbers that are integers and are > in the range \f$[-2^{53}+1, 2^{53}-1]\f$ are interoperable in the sense > that implementations will agree exactly on their numeric values. As this range is a subrange (when considered in conjunction with the number_integer_t type) of the exactly supported range [0, UINT64_MAX], this class's integer type is interoperable. #### Storage Integer number values are stored directly inside a @ref basic_json type. @sa @ref number_float_t -- type for number values (floating-point) @sa @ref number_integer_t -- type for number values (integer) @since version 2.0.0 */ using number_unsigned_t = NumberUnsignedType; /*! @brief a type for a number (floating-point) [RFC 7159](http://rfc7159.net/rfc7159) describes numbers as follows: > The representation of numbers is similar to that used in most > programming languages. A number is represented in base 10 using decimal > digits. It contains an integer component that may be prefixed with an > optional minus sign, which may be followed by a fraction part and/or an > exponent part. Leading zeros are not allowed. (...) Numeric values that > cannot be represented in the grammar below (such as Infinity and NaN) > are not permitted. This description includes both integer and floating-point numbers. However, C++ allows more precise storage if it is known whether the number is a signed integer, an unsigned integer or a floating-point number. Therefore, three different types, @ref number_integer_t, @ref number_unsigned_t and @ref number_float_t are used. To store floating-point numbers in C++, a type is defined by the template parameter @a NumberFloatType which chooses the type to use. #### Default type With the default values for @a NumberFloatType (`double`), the default value for @a number_float_t is: @code {.cpp} double @endcode #### Default behavior - The restrictions about leading zeros is not enforced in C++. Instead, leading zeros in floating-point literals will be ignored. Internally, the value will be stored as decimal number. For instance, the C++ floating-point literal `01.2` will be serialized to `1.2`. During deserialization, leading zeros yield an error. - Not-a-number (NaN) values will be serialized to `null`. #### Limits [RFC 7159](http://rfc7159.net/rfc7159) states: > This specification allows implementations to set limits on the range and > precision of numbers accepted. Since software that implements IEEE > 754-2008 binary64 (double precision) numbers is generally available and > widely used, good interoperability can be achieved by implementations > that expect no more precision or range than these provide, in the sense > that implementations will approximate JSON numbers within the expected > precision. This implementation does exactly follow this approach, as it uses double precision floating-point numbers. Note values smaller than `-1.79769313486232e+308` and values greater than `1.79769313486232e+308` will be stored as NaN internally and be serialized to `null`. #### Storage Floating-point number values are stored directly inside a @ref basic_json type. @sa @ref number_integer_t -- type for number values (integer) @sa @ref number_unsigned_t -- type for number values (unsigned integer) @since version 1.0.0 */ using number_float_t = NumberFloatType; /// @} private: /// helper for exception-safe object creation template static T* create(Args&& ... args) { AllocatorType alloc; auto deleter = [&](T * object) { alloc.deallocate(object, 1); }; std::unique_ptr object(alloc.allocate(1), deleter); alloc.construct(object.get(), std::forward(args)...); assert(object != nullptr); return object.release(); } //////////////////////// // JSON value storage // //////////////////////// /*! @brief a JSON value The actual storage for a JSON value of the @ref basic_json class. This union combines the different storage types for the JSON value types defined in @ref value_t. JSON type | value_t type | used type --------- | --------------- | ------------------------ object | object | pointer to @ref object_t array | array | pointer to @ref array_t string | string | pointer to @ref string_t boolean | boolean | @ref boolean_t number | number_integer | @ref number_integer_t number | number_unsigned | @ref number_unsigned_t number | number_float | @ref number_float_t null | null | *no value is stored* @note Variable-length types (objects, arrays, and strings) are stored as pointers. The size of the union should not exceed 64 bits if the default value types are used. @since version 1.0.0 */ union json_value { /// object (stored with pointer to save storage) object_t* object; /// array (stored with pointer to save storage) array_t* array; /// string (stored with pointer to save storage) string_t* string; /// boolean boolean_t boolean; /// number (integer) number_integer_t number_integer; /// number (unsigned integer) number_unsigned_t number_unsigned; /// number (floating-point) number_float_t number_float; /// default constructor (for null values) json_value() = default; /// constructor for booleans json_value(boolean_t v) noexcept : boolean(v) {} /// constructor for numbers (integer) json_value(number_integer_t v) noexcept : number_integer(v) {} /// constructor for numbers (unsigned) json_value(number_unsigned_t v) noexcept : number_unsigned(v) {} /// constructor for numbers (floating-point) json_value(number_float_t v) noexcept : number_float(v) {} /// constructor for empty values of a given type json_value(value_t t) { switch (t) { case value_t::object: { object = create(); break; } case value_t::array: { array = create(); break; } case value_t::string: { string = create(""); break; } case value_t::boolean: { boolean = boolean_t(false); break; } case value_t::number_integer: { number_integer = number_integer_t(0); break; } case value_t::number_unsigned: { number_unsigned = number_unsigned_t(0); break; } case value_t::number_float: { number_float = number_float_t(0.0); break; } case value_t::null: { break; } default: { if (t == value_t::null) { JSON_THROW(std::domain_error("961c151d2e87f2686a955a9be24d316f1362bf21 2.1.0")); // LCOV_EXCL_LINE } break; } } } /// constructor for strings json_value(const string_t& value) { string = create(value); } /// constructor for objects json_value(const object_t& value) { object = create(value); } /// constructor for arrays json_value(const array_t& value) { array = create(value); } }; /*! @brief checks the class invariants This function asserts the class invariants. It needs to be called at the end of every constructor to make sure that created objects respect the invariant. Furthermore, it has to be called each time the type of a JSON value is changed, because the invariant expresses a relationship between @a m_type and @a m_value. */ void assert_invariant() const { assert(m_type != value_t::object or m_value.object != nullptr); assert(m_type != value_t::array or m_value.array != nullptr); assert(m_type != value_t::string or m_value.string != nullptr); } public: ////////////////////////// // JSON parser callback // ////////////////////////// /*! @brief JSON callback events This enumeration lists the parser events that can trigger calling a callback function of type @ref parser_callback_t during parsing. @image html callback_events.png "Example when certain parse events are triggered" @since version 1.0.0 */ enum class parse_event_t : uint8_t { /// the parser read `{` and started to process a JSON object object_start, /// the parser read `}` and finished processing a JSON object object_end, /// the parser read `[` and started to process a JSON array array_start, /// the parser read `]` and finished processing a JSON array array_end, /// the parser read a key of a value in an object key, /// the parser finished reading a JSON value value }; /*! @brief per-element parser callback type With a parser callback function, the result of parsing a JSON text can be influenced. When passed to @ref parse(std::istream&, const parser_callback_t) or @ref parse(const CharT, const parser_callback_t), it is called on certain events (passed as @ref parse_event_t via parameter @a event) with a set recursion depth @a depth and context JSON value @a parsed. The return value of the callback function is a boolean indicating whether the element that emitted the callback shall be kept or not. We distinguish six scenarios (determined by the event type) in which the callback function can be called. The following table describes the values of the parameters @a depth, @a event, and @a parsed. parameter @a event | description | parameter @a depth | parameter @a parsed ------------------ | ----------- | ------------------ | ------------------- parse_event_t::object_start | the parser read `{` and started to process a JSON object | depth of the parent of the JSON object | a JSON value with type discarded parse_event_t::key | the parser read a key of a value in an object | depth of the currently parsed JSON object | a JSON string containing the key parse_event_t::object_end | the parser read `}` and finished processing a JSON object | depth of the parent of the JSON object | the parsed JSON object parse_event_t::array_start | the parser read `[` and started to process a JSON array | depth of the parent of the JSON array | a JSON value with type discarded parse_event_t::array_end | the parser read `]` and finished processing a JSON array | depth of the parent of the JSON array | the parsed JSON array parse_event_t::value | the parser finished reading a JSON value | depth of the value | the parsed JSON value @image html callback_events.png "Example when certain parse events are triggered" Discarding a value (i.e., returning `false`) has different effects depending on the context in which function was called: - Discarded values in structured types are skipped. That is, the parser will behave as if the discarded value was never read. - In case a value outside a structured type is skipped, it is replaced with `null`. This case happens if the top-level element is skipped. @param[in] depth the depth of the recursion during parsing @param[in] event an event of type parse_event_t indicating the context in the callback function has been called @param[in,out] parsed the current intermediate parse result; note that writing to this value has no effect for parse_event_t::key events @return Whether the JSON value which called the function during parsing should be kept (`true`) or not (`false`). In the latter case, it is either skipped completely or replaced by an empty discarded object. @sa @ref parse(std::istream&, parser_callback_t) or @ref parse(const CharT, const parser_callback_t) for examples @since version 1.0.0 */ using parser_callback_t = std::function; ////////////////// // constructors // ////////////////// /// @name constructors and destructors /// Constructors of class @ref basic_json, copy/move constructor, copy /// assignment, static functions creating objects, and the destructor. /// @{ /*! @brief create an empty value with a given type Create an empty JSON value with a given type. The value will be default initialized with an empty value which depends on the type: Value type | initial value ----------- | ------------- null | `null` boolean | `false` string | `""` number | `0` object | `{}` array | `[]` @param[in] value_type the type of the value to create @complexity Constant. @throw std::bad_alloc if allocation for object, array, or string value fails @liveexample{The following code shows the constructor for different @ref value_t values,basic_json__value_t} @since version 1.0.0 */ basic_json(const value_t value_type) : m_type(value_type), m_value(value_type) { assert_invariant(); } /*! @brief create a null object Create a `null` JSON value. It either takes a null pointer as parameter (explicitly creating `null`) or no parameter (implicitly creating `null`). The passed null pointer itself is not read -- it is only used to choose the right constructor. @complexity Constant. @exceptionsafety No-throw guarantee: this constructor never throws exceptions. @liveexample{The following code shows the constructor with and without a null pointer parameter.,basic_json__nullptr_t} @since version 1.0.0 */ basic_json(std::nullptr_t = nullptr) noexcept : basic_json(value_t::null) { assert_invariant(); } /*! @brief create a JSON value This is a "catch all" constructor for all compatible JSON types; that is, types for which a `to_json()` method exsits. The constructor forwards the parameter @a val to that method (to `json_serializer::to_json` method with `U = uncvref_t`, to be exact). Template type @a CompatibleType includes, but is not limited to, the following types: - **arrays**: @ref array_t and all kinds of compatible containers such as `std::vector`, `std::deque`, `std::list`, `std::forward_list`, `std::array`, `std::set`, `std::unordered_set`, `std::multiset`, and `unordered_multiset` with a `value_type` from which a @ref basic_json value can be constructed. - **objects**: @ref object_t and all kinds of compatible associative containers such as `std::map`, `std::unordered_map`, `std::multimap`, and `std::unordered_multimap` with a `key_type` compatible to @ref string_t and a `value_type` from which a @ref basic_json value can be constructed. - **strings**: @ref string_t, string literals, and all compatible string containers can be used. - **numbers**: @ref number_integer_t, @ref number_unsigned_t, @ref number_float_t, and all convertible number types such as `int`, `size_t`, `int64_t`, `float` or `double` can be used. - **boolean**: @ref boolean_t / `bool` can be used. See the examples below. @tparam CompatibleType a type such that: - @a CompatibleType is not derived from `std::istream`, - @a CompatibleType is not @ref basic_json (to avoid hijacking copy/move constructors), - @a CompatibleType is not a @ref basic_json nested type (e.g., @ref json_pointer, @ref iterator, etc ...) - @ref @ref json_serializer has a `to_json(basic_json_t&, CompatibleType&&)` method @tparam U = `uncvref_t` @param[in] val the value to be forwarded @complexity Usually linear in the size of the passed @a val, also depending on the implementation of the called `to_json()` method. @throw what `json_serializer::to_json()` throws @liveexample{The following code shows the constructor with several compatible types.,basic_json__CompatibleType} @since version 2.1.0 */ template, detail::enable_if_t::value and not std::is_same::value and not detail::is_basic_json_nested_type< basic_json_t, U>::value and detail::has_to_json::value, int> = 0> basic_json(CompatibleType && val) noexcept(noexcept(JSONSerializer::to_json( std::declval(), std::forward(val)))) { JSONSerializer::to_json(*this, std::forward(val)); assert_invariant(); } /*! @brief create a container (array or object) from an initializer list Creates a JSON value of type array or object from the passed initializer list @a init. In case @a type_deduction is `true` (default), the type of the JSON value to be created is deducted from the initializer list @a init according to the following rules: 1. If the list is empty, an empty JSON object value `{}` is created. 2. If the list consists of pairs whose first element is a string, a JSON object value is created where the first elements of the pairs are treated as keys and the second elements are as values. 3. In all other cases, an array is created. The rules aim to create the best fit between a C++ initializer list and JSON values. The rationale is as follows: 1. The empty initializer list is written as `{}` which is exactly an empty JSON object. 2. C++ has now way of describing mapped types other than to list a list of pairs. As JSON requires that keys must be of type string, rule 2 is the weakest constraint one can pose on initializer lists to interpret them as an object. 3. In all other cases, the initializer list could not be interpreted as JSON object type, so interpreting it as JSON array type is safe. With the rules described above, the following JSON values cannot be expressed by an initializer list: - the empty array (`[]`): use @ref array(std::initializer_list) with an empty initializer list in this case - arrays whose elements satisfy rule 2: use @ref array(std::initializer_list) with the same initializer list in this case @note When used without parentheses around an empty initializer list, @ref basic_json() is called instead of this function, yielding the JSON null value. @param[in] init initializer list with JSON values @param[in] type_deduction internal parameter; when set to `true`, the type of the JSON value is deducted from the initializer list @a init; when set to `false`, the type provided via @a manual_type is forced. This mode is used by the functions @ref array(std::initializer_list) and @ref object(std::initializer_list). @param[in] manual_type internal parameter; when @a type_deduction is set to `false`, the created JSON value will use the provided type (only @ref value_t::array and @ref value_t::object are valid); when @a type_deduction is set to `true`, this parameter has no effect @throw std::domain_error if @a type_deduction is `false`, @a manual_type is `value_t::object`, but @a init contains an element which is not a pair whose first element is a string; example: `"cannot create object from initializer list"` @complexity Linear in the size of the initializer list @a init. @liveexample{The example below shows how JSON values are created from initializer lists.,basic_json__list_init_t} @sa @ref array(std::initializer_list) -- create a JSON array value from an initializer list @sa @ref object(std::initializer_list) -- create a JSON object value from an initializer list @since version 1.0.0 */ basic_json(std::initializer_list init, bool type_deduction = true, value_t manual_type = value_t::array) { // check if each element is an array with two elements whose first // element is a string bool is_an_object = std::all_of(init.begin(), init.end(), [](const basic_json & element) { return element.is_array() and element.size() == 2 and element[0].is_string(); }); // adjust type if type deduction is not wanted if (not type_deduction) { // if array is wanted, do not create an object though possible if (manual_type == value_t::array) { is_an_object = false; } // if object is wanted but impossible, throw an exception if (manual_type == value_t::object and not is_an_object) { JSON_THROW(std::domain_error("cannot create object from initializer list")); } } if (is_an_object) { // the initializer list is a list of pairs -> create object m_type = value_t::object; m_value = value_t::object; std::for_each(init.begin(), init.end(), [this](const basic_json & element) { m_value.object->emplace(*(element[0].m_value.string), element[1]); }); } else { // the initializer list describes an array -> create array m_type = value_t::array; m_value.array = create(init); } assert_invariant(); } /*! @brief explicitly create an array from an initializer list Creates a JSON array value from a given initializer list. That is, given a list of values `a, b, c`, creates the JSON value `[a, b, c]`. If the initializer list is empty, the empty array `[]` is created. @note This function is only needed to express two edge cases that cannot be realized with the initializer list constructor (@ref basic_json(std::initializer_list, bool, value_t)). These cases are: 1. creating an array whose elements are all pairs whose first element is a string -- in this case, the initializer list constructor would create an object, taking the first elements as keys 2. creating an empty array -- passing the empty initializer list to the initializer list constructor yields an empty object @param[in] init initializer list with JSON values to create an array from (optional) @return JSON array value @complexity Linear in the size of @a init. @liveexample{The following code shows an example for the `array` function.,array} @sa @ref basic_json(std::initializer_list, bool, value_t) -- create a JSON value from an initializer list @sa @ref object(std::initializer_list) -- create a JSON object value from an initializer list @since version 1.0.0 */ static basic_json array(std::initializer_list init = std::initializer_list()) { return basic_json(init, false, value_t::array); } /*! @brief explicitly create an object from an initializer list Creates a JSON object value from a given initializer list. The initializer lists elements must be pairs, and their first elements must be strings. If the initializer list is empty, the empty object `{}` is created. @note This function is only added for symmetry reasons. In contrast to the related function @ref array(std::initializer_list), there are no cases which can only be expressed by this function. That is, any initializer list @a init can also be passed to the initializer list constructor @ref basic_json(std::initializer_list, bool, value_t). @param[in] init initializer list to create an object from (optional) @return JSON object value @throw std::domain_error if @a init is not a pair whose first elements are strings; thrown by @ref basic_json(std::initializer_list, bool, value_t) @complexity Linear in the size of @a init. @liveexample{The following code shows an example for the `object` function.,object} @sa @ref basic_json(std::initializer_list, bool, value_t) -- create a JSON value from an initializer list @sa @ref array(std::initializer_list) -- create a JSON array value from an initializer list @since version 1.0.0 */ static basic_json object(std::initializer_list init = std::initializer_list()) { return basic_json(init, false, value_t::object); } /*! @brief construct an array with count copies of given value Constructs a JSON array value by creating @a cnt copies of a passed value. In case @a cnt is `0`, an empty array is created. As postcondition, `std::distance(begin(),end()) == cnt` holds. @param[in] cnt the number of JSON copies of @a val to create @param[in] val the JSON value to copy @complexity Linear in @a cnt. @liveexample{The following code shows examples for the @ref basic_json(size_type\, const basic_json&) constructor.,basic_json__size_type_basic_json} @since version 1.0.0 */ basic_json(size_type cnt, const basic_json& val) : m_type(value_t::array) { m_value.array = create(cnt, val); assert_invariant(); } /*! @brief construct a JSON container given an iterator range Constructs the JSON value with the contents of the range `[first, last)`. The semantics depends on the different types a JSON value can have: - In case of primitive types (number, boolean, or string), @a first must be `begin()` and @a last must be `end()`. In this case, the value is copied. Otherwise, std::out_of_range is thrown. - In case of structured types (array, object), the constructor behaves as similar versions for `std::vector`. - In case of a null type, std::domain_error is thrown. @tparam InputIT an input iterator type (@ref iterator or @ref const_iterator) @param[in] first begin of the range to copy from (included) @param[in] last end of the range to copy from (excluded) @pre Iterators @a first and @a last must be initialized. **This precondition is enforced with an assertion.** @throw std::domain_error if iterators are not compatible; that is, do not belong to the same JSON value; example: `"iterators are not compatible"` @throw std::out_of_range if iterators are for a primitive type (number, boolean, or string) where an out of range error can be detected easily; example: `"iterators out of range"` @throw std::bad_alloc if allocation for object, array, or string fails @throw std::domain_error if called with a null value; example: `"cannot use construct with iterators from null"` @complexity Linear in distance between @a first and @a last. @liveexample{The example below shows several ways to create JSON values by specifying a subrange with iterators.,basic_json__InputIt_InputIt} @since version 1.0.0 */ template::value or std::is_same::value, int>::type = 0> basic_json(InputIT first, InputIT last) { assert(first.m_object != nullptr); assert(last.m_object != nullptr); // make sure iterator fits the current value if (first.m_object != last.m_object) { JSON_THROW(std::domain_error("iterators are not compatible")); } // copy type from first iterator m_type = first.m_object->m_type; // check if iterator range is complete for primitive values switch (m_type) { case value_t::boolean: case value_t::number_float: case value_t::number_integer: case value_t::number_unsigned: case value_t::string: { if (not first.m_it.primitive_iterator.is_begin() or not last.m_it.primitive_iterator.is_end()) { JSON_THROW(std::out_of_range("iterators out of range")); } break; } default: { break; } } switch (m_type) { case value_t::number_integer: { m_value.number_integer = first.m_object->m_value.number_integer; break; } case value_t::number_unsigned: { m_value.number_unsigned = first.m_object->m_value.number_unsigned; break; } case value_t::number_float: { m_value.number_float = first.m_object->m_value.number_float; break; } case value_t::boolean: { m_value.boolean = first.m_object->m_value.boolean; break; } case value_t::string: { m_value = *first.m_object->m_value.string; break; } case value_t::object: { m_value.object = create(first.m_it.object_iterator, last.m_it.object_iterator); break; } case value_t::array: { m_value.array = create(first.m_it.array_iterator, last.m_it.array_iterator); break; } default: { JSON_THROW(std::domain_error("cannot use construct with iterators from " + first.m_object->type_name())); } } assert_invariant(); } /*! @brief construct a JSON value given an input stream @param[in,out] i stream to read a serialized JSON value from @param[in] cb a parser callback function of type @ref parser_callback_t which is used to control the deserialization by filtering unwanted values (optional) @complexity Linear in the length of the input. The parser is a predictive LL(1) parser. The complexity can be higher if the parser callback function @a cb has a super-linear complexity. @note A UTF-8 byte order mark is silently ignored. @deprecated This constructor is deprecated and will be removed in version 3.0.0 to unify the interface of the library. Deserialization will be done by stream operators or by calling one of the `parse` functions, e.g. @ref parse(std::istream&, const parser_callback_t). That is, calls like `json j(i);` for an input stream @a i need to be replaced by `json j = json::parse(i);`. See the example below. @liveexample{The example below demonstrates constructing a JSON value from a `std::stringstream` with and without callback function.,basic_json__istream} @since version 2.0.0, deprecated in version 2.0.3, to be removed in version 3.0.0 */ JSON_DEPRECATED explicit basic_json(std::istream& i, const parser_callback_t cb = nullptr) { *this = parser(i, cb).parse(); assert_invariant(); } /////////////////////////////////////// // other constructors and destructor // /////////////////////////////////////// /*! @brief copy constructor Creates a copy of a given JSON value. @param[in] other the JSON value to copy @complexity Linear in the size of @a other. @requirement This function helps `basic_json` satisfying the [Container](http://en.cppreference.com/w/cpp/concept/Container) requirements: - The complexity is linear. - As postcondition, it holds: `other == basic_json(other)`. @throw std::bad_alloc if allocation for object, array, or string fails. @liveexample{The following code shows an example for the copy constructor.,basic_json__basic_json} @since version 1.0.0 */ basic_json(const basic_json& other) : m_type(other.m_type) { // check of passed value is valid other.assert_invariant(); switch (m_type) { case value_t::object: { m_value = *other.m_value.object; break; } case value_t::array: { m_value = *other.m_value.array; break; } case value_t::string: { m_value = *other.m_value.string; break; } case value_t::boolean: { m_value = other.m_value.boolean; break; } case value_t::number_integer: { m_value = other.m_value.number_integer; break; } case value_t::number_unsigned: { m_value = other.m_value.number_unsigned; break; } case value_t::number_float: { m_value = other.m_value.number_float; break; } default: { break; } } assert_invariant(); } /*! @brief move constructor Move constructor. Constructs a JSON value with the contents of the given value @a other using move semantics. It "steals" the resources from @a other and leaves it as JSON null value. @param[in,out] other value to move to this object @post @a other is a JSON null value @complexity Constant. @liveexample{The code below shows the move constructor explicitly called via std::move.,basic_json__moveconstructor} @since version 1.0.0 */ basic_json(basic_json&& other) noexcept : m_type(std::move(other.m_type)), m_value(std::move(other.m_value)) { // check that passed value is valid other.assert_invariant(); // invalidate payload other.m_type = value_t::null; other.m_value = {}; assert_invariant(); } /*! @brief copy assignment Copy assignment operator. Copies a JSON value via the "copy and swap" strategy: It is expressed in terms of the copy constructor, destructor, and the swap() member function. @param[in] other value to copy from @complexity Linear. @requirement This function helps `basic_json` satisfying the [Container](http://en.cppreference.com/w/cpp/concept/Container) requirements: - The complexity is linear. @liveexample{The code below shows and example for the copy assignment. It creates a copy of value `a` which is then swapped with `b`. Finally\, the copy of `a` (which is the null value after the swap) is destroyed.,basic_json__copyassignment} @since version 1.0.0 */ reference& operator=(basic_json other) noexcept ( std::is_nothrow_move_constructible::value and std::is_nothrow_move_assignable::value and std::is_nothrow_move_constructible::value and std::is_nothrow_move_assignable::value ) { // check that passed value is valid other.assert_invariant(); using std::swap; swap(m_type, other.m_type); swap(m_value, other.m_value); assert_invariant(); return *this; } /*! @brief destructor Destroys the JSON value and frees all allocated memory. @complexity Linear. @requirement This function helps `basic_json` satisfying the [Container](http://en.cppreference.com/w/cpp/concept/Container) requirements: - The complexity is linear. - All stored elements are destroyed and all memory is freed. @since version 1.0.0 */ ~basic_json() { assert_invariant(); switch (m_type) { case value_t::object: { AllocatorType alloc; alloc.destroy(m_value.object); alloc.deallocate(m_value.object, 1); break; } case value_t::array: { AllocatorType alloc; alloc.destroy(m_value.array); alloc.deallocate(m_value.array, 1); break; } case value_t::string: { AllocatorType alloc; alloc.destroy(m_value.string); alloc.deallocate(m_value.string, 1); break; } default: { // all other types need no specific destructor break; } } } /// @} public: /////////////////////// // object inspection // /////////////////////// /// @name object inspection /// Functions to inspect the type of a JSON value. /// @{ /*! @brief serialization Serialization function for JSON values. The function tries to mimic Python's `json.dumps()` function, and currently supports its @a indent parameter. @param[in] indent If indent is nonnegative, then array elements and object members will be pretty-printed with that indent level. An indent level of `0` will only insert newlines. `-1` (the default) selects the most compact representation. @return string containing the serialization of the JSON value @complexity Linear. @liveexample{The following example shows the effect of different @a indent parameters to the result of the serialization.,dump} @see https://docs.python.org/2/library/json.html#json.dump @since version 1.0.0 */ string_t dump(const int indent = -1) const { std::stringstream ss; // fix locale problems ss.imbue(std::locale::classic()); // 6, 15 or 16 digits of precision allows round-trip IEEE 754 // string->float->string, string->double->string or string->long // double->string; to be safe, we read this value from // std::numeric_limits::digits10 ss.precision(std::numeric_limits::digits10); if (indent >= 0) { dump(ss, true, static_cast(indent)); } else { dump(ss, false, 0); } return ss.str(); } /*! @brief return the type of the JSON value (explicit) Return the type of the JSON value as a value from the @ref value_t enumeration. @return the type of the JSON value @complexity Constant. @exceptionsafety No-throw guarantee: this member function never throws exceptions. @liveexample{The following code exemplifies `type()` for all JSON types.,type} @since version 1.0.0 */ constexpr value_t type() const noexcept { return m_type; } /*! @brief return whether type is primitive This function returns true iff the JSON type is primitive (string, number, boolean, or null). @return `true` if type is primitive (string, number, boolean, or null), `false` otherwise. @complexity Constant. @exceptionsafety No-throw guarantee: this member function never throws exceptions. @liveexample{The following code exemplifies `is_primitive()` for all JSON types.,is_primitive} @sa @ref is_structured() -- returns whether JSON value is structured @sa @ref is_null() -- returns whether JSON value is `null` @sa @ref is_string() -- returns whether JSON value is a string @sa @ref is_boolean() -- returns whether JSON value is a boolean @sa @ref is_number() -- returns whether JSON value is a number @since version 1.0.0 */ constexpr bool is_primitive() const noexcept { return is_null() or is_string() or is_boolean() or is_number(); } /*! @brief return whether type is structured This function returns true iff the JSON type is structured (array or object). @return `true` if type is structured (array or object), `false` otherwise. @complexity Constant. @exceptionsafety No-throw guarantee: this member function never throws exceptions. @liveexample{The following code exemplifies `is_structured()` for all JSON types.,is_structured} @sa @ref is_primitive() -- returns whether value is primitive @sa @ref is_array() -- returns whether value is an array @sa @ref is_object() -- returns whether value is an object @since version 1.0.0 */ constexpr bool is_structured() const noexcept { return is_array() or is_object(); } /*! @brief return whether value is null This function returns true iff the JSON value is null. @return `true` if type is null, `false` otherwise. @complexity Constant. @exceptionsafety No-throw guarantee: this member function never throws exceptions. @liveexample{The following code exemplifies `is_null()` for all JSON types.,is_null} @since version 1.0.0 */ constexpr bool is_null() const noexcept { return m_type == value_t::null; } /*! @brief return whether value is a boolean This function returns true iff the JSON value is a boolean. @return `true` if type is boolean, `false` otherwise. @complexity Constant. @exceptionsafety No-throw guarantee: this member function never throws exceptions. @liveexample{The following code exemplifies `is_boolean()` for all JSON types.,is_boolean} @since version 1.0.0 */ constexpr bool is_boolean() const noexcept { return m_type == value_t::boolean; } /*! @brief return whether value is a number This function returns true iff the JSON value is a number. This includes both integer and floating-point values. @return `true` if type is number (regardless whether integer, unsigned integer or floating-type), `false` otherwise. @complexity Constant. @exceptionsafety No-throw guarantee: this member function never throws exceptions. @liveexample{The following code exemplifies `is_number()` for all JSON types.,is_number} @sa @ref is_number_integer() -- check if value is an integer or unsigned integer number @sa @ref is_number_unsigned() -- check if value is an unsigned integer number @sa @ref is_number_float() -- check if value is a floating-point number @since version 1.0.0 */ constexpr bool is_number() const noexcept { return is_number_integer() or is_number_float(); } /*! @brief return whether value is an integer number This function returns true iff the JSON value is an integer or unsigned integer number. This excludes floating-point values. @return `true` if type is an integer or unsigned integer number, `false` otherwise. @complexity Constant. @exceptionsafety No-throw guarantee: this member function never throws exceptions. @liveexample{The following code exemplifies `is_number_integer()` for all JSON types.,is_number_integer} @sa @ref is_number() -- check if value is a number @sa @ref is_number_unsigned() -- check if value is an unsigned integer number @sa @ref is_number_float() -- check if value is a floating-point number @since version 1.0.0 */ constexpr bool is_number_integer() const noexcept { return m_type == value_t::number_integer or m_type == value_t::number_unsigned; } /*! @brief return whether value is an unsigned integer number This function returns true iff the JSON value is an unsigned integer number. This excludes floating-point and (signed) integer values. @return `true` if type is an unsigned integer number, `false` otherwise. @complexity Constant. @exceptionsafety No-throw guarantee: this member function never throws exceptions. @liveexample{The following code exemplifies `is_number_unsigned()` for all JSON types.,is_number_unsigned} @sa @ref is_number() -- check if value is a number @sa @ref is_number_integer() -- check if value is an integer or unsigned integer number @sa @ref is_number_float() -- check if value is a floating-point number @since version 2.0.0 */ constexpr bool is_number_unsigned() const noexcept { return m_type == value_t::number_unsigned; } /*! @brief return whether value is a floating-point number This function returns true iff the JSON value is a floating-point number. This excludes integer and unsigned integer values. @return `true` if type is a floating-point number, `false` otherwise. @complexity Constant. @exceptionsafety No-throw guarantee: this member function never throws exceptions. @liveexample{The following code exemplifies `is_number_float()` for all JSON types.,is_number_float} @sa @ref is_number() -- check if value is number @sa @ref is_number_integer() -- check if value is an integer number @sa @ref is_number_unsigned() -- check if value is an unsigned integer number @since version 1.0.0 */ constexpr bool is_number_float() const noexcept { return m_type == value_t::number_float; } /*! @brief return whether value is an object This function returns true iff the JSON value is an object. @return `true` if type is object, `false` otherwise. @complexity Constant. @exceptionsafety No-throw guarantee: this member function never throws exceptions. @liveexample{The following code exemplifies `is_object()` for all JSON types.,is_object} @since version 1.0.0 */ constexpr bool is_object() const noexcept { return m_type == value_t::object; } /*! @brief return whether value is an array This function returns true iff the JSON value is an array. @return `true` if type is array, `false` otherwise. @complexity Constant. @exceptionsafety No-throw guarantee: this member function never throws exceptions. @liveexample{The following code exemplifies `is_array()` for all JSON types.,is_array} @since version 1.0.0 */ constexpr bool is_array() const noexcept { return m_type == value_t::array; } /*! @brief return whether value is a string This function returns true iff the JSON value is a string. @return `true` if type is string, `false` otherwise. @complexity Constant. @exceptionsafety No-throw guarantee: this member function never throws exceptions. @liveexample{The following code exemplifies `is_string()` for all JSON types.,is_string} @since version 1.0.0 */ constexpr bool is_string() const noexcept { return m_type == value_t::string; } /*! @brief return whether value is discarded This function returns true iff the JSON value was discarded during parsing with a callback function (see @ref parser_callback_t). @note This function will always be `false` for JSON values after parsing. That is, discarded values can only occur during parsing, but will be removed when inside a structured value or replaced by null in other cases. @return `true` if type is discarded, `false` otherwise. @complexity Constant. @exceptionsafety No-throw guarantee: this member function never throws exceptions. @liveexample{The following code exemplifies `is_discarded()` for all JSON types.,is_discarded} @since version 1.0.0 */ constexpr bool is_discarded() const noexcept { return m_type == value_t::discarded; } /*! @brief return the type of the JSON value (implicit) Implicitly return the type of the JSON value as a value from the @ref value_t enumeration. @return the type of the JSON value @complexity Constant. @exceptionsafety No-throw guarantee: this member function never throws exceptions. @liveexample{The following code exemplifies the @ref value_t operator for all JSON types.,operator__value_t} @since version 1.0.0 */ constexpr operator value_t() const noexcept { return m_type; } /// @} private: ////////////////// // value access // ////////////////// /// get a boolean (explicit) boolean_t get_impl(boolean_t* /*unused*/) const { if (is_boolean()) { return m_value.boolean; } JSON_THROW(std::domain_error("type must be boolean, but is " + type_name())); } /// get a pointer to the value (object) object_t* get_impl_ptr(object_t* /*unused*/) noexcept { return is_object() ? m_value.object : nullptr; } /// get a pointer to the value (object) constexpr const object_t* get_impl_ptr(const object_t* /*unused*/) const noexcept { return is_object() ? m_value.object : nullptr; } /// get a pointer to the value (array) array_t* get_impl_ptr(array_t* /*unused*/) noexcept { return is_array() ? m_value.array : nullptr; } /// get a pointer to the value (array) constexpr const array_t* get_impl_ptr(const array_t* /*unused*/) const noexcept { return is_array() ? m_value.array : nullptr; } /// get a pointer to the value (string) string_t* get_impl_ptr(string_t* /*unused*/) noexcept { return is_string() ? m_value.string : nullptr; } /// get a pointer to the value (string) constexpr const string_t* get_impl_ptr(const string_t* /*unused*/) const noexcept { return is_string() ? m_value.string : nullptr; } /// get a pointer to the value (boolean) boolean_t* get_impl_ptr(boolean_t* /*unused*/) noexcept { return is_boolean() ? &m_value.boolean : nullptr; } /// get a pointer to the value (boolean) constexpr const boolean_t* get_impl_ptr(const boolean_t* /*unused*/) const noexcept { return is_boolean() ? &m_value.boolean : nullptr; } /// get a pointer to the value (integer number) number_integer_t* get_impl_ptr(number_integer_t* /*unused*/) noexcept { return is_number_integer() ? &m_value.number_integer : nullptr; } /// get a pointer to the value (integer number) constexpr const number_integer_t* get_impl_ptr(const number_integer_t* /*unused*/) const noexcept { return is_number_integer() ? &m_value.number_integer : nullptr; } /// get a pointer to the value (unsigned number) number_unsigned_t* get_impl_ptr(number_unsigned_t* /*unused*/) noexcept { return is_number_unsigned() ? &m_value.number_unsigned : nullptr; } /// get a pointer to the value (unsigned number) constexpr const number_unsigned_t* get_impl_ptr(const number_unsigned_t* /*unused*/) const noexcept { return is_number_unsigned() ? &m_value.number_unsigned : nullptr; } /// get a pointer to the value (floating-point number) number_float_t* get_impl_ptr(number_float_t* /*unused*/) noexcept { return is_number_float() ? &m_value.number_float : nullptr; } /// get a pointer to the value (floating-point number) constexpr const number_float_t* get_impl_ptr(const number_float_t* /*unused*/) const noexcept { return is_number_float() ? &m_value.number_float : nullptr; } /*! @brief helper function to implement get_ref() This funcion helps to implement get_ref() without code duplication for const and non-const overloads @tparam ThisType will be deduced as `basic_json` or `const basic_json` @throw std::domain_error if ReferenceType does not match underlying value type of the current JSON */ template static ReferenceType get_ref_impl(ThisType& obj) { // helper type using PointerType = typename std::add_pointer::type; // delegate the call to get_ptr<>() auto ptr = obj.template get_ptr(); if (ptr != nullptr) { return *ptr; } throw std::domain_error("incompatible ReferenceType for get_ref, actual type is " + obj.type_name()); } public: /// @name value access /// Direct access to the stored value of a JSON value. /// @{ /*! @brief get special-case overload This overloads avoids a lot of template boilerplate, it can be seen as the identity method @tparam BasicJsonType == @ref basic_json @return a copy of *this @complexity Constant. @since version 2.1.0 */ template < typename BasicJsonType, detail::enable_if_t::type, basic_json_t>::value, int> = 0 > basic_json get() const { return *this; } /*! @brief get a value (explicit) Explicit type conversion between the JSON value and a compatible value which is [CopyConstructible](http://en.cppreference.com/w/cpp/concept/CopyConstructible) and [DefaultConstructible](http://en.cppreference.com/w/cpp/concept/DefaultConstructible). The value is converted by calling the @ref json_serializer `from_json()` method. The function is equivalent to executing @code {.cpp} ValueType ret; JSONSerializer::from_json(*this, ret); return ret; @endcode This overloads is chosen if: - @a ValueType is not @ref basic_json, - @ref json_serializer has a `from_json()` method of the form `void from_json(const @ref basic_json&, ValueType&)`, and - @ref json_serializer does not have a `from_json()` method of the form `ValueType from_json(const @ref basic_json&)` @tparam ValueTypeCV the provided value type @tparam ValueType the returned value type @return copy of the JSON value, converted to @a ValueType @throw what @ref json_serializer `from_json()` method throws @liveexample{The example below shows several conversions from JSON values to other types. There a few things to note: (1) Floating-point numbers can be converted to integers\, (2) A JSON array can be converted to a standard `std::vector`\, (3) A JSON object can be converted to C++ associative containers such as `std::unordered_map`.,get__ValueType_const} @since version 2.1.0 */ template < typename ValueTypeCV, typename ValueType = detail::uncvref_t, detail::enable_if_t < not std::is_same::value and detail::has_from_json::value and not detail::has_non_default_from_json::value, int > = 0 > ValueType get() const noexcept(noexcept( JSONSerializer::from_json(std::declval(), std::declval()))) { // we cannot static_assert on ValueTypeCV being non-const, because // there is support for get(), which is why we // still need the uncvref static_assert(not std::is_reference::value, "get() cannot be used with reference types, you might want to use get_ref()"); static_assert(std::is_default_constructible::value, "types must be DefaultConstructible when used with get()"); ValueType ret; JSONSerializer::from_json(*this, ret); return ret; } /*! @brief get a value (explicit); special case Explicit type conversion between the JSON value and a compatible value which is **not** [CopyConstructible](http://en.cppreference.com/w/cpp/concept/CopyConstructible) and **not** [DefaultConstructible](http://en.cppreference.com/w/cpp/concept/DefaultConstructible). The value is converted by calling the @ref json_serializer `from_json()` method. The function is equivalent to executing @code {.cpp} return JSONSerializer::from_json(*this); @endcode This overloads is chosen if: - @a ValueType is not @ref basic_json and - @ref json_serializer has a `from_json()` method of the form `ValueType from_json(const @ref basic_json&)` @note If @ref json_serializer has both overloads of `from_json()`, this one is chosen. @tparam ValueTypeCV the provided value type @tparam ValueType the returned value type @return copy of the JSON value, converted to @a ValueType @throw what @ref json_serializer `from_json()` method throws @since version 2.1.0 */ template < typename ValueTypeCV, typename ValueType = detail::uncvref_t, detail::enable_if_t::value and detail::has_non_default_from_json::value, int> = 0 > ValueType get() const noexcept(noexcept( JSONSerializer::from_json(std::declval()))) { static_assert(not std::is_reference::value, "get() cannot be used with reference types, you might want to use get_ref()"); return JSONSerializer::from_json(*this); } /*! @brief get a pointer value (explicit) Explicit pointer access to the internally stored JSON value. No copies are made. @warning The pointer becomes invalid if the underlying JSON object changes. @tparam PointerType pointer type; must be a pointer to @ref array_t, @ref object_t, @ref string_t, @ref boolean_t, @ref number_integer_t, @ref number_unsigned_t, or @ref number_float_t. @return pointer to the internally stored JSON value if the requested pointer type @a PointerType fits to the JSON value; `nullptr` otherwise @complexity Constant. @liveexample{The example below shows how pointers to internal values of a JSON value can be requested. Note that no type conversions are made and a `nullptr` is returned if the value and the requested pointer type does not match.,get__PointerType} @sa @ref get_ptr() for explicit pointer-member access @since version 1.0.0 */ template::value, int>::type = 0> PointerType get() noexcept { // delegate the call to get_ptr return get_ptr(); } /*! @brief get a pointer value (explicit) @copydoc get() */ template::value, int>::type = 0> constexpr const PointerType get() const noexcept { // delegate the call to get_ptr return get_ptr(); } /*! @brief get a pointer value (implicit) Implicit pointer access to the internally stored JSON value. No copies are made. @warning Writing data to the pointee of the result yields an undefined state. @tparam PointerType pointer type; must be a pointer to @ref array_t, @ref object_t, @ref string_t, @ref boolean_t, @ref number_integer_t, @ref number_unsigned_t, or @ref number_float_t. Enforced by a static assertion. @return pointer to the internally stored JSON value if the requested pointer type @a PointerType fits to the JSON value; `nullptr` otherwise @complexity Constant. @liveexample{The example below shows how pointers to internal values of a JSON value can be requested. Note that no type conversions are made and a `nullptr` is returned if the value and the requested pointer type does not match.,get_ptr} @since version 1.0.0 */ template::value, int>::type = 0> PointerType get_ptr() noexcept { // get the type of the PointerType (remove pointer and const) using pointee_t = typename std::remove_const::type>::type>::type; // make sure the type matches the allowed types static_assert( std::is_same::value or std::is_same::value or std::is_same::value or std::is_same::value or std::is_same::value or std::is_same::value or std::is_same::value , "incompatible pointer type"); // delegate the call to get_impl_ptr<>() return get_impl_ptr(static_cast(nullptr)); } /*! @brief get a pointer value (implicit) @copydoc get_ptr() */ template::value and std::is_const::type>::value, int>::type = 0> constexpr const PointerType get_ptr() const noexcept { // get the type of the PointerType (remove pointer and const) using pointee_t = typename std::remove_const::type>::type>::type; // make sure the type matches the allowed types static_assert( std::is_same::value or std::is_same::value or std::is_same::value or std::is_same::value or std::is_same::value or std::is_same::value or std::is_same::value , "incompatible pointer type"); // delegate the call to get_impl_ptr<>() const return get_impl_ptr(static_cast(nullptr)); } /*! @brief get a reference value (implicit) Implicit reference access to the internally stored JSON value. No copies are made. @warning Writing data to the referee of the result yields an undefined state. @tparam ReferenceType reference type; must be a reference to @ref array_t, @ref object_t, @ref string_t, @ref boolean_t, @ref number_integer_t, or @ref number_float_t. Enforced by static assertion. @return reference to the internally stored JSON value if the requested reference type @a ReferenceType fits to the JSON value; throws std::domain_error otherwise @throw std::domain_error in case passed type @a ReferenceType is incompatible with the stored JSON value @complexity Constant. @liveexample{The example shows several calls to `get_ref()`.,get_ref} @since version 1.1.0 */ template::value, int>::type = 0> ReferenceType get_ref() { // delegate call to get_ref_impl return get_ref_impl(*this); } /*! @brief get a reference value (implicit) @copydoc get_ref() */ template::value and std::is_const::type>::value, int>::type = 0> ReferenceType get_ref() const { // delegate call to get_ref_impl return get_ref_impl(*this); } /*! @brief get a value (implicit) Implicit type conversion between the JSON value and a compatible value. The call is realized by calling @ref get() const. @tparam ValueType non-pointer type compatible to the JSON value, for instance `int` for JSON integer numbers, `bool` for JSON booleans, or `std::vector` types for JSON arrays. The character type of @ref string_t as well as an initializer list of this type is excluded to avoid ambiguities as these types implicitly convert to `std::string`. @return copy of the JSON value, converted to type @a ValueType @throw std::domain_error in case passed type @a ValueType is incompatible to JSON, thrown by @ref get() const @complexity Linear in the size of the JSON value. @liveexample{The example below shows several conversions from JSON values to other types. There a few things to note: (1) Floating-point numbers can be converted to integers\, (2) A JSON array can be converted to a standard `std::vector`\, (3) A JSON object can be converted to C++ associative containers such as `std::unordered_map`.,operator__ValueType} @since version 1.0.0 */ template < typename ValueType, typename std::enable_if < not std::is_pointer::value and not std::is_same::value #ifndef _MSC_VER // fix for issue #167 operator<< ambiguity under VS2015 and not std::is_same>::value #endif , int >::type = 0 > operator ValueType() const { // delegate the call to get<>() const return get(); } /// @} //////////////////// // element access // //////////////////// /// @name element access /// Access to the JSON value. /// @{ /*! @brief access specified array element with bounds checking Returns a reference to the element at specified location @a idx, with bounds checking. @param[in] idx index of the element to access @return reference to the element at index @a idx @throw std::domain_error if the JSON value is not an array; example: `"cannot use at() with string"` @throw std::out_of_range if the index @a idx is out of range of the array; that is, `idx >= size()`; example: `"array index 7 is out of range"` @complexity Constant. @liveexample{The example below shows how array elements can be read and written using `at()`.,at__size_type} @since version 1.0.0 */ reference at(size_type idx) { // at only works for arrays if (is_array()) { JSON_TRY { return m_value.array->at(idx); } JSON_CATCH (std::out_of_range&) { // create better exception explanation JSON_THROW(std::out_of_range("array index " + std::to_string(idx) + " is out of range")); } } else { JSON_THROW(std::domain_error("cannot use at() with " + type_name())); } } /*! @brief access specified array element with bounds checking Returns a const reference to the element at specified location @a idx, with bounds checking. @param[in] idx index of the element to access @return const reference to the element at index @a idx @throw std::domain_error if the JSON value is not an array; example: `"cannot use at() with string"` @throw std::out_of_range if the index @a idx is out of range of the array; that is, `idx >= size()`; example: `"array index 7 is out of range"` @complexity Constant. @liveexample{The example below shows how array elements can be read using `at()`.,at__size_type_const} @since version 1.0.0 */ const_reference at(size_type idx) const { // at only works for arrays if (is_array()) { JSON_TRY { return m_value.array->at(idx); } JSON_CATCH (std::out_of_range&) { // create better exception explanation JSON_THROW(std::out_of_range("array index " + std::to_string(idx) + " is out of range")); } } else { JSON_THROW(std::domain_error("cannot use at() with " + type_name())); } } /*! @brief access specified object element with bounds checking Returns a reference to the element at with specified key @a key, with bounds checking. @param[in] key key of the element to access @return reference to the element at key @a key @throw std::domain_error if the JSON value is not an object; example: `"cannot use at() with boolean"` @throw std::out_of_range if the key @a key is is not stored in the object; that is, `find(key) == end()`; example: `"key "the fast" not found"` @complexity Logarithmic in the size of the container. @liveexample{The example below shows how object elements can be read and written using `at()`.,at__object_t_key_type} @sa @ref operator[](const typename object_t::key_type&) for unchecked access by reference @sa @ref value() for access by value with a default value @since version 1.0.0 */ reference at(const typename object_t::key_type& key) { // at only works for objects if (is_object()) { JSON_TRY { return m_value.object->at(key); } JSON_CATCH (std::out_of_range&) { // create better exception explanation JSON_THROW(std::out_of_range("key '" + key + "' not found")); } } else { JSON_THROW(std::domain_error("cannot use at() with " + type_name())); } } /*! @brief access specified object element with bounds checking Returns a const reference to the element at with specified key @a key, with bounds checking. @param[in] key key of the element to access @return const reference to the element at key @a key @throw std::domain_error if the JSON value is not an object; example: `"cannot use at() with boolean"` @throw std::out_of_range if the key @a key is is not stored in the object; that is, `find(key) == end()`; example: `"key "the fast" not found"` @complexity Logarithmic in the size of the container. @liveexample{The example below shows how object elements can be read using `at()`.,at__object_t_key_type_const} @sa @ref operator[](const typename object_t::key_type&) for unchecked access by reference @sa @ref value() for access by value with a default value @since version 1.0.0 */ const_reference at(const typename object_t::key_type& key) const { // at only works for objects if (is_object()) { JSON_TRY { return m_value.object->at(key); } JSON_CATCH (std::out_of_range&) { // create better exception explanation JSON_THROW(std::out_of_range("key '" + key + "' not found")); } } else { JSON_THROW(std::domain_error("cannot use at() with " + type_name())); } } /*! @brief access specified array element Returns a reference to the element at specified location @a idx. @note If @a idx is beyond the range of the array (i.e., `idx >= size()`), then the array is silently filled up with `null` values to make `idx` a valid reference to the last stored element. @param[in] idx index of the element to access @return reference to the element at index @a idx @throw std::domain_error if JSON is not an array or null; example: `"cannot use operator[] with string"` @complexity Constant if @a idx is in the range of the array. Otherwise linear in `idx - size()`. @liveexample{The example below shows how array elements can be read and written using `[]` operator. Note the addition of `null` values.,operatorarray__size_type} @since version 1.0.0 */ reference operator[](size_type idx) { // implicitly convert null value to an empty array if (is_null()) { m_type = value_t::array; m_value.array = create(); assert_invariant(); } // operator[] only works for arrays if (is_array()) { // fill up array with null values if given idx is outside range if (idx >= m_value.array->size()) { m_value.array->insert(m_value.array->end(), idx - m_value.array->size() + 1, basic_json()); } return m_value.array->operator[](idx); } JSON_THROW(std::domain_error("cannot use operator[] with " + type_name())); } /*! @brief access specified array element Returns a const reference to the element at specified location @a idx. @param[in] idx index of the element to access @return const reference to the element at index @a idx @throw std::domain_error if JSON is not an array; example: `"cannot use operator[] with null"` @complexity Constant. @liveexample{The example below shows how array elements can be read using the `[]` operator.,operatorarray__size_type_const} @since version 1.0.0 */ const_reference operator[](size_type idx) const { // const operator[] only works for arrays if (is_array()) { return m_value.array->operator[](idx); } JSON_THROW(std::domain_error("cannot use operator[] with " + type_name())); } /*! @brief access specified object element Returns a reference to the element at with specified key @a key. @note If @a key is not found in the object, then it is silently added to the object and filled with a `null` value to make `key` a valid reference. In case the value was `null` before, it is converted to an object. @param[in] key key of the element to access @return reference to the element at key @a key @throw std::domain_error if JSON is not an object or null; example: `"cannot use operator[] with string"` @complexity Logarithmic in the size of the container. @liveexample{The example below shows how object elements can be read and written using the `[]` operator.,operatorarray__key_type} @sa @ref at(const typename object_t::key_type&) for access by reference with range checking @sa @ref value() for access by value with a default value @since version 1.0.0 */ reference operator[](const typename object_t::key_type& key) { // implicitly convert null value to an empty object if (is_null()) { m_type = value_t::object; m_value.object = create(); assert_invariant(); } // operator[] only works for objects if (is_object()) { return m_value.object->operator[](key); } JSON_THROW(std::domain_error("cannot use operator[] with " + type_name())); } /*! @brief read-only access specified object element Returns a const reference to the element at with specified key @a key. No bounds checking is performed. @warning If the element with key @a key does not exist, the behavior is undefined. @param[in] key key of the element to access @return const reference to the element at key @a key @pre The element with key @a key must exist. **This precondition is enforced with an assertion.** @throw std::domain_error if JSON is not an object; example: `"cannot use operator[] with null"` @complexity Logarithmic in the size of the container. @liveexample{The example below shows how object elements can be read using the `[]` operator.,operatorarray__key_type_const} @sa @ref at(const typename object_t::key_type&) for access by reference with range checking @sa @ref value() for access by value with a default value @since version 1.0.0 */ const_reference operator[](const typename object_t::key_type& key) const { // const operator[] only works for objects if (is_object()) { assert(m_value.object->find(key) != m_value.object->end()); return m_value.object->find(key)->second; } JSON_THROW(std::domain_error("cannot use operator[] with " + type_name())); } /*! @brief access specified object element Returns a reference to the element at with specified key @a key. @note If @a key is not found in the object, then it is silently added to the object and filled with a `null` value to make `key` a valid reference. In case the value was `null` before, it is converted to an object. @param[in] key key of the element to access @return reference to the element at key @a key @throw std::domain_error if JSON is not an object or null; example: `"cannot use operator[] with string"` @complexity Logarithmic in the size of the container. @liveexample{The example below shows how object elements can be read and written using the `[]` operator.,operatorarray__key_type} @sa @ref at(const typename object_t::key_type&) for access by reference with range checking @sa @ref value() for access by value with a default value @since version 1.0.0 */ template reference operator[](T * (&key)[n]) { return operator[](static_cast(key)); } /*! @brief read-only access specified object element Returns a const reference to the element at with specified key @a key. No bounds checking is performed. @warning If the element with key @a key does not exist, the behavior is undefined. @note This function is required for compatibility reasons with Clang. @param[in] key key of the element to access @return const reference to the element at key @a key @throw std::domain_error if JSON is not an object; example: `"cannot use operator[] with null"` @complexity Logarithmic in the size of the container. @liveexample{The example below shows how object elements can be read using the `[]` operator.,operatorarray__key_type_const} @sa @ref at(const typename object_t::key_type&) for access by reference with range checking @sa @ref value() for access by value with a default value @since version 1.0.0 */ template const_reference operator[](T * (&key)[n]) const { return operator[](static_cast(key)); } /*! @brief access specified object element Returns a reference to the element at with specified key @a key. @note If @a key is not found in the object, then it is silently added to the object and filled with a `null` value to make `key` a valid reference. In case the value was `null` before, it is converted to an object. @param[in] key key of the element to access @return reference to the element at key @a key @throw std::domain_error if JSON is not an object or null; example: `"cannot use operator[] with string"` @complexity Logarithmic in the size of the container. @liveexample{The example below shows how object elements can be read and written using the `[]` operator.,operatorarray__key_type} @sa @ref at(const typename object_t::key_type&) for access by reference with range checking @sa @ref value() for access by value with a default value @since version 1.1.0 */ template reference operator[](T* key) { // implicitly convert null to object if (is_null()) { m_type = value_t::object; m_value = value_t::object; assert_invariant(); } // at only works for objects if (is_object()) { return m_value.object->operator[](key); } JSON_THROW(std::domain_error("cannot use operator[] with " + type_name())); } /*! @brief read-only access specified object element Returns a const reference to the element at with specified key @a key. No bounds checking is performed. @warning If the element with key @a key does not exist, the behavior is undefined. @param[in] key key of the element to access @return const reference to the element at key @a key @pre The element with key @a key must exist. **This precondition is enforced with an assertion.** @throw std::domain_error if JSON is not an object; example: `"cannot use operator[] with null"` @complexity Logarithmic in the size of the container. @liveexample{The example below shows how object elements can be read using the `[]` operator.,operatorarray__key_type_const} @sa @ref at(const typename object_t::key_type&) for access by reference with range checking @sa @ref value() for access by value with a default value @since version 1.1.0 */ template const_reference operator[](T* key) const { // at only works for objects if (is_object()) { assert(m_value.object->find(key) != m_value.object->end()); return m_value.object->find(key)->second; } JSON_THROW(std::domain_error("cannot use operator[] with " + type_name())); } /*! @brief access specified object element with default value Returns either a copy of an object's element at the specified key @a key or a given default value if no element with key @a key exists. The function is basically equivalent to executing @code {.cpp} try { return at(key); } catch(std::out_of_range) { return default_value; } @endcode @note Unlike @ref at(const typename object_t::key_type&), this function does not throw if the given key @a key was not found. @note Unlike @ref operator[](const typename object_t::key_type& key), this function does not implicitly add an element to the position defined by @a key. This function is furthermore also applicable to const objects. @param[in] key key of the element to access @param[in] default_value the value to return if @a key is not found @tparam ValueType type compatible to JSON values, for instance `int` for JSON integer numbers, `bool` for JSON booleans, or `std::vector` types for JSON arrays. Note the type of the expected value at @a key and the default value @a default_value must be compatible. @return copy of the element at key @a key or @a default_value if @a key is not found @throw std::domain_error if JSON is not an object; example: `"cannot use value() with null"` @complexity Logarithmic in the size of the container. @liveexample{The example below shows how object elements can be queried with a default value.,basic_json__value} @sa @ref at(const typename object_t::key_type&) for access by reference with range checking @sa @ref operator[](const typename object_t::key_type&) for unchecked access by reference @since version 1.0.0 */ template::value, int>::type = 0> ValueType value(const typename object_t::key_type& key, ValueType default_value) const { // at only works for objects if (is_object()) { // if key is found, return value and given default value otherwise const auto it = find(key); if (it != end()) { return *it; } return default_value; } else { JSON_THROW(std::domain_error("cannot use value() with " + type_name())); } } /*! @brief overload for a default value of type const char* @copydoc basic_json::value(const typename object_t::key_type&, ValueType) const */ string_t value(const typename object_t::key_type& key, const char* default_value) const { return value(key, string_t(default_value)); } /*! @brief access specified object element via JSON Pointer with default value Returns either a copy of an object's element at the specified key @a key or a given default value if no element with key @a key exists. The function is basically equivalent to executing @code {.cpp} try { return at(ptr); } catch(std::out_of_range) { return default_value; } @endcode @note Unlike @ref at(const json_pointer&), this function does not throw if the given key @a key was not found. @param[in] ptr a JSON pointer to the element to access @param[in] default_value the value to return if @a ptr found no value @tparam ValueType type compatible to JSON values, for instance `int` for JSON integer numbers, `bool` for JSON booleans, or `std::vector` types for JSON arrays. Note the type of the expected value at @a key and the default value @a default_value must be compatible. @return copy of the element at key @a key or @a default_value if @a key is not found @throw std::domain_error if JSON is not an object; example: `"cannot use value() with null"` @complexity Logarithmic in the size of the container. @liveexample{The example below shows how object elements can be queried with a default value.,basic_json__value_ptr} @sa @ref operator[](const json_pointer&) for unchecked access by reference @since version 2.0.2 */ template::value, int>::type = 0> ValueType value(const json_pointer& ptr, ValueType default_value) const { // at only works for objects if (is_object()) { // if pointer resolves a value, return it or use default value JSON_TRY { return ptr.get_checked(this); } JSON_CATCH (std::out_of_range&) { return default_value; } } JSON_THROW(std::domain_error("cannot use value() with " + type_name())); } /*! @brief overload for a default value of type const char* @copydoc basic_json::value(const json_pointer&, ValueType) const */ string_t value(const json_pointer& ptr, const char* default_value) const { return value(ptr, string_t(default_value)); } /*! @brief access the first element Returns a reference to the first element in the container. For a JSON container `c`, the expression `c.front()` is equivalent to `*c.begin()`. @return In case of a structured type (array or object), a reference to the first element is returned. In case of number, string, or boolean values, a reference to the value is returned. @complexity Constant. @pre The JSON value must not be `null` (would throw `std::out_of_range`) or an empty array or object (undefined behavior, **guarded by assertions**). @post The JSON value remains unchanged. @throw std::out_of_range when called on `null` value @liveexample{The following code shows an example for `front()`.,front} @sa @ref back() -- access the last element @since version 1.0.0 */ reference front() { return *begin(); } /*! @copydoc basic_json::front() */ const_reference front() const { return *cbegin(); } /*! @brief access the last element Returns a reference to the last element in the container. For a JSON container `c`, the expression `c.back()` is equivalent to @code {.cpp} auto tmp = c.end(); --tmp; return *tmp; @endcode @return In case of a structured type (array or object), a reference to the last element is returned. In case of number, string, or boolean values, a reference to the value is returned. @complexity Constant. @pre The JSON value must not be `null` (would throw `std::out_of_range`) or an empty array or object (undefined behavior, **guarded by assertions**). @post The JSON value remains unchanged. @throw std::out_of_range when called on `null` value. @liveexample{The following code shows an example for `back()`.,back} @sa @ref front() -- access the first element @since version 1.0.0 */ reference back() { auto tmp = end(); --tmp; return *tmp; } /*! @copydoc basic_json::back() */ const_reference back() const { auto tmp = cend(); --tmp; return *tmp; } /*! @brief remove element given an iterator Removes the element specified by iterator @a pos. The iterator @a pos must be valid and dereferenceable. Thus the `end()` iterator (which is valid, but is not dereferenceable) cannot be used as a value for @a pos. If called on a primitive type other than `null`, the resulting JSON value will be `null`. @param[in] pos iterator to the element to remove @return Iterator following the last removed element. If the iterator @a pos refers to the last element, the `end()` iterator is returned. @tparam IteratorType an @ref iterator or @ref const_iterator @post Invalidates iterators and references at or after the point of the erase, including the `end()` iterator. @throw std::domain_error if called on a `null` value; example: `"cannot use erase() with null"` @throw std::domain_error if called on an iterator which does not belong to the current JSON value; example: `"iterator does not fit current value"` @throw std::out_of_range if called on a primitive type with invalid iterator (i.e., any iterator which is not `begin()`); example: `"iterator out of range"` @complexity The complexity depends on the type: - objects: amortized constant - arrays: linear in distance between @a pos and the end of the container - strings: linear in the length of the string - other types: constant @liveexample{The example shows the result of `erase()` for different JSON types.,erase__IteratorType} @sa @ref erase(IteratorType, IteratorType) -- removes the elements in the given range @sa @ref erase(const typename object_t::key_type&) -- removes the element from an object at the given key @sa @ref erase(const size_type) -- removes the element from an array at the given index @since version 1.0.0 */ template::value or std::is_same::value, int>::type = 0> IteratorType erase(IteratorType pos) { // make sure iterator fits the current value if (this != pos.m_object) { JSON_THROW(std::domain_error("iterator does not fit current value")); } IteratorType result = end(); switch (m_type) { case value_t::boolean: case value_t::number_float: case value_t::number_integer: case value_t::number_unsigned: case value_t::string: { if (not pos.m_it.primitive_iterator.is_begin()) { JSON_THROW(std::out_of_range("iterator out of range")); } if (is_string()) { AllocatorType alloc; alloc.destroy(m_value.string); alloc.deallocate(m_value.string, 1); m_value.string = nullptr; } m_type = value_t::null; assert_invariant(); break; } case value_t::object: { result.m_it.object_iterator = m_value.object->erase(pos.m_it.object_iterator); break; } case value_t::array: { result.m_it.array_iterator = m_value.array->erase(pos.m_it.array_iterator); break; } default: { JSON_THROW(std::domain_error("cannot use erase() with " + type_name())); } } return result; } /*! @brief remove elements given an iterator range Removes the element specified by the range `[first; last)`. The iterator @a first does not need to be dereferenceable if `first == last`: erasing an empty range is a no-op. If called on a primitive type other than `null`, the resulting JSON value will be `null`. @param[in] first iterator to the beginning of the range to remove @param[in] last iterator past the end of the range to remove @return Iterator following the last removed element. If the iterator @a second refers to the last element, the `end()` iterator is returned. @tparam IteratorType an @ref iterator or @ref const_iterator @post Invalidates iterators and references at or after the point of the erase, including the `end()` iterator. @throw std::domain_error if called on a `null` value; example: `"cannot use erase() with null"` @throw std::domain_error if called on iterators which does not belong to the current JSON value; example: `"iterators do not fit current value"` @throw std::out_of_range if called on a primitive type with invalid iterators (i.e., if `first != begin()` and `last != end()`); example: `"iterators out of range"` @complexity The complexity depends on the type: - objects: `log(size()) + std::distance(first, last)` - arrays: linear in the distance between @a first and @a last, plus linear in the distance between @a last and end of the container - strings: linear in the length of the string - other types: constant @liveexample{The example shows the result of `erase()` for different JSON types.,erase__IteratorType_IteratorType} @sa @ref erase(IteratorType) -- removes the element at a given position @sa @ref erase(const typename object_t::key_type&) -- removes the element from an object at the given key @sa @ref erase(const size_type) -- removes the element from an array at the given index @since version 1.0.0 */ template::value or std::is_same::value, int>::type = 0> IteratorType erase(IteratorType first, IteratorType last) { // make sure iterator fits the current value if (this != first.m_object or this != last.m_object) { JSON_THROW(std::domain_error("iterators do not fit current value")); } IteratorType result = end(); switch (m_type) { case value_t::boolean: case value_t::number_float: case value_t::number_integer: case value_t::number_unsigned: case value_t::string: { if (not first.m_it.primitive_iterator.is_begin() or not last.m_it.primitive_iterator.is_end()) { JSON_THROW(std::out_of_range("iterators out of range")); } if (is_string()) { AllocatorType alloc; alloc.destroy(m_value.string); alloc.deallocate(m_value.string, 1); m_value.string = nullptr; } m_type = value_t::null; assert_invariant(); break; } case value_t::object: { result.m_it.object_iterator = m_value.object->erase(first.m_it.object_iterator, last.m_it.object_iterator); break; } case value_t::array: { result.m_it.array_iterator = m_value.array->erase(first.m_it.array_iterator, last.m_it.array_iterator); break; } default: { JSON_THROW(std::domain_error("cannot use erase() with " + type_name())); } } return result; } /*! @brief remove element from a JSON object given a key Removes elements from a JSON object with the key value @a key. @param[in] key value of the elements to remove @return Number of elements removed. If @a ObjectType is the default `std::map` type, the return value will always be `0` (@a key was not found) or `1` (@a key was found). @post References and iterators to the erased elements are invalidated. Other references and iterators are not affected. @throw std::domain_error when called on a type other than JSON object; example: `"cannot use erase() with null"` @complexity `log(size()) + count(key)` @liveexample{The example shows the effect of `erase()`.,erase__key_type} @sa @ref erase(IteratorType) -- removes the element at a given position @sa @ref erase(IteratorType, IteratorType) -- removes the elements in the given range @sa @ref erase(const size_type) -- removes the element from an array at the given index @since version 1.0.0 */ size_type erase(const typename object_t::key_type& key) { // this erase only works for objects if (is_object()) { return m_value.object->erase(key); } JSON_THROW(std::domain_error("cannot use erase() with " + type_name())); } /*! @brief remove element from a JSON array given an index Removes element from a JSON array at the index @a idx. @param[in] idx index of the element to remove @throw std::domain_error when called on a type other than JSON array; example: `"cannot use erase() with null"` @throw std::out_of_range when `idx >= size()`; example: `"array index 17 is out of range"` @complexity Linear in distance between @a idx and the end of the container. @liveexample{The example shows the effect of `erase()`.,erase__size_type} @sa @ref erase(IteratorType) -- removes the element at a given position @sa @ref erase(IteratorType, IteratorType) -- removes the elements in the given range @sa @ref erase(const typename object_t::key_type&) -- removes the element from an object at the given key @since version 1.0.0 */ void erase(const size_type idx) { // this erase only works for arrays if (is_array()) { if (idx >= size()) { JSON_THROW(std::out_of_range("array index " + std::to_string(idx) + " is out of range")); } m_value.array->erase(m_value.array->begin() + static_cast(idx)); } else { JSON_THROW(std::domain_error("cannot use erase() with " + type_name())); } } /// @} //////////// // lookup // //////////// /// @name lookup /// @{ /*! @brief find an element in a JSON object Finds an element in a JSON object with key equivalent to @a key. If the element is not found or the JSON value is not an object, end() is returned. @note This method always returns @ref end() when executed on a JSON type that is not an object. @param[in] key key value of the element to search for @return Iterator to an element with key equivalent to @a key. If no such element is found or the JSON value is not an object, past-the-end (see @ref end()) iterator is returned. @complexity Logarithmic in the size of the JSON object. @liveexample{The example shows how `find()` is used.,find__key_type} @since version 1.0.0 */ iterator find(typename object_t::key_type key) { auto result = end(); if (is_object()) { result.m_it.object_iterator = m_value.object->find(key); } return result; } /*! @brief find an element in a JSON object @copydoc find(typename object_t::key_type) */ const_iterator find(typename object_t::key_type key) const { auto result = cend(); if (is_object()) { result.m_it.object_iterator = m_value.object->find(key); } return result; } /*! @brief returns the number of occurrences of a key in a JSON object Returns the number of elements with key @a key. If ObjectType is the default `std::map` type, the return value will always be `0` (@a key was not found) or `1` (@a key was found). @note This method always returns `0` when executed on a JSON type that is not an object. @param[in] key key value of the element to count @return Number of elements with key @a key. If the JSON value is not an object, the return value will be `0`. @complexity Logarithmic in the size of the JSON object. @liveexample{The example shows how `count()` is used.,count} @since version 1.0.0 */ size_type count(typename object_t::key_type key) const { // return 0 for all nonobject types return is_object() ? m_value.object->count(key) : 0; } /// @} /////////////// // iterators // /////////////// /// @name iterators /// @{ /*! @brief returns an iterator to the first element Returns an iterator to the first element. @image html range-begin-end.svg "Illustration from cppreference.com" @return iterator to the first element @complexity Constant. @requirement This function helps `basic_json` satisfying the [Container](http://en.cppreference.com/w/cpp/concept/Container) requirements: - The complexity is constant. @liveexample{The following code shows an example for `begin()`.,begin} @sa @ref cbegin() -- returns a const iterator to the beginning @sa @ref end() -- returns an iterator to the end @sa @ref cend() -- returns a const iterator to the end @since version 1.0.0 */ iterator begin() noexcept { iterator result(this); result.set_begin(); return result; } /*! @copydoc basic_json::cbegin() */ const_iterator begin() const noexcept { return cbegin(); } /*! @brief returns a const iterator to the first element Returns a const iterator to the first element. @image html range-begin-end.svg "Illustration from cppreference.com" @return const iterator to the first element @complexity Constant. @requirement This function helps `basic_json` satisfying the [Container](http://en.cppreference.com/w/cpp/concept/Container) requirements: - The complexity is constant. - Has the semantics of `const_cast(*this).begin()`. @liveexample{The following code shows an example for `cbegin()`.,cbegin} @sa @ref begin() -- returns an iterator to the beginning @sa @ref end() -- returns an iterator to the end @sa @ref cend() -- returns a const iterator to the end @since version 1.0.0 */ const_iterator cbegin() const noexcept { const_iterator result(this); result.set_begin(); return result; } /*! @brief returns an iterator to one past the last element Returns an iterator to one past the last element. @image html range-begin-end.svg "Illustration from cppreference.com" @return iterator one past the last element @complexity Constant. @requirement This function helps `basic_json` satisfying the [Container](http://en.cppreference.com/w/cpp/concept/Container) requirements: - The complexity is constant. @liveexample{The following code shows an example for `end()`.,end} @sa @ref cend() -- returns a const iterator to the end @sa @ref begin() -- returns an iterator to the beginning @sa @ref cbegin() -- returns a const iterator to the beginning @since version 1.0.0 */ iterator end() noexcept { iterator result(this); result.set_end(); return result; } /*! @copydoc basic_json::cend() */ const_iterator end() const noexcept { return cend(); } /*! @brief returns a const iterator to one past the last element Returns a const iterator to one past the last element. @image html range-begin-end.svg "Illustration from cppreference.com" @return const iterator one past the last element @complexity Constant. @requirement This function helps `basic_json` satisfying the [Container](http://en.cppreference.com/w/cpp/concept/Container) requirements: - The complexity is constant. - Has the semantics of `const_cast(*this).end()`. @liveexample{The following code shows an example for `cend()`.,cend} @sa @ref end() -- returns an iterator to the end @sa @ref begin() -- returns an iterator to the beginning @sa @ref cbegin() -- returns a const iterator to the beginning @since version 1.0.0 */ const_iterator cend() const noexcept { const_iterator result(this); result.set_end(); return result; } /*! @brief returns an iterator to the reverse-beginning Returns an iterator to the reverse-beginning; that is, the last element. @image html range-rbegin-rend.svg "Illustration from cppreference.com" @complexity Constant. @requirement This function helps `basic_json` satisfying the [ReversibleContainer](http://en.cppreference.com/w/cpp/concept/ReversibleContainer) requirements: - The complexity is constant. - Has the semantics of `reverse_iterator(end())`. @liveexample{The following code shows an example for `rbegin()`.,rbegin} @sa @ref crbegin() -- returns a const reverse iterator to the beginning @sa @ref rend() -- returns a reverse iterator to the end @sa @ref crend() -- returns a const reverse iterator to the end @since version 1.0.0 */ reverse_iterator rbegin() noexcept { return reverse_iterator(end()); } /*! @copydoc basic_json::crbegin() */ const_reverse_iterator rbegin() const noexcept { return crbegin(); } /*! @brief returns an iterator to the reverse-end Returns an iterator to the reverse-end; that is, one before the first element. @image html range-rbegin-rend.svg "Illustration from cppreference.com" @complexity Constant. @requirement This function helps `basic_json` satisfying the [ReversibleContainer](http://en.cppreference.com/w/cpp/concept/ReversibleContainer) requirements: - The complexity is constant. - Has the semantics of `reverse_iterator(begin())`. @liveexample{The following code shows an example for `rend()`.,rend} @sa @ref crend() -- returns a const reverse iterator to the end @sa @ref rbegin() -- returns a reverse iterator to the beginning @sa @ref crbegin() -- returns a const reverse iterator to the beginning @since version 1.0.0 */ reverse_iterator rend() noexcept { return reverse_iterator(begin()); } /*! @copydoc basic_json::crend() */ const_reverse_iterator rend() const noexcept { return crend(); } /*! @brief returns a const reverse iterator to the last element Returns a const iterator to the reverse-beginning; that is, the last element. @image html range-rbegin-rend.svg "Illustration from cppreference.com" @complexity Constant. @requirement This function helps `basic_json` satisfying the [ReversibleContainer](http://en.cppreference.com/w/cpp/concept/ReversibleContainer) requirements: - The complexity is constant. - Has the semantics of `const_cast(*this).rbegin()`. @liveexample{The following code shows an example for `crbegin()`.,crbegin} @sa @ref rbegin() -- returns a reverse iterator to the beginning @sa @ref rend() -- returns a reverse iterator to the end @sa @ref crend() -- returns a const reverse iterator to the end @since version 1.0.0 */ const_reverse_iterator crbegin() const noexcept { return const_reverse_iterator(cend()); } /*! @brief returns a const reverse iterator to one before the first Returns a const reverse iterator to the reverse-end; that is, one before the first element. @image html range-rbegin-rend.svg "Illustration from cppreference.com" @complexity Constant. @requirement This function helps `basic_json` satisfying the [ReversibleContainer](http://en.cppreference.com/w/cpp/concept/ReversibleContainer) requirements: - The complexity is constant. - Has the semantics of `const_cast(*this).rend()`. @liveexample{The following code shows an example for `crend()`.,crend} @sa @ref rend() -- returns a reverse iterator to the end @sa @ref rbegin() -- returns a reverse iterator to the beginning @sa @ref crbegin() -- returns a const reverse iterator to the beginning @since version 1.0.0 */ const_reverse_iterator crend() const noexcept { return const_reverse_iterator(cbegin()); } private: // forward declaration template class iteration_proxy; public: /*! @brief wrapper to access iterator member functions in range-based for This function allows to access @ref iterator::key() and @ref iterator::value() during range-based for loops. In these loops, a reference to the JSON values is returned, so there is no access to the underlying iterator. @note The name of this function is not yet final and may change in the future. */ static iteration_proxy iterator_wrapper(reference cont) { return iteration_proxy(cont); } /*! @copydoc iterator_wrapper(reference) */ static iteration_proxy iterator_wrapper(const_reference cont) { return iteration_proxy(cont); } /// @} ////////////// // capacity // ////////////// /// @name capacity /// @{ /*! @brief checks whether the container is empty Checks if a JSON value has no elements. @return The return value depends on the different types and is defined as follows: Value type | return value ----------- | ------------- null | `true` boolean | `false` string | `false` number | `false` object | result of function `object_t::empty()` array | result of function `array_t::empty()` @note This function does not return whether a string stored as JSON value is empty - it returns whether the JSON container itself is empty which is false in the case of a string. @complexity Constant, as long as @ref array_t and @ref object_t satisfy the Container concept; that is, their `empty()` functions have constant complexity. @requirement This function helps `basic_json` satisfying the [Container](http://en.cppreference.com/w/cpp/concept/Container) requirements: - The complexity is constant. - Has the semantics of `begin() == end()`. @liveexample{The following code uses `empty()` to check if a JSON object contains any elements.,empty} @sa @ref size() -- returns the number of elements @since version 1.0.0 */ bool empty() const noexcept { switch (m_type) { case value_t::null: { // null values are empty return true; } case value_t::array: { // delegate call to array_t::empty() return m_value.array->empty(); } case value_t::object: { // delegate call to object_t::empty() return m_value.object->empty(); } default: { // all other types are nonempty return false; } } } /*! @brief returns the number of elements Returns the number of elements in a JSON value. @return The return value depends on the different types and is defined as follows: Value type | return value ----------- | ------------- null | `0` boolean | `1` string | `1` number | `1` object | result of function object_t::size() array | result of function array_t::size() @note This function does not return the length of a string stored as JSON value - it returns the number of elements in the JSON value which is 1 in the case of a string. @complexity Constant, as long as @ref array_t and @ref object_t satisfy the Container concept; that is, their size() functions have constant complexity. @requirement This function helps `basic_json` satisfying the [Container](http://en.cppreference.com/w/cpp/concept/Container) requirements: - The complexity is constant. - Has the semantics of `std::distance(begin(), end())`. @liveexample{The following code calls `size()` on the different value types.,size} @sa @ref empty() -- checks whether the container is empty @sa @ref max_size() -- returns the maximal number of elements @since version 1.0.0 */ size_type size() const noexcept { switch (m_type) { case value_t::null: { // null values are empty return 0; } case value_t::array: { // delegate call to array_t::size() return m_value.array->size(); } case value_t::object: { // delegate call to object_t::size() return m_value.object->size(); } default: { // all other types have size 1 return 1; } } } /*! @brief returns the maximum possible number of elements Returns the maximum number of elements a JSON value is able to hold due to system or library implementation limitations, i.e. `std::distance(begin(), end())` for the JSON value. @return The return value depends on the different types and is defined as follows: Value type | return value ----------- | ------------- null | `0` (same as `size()`) boolean | `1` (same as `size()`) string | `1` (same as `size()`) number | `1` (same as `size()`) object | result of function `object_t::max_size()` array | result of function `array_t::max_size()` @complexity Constant, as long as @ref array_t and @ref object_t satisfy the Container concept; that is, their `max_size()` functions have constant complexity. @requirement This function helps `basic_json` satisfying the [Container](http://en.cppreference.com/w/cpp/concept/Container) requirements: - The complexity is constant. - Has the semantics of returning `b.size()` where `b` is the largest possible JSON value. @liveexample{The following code calls `max_size()` on the different value types. Note the output is implementation specific.,max_size} @sa @ref size() -- returns the number of elements @since version 1.0.0 */ size_type max_size() const noexcept { switch (m_type) { case value_t::array: { // delegate call to array_t::max_size() return m_value.array->max_size(); } case value_t::object: { // delegate call to object_t::max_size() return m_value.object->max_size(); } default: { // all other types have max_size() == size() return size(); } } } /// @} /////////////// // modifiers // /////////////// /// @name modifiers /// @{ /*! @brief clears the contents Clears the content of a JSON value and resets it to the default value as if @ref basic_json(value_t) would have been called: Value type | initial value ----------- | ------------- null | `null` boolean | `false` string | `""` number | `0` object | `{}` array | `[]` @complexity Linear in the size of the JSON value. @liveexample{The example below shows the effect of `clear()` to different JSON types.,clear} @since version 1.0.0 */ void clear() noexcept { switch (m_type) { case value_t::number_integer: { m_value.number_integer = 0; break; } case value_t::number_unsigned: { m_value.number_unsigned = 0; break; } case value_t::number_float: { m_value.number_float = 0.0; break; } case value_t::boolean: { m_value.boolean = false; break; } case value_t::string: { m_value.string->clear(); break; } case value_t::array: { m_value.array->clear(); break; } case value_t::object: { m_value.object->clear(); break; } default: { break; } } } /*! @brief add an object to an array Appends the given element @a val to the end of the JSON value. If the function is called on a JSON null value, an empty array is created before appending @a val. @param[in] val the value to add to the JSON array @throw std::domain_error when called on a type other than JSON array or null; example: `"cannot use push_back() with number"` @complexity Amortized constant. @liveexample{The example shows how `push_back()` and `+=` can be used to add elements to a JSON array. Note how the `null` value was silently converted to a JSON array.,push_back} @since version 1.0.0 */ void push_back(basic_json&& val) { // push_back only works for null objects or arrays if (not(is_null() or is_array())) { JSON_THROW(std::domain_error("cannot use push_back() with " + type_name())); } // transform null object into an array if (is_null()) { m_type = value_t::array; m_value = value_t::array; assert_invariant(); } // add element to array (move semantics) m_value.array->push_back(std::move(val)); // invalidate object val.m_type = value_t::null; } /*! @brief add an object to an array @copydoc push_back(basic_json&&) */ reference operator+=(basic_json&& val) { push_back(std::move(val)); return *this; } /*! @brief add an object to an array @copydoc push_back(basic_json&&) */ void push_back(const basic_json& val) { // push_back only works for null objects or arrays if (not(is_null() or is_array())) { JSON_THROW(std::domain_error("cannot use push_back() with " + type_name())); } // transform null object into an array if (is_null()) { m_type = value_t::array; m_value = value_t::array; assert_invariant(); } // add element to array m_value.array->push_back(val); } /*! @brief add an object to an array @copydoc push_back(basic_json&&) */ reference operator+=(const basic_json& val) { push_back(val); return *this; } /*! @brief add an object to an object Inserts the given element @a val to the JSON object. If the function is called on a JSON null value, an empty object is created before inserting @a val. @param[in] val the value to add to the JSON object @throw std::domain_error when called on a type other than JSON object or null; example: `"cannot use push_back() with number"` @complexity Logarithmic in the size of the container, O(log(`size()`)). @liveexample{The example shows how `push_back()` and `+=` can be used to add elements to a JSON object. Note how the `null` value was silently converted to a JSON object.,push_back__object_t__value} @since version 1.0.0 */ void push_back(const typename object_t::value_type& val) { // push_back only works for null objects or objects if (not(is_null() or is_object())) { JSON_THROW(std::domain_error("cannot use push_back() with " + type_name())); } // transform null object into an object if (is_null()) { m_type = value_t::object; m_value = value_t::object; assert_invariant(); } // add element to array m_value.object->insert(val); } /*! @brief add an object to an object @copydoc push_back(const typename object_t::value_type&) */ reference operator+=(const typename object_t::value_type& val) { push_back(val); return *this; } /*! @brief add an object to an object This function allows to use `push_back` with an initializer list. In case 1. the current value is an object, 2. the initializer list @a init contains only two elements, and 3. the first element of @a init is a string, @a init is converted into an object element and added using @ref push_back(const typename object_t::value_type&). Otherwise, @a init is converted to a JSON value and added using @ref push_back(basic_json&&). @param init an initializer list @complexity Linear in the size of the initializer list @a init. @note This function is required to resolve an ambiguous overload error, because pairs like `{"key", "value"}` can be both interpreted as `object_t::value_type` or `std::initializer_list`, see https://github.com/nlohmann/json/issues/235 for more information. @liveexample{The example shows how initializer lists are treated as objects when possible.,push_back__initializer_list} */ void push_back(std::initializer_list init) { if (is_object() and init.size() == 2 and init.begin()->is_string()) { const string_t key = *init.begin(); push_back(typename object_t::value_type(key, *(init.begin() + 1))); } else { push_back(basic_json(init)); } } /*! @brief add an object to an object @copydoc push_back(std::initializer_list) */ reference operator+=(std::initializer_list init) { push_back(init); return *this; } /*! @brief add an object to an array Creates a JSON value from the passed parameters @a args to the end of the JSON value. If the function is called on a JSON null value, an empty array is created before appending the value created from @a args. @param[in] args arguments to forward to a constructor of @ref basic_json @tparam Args compatible types to create a @ref basic_json object @throw std::domain_error when called on a type other than JSON array or null; example: `"cannot use emplace_back() with number"` @complexity Amortized constant. @liveexample{The example shows how `push_back()` can be used to add elements to a JSON array. Note how the `null` value was silently converted to a JSON array.,emplace_back} @since version 2.0.8 */ template void emplace_back(Args&& ... args) { // emplace_back only works for null objects or arrays if (not(is_null() or is_array())) { JSON_THROW(std::domain_error("cannot use emplace_back() with " + type_name())); } // transform null object into an array if (is_null()) { m_type = value_t::array; m_value = value_t::array; assert_invariant(); } // add element to array (perfect forwarding) m_value.array->emplace_back(std::forward(args)...); } /*! @brief add an object to an object if key does not exist Inserts a new element into a JSON object constructed in-place with the given @a args if there is no element with the key in the container. If the function is called on a JSON null value, an empty object is created before appending the value created from @a args. @param[in] args arguments to forward to a constructor of @ref basic_json @tparam Args compatible types to create a @ref basic_json object @return a pair consisting of an iterator to the inserted element, or the already-existing element if no insertion happened, and a bool denoting whether the insertion took place. @throw std::domain_error when called on a type other than JSON object or null; example: `"cannot use emplace() with number"` @complexity Logarithmic in the size of the container, O(log(`size()`)). @liveexample{The example shows how `emplace()` can be used to add elements to a JSON object. Note how the `null` value was silently converted to a JSON object. Further note how no value is added if there was already one value stored with the same key.,emplace} @since version 2.0.8 */ template std::pair emplace(Args&& ... args) { // emplace only works for null objects or arrays if (not(is_null() or is_object())) { JSON_THROW(std::domain_error("cannot use emplace() with " + type_name())); } // transform null object into an object if (is_null()) { m_type = value_t::object; m_value = value_t::object; assert_invariant(); } // add element to array (perfect forwarding) auto res = m_value.object->emplace(std::forward(args)...); // create result iterator and set iterator to the result of emplace auto it = begin(); it.m_it.object_iterator = res.first; // return pair of iterator and boolean return {it, res.second}; } /*! @brief inserts element Inserts element @a val before iterator @a pos. @param[in] pos iterator before which the content will be inserted; may be the end() iterator @param[in] val element to insert @return iterator pointing to the inserted @a val. @throw std::domain_error if called on JSON values other than arrays; example: `"cannot use insert() with string"` @throw std::domain_error if @a pos is not an iterator of *this; example: `"iterator does not fit current value"` @complexity Constant plus linear in the distance between @a pos and end of the container. @liveexample{The example shows how `insert()` is used.,insert} @since version 1.0.0 */ iterator insert(const_iterator pos, const basic_json& val) { // insert only works for arrays if (is_array()) { // check if iterator pos fits to this JSON value if (pos.m_object != this) { JSON_THROW(std::domain_error("iterator does not fit current value")); } // insert to array and return iterator iterator result(this); result.m_it.array_iterator = m_value.array->insert(pos.m_it.array_iterator, val); return result; } JSON_THROW(std::domain_error("cannot use insert() with " + type_name())); } /*! @brief inserts element @copydoc insert(const_iterator, const basic_json&) */ iterator insert(const_iterator pos, basic_json&& val) { return insert(pos, val); } /*! @brief inserts elements Inserts @a cnt copies of @a val before iterator @a pos. @param[in] pos iterator before which the content will be inserted; may be the end() iterator @param[in] cnt number of copies of @a val to insert @param[in] val element to insert @return iterator pointing to the first element inserted, or @a pos if `cnt==0` @throw std::domain_error if called on JSON values other than arrays; example: `"cannot use insert() with string"` @throw std::domain_error if @a pos is not an iterator of *this; example: `"iterator does not fit current value"` @complexity Linear in @a cnt plus linear in the distance between @a pos and end of the container. @liveexample{The example shows how `insert()` is used.,insert__count} @since version 1.0.0 */ iterator insert(const_iterator pos, size_type cnt, const basic_json& val) { // insert only works for arrays if (is_array()) { // check if iterator pos fits to this JSON value if (pos.m_object != this) { JSON_THROW(std::domain_error("iterator does not fit current value")); } // insert to array and return iterator iterator result(this); result.m_it.array_iterator = m_value.array->insert(pos.m_it.array_iterator, cnt, val); return result; } JSON_THROW(std::domain_error("cannot use insert() with " + type_name())); } /*! @brief inserts elements Inserts elements from range `[first, last)` before iterator @a pos. @param[in] pos iterator before which the content will be inserted; may be the end() iterator @param[in] first begin of the range of elements to insert @param[in] last end of the range of elements to insert @throw std::domain_error if called on JSON values other than arrays; example: `"cannot use insert() with string"` @throw std::domain_error if @a pos is not an iterator of *this; example: `"iterator does not fit current value"` @throw std::domain_error if @a first and @a last do not belong to the same JSON value; example: `"iterators do not fit"` @throw std::domain_error if @a first or @a last are iterators into container for which insert is called; example: `"passed iterators may not belong to container"` @return iterator pointing to the first element inserted, or @a pos if `first==last` @complexity Linear in `std::distance(first, last)` plus linear in the distance between @a pos and end of the container. @liveexample{The example shows how `insert()` is used.,insert__range} @since version 1.0.0 */ iterator insert(const_iterator pos, const_iterator first, const_iterator last) { // insert only works for arrays if (not is_array()) { JSON_THROW(std::domain_error("cannot use insert() with " + type_name())); } // check if iterator pos fits to this JSON value if (pos.m_object != this) { JSON_THROW(std::domain_error("iterator does not fit current value")); } // check if range iterators belong to the same JSON object if (first.m_object != last.m_object) { JSON_THROW(std::domain_error("iterators do not fit")); } if (first.m_object == this or last.m_object == this) { JSON_THROW(std::domain_error("passed iterators may not belong to container")); } // insert to array and return iterator iterator result(this); result.m_it.array_iterator = m_value.array->insert( pos.m_it.array_iterator, first.m_it.array_iterator, last.m_it.array_iterator); return result; } /*! @brief inserts elements Inserts elements from initializer list @a ilist before iterator @a pos. @param[in] pos iterator before which the content will be inserted; may be the end() iterator @param[in] ilist initializer list to insert the values from @throw std::domain_error if called on JSON values other than arrays; example: `"cannot use insert() with string"` @throw std::domain_error if @a pos is not an iterator of *this; example: `"iterator does not fit current value"` @return iterator pointing to the first element inserted, or @a pos if `ilist` is empty @complexity Linear in `ilist.size()` plus linear in the distance between @a pos and end of the container. @liveexample{The example shows how `insert()` is used.,insert__ilist} @since version 1.0.0 */ iterator insert(const_iterator pos, std::initializer_list ilist) { // insert only works for arrays if (not is_array()) { JSON_THROW(std::domain_error("cannot use insert() with " + type_name())); } // check if iterator pos fits to this JSON value if (pos.m_object != this) { JSON_THROW(std::domain_error("iterator does not fit current value")); } // insert to array and return iterator iterator result(this); result.m_it.array_iterator = m_value.array->insert(pos.m_it.array_iterator, ilist); return result; } /*! @brief exchanges the values Exchanges the contents of the JSON value with those of @a other. Does not invoke any move, copy, or swap operations on individual elements. All iterators and references remain valid. The past-the-end iterator is invalidated. @param[in,out] other JSON value to exchange the contents with @complexity Constant. @liveexample{The example below shows how JSON values can be swapped with `swap()`.,swap__reference} @since version 1.0.0 */ void swap(reference other) noexcept ( std::is_nothrow_move_constructible::value and std::is_nothrow_move_assignable::value and std::is_nothrow_move_constructible::value and std::is_nothrow_move_assignable::value ) { std::swap(m_type, other.m_type); std::swap(m_value, other.m_value); assert_invariant(); } /*! @brief exchanges the values Exchanges the contents of a JSON array with those of @a other. Does not invoke any move, copy, or swap operations on individual elements. All iterators and references remain valid. The past-the-end iterator is invalidated. @param[in,out] other array to exchange the contents with @throw std::domain_error when JSON value is not an array; example: `"cannot use swap() with string"` @complexity Constant. @liveexample{The example below shows how arrays can be swapped with `swap()`.,swap__array_t} @since version 1.0.0 */ void swap(array_t& other) { // swap only works for arrays if (is_array()) { std::swap(*(m_value.array), other); } else { JSON_THROW(std::domain_error("cannot use swap() with " + type_name())); } } /*! @brief exchanges the values Exchanges the contents of a JSON object with those of @a other. Does not invoke any move, copy, or swap operations on individual elements. All iterators and references remain valid. The past-the-end iterator is invalidated. @param[in,out] other object to exchange the contents with @throw std::domain_error when JSON value is not an object; example: `"cannot use swap() with string"` @complexity Constant. @liveexample{The example below shows how objects can be swapped with `swap()`.,swap__object_t} @since version 1.0.0 */ void swap(object_t& other) { // swap only works for objects if (is_object()) { std::swap(*(m_value.object), other); } else { JSON_THROW(std::domain_error("cannot use swap() with " + type_name())); } } /*! @brief exchanges the values Exchanges the contents of a JSON string with those of @a other. Does not invoke any move, copy, or swap operations on individual elements. All iterators and references remain valid. The past-the-end iterator is invalidated. @param[in,out] other string to exchange the contents with @throw std::domain_error when JSON value is not a string; example: `"cannot use swap() with boolean"` @complexity Constant. @liveexample{The example below shows how strings can be swapped with `swap()`.,swap__string_t} @since version 1.0.0 */ void swap(string_t& other) { // swap only works for strings if (is_string()) { std::swap(*(m_value.string), other); } else { JSON_THROW(std::domain_error("cannot use swap() with " + type_name())); } } /// @} public: ////////////////////////////////////////// // lexicographical comparison operators // ////////////////////////////////////////// /// @name lexicographical comparison operators /// @{ /*! @brief comparison: equal Compares two JSON values for equality according to the following rules: - Two JSON values are equal if (1) they are from the same type and (2) their stored values are the same. - Integer and floating-point numbers are automatically converted before comparison. Floating-point numbers are compared indirectly: two floating-point numbers `f1` and `f2` are considered equal if neither `f1 > f2` nor `f2 > f1` holds. - Two JSON null values are equal. @param[in] lhs first JSON value to consider @param[in] rhs second JSON value to consider @return whether the values @a lhs and @a rhs are equal @complexity Linear. @liveexample{The example demonstrates comparing several JSON types.,operator__equal} @since version 1.0.0 */ friend bool operator==(const_reference lhs, const_reference rhs) noexcept { const auto lhs_type = lhs.type(); const auto rhs_type = rhs.type(); if (lhs_type == rhs_type) { switch (lhs_type) { case value_t::array: { return *lhs.m_value.array == *rhs.m_value.array; } case value_t::object: { return *lhs.m_value.object == *rhs.m_value.object; } case value_t::null: { return true; } case value_t::string: { return *lhs.m_value.string == *rhs.m_value.string; } case value_t::boolean: { return lhs.m_value.boolean == rhs.m_value.boolean; } case value_t::number_integer: { return lhs.m_value.number_integer == rhs.m_value.number_integer; } case value_t::number_unsigned: { return lhs.m_value.number_unsigned == rhs.m_value.number_unsigned; } case value_t::number_float: { return lhs.m_value.number_float == rhs.m_value.number_float; } default: { return false; } } } else if (lhs_type == value_t::number_integer and rhs_type == value_t::number_float) { return static_cast(lhs.m_value.number_integer) == rhs.m_value.number_float; } else if (lhs_type == value_t::number_float and rhs_type == value_t::number_integer) { return lhs.m_value.number_float == static_cast(rhs.m_value.number_integer); } else if (lhs_type == value_t::number_unsigned and rhs_type == value_t::number_float) { return static_cast(lhs.m_value.number_unsigned) == rhs.m_value.number_float; } else if (lhs_type == value_t::number_float and rhs_type == value_t::number_unsigned) { return lhs.m_value.number_float == static_cast(rhs.m_value.number_unsigned); } else if (lhs_type == value_t::number_unsigned and rhs_type == value_t::number_integer) { return static_cast(lhs.m_value.number_unsigned) == rhs.m_value.number_integer; } else if (lhs_type == value_t::number_integer and rhs_type == value_t::number_unsigned) { return lhs.m_value.number_integer == static_cast(rhs.m_value.number_unsigned); } return false; } /*! @brief comparison: equal The functions compares the given JSON value against a null pointer. As the null pointer can be used to initialize a JSON value to null, a comparison of JSON value @a v with a null pointer should be equivalent to call `v.is_null()`. @param[in] v JSON value to consider @return whether @a v is null @complexity Constant. @liveexample{The example compares several JSON types to the null pointer. ,operator__equal__nullptr_t} @since version 1.0.0 */ friend bool operator==(const_reference v, std::nullptr_t) noexcept { return v.is_null(); } /*! @brief comparison: equal @copydoc operator==(const_reference, std::nullptr_t) */ friend bool operator==(std::nullptr_t, const_reference v) noexcept { return v.is_null(); } /*! @brief comparison: not equal Compares two JSON values for inequality by calculating `not (lhs == rhs)`. @param[in] lhs first JSON value to consider @param[in] rhs second JSON value to consider @return whether the values @a lhs and @a rhs are not equal @complexity Linear. @liveexample{The example demonstrates comparing several JSON types.,operator__notequal} @since version 1.0.0 */ friend bool operator!=(const_reference lhs, const_reference rhs) noexcept { return not (lhs == rhs); } /*! @brief comparison: not equal The functions compares the given JSON value against a null pointer. As the null pointer can be used to initialize a JSON value to null, a comparison of JSON value @a v with a null pointer should be equivalent to call `not v.is_null()`. @param[in] v JSON value to consider @return whether @a v is not null @complexity Constant. @liveexample{The example compares several JSON types to the null pointer. ,operator__notequal__nullptr_t} @since version 1.0.0 */ friend bool operator!=(const_reference v, std::nullptr_t) noexcept { return not v.is_null(); } /*! @brief comparison: not equal @copydoc operator!=(const_reference, std::nullptr_t) */ friend bool operator!=(std::nullptr_t, const_reference v) noexcept { return not v.is_null(); } /*! @brief comparison: less than Compares whether one JSON value @a lhs is less than another JSON value @a rhs according to the following rules: - If @a lhs and @a rhs have the same type, the values are compared using the default `<` operator. - Integer and floating-point numbers are automatically converted before comparison - In case @a lhs and @a rhs have different types, the values are ignored and the order of the types is considered, see @ref operator<(const value_t, const value_t). @param[in] lhs first JSON value to consider @param[in] rhs second JSON value to consider @return whether @a lhs is less than @a rhs @complexity Linear. @liveexample{The example demonstrates comparing several JSON types.,operator__less} @since version 1.0.0 */ friend bool operator<(const_reference lhs, const_reference rhs) noexcept { const auto lhs_type = lhs.type(); const auto rhs_type = rhs.type(); if (lhs_type == rhs_type) { switch (lhs_type) { case value_t::array: { return *lhs.m_value.array < *rhs.m_value.array; } case value_t::object: { return *lhs.m_value.object < *rhs.m_value.object; } case value_t::null: { return false; } case value_t::string: { return *lhs.m_value.string < *rhs.m_value.string; } case value_t::boolean: { return lhs.m_value.boolean < rhs.m_value.boolean; } case value_t::number_integer: { return lhs.m_value.number_integer < rhs.m_value.number_integer; } case value_t::number_unsigned: { return lhs.m_value.number_unsigned < rhs.m_value.number_unsigned; } case value_t::number_float: { return lhs.m_value.number_float < rhs.m_value.number_float; } default: { return false; } } } else if (lhs_type == value_t::number_integer and rhs_type == value_t::number_float) { return static_cast(lhs.m_value.number_integer) < rhs.m_value.number_float; } else if (lhs_type == value_t::number_float and rhs_type == value_t::number_integer) { return lhs.m_value.number_float < static_cast(rhs.m_value.number_integer); } else if (lhs_type == value_t::number_unsigned and rhs_type == value_t::number_float) { return static_cast(lhs.m_value.number_unsigned) < rhs.m_value.number_float; } else if (lhs_type == value_t::number_float and rhs_type == value_t::number_unsigned) { return lhs.m_value.number_float < static_cast(rhs.m_value.number_unsigned); } else if (lhs_type == value_t::number_integer and rhs_type == value_t::number_unsigned) { return lhs.m_value.number_integer < static_cast(rhs.m_value.number_unsigned); } else if (lhs_type == value_t::number_unsigned and rhs_type == value_t::number_integer) { return static_cast(lhs.m_value.number_unsigned) < rhs.m_value.number_integer; } // We only reach this line if we cannot compare values. In that case, // we compare types. Note we have to call the operator explicitly, // because MSVC has problems otherwise. return operator<(lhs_type, rhs_type); } /*! @brief comparison: less than or equal Compares whether one JSON value @a lhs is less than or equal to another JSON value by calculating `not (rhs < lhs)`. @param[in] lhs first JSON value to consider @param[in] rhs second JSON value to consider @return whether @a lhs is less than or equal to @a rhs @complexity Linear. @liveexample{The example demonstrates comparing several JSON types.,operator__greater} @since version 1.0.0 */ friend bool operator<=(const_reference lhs, const_reference rhs) noexcept { return not (rhs < lhs); } /*! @brief comparison: greater than Compares whether one JSON value @a lhs is greater than another JSON value by calculating `not (lhs <= rhs)`. @param[in] lhs first JSON value to consider @param[in] rhs second JSON value to consider @return whether @a lhs is greater than to @a rhs @complexity Linear. @liveexample{The example demonstrates comparing several JSON types.,operator__lessequal} @since version 1.0.0 */ friend bool operator>(const_reference lhs, const_reference rhs) noexcept { return not (lhs <= rhs); } /*! @brief comparison: greater than or equal Compares whether one JSON value @a lhs is greater than or equal to another JSON value by calculating `not (lhs < rhs)`. @param[in] lhs first JSON value to consider @param[in] rhs second JSON value to consider @return whether @a lhs is greater than or equal to @a rhs @complexity Linear. @liveexample{The example demonstrates comparing several JSON types.,operator__greaterequal} @since version 1.0.0 */ friend bool operator>=(const_reference lhs, const_reference rhs) noexcept { return not (lhs < rhs); } /// @} /////////////////// // serialization // /////////////////// /// @name serialization /// @{ /*! @brief serialize to stream Serialize the given JSON value @a j to the output stream @a o. The JSON value will be serialized using the @ref dump member function. The indentation of the output can be controlled with the member variable `width` of the output stream @a o. For instance, using the manipulator `std::setw(4)` on @a o sets the indentation level to `4` and the serialization result is the same as calling `dump(4)`. @note During serialization, the locale and the precision of the output stream @a o are changed. The original values are restored when the function returns. @param[in,out] o stream to serialize to @param[in] j JSON value to serialize @return the stream @a o @complexity Linear. @liveexample{The example below shows the serialization with different parameters to `width` to adjust the indentation level.,operator_serialize} @since version 1.0.0 */ friend std::ostream& operator<<(std::ostream& o, const basic_json& j) { // read width member and use it as indentation parameter if nonzero const bool pretty_print = (o.width() > 0); const auto indentation = (pretty_print ? o.width() : 0); // reset width to 0 for subsequent calls to this stream o.width(0); // fix locale problems const auto old_locale = o.imbue(std::locale::classic()); // set precision // 6, 15 or 16 digits of precision allows round-trip IEEE 754 // string->float->string, string->double->string or string->long // double->string; to be safe, we read this value from // std::numeric_limits::digits10 const auto old_precision = o.precision(std::numeric_limits::digits10); // do the actual serialization j.dump(o, pretty_print, static_cast(indentation)); // reset locale and precision o.imbue(old_locale); o.precision(old_precision); return o; } /*! @brief serialize to stream @copydoc operator<<(std::ostream&, const basic_json&) */ friend std::ostream& operator>>(const basic_json& j, std::ostream& o) { return o << j; } /// @} ///////////////////// // deserialization // ///////////////////// /// @name deserialization /// @{ /*! @brief deserialize from an array This function reads from an array of 1-byte values. @pre Each element of the container has a size of 1 byte. Violating this precondition yields undefined behavior. **This precondition is enforced with a static assertion.** @param[in] array array to read from @param[in] cb a parser callback function of type @ref parser_callback_t which is used to control the deserialization by filtering unwanted values (optional) @return result of the deserialization @complexity Linear in the length of the input. The parser is a predictive LL(1) parser. The complexity can be higher if the parser callback function @a cb has a super-linear complexity. @note A UTF-8 byte order mark is silently ignored. @liveexample{The example below demonstrates the `parse()` function reading from an array.,parse__array__parser_callback_t} @since version 2.0.3 */ template static basic_json parse(T (&array)[N], const parser_callback_t cb = nullptr) { // delegate the call to the iterator-range parse overload return parse(std::begin(array), std::end(array), cb); } /*! @brief deserialize from string literal @tparam CharT character/literal type with size of 1 byte @param[in] s string literal to read a serialized JSON value from @param[in] cb a parser callback function of type @ref parser_callback_t which is used to control the deserialization by filtering unwanted values (optional) @return result of the deserialization @complexity Linear in the length of the input. The parser is a predictive LL(1) parser. The complexity can be higher if the parser callback function @a cb has a super-linear complexity. @note A UTF-8 byte order mark is silently ignored. @note String containers like `std::string` or @ref string_t can be parsed with @ref parse(const ContiguousContainer&, const parser_callback_t) @liveexample{The example below demonstrates the `parse()` function with and without callback function.,parse__string__parser_callback_t} @sa @ref parse(std::istream&, const parser_callback_t) for a version that reads from an input stream @since version 1.0.0 (originally for @ref string_t) */ template::value and std::is_integral::type>::value and sizeof(typename std::remove_pointer::type) == 1, int>::type = 0> static basic_json parse(const CharT s, const parser_callback_t cb = nullptr) { return parser(reinterpret_cast(s), cb).parse(); } /*! @brief deserialize from stream @param[in,out] i stream to read a serialized JSON value from @param[in] cb a parser callback function of type @ref parser_callback_t which is used to control the deserialization by filtering unwanted values (optional) @return result of the deserialization @complexity Linear in the length of the input. The parser is a predictive LL(1) parser. The complexity can be higher if the parser callback function @a cb has a super-linear complexity. @note A UTF-8 byte order mark is silently ignored. @liveexample{The example below demonstrates the `parse()` function with and without callback function.,parse__istream__parser_callback_t} @sa @ref parse(const CharT, const parser_callback_t) for a version that reads from a string @since version 1.0.0 */ static basic_json parse(std::istream& i, const parser_callback_t cb = nullptr) { return parser(i, cb).parse(); } /*! @copydoc parse(std::istream&, const parser_callback_t) */ static basic_json parse(std::istream&& i, const parser_callback_t cb = nullptr) { return parser(i, cb).parse(); } /*! @brief deserialize from an iterator range with contiguous storage This function reads from an iterator range of a container with contiguous storage of 1-byte values. Compatible container types include `std::vector`, `std::string`, `std::array`, `std::valarray`, and `std::initializer_list`. Furthermore, C-style arrays can be used with `std::begin()`/`std::end()`. User-defined containers can be used as long as they implement random-access iterators and a contiguous storage. @pre The iterator range is contiguous. Violating this precondition yields undefined behavior. **This precondition is enforced with an assertion.** @pre Each element in the range has a size of 1 byte. Violating this precondition yields undefined behavior. **This precondition is enforced with a static assertion.** @warning There is no way to enforce all preconditions at compile-time. If the function is called with noncompliant iterators and with assertions switched off, the behavior is undefined and will most likely yield segmentation violation. @tparam IteratorType iterator of container with contiguous storage @param[in] first begin of the range to parse (included) @param[in] last end of the range to parse (excluded) @param[in] cb a parser callback function of type @ref parser_callback_t which is used to control the deserialization by filtering unwanted values (optional) @return result of the deserialization @complexity Linear in the length of the input. The parser is a predictive LL(1) parser. The complexity can be higher if the parser callback function @a cb has a super-linear complexity. @note A UTF-8 byte order mark is silently ignored. @liveexample{The example below demonstrates the `parse()` function reading from an iterator range.,parse__iteratortype__parser_callback_t} @since version 2.0.3 */ template::iterator_category>::value, int>::type = 0> static basic_json parse(IteratorType first, IteratorType last, const parser_callback_t cb = nullptr) { // assertion to check that the iterator range is indeed contiguous, // see http://stackoverflow.com/a/35008842/266378 for more discussion assert(std::accumulate(first, last, std::pair(true, 0), [&first](std::pair res, decltype(*first) val) { res.first &= (val == *(std::next(std::addressof(*first), res.second++))); return res; }).first); // assertion to check that each element is 1 byte long static_assert(sizeof(typename std::iterator_traits::value_type) == 1, "each element in the iterator range must have the size of 1 byte"); // if iterator range is empty, create a parser with an empty string // to generate "unexpected EOF" error message if (std::distance(first, last) <= 0) { return parser("").parse(); } return parser(first, last, cb).parse(); } /*! @brief deserialize from a container with contiguous storage This function reads from a container with contiguous storage of 1-byte values. Compatible container types include `std::vector`, `std::string`, `std::array`, and `std::initializer_list`. User-defined containers can be used as long as they implement random-access iterators and a contiguous storage. @pre The container storage is contiguous. Violating this precondition yields undefined behavior. **This precondition is enforced with an assertion.** @pre Each element of the container has a size of 1 byte. Violating this precondition yields undefined behavior. **This precondition is enforced with a static assertion.** @warning There is no way to enforce all preconditions at compile-time. If the function is called with a noncompliant container and with assertions switched off, the behavior is undefined and will most likely yield segmentation violation. @tparam ContiguousContainer container type with contiguous storage @param[in] c container to read from @param[in] cb a parser callback function of type @ref parser_callback_t which is used to control the deserialization by filtering unwanted values (optional) @return result of the deserialization @complexity Linear in the length of the input. The parser is a predictive LL(1) parser. The complexity can be higher if the parser callback function @a cb has a super-linear complexity. @note A UTF-8 byte order mark is silently ignored. @liveexample{The example below demonstrates the `parse()` function reading from a contiguous container.,parse__contiguouscontainer__parser_callback_t} @since version 2.0.3 */ template::value and std::is_base_of< std::random_access_iterator_tag, typename std::iterator_traits()))>::iterator_category>::value , int>::type = 0> static basic_json parse(const ContiguousContainer& c, const parser_callback_t cb = nullptr) { // delegate the call to the iterator-range parse overload return parse(std::begin(c), std::end(c), cb); } /*! @brief deserialize from stream Deserializes an input stream to a JSON value. @param[in,out] i input stream to read a serialized JSON value from @param[in,out] j JSON value to write the deserialized input to @throw std::invalid_argument in case of parse errors @complexity Linear in the length of the input. The parser is a predictive LL(1) parser. @note A UTF-8 byte order mark is silently ignored. @liveexample{The example below shows how a JSON value is constructed by reading a serialization from a stream.,operator_deserialize} @sa parse(std::istream&, const parser_callback_t) for a variant with a parser callback function to filter values while parsing @since version 1.0.0 */ friend std::istream& operator<<(basic_json& j, std::istream& i) { j = parser(i).parse(); return i; } /*! @brief deserialize from stream @copydoc operator<<(basic_json&, std::istream&) */ friend std::istream& operator>>(std::istream& i, basic_json& j) { j = parser(i).parse(); return i; } /// @} ////////////////////////////////////////// // binary serialization/deserialization // ////////////////////////////////////////// /// @name binary serialization/deserialization support /// @{ private: template static void add_to_vector(std::vector& vec, size_t bytes, const T number) { assert(bytes == 1 or bytes == 2 or bytes == 4 or bytes == 8); switch (bytes) { case 8: { vec.push_back(static_cast((number >> 070) & 0xff)); vec.push_back(static_cast((number >> 060) & 0xff)); vec.push_back(static_cast((number >> 050) & 0xff)); vec.push_back(static_cast((number >> 040) & 0xff)); // intentional fall-through } case 4: { vec.push_back(static_cast((number >> 030) & 0xff)); vec.push_back(static_cast((number >> 020) & 0xff)); // intentional fall-through } case 2: { vec.push_back(static_cast((number >> 010) & 0xff)); // intentional fall-through } case 1: { vec.push_back(static_cast(number & 0xff)); break; } } } /*! @brief take sufficient bytes from a vector to fill an integer variable In the context of binary serialization formats, we need to read several bytes from a byte vector and combine them to multi-byte integral data types. @param[in] vec byte vector to read from @param[in] current_index the position in the vector after which to read @return the next sizeof(T) bytes from @a vec, in reverse order as T @tparam T the integral return type @throw std::out_of_range if there are less than sizeof(T)+1 bytes in the vector @a vec to read In the for loop, the bytes from the vector are copied in reverse order into the return value. In the figures below, let sizeof(T)=4 and `i` be the loop variable. Precondition: vec: | | | a | b | c | d | T: | | | | | ^ ^ ^ ^ current_index i ptr sizeof(T) Postcondition: vec: | | | a | b | c | d | T: | d | c | b | a | ^ ^ ^ | i ptr current_index @sa Code adapted from . */ template static T get_from_vector(const std::vector& vec, const size_t current_index) { if (current_index + sizeof(T) + 1 > vec.size()) { JSON_THROW(std::out_of_range("cannot read " + std::to_string(sizeof(T)) + " bytes from vector")); } T result; auto* ptr = reinterpret_cast(&result); for (size_t i = 0; i < sizeof(T); ++i) { *ptr++ = vec[current_index + sizeof(T) - i]; } return result; } /*! @brief create a MessagePack serialization of a given JSON value This is a straightforward implementation of the MessagePack specification. @param[in] j JSON value to serialize @param[in,out] v byte vector to write the serialization to @sa https://github.com/msgpack/msgpack/blob/master/spec.md */ static void to_msgpack_internal(const basic_json& j, std::vector& v) { switch (j.type()) { case value_t::null: { // nil v.push_back(0xc0); break; } case value_t::boolean: { // true and false v.push_back(j.m_value.boolean ? 0xc3 : 0xc2); break; } case value_t::number_integer: { if (j.m_value.number_integer >= 0) { // MessagePack does not differentiate between positive // signed integers and unsigned integers. Therefore, we // used the code from the value_t::number_unsigned case // here. if (j.m_value.number_unsigned < 128) { // positive fixnum add_to_vector(v, 1, j.m_value.number_unsigned); } else if (j.m_value.number_unsigned <= UINT8_MAX) { // uint 8 v.push_back(0xcc); add_to_vector(v, 1, j.m_value.number_unsigned); } else if (j.m_value.number_unsigned <= UINT16_MAX) { // uint 16 v.push_back(0xcd); add_to_vector(v, 2, j.m_value.number_unsigned); } else if (j.m_value.number_unsigned <= UINT32_MAX) { // uint 32 v.push_back(0xce); add_to_vector(v, 4, j.m_value.number_unsigned); } else if (j.m_value.number_unsigned <= UINT64_MAX) { // uint 64 v.push_back(0xcf); add_to_vector(v, 8, j.m_value.number_unsigned); } } else { if (j.m_value.number_integer >= -32) { // negative fixnum add_to_vector(v, 1, j.m_value.number_integer); } else if (j.m_value.number_integer >= INT8_MIN and j.m_value.number_integer <= INT8_MAX) { // int 8 v.push_back(0xd0); add_to_vector(v, 1, j.m_value.number_integer); } else if (j.m_value.number_integer >= INT16_MIN and j.m_value.number_integer <= INT16_MAX) { // int 16 v.push_back(0xd1); add_to_vector(v, 2, j.m_value.number_integer); } else if (j.m_value.number_integer >= INT32_MIN and j.m_value.number_integer <= INT32_MAX) { // int 32 v.push_back(0xd2); add_to_vector(v, 4, j.m_value.number_integer); } else if (j.m_value.number_integer >= INT64_MIN and j.m_value.number_integer <= INT64_MAX) { // int 64 v.push_back(0xd3); add_to_vector(v, 8, j.m_value.number_integer); } } break; } case value_t::number_unsigned: { if (j.m_value.number_unsigned < 128) { // positive fixnum add_to_vector(v, 1, j.m_value.number_unsigned); } else if (j.m_value.number_unsigned <= UINT8_MAX) { // uint 8 v.push_back(0xcc); add_to_vector(v, 1, j.m_value.number_unsigned); } else if (j.m_value.number_unsigned <= UINT16_MAX) { // uint 16 v.push_back(0xcd); add_to_vector(v, 2, j.m_value.number_unsigned); } else if (j.m_value.number_unsigned <= UINT32_MAX) { // uint 32 v.push_back(0xce); add_to_vector(v, 4, j.m_value.number_unsigned); } else if (j.m_value.number_unsigned <= UINT64_MAX) { // uint 64 v.push_back(0xcf); add_to_vector(v, 8, j.m_value.number_unsigned); } break; } case value_t::number_float: { // float 64 v.push_back(0xcb); const auto* helper = reinterpret_cast(&(j.m_value.number_float)); for (size_t i = 0; i < 8; ++i) { v.push_back(helper[7 - i]); } break; } case value_t::string: { const auto N = j.m_value.string->size(); if (N <= 31) { // fixstr v.push_back(static_cast(0xa0 | N)); } else if (N <= 255) { // str 8 v.push_back(0xd9); add_to_vector(v, 1, N); } else if (N <= 65535) { // str 16 v.push_back(0xda); add_to_vector(v, 2, N); } else if (N <= 4294967295) { // str 32 v.push_back(0xdb); add_to_vector(v, 4, N); } // append string std::copy(j.m_value.string->begin(), j.m_value.string->end(), std::back_inserter(v)); break; } case value_t::array: { const auto N = j.m_value.array->size(); if (N <= 15) { // fixarray v.push_back(static_cast(0x90 | N)); } else if (N <= 0xffff) { // array 16 v.push_back(0xdc); add_to_vector(v, 2, N); } else if (N <= 0xffffffff) { // array 32 v.push_back(0xdd); add_to_vector(v, 4, N); } // append each element for (const auto& el : *j.m_value.array) { to_msgpack_internal(el, v); } break; } case value_t::object: { const auto N = j.m_value.object->size(); if (N <= 15) { // fixmap v.push_back(static_cast(0x80 | (N & 0xf))); } else if (N <= 65535) { // map 16 v.push_back(0xde); add_to_vector(v, 2, N); } else if (N <= 4294967295) { // map 32 v.push_back(0xdf); add_to_vector(v, 4, N); } // append each element for (const auto& el : *j.m_value.object) { to_msgpack_internal(el.first, v); to_msgpack_internal(el.second, v); } break; } default: { break; } } } /*! @brief create a CBOR serialization of a given JSON value This is a straightforward implementation of the CBOR specification. @param[in] j JSON value to serialize @param[in,out] v byte vector to write the serialization to @sa https://tools.ietf.org/html/rfc7049 */ static void to_cbor_internal(const basic_json& j, std::vector& v) { switch (j.type()) { case value_t::null: { v.push_back(0xf6); break; } case value_t::boolean: { v.push_back(j.m_value.boolean ? 0xf5 : 0xf4); break; } case value_t::number_integer: { if (j.m_value.number_integer >= 0) { // CBOR does not differentiate between positive signed // integers and unsigned integers. Therefore, we used the // code from the value_t::number_unsigned case here. if (j.m_value.number_integer <= 0x17) { add_to_vector(v, 1, j.m_value.number_integer); } else if (j.m_value.number_integer <= UINT8_MAX) { v.push_back(0x18); // one-byte uint8_t add_to_vector(v, 1, j.m_value.number_integer); } else if (j.m_value.number_integer <= UINT16_MAX) { v.push_back(0x19); // two-byte uint16_t add_to_vector(v, 2, j.m_value.number_integer); } else if (j.m_value.number_integer <= UINT32_MAX) { v.push_back(0x1a); // four-byte uint32_t add_to_vector(v, 4, j.m_value.number_integer); } else { v.push_back(0x1b); // eight-byte uint64_t add_to_vector(v, 8, j.m_value.number_integer); } } else { // The conversions below encode the sign in the first // byte, and the value is converted to a positive number. const auto positive_number = -1 - j.m_value.number_integer; if (j.m_value.number_integer >= -24) { v.push_back(static_cast(0x20 + positive_number)); } else if (positive_number <= UINT8_MAX) { // int 8 v.push_back(0x38); add_to_vector(v, 1, positive_number); } else if (positive_number <= UINT16_MAX) { // int 16 v.push_back(0x39); add_to_vector(v, 2, positive_number); } else if (positive_number <= UINT32_MAX) { // int 32 v.push_back(0x3a); add_to_vector(v, 4, positive_number); } else { // int 64 v.push_back(0x3b); add_to_vector(v, 8, positive_number); } } break; } case value_t::number_unsigned: { if (j.m_value.number_unsigned <= 0x17) { v.push_back(static_cast(j.m_value.number_unsigned)); } else if (j.m_value.number_unsigned <= 0xff) { v.push_back(0x18); // one-byte uint8_t add_to_vector(v, 1, j.m_value.number_unsigned); } else if (j.m_value.number_unsigned <= 0xffff) { v.push_back(0x19); // two-byte uint16_t add_to_vector(v, 2, j.m_value.number_unsigned); } else if (j.m_value.number_unsigned <= 0xffffffff) { v.push_back(0x1a); // four-byte uint32_t add_to_vector(v, 4, j.m_value.number_unsigned); } else if (j.m_value.number_unsigned <= 0xffffffffffffffff) { v.push_back(0x1b); // eight-byte uint64_t add_to_vector(v, 8, j.m_value.number_unsigned); } break; } case value_t::number_float: { // Double-Precision Float v.push_back(0xfb); const auto* helper = reinterpret_cast(&(j.m_value.number_float)); for (size_t i = 0; i < 8; ++i) { v.push_back(helper[7 - i]); } break; } case value_t::string: { const auto N = j.m_value.string->size(); if (N <= 0x17) { v.push_back(0x60 + N); // 1 byte for string + size } else if (N <= 0xff) { v.push_back(0x78); // one-byte uint8_t for N add_to_vector(v, 1, N); } else if (N <= 0xffff) { v.push_back(0x79); // two-byte uint16_t for N add_to_vector(v, 2, N); } else if (N <= 0xffffffff) { v.push_back(0x7a); // four-byte uint32_t for N add_to_vector(v, 4, N); } // LCOV_EXCL_START else if (N <= 0xffffffffffffffff) { v.push_back(0x7b); // eight-byte uint64_t for N add_to_vector(v, 8, N); } // LCOV_EXCL_STOP // append string std::copy(j.m_value.string->begin(), j.m_value.string->end(), std::back_inserter(v)); break; } case value_t::array: { const auto N = j.m_value.array->size(); if (N <= 0x17) { v.push_back(0x80 + N); // 1 byte for array + size } else if (N <= 0xff) { v.push_back(0x98); // one-byte uint8_t for N add_to_vector(v, 1, N); } else if (N <= 0xffff) { v.push_back(0x99); // two-byte uint16_t for N add_to_vector(v, 2, N); } else if (N <= 0xffffffff) { v.push_back(0x9a); // four-byte uint32_t for N add_to_vector(v, 4, N); } // LCOV_EXCL_START else if (N <= 0xffffffffffffffff) { v.push_back(0x9b); // eight-byte uint64_t for N add_to_vector(v, 8, N); } // LCOV_EXCL_STOP // append each element for (const auto& el : *j.m_value.array) { to_cbor_internal(el, v); } break; } case value_t::object: { const auto N = j.m_value.object->size(); if (N <= 0x17) { v.push_back(0xa0 + N); // 1 byte for object + size } else if (N <= 0xff) { v.push_back(0xb8); add_to_vector(v, 1, N); // one-byte uint8_t for N } else if (N <= 0xffff) { v.push_back(0xb9); add_to_vector(v, 2, N); // two-byte uint16_t for N } else if (N <= 0xffffffff) { v.push_back(0xba); add_to_vector(v, 4, N); // four-byte uint32_t for N } // LCOV_EXCL_START else if (N <= 0xffffffffffffffff) { v.push_back(0xbb); add_to_vector(v, 8, N); // eight-byte uint64_t for N } // LCOV_EXCL_STOP // append each element for (const auto& el : *j.m_value.object) { to_cbor_internal(el.first, v); to_cbor_internal(el.second, v); } break; } default: { break; } } } /* @brief checks if given lengths do not exceed the size of a given vector To secure the access to the byte vector during CBOR/MessagePack deserialization, bytes are copied from the vector into buffers. This function checks if the number of bytes to copy (@a len) does not exceed the size @s size of the vector. Additionally, an @a offset is given from where to start reading the bytes. This function checks whether reading the bytes is safe; that is, offset is a valid index in the vector, offset+len @param[in] size size of the byte vector @param[in] len number of bytes to read @param[in] offset offset where to start reading vec: x x x x x X X X X X ^ ^ ^ 0 offset len @throws out_of_range if `len > v.size()` */ static void check_length(const size_t size, const size_t len, const size_t offset) { // simple case: requested length is greater than the vector's length if (len > size or offset > size) { JSON_THROW(std::out_of_range("len out of range")); } // second case: adding offset would result in overflow if ((size > (std::numeric_limits::max() - offset))) { JSON_THROW(std::out_of_range("len+offset out of range")); } // last case: reading past the end of the vector if (len + offset > size) { JSON_THROW(std::out_of_range("len+offset out of range")); } } /*! @brief create a JSON value from a given MessagePack vector @param[in] v MessagePack serialization @param[in] idx byte index to start reading from @a v @return deserialized JSON value @throw std::invalid_argument if unsupported features from MessagePack were used in the given vector @a v or if the input is not valid MessagePack @throw std::out_of_range if the given vector ends prematurely @sa https://github.com/msgpack/msgpack/blob/master/spec.md */ static basic_json from_msgpack_internal(const std::vector& v, size_t& idx) { // make sure reading 1 byte is safe check_length(v.size(), 1, idx); // store and increment index const size_t current_idx = idx++; if (v[current_idx] <= 0xbf) { if (v[current_idx] <= 0x7f) // positive fixint { return v[current_idx]; } if (v[current_idx] <= 0x8f) // fixmap { basic_json result = value_t::object; const size_t len = v[current_idx] & 0x0f; for (size_t i = 0; i < len; ++i) { std::string key = from_msgpack_internal(v, idx); result[key] = from_msgpack_internal(v, idx); } return result; } else if (v[current_idx] <= 0x9f) // fixarray { basic_json result = value_t::array; const size_t len = v[current_idx] & 0x0f; for (size_t i = 0; i < len; ++i) { result.push_back(from_msgpack_internal(v, idx)); } return result; } else // fixstr { const size_t len = v[current_idx] & 0x1f; const size_t offset = current_idx + 1; idx += len; // skip content bytes check_length(v.size(), len, offset); return std::string(reinterpret_cast(v.data()) + offset, len); } } else if (v[current_idx] >= 0xe0) // negative fixint { return static_cast(v[current_idx]); } else { switch (v[current_idx]) { case 0xc0: // nil { return value_t::null; } case 0xc2: // false { return false; } case 0xc3: // true { return true; } case 0xca: // float 32 { // copy bytes in reverse order into the double variable float res; for (size_t byte = 0; byte < sizeof(float); ++byte) { reinterpret_cast(&res)[sizeof(float) - byte - 1] = v.at(current_idx + 1 + byte); } idx += sizeof(float); // skip content bytes return res; } case 0xcb: // float 64 { // copy bytes in reverse order into the double variable double res; for (size_t byte = 0; byte < sizeof(double); ++byte) { reinterpret_cast(&res)[sizeof(double) - byte - 1] = v.at(current_idx + 1 + byte); } idx += sizeof(double); // skip content bytes return res; } case 0xcc: // uint 8 { idx += 1; // skip content byte return get_from_vector(v, current_idx); } case 0xcd: // uint 16 { idx += 2; // skip 2 content bytes return get_from_vector(v, current_idx); } case 0xce: // uint 32 { idx += 4; // skip 4 content bytes return get_from_vector(v, current_idx); } case 0xcf: // uint 64 { idx += 8; // skip 8 content bytes return get_from_vector(v, current_idx); } case 0xd0: // int 8 { idx += 1; // skip content byte return get_from_vector(v, current_idx); } case 0xd1: // int 16 { idx += 2; // skip 2 content bytes return get_from_vector(v, current_idx); } case 0xd2: // int 32 { idx += 4; // skip 4 content bytes return get_from_vector(v, current_idx); } case 0xd3: // int 64 { idx += 8; // skip 8 content bytes return get_from_vector(v, current_idx); } case 0xd9: // str 8 { const auto len = static_cast(get_from_vector(v, current_idx)); const size_t offset = current_idx + 2; idx += len + 1; // skip size byte + content bytes check_length(v.size(), len, offset); return std::string(reinterpret_cast(v.data()) + offset, len); } case 0xda: // str 16 { const auto len = static_cast(get_from_vector(v, current_idx)); const size_t offset = current_idx + 3; idx += len + 2; // skip 2 size bytes + content bytes check_length(v.size(), len, offset); return std::string(reinterpret_cast(v.data()) + offset, len); } case 0xdb: // str 32 { const auto len = static_cast(get_from_vector(v, current_idx)); const size_t offset = current_idx + 5; idx += len + 4; // skip 4 size bytes + content bytes check_length(v.size(), len, offset); return std::string(reinterpret_cast(v.data()) + offset, len); } case 0xdc: // array 16 { basic_json result = value_t::array; const auto len = static_cast(get_from_vector(v, current_idx)); idx += 2; // skip 2 size bytes for (size_t i = 0; i < len; ++i) { result.push_back(from_msgpack_internal(v, idx)); } return result; } case 0xdd: // array 32 { basic_json result = value_t::array; const auto len = static_cast(get_from_vector(v, current_idx)); idx += 4; // skip 4 size bytes for (size_t i = 0; i < len; ++i) { result.push_back(from_msgpack_internal(v, idx)); } return result; } case 0xde: // map 16 { basic_json result = value_t::object; const auto len = static_cast(get_from_vector(v, current_idx)); idx += 2; // skip 2 size bytes for (size_t i = 0; i < len; ++i) { std::string key = from_msgpack_internal(v, idx); result[key] = from_msgpack_internal(v, idx); } return result; } case 0xdf: // map 32 { basic_json result = value_t::object; const auto len = static_cast(get_from_vector(v, current_idx)); idx += 4; // skip 4 size bytes for (size_t i = 0; i < len; ++i) { std::string key = from_msgpack_internal(v, idx); result[key] = from_msgpack_internal(v, idx); } return result; } default: { JSON_THROW(std::invalid_argument("error parsing a msgpack @ " + std::to_string(current_idx) + ": " + std::to_string(static_cast(v[current_idx])))); } } } } /*! @brief create a JSON value from a given CBOR vector @param[in] v CBOR serialization @param[in] idx byte index to start reading from @a v @return deserialized JSON value @throw std::invalid_argument if unsupported features from CBOR were used in the given vector @a v or if the input is not valid CBOR @throw std::out_of_range if the given vector ends prematurely @sa https://tools.ietf.org/html/rfc7049 */ static basic_json from_cbor_internal(const std::vector& v, size_t& idx) { // store and increment index const size_t current_idx = idx++; switch (v.at(current_idx)) { // Integer 0x00..0x17 (0..23) case 0x00: case 0x01: case 0x02: case 0x03: case 0x04: case 0x05: case 0x06: case 0x07: case 0x08: case 0x09: case 0x0a: case 0x0b: case 0x0c: case 0x0d: case 0x0e: case 0x0f: case 0x10: case 0x11: case 0x12: case 0x13: case 0x14: case 0x15: case 0x16: case 0x17: { return v[current_idx]; } case 0x18: // Unsigned integer (one-byte uint8_t follows) { idx += 1; // skip content byte return get_from_vector(v, current_idx); } case 0x19: // Unsigned integer (two-byte uint16_t follows) { idx += 2; // skip 2 content bytes return get_from_vector(v, current_idx); } case 0x1a: // Unsigned integer (four-byte uint32_t follows) { idx += 4; // skip 4 content bytes return get_from_vector(v, current_idx); } case 0x1b: // Unsigned integer (eight-byte uint64_t follows) { idx += 8; // skip 8 content bytes return get_from_vector(v, current_idx); } // Negative integer -1-0x00..-1-0x17 (-1..-24) case 0x20: case 0x21: case 0x22: case 0x23: case 0x24: case 0x25: case 0x26: case 0x27: case 0x28: case 0x29: case 0x2a: case 0x2b: case 0x2c: case 0x2d: case 0x2e: case 0x2f: case 0x30: case 0x31: case 0x32: case 0x33: case 0x34: case 0x35: case 0x36: case 0x37: { return static_cast(0x20 - 1 - v[current_idx]); } case 0x38: // Negative integer (one-byte uint8_t follows) { idx += 1; // skip content byte // must be uint8_t ! return static_cast(-1) - get_from_vector(v, current_idx); } case 0x39: // Negative integer -1-n (two-byte uint16_t follows) { idx += 2; // skip 2 content bytes return static_cast(-1) - get_from_vector(v, current_idx); } case 0x3a: // Negative integer -1-n (four-byte uint32_t follows) { idx += 4; // skip 4 content bytes return static_cast(-1) - get_from_vector(v, current_idx); } case 0x3b: // Negative integer -1-n (eight-byte uint64_t follows) { idx += 8; // skip 8 content bytes return static_cast(-1) - static_cast(get_from_vector(v, current_idx)); } // UTF-8 string (0x00..0x17 bytes follow) case 0x60: case 0x61: case 0x62: case 0x63: case 0x64: case 0x65: case 0x66: case 0x67: case 0x68: case 0x69: case 0x6a: case 0x6b: case 0x6c: case 0x6d: case 0x6e: case 0x6f: case 0x70: case 0x71: case 0x72: case 0x73: case 0x74: case 0x75: case 0x76: case 0x77: { const auto len = static_cast(v[current_idx] - 0x60); const size_t offset = current_idx + 1; idx += len; // skip content bytes check_length(v.size(), len, offset); return std::string(reinterpret_cast(v.data()) + offset, len); } case 0x78: // UTF-8 string (one-byte uint8_t for n follows) { const auto len = static_cast(get_from_vector(v, current_idx)); const size_t offset = current_idx + 2; idx += len + 1; // skip size byte + content bytes check_length(v.size(), len, offset); return std::string(reinterpret_cast(v.data()) + offset, len); } case 0x79: // UTF-8 string (two-byte uint16_t for n follow) { const auto len = static_cast(get_from_vector(v, current_idx)); const size_t offset = current_idx + 3; idx += len + 2; // skip 2 size bytes + content bytes check_length(v.size(), len, offset); return std::string(reinterpret_cast(v.data()) + offset, len); } case 0x7a: // UTF-8 string (four-byte uint32_t for n follow) { const auto len = static_cast(get_from_vector(v, current_idx)); const size_t offset = current_idx + 5; idx += len + 4; // skip 4 size bytes + content bytes check_length(v.size(), len, offset); return std::string(reinterpret_cast(v.data()) + offset, len); } case 0x7b: // UTF-8 string (eight-byte uint64_t for n follow) { const auto len = static_cast(get_from_vector(v, current_idx)); const size_t offset = current_idx + 9; idx += len + 8; // skip 8 size bytes + content bytes check_length(v.size(), len, offset); return std::string(reinterpret_cast(v.data()) + offset, len); } case 0x7f: // UTF-8 string (indefinite length) { std::string result; while (v.at(idx) != 0xff) { string_t s = from_cbor_internal(v, idx); result += s; } // skip break byte (0xFF) idx += 1; return result; } // array (0x00..0x17 data items follow) case 0x80: case 0x81: case 0x82: case 0x83: case 0x84: case 0x85: case 0x86: case 0x87: case 0x88: case 0x89: case 0x8a: case 0x8b: case 0x8c: case 0x8d: case 0x8e: case 0x8f: case 0x90: case 0x91: case 0x92: case 0x93: case 0x94: case 0x95: case 0x96: case 0x97: { basic_json result = value_t::array; const auto len = static_cast(v[current_idx] - 0x80); for (size_t i = 0; i < len; ++i) { result.push_back(from_cbor_internal(v, idx)); } return result; } case 0x98: // array (one-byte uint8_t for n follows) { basic_json result = value_t::array; const auto len = static_cast(get_from_vector(v, current_idx)); idx += 1; // skip 1 size byte for (size_t i = 0; i < len; ++i) { result.push_back(from_cbor_internal(v, idx)); } return result; } case 0x99: // array (two-byte uint16_t for n follow) { basic_json result = value_t::array; const auto len = static_cast(get_from_vector(v, current_idx)); idx += 2; // skip 4 size bytes for (size_t i = 0; i < len; ++i) { result.push_back(from_cbor_internal(v, idx)); } return result; } case 0x9a: // array (four-byte uint32_t for n follow) { basic_json result = value_t::array; const auto len = static_cast(get_from_vector(v, current_idx)); idx += 4; // skip 4 size bytes for (size_t i = 0; i < len; ++i) { result.push_back(from_cbor_internal(v, idx)); } return result; } case 0x9b: // array (eight-byte uint64_t for n follow) { basic_json result = value_t::array; const auto len = static_cast(get_from_vector(v, current_idx)); idx += 8; // skip 8 size bytes for (size_t i = 0; i < len; ++i) { result.push_back(from_cbor_internal(v, idx)); } return result; } case 0x9f: // array (indefinite length) { basic_json result = value_t::array; while (v.at(idx) != 0xff) { result.push_back(from_cbor_internal(v, idx)); } // skip break byte (0xFF) idx += 1; return result; } // map (0x00..0x17 pairs of data items follow) case 0xa0: case 0xa1: case 0xa2: case 0xa3: case 0xa4: case 0xa5: case 0xa6: case 0xa7: case 0xa8: case 0xa9: case 0xaa: case 0xab: case 0xac: case 0xad: case 0xae: case 0xaf: case 0xb0: case 0xb1: case 0xb2: case 0xb3: case 0xb4: case 0xb5: case 0xb6: case 0xb7: { basic_json result = value_t::object; const auto len = static_cast(v[current_idx] - 0xa0); for (size_t i = 0; i < len; ++i) { std::string key = from_cbor_internal(v, idx); result[key] = from_cbor_internal(v, idx); } return result; } case 0xb8: // map (one-byte uint8_t for n follows) { basic_json result = value_t::object; const auto len = static_cast(get_from_vector(v, current_idx)); idx += 1; // skip 1 size byte for (size_t i = 0; i < len; ++i) { std::string key = from_cbor_internal(v, idx); result[key] = from_cbor_internal(v, idx); } return result; } case 0xb9: // map (two-byte uint16_t for n follow) { basic_json result = value_t::object; const auto len = static_cast(get_from_vector(v, current_idx)); idx += 2; // skip 2 size bytes for (size_t i = 0; i < len; ++i) { std::string key = from_cbor_internal(v, idx); result[key] = from_cbor_internal(v, idx); } return result; } case 0xba: // map (four-byte uint32_t for n follow) { basic_json result = value_t::object; const auto len = static_cast(get_from_vector(v, current_idx)); idx += 4; // skip 4 size bytes for (size_t i = 0; i < len; ++i) { std::string key = from_cbor_internal(v, idx); result[key] = from_cbor_internal(v, idx); } return result; } case 0xbb: // map (eight-byte uint64_t for n follow) { basic_json result = value_t::object; const auto len = static_cast(get_from_vector(v, current_idx)); idx += 8; // skip 8 size bytes for (size_t i = 0; i < len; ++i) { std::string key = from_cbor_internal(v, idx); result[key] = from_cbor_internal(v, idx); } return result; } case 0xbf: // map (indefinite length) { basic_json result = value_t::object; while (v.at(idx) != 0xff) { std::string key = from_cbor_internal(v, idx); result[key] = from_cbor_internal(v, idx); } // skip break byte (0xFF) idx += 1; return result; } case 0xf4: // false { return false; } case 0xf5: // true { return true; } case 0xf6: // null { return value_t::null; } case 0xf9: // Half-Precision Float (two-byte IEEE 754) { idx += 2; // skip two content bytes // code from RFC 7049, Appendix D, Figure 3: // As half-precision floating-point numbers were only added to // IEEE 754 in 2008, today's programming platforms often still // only have limited support for them. It is very easy to // include at least decoding support for them even without such // support. An example of a small decoder for half-precision // floating-point numbers in the C language is shown in Fig. 3. const int half = (v.at(current_idx + 1) << 8) + v.at(current_idx + 2); const int exp = (half >> 10) & 0x1f; const int mant = half & 0x3ff; double val; if (exp == 0) { val = std::ldexp(mant, -24); } else if (exp != 31) { val = std::ldexp(mant + 1024, exp - 25); } else { val = mant == 0 ? INFINITY : NAN; } return (half & 0x8000) != 0 ? -val : val; } case 0xfa: // Single-Precision Float (four-byte IEEE 754) { // copy bytes in reverse order into the float variable float res; for (size_t byte = 0; byte < sizeof(float); ++byte) { reinterpret_cast(&res)[sizeof(float) - byte - 1] = v.at(current_idx + 1 + byte); } idx += sizeof(float); // skip content bytes return res; } case 0xfb: // Double-Precision Float (eight-byte IEEE 754) { // copy bytes in reverse order into the double variable double res; for (size_t byte = 0; byte < sizeof(double); ++byte) { reinterpret_cast(&res)[sizeof(double) - byte - 1] = v.at(current_idx + 1 + byte); } idx += sizeof(double); // skip content bytes return res; } default: // anything else (0xFF is handled inside the other types) { JSON_THROW(std::invalid_argument("error parsing a CBOR @ " + std::to_string(current_idx) + ": " + std::to_string(static_cast(v[current_idx])))); } } } public: /*! @brief create a MessagePack serialization of a given JSON value Serializes a given JSON value @a j to a byte vector using the MessagePack serialization format. MessagePack is a binary serialization format which aims to be more compact than JSON itself, yet more efficient to parse. @param[in] j JSON value to serialize @return MessagePack serialization as byte vector @complexity Linear in the size of the JSON value @a j. @liveexample{The example shows the serialization of a JSON value to a byte vector in MessagePack format.,to_msgpack} @sa http://msgpack.org @sa @ref from_msgpack(const std::vector&) for the analogous deserialization @sa @ref to_cbor(const basic_json& for the related CBOR format */ static std::vector to_msgpack(const basic_json& j) { std::vector result; to_msgpack_internal(j, result); return result; } /*! @brief create a JSON value from a byte vector in MessagePack format Deserializes a given byte vector @a v to a JSON value using the MessagePack serialization format. @param[in] v a byte vector in MessagePack format @return deserialized JSON value @throw std::invalid_argument if unsupported features from MessagePack were used in the given vector @a v or if the input is not valid MessagePack @throw std::out_of_range if the given vector ends prematurely @complexity Linear in the size of the byte vector @a v. @liveexample{The example shows the deserialization of a byte vector in MessagePack format to a JSON value.,from_msgpack} @sa http://msgpack.org @sa @ref to_msgpack(const basic_json&) for the analogous serialization @sa @ref from_cbor(const std::vector&) for the related CBOR format */ static basic_json from_msgpack(const std::vector& v) { size_t i = 0; return from_msgpack_internal(v, i); } /*! @brief create a MessagePack serialization of a given JSON value Serializes a given JSON value @a j to a byte vector using the CBOR (Concise Binary Object Representation) serialization format. CBOR is a binary serialization format which aims to be more compact than JSON itself, yet more efficient to parse. @param[in] j JSON value to serialize @return MessagePack serialization as byte vector @complexity Linear in the size of the JSON value @a j. @liveexample{The example shows the serialization of a JSON value to a byte vector in CBOR format.,to_cbor} @sa http://cbor.io @sa @ref from_cbor(const std::vector&) for the analogous deserialization @sa @ref to_msgpack(const basic_json& for the related MessagePack format */ static std::vector to_cbor(const basic_json& j) { std::vector result; to_cbor_internal(j, result); return result; } /*! @brief create a JSON value from a byte vector in CBOR format Deserializes a given byte vector @a v to a JSON value using the CBOR (Concise Binary Object Representation) serialization format. @param[in] v a byte vector in CBOR format @return deserialized JSON value @throw std::invalid_argument if unsupported features from CBOR were used in the given vector @a v or if the input is not valid MessagePack @throw std::out_of_range if the given vector ends prematurely @complexity Linear in the size of the byte vector @a v. @liveexample{The example shows the deserialization of a byte vector in CBOR format to a JSON value.,from_cbor} @sa http://cbor.io @sa @ref to_cbor(const basic_json&) for the analogous serialization @sa @ref from_msgpack(const std::vector&) for the related MessagePack format */ static basic_json from_cbor(const std::vector& v) { size_t i = 0; return from_cbor_internal(v, i); } /// @} /////////////////////////// // convenience functions // /////////////////////////// /*! @brief return the type as string Returns the type name as string to be used in error messages - usually to indicate that a function was called on a wrong JSON type. @return basically a string representation of a the @a m_type member @complexity Constant. @liveexample{The following code exemplifies `type_name()` for all JSON types.,type_name} @since version 1.0.0, public since 2.1.0 */ std::string type_name() const { { switch (m_type) { case value_t::null: return "null"; case value_t::object: return "object"; case value_t::array: return "array"; case value_t::string: return "string"; case value_t::boolean: return "boolean"; case value_t::discarded: return "discarded"; default: return "number"; } } } private: /*! @brief calculates the extra space to escape a JSON string @param[in] s the string to escape @return the number of characters required to escape string @a s @complexity Linear in the length of string @a s. */ static std::size_t extra_space(const string_t& s) noexcept { return std::accumulate(s.begin(), s.end(), size_t{}, [](size_t res, typename string_t::value_type c) { switch (c) { case '"': case '\\': case '\b': case '\f': case '\n': case '\r': case '\t': { // from c (1 byte) to \x (2 bytes) return res + 1; } default: { if (c >= 0x00 and c <= 0x1f) { // from c (1 byte) to \uxxxx (6 bytes) return res + 5; } return res; } } }); } /*! @brief escape a string Escape a string by replacing certain special characters by a sequence of an escape character (backslash) and another character and other control characters by a sequence of "\u" followed by a four-digit hex representation. @param[in] s the string to escape @return the escaped string @complexity Linear in the length of string @a s. */ static string_t escape_string(const string_t& s) { const auto space = extra_space(s); if (space == 0) { return s; } // create a result string of necessary size string_t result(s.size() + space, '\\'); std::size_t pos = 0; for (const auto& c : s) { switch (c) { // quotation mark (0x22) case '"': { result[pos + 1] = '"'; pos += 2; break; } // reverse solidus (0x5c) case '\\': { // nothing to change pos += 2; break; } // backspace (0x08) case '\b': { result[pos + 1] = 'b'; pos += 2; break; } // formfeed (0x0c) case '\f': { result[pos + 1] = 'f'; pos += 2; break; } // newline (0x0a) case '\n': { result[pos + 1] = 'n'; pos += 2; break; } // carriage return (0x0d) case '\r': { result[pos + 1] = 'r'; pos += 2; break; } // horizontal tab (0x09) case '\t': { result[pos + 1] = 't'; pos += 2; break; } default: { if (c >= 0x00 and c <= 0x1f) { // convert a number 0..15 to its hex representation // (0..f) static const char hexify[16] = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f' }; // print character c as \uxxxx for (const char m : { 'u', '0', '0', hexify[c >> 4], hexify[c & 0x0f] }) { result[++pos] = m; } ++pos; } else { // all other characters are added as-is result[pos++] = c; } break; } } } return result; } /*! @brief internal implementation of the serialization function This function is called by the public member function dump and organizes the serialization internally. The indentation level is propagated as additional parameter. In case of arrays and objects, the function is called recursively. Note that - strings and object keys are escaped using `escape_string()` - integer numbers are converted implicitly via `operator<<` - floating-point numbers are converted to a string using `"%g"` format @param[out] o stream to write to @param[in] pretty_print whether the output shall be pretty-printed @param[in] indent_step the indent level @param[in] current_indent the current indent level (only used internally) */ void dump(std::ostream& o, const bool pretty_print, const unsigned int indent_step, const unsigned int current_indent = 0) const { // variable to hold indentation for recursive calls unsigned int new_indent = current_indent; switch (m_type) { case value_t::object: { if (m_value.object->empty()) { o << "{}"; return; } o << "{"; // increase indentation if (pretty_print) { new_indent += indent_step; o << "\n"; } for (auto i = m_value.object->cbegin(); i != m_value.object->cend(); ++i) { if (i != m_value.object->cbegin()) { o << (pretty_print ? ",\n" : ","); } o << string_t(new_indent, ' ') << "\"" << escape_string(i->first) << "\":" << (pretty_print ? " " : ""); i->second.dump(o, pretty_print, indent_step, new_indent); } // decrease indentation if (pretty_print) { new_indent -= indent_step; o << "\n"; } o << string_t(new_indent, ' ') + "}"; return; } case value_t::array: { if (m_value.array->empty()) { o << "[]"; return; } o << "["; // increase indentation if (pretty_print) { new_indent += indent_step; o << "\n"; } for (auto i = m_value.array->cbegin(); i != m_value.array->cend(); ++i) { if (i != m_value.array->cbegin()) { o << (pretty_print ? ",\n" : ","); } o << string_t(new_indent, ' '); i->dump(o, pretty_print, indent_step, new_indent); } // decrease indentation if (pretty_print) { new_indent -= indent_step; o << "\n"; } o << string_t(new_indent, ' ') << "]"; return; } case value_t::string: { o << string_t("\"") << escape_string(*m_value.string) << "\""; return; } case value_t::boolean: { o << (m_value.boolean ? "true" : "false"); return; } case value_t::number_integer: { o << m_value.number_integer; return; } case value_t::number_unsigned: { o << m_value.number_unsigned; return; } case value_t::number_float: { if (m_value.number_float == 0) { // special case for zero to get "0.0"/"-0.0" o << (std::signbit(m_value.number_float) ? "-0.0" : "0.0"); } else { o << m_value.number_float; } return; } case value_t::discarded: { o << ""; return; } case value_t::null: { o << "null"; return; } } } private: ////////////////////// // member variables // ////////////////////// /// the type of the current element value_t m_type = value_t::null; /// the value of the current element json_value m_value = {}; private: /////////////// // iterators // /////////////// /*! @brief an iterator for primitive JSON types This class models an iterator for primitive JSON types (boolean, number, string). It's only purpose is to allow the iterator/const_iterator classes to "iterate" over primitive values. Internally, the iterator is modeled by a `difference_type` variable. Value begin_value (`0`) models the begin, end_value (`1`) models past the end. */ class primitive_iterator_t { public: difference_type get_value() const noexcept { return m_it; } /// set iterator to a defined beginning void set_begin() noexcept { m_it = begin_value; } /// set iterator to a defined past the end void set_end() noexcept { m_it = end_value; } /// return whether the iterator can be dereferenced constexpr bool is_begin() const noexcept { return (m_it == begin_value); } /// return whether the iterator is at end constexpr bool is_end() const noexcept { return (m_it == end_value); } friend constexpr bool operator==(primitive_iterator_t lhs, primitive_iterator_t rhs) noexcept { return lhs.m_it == rhs.m_it; } friend constexpr bool operator!=(primitive_iterator_t lhs, primitive_iterator_t rhs) noexcept { return !(lhs == rhs); } friend constexpr bool operator<(primitive_iterator_t lhs, primitive_iterator_t rhs) noexcept { return lhs.m_it < rhs.m_it; } friend constexpr bool operator<=(primitive_iterator_t lhs, primitive_iterator_t rhs) noexcept { return lhs.m_it <= rhs.m_it; } friend constexpr bool operator>(primitive_iterator_t lhs, primitive_iterator_t rhs) noexcept { return lhs.m_it > rhs.m_it; } friend constexpr bool operator>=(primitive_iterator_t lhs, primitive_iterator_t rhs) noexcept { return lhs.m_it >= rhs.m_it; } primitive_iterator_t operator+(difference_type i) { auto result = *this; result += i; return result; } friend constexpr difference_type operator-(primitive_iterator_t lhs, primitive_iterator_t rhs) noexcept { return lhs.m_it - rhs.m_it; } friend std::ostream& operator<<(std::ostream& os, primitive_iterator_t it) { return os << it.m_it; } primitive_iterator_t& operator++() { ++m_it; return *this; } primitive_iterator_t operator++(int) { auto result = *this; m_it++; return result; } primitive_iterator_t& operator--() { --m_it; return *this; } primitive_iterator_t operator--(int) { auto result = *this; m_it--; return result; } primitive_iterator_t& operator+=(difference_type n) { m_it += n; return *this; } primitive_iterator_t& operator-=(difference_type n) { m_it -= n; return *this; } private: static constexpr difference_type begin_value = 0; static constexpr difference_type end_value = begin_value + 1; /// iterator as signed integer type difference_type m_it = std::numeric_limits::denorm_min(); }; /*! @brief an iterator value @note This structure could easily be a union, but MSVC currently does not allow unions members with complex constructors, see https://github.com/nlohmann/json/pull/105. */ struct internal_iterator { /// iterator for JSON objects typename object_t::iterator object_iterator; /// iterator for JSON arrays typename array_t::iterator array_iterator; /// generic iterator for all other types primitive_iterator_t primitive_iterator; /// create an uninitialized internal_iterator internal_iterator() noexcept : object_iterator(), array_iterator(), primitive_iterator() {} }; /// proxy class for the iterator_wrapper functions template class iteration_proxy { private: /// helper class for iteration class iteration_proxy_internal { private: /// the iterator IteratorType anchor; /// an index for arrays (used to create key names) size_t array_index = 0; public: explicit iteration_proxy_internal(IteratorType it) noexcept : anchor(it) {} /// dereference operator (needed for range-based for) iteration_proxy_internal& operator*() { return *this; } /// increment operator (needed for range-based for) iteration_proxy_internal& operator++() { ++anchor; ++array_index; return *this; } /// inequality operator (needed for range-based for) bool operator!= (const iteration_proxy_internal& o) const { return anchor != o.anchor; } /// return key of the iterator typename basic_json::string_t key() const { assert(anchor.m_object != nullptr); switch (anchor.m_object->type()) { // use integer array index as key case value_t::array: { return std::to_string(array_index); } // use key from the object case value_t::object: { return anchor.key(); } // use an empty key for all primitive types default: { return ""; } } } /// return value of the iterator typename IteratorType::reference value() const { return anchor.value(); } }; /// the container to iterate typename IteratorType::reference container; public: /// construct iteration proxy from a container explicit iteration_proxy(typename IteratorType::reference cont) : container(cont) {} /// return iterator begin (needed for range-based for) iteration_proxy_internal begin() noexcept { return iteration_proxy_internal(container.begin()); } /// return iterator end (needed for range-based for) iteration_proxy_internal end() noexcept { return iteration_proxy_internal(container.end()); } }; public: /*! @brief a template for a random access iterator for the @ref basic_json class This class implements a both iterators (iterator and const_iterator) for the @ref basic_json class. @note An iterator is called *initialized* when a pointer to a JSON value has been set (e.g., by a constructor or a copy assignment). If the iterator is default-constructed, it is *uninitialized* and most methods are undefined. **The library uses assertions to detect calls on uninitialized iterators.** @requirement The class satisfies the following concept requirements: - [RandomAccessIterator](http://en.cppreference.com/w/cpp/concept/RandomAccessIterator): The iterator that can be moved to point (forward and backward) to any element in constant time. @since version 1.0.0, simplified in version 2.0.9 */ template class iter_impl : public std::iterator { /// allow basic_json to access private members friend class basic_json; // make sure U is basic_json or const basic_json static_assert(std::is_same::value or std::is_same::value, "iter_impl only accepts (const) basic_json"); public: /// the type of the values when the iterator is dereferenced using value_type = typename basic_json::value_type; /// a type to represent differences between iterators using difference_type = typename basic_json::difference_type; /// defines a pointer to the type iterated over (value_type) using pointer = typename std::conditional::value, typename basic_json::const_pointer, typename basic_json::pointer>::type; /// defines a reference to the type iterated over (value_type) using reference = typename std::conditional::value, typename basic_json::const_reference, typename basic_json::reference>::type; /// the category of the iterator using iterator_category = std::bidirectional_iterator_tag; /// default constructor iter_impl() = default; /*! @brief constructor for a given JSON instance @param[in] object pointer to a JSON object for this iterator @pre object != nullptr @post The iterator is initialized; i.e. `m_object != nullptr`. */ explicit iter_impl(pointer object) noexcept : m_object(object) { assert(m_object != nullptr); switch (m_object->m_type) { case basic_json::value_t::object: { m_it.object_iterator = typename object_t::iterator(); break; } case basic_json::value_t::array: { m_it.array_iterator = typename array_t::iterator(); break; } default: { m_it.primitive_iterator = primitive_iterator_t(); break; } } } /* Use operator `const_iterator` instead of `const_iterator(const iterator& other) noexcept` to avoid two class definitions for @ref iterator and @ref const_iterator. This function is only called if this class is an @ref iterator. If this class is a @ref const_iterator this function is not called. */ operator const_iterator() const { const_iterator ret; if (m_object) { ret.m_object = m_object; ret.m_it = m_it; } return ret; } /*! @brief copy constructor @param[in] other iterator to copy from @note It is not checked whether @a other is initialized. */ iter_impl(const iter_impl& other) noexcept : m_object(other.m_object), m_it(other.m_it) {} /*! @brief copy assignment @param[in,out] other iterator to copy from @note It is not checked whether @a other is initialized. */ iter_impl& operator=(iter_impl other) noexcept( std::is_nothrow_move_constructible::value and std::is_nothrow_move_assignable::value and std::is_nothrow_move_constructible::value and std::is_nothrow_move_assignable::value ) { std::swap(m_object, other.m_object); std::swap(m_it, other.m_it); return *this; } private: /*! @brief set the iterator to the first value @pre The iterator is initialized; i.e. `m_object != nullptr`. */ void set_begin() noexcept { assert(m_object != nullptr); switch (m_object->m_type) { case basic_json::value_t::object: { m_it.object_iterator = m_object->m_value.object->begin(); break; } case basic_json::value_t::array: { m_it.array_iterator = m_object->m_value.array->begin(); break; } case basic_json::value_t::null: { // set to end so begin()==end() is true: null is empty m_it.primitive_iterator.set_end(); break; } default: { m_it.primitive_iterator.set_begin(); break; } } } /*! @brief set the iterator past the last value @pre The iterator is initialized; i.e. `m_object != nullptr`. */ void set_end() noexcept { assert(m_object != nullptr); switch (m_object->m_type) { case basic_json::value_t::object: { m_it.object_iterator = m_object->m_value.object->end(); break; } case basic_json::value_t::array: { m_it.array_iterator = m_object->m_value.array->end(); break; } default: { m_it.primitive_iterator.set_end(); break; } } } public: /*! @brief return a reference to the value pointed to by the iterator @pre The iterator is initialized; i.e. `m_object != nullptr`. */ reference operator*() const { assert(m_object != nullptr); switch (m_object->m_type) { case basic_json::value_t::object: { assert(m_it.object_iterator != m_object->m_value.object->end()); return m_it.object_iterator->second; } case basic_json::value_t::array: { assert(m_it.array_iterator != m_object->m_value.array->end()); return *m_it.array_iterator; } case basic_json::value_t::null: { JSON_THROW(std::out_of_range("cannot get value")); } default: { if (m_it.primitive_iterator.is_begin()) { return *m_object; } JSON_THROW(std::out_of_range("cannot get value")); } } } /*! @brief dereference the iterator @pre The iterator is initialized; i.e. `m_object != nullptr`. */ pointer operator->() const { assert(m_object != nullptr); switch (m_object->m_type) { case basic_json::value_t::object: { assert(m_it.object_iterator != m_object->m_value.object->end()); return &(m_it.object_iterator->second); } case basic_json::value_t::array: { assert(m_it.array_iterator != m_object->m_value.array->end()); return &*m_it.array_iterator; } default: { if (m_it.primitive_iterator.is_begin()) { return m_object; } JSON_THROW(std::out_of_range("cannot get value")); } } } /*! @brief post-increment (it++) @pre The iterator is initialized; i.e. `m_object != nullptr`. */ iter_impl operator++(int) { auto result = *this; ++(*this); return result; } /*! @brief pre-increment (++it) @pre The iterator is initialized; i.e. `m_object != nullptr`. */ iter_impl& operator++() { assert(m_object != nullptr); switch (m_object->m_type) { case basic_json::value_t::object: { std::advance(m_it.object_iterator, 1); break; } case basic_json::value_t::array: { std::advance(m_it.array_iterator, 1); break; } default: { ++m_it.primitive_iterator; break; } } return *this; } /*! @brief post-decrement (it--) @pre The iterator is initialized; i.e. `m_object != nullptr`. */ iter_impl operator--(int) { auto result = *this; --(*this); return result; } /*! @brief pre-decrement (--it) @pre The iterator is initialized; i.e. `m_object != nullptr`. */ iter_impl& operator--() { assert(m_object != nullptr); switch (m_object->m_type) { case basic_json::value_t::object: { std::advance(m_it.object_iterator, -1); break; } case basic_json::value_t::array: { std::advance(m_it.array_iterator, -1); break; } default: { --m_it.primitive_iterator; break; } } return *this; } /*! @brief comparison: equal @pre The iterator is initialized; i.e. `m_object != nullptr`. */ bool operator==(const iter_impl& other) const { // if objects are not the same, the comparison is undefined if (m_object != other.m_object) { JSON_THROW(std::domain_error("cannot compare iterators of different containers")); } assert(m_object != nullptr); switch (m_object->m_type) { case basic_json::value_t::object: { return (m_it.object_iterator == other.m_it.object_iterator); } case basic_json::value_t::array: { return (m_it.array_iterator == other.m_it.array_iterator); } default: { return (m_it.primitive_iterator == other.m_it.primitive_iterator); } } } /*! @brief comparison: not equal @pre The iterator is initialized; i.e. `m_object != nullptr`. */ bool operator!=(const iter_impl& other) const { return not operator==(other); } /*! @brief comparison: smaller @pre The iterator is initialized; i.e. `m_object != nullptr`. */ bool operator<(const iter_impl& other) const { // if objects are not the same, the comparison is undefined if (m_object != other.m_object) { JSON_THROW(std::domain_error("cannot compare iterators of different containers")); } assert(m_object != nullptr); switch (m_object->m_type) { case basic_json::value_t::object: { JSON_THROW(std::domain_error("cannot compare order of object iterators")); } case basic_json::value_t::array: { return (m_it.array_iterator < other.m_it.array_iterator); } default: { return (m_it.primitive_iterator < other.m_it.primitive_iterator); } } } /*! @brief comparison: less than or equal @pre The iterator is initialized; i.e. `m_object != nullptr`. */ bool operator<=(const iter_impl& other) const { return not other.operator < (*this); } /*! @brief comparison: greater than @pre The iterator is initialized; i.e. `m_object != nullptr`. */ bool operator>(const iter_impl& other) const { return not operator<=(other); } /*! @brief comparison: greater than or equal @pre The iterator is initialized; i.e. `m_object != nullptr`. */ bool operator>=(const iter_impl& other) const { return not operator<(other); } /*! @brief add to iterator @pre The iterator is initialized; i.e. `m_object != nullptr`. */ iter_impl& operator+=(difference_type i) { assert(m_object != nullptr); switch (m_object->m_type) { case basic_json::value_t::object: { JSON_THROW(std::domain_error("cannot use offsets with object iterators")); } case basic_json::value_t::array: { std::advance(m_it.array_iterator, i); break; } default: { m_it.primitive_iterator += i; break; } } return *this; } /*! @brief subtract from iterator @pre The iterator is initialized; i.e. `m_object != nullptr`. */ iter_impl& operator-=(difference_type i) { return operator+=(-i); } /*! @brief add to iterator @pre The iterator is initialized; i.e. `m_object != nullptr`. */ iter_impl operator+(difference_type i) { auto result = *this; result += i; return result; } /*! @brief subtract from iterator @pre The iterator is initialized; i.e. `m_object != nullptr`. */ iter_impl operator-(difference_type i) { auto result = *this; result -= i; return result; } /*! @brief return difference @pre The iterator is initialized; i.e. `m_object != nullptr`. */ difference_type operator-(const iter_impl& other) const { assert(m_object != nullptr); switch (m_object->m_type) { case basic_json::value_t::object: { JSON_THROW(std::domain_error("cannot use offsets with object iterators")); } case basic_json::value_t::array: { return m_it.array_iterator - other.m_it.array_iterator; } default: { return m_it.primitive_iterator - other.m_it.primitive_iterator; } } } /*! @brief access to successor @pre The iterator is initialized; i.e. `m_object != nullptr`. */ reference operator[](difference_type n) const { assert(m_object != nullptr); switch (m_object->m_type) { case basic_json::value_t::object: { JSON_THROW(std::domain_error("cannot use operator[] for object iterators")); } case basic_json::value_t::array: { return *std::next(m_it.array_iterator, n); } case basic_json::value_t::null: { JSON_THROW(std::out_of_range("cannot get value")); } default: { if (m_it.primitive_iterator.get_value() == -n) { return *m_object; } JSON_THROW(std::out_of_range("cannot get value")); } } } /*! @brief return the key of an object iterator @pre The iterator is initialized; i.e. `m_object != nullptr`. */ typename object_t::key_type key() const { assert(m_object != nullptr); if (m_object->is_object()) { return m_it.object_iterator->first; } JSON_THROW(std::domain_error("cannot use key() for non-object iterators")); } /*! @brief return the value of an iterator @pre The iterator is initialized; i.e. `m_object != nullptr`. */ reference value() const { return operator*(); } private: /// associated JSON instance pointer m_object = nullptr; /// the actual iterator of the associated instance internal_iterator m_it = internal_iterator(); }; /*! @brief a template for a reverse iterator class @tparam Base the base iterator type to reverse. Valid types are @ref iterator (to create @ref reverse_iterator) and @ref const_iterator (to create @ref const_reverse_iterator). @requirement The class satisfies the following concept requirements: - [RandomAccessIterator](http://en.cppreference.com/w/cpp/concept/RandomAccessIterator): The iterator that can be moved to point (forward and backward) to any element in constant time. - [OutputIterator](http://en.cppreference.com/w/cpp/concept/OutputIterator): It is possible to write to the pointed-to element (only if @a Base is @ref iterator). @since version 1.0.0 */ template class json_reverse_iterator : public std::reverse_iterator { public: /// shortcut to the reverse iterator adaptor using base_iterator = std::reverse_iterator; /// the reference type for the pointed-to element using reference = typename Base::reference; /// create reverse iterator from iterator json_reverse_iterator(const typename base_iterator::iterator_type& it) noexcept : base_iterator(it) {} /// create reverse iterator from base class json_reverse_iterator(const base_iterator& it) noexcept : base_iterator(it) {} /// post-increment (it++) json_reverse_iterator operator++(int) { return base_iterator::operator++(1); } /// pre-increment (++it) json_reverse_iterator& operator++() { base_iterator::operator++(); return *this; } /// post-decrement (it--) json_reverse_iterator operator--(int) { return base_iterator::operator--(1); } /// pre-decrement (--it) json_reverse_iterator& operator--() { base_iterator::operator--(); return *this; } /// add to iterator json_reverse_iterator& operator+=(difference_type i) { base_iterator::operator+=(i); return *this; } /// add to iterator json_reverse_iterator operator+(difference_type i) const { auto result = *this; result += i; return result; } /// subtract from iterator json_reverse_iterator operator-(difference_type i) const { auto result = *this; result -= i; return result; } /// return difference difference_type operator-(const json_reverse_iterator& other) const { return this->base() - other.base(); } /// access to successor reference operator[](difference_type n) const { return *(this->operator+(n)); } /// return the key of an object iterator typename object_t::key_type key() const { auto it = --this->base(); return it.key(); } /// return the value of an iterator reference value() const { auto it = --this->base(); return it.operator * (); } }; private: ////////////////////// // lexer and parser // ////////////////////// /*! @brief lexical analysis This class organizes the lexical analysis during JSON deserialization. The core of it is a scanner generated by [re2c](http://re2c.org) that processes a buffer and recognizes tokens according to RFC 7159. */ class lexer { public: /// token types for the parser enum class token_type { uninitialized, ///< indicating the scanner is uninitialized literal_true, ///< the `true` literal literal_false, ///< the `false` literal literal_null, ///< the `null` literal value_string, ///< a string -- use get_string() for actual value value_unsigned, ///< an unsigned integer -- use get_number() for actual value value_integer, ///< a signed integer -- use get_number() for actual value value_float, ///< an floating point number -- use get_number() for actual value begin_array, ///< the character for array begin `[` begin_object, ///< the character for object begin `{` end_array, ///< the character for array end `]` end_object, ///< the character for object end `}` name_separator, ///< the name separator `:` value_separator, ///< the value separator `,` parse_error, ///< indicating a parse error end_of_input ///< indicating the end of the input buffer }; /// the char type to use in the lexer using lexer_char_t = unsigned char; /// a lexer from a buffer with given length lexer(const lexer_char_t* buff, const size_t len) noexcept : m_content(buff) { assert(m_content != nullptr); m_start = m_cursor = m_content; m_limit = m_content + len; } /// a lexer from an input stream explicit lexer(std::istream& s) : m_stream(&s), m_line_buffer() { // immediately abort if stream is erroneous if (s.fail()) { JSON_THROW(std::invalid_argument("stream error")); } // fill buffer fill_line_buffer(); // skip UTF-8 byte-order mark if (m_line_buffer.size() >= 3 and m_line_buffer.substr(0, 3) == "\xEF\xBB\xBF") { m_line_buffer[0] = ' '; m_line_buffer[1] = ' '; m_line_buffer[2] = ' '; } } // switch off unwanted functions (due to pointer members) lexer() = delete; lexer(const lexer&) = delete; lexer operator=(const lexer&) = delete; /*! @brief create a string from one or two Unicode code points There are two cases: (1) @a codepoint1 is in the Basic Multilingual Plane (U+0000 through U+FFFF) and @a codepoint2 is 0, or (2) @a codepoint1 and @a codepoint2 are a UTF-16 surrogate pair to represent a code point above U+FFFF. @param[in] codepoint1 the code point (can be high surrogate) @param[in] codepoint2 the code point (can be low surrogate or 0) @return string representation of the code point; the length of the result string is between 1 and 4 characters. @throw std::out_of_range if code point is > 0x10ffff; example: `"code points above 0x10FFFF are invalid"` @throw std::invalid_argument if the low surrogate is invalid; example: `""missing or wrong low surrogate""` @complexity Constant. @see */ static string_t to_unicode(const std::size_t codepoint1, const std::size_t codepoint2 = 0) { // calculate the code point from the given code points std::size_t codepoint = codepoint1; // check if codepoint1 is a high surrogate if (codepoint1 >= 0xD800 and codepoint1 <= 0xDBFF) { // check if codepoint2 is a low surrogate if (codepoint2 >= 0xDC00 and codepoint2 <= 0xDFFF) { codepoint = // high surrogate occupies the most significant 22 bits (codepoint1 << 10) // low surrogate occupies the least significant 15 bits + codepoint2 // there is still the 0xD800, 0xDC00 and 0x10000 noise // in the result so we have to subtract with: // (0xD800 << 10) + DC00 - 0x10000 = 0x35FDC00 - 0x35FDC00; } else { JSON_THROW(std::invalid_argument("missing or wrong low surrogate")); } } string_t result; if (codepoint < 0x80) { // 1-byte characters: 0xxxxxxx (ASCII) result.append(1, static_cast(codepoint)); } else if (codepoint <= 0x7ff) { // 2-byte characters: 110xxxxx 10xxxxxx result.append(1, static_cast(0xC0 | ((codepoint >> 6) & 0x1F))); result.append(1, static_cast(0x80 | (codepoint & 0x3F))); } else if (codepoint <= 0xffff) { // 3-byte characters: 1110xxxx 10xxxxxx 10xxxxxx result.append(1, static_cast(0xE0 | ((codepoint >> 12) & 0x0F))); result.append(1, static_cast(0x80 | ((codepoint >> 6) & 0x3F))); result.append(1, static_cast(0x80 | (codepoint & 0x3F))); } else if (codepoint <= 0x10ffff) { // 4-byte characters: 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx result.append(1, static_cast(0xF0 | ((codepoint >> 18) & 0x07))); result.append(1, static_cast(0x80 | ((codepoint >> 12) & 0x3F))); result.append(1, static_cast(0x80 | ((codepoint >> 6) & 0x3F))); result.append(1, static_cast(0x80 | (codepoint & 0x3F))); } else { JSON_THROW(std::out_of_range("code points above 0x10FFFF are invalid")); } return result; } /// return name of values of type token_type (only used for errors) static std::string token_type_name(const token_type t) { switch (t) { case token_type::uninitialized: return ""; case token_type::literal_true: return "true literal"; case token_type::literal_false: return "false literal"; case token_type::literal_null: return "null literal"; case token_type::value_string: return "string literal"; case lexer::token_type::value_unsigned: case lexer::token_type::value_integer: case lexer::token_type::value_float: return "number literal"; case token_type::begin_array: return "'['"; case token_type::begin_object: return "'{'"; case token_type::end_array: return "']'"; case token_type::end_object: return "'}'"; case token_type::name_separator: return "':'"; case token_type::value_separator: return "','"; case token_type::parse_error: return ""; case token_type::end_of_input: return "end of input"; default: { // catch non-enum values return "unknown token"; // LCOV_EXCL_LINE } } } /*! This function implements a scanner for JSON. It is specified using regular expressions that try to follow RFC 7159 as close as possible. These regular expressions are then translated into a minimized deterministic finite automaton (DFA) by the tool [re2c](http://re2c.org). As a result, the translated code for this function consists of a large block of code with `goto` jumps. @return the class of the next token read from the buffer @complexity Linear in the length of the input.\n Proposition: The loop below will always terminate for finite input.\n Proof (by contradiction): Assume a finite input. To loop forever, the loop must never hit code with a `break` statement. The only code snippets without a `break` statement are the continue statements for whitespace and byte-order-marks. To loop forever, the input must be an infinite sequence of whitespace or byte-order-marks. This contradicts the assumption of finite input, q.e.d. */ token_type scan() { while (true) { // pointer for backtracking information m_marker = nullptr; // remember the begin of the token m_start = m_cursor; assert(m_start != nullptr); { lexer_char_t yych; unsigned int yyaccept = 0; static const unsigned char yybm[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 32, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 160, 128, 0, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 0, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }; if ((m_limit - m_cursor) < 5) { fill_line_buffer(5); // LCOV_EXCL_LINE } yych = *m_cursor; if (yybm[0 + yych] & 32) { goto basic_json_parser_6; } if (yych <= '[') { if (yych <= '-') { if (yych <= '"') { if (yych <= 0x00) { goto basic_json_parser_2; } if (yych <= '!') { goto basic_json_parser_4; } goto basic_json_parser_9; } else { if (yych <= '+') { goto basic_json_parser_4; } if (yych <= ',') { goto basic_json_parser_10; } goto basic_json_parser_12; } } else { if (yych <= '9') { if (yych <= '/') { goto basic_json_parser_4; } if (yych <= '0') { goto basic_json_parser_13; } goto basic_json_parser_15; } else { if (yych <= ':') { goto basic_json_parser_17; } if (yych <= 'Z') { goto basic_json_parser_4; } goto basic_json_parser_19; } } } else { if (yych <= 'n') { if (yych <= 'e') { if (yych == ']') { goto basic_json_parser_21; } goto basic_json_parser_4; } else { if (yych <= 'f') { goto basic_json_parser_23; } if (yych <= 'm') { goto basic_json_parser_4; } goto basic_json_parser_24; } } else { if (yych <= 'z') { if (yych == 't') { goto basic_json_parser_25; } goto basic_json_parser_4; } else { if (yych <= '{') { goto basic_json_parser_26; } if (yych == '}') { goto basic_json_parser_28; } goto basic_json_parser_4; } } } basic_json_parser_2: ++m_cursor; { last_token_type = token_type::end_of_input; break; } basic_json_parser_4: ++m_cursor; basic_json_parser_5: { last_token_type = token_type::parse_error; break; } basic_json_parser_6: ++m_cursor; if (m_limit <= m_cursor) { fill_line_buffer(1); // LCOV_EXCL_LINE } yych = *m_cursor; if (yybm[0 + yych] & 32) { goto basic_json_parser_6; } { continue; } basic_json_parser_9: yyaccept = 0; yych = *(m_marker = ++m_cursor); if (yych <= 0x1F) { goto basic_json_parser_5; } if (yych <= 0x7F) { goto basic_json_parser_31; } if (yych <= 0xC1) { goto basic_json_parser_5; } if (yych <= 0xF4) { goto basic_json_parser_31; } goto basic_json_parser_5; basic_json_parser_10: ++m_cursor; { last_token_type = token_type::value_separator; break; } basic_json_parser_12: yych = *++m_cursor; if (yych <= '/') { goto basic_json_parser_5; } if (yych <= '0') { goto basic_json_parser_43; } if (yych <= '9') { goto basic_json_parser_45; } goto basic_json_parser_5; basic_json_parser_13: yyaccept = 1; yych = *(m_marker = ++m_cursor); if (yych <= 'D') { if (yych == '.') { goto basic_json_parser_47; } } else { if (yych <= 'E') { goto basic_json_parser_48; } if (yych == 'e') { goto basic_json_parser_48; } } basic_json_parser_14: { last_token_type = token_type::value_unsigned; break; } basic_json_parser_15: yyaccept = 1; m_marker = ++m_cursor; if ((m_limit - m_cursor) < 3) { fill_line_buffer(3); // LCOV_EXCL_LINE } yych = *m_cursor; if (yybm[0 + yych] & 64) { goto basic_json_parser_15; } if (yych <= 'D') { if (yych == '.') { goto basic_json_parser_47; } goto basic_json_parser_14; } else { if (yych <= 'E') { goto basic_json_parser_48; } if (yych == 'e') { goto basic_json_parser_48; } goto basic_json_parser_14; } basic_json_parser_17: ++m_cursor; { last_token_type = token_type::name_separator; break; } basic_json_parser_19: ++m_cursor; { last_token_type = token_type::begin_array; break; } basic_json_parser_21: ++m_cursor; { last_token_type = token_type::end_array; break; } basic_json_parser_23: yyaccept = 0; yych = *(m_marker = ++m_cursor); if (yych == 'a') { goto basic_json_parser_49; } goto basic_json_parser_5; basic_json_parser_24: yyaccept = 0; yych = *(m_marker = ++m_cursor); if (yych == 'u') { goto basic_json_parser_50; } goto basic_json_parser_5; basic_json_parser_25: yyaccept = 0; yych = *(m_marker = ++m_cursor); if (yych == 'r') { goto basic_json_parser_51; } goto basic_json_parser_5; basic_json_parser_26: ++m_cursor; { last_token_type = token_type::begin_object; break; } basic_json_parser_28: ++m_cursor; { last_token_type = token_type::end_object; break; } basic_json_parser_30: ++m_cursor; if (m_limit <= m_cursor) { fill_line_buffer(1); // LCOV_EXCL_LINE } yych = *m_cursor; basic_json_parser_31: if (yybm[0 + yych] & 128) { goto basic_json_parser_30; } if (yych <= 0xE0) { if (yych <= '\\') { if (yych <= 0x1F) { goto basic_json_parser_32; } if (yych <= '"') { goto basic_json_parser_33; } goto basic_json_parser_35; } else { if (yych <= 0xC1) { goto basic_json_parser_32; } if (yych <= 0xDF) { goto basic_json_parser_36; } goto basic_json_parser_37; } } else { if (yych <= 0xEF) { if (yych == 0xED) { goto basic_json_parser_39; } goto basic_json_parser_38; } else { if (yych <= 0xF0) { goto basic_json_parser_40; } if (yych <= 0xF3) { goto basic_json_parser_41; } if (yych <= 0xF4) { goto basic_json_parser_42; } } } basic_json_parser_32: m_cursor = m_marker; if (yyaccept <= 1) { if (yyaccept == 0) { goto basic_json_parser_5; } else { goto basic_json_parser_14; } } else { if (yyaccept == 2) { goto basic_json_parser_44; } else { goto basic_json_parser_55; } } basic_json_parser_33: ++m_cursor; { last_token_type = token_type::value_string; break; } basic_json_parser_35: ++m_cursor; if (m_limit <= m_cursor) { fill_line_buffer(1); // LCOV_EXCL_LINE } yych = *m_cursor; if (yych <= 'e') { if (yych <= '/') { if (yych == '"') { goto basic_json_parser_30; } if (yych <= '.') { goto basic_json_parser_32; } goto basic_json_parser_30; } else { if (yych <= '\\') { if (yych <= '[') { goto basic_json_parser_32; } goto basic_json_parser_30; } else { if (yych == 'b') { goto basic_json_parser_30; } goto basic_json_parser_32; } } } else { if (yych <= 'q') { if (yych <= 'f') { goto basic_json_parser_30; } if (yych == 'n') { goto basic_json_parser_30; } goto basic_json_parser_32; } else { if (yych <= 's') { if (yych <= 'r') { goto basic_json_parser_30; } goto basic_json_parser_32; } else { if (yych <= 't') { goto basic_json_parser_30; } if (yych <= 'u') { goto basic_json_parser_52; } goto basic_json_parser_32; } } } basic_json_parser_36: ++m_cursor; if (m_limit <= m_cursor) { fill_line_buffer(1); // LCOV_EXCL_LINE } yych = *m_cursor; if (yych <= 0x7F) { goto basic_json_parser_32; } if (yych <= 0xBF) { goto basic_json_parser_30; } goto basic_json_parser_32; basic_json_parser_37: ++m_cursor; if (m_limit <= m_cursor) { fill_line_buffer(1); // LCOV_EXCL_LINE } yych = *m_cursor; if (yych <= 0x9F) { goto basic_json_parser_32; } if (yych <= 0xBF) { goto basic_json_parser_36; } goto basic_json_parser_32; basic_json_parser_38: ++m_cursor; if (m_limit <= m_cursor) { fill_line_buffer(1); // LCOV_EXCL_LINE } yych = *m_cursor; if (yych <= 0x7F) { goto basic_json_parser_32; } if (yych <= 0xBF) { goto basic_json_parser_36; } goto basic_json_parser_32; basic_json_parser_39: ++m_cursor; if (m_limit <= m_cursor) { fill_line_buffer(1); // LCOV_EXCL_LINE } yych = *m_cursor; if (yych <= 0x7F) { goto basic_json_parser_32; } if (yych <= 0x9F) { goto basic_json_parser_36; } goto basic_json_parser_32; basic_json_parser_40: ++m_cursor; if (m_limit <= m_cursor) { fill_line_buffer(1); // LCOV_EXCL_LINE } yych = *m_cursor; if (yych <= 0x8F) { goto basic_json_parser_32; } if (yych <= 0xBF) { goto basic_json_parser_38; } goto basic_json_parser_32; basic_json_parser_41: ++m_cursor; if (m_limit <= m_cursor) { fill_line_buffer(1); // LCOV_EXCL_LINE } yych = *m_cursor; if (yych <= 0x7F) { goto basic_json_parser_32; } if (yych <= 0xBF) { goto basic_json_parser_38; } goto basic_json_parser_32; basic_json_parser_42: ++m_cursor; if (m_limit <= m_cursor) { fill_line_buffer(1); // LCOV_EXCL_LINE } yych = *m_cursor; if (yych <= 0x7F) { goto basic_json_parser_32; } if (yych <= 0x8F) { goto basic_json_parser_38; } goto basic_json_parser_32; basic_json_parser_43: yyaccept = 2; yych = *(m_marker = ++m_cursor); if (yych <= 'D') { if (yych == '.') { goto basic_json_parser_47; } } else { if (yych <= 'E') { goto basic_json_parser_48; } if (yych == 'e') { goto basic_json_parser_48; } } basic_json_parser_44: { last_token_type = token_type::value_integer; break; } basic_json_parser_45: yyaccept = 2; m_marker = ++m_cursor; if ((m_limit - m_cursor) < 3) { fill_line_buffer(3); // LCOV_EXCL_LINE } yych = *m_cursor; if (yych <= '9') { if (yych == '.') { goto basic_json_parser_47; } if (yych <= '/') { goto basic_json_parser_44; } goto basic_json_parser_45; } else { if (yych <= 'E') { if (yych <= 'D') { goto basic_json_parser_44; } goto basic_json_parser_48; } else { if (yych == 'e') { goto basic_json_parser_48; } goto basic_json_parser_44; } } basic_json_parser_47: yych = *++m_cursor; if (yych <= '/') { goto basic_json_parser_32; } if (yych <= '9') { goto basic_json_parser_53; } goto basic_json_parser_32; basic_json_parser_48: yych = *++m_cursor; if (yych <= ',') { if (yych == '+') { goto basic_json_parser_56; } goto basic_json_parser_32; } else { if (yych <= '-') { goto basic_json_parser_56; } if (yych <= '/') { goto basic_json_parser_32; } if (yych <= '9') { goto basic_json_parser_57; } goto basic_json_parser_32; } basic_json_parser_49: yych = *++m_cursor; if (yych == 'l') { goto basic_json_parser_59; } goto basic_json_parser_32; basic_json_parser_50: yych = *++m_cursor; if (yych == 'l') { goto basic_json_parser_60; } goto basic_json_parser_32; basic_json_parser_51: yych = *++m_cursor; if (yych == 'u') { goto basic_json_parser_61; } goto basic_json_parser_32; basic_json_parser_52: ++m_cursor; if (m_limit <= m_cursor) { fill_line_buffer(1); // LCOV_EXCL_LINE } yych = *m_cursor; if (yych <= '@') { if (yych <= '/') { goto basic_json_parser_32; } if (yych <= '9') { goto basic_json_parser_62; } goto basic_json_parser_32; } else { if (yych <= 'F') { goto basic_json_parser_62; } if (yych <= '`') { goto basic_json_parser_32; } if (yych <= 'f') { goto basic_json_parser_62; } goto basic_json_parser_32; } basic_json_parser_53: yyaccept = 3; m_marker = ++m_cursor; if ((m_limit - m_cursor) < 3) { fill_line_buffer(3); // LCOV_EXCL_LINE } yych = *m_cursor; if (yych <= 'D') { if (yych <= '/') { goto basic_json_parser_55; } if (yych <= '9') { goto basic_json_parser_53; } } else { if (yych <= 'E') { goto basic_json_parser_48; } if (yych == 'e') { goto basic_json_parser_48; } } basic_json_parser_55: { last_token_type = token_type::value_float; break; } basic_json_parser_56: yych = *++m_cursor; if (yych <= '/') { goto basic_json_parser_32; } if (yych >= ':') { goto basic_json_parser_32; } basic_json_parser_57: ++m_cursor; if (m_limit <= m_cursor) { fill_line_buffer(1); // LCOV_EXCL_LINE } yych = *m_cursor; if (yych <= '/') { goto basic_json_parser_55; } if (yych <= '9') { goto basic_json_parser_57; } goto basic_json_parser_55; basic_json_parser_59: yych = *++m_cursor; if (yych == 's') { goto basic_json_parser_63; } goto basic_json_parser_32; basic_json_parser_60: yych = *++m_cursor; if (yych == 'l') { goto basic_json_parser_64; } goto basic_json_parser_32; basic_json_parser_61: yych = *++m_cursor; if (yych == 'e') { goto basic_json_parser_66; } goto basic_json_parser_32; basic_json_parser_62: ++m_cursor; if (m_limit <= m_cursor) { fill_line_buffer(1); // LCOV_EXCL_LINE } yych = *m_cursor; if (yych <= '@') { if (yych <= '/') { goto basic_json_parser_32; } if (yych <= '9') { goto basic_json_parser_68; } goto basic_json_parser_32; } else { if (yych <= 'F') { goto basic_json_parser_68; } if (yych <= '`') { goto basic_json_parser_32; } if (yych <= 'f') { goto basic_json_parser_68; } goto basic_json_parser_32; } basic_json_parser_63: yych = *++m_cursor; if (yych == 'e') { goto basic_json_parser_69; } goto basic_json_parser_32; basic_json_parser_64: ++m_cursor; { last_token_type = token_type::literal_null; break; } basic_json_parser_66: ++m_cursor; { last_token_type = token_type::literal_true; break; } basic_json_parser_68: ++m_cursor; if (m_limit <= m_cursor) { fill_line_buffer(1); // LCOV_EXCL_LINE } yych = *m_cursor; if (yych <= '@') { if (yych <= '/') { goto basic_json_parser_32; } if (yych <= '9') { goto basic_json_parser_71; } goto basic_json_parser_32; } else { if (yych <= 'F') { goto basic_json_parser_71; } if (yych <= '`') { goto basic_json_parser_32; } if (yych <= 'f') { goto basic_json_parser_71; } goto basic_json_parser_32; } basic_json_parser_69: ++m_cursor; { last_token_type = token_type::literal_false; break; } basic_json_parser_71: ++m_cursor; if (m_limit <= m_cursor) { fill_line_buffer(1); // LCOV_EXCL_LINE } yych = *m_cursor; if (yych <= '@') { if (yych <= '/') { goto basic_json_parser_32; } if (yych <= '9') { goto basic_json_parser_30; } goto basic_json_parser_32; } else { if (yych <= 'F') { goto basic_json_parser_30; } if (yych <= '`') { goto basic_json_parser_32; } if (yych <= 'f') { goto basic_json_parser_30; } goto basic_json_parser_32; } } } return last_token_type; } /*! @brief append data from the stream to the line buffer This function is called by the scan() function when the end of the buffer (`m_limit`) is reached and the `m_cursor` pointer cannot be incremented without leaving the limits of the line buffer. Note re2c decides when to call this function. If the lexer reads from contiguous storage, there is no trailing null byte. Therefore, this function must make sure to add these padding null bytes. If the lexer reads from an input stream, this function reads the next line of the input. @pre p p p p p p u u u u u x . . . . . . ^ ^ ^ ^ m_content m_start | m_limit m_cursor @post u u u u u x x x x x x x . . . . . . ^ ^ ^ | m_cursor m_limit m_start m_content */ void fill_line_buffer(size_t n = 0) { // if line buffer is used, m_content points to its data assert(m_line_buffer.empty() or m_content == reinterpret_cast(m_line_buffer.data())); // if line buffer is used, m_limit is set past the end of its data assert(m_line_buffer.empty() or m_limit == m_content + m_line_buffer.size()); // pointer relationships assert(m_content <= m_start); assert(m_start <= m_cursor); assert(m_cursor <= m_limit); assert(m_marker == nullptr or m_marker <= m_limit); // number of processed characters (p) const auto num_processed_chars = static_cast(m_start - m_content); // offset for m_marker wrt. to m_start const auto offset_marker = (m_marker == nullptr) ? 0 : m_marker - m_start; // number of unprocessed characters (u) const auto offset_cursor = m_cursor - m_start; // no stream is used or end of file is reached if (m_stream == nullptr or m_stream->eof()) { // m_start may or may not be pointing into m_line_buffer at // this point. We trust the standard library to do the right // thing. See http://stackoverflow.com/q/28142011/266378 m_line_buffer.assign(m_start, m_limit); // append n characters to make sure that there is sufficient // space between m_cursor and m_limit m_line_buffer.append(1, '\x00'); if (n > 0) { m_line_buffer.append(n - 1, '\x01'); } } else { // delete processed characters from line buffer m_line_buffer.erase(0, num_processed_chars); // read next line from input stream m_line_buffer_tmp.clear(); std::getline(*m_stream, m_line_buffer_tmp, '\n'); // add line with newline symbol to the line buffer m_line_buffer += m_line_buffer_tmp; m_line_buffer.push_back('\n'); } // set pointers m_content = reinterpret_cast(m_line_buffer.data()); assert(m_content != nullptr); m_start = m_content; m_marker = m_start + offset_marker; m_cursor = m_start + offset_cursor; m_limit = m_start + m_line_buffer.size(); } /// return string representation of last read token string_t get_token_string() const { assert(m_start != nullptr); return string_t(reinterpret_cast(m_start), static_cast(m_cursor - m_start)); } /*! @brief return string value for string tokens The function iterates the characters between the opening and closing quotes of the string value. The complete string is the range [m_start,m_cursor). Consequently, we iterate from m_start+1 to m_cursor-1. We differentiate two cases: 1. Escaped characters. In this case, a new character is constructed according to the nature of the escape. Some escapes create new characters (e.g., `"\\n"` is replaced by `"\n"`), some are copied as is (e.g., `"\\\\"`). Furthermore, Unicode escapes of the shape `"\\uxxxx"` need special care. In this case, to_unicode takes care of the construction of the values. 2. Unescaped characters are copied as is. @pre `m_cursor - m_start >= 2`, meaning the length of the last token is at least 2 bytes which is trivially true for any string (which consists of at least two quotes). " c1 c2 c3 ... " ^ ^ m_start m_cursor @complexity Linear in the length of the string.\n Lemma: The loop body will always terminate.\n Proof (by contradiction): Assume the loop body does not terminate. As the loop body does not contain another loop, one of the called functions must never return. The called functions are `std::strtoul` and to_unicode. Neither function can loop forever, so the loop body will never loop forever which contradicts the assumption that the loop body does not terminate, q.e.d.\n Lemma: The loop condition for the for loop is eventually false.\n Proof (by contradiction): Assume the loop does not terminate. Due to the above lemma, this can only be due to a tautological loop condition; that is, the loop condition i < m_cursor - 1 must always be true. Let x be the change of i for any loop iteration. Then m_start + 1 + x < m_cursor - 1 must hold to loop indefinitely. This can be rephrased to m_cursor - m_start - 2 > x. With the precondition, we x <= 0, meaning that the loop condition holds indefinitely if i is always decreased. However, observe that the value of i is strictly increasing with each iteration, as it is incremented by 1 in the iteration expression and never decremented inside the loop body. Hence, the loop condition will eventually be false which contradicts the assumption that the loop condition is a tautology, q.e.d. @return string value of current token without opening and closing quotes @throw std::out_of_range if to_unicode fails */ string_t get_string() const { assert(m_cursor - m_start >= 2); string_t result; result.reserve(static_cast(m_cursor - m_start - 2)); // iterate the result between the quotes for (const lexer_char_t* i = m_start + 1; i < m_cursor - 1; ++i) { // find next escape character auto e = std::find(i, m_cursor - 1, '\\'); if (e != i) { // see https://github.com/nlohmann/json/issues/365#issuecomment-262874705 for (auto k = i; k < e; k++) { result.push_back(static_cast(*k)); } i = e - 1; // -1 because of ++i } else { // processing escaped character // read next character ++i; switch (*i) { // the default escapes case 't': { result += "\t"; break; } case 'b': { result += "\b"; break; } case 'f': { result += "\f"; break; } case 'n': { result += "\n"; break; } case 'r': { result += "\r"; break; } case '\\': { result += "\\"; break; } case '/': { result += "/"; break; } case '"': { result += "\""; break; } // unicode case 'u': { // get code xxxx from uxxxx auto codepoint = std::strtoul(std::string(reinterpret_cast(i + 1), 4).c_str(), nullptr, 16); // check if codepoint is a high surrogate if (codepoint >= 0xD800 and codepoint <= 0xDBFF) { // make sure there is a subsequent unicode if ((i + 6 >= m_limit) or * (i + 5) != '\\' or * (i + 6) != 'u') { JSON_THROW(std::invalid_argument("missing low surrogate")); } // get code yyyy from uxxxx\uyyyy auto codepoint2 = std::strtoul(std::string(reinterpret_cast (i + 7), 4).c_str(), nullptr, 16); result += to_unicode(codepoint, codepoint2); // skip the next 10 characters (xxxx\uyyyy) i += 10; } else if (codepoint >= 0xDC00 and codepoint <= 0xDFFF) { // we found a lone low surrogate JSON_THROW(std::invalid_argument("missing high surrogate")); } else { // add unicode character(s) result += to_unicode(codepoint); // skip the next four characters (xxxx) i += 4; } break; } } } } return result; } /*! @brief parse string into a built-in arithmetic type as if the current locale is POSIX. @note in floating-point case strtod may parse past the token's end - this is not an error @note any leading blanks are not handled */ struct strtonum { public: strtonum(const char* start, const char* end) : m_start(start), m_end(end) {} /*! @return true iff parsed successfully as number of type T @param[in,out] val shall contain parsed value, or undefined value if could not parse */ template::value>::type> bool to(T& val) const { return parse(val, std::is_integral()); } private: const char* const m_start = nullptr; const char* const m_end = nullptr; // floating-point conversion // overloaded wrappers for strtod/strtof/strtold // that will be called from parse static void strtof(float& f, const char* str, char** endptr) { f = std::strtof(str, endptr); } static void strtof(double& f, const char* str, char** endptr) { f = std::strtod(str, endptr); } static void strtof(long double& f, const char* str, char** endptr) { f = std::strtold(str, endptr); } template bool parse(T& value, /*is_integral=*/std::false_type) const { // replace decimal separator with locale-specific version, // when necessary; data will point to either the original // string, or buf, or tempstr containing the fixed string. std::string tempstr; std::array buf; const size_t len = static_cast(m_end - m_start); // lexer will reject empty numbers assert(len > 0); // since dealing with strtod family of functions, we're // getting the decimal point char from the C locale facilities // instead of C++'s numpunct facet of the current std::locale const auto loc = localeconv(); assert(loc != nullptr); const char decimal_point_char = (loc->decimal_point == nullptr) ? '.' : loc->decimal_point[0]; const char* data = m_start; if (decimal_point_char != '.') { const size_t ds_pos = static_cast(std::find(m_start, m_end, '.') - m_start); if (ds_pos != len) { // copy the data into the local buffer or tempstr, if // buffer is too small; replace decimal separator, and // update data to point to the modified bytes if ((len + 1) < buf.size()) { std::copy(m_start, m_end, buf.data()); buf[len] = 0; buf[ds_pos] = decimal_point_char; data = buf.data(); } else { tempstr.assign(m_start, m_end); tempstr[ds_pos] = decimal_point_char; data = tempstr.c_str(); } } } char* endptr = nullptr; value = 0; // this calls appropriate overload depending on T strtof(value, data, &endptr); // parsing was successful iff strtof parsed exactly the number // of characters determined by the lexer (len) const bool ok = (endptr == (data + len)); if (ok and (value == 0.0) and (*data == '-')) { // some implementations forget to negate the zero value = -0.0; } return ok; } // integral conversion signed long long parse_integral(char** endptr, /*is_signed*/std::true_type) const { return std::strtoll(m_start, endptr, 10); } unsigned long long parse_integral(char** endptr, /*is_signed*/std::false_type) const { return std::strtoull(m_start, endptr, 10); } template bool parse(T& value, /*is_integral=*/std::true_type) const { char* endptr = nullptr; errno = 0; // these are thread-local const auto x = parse_integral(&endptr, std::is_signed()); // called right overload? static_assert(std::is_signed() == std::is_signed(), ""); value = static_cast(x); return (x == static_cast(value)) // x fits into destination T and (x < 0) == (value < 0) // preserved sign //and ((x != 0) or is_integral()) // strto[u]ll did nto fail and (errno == 0) // strto[u]ll did not overflow and (m_start < m_end) // token was not empty and (endptr == m_end); // parsed entire token exactly } }; /*! @brief return number value for number tokens This function translates the last token into the most appropriate number type (either integer, unsigned integer or floating point), which is passed back to the caller via the result parameter. integral numbers that don't fit into the the range of the respective type are parsed as number_float_t floating-point values do not satisfy std::isfinite predicate are converted to value_t::null throws if the entire string [m_start .. m_cursor) cannot be interpreted as a number @param[out] result @ref basic_json object to receive the number. @param[in] token the type of the number token */ bool get_number(basic_json& result, const token_type token) const { assert(m_start != nullptr); assert(m_start < m_cursor); assert((token == token_type::value_unsigned) or (token == token_type::value_integer) or (token == token_type::value_float)); strtonum num_converter(reinterpret_cast(m_start), reinterpret_cast(m_cursor)); switch (token) { case lexer::token_type::value_unsigned: { number_unsigned_t val; if (num_converter.to(val)) { // parsing successful result.m_type = value_t::number_unsigned; result.m_value = val; return true; } break; } case lexer::token_type::value_integer: { number_integer_t val; if (num_converter.to(val)) { // parsing successful result.m_type = value_t::number_integer; result.m_value = val; return true; } break; } default: { break; } } // parse float (either explicitly or because a previous conversion // failed) number_float_t val; if (num_converter.to(val)) { // parsing successful result.m_type = value_t::number_float; result.m_value = val; // replace infinity and NAN by null if (not std::isfinite(result.m_value.number_float)) { result.m_type = value_t::null; result.m_value = basic_json::json_value(); } return true; } // couldn't parse number in any format return false; } private: /// optional input stream std::istream* m_stream = nullptr; /// line buffer buffer for m_stream string_t m_line_buffer {}; /// used for filling m_line_buffer string_t m_line_buffer_tmp {}; /// the buffer pointer const lexer_char_t* m_content = nullptr; /// pointer to the beginning of the current symbol const lexer_char_t* m_start = nullptr; /// pointer for backtracking information const lexer_char_t* m_marker = nullptr; /// pointer to the current symbol const lexer_char_t* m_cursor = nullptr; /// pointer to the end of the buffer const lexer_char_t* m_limit = nullptr; /// the last token type token_type last_token_type = token_type::end_of_input; }; /*! @brief syntax analysis This class implements a recursive decent parser. */ class parser { public: /// a parser reading from a string literal parser(const char* buff, const parser_callback_t cb = nullptr) : callback(cb), m_lexer(reinterpret_cast(buff), std::strlen(buff)) {} /// a parser reading from an input stream parser(std::istream& is, const parser_callback_t cb = nullptr) : callback(cb), m_lexer(is) {} /// a parser reading from an iterator range with contiguous storage template::iterator_category, std::random_access_iterator_tag>::value , int>::type = 0> parser(IteratorType first, IteratorType last, const parser_callback_t cb = nullptr) : callback(cb), m_lexer(reinterpret_cast(&(*first)), static_cast(std::distance(first, last))) {} /// public parser interface basic_json parse() { // read first token get_token(); basic_json result = parse_internal(true); result.assert_invariant(); expect(lexer::token_type::end_of_input); // return parser result and replace it with null in case the // top-level value was discarded by the callback function return result.is_discarded() ? basic_json() : std::move(result); } private: /// the actual parser basic_json parse_internal(bool keep) { auto result = basic_json(value_t::discarded); switch (last_token) { case lexer::token_type::begin_object: { if (keep and (not callback or ((keep = callback(depth++, parse_event_t::object_start, result)) != 0))) { // explicitly set result to object to cope with {} result.m_type = value_t::object; result.m_value = value_t::object; } // read next token get_token(); // closing } -> we are done if (last_token == lexer::token_type::end_object) { get_token(); if (keep and callback and not callback(--depth, parse_event_t::object_end, result)) { result = basic_json(value_t::discarded); } return result; } // no comma is expected here unexpect(lexer::token_type::value_separator); // otherwise: parse key-value pairs do { // ugly, but could be fixed with loop reorganization if (last_token == lexer::token_type::value_separator) { get_token(); } // store key expect(lexer::token_type::value_string); const auto key = m_lexer.get_string(); bool keep_tag = false; if (keep) { if (callback) { basic_json k(key); keep_tag = callback(depth, parse_event_t::key, k); } else { keep_tag = true; } } // parse separator (:) get_token(); expect(lexer::token_type::name_separator); // parse and add value get_token(); auto value = parse_internal(keep); if (keep and keep_tag and not value.is_discarded()) { result[key] = std::move(value); } } while (last_token == lexer::token_type::value_separator); // closing } expect(lexer::token_type::end_object); get_token(); if (keep and callback and not callback(--depth, parse_event_t::object_end, result)) { result = basic_json(value_t::discarded); } return result; } case lexer::token_type::begin_array: { if (keep and (not callback or ((keep = callback(depth++, parse_event_t::array_start, result)) != 0))) { // explicitly set result to object to cope with [] result.m_type = value_t::array; result.m_value = value_t::array; } // read next token get_token(); // closing ] -> we are done if (last_token == lexer::token_type::end_array) { get_token(); if (callback and not callback(--depth, parse_event_t::array_end, result)) { result = basic_json(value_t::discarded); } return result; } // no comma is expected here unexpect(lexer::token_type::value_separator); // otherwise: parse values do { // ugly, but could be fixed with loop reorganization if (last_token == lexer::token_type::value_separator) { get_token(); } // parse value auto value = parse_internal(keep); if (keep and not value.is_discarded()) { result.push_back(std::move(value)); } } while (last_token == lexer::token_type::value_separator); // closing ] expect(lexer::token_type::end_array); get_token(); if (keep and callback and not callback(--depth, parse_event_t::array_end, result)) { result = basic_json(value_t::discarded); } return result; } case lexer::token_type::literal_null: { get_token(); result.m_type = value_t::null; break; } case lexer::token_type::value_string: { const auto s = m_lexer.get_string(); get_token(); result = basic_json(s); break; } case lexer::token_type::literal_true: { get_token(); result.m_type = value_t::boolean; result.m_value = true; break; } case lexer::token_type::literal_false: { get_token(); result.m_type = value_t::boolean; result.m_value = false; break; } case lexer::token_type::value_unsigned: case lexer::token_type::value_integer: case lexer::token_type::value_float: { const bool ok = m_lexer.get_number(result, last_token); get_token(); // if number conversion was unsuccessful, then is is // because the number was directly followed by an // unexpected character (e.g. "01" where "1" is unexpected) if (not ok) { unexpect(last_token); } break; } default: { // the last token was unexpected unexpect(last_token); } } if (keep and callback and not callback(depth, parse_event_t::value, result)) { result = basic_json(value_t::discarded); } return result; } /// get next token from lexer typename lexer::token_type get_token() { last_token = m_lexer.scan(); return last_token; } void expect(typename lexer::token_type t) const { if (t != last_token) { std::string error_msg = "parse error - unexpected "; error_msg += (last_token == lexer::token_type::parse_error ? ("'" + m_lexer.get_token_string() + "'") : lexer::token_type_name(last_token)); error_msg += "; expected " + lexer::token_type_name(t); JSON_THROW(std::invalid_argument(error_msg)); } } void unexpect(typename lexer::token_type t) const { if (t == last_token) { std::string error_msg = "parse error - unexpected "; error_msg += (last_token == lexer::token_type::parse_error ? ("'" + m_lexer.get_token_string() + "'") : lexer::token_type_name(last_token)); JSON_THROW(std::invalid_argument(error_msg)); } } private: /// current level of recursion int depth = 0; /// callback function const parser_callback_t callback = nullptr; /// the type of the last read token typename lexer::token_type last_token = lexer::token_type::uninitialized; /// the lexer lexer m_lexer; }; public: /*! @brief JSON Pointer A JSON pointer defines a string syntax for identifying a specific value within a JSON document. It can be used with functions `at` and `operator[]`. Furthermore, JSON pointers are the base for JSON patches. @sa [RFC 6901](https://tools.ietf.org/html/rfc6901) @since version 2.0.0 */ class json_pointer { /// allow basic_json to access private members friend class basic_json; public: /*! @brief create JSON pointer Create a JSON pointer according to the syntax described in [Section 3 of RFC6901](https://tools.ietf.org/html/rfc6901#section-3). @param[in] s string representing the JSON pointer; if omitted, the empty string is assumed which references the whole JSON value @throw std::domain_error if reference token is nonempty and does not begin with a slash (`/`); example: `"JSON pointer must be empty or begin with /"` @throw std::domain_error if a tilde (`~`) is not followed by `0` (representing `~`) or `1` (representing `/`); example: `"escape error: ~ must be followed with 0 or 1"` @liveexample{The example shows the construction several valid JSON pointers as well as the exceptional behavior.,json_pointer} @since version 2.0.0 */ explicit json_pointer(const std::string& s = "") : reference_tokens(split(s)) {} /*! @brief return a string representation of the JSON pointer @invariant For each JSON pointer `ptr`, it holds: @code {.cpp} ptr == json_pointer(ptr.to_string()); @endcode @return a string representation of the JSON pointer @liveexample{The example shows the result of `to_string`., json_pointer__to_string} @since version 2.0.0 */ std::string to_string() const noexcept { return std::accumulate(reference_tokens.begin(), reference_tokens.end(), std::string{}, [](const std::string & a, const std::string & b) { return a + "/" + escape(b); }); } /// @copydoc to_string() operator std::string() const { return to_string(); } private: /// remove and return last reference pointer std::string pop_back() { if (is_root()) { JSON_THROW(std::domain_error("JSON pointer has no parent")); } auto last = reference_tokens.back(); reference_tokens.pop_back(); return last; } /// return whether pointer points to the root document bool is_root() const { return reference_tokens.empty(); } json_pointer top() const { if (is_root()) { JSON_THROW(std::domain_error("JSON pointer has no parent")); } json_pointer result = *this; result.reference_tokens = {reference_tokens[0]}; return result; } /*! @brief create and return a reference to the pointed to value @complexity Linear in the number of reference tokens. */ reference get_and_create(reference j) const { pointer result = &j; // in case no reference tokens exist, return a reference to the // JSON value j which will be overwritten by a primitive value for (const auto& reference_token : reference_tokens) { switch (result->m_type) { case value_t::null: { if (reference_token == "0") { // start a new array if reference token is 0 result = &result->operator[](0); } else { // start a new object otherwise result = &result->operator[](reference_token); } break; } case value_t::object: { // create an entry in the object result = &result->operator[](reference_token); break; } case value_t::array: { // create an entry in the array result = &result->operator[](static_cast(std::stoi(reference_token))); break; } /* The following code is only reached if there exists a reference token _and_ the current value is primitive. In this case, we have an error situation, because primitive values may only occur as single value; that is, with an empty list of reference tokens. */ default: { JSON_THROW(std::domain_error("invalid value to unflatten")); } } } return *result; } /*! @brief return a reference to the pointed to value @note This version does not throw if a value is not present, but tries to create nested values instead. For instance, calling this function with pointer `"/this/that"` on a null value is equivalent to calling `operator[]("this").operator[]("that")` on that value, effectively changing the null value to an object. @param[in] ptr a JSON value @return reference to the JSON value pointed to by the JSON pointer @complexity Linear in the length of the JSON pointer. @throw std::out_of_range if the JSON pointer can not be resolved @throw std::domain_error if an array index begins with '0' @throw std::invalid_argument if an array index was not a number */ reference get_unchecked(pointer ptr) const { for (const auto& reference_token : reference_tokens) { // convert null values to arrays or objects before continuing if (ptr->m_type == value_t::null) { // check if reference token is a number const bool nums = std::all_of(reference_token.begin(), reference_token.end(), [](const char x) { return std::isdigit(x); }); // change value to array for numbers or "-" or to object // otherwise if (nums or reference_token == "-") { *ptr = value_t::array; } else { *ptr = value_t::object; } } switch (ptr->m_type) { case value_t::object: { // use unchecked object access ptr = &ptr->operator[](reference_token); break; } case value_t::array: { // error condition (cf. RFC 6901, Sect. 4) if (reference_token.size() > 1 and reference_token[0] == '0') { JSON_THROW(std::domain_error("array index must not begin with '0'")); } if (reference_token == "-") { // explicitly treat "-" as index beyond the end ptr = &ptr->operator[](ptr->m_value.array->size()); } else { // convert array index to number; unchecked access ptr = &ptr->operator[](static_cast(std::stoi(reference_token))); } break; } default: { JSON_THROW(std::out_of_range("unresolved reference token '" + reference_token + "'")); } } } return *ptr; } reference get_checked(pointer ptr) const { for (const auto& reference_token : reference_tokens) { switch (ptr->m_type) { case value_t::object: { // note: at performs range check ptr = &ptr->at(reference_token); break; } case value_t::array: { if (reference_token == "-") { // "-" always fails the range check throw std::out_of_range("array index '-' (" + std::to_string(ptr->m_value.array->size()) + ") is out of range"); } // error condition (cf. RFC 6901, Sect. 4) if (reference_token.size() > 1 and reference_token[0] == '0') { JSON_THROW(std::domain_error("array index must not begin with '0'")); } // note: at performs range check ptr = &ptr->at(static_cast(std::stoi(reference_token))); break; } default: { JSON_THROW(std::out_of_range("unresolved reference token '" + reference_token + "'")); } } } return *ptr; } /*! @brief return a const reference to the pointed to value @param[in] ptr a JSON value @return const reference to the JSON value pointed to by the JSON pointer */ const_reference get_unchecked(const_pointer ptr) const { for (const auto& reference_token : reference_tokens) { switch (ptr->m_type) { case value_t::object: { // use unchecked object access ptr = &ptr->operator[](reference_token); break; } case value_t::array: { if (reference_token == "-") { // "-" cannot be used for const access throw std::out_of_range("array index '-' (" + std::to_string(ptr->m_value.array->size()) + ") is out of range"); } // error condition (cf. RFC 6901, Sect. 4) if (reference_token.size() > 1 and reference_token[0] == '0') { JSON_THROW(std::domain_error("array index must not begin with '0'")); } // use unchecked array access ptr = &ptr->operator[](static_cast(std::stoi(reference_token))); break; } default: { JSON_THROW(std::out_of_range("unresolved reference token '" + reference_token + "'")); } } } return *ptr; } const_reference get_checked(const_pointer ptr) const { for (const auto& reference_token : reference_tokens) { switch (ptr->m_type) { case value_t::object: { // note: at performs range check ptr = &ptr->at(reference_token); break; } case value_t::array: { if (reference_token == "-") { // "-" always fails the range check throw std::out_of_range("array index '-' (" + std::to_string(ptr->m_value.array->size()) + ") is out of range"); } // error condition (cf. RFC 6901, Sect. 4) if (reference_token.size() > 1 and reference_token[0] == '0') { JSON_THROW(std::domain_error("array index must not begin with '0'")); } // note: at performs range check ptr = &ptr->at(static_cast(std::stoi(reference_token))); break; } default: { JSON_THROW(std::out_of_range("unresolved reference token '" + reference_token + "'")); } } } return *ptr; } /// split the string input to reference tokens static std::vector split(const std::string& reference_string) { std::vector result; // special case: empty reference string -> no reference tokens if (reference_string.empty()) { return result; } // check if nonempty reference string begins with slash if (reference_string[0] != '/') { JSON_THROW(std::domain_error("JSON pointer must be empty or begin with '/'")); } // extract the reference tokens: // - slash: position of the last read slash (or end of string) // - start: position after the previous slash for ( // search for the first slash after the first character size_t slash = reference_string.find_first_of('/', 1), // set the beginning of the first reference token start = 1; // we can stop if start == string::npos+1 = 0 start != 0; // set the beginning of the next reference token // (will eventually be 0 if slash == std::string::npos) start = slash + 1, // find next slash slash = reference_string.find_first_of('/', start)) { // use the text between the beginning of the reference token // (start) and the last slash (slash). auto reference_token = reference_string.substr(start, slash - start); // check reference tokens are properly escaped for (size_t pos = reference_token.find_first_of('~'); pos != std::string::npos; pos = reference_token.find_first_of('~', pos + 1)) { assert(reference_token[pos] == '~'); // ~ must be followed by 0 or 1 if (pos == reference_token.size() - 1 or (reference_token[pos + 1] != '0' and reference_token[pos + 1] != '1')) { JSON_THROW(std::domain_error("escape error: '~' must be followed with '0' or '1'")); } } // finally, store the reference token unescape(reference_token); result.push_back(reference_token); } return result; } private: /*! @brief replace all occurrences of a substring by another string @param[in,out] s the string to manipulate; changed so that all occurrences of @a f are replaced with @a t @param[in] f the substring to replace with @a t @param[in] t the string to replace @a f @pre The search string @a f must not be empty. @since version 2.0.0 */ static void replace_substring(std::string& s, const std::string& f, const std::string& t) { assert(not f.empty()); for ( size_t pos = s.find(f); // find first occurrence of f pos != std::string::npos; // make sure f was found s.replace(pos, f.size(), t), // replace with t pos = s.find(f, pos + t.size()) // find next occurrence of f ); } /// escape tilde and slash static std::string escape(std::string s) { // escape "~"" to "~0" and "/" to "~1" replace_substring(s, "~", "~0"); replace_substring(s, "/", "~1"); return s; } /// unescape tilde and slash static void unescape(std::string& s) { // first transform any occurrence of the sequence '~1' to '/' replace_substring(s, "~1", "/"); // then transform any occurrence of the sequence '~0' to '~' replace_substring(s, "~0", "~"); } /*! @param[in] reference_string the reference string to the current value @param[in] value the value to consider @param[in,out] result the result object to insert values to @note Empty objects or arrays are flattened to `null`. */ static void flatten(const std::string& reference_string, const basic_json& value, basic_json& result) { switch (value.m_type) { case value_t::array: { if (value.m_value.array->empty()) { // flatten empty array as null result[reference_string] = nullptr; } else { // iterate array and use index as reference string for (size_t i = 0; i < value.m_value.array->size(); ++i) { flatten(reference_string + "/" + std::to_string(i), value.m_value.array->operator[](i), result); } } break; } case value_t::object: { if (value.m_value.object->empty()) { // flatten empty object as null result[reference_string] = nullptr; } else { // iterate object and use keys as reference string for (const auto& element : *value.m_value.object) { flatten(reference_string + "/" + escape(element.first), element.second, result); } } break; } default: { // add primitive value with its reference string result[reference_string] = value; break; } } } /*! @param[in] value flattened JSON @return unflattened JSON */ static basic_json unflatten(const basic_json& value) { if (not value.is_object()) { JSON_THROW(std::domain_error("only objects can be unflattened")); } basic_json result; // iterate the JSON object values for (const auto& element : *value.m_value.object) { if (not element.second.is_primitive()) { JSON_THROW(std::domain_error("values in object must be primitive")); } // assign value to reference pointed to by JSON pointer; Note // that if the JSON pointer is "" (i.e., points to the whole // value), function get_and_create returns a reference to // result itself. An assignment will then create a primitive // value. json_pointer(element.first).get_and_create(result) = element.second; } return result; } private: friend bool operator==(json_pointer const& lhs, json_pointer const& rhs) noexcept { return lhs.reference_tokens == rhs.reference_tokens; } friend bool operator!=(json_pointer const& lhs, json_pointer const& rhs) noexcept { return !(lhs == rhs); } /// the reference tokens std::vector reference_tokens {}; }; ////////////////////////// // JSON Pointer support // ////////////////////////// /// @name JSON Pointer functions /// @{ /*! @brief access specified element via JSON Pointer Uses a JSON pointer to retrieve a reference to the respective JSON value. No bound checking is performed. Similar to @ref operator[](const typename object_t::key_type&), `null` values are created in arrays and objects if necessary. In particular: - If the JSON pointer points to an object key that does not exist, it is created an filled with a `null` value before a reference to it is returned. - If the JSON pointer points to an array index that does not exist, it is created an filled with a `null` value before a reference to it is returned. All indices between the current maximum and the given index are also filled with `null`. - The special value `-` is treated as a synonym for the index past the end. @param[in] ptr a JSON pointer @return reference to the element pointed to by @a ptr @complexity Constant. @throw std::out_of_range if the JSON pointer can not be resolved @throw std::domain_error if an array index begins with '0' @throw std::invalid_argument if an array index was not a number @liveexample{The behavior is shown in the example.,operatorjson_pointer} @since version 2.0.0 */ reference operator[](const json_pointer& ptr) { return ptr.get_unchecked(this); } /*! @brief access specified element via JSON Pointer Uses a JSON pointer to retrieve a reference to the respective JSON value. No bound checking is performed. The function does not change the JSON value; no `null` values are created. In particular, the the special value `-` yields an exception. @param[in] ptr JSON pointer to the desired element @return const reference to the element pointed to by @a ptr @complexity Constant. @throw std::out_of_range if the JSON pointer can not be resolved @throw std::domain_error if an array index begins with '0' @throw std::invalid_argument if an array index was not a number @liveexample{The behavior is shown in the example.,operatorjson_pointer_const} @since version 2.0.0 */ const_reference operator[](const json_pointer& ptr) const { return ptr.get_unchecked(this); } /*! @brief access specified element via JSON Pointer Returns a reference to the element at with specified JSON pointer @a ptr, with bounds checking. @param[in] ptr JSON pointer to the desired element @return reference to the element pointed to by @a ptr @complexity Constant. @throw std::out_of_range if the JSON pointer can not be resolved @throw std::domain_error if an array index begins with '0' @throw std::invalid_argument if an array index was not a number @liveexample{The behavior is shown in the example.,at_json_pointer} @since version 2.0.0 */ reference at(const json_pointer& ptr) { return ptr.get_checked(this); } /*! @brief access specified element via JSON Pointer Returns a const reference to the element at with specified JSON pointer @a ptr, with bounds checking. @param[in] ptr JSON pointer to the desired element @return reference to the element pointed to by @a ptr @complexity Constant. @throw std::out_of_range if the JSON pointer can not be resolved @throw std::domain_error if an array index begins with '0' @throw std::invalid_argument if an array index was not a number @liveexample{The behavior is shown in the example.,at_json_pointer_const} @since version 2.0.0 */ const_reference at(const json_pointer& ptr) const { return ptr.get_checked(this); } /*! @brief return flattened JSON value The function creates a JSON object whose keys are JSON pointers (see [RFC 6901](https://tools.ietf.org/html/rfc6901)) and whose values are all primitive. The original JSON value can be restored using the @ref unflatten() function. @return an object that maps JSON pointers to primitive values @note Empty objects and arrays are flattened to `null` and will not be reconstructed correctly by the @ref unflatten() function. @complexity Linear in the size the JSON value. @liveexample{The following code shows how a JSON object is flattened to an object whose keys consist of JSON pointers.,flatten} @sa @ref unflatten() for the reverse function @since version 2.0.0 */ basic_json flatten() const { basic_json result(value_t::object); json_pointer::flatten("", *this, result); return result; } /*! @brief unflatten a previously flattened JSON value The function restores the arbitrary nesting of a JSON value that has been flattened before using the @ref flatten() function. The JSON value must meet certain constraints: 1. The value must be an object. 2. The keys must be JSON pointers (see [RFC 6901](https://tools.ietf.org/html/rfc6901)) 3. The mapped values must be primitive JSON types. @return the original JSON from a flattened version @note Empty objects and arrays are flattened by @ref flatten() to `null` values and can not unflattened to their original type. Apart from this example, for a JSON value `j`, the following is always true: `j == j.flatten().unflatten()`. @complexity Linear in the size the JSON value. @liveexample{The following code shows how a flattened JSON object is unflattened into the original nested JSON object.,unflatten} @sa @ref flatten() for the reverse function @since version 2.0.0 */ basic_json unflatten() const { return json_pointer::unflatten(*this); } /// @} ////////////////////////// // JSON Patch functions // ////////////////////////// /// @name JSON Patch functions /// @{ /*! @brief applies a JSON patch [JSON Patch](http://jsonpatch.com) defines a JSON document structure for expressing a sequence of operations to apply to a JSON) document. With this function, a JSON Patch is applied to the current JSON value by executing all operations from the patch. @param[in] json_patch JSON patch document @return patched document @note The application of a patch is atomic: Either all operations succeed and the patched document is returned or an exception is thrown. In any case, the original value is not changed: the patch is applied to a copy of the value. @throw std::out_of_range if a JSON pointer inside the patch could not be resolved successfully in the current JSON value; example: `"key baz not found"` @throw invalid_argument if the JSON patch is malformed (e.g., mandatory attributes are missing); example: `"operation add must have member path"` @complexity Linear in the size of the JSON value and the length of the JSON patch. As usually only a fraction of the JSON value is affected by the patch, the complexity can usually be neglected. @liveexample{The following code shows how a JSON patch is applied to a value.,patch} @sa @ref diff -- create a JSON patch by comparing two JSON values @sa [RFC 6902 (JSON Patch)](https://tools.ietf.org/html/rfc6902) @sa [RFC 6901 (JSON Pointer)](https://tools.ietf.org/html/rfc6901) @since version 2.0.0 */ basic_json patch(const basic_json& json_patch) const { // make a working copy to apply the patch to basic_json result = *this; // the valid JSON Patch operations enum class patch_operations {add, remove, replace, move, copy, test, invalid}; const auto get_op = [](const std::string op) { if (op == "add") { return patch_operations::add; } if (op == "remove") { return patch_operations::remove; } if (op == "replace") { return patch_operations::replace; } if (op == "move") { return patch_operations::move; } if (op == "copy") { return patch_operations::copy; } if (op == "test") { return patch_operations::test; } return patch_operations::invalid; }; // wrapper for "add" operation; add value at ptr const auto operation_add = [&result](json_pointer & ptr, basic_json val) { // adding to the root of the target document means replacing it if (ptr.is_root()) { result = val; } else { // make sure the top element of the pointer exists json_pointer top_pointer = ptr.top(); if (top_pointer != ptr) { result.at(top_pointer); } // get reference to parent of JSON pointer ptr const auto last_path = ptr.pop_back(); basic_json& parent = result[ptr]; switch (parent.m_type) { case value_t::null: case value_t::object: { // use operator[] to add value parent[last_path] = val; break; } case value_t::array: { if (last_path == "-") { // special case: append to back parent.push_back(val); } else { const auto idx = std::stoi(last_path); if (static_cast(idx) > parent.size()) { // avoid undefined behavior JSON_THROW(std::out_of_range("array index " + std::to_string(idx) + " is out of range")); } else { // default case: insert add offset parent.insert(parent.begin() + static_cast(idx), val); } } break; } default: { // if there exists a parent it cannot be primitive assert(false); // LCOV_EXCL_LINE } } } }; // wrapper for "remove" operation; remove value at ptr const auto operation_remove = [&result](json_pointer & ptr) { // get reference to parent of JSON pointer ptr const auto last_path = ptr.pop_back(); basic_json& parent = result.at(ptr); // remove child if (parent.is_object()) { // perform range check auto it = parent.find(last_path); if (it != parent.end()) { parent.erase(it); } else { JSON_THROW(std::out_of_range("key '" + last_path + "' not found")); } } else if (parent.is_array()) { // note erase performs range check parent.erase(static_cast(std::stoi(last_path))); } }; // type check if (not json_patch.is_array()) { // a JSON patch must be an array of objects JSON_THROW(std::invalid_argument("JSON patch must be an array of objects")); } // iterate and apply the operations for (const auto& val : json_patch) { // wrapper to get a value for an operation const auto get_value = [&val](const std::string & op, const std::string & member, bool string_type) -> basic_json& { // find value auto it = val.m_value.object->find(member); // context-sensitive error message const auto error_msg = (op == "op") ? "operation" : "operation '" + op + "'"; // check if desired value is present if (it == val.m_value.object->end()) { JSON_THROW(std::invalid_argument(error_msg + " must have member '" + member + "'")); } // check if result is of type string if (string_type and not it->second.is_string()) { JSON_THROW(std::invalid_argument(error_msg + " must have string member '" + member + "'")); } // no error: return value return it->second; }; // type check if (not val.is_object()) { JSON_THROW(std::invalid_argument("JSON patch must be an array of objects")); } // collect mandatory members const std::string op = get_value("op", "op", true); const std::string path = get_value(op, "path", true); json_pointer ptr(path); switch (get_op(op)) { case patch_operations::add: { operation_add(ptr, get_value("add", "value", false)); break; } case patch_operations::remove: { operation_remove(ptr); break; } case patch_operations::replace: { // the "path" location must exist - use at() result.at(ptr) = get_value("replace", "value", false); break; } case patch_operations::move: { const std::string from_path = get_value("move", "from", true); json_pointer from_ptr(from_path); // the "from" location must exist - use at() basic_json v = result.at(from_ptr); // The move operation is functionally identical to a // "remove" operation on the "from" location, followed // immediately by an "add" operation at the target // location with the value that was just removed. operation_remove(from_ptr); operation_add(ptr, v); break; } case patch_operations::copy: { const std::string from_path = get_value("copy", "from", true);; const json_pointer from_ptr(from_path); // the "from" location must exist - use at() result[ptr] = result.at(from_ptr); break; } case patch_operations::test: { bool success = false; JSON_TRY { // check if "value" matches the one at "path" // the "path" location must exist - use at() success = (result.at(ptr) == get_value("test", "value", false)); } JSON_CATCH (std::out_of_range&) { // ignore out of range errors: success remains false } // throw an exception if test fails if (not success) { JSON_THROW(std::domain_error("unsuccessful: " + val.dump())); } break; } case patch_operations::invalid: { // op must be "add", "remove", "replace", "move", "copy", or // "test" JSON_THROW(std::invalid_argument("operation value '" + op + "' is invalid")); } } } return result; } /*! @brief creates a diff as a JSON patch Creates a [JSON Patch](http://jsonpatch.com) so that value @a source can be changed into the value @a target by calling @ref patch function. @invariant For two JSON values @a source and @a target, the following code yields always `true`: @code {.cpp} source.patch(diff(source, target)) == target; @endcode @note Currently, only `remove`, `add`, and `replace` operations are generated. @param[in] source JSON value to compare from @param[in] target JSON value to compare against @param[in] path helper value to create JSON pointers @return a JSON patch to convert the @a source to @a target @complexity Linear in the lengths of @a source and @a target. @liveexample{The following code shows how a JSON patch is created as a diff for two JSON values.,diff} @sa @ref patch -- apply a JSON patch @sa [RFC 6902 (JSON Patch)](https://tools.ietf.org/html/rfc6902) @since version 2.0.0 */ static basic_json diff(const basic_json& source, const basic_json& target, const std::string& path = "") { // the patch basic_json result(value_t::array); // if the values are the same, return empty patch if (source == target) { return result; } if (source.type() != target.type()) { // different types: replace value result.push_back( { {"op", "replace"}, {"path", path}, {"value", target} }); } else { switch (source.type()) { case value_t::array: { // first pass: traverse common elements size_t i = 0; while (i < source.size() and i < target.size()) { // recursive call to compare array values at index i auto temp_diff = diff(source[i], target[i], path + "/" + std::to_string(i)); result.insert(result.end(), temp_diff.begin(), temp_diff.end()); ++i; } // i now reached the end of at least one array // in a second pass, traverse the remaining elements // remove my remaining elements const auto end_index = static_cast(result.size()); while (i < source.size()) { // add operations in reverse order to avoid invalid // indices result.insert(result.begin() + end_index, object( { {"op", "remove"}, {"path", path + "/" + std::to_string(i)} })); ++i; } // add other remaining elements while (i < target.size()) { result.push_back( { {"op", "add"}, {"path", path + "/" + std::to_string(i)}, {"value", target[i]} }); ++i; } break; } case value_t::object: { // first pass: traverse this object's elements for (auto it = source.begin(); it != source.end(); ++it) { // escape the key name to be used in a JSON patch const auto key = json_pointer::escape(it.key()); if (target.find(it.key()) != target.end()) { // recursive call to compare object values at key it auto temp_diff = diff(it.value(), target[it.key()], path + "/" + key); result.insert(result.end(), temp_diff.begin(), temp_diff.end()); } else { // found a key that is not in o -> remove it result.push_back(object( { {"op", "remove"}, {"path", path + "/" + key} })); } } // second pass: traverse other object's elements for (auto it = target.begin(); it != target.end(); ++it) { if (source.find(it.key()) == source.end()) { // found a key that is not in this -> add it const auto key = json_pointer::escape(it.key()); result.push_back( { {"op", "add"}, {"path", path + "/" + key}, {"value", it.value()} }); } } break; } default: { // both primitive type: replace value result.push_back( { {"op", "replace"}, {"path", path}, {"value", target} }); break; } } } return result; } /// @} }; ///////////// // presets // ///////////// /*! @brief default JSON class This type is the default specialization of the @ref basic_json class which uses the standard template types. @since version 1.0.0 */ using json = basic_json<>; } // namespace nlohmann /////////////////////// // nonmember support // /////////////////////// // specialization of std::swap, and std::hash namespace std { /*! @brief exchanges the values of two JSON objects @since version 1.0.0 */ template<> inline void swap(nlohmann::json& j1, nlohmann::json& j2) noexcept( is_nothrow_move_constructible::value and is_nothrow_move_assignable::value ) { j1.swap(j2); } /// hash value for JSON objects template<> struct hash { /*! @brief return a hash value for a JSON object @since version 1.0.0 */ std::size_t operator()(const nlohmann::json& j) const { // a naive hashing via the string representation const auto& h = hash(); return h(j.dump()); } }; } // namespace std /*! @brief user-defined string literal for JSON values This operator implements a user-defined string literal for JSON objects. It can be used by adding `"_json"` to a string literal and returns a JSON object if no parse error occurred. @param[in] s a string representation of a JSON object @param[in] n the length of string @a s @return a JSON object @since version 1.0.0 */ inline nlohmann::json operator "" _json(const char* s, std::size_t n) { return nlohmann::json::parse(s, s + n); } /*! @brief user-defined string literal for JSON pointer This operator implements a user-defined string literal for JSON Pointers. It can be used by adding `"_json_pointer"` to a string literal and returns a JSON pointer object if no parse error occurred. @param[in] s a string representation of a JSON Pointer @param[in] n the length of string @a s @return a JSON pointer object @since version 2.0.0 */ inline nlohmann::json::json_pointer operator "" _json_pointer(const char* s, std::size_t n) { return nlohmann::json::json_pointer(std::string(s, n)); } // restore GCC/clang diagnostic settings #if defined(__clang__) || defined(__GNUC__) || defined(__GNUG__) #pragma GCC diagnostic pop #endif // clean up #undef JSON_CATCH #undef JSON_DEPRECATED #undef JSON_THROW #undef JSON_TRY #endif poedit-2.0.6/src/wx_backports/0000775000372000037200000000000013230132101013263 500000000000000poedit-2.0.6/src/wx_backports/wx_gtk_nativewin.cpp0000664000372000037200000000453213230131554017315 00000000000000/////////////////////////////////////////////////////////////////////////////// // Name: src/gtk/nativewin.cpp // Purpose: wxNativeWindow implementation // Author: Vadim Zeitlin // Created: 2008-03-05 // Copyright: (c) 2008 Vadim Zeitlin // Licence: wxWindows licence /////////////////////////////////////////////////////////////////////////////// // ============================================================================ // declarations // ============================================================================ // ---------------------------------------------------------------------------- // headers // ---------------------------------------------------------------------------- // for compilers that support precompilation, includes "wx.h". #include "wx/wxprec.h" #ifdef __BORLANDC__ #pragma hdrstop #endif #if !wxCHECK_VERSION(3,1,0) #include "nativewin.h" #include // ============================================================================ // implementation // ============================================================================ // ---------------------------------------------------------------------------- // wxNativeWindow // ---------------------------------------------------------------------------- bool wxNativeWindow::Create(wxWindow* parent, wxWindowID winid, wxNativeWindowHandle widget) { wxCHECK_MSG( widget, false, wxS("Invalid null GtkWidget") ); // Standard wxGTK controls use PreCreation() but we never have any size // specified at this stage, so don't bother with it. if ( !CreateBase(parent, winid) ) return false; // Add a reference to the widget to match g_object_unref() in wxWindow dtor // (and by using the "_sink" version we avoid memory leaks when we're // passed a newly allocated widget, as is typically the case). m_widget = widget; g_object_ref_sink(m_widget); parent->DoAddChild(this); PostCreation(); // Ensure that the best (and minimal) size is set to fully display the // widget. GtkRequisition req; #ifdef __WXGTK3__ gtk_widget_get_preferred_size(widget, NULL, &req); #else gtk_widget_size_request(widget, &req); #endif SetInitialSize(wxSize(req.width, req.height)); return true; } #endif // !wxCHECK_VERSION(3,1,0) poedit-2.0.6/src/wx_backports/wx_gtk_activityindicator.cpp0000664000372000037200000001167613230131554021051 00000000000000/////////////////////////////////////////////////////////////////////////////// // Name: src/gtk/activityindicator.cpp // Purpose: wxActivityIndicator implementation for wxGTK. // Author: Vadim Zeitlin // Created: 2015-03-05 // Copyright: (c) 2015 Vadim Zeitlin // Licence: wxWindows licence /////////////////////////////////////////////////////////////////////////////// // ============================================================================ // declarations // ============================================================================ // ---------------------------------------------------------------------------- // headers // ---------------------------------------------------------------------------- // for compilers that support precompilation, includes "wx.h". #include "wx/wxprec.h" #ifdef __BORLANDC__ #pragma hdrstop #endif #if !wxCHECK_VERSION(3,1,0) #include "activityindicator.h" #include "wx/math.h" #include // Macro return the specified expression only if GTK+ run time version is less // than 2.20 and compiling it only if it is less than 3.0 (which is why this // has to be a macro and not a function). #define RETURN_IF_NO_GTK_SPINNER(expr) // ============================================================================ // implementation // ============================================================================ wxIMPLEMENT_DYNAMIC_CLASS(wxActivityIndicator, wxControl); bool wxActivityIndicator::Create(wxWindow* parent, wxWindowID winid, const wxPoint& pos, const wxSize& size, long style, const wxString& name) { RETURN_IF_NO_GTK_SPINNER( wxActivityIndicatorGeneric::Create(parent, winid, pos, size, style, name) ) if ( !PreCreation(parent, pos, size) || !CreateBase(parent, winid, pos, size, style, name) ) return false; m_widget = gtk_spinner_new(); g_object_ref(m_widget); m_parent->DoAddChild(this); PostCreation(size); return true; } void wxActivityIndicator::Start() { RETURN_IF_NO_GTK_SPINNER( wxActivityIndicatorGeneric::Start() ) wxCHECK_RET( m_widget, wxS("Must be created first") ); gtk_spinner_start(GTK_SPINNER(m_widget)); } void wxActivityIndicator::Stop() { RETURN_IF_NO_GTK_SPINNER( wxActivityIndicatorGeneric::Stop() ) wxCHECK_RET( m_widget, wxS("Must be created first") ); gtk_spinner_stop(GTK_SPINNER(m_widget)); } bool wxActivityIndicator::IsRunning() const { RETURN_IF_NO_GTK_SPINNER( wxActivityIndicatorGeneric::IsRunning() ) if ( !m_widget ) return false; gboolean b; g_object_get(m_widget, "active", &b, NULL); return b != 0; } wxSize wxActivityIndicator::DoGetBestClientSize() const { RETURN_IF_NO_GTK_SPINNER( wxActivityIndicatorGeneric::DoGetBestClientSize() ) if ( !m_widget ) return wxDefaultSize; gint w, h; #ifdef __WXGTK3__ // gtk_widget_get_preferred_size() seems to return the size based on the // current size of the widget and also always returns 0 if it is hidden, // so ask GtkSpinner for its preferred size directly instead of using it. GtkWidgetClass* const wc = GTK_WIDGET_GET_CLASS(m_widget); // We're not interested in the natural size (and it's the same as minimal // one anyhow currently), but we still need a non-NULL pointer for it. gint dummy; wc->get_preferred_width(m_widget, &w, &dummy); wc->get_preferred_height(m_widget, &h, &dummy); #else // GTK+ 2 // GTK+ 2 doesn't return any valid preferred size for this control, so we // use the size of something roughly equivalent to it. gtk_icon_size_lookup(GTK_ICON_SIZE_MENU, &w, &h); #endif // GTK+ 3/2 // Adjust for the window variant: note that the default size in GTK+ 3 is // really small (12px until ~3.10, 16px since then), so we use this size as // the small size and double it for the normal size. double factor = 0.; switch ( GetWindowVariant() ) { case wxWINDOW_VARIANT_MAX: wxFAIL_MSG(wxS("Invalid window variant")); // wxFALLTHROUGH; case wxWINDOW_VARIANT_NORMAL: factor = 2.; break; case wxWINDOW_VARIANT_SMALL: factor = 1.; break; case wxWINDOW_VARIANT_MINI: factor = 0.75; break; case wxWINDOW_VARIANT_LARGE: // GTK+ 3.11+ limits GtkSpinner size to twice its minimal size, so // the effective factor here is actually just 2, i.e. the same as // for the normal size, but use something larger just in case GTK+ // changes its mind again later. factor = 2.5; break; } wxASSERT_MSG( !wxIsSameDouble(factor, 0), wxS("Unknown window variant") ); return wxSize(wxRound(w*factor), wxRound(h*factor)); } #endif // !wxCHECK_VERSION(3,1,0) poedit-2.0.6/src/wx_backports/gtk_activityindicator.h0000664000372000037200000000422713230131554017772 00000000000000/////////////////////////////////////////////////////////////////////////////// // Name: wx/gtk/activityindicator.h // Purpose: Declaration of wxActivityIndicator for wxGTK. // Author: Vadim Zeitlin // Created: 2015-03-05 // Copyright: (c) 2015 Vadim Zeitlin // Licence: wxWindows licence /////////////////////////////////////////////////////////////////////////////// #ifndef _WX_GTK_ACTIVITYINDICATOR_H_ #define _WX_GTK_ACTIVITYINDICATOR_H_ // With GTK+ 3 we can always be certain that this control is available, so use // the normal base class. With GTK+ 2 however, we may determine during run-time // that we need to fall back to the generic implementation because the GTK+ // version is earlier than 2.20, so we need to inherit from the generic class. #define wxActivityIndicatorGtkBase wxActivityIndicatorBase // ---------------------------------------------------------------------------- // wxActivityIndicator: implementation using GtkSpinner. // ---------------------------------------------------------------------------- class wxActivityIndicator : public wxActivityIndicatorGtkBase { public: wxActivityIndicator() { } explicit wxActivityIndicator(wxWindow* parent, wxWindowID winid = wxID_ANY, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = 0, const wxString& name = wxActivityIndicatorNameStr) { Create(parent, winid, pos, size, style, name); } bool Create(wxWindow* parent, wxWindowID winid = wxID_ANY, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = 0, const wxString& name = wxActivityIndicatorNameStr); virtual void Start(); virtual void Stop(); virtual bool IsRunning() const; protected: virtual wxSize DoGetBestClientSize() const; private: wxDECLARE_DYNAMIC_CLASS(wxActivityIndicator); wxDECLARE_NO_COPY_CLASS(wxActivityIndicator); }; #endif // _WX_GTK_ACTIVITYINDICATOR_H_ poedit-2.0.6/src/wx_backports/activityindicator.h0000664000372000037200000000343313230131554017123 00000000000000/////////////////////////////////////////////////////////////////////////////// // Name: wx/activityindicator.h // Purpose: wxActivityIndicator declaration. // Author: Vadim Zeitlin // Created: 2015-03-05 // Copyright: (c) 2015 Vadim Zeitlin // Licence: wxWindows licence /////////////////////////////////////////////////////////////////////////////// #ifndef _WX_ACTIVITYINDICATOR_H_ #define _WX_ACTIVITYINDICATOR_H_ #include "wx/defs.h" #include "wx/control.h" #define wxActivityIndicatorNameStr wxS("activityindicator") // ---------------------------------------------------------------------------- // wxActivityIndicator: small animated indicator of some application activity. // ---------------------------------------------------------------------------- class wxActivityIndicatorBase : public wxControl { public: // Start or stop the activity animation (it is stopped initially). virtual void Start() = 0; virtual void Stop() = 0; // Return true if the control is currently showing activity. virtual bool IsRunning() const = 0; // Override some base class virtual methods. virtual bool AcceptsFocus() const { return false; } virtual bool HasTransparentBackground() { return true; } protected: // choose the default border for this window virtual wxBorder GetDefaultBorder() const { return wxBORDER_NONE; } }; #ifndef __WXUNIVERSAL__ #if defined(__WXGTK20__) #define wxHAS_NATIVE_ACTIVITYINDICATOR #include "gtk_activityindicator.h" #elif defined(__WXOSX_COCOA__) #define wxHAS_NATIVE_ACTIVITYINDICATOR #include "osx_activityindicator.h" #endif #endif // !__WXUNIVERSAL__ #ifndef wxHAS_NATIVE_ACTIVITYINDICATOR #include "generic_activityindicator.h" #endif #endif // _WX_ACTIVITYINDICATOR_H_ poedit-2.0.6/src/wx_backports/nativewin.h0000664000372000037200000000400513230131554015372 00000000000000/////////////////////////////////////////////////////////////////////////////// // Name: wx/nativewin.h // Purpose: classes allowing to wrap a native window handle // Author: Vadim Zeitlin // Created: 2008-03-05 // Copyright: (c) 2008 Vadim Zeitlin // Licence: wxWindows licence /////////////////////////////////////////////////////////////////////////////// #ifndef _WX_NATIVEWIN_BACKPORT_H_ #define _WX_NATIVEWIN_BACKPORT_H_ // this file contains only differences between nativewin.h in wx 3.0 and 3.1+ #include "wx/nativewin.h" #if defined(__WXMSW__) typedef HWND wxNativeWindowHandle; #define wxHAS_NATIVE_WINDOW #elif defined(__WXGTK__) #include typedef GtkWidget *wxNativeWindowHandle; #define wxHAS_NATIVE_WINDOW #elif defined(__WXOSX_COCOA__) typedef NSView *wxNativeWindowHandle; #define wxHAS_NATIVE_WINDOW #endif #ifdef wxHAS_NATIVE_WINDOW // ---------------------------------------------------------------------------- // wxNativeWindow: for using native windows inside wxWidgets windows // ---------------------------------------------------------------------------- class wxNativeWindow : public wxWindow { public: // Default ctor, Create() must be called later to really create the window. wxNativeWindow() { } // Create a window from an existing native window handle. // // Notice that this ctor doesn't take the usual pos and size parameters, // they're taken from the window handle itself. // // Use GetHandle() to check if the creation was successful, it will return // 0 if the handle was invalid. wxNativeWindow(wxWindow* parent, wxWindowID winid, wxNativeWindowHandle handle) { Create(parent, winid, handle); } // Same as non-default ctor, but with a return code. bool Create(wxWindow* parent, wxWindowID winid, wxNativeWindowHandle handle); private: wxDECLARE_NO_COPY_CLASS(wxNativeWindow); }; #endif // wxHAS_NATIVE_WINDOW #endif // _WX_NATIVEWIN_BACKPORT_H_ poedit-2.0.6/src/pluralforms/0000775000372000037200000000000013230132101013123 500000000000000poedit-2.0.6/src/pluralforms/COPYING0000664000372000037200000000467213230131554014122 00000000000000 wxWindows Library Licence, Version 3 ==================================== Copyright (c) 1998 Julian Smart, Robert Roebling et al Everyone is permitted to copy and distribute verbatim copies of this licence document, but changing it is not allowed. WXWINDOWS LIBRARY LICENCE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION This library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public Licence as published by the Free Software Foundation; either version 2 of the Licence, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public Licence for more details. You should have received a copy of the GNU Library General Public Licence along with this software, usually in a file named COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. EXCEPTION NOTICE 1. As a special exception, the copyright holders of this library give permission for additional uses of the text contained in this release of the library as licenced under the wxWindows Library Licence, applying either version 3 of the Licence, or (at your option) any later version of the Licence as published by the copyright holders of version 3 of the Licence document. 2. The exception is that you may use, copy, link, modify and distribute under the user's own terms, binary object code versions of works based on the Library. 3. If you copy code from files distributed under the terms of the GNU General Public Licence or the GNU Library General Public Licence into a copy of this library, as this licence permits, the exception does not apply to the code that you add in this way. To avoid misleading anyone as to the status of such modified files, you must delete this exception notice from such code and/or adjust the licensing conditions notice accordingly. 4. If you write modifications of your own for this library, it is your choice whether to permit this exception to apply to your modifications. If you do not wish that, you must delete the exception notice from such code and/or adjust the licensing conditions notice accordingly. poedit-2.0.6/src/pluralforms/pl_evaluate.h0000664000372000037200000001024513230131554015532 00000000000000///////////////////////////////////////////////////////////////////////////// // Name: src/common/intl.cpp // Purpose: Internationalization and localisation for wxWidgets // Author: Vadim Zeitlin // Modified by: Michael N. Filippov // (2003/09/30 - PluralForms support) // Created: 29/01/98 // RCS-ID: $Id$ // Copyright: (c) 1998 Vadim Zeitlin // Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// #include #include // ---------------------------------------------------------------------------- // Plural forms parser // ---------------------------------------------------------------------------- /* Simplified Grammar Expression: LogicalOrExpression '?' Expression ':' Expression LogicalOrExpression LogicalOrExpression: LogicalAndExpression "||" LogicalOrExpression // to (a || b) || c LogicalAndExpression LogicalAndExpression: EqualityExpression "&&" LogicalAndExpression // to (a && b) && c EqualityExpression EqualityExpression: RelationalExpression "==" RelationalExperession RelationalExpression "!=" RelationalExperession RelationalExpression RelationalExpression: MultiplicativeExpression '>' MultiplicativeExpression MultiplicativeExpression '<' MultiplicativeExpression MultiplicativeExpression ">=" MultiplicativeExpression MultiplicativeExpression "<=" MultiplicativeExpression MultiplicativeExpression MultiplicativeExpression: PmExpression '%' PmExpression PmExpression PmExpression: N Number '(' Expression ')' */ class PluralFormsToken { public: enum Type { T_ERROR, T_EOF, T_NUMBER, T_N, T_PLURAL, T_NPLURALS, T_EQUAL, T_ASSIGN, T_GREATER, T_GREATER_OR_EQUAL, T_LESS, T_LESS_OR_EQUAL, T_REMINDER, T_NOT_EQUAL, T_LOGICAL_AND, T_LOGICAL_OR, T_QUESTION, T_COLON, T_SEMICOLON, T_LEFT_BRACKET, T_RIGHT_BRACKET }; Type type() const { return m_type; } void setType(Type type) { m_type = type; } // for T_NUMBER only typedef int Number; Number number() const { return m_number; } void setNumber(Number num) { m_number = num; } private: Type m_type; Number m_number; }; class PluralFormsScanner { public: PluralFormsScanner(const char* s); const PluralFormsToken& token() const { return m_token; } bool nextToken(); // returns false if error private: const char* m_s; PluralFormsToken m_token; }; class PluralFormsNode; // NB: Can't use wxDEFINE_SCOPED_PTR_TYPE because PluralFormsNode is not // fully defined yet: class PluralFormsNodePtr { public: PluralFormsNodePtr(PluralFormsNode *p = NULL) : m_p(p) {} ~PluralFormsNodePtr(); PluralFormsNode& operator*() const { return *m_p; } PluralFormsNode* operator->() const { return m_p; } PluralFormsNode* get() const { return m_p; } PluralFormsNode* release(); void reset(PluralFormsNode *p); private: PluralFormsNode *m_p; }; class PluralFormsNode { public: PluralFormsNode(const PluralFormsToken& token) : m_token(token) {} const PluralFormsToken& token() const { return m_token; } const PluralFormsNode* node(size_t i) const { return m_nodes[i].get(); } void setNode(size_t i, PluralFormsNode* n); PluralFormsNode* releaseNode(size_t i); PluralFormsToken::Number evaluate(PluralFormsToken::Number n) const; private: PluralFormsToken m_token; PluralFormsNodePtr m_nodes[3]; }; class PluralFormsCalculator { public: PluralFormsCalculator() : m_nplurals(0), m_plural(0) {} // input: number, returns msgstr index int evaluate(int n) const; // input: text after "Plural-Forms:" (e.g. "nplurals=2; plural=(n != 1);"), // if s == 0, creates default handler // returns 0 if error static std::unique_ptr make(const char* s = 0); ~PluralFormsCalculator() {} void init(PluralFormsToken::Number nplurals, PluralFormsNode* plural); wxString getString() const; private: PluralFormsToken::Number m_nplurals; PluralFormsNodePtr m_plural; }; poedit-2.0.6/src/pluralforms/pl_evaluate.cpp0000664000372000037200000003502513230131554016070 00000000000000///////////////////////////////////////////////////////////////////////////// // Name: src/common/intl.cpp // Purpose: Internationalization and localisation for wxWidgets // Author: Vadim Zeitlin // Modified by: Michael N. Filippov // (2003/09/30 - PluralForms support) // Created: 29/01/98 // RCS-ID: $Id$ // Copyright: (c) 1998 Vadim Zeitlin // Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// #include #include "pl_evaluate.h" // ---------------------------------------------------------------------------- // Plural forms parser // ---------------------------------------------------------------------------- PluralFormsScanner::PluralFormsScanner(const char* s) : m_s(s) { nextToken(); } bool PluralFormsScanner::nextToken() { PluralFormsToken::Type type = PluralFormsToken::T_ERROR; while (isspace(*m_s)) { ++m_s; } if (*m_s == 0) { type = PluralFormsToken::T_EOF; } else if (isdigit(*m_s)) { PluralFormsToken::Number number = *m_s++ - '0'; while (isdigit(*m_s)) { number = number * 10 + (*m_s++ - '0'); } m_token.setNumber(number); type = PluralFormsToken::T_NUMBER; } else if (isalpha(*m_s)) { const char* begin = m_s++; while (isalnum(*m_s)) { ++m_s; } size_t size = m_s - begin; if (size == 1 && memcmp(begin, "n", size) == 0) { type = PluralFormsToken::T_N; } else if (size == 6 && memcmp(begin, "plural", size) == 0) { type = PluralFormsToken::T_PLURAL; } else if (size == 8 && memcmp(begin, "nplurals", size) == 0) { type = PluralFormsToken::T_NPLURALS; } } else if (*m_s == '=') { ++m_s; if (*m_s == '=') { ++m_s; type = PluralFormsToken::T_EQUAL; } else { type = PluralFormsToken::T_ASSIGN; } } else if (*m_s == '>') { ++m_s; if (*m_s == '=') { ++m_s; type = PluralFormsToken::T_GREATER_OR_EQUAL; } else { type = PluralFormsToken::T_GREATER; } } else if (*m_s == '<') { ++m_s; if (*m_s == '=') { ++m_s; type = PluralFormsToken::T_LESS_OR_EQUAL; } else { type = PluralFormsToken::T_LESS; } } else if (*m_s == '%') { ++m_s; type = PluralFormsToken::T_REMINDER; } else if (*m_s == '!' && m_s[1] == '=') { m_s += 2; type = PluralFormsToken::T_NOT_EQUAL; } else if (*m_s == '&' && m_s[1] == '&') { m_s += 2; type = PluralFormsToken::T_LOGICAL_AND; } else if (*m_s == '|' && m_s[1] == '|') { m_s += 2; type = PluralFormsToken::T_LOGICAL_OR; } else if (*m_s == '?') { ++m_s; type = PluralFormsToken::T_QUESTION; } else if (*m_s == ':') { ++m_s; type = PluralFormsToken::T_COLON; } else if (*m_s == ';') { ++m_s; type = PluralFormsToken::T_SEMICOLON; } else if (*m_s == '(') { ++m_s; type = PluralFormsToken::T_LEFT_BRACKET; } else if (*m_s == ')') { ++m_s; type = PluralFormsToken::T_RIGHT_BRACKET; } m_token.setType(type); return type != PluralFormsToken::T_ERROR; } PluralFormsNodePtr::~PluralFormsNodePtr() { delete m_p; } PluralFormsNode* PluralFormsNodePtr::release() { PluralFormsNode *p = m_p; m_p = NULL; return p; } void PluralFormsNodePtr::reset(PluralFormsNode *p) { if (p != m_p) { delete m_p; m_p = p; } } void PluralFormsNode::setNode(size_t i, PluralFormsNode* n) { m_nodes[i].reset(n); } PluralFormsNode* PluralFormsNode::releaseNode(size_t i) { return m_nodes[i].release(); } PluralFormsToken::Number PluralFormsNode::evaluate(PluralFormsToken::Number n) const { switch (token().type()) { // leaf case PluralFormsToken::T_NUMBER: return token().number(); case PluralFormsToken::T_N: return n; // 2 args case PluralFormsToken::T_EQUAL: return node(0)->evaluate(n) == node(1)->evaluate(n); case PluralFormsToken::T_NOT_EQUAL: return node(0)->evaluate(n) != node(1)->evaluate(n); case PluralFormsToken::T_GREATER: return node(0)->evaluate(n) > node(1)->evaluate(n); case PluralFormsToken::T_GREATER_OR_EQUAL: return node(0)->evaluate(n) >= node(1)->evaluate(n); case PluralFormsToken::T_LESS: return node(0)->evaluate(n) < node(1)->evaluate(n); case PluralFormsToken::T_LESS_OR_EQUAL: return node(0)->evaluate(n) <= node(1)->evaluate(n); case PluralFormsToken::T_REMINDER: { PluralFormsToken::Number number = node(1)->evaluate(n); if (number != 0) { return node(0)->evaluate(n) % number; } else { return 0; } } case PluralFormsToken::T_LOGICAL_AND: return node(0)->evaluate(n) && node(1)->evaluate(n); case PluralFormsToken::T_LOGICAL_OR: return node(0)->evaluate(n) || node(1)->evaluate(n); // 3 args case PluralFormsToken::T_QUESTION: return node(0)->evaluate(n) ? node(1)->evaluate(n) : node(2)->evaluate(n); default: return 0; } } void PluralFormsCalculator::init(PluralFormsToken::Number nplurals, PluralFormsNode* plural) { m_nplurals = nplurals; m_plural.reset(plural); } int PluralFormsCalculator::evaluate(int n) const { if (m_plural.get() == 0) { return 0; } PluralFormsToken::Number number = m_plural->evaluate(n); if (number < 0 || number > m_nplurals) { return 0; } return number; } class PluralFormsParser { public: PluralFormsParser(PluralFormsScanner& scanner) : m_scanner(scanner) {} bool parse(PluralFormsCalculator& rCalculator); private: PluralFormsNode* parsePlural(); // stops at T_SEMICOLON, returns 0 if error PluralFormsScanner& m_scanner; const PluralFormsToken& token() const; bool nextToken(); PluralFormsNode* expression(); PluralFormsNode* logicalOrExpression(); PluralFormsNode* logicalAndExpression(); PluralFormsNode* equalityExpression(); PluralFormsNode* multiplicativeExpression(); PluralFormsNode* relationalExpression(); PluralFormsNode* pmExpression(); }; bool PluralFormsParser::parse(PluralFormsCalculator& rCalculator) { if (token().type() != PluralFormsToken::T_NPLURALS) return false; if (!nextToken()) return false; if (token().type() != PluralFormsToken::T_ASSIGN) return false; if (!nextToken()) return false; if (token().type() != PluralFormsToken::T_NUMBER) return false; PluralFormsToken::Number nplurals = token().number(); if (!nextToken()) return false; if (token().type() != PluralFormsToken::T_SEMICOLON) return false; if (!nextToken()) return false; if (token().type() != PluralFormsToken::T_PLURAL) return false; if (!nextToken()) return false; if (token().type() != PluralFormsToken::T_ASSIGN) return false; if (!nextToken()) return false; PluralFormsNode* plural = parsePlural(); if (plural == 0) return false; if (token().type() != PluralFormsToken::T_SEMICOLON) return false; if (!nextToken()) return false; if (token().type() != PluralFormsToken::T_EOF) return false; rCalculator.init(nplurals, plural); return true; } PluralFormsNode* PluralFormsParser::parsePlural() { PluralFormsNode* p = expression(); if (p == NULL) { return NULL; } PluralFormsNodePtr n(p); if (token().type() != PluralFormsToken::T_SEMICOLON) { return NULL; } return n.release(); } const PluralFormsToken& PluralFormsParser::token() const { return m_scanner.token(); } bool PluralFormsParser::nextToken() { if (!m_scanner.nextToken()) return false; return true; } PluralFormsNode* PluralFormsParser::expression() { PluralFormsNode* p = logicalOrExpression(); if (p == NULL) return NULL; PluralFormsNodePtr n(p); if (token().type() == PluralFormsToken::T_QUESTION) { PluralFormsNodePtr qn(new PluralFormsNode(token())); if (!nextToken()) { return 0; } p = expression(); if (p == 0) { return 0; } qn->setNode(1, p); if (token().type() != PluralFormsToken::T_COLON) { return 0; } if (!nextToken()) { return 0; } p = expression(); if (p == 0) { return 0; } qn->setNode(2, p); qn->setNode(0, n.release()); return qn.release(); } return n.release(); } PluralFormsNode*PluralFormsParser::logicalOrExpression() { PluralFormsNode* p = logicalAndExpression(); if (p == NULL) return NULL; PluralFormsNodePtr ln(p); if (token().type() == PluralFormsToken::T_LOGICAL_OR) { PluralFormsNodePtr un(new PluralFormsNode(token())); if (!nextToken()) { return 0; } p = logicalOrExpression(); if (p == 0) { return 0; } PluralFormsNodePtr rn(p); // right if (rn->token().type() == PluralFormsToken::T_LOGICAL_OR) { // see logicalAndExpression comment un->setNode(0, ln.release()); un->setNode(1, rn->releaseNode(0)); rn->setNode(0, un.release()); return rn.release(); } un->setNode(0, ln.release()); un->setNode(1, rn.release()); return un.release(); } return ln.release(); } PluralFormsNode* PluralFormsParser::logicalAndExpression() { PluralFormsNode* p = equalityExpression(); if (p == NULL) return NULL; PluralFormsNodePtr ln(p); // left if (token().type() == PluralFormsToken::T_LOGICAL_AND) { PluralFormsNodePtr un(new PluralFormsNode(token())); // up if (!nextToken()) { return NULL; } p = logicalAndExpression(); if (p == 0) { return NULL; } PluralFormsNodePtr rn(p); // right if (rn->token().type() == PluralFormsToken::T_LOGICAL_AND) { // transform 1 && (2 && 3) -> (1 && 2) && 3 // u r // l r -> u 3 // 2 3 l 2 un->setNode(0, ln.release()); un->setNode(1, rn->releaseNode(0)); rn->setNode(0, un.release()); return rn.release(); } un->setNode(0, ln.release()); un->setNode(1, rn.release()); return un.release(); } return ln.release(); } PluralFormsNode* PluralFormsParser::equalityExpression() { PluralFormsNode* p = relationalExpression(); if (p == NULL) return NULL; PluralFormsNodePtr n(p); if (token().type() == PluralFormsToken::T_EQUAL || token().type() == PluralFormsToken::T_NOT_EQUAL) { PluralFormsNodePtr qn(new PluralFormsNode(token())); if (!nextToken()) { return NULL; } p = relationalExpression(); if (p == NULL) { return NULL; } qn->setNode(1, p); qn->setNode(0, n.release()); return qn.release(); } return n.release(); } PluralFormsNode* PluralFormsParser::relationalExpression() { PluralFormsNode* p = multiplicativeExpression(); if (p == NULL) return NULL; PluralFormsNodePtr n(p); if (token().type() == PluralFormsToken::T_GREATER || token().type() == PluralFormsToken::T_LESS || token().type() == PluralFormsToken::T_GREATER_OR_EQUAL || token().type() == PluralFormsToken::T_LESS_OR_EQUAL) { PluralFormsNodePtr qn(new PluralFormsNode(token())); if (!nextToken()) { return NULL; } p = multiplicativeExpression(); if (p == NULL) { return NULL; } qn->setNode(1, p); qn->setNode(0, n.release()); return qn.release(); } return n.release(); } PluralFormsNode* PluralFormsParser::multiplicativeExpression() { PluralFormsNode* p = pmExpression(); if (p == NULL) return NULL; PluralFormsNodePtr n(p); if (token().type() == PluralFormsToken::T_REMINDER) { PluralFormsNodePtr qn(new PluralFormsNode(token())); if (!nextToken()) { return NULL; } p = pmExpression(); if (p == NULL) { return NULL; } qn->setNode(1, p); qn->setNode(0, n.release()); return qn.release(); } return n.release(); } PluralFormsNode* PluralFormsParser::pmExpression() { PluralFormsNodePtr n; if (token().type() == PluralFormsToken::T_N || token().type() == PluralFormsToken::T_NUMBER) { n.reset(new PluralFormsNode(token())); if (!nextToken()) { return NULL; } } else if (token().type() == PluralFormsToken::T_LEFT_BRACKET) { if (!nextToken()) { return NULL; } PluralFormsNode* p = expression(); if (p == NULL) { return NULL; } n.reset(p); if (token().type() != PluralFormsToken::T_RIGHT_BRACKET) { return NULL; } if (!nextToken()) { return NULL; } } else { return NULL; } return n.release(); } std::unique_ptr PluralFormsCalculator::make(const char* s) { auto calculator = std::make_unique(); if (s != NULL) { PluralFormsScanner scanner(s); PluralFormsParser p(scanner); if (!p.parse(*calculator)) { return NULL; } } return calculator; } poedit-2.0.6/src/crowdin_gui.h0000664000372000037200000000644713230131554013205 00000000000000/* * This file is part of Poedit (https://poedit.net) * * Copyright (C) 2015-2018 Vaclav Slavik * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * DEALINGS IN THE SOFTWARE. * */ #ifndef Poedit_crowdin_gui_h #define Poedit_crowdin_gui_h #ifdef HAVE_HTTP_CLIENT #include "catalog.h" #include "cloud_sync.h" #include "customcontrols.h" #include class WXDLLIMPEXP_FWD_CORE wxBoxSizer; class WXDLLIMPEXP_FWD_CORE wxButton; /** Panel used to sign in into Crowdin. */ class CrowdinLoginPanel : public wxPanel { public: enum Flags { DialogButtons = 1 }; CrowdinLoginPanel(wxWindow *parent, int flags = 0); /// Call this when the window is first shown void EnsureInitialized(); protected: enum class State { Uninitialized, Authenticating, SignedIn, SignedOut, UpdatingInfo }; void ChangeState(State state); void CreateLoginInfoControls(State state); void UpdateUserInfo(); void OnSignIn(wxCommandEvent&); void OnSignOut(wxCommandEvent&); virtual void OnUserSignedIn(); State m_state; wxBoxSizer *m_loginInfo; wxButton *m_signIn, *m_signOut; wxString m_userName, m_userLogin; }; class CrowdinSyncDestination : public CloudSyncDestination { public: wxString GetName() const override { return "Crowdin"; } dispatch::future Upload(CatalogPtr file) override; }; /// Link to learn about Crowdin class LearnAboutCrowdinLink : public LearnMoreLink { public: LearnAboutCrowdinLink(wxWindow *parent, const wxString& text = ""); }; /** Let the user choose a Crowdin file, download it and open in Poedit. @param parent PoeditFrame the UI should be shown under. @param onLoaded Called with the name of loaded PO file. */ void CrowdinOpenFile(wxWindow *parent, std::function onLoaded); /** Synces the catalog with Crowdin, uploading and downloading translations. @param parent PoeditFrame the UI should be shown under. @param catalog Catalog to sync. @param onDone Called with the (new) updated catalog instance. */ void CrowdinSyncFile(wxWindow *parent, std::shared_ptr catalog, std::function)> onDone); #endif // HAVE_HTTP_CLIENT #endif // Poedit_crowdin_gui_h poedit-2.0.6/src/pretranslate.cpp0000664000372000037200000002237113230131554013725 00000000000000/* * This file is part of Poedit (https://poedit.net) * * Copyright (C) 1999-2018 Vaclav Slavik * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * DEALINGS IN THE SOFTWARE. * */ #include "pretranslate.h" #include "configuration.h" #include "customcontrols.h" #include "hidpi.h" #include "progressinfo.h" #include "tm/transmem.h" #include "utility.h" #include #include #include #include #include #include #include template bool PreTranslateCatalog(wxWindow *window, CatalogPtr catalog, const T& range, int flags, int *matchesCount) { if (matchesCount) *matchesCount = 0; if (range.empty()) return false; if (!Config::UseTM()) return false; wxBusyCursor bcur; TranslationMemory& tm = TranslationMemory::Get(); auto srclang = catalog->GetSourceLanguage(); auto lang = catalog->GetLanguage(); // FIXME: make this window-modal // FIXME: and don't create it here, reuse upstream progress data ProgressInfo progress(window, _(L"Pre-translating…")); progress.UpdateMessage(_("Pre-translating…")); // Function to apply fetched suggestions to a catalog item: auto process_results = [=](CatalogItemPtr dt, const SuggestionsList& results) -> bool { if (results.empty()) return false; auto& res = results.front(); if ((flags & PreTranslate_OnlyExact) && !res.IsExactMatch()) return false; if ((flags & PreTranslate_OnlyGoodQuality) && res.score < 0.80) return false; dt->SetTranslation(res.text); dt->SetPreTranslated(true); dt->SetFuzzy(!res.IsExactMatch() || (flags & PreTranslate_ExactNotFuzzy) == 0); return true; }; std::vector> operations; for (auto dt: range) { if (dt->HasPlural()) continue; // can't handle yet (TODO?) if (dt->IsTranslated() && !dt->IsFuzzy()) continue; operations.push_back(dispatch::async([=,&tm]{ auto results = tm.Search(srclang, lang, dt->GetString().ToStdWstring()); bool ok = process_results(dt, results); return ok; })); } progress.SetGaugeMax((int)operations.size()); int matches = 0; for (auto& op: operations) { if (!progress.UpdateGauge()) break; // TODO: cancel pending 'operations' futures if (op.get()) { matches++; progress.UpdateMessage(wxString::Format(wxPLURAL("Pre-translated %u string", "Pre-translated %u strings", matches), matches)); } } if (matchesCount) *matchesCount = matches; return matches > 0; } bool PreTranslateCatalog(wxWindow *window, CatalogPtr catalog, int flags, int *matchesCount) { return PreTranslateCatalog(window, catalog, catalog->items(), flags, matchesCount); } void PreTranslateWithUI(wxWindow *window, PoeditListCtrl *list, CatalogPtr catalog, std::function onChangesMade) { wxWindowPtr dlg(new wxDialog(window, wxID_ANY, _("Pre-translate"), wxDefaultPosition, wxSize(PX(440), -1))); auto topsizer = new wxBoxSizer(wxVERTICAL); auto sizer = new wxBoxSizer(wxVERTICAL); auto onlyExact = new wxCheckBox(dlg.get(), wxID_ANY, _("Only fill in exact matches")); auto onlyExactE = new ExplanationLabel(dlg.get(), _("By default, inaccurate results are filled in as well and marked as needing work. Check this option to only include accurate matches.")); auto noFuzzy = new wxCheckBox(dlg.get(), wxID_ANY, _(L"Don’t mark exact matches as needing work")); auto noFuzzyE = new ExplanationLabel(dlg.get(), _("Only enable if you trust the quality of your TM. By default, all matches from the TM are marked as needing work and should be reviewed before use.")); #ifdef __WXOSX__ sizer->Add(new HeadingLabel(dlg.get(), _("Pre-translate")), wxSizerFlags().Expand().PXBorder(wxBOTTOM)); #endif auto pretransE = new ExplanationLabel(dlg.get(), _("Pre-translation automatically finds exact or fuzzy matches for untranslated strings in the translation memory and fills in their translations.")); sizer->Add(pretransE, wxSizerFlags().Expand().Border(wxBOTTOM, PX(15))); sizer->Add(onlyExact, wxSizerFlags().PXBorder(wxTOP)); sizer->AddSpacer(PX(1)); sizer->Add(onlyExactE, wxSizerFlags().Expand().Border(wxLEFT, PX(ExplanationLabel::CHECKBOX_INDENT))); sizer->Add(noFuzzy, wxSizerFlags().PXDoubleBorder(wxTOP)); sizer->AddSpacer(PX(1)); sizer->Add(noFuzzyE, wxSizerFlags().Expand().Border(wxLEFT, PX(ExplanationLabel::CHECKBOX_INDENT))); topsizer->Add(sizer, wxSizerFlags(1).Expand().Border(wxALL, MACOS_OR_OTHER(PX(20), PX(10)))); auto buttons = dlg->CreateButtonSizer(wxOK | wxCANCEL); auto ok = static_cast(dlg->FindWindow(wxID_OK)); // TRANSLATORS: This is a somewhat common term describing the action where // you apply the translation memory and/or machine translation to all of the // strings you're translating as the first step, followed by correcting, // improving etc., i.e. actually translating the strings. This may be tricky // to express in other languages as simply as in English, but please try to // keep it similarly concise. Please try to avoid, if possible, describing it // as "auto-translation" and similar, because such terminology would mislead // some users into thinking it's all that needs to be done (spoken from // experience). "Pre-translate" nicely expresses that it's only the step done // *before* actual translation. ok->SetLabel(_("Pre-translate")); ok->SetDefault(); #ifdef __WXOSX__ topsizer->Add(buttons, wxSizerFlags().Expand().Border(wxLEFT|wxRIGHT|wxBOTTOM, PX(10))); #else topsizer->AddSpacer(PX(5)); topsizer->Add(buttons, wxSizerFlags().Expand().Border(wxRIGHT, PX(12))); topsizer->AddSpacer(PX(12)); #endif dlg->SetSizer(topsizer); dlg->Layout(); topsizer->SetSizeHints(dlg.get()); dlg->CenterOnParent(); { PretranslateSettings settings = Config::PretranslateSettings(); onlyExact->SetValue(settings.onlyExact); noFuzzy->SetValue(settings.exactNotFuzzy); } dlg->ShowWindowModalThenDo([catalog,window,list,onlyExact,noFuzzy,onChangesMade,dlg](int retcode) { if (retcode != wxID_OK) return; PretranslateSettings settings; settings.onlyExact = onlyExact->GetValue(); settings.exactNotFuzzy = noFuzzy->GetValue(); Config::PretranslateSettings(settings); int matches = 0; int flags = 0; if (settings.onlyExact) flags |= PreTranslate_OnlyExact; if (settings.exactNotFuzzy) flags |= PreTranslate_ExactNotFuzzy; if (list->HasMultipleSelection()) { if (!PreTranslateCatalog(window, catalog, list->GetSelectedCatalogItems(), flags, &matches)) return; } else { if (!PreTranslateCatalog(window, catalog, flags, &matches)) return; } onChangesMade(); wxString msg, details; if (matches) { msg = wxString::Format(wxPLURAL("%d entry was pre-translated.", "%d entries were pre-translated.", matches), matches); details = _("The translations were marked as needing work, because they may be inaccurate. You should review them for correctness."); } else { msg = _("No entries could be pre-translated."); details = _(L"The TM doesn’t contain any strings similar to the content of this file. It is only effective for semi-automatic translations after Poedit learns enough from files that you translated manually."); } wxWindowPtr resultsDlg( new wxMessageDialog ( window, msg, _("Pre-translate"), wxOK | wxICON_INFORMATION ) ); resultsDlg->SetExtendedMessage(details); resultsDlg->ShowWindowModalThenDo([resultsDlg](int){}); }); } poedit-2.0.6/src/colorscheme.cpp0000664000372000037200000001437113230131554013525 00000000000000/* * This file is part of Poedit (https://poedit.net) * * Copyright (C) 2016-2018 Vaclav Slavik * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * DEALINGS IN THE SOFTWARE. * */ #include "colorscheme.h" #include #ifdef __WXGTK__ #include #if PANGO_VERSION_CHECK(1,38,0) #define SUPPORTS_BGALPHA #endif #else #define SUPPORTS_BGALPHA #endif namespace { #ifdef __WXOSX__ inline wxColour sRGB(int r, int g, int b, double a = 1.0) { return wxColour([NSColor colorWithSRGBRed:r/255.0 green:g/255.0 blue:b/255.0 alpha:a]); } #else inline wxColour sRGB(int r, int g, int b, double a = 1.0) { return wxColour(r, g, b, int(a * wxALPHA_OPAQUE)); } #endif } // anonymous namespace std::unique_ptr ColorScheme::s_data; wxColour ColorScheme::DoGet(Color color, Type type) { switch (color) { // Labels: case Color::SecondaryLabel: #ifdef __WXOSX__ return wxColour([NSColor secondaryLabelColor]); #elif defined(__WXGTK__) return wxSystemSettings::GetColour(wxSYS_COLOUR_WINDOWTEXT); #else return wxSystemSettings::GetColour(wxSYS_COLOUR_GRAYTEXT); #endif // List items: case Color::ItemID: return type == Light ? "#a1a1a1" : wxNullColour; case Color::ItemFuzzy: return type == Light ? sRGB(218, 123, 0) : "#a9861b"; case Color::ItemError: return DoGet(Color::TagErrorLineFg, type); case Color::ItemContextFg: return sRGB(70, 109, 137); case Color::ItemContextBg: return sRGB(217, 232, 242); case Color::ItemContextBgHighlighted: #if defined(__WXMSW__) return sRGB(255, 255, 255, 0.50); #elif defined(SUPPORTS_BGALPHA) return sRGB(255, 255, 255, 0.35); #else return DoGet(Color::ItemContextBg, type); #endif // Tags: case Color::TagContextFg: return DoGet(Color::ItemContextFg, type); case Color::TagContextBg: return DoGet(Color::ItemContextBg, type); case Color::TagSecondaryFg: return sRGB(87, 87, 87); case Color::TagSecondaryBg: return sRGB(236, 236, 236); case Color::TagErrorLineFg: return sRGB(162, 0, 20); case Color::TagErrorLineBg: return sRGB(255, 227, 230, 0.75); case Color::TagWarningLineFg: return sRGB(101, 91, 1); case Color::TagWarningLineBg: return sRGB(255, 249, 192, 0.75); // Separators: case Color::ToolbarSeparator: return "#cdcdcd"; case Color::SidebarSeparator: return "#cbcbcb"; case Color::EditingSeparator: return sRGB(204, 204, 204); case Color::EditingSubtleSeparator: return sRGB(229, 229, 229); // Backgrounds: case Color::SidebarBackground: return "#edf0f4"; case Color::EditingBackground: return *wxWHITE; // Fuzzy toggle: case Color::FuzzySwitch: return DoGet(Color::ItemFuzzy, type); case Color::FuzzySwitchInactive: return sRGB(87, 87, 87); // Syntax highlighting: case Color::SyntaxLeadingWhitespaceBg: return sRGB(255, 233, 204); case Color::SyntaxEscapeFg: return sRGB(162, 0, 20); case Color::SyntaxEscapeBg: return sRGB(254, 234, 236); case Color::SyntaxMarkup: return sRGB(0, 121, 215); case Color::SyntaxFormat: return sRGB(178, 52, 197); // Attention bar: #ifdef __WXGTK__ case Color::AttentionWarningBackground: return sRGB(250, 173, 61); case Color::AttentionQuestionBackground: return sRGB(138, 173, 212); case Color::AttentionErrorBackground: return sRGB(237, 54, 54); #else case Color::AttentionWarningBackground: return sRGB(255, 222, 91); case Color::AttentionQuestionBackground: return sRGB(150, 233, 109); case Color::AttentionErrorBackground: return sRGB(255, 125, 125); #endif // Buttons: case Color::TranslucentButton: return sRGB(255, 255, 255, 0.5); case Color::Max: return wxColour(); } return wxColour(); // Visual C++ being silly } ColorScheme::Type ColorScheme::GetSchemeTypeFromWindow(const wxVisualAttributes& win) { // Use dark scheme for very dark backgrounds: if (win.colBg.Red() < 0x60 && win.colBg.Green() < 0x60 && win.colBg.Blue() < 0x60) { return Dark; } else { return Light; } } wxColour ColorScheme::GetBlendedOn(Color color, wxWindow *win) { auto bg = win->GetBackgroundColour(); auto fg = Get(color, win); if (fg.Alpha() == wxALPHA_OPAQUE) return fg; double alpha = fg.Alpha() / 255.0; return wxColour(wxColour::AlphaBlend(fg.Red(), bg.Red(), alpha), wxColour::AlphaBlend(fg.Green(), bg.Green(), alpha), wxColour::AlphaBlend(fg.Blue(), bg.Blue(), alpha)); } void ColorScheme::CleanUp() { s_data.reset(); } poedit-2.0.6/src/chooselang.h0000664000372000037200000000311713230131554013005 00000000000000/* * This file is part of Poedit (https://poedit.net) * * Copyright (C) 2003-2018 Vaclav Slavik * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * DEALINGS IN THE SOFTWARE. * */ #ifndef _CHOOSELANG_H_ #define _CHOOSELANG_H_ #include #include #ifdef __WXMSW__ #define NEED_CHOOSELANG_UI 1 #else #define NEED_CHOOSELANG_UI 0 #endif #if NEED_CHOOSELANG_UI /// Let the user change UI language void ChangeUILanguage(); /** Return currently chosen language. Calls ChooseLanguage if necessary. */ wxString GetUILanguage(); #endif // NEED_CHOOSELANG_UI #endif poedit-2.0.6/src/cloud_sync.h0000664000372000037200000001205313230131554013024 00000000000000/* * This file is part of Poedit (https://poedit.net) * * Copyright (C) 2017-2018 Vaclav Slavik * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * DEALINGS IN THE SOFTWARE. * */ #ifndef Poedit_cloud_sync_h #define Poedit_cloud_sync_h #include "catalog.h" #include "concurrency.h" #include #if wxUSE_GUI #include "customcontrols.h" #include "errors.h" #include "hidpi.h" #include #include #include #include #include #endif #include /** Abstract interface to cloud sync location for a file being edited. If associated with a Catalog instance, upon saving changes, they are automatically synced using this class' specialization. */ class CloudSyncDestination { public: virtual ~CloudSyncDestination() {} /// Name of the destionation (e.g. Crowding or hostname) virtual wxString GetName() const = 0; /// Asynchronously uploads the file. Returned future throws on error. virtual dispatch::future Upload(CatalogPtr file) = 0; /// Convenicence for creating a destination from a lambda. template static std::shared_ptr Make(const wxString& name, F&& func) { class Dest : public CloudSyncDestination { public: Dest(const wxString& name_, F&& func_) : name(name_), func(func_) {} wxString GetName() const override { return name; } dispatch::future Upload(CatalogPtr file) override { return func(file); } wxString name; F func; }; return std::make_shared(name, std::move(func)); } }; #if wxUSE_GUI class CloudSyncProgressWindow : public wxDialog { public: CloudSyncProgressWindow(wxWindow *parent, const wxString& title = _("Syncing")) : wxDialog(parent, wxID_ANY, title, wxDefaultPosition, wxDefaultSize, wxCAPTION | wxSYSTEM_MENU) { auto sizer = new wxBoxSizer(wxVERTICAL); sizer->SetMinSize(PX(300), -1); Activity = new ActivityIndicator(this); sizer->AddStretchSpacer(); sizer->Add(Activity, wxSizerFlags().Expand().Border(wxALL, PX(25))); sizer->AddStretchSpacer(); SetSizerAndFit(sizer); CenterOnParent(); } CloudSyncProgressWindow(wxWindow *parent, std::shared_ptr dest) : CloudSyncProgressWindow(parent) { // TRANSLATORS: %s is a cloud destination, e.g. "Crowdin" or ftp.wordpress.com etc. Activity->Start(wxString::Format(_(L"Syncing with %s…"), dest->GetName())); } ActivityIndicator *Activity; /// Show the window while performing background sync action. Show error if static void RunSync(wxWindow *parent, std::shared_ptr dest, CatalogPtr file) { wxWindowPtr progress(new CloudSyncProgressWindow(parent, dest)); #ifdef __WXOSX__ progress->ShowWindowModal(); #else progress->Show(); #endif auto future = dispatch::async([=]{ return dest->Upload(file); }); for (;;) { if (future.wait_for(boost::chrono::milliseconds(10)) == dispatch::future_status::ready) break; // all is done wxYield(); } #ifdef __WXOSX__ progress->EndModal(wxID_OK); #else progress->Hide(); #endif try { future.get(); } catch (...) { wxWindowPtr err(new wxMessageDialog ( parent, // TRANSLATORS: %s is a cloud destination, e.g. "Crowdin" or ftp.wordpress.com etc. wxString::Format(_("Syncing with %s failed."), dest->GetName()), _("Syncing error"), wxOK | wxICON_ERROR )); err->SetExtendedMessage(DescribeCurrentException()); err->ShowWindowModalThenDo([err](int){}); } } }; #endif // wxUSE_GUI #endif // Poedit_cloud_sync_h poedit-2.0.6/src/configuration.h0000664000372000037200000000520513230131554013532 00000000000000/* * This file is part of Poedit (https://poedit.net) * * Copyright (C) 2016-2018 Vaclav Slavik * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * DEALINGS IN THE SOFTWARE. * */ #ifndef Poedit_configuration_h #define Poedit_configuration_h #include // What to do during msgmerge enum MergeBehavior { Merge_None, Merge_FuzzyMatch, Merge_UseTM }; // Pre-translation settings struct PretranslateSettings { bool onlyExact; bool exactNotFuzzy; }; /** High-level interface to configuration storage. Unlike wxConfig, this is thread-safe. */ class Config { public: static void Initialize(const std::wstring& configFile); static bool UseTM() { return Read("/use_tm", true); } static void UseTM(bool use) { Write("/use_tm", use); } static ::PretranslateSettings PretranslateSettings(); static void PretranslateSettings(::PretranslateSettings s); // What to do during merge static ::MergeBehavior MergeBehavior(); static void MergeBehavior(::MergeBehavior b); private: template static T Read(const std::string& key, T defval) { T val = T(); if (Read(key, &val)) return val; else return defval; } static bool Read(const std::string& key, std::string *out); static bool Read(const std::string& key, std::wstring *out); static bool Read(const std::string& key, bool *out); static void Write(const std::string& key, const std::string& value); static void Write(const std::string& key, const std::wstring& value); static void Write(const std::string& key, bool value); }; #endif // Poedit_configuration_h